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 the use of elliptic curves in cryptography. Its security is based on the discrete logarithm problem. The discrete logarithm problem 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 inexeqvel 1 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 + a 6
onde a1 , a3 , a 2 , a 4 , a 6 K .

(1)

A curva elptica E sobre K denominada E(K). cardinalidade) denominada #E(K) ou somente #E.

O nmero de pontos em E (a

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
onde a, b Z p e 4a 3 + 27b 2 (mod p ) 0 , de modo que o polinmio no tenha razes

(2)

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 3x1 + 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. exponencial, tornando invivel o clculo de x.

Para nmeros

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

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 Bob

1. Escolhe um inteiro a 2. calcula aP

aP

(kP, xkM1 ; ykM2) 1. Calcula akP = (xk; yk) 2. Encontra M1 e M2 atravs da diviso por xk e yk

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

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. SIMMONS, G. J. Symmetric and asymmetric encryption. Computing Surveys, v. 11(4), p. 305-330, 1979. DIFFIE, Whitfield; HELLMAN, Martin. E. New directions in cryptography. IEEE Transactions on Information Theory, vol. 22, n. 6, p. 644-654, 1976. 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. 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. 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. EL GAMAL, Taher. A public key cryptosystem and a signature scheme based on discrete logarithms. IEEE Transactions on Information Theory, vol. IT-31, 1985. 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. 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. 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. SEROUSSI, Gadiel. Elliptic curve cryptography. In: INFORMATION THEORY AND NETWORKING WORKSHOP, 1999. Anais jun-jul 1999, p. 41. KOBLITZ, N. Elliptic curve cryptosystems. Mathematics of Computation, vol. 43, n. 177, p. 203-209, 1987. MILLER, Victor S. Use of elliptic curves in cryptography. In: CRYPTO 85 ADVANCES IN CRYPTOLOGY. Anais 1986, p. 417-426.

2. 3. 4.

5.

6.

7.

8.

9.

10.

11. 12. 13.

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. 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.

15.