Você está na página 1de 14

UNIVERSIDADE SALVADOR UNIFACS

NCLEO DE PESQUISA INTERDEPARTAMENTAL EM REDES DE


COMPUTADORES (NUPERC)
MESTRADO EM REDES DE COMPUTADORES

MARCOS PORTNOI

CRIPTOGRAFIA COM CURVAS ELPTICAS

Salvador BA
2005

2/14

CRIPTOGRAFIA COM CURVAS ELPTICAS*


Marcos Portnoi**
Orientador: Prof. Rafael T. de Souza Jr.***
Resumo
Este trabalho apresenta o uso das curvas elpticas
em criptografia. Sua segurana est baseada no
problema do logaritmo discreto. Este problema
aparentemente significativamente mais difcil de
resolver, comparado com o problema do logaritmo
discreto usado por outros sistemas de criptografia.
dada uma viso geral de sistemas de criptografia
comuns, como Diffie-Hellman e RSA, e discute-se
um esquema de criptografia usando curvas
elpticas.

Abstract
This paper presents an overview of the use of
elliptic curves in cryptography. The security of
this cryptosystem is based on the discrete
logarithm problem, which appears to be much
harder compared to the discrete logarithm problem
in other cryptosystems. An overview of common
cryptosystems is given, such as Diffie-Hellman
and RSA, and an elliptic curve cryptography
scheme is discussed.

Palavras-Chave: Curvas elpticas, criptografia, sistema de criptografia, problema logaritmo discreto, DiffieHellman, RSA.
Keywords: Elliptic curves, cryptography, cryptosystem, discrete logarithm problem, Diffie-Hellman, RSA.

*
Artigo elaborado para a disciplina Segurana em Redes no Mestrado em Redes de Computadores pela
Universidade Salvador UNIFACS.
**
Mestrando em Redes de Computadores e Engenheiro Eletrnico pela Universidade Salvador UNIFACS.
***
Professor do Departamento de Engenharia Eltrica e Redes da Universidade de Braslia UnB.

3/14

Introduo
Criptografia a cincia que trata de cifrar a escrita, de modo a torn-la ininteligvel
para os que no tenham os mtodos convencionados para ter acesso a ela. Em Tecnologia da
Informao, esta definio ampliada a fim de englobar no s a escrita, mas qualquer tipo de
documento ou dados que devam ser tratados secretamente. Um Sistema de Criptografia
define um sistema em que um texto (ou documento, ou qualquer tipo de dado) transformado
atravs da criptografia em um texto cifrado (ciphertext) ou o texto cifrado transformado de
volta informao original [1], atravs de algoritmos.

A primeira ao denominada

cifragem ou criptografar, e a segunda chamada de decifrao ou decriptao.


Os sistemas de criptografia so classificados [2] apud [1] em simtricos e
assimtricos. Os sistemas simtricos usam uma chave secreta, conhecida por ambos os lados
A e B da comunicao e por ningum mais. Os sistemas assimtricos usam um par de chaves,
uma secreta e uma pblica, para cada lado A e B da comunicao. A chave secreta de A s
conhecida por este, assim como a chave secreta de B s conhecida por B. As chaves
pblicas de A e B so conhecidas por todos.
No sistema simtrico, a comunicao privada entre as duas partes estabelecida
usando uma nica chave secreta, que deve ser conhecida somente pelos participantes da
comunicao. Esta chave usada tanto para cifragem como para decriptao do ciphertext.
Um grande problema desse sistema que os interlocutores A e B precisam combinar
previamente a chave secreta a ser usada atravs de um meio seguro de comunicao. Se a
chave secreta for transmitida por um interlocutor a outro atravs de um meio inseguro, todo o
sistema de segurana estar comprometido. Outra desvantagem que cada interlocutor deve
armazenar uma chave secreta a fim de manter comunicao privada para cada interlocutor
diferente, resultando numa grande quantidade de chaves privadas diferentes a armazenar (na
ordem de n2 chaves para todo o sistema) [1].
funcionamento do sistema simtrico.

A Figura 1 traz uma ilustrao do

4/14

Figura 1: Sistema de Criptografia com chave simtrica (secreta).

No sistema de criptografia assimtrico, h duas chaves distintas para cada interlocutor


A e B: uma privada, que somente o interlocutor conhece, e uma pblica, que pode ser
distribuda para qualquer um. Uma chave se presta a cifrar a mensagem e a outra, para
decifr-la. O par de chaves so determinadas por um algoritmo baseado em uma funo de
uma via. A funo de uma via definida como uma funo f onde, para cada x no domnio
de f, f(x) facilmente computvel. Porm, para praticamente todo y na imagem de f,
computacionalmente inexeqvel1 encontrar um x que satisfaa y = f(x) [1]. Assim, dado x,
acha-se facilmente f(x); porm dado f(x), o poder computacional requerido para o clculo de x
extremamente elevado. O conceito foi introduzido por Diffie e Hellman em 1976 [3], ao
propuserem o protocolo de troca de chaves que leva seu nome. A segurana do sistema, pois,
baseia-se essencialmente na dificuldade de se calcular a funo inversa.
No sistema assimtrico, se A deseja enviar uma mensagem secreta para B, ento A usa
a chave pblica de B para criptografar a mensagem. Ao receber a mensagem, B usa sua
prpria chave privada para decript-la. Num sistema alternativo de autenticao, A pode
mandar uma mensagem para B, cifrando-a com sua chave secreta (chave secreta de A).
Qualquer pessoa, inclusive B, pode decifrar esta mensagem atravs da chave pblica de A
(que , pois, de domnio pblico). Como somente A detm a chave privada de A, ento, se a
mensagem puder ser decifrada com a chave pblica de A, ento a origem foi autenticada
(prova-se que somente A pode ter enviado a mensagem).

Isto no significa que computacionalmente impossvel de se reverter o clculo das funes. A segurana
destes sistemas de criptografia baseia-se no fato de que a fora computacional necessria para a quebra do

5/14

Figura 2: Sistema de Criptografia com chaves assimtricas (chave pblica e chave privada).

A Figura 2 ilustra o funcionamento do sistema de criptografia com chaves


assimtricas, e a Figura 3, uma representao da utilizao do sistema para autenticao de
remetente. O sistema de criptografia assimtrico resolve o problema de troca prvia de
chaves privadas atravs de um meio inseguro sofrido pelo sistema simtrico. As chaves
pblicas podem ser livremente comunicadas por meios inseguros, pois somente com as chaves
privadas (que s so de conhecimento de seus proprietrios) o ciclo de cifrao-decifrao
pode ser completado. Um sistema de criptografia assimtrico largamente usado o RSA (de
Rivest, Shamir e Adleman, seus postulantes), que se baseia na fatorao de nmeros primos
grandes [4, 5, 6], e tambm o sistema conhecido como ElGamal, que usa o problema do
logaritmo discreto na implementao de chaves assimtricas, com nvel de segurana
semelhante do esquema Diffie-Hellman [7].

Figura 3: Sistema de Autenticao usando chaves assimtricas.

sistema acessvel somente para pouqussimas organizaes. Porm, medida que o poder computacional
aumenta graas aos avanos tecnolgicos, mais aumenta a possibilidade de quebra da segurana por indivduos.

6/14

Os algoritmos de chaves assimtricas requerem maior tempo computacional que os


algoritmos de chave simtrica, mais simples.

Uma alternativa usar um sistema de

criptografia simtrica e fazer a troca prvia da chave privada atravs do protocolo de troca de
chaves Diffie-Hellmann, que pode ser realizado por um canal inseguro. A funo de uma via
proposta por [3] para o protocolo de troca de chaves atravs de um meio inseguro
f(x) = x (mod p). Se y = x, ento x = log(y). Encontrar o valor de x nesta equao resulta
num problema de clculo de logaritmo discreto.
Seja p um nmero primo grande e assuma-se que um elemento primitivo do
campo Zp (base do logaritmo discreto), onde p e so pblicos.
1.
2.
3.
4.
5.

Interlocutor A escolhe x1 (0 x1 p 2) aleatoriamente.


A calcula x1 mod p e envia o resultado ao interlocutor B.
B escolhe x2 (0 x2 p 2) aleatoriamente.
B calcula x2 mod p e envia o resultado ao interlocutor A.
A calcula K = (x2)x1 mod p e B calcula K = (x1)x2 mod p.

A e B calculam, desta maneira, a mesma chave K = x1x2 mod p.

Figura 4: Protocolo de troca de chave Diffie-Hellmann [8].

O Sistema RSA: Viso Geral


O algoritmo RSA [5] de uso constante nos sistemas atuais de criptografia
assimtrica. Sua segurana est baseada na dificuldade de se fatorar nmeros inteiros muito
grandes e o algoritmo est apresentado na Figura 5.
Interlocutor A escolhe, secretamente, dois nmeros primos, p e q, e publica
n = pq. Ento, A aleatoriamente escolhe b tal que b e = (p 1)(q 1) so
primos relativos ou primos entre si. A calcula a tal que ab = 1(mod (n)). Sua
chave secreta a, enquanto que b revelado publicamente.
Interlocutor B cifra sua mensagem x computando:
y = xb mod n
e envia y para A. A ento decifra e obtm x calculando:
x = ya mod n
Figura 5: O sistema de criptografia RSA [8].

7/14

Para ser considerado suficientemente seguro, a fatorao de n = pq deve ser


computacionalmente invivel. Os nmeros p e q devem ser nmeros primos com tamanho da
ordem de 100 dgitos cada. Existem ataques ao RSA que no envolvem algoritmos de
fatorao, explorando fraquezas inerentes ao sistema, como escolhas indevidas do nmero a
ou o uso do mesmo nmero n para comunicao com vrias pessoas [8]. Atualmente,
considerando o poder computacional acessvel ao indivduo comum, usa-se chaves para o
RSA de tamanho 1024 bits.
O sistema baseado em curvas elpticas, tratado a seguir, oferece o mesmo nvel de
segurana comparativa a um RSA de chave de 1024 bits, usando chaves de tamanho 160 bits.
As chaves menores permitem requerimentos menores de memria, menores larguras de banda
usadas na transmisso das mensagens, implementao mais rpida e tambm algoritmos mais
velozes. Para a fabricao de chips dedicados a executar o algoritmo de criptografia, as
chaves menores resultam em circuitos mais simplificados e portanto menor custo. Em adio,
h algoritmos de complexidade de ordem subexponencial para resoluo do problema de
logaritmo discreto para o RSA. At o presente, os melhores algoritmos para a resoluo do
problema de logaritmo discreto para o sistema de curvas elpticas (para curvas escolhidas
corretamente) continuam com complexidade de ordem exponencial [6, 9, 10, 11].

Sistema de Criptografia com Curvas Elpticas


Um sistema de criptografia assimtrica baseado em um grupo de curvas elpticas sobre
um campo finito foi primeiramente proposto, de maneira independente, por Koblitz [12
apud 1] e Miller [13] em 1985. Concentra-se no problema do logaritmo discreto num grupo
formado pelos pontos de uma curva elptica definida em torno de um corpo de Galois [14]. O
melhor algoritmo conhecido para resoluo deste problema tem complexidade exponencial, o
que confere um alto grau de segurana ao sistema. A definio de uma curva elptica a
seguinte (os conceitos matemticos no detalhados neste trabalho podero ser consultados em
[8]):

Definio de uma Curva Elptica


Seja K um campo. Por exemplo, K pode ser o campo finito Fq de Fq, ou o campo de
primos Zp, onde p um nmero primo grande, o campo R de nmeros reais, o campo Q de
nmeros racionais ou o campo C de nmeros complexos. Uma curva elptica sobre o campo
K definida pela equao de Weierstrass:

8/14

y 2 + a1 xy + a3 y = x 3 + a 2 x 2 + a 4 x + a6

(1)

onde a1 , a3 , a 2 , a 4 , a 6 K .

A curva elptica E sobre K denominada E(K).

O nmero de pontos em E (a

cardinalidade) denominada #E(K) ou somente #E.


A equao de Weierstrass pode ser transformada e simplificada para diferentes formas
por uma troca linear de variveis. Para um campo de caracterstica diferente de 2 e de 3, ou
seja, para um campo Zp, para p>2, a curva elptica E sobre este campo Zp definida por uma
equao da forma:
y 2 = x 3 + ax + b

(2)

onde a, b Z p e 4a 3 + 27b 2 (mod p ) 0 , de modo que o polinmio no tenha razes

mltiplas, e ainda um elemento 0 chamado ponto no infinito.

O conjunto E(Zp) consiste em todos os pontos ( x, y ) | x, y Z p que satisfazem a

equao (1), juntamente com o ponto 0. A Figura 6 demonstra a aparncia de uma curva
elptica.

Figura 6: Exemplo de uma curva elptica [14].

9/14

Existe uma regra para somar dois pontos pertencentes a uma curva elptica, de tal
forma que esta soma seja um terceiro ponto sobre a mesma curva. O conjunto de pontos
E(Zp), juntamente com a operao de soma, formam um grupo abeliano, onde o ponto no

infinito 0 o elemento neutro.


Sejam, pois, P = (x1 ; y1) e Q = (x2 ; y2) dois pontos distintos tomados em uma curva
elptica E. A soma de P e Q, denotada por R = (x3 ; y3) definida atravs do traamento de
uma linha que atravesse P e Q. Esta linha intercepta a curva elptica E em um terceiro ponto,
onde R a reflexo deste ponto sobre o eixo x. Este ponto R portanto o resultado da
operao de soma P + Q.
Se P = (x1 ; y1), ento o dobro de P, denotado por R = (x3 ; y3) define-se pelo
traamento de uma reta tangente curva elptica no ponto P. Esta reta intercepta a curva em
um segundo ponto, cuja reflexo sobre o eixo x o ponto R [14].
As frmulas algbricas que representam P + Q podem ser derivadas dos
procedimentos geomtricos na Figura 7.
O inverso de P = ( x1 ; y1 ) E P = ( x1 ; y1 ) . Se
Q -P, ento P + Q = ( x3 ; y 3 ) , onde
x3 = 2 x1 x 2
y 3 = ( x1 x3 ) y1

Onde

y 2 y1

x x , se P Q
= 22 1

3 x1 + a , se P = Q
2 y1

Figura 7: Frmula da adio para curva elptica [8].

A Figura 8 ilustra a adio de pontos diferentes e do mesmo ponto numa curva


elptica, conforme definida acima.

10/14

Figura 8: Adio de dois pontos diferentes P e Q resultando em P + Q e adio do ponto H com ele
mesmo, resultando em 2H [9].

O Problema do Logaritmo Discreto


J que uma curva elptica E transformada em um grupo abeliano por uma operao
de adio (e no por uma operao de multiplicao), a exponenciao de um ponto em E
refere-se a uma adio repetida. Assim sendo, a ensima potncia de E o ensimo
mltiplo de , ou seja, = n = n . O logaritmo de na base o nmero n, o inverso da
exponenciao [8].
Para um grupo qualquer G, suponha-se que , G . Num problema de logaritmo
discreto, tenta-se resolver para um inteiro x tal que x = . Analogamente, no problema do
logaritmo discreto em curvas elpticas, tenta-se resolver para um inteiro x tal que x=,

para , E . Para que este problema numa curva sobre E(Fq) seja computacionalmente
intratvel, importante selecionar uma curva E e q apropriados tal que #E(Fq) seja divisvel
por um nmero primo grande (de mais de 30 dgitos), ou tal que q seja um nmero primo
grande.

11/14

O problema do logaritmo discreto pode ser expresso de outra maneira: dados P e Q,


pontos pertencentes ao grupo, encontrar um nmero k tal que kP = Q; k denominado o
logaritmo discreto de Q na base P. Exemplo: no grupo Z*13, qual o logaritmo discreto (x) de
8 na base 7 [14]. O clculo feito iterativamente, conforme ilustrado a seguir.
7x mod 13 = 8, x = ?
70 mod 13 = 1
71 mod 13 = 7
72 mod 13 = 10
73 mod 13 = 5
74 mod 13 = 9
75 mod 13 = 11
76 mod 13 = 12
77 mod 13 = 6
78 mod 13 = 3
79 mod 13 = 8

A soluo encontrada iterativamente foi, portanto, o nmero 9.

Para nmeros

escolhidos cuidadosamente, a complexidade do algoritmo de descoberta resulta na ordem


exponencial, tornando invivel o clculo de x.

Implementao do Sistema de Criptografia anlogo ao ElGamal


Usando os conceitos de curvas elpticas num sistema de criptografia anlogo ao
sistema ElGamal [7], uma curva elptica e um ponto P na curva so escolhidos e tornados
pblicos. Se um interlocutor A deseja se comunicar com B (chamar-se- aqui A de Alice e B
de Bob, de acordo com a conveno quase universalmente adotada na literatura sobre
criptografia), ento Alice escolhe um inteiro a e torna pblico o ponto aP (exponenciao ou
adio repetida). Alice mantm o nmero a secreto. Assume-se que a mensagem composta
de pares ordenados de elementos num grupo.
Para transmitir a mensagem (M1 ; M2) para Alice, Bob escolhe um inteiro aleatrio k e
calcula os pontos kP e akP = (xk ; yk). Um k diferente deve ser adotado para cada nova
mensagem.

Ento Bob envia para Alice o ponto kP e o campo de elementos

(m1 ; m2) = (M1xk ; M2yk). A mensagem original (M1 ; M2) pode ser decifrada por Alice

12/14

usando sua chave secreta a, atravs do clculo de akP a fim de obter os pontos xk e yk. A
mensagem cifrada pode ser decriptada atravs da diviso, obtendo M1 = m1/xk e M2 = m2/yk
[1, 10]. A Figura 9 ilustra todo o processo.

Esquema de Criptografia usando Curvas Elpticas


(anlogo ao ElGamal)
Conhecimento Pblico: - curva E
- ponto P
Alice

1. Escolhe um inteiro a
2. calcula aP

Bob

aP

(kP, xkM1 ; ykM2)

1. Escolhe k aleatrio
2. Calcula kaP = (xk; yk)
3. Calcula (xkM1 ; ykM2)

1. Calcula akP = (xk; yk)


2. Encontra M1 e M2 atravs da diviso por xk e yk

Figura 9: Esquema de criptografia baseado em ElGamal e curvas elpticas [1].

Concluso
Este artigo descreve brevemente a aplicao das curvas elpticas para um sistema de
criptografia de chaves assimtricas. As curvas elpticas provm uma dificuldade maior para o
problema do logaritmo discreto, se comparadas s tcnicas comumente usadas de fatorao de
nmeros grandes ou o sistema Diffie-Hellman. Isso significa que, para chaves de tamanhos
menores, um sistema baseado em curvas elpticas mostra ter um nvel de segurana
comparvel ao sistema RSA com chaves substancialmente maiores.
Apesar da matemtica envolvida no conceito de curvas elpticas ser de razovel
complexidade, o artigo pretendeu introduzir os conhecimentos mnimos para assimilao do
mecanismo de funcionamento do sistema e disponibilizar, no levantamento bibliogrfico,
referncias teis para maior aprofundamento.

13/14

Referncias

1.

BOTES, J. J.; PENZHORN, W. T. Public-key cryptosystems based on elliptic curves.


Communications and Signal Processing, 1993., Proceedings of the 1993 IEEE
South African Symposium.

2.

SIMMONS, G. J. Symmetric and asymmetric encryption. Computing Surveys, v.


11(4), p. 305-330, 1979.

3.

DIFFIE, Whitfield; HELLMAN, Martin. E. New directions in cryptography. IEEE


Transactions on Information Theory, vol. 22, n. 6, p. 644-654, 1976.

4.

SOUSA JR., Rafael Timteo de. Princpios da segurana da informao. Material


didtico do curso de Segurana em Redes do Mestrado em Redes de
Computadores da Universidade Salvador UNIFACS. Salvador, BA, 2005.

5.

RIVEST, R. L.; SHAMIR, A.; ADLEMAN, L. M. A method for obtaining digital


signatures and public-key cryptosystems. Communications of the ACM, vol.
21, p. 120-126, fev. 1978.

6.

RAJU, G. V. S.; AKBANI, R. Elliptic curve cryptosystems and its applications. In:
IEEE INTERNATIONAL CONFERENCE ON SYSTEMS, MAN AND
CYBERNETICS, 2003. Anais vol. 2, out. 2003, p. 1540-1543.

7.

EL GAMAL, Taher. A public key cryptosystem and a signature scheme based on


discrete logarithms. IEEE Transactions on Information Theory, vol. IT-31,
1985.

8.

SAEKI, Mugino. Elliptic curve cryptosystems. 1997. 82 f. Dissertao (Master of


Science in Computer Science) School of Computer Sciences, McGill University,
Montreal. Disponvel em: <http://www.cs.mcgill.ca/~crepeau/PDF/memoiremugino.pdf>. Acesso em: 25 fevereiro 2005.

9.

RAUSCHER, Reinhard; BOHNSACK, Frank. Results of an Elliptic-curve-approach


for use in cryptosystems. In: 25th EUROMICRO CONFERENCE, 1999.
Anais vol. 2, set. 1999, p. 415-422.

10.

SUTIKNO, Sarwono; SURYA, Andy; EFFENDI, Ronny. An Implementation of El


Gamal elliptic curves cryptosystem. In: IEEE ASIA-PACIFIC CONFERENCE
ON CIRCUITS AND SYSTEMS, 1998. Anais nov. 1998, p. 483-486.

11.

SEROUSSI, Gadiel. Elliptic curve cryptography. In: INFORMATION THEORY


AND NETWORKING WORKSHOP, 1999. Anais jun-jul 1999, p. 41.

12.

KOBLITZ, N. Elliptic curve cryptosystems. Mathematics of Computation, vol. 43,


n. 177, p. 203-209, 1987.

13.

MILLER, Victor S. Use of elliptic curves in cryptography. In: CRYPTO 85


ADVANCES IN CRYPTOLOGY. Anais 1986, p. 417-426.

14/14

14.

CARTER, Miguel Cadena; MARTINEZ Q., Juan Carlos. Firmas digitales


utilizando curvas elipticas. Laboratrio de Computo Especializado, Universidad
Autonoma
de
Bucaramanga.
Disponvel
em:
<http://www.acis.org.co/memorias/JornadasSeguridad/IJNSI/firma_unab.ppt>.
Acesso em: 25 fev 2005.

15.

QIU, Qizhi; XIONG, Qianxing. Research on elliptic curve cryptography. In: THE
8TH INTERNATIONAL CONFERENCE ON COMPUTER SUPPORTED
COOPERATIVE WORK IN DESIGN, 2004. Anais vol. 2, maio 2004, p. 698701.

Você também pode gostar