Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
MARCOS PORTNOI
Salvador BA 2005
2/14
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
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].
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.
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].
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)
equao (1), juntamente com o ponto 0. A Figura 6 demonstra a aparncia de uma curva elptica.
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
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].
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
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.
aP
(kP, xkM1 ; ykM2) 1. Calcula akP = (xk; yk) 2. Encontra M1 e M2 atravs da diviso por xk e yk
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.
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.