Вы находитесь на странице: 1из 10

Curvas Elpticas: Aplicao em Criptograa Assimtrica

Pedro Carlos da Silva Lara1 , Fbio Borges de Oliveira1 Laboratrio Nacional de Computao Cientca LNCC Coordenao de Sistemas e Redes CSR Av. Getlio Vargas, 333 - Quitandinha 25.651-075 Petrpolis, RJ
{pcslara,borges}@lncc.br
1

Abstract. Since the introduction of asymmetric cryptography by W. Dife and M. Hellman in 1976, the Discrete Logarithm Problem (DLP) has been used in many different ways. A variation of the use of the (DLP) is in elliptic curves, which one this paper is allowed to discuss some relevant topics. In the end, we will use ElGamal and Menezes-Vanstone algorithms and with some examples, we will show the elliptic curves application in asymmetric cryptography. Resumo. Desde a introduo da criptograa assimtrica por W. Dife e M. Hellman em 1976, o Problema do Logaritmo Discreto (PLD) tem sido usado sob vrias formas. Uma variao do uso do PLD est em curvas elpticas, sobre a qual este trabalho se prontica a descrever alguns tpicos relevantes. Ao nal, usaremos os algoritmos ElGamal e Menezes-Vanstone e, por intermdio de exemplos, mostraremos a aplicao de curvas elpticas em criptograa assimtrica.

1. Introduo
Whiteld Dife e Martin E. Hellman [Dife and Hellman 1976] propuseram uma interessante soluo para o problema de dois usurios estabelecerem uma chave secreta em um canal de comunicao inseguro, que considerada a primeira prtica de criptograa de chave pblica. Suponha que dois usurios, Alice e Bob, queiram estabelecer uma chave secreta compartilhada. Alice seleciona aleatoriamente um inteiro secreto a tal que a Zp e envia para Bob PA = g a mod p (a = 0, a = 1 e a = p 1 devem ser evitados [Terada 2000]), sendo p um primo e g um gerador do grupo cclico Z p . Analogamente, b Bob escolhe um inteiro secreto b Zp e envia Alice PB = g . Agora ambos usam sua chave secreta para obter uma chave secreta compartilhada K = (PA )b = (PB )a = g ab , observe que a segurana deste protocolo est baseada na diculdade computacional de calcular a dado g e p. Quando estas variveis so relativamente grandes este problema se torna invivel, e conhecido como Problema do Logaritmo Discreto (PLD). Taher ElGamal [ElGamal 1985] props um algoritmo tambm baseado na diculdade de resolver o PLD. Vamos supor que Bob queira enviar uma mensagem m Z p para Alice. s Inicialmente, Alice escolhe s Zp , e logo aps computa y = g mod p. Alice publica y junto com p e g , que ser a sua chave pblica, e s ser a sua chave privada. Bob escolhe aleatoriamente z Zp e calcula c1 = g z mod p e c2 = m y z mod p, depois envia para Alice o texto ilegvel (c1 , c2 ). Para decifrar m, Alice computa 1 c2 (cs = m y z (g sz )1 = m (g sz ) (g sz )1 = m mod p, recuperando assim a men1) sagem m. Desde ento muitos algoritmos de criptograa assimtrica usam o PLD como base de sua segurana. Em 1985, V. Miller [Miller 1986] e N. Koblitz [Koblitz 1987],

propuseram independentemente a aplicao de curvas elpticas em criptograa assimtrica. A segurana deste mtodo est, mais uma vez, baseada no PLD. Este criptossistema exige uma chave de comprimento consideravelmente menor que a chave usada em alguns clssicos da criptograa assimtrica, tais como o RSA, no entanto com segurana equivalente, cando acessvel a sistemas com restries computacionais.

2. Conceitos Algbricos
Nesta seo iremos apresentar uma breve introduo teoria das curvas elpticas de modo mais geral, mais a frente iremos discutir estas curvas sobre estruturas mais especcas. Denio. Uma curva elptica sobre um corpo F (assumiremos sempre que F um corpo de caracterstica maior que 3) o lugar geomtrico dos pontos (x, y ) F F que satisfazem a equao y 2 + axy + by = x3 + cx2 + dx + e (1) mais um ponto, chamado de ponto no innito, que ser denotado por . Podemos simplicar a equao (1) deixando na forma y 2 = x3 + ax + b (2)

com a, b F. Esta curva deve ser uma curva no-singular, ou seja, no possui razes mltiplas, para tanto precisamos ter: = 4a3 + 27b2 = 0 Uma das propriedades mais interessantes das curvas elpticas, o fato de seus pontos formarem uma estrutura de grupo, para isso, vamos denir a soma entre seus pontos. Como foi visto, ns contamos com um ponto chamado de ponto no innito ; este ponto desempenhar um importante papel, pois ser o elemento neutro da soma. Logo, se uma curva elptica sobre um corpo F, e temos P , ento: P +=P =+P o simtrico de um ponto P = (x, y ) o ponto P = (x, y ). Se somarmos um ponto P com o seu simtrico P iremos, naturalmente, obter o ponto no innito, ou seja P + (P ) = = (P ) + P Sejam P e Q dois pontos de uma curva elptica sobre o corpo R dos nmeros reais, com P = Q, considere a reta determinada pelo segmento P Q. Esta reta interceptar a curva em um ponto R. O simtrico de R, que dado por R, ser a soma de P e Q. Logo R=P +Q A gura 1 representa gracamente a soma entre dois pontos distintos P, Q em uma curva elptica sobre o corpo R. Em criptograa trabalhamos com curvas elpticas sobre corpos nitos, neste caso Fp e F2m , em outras palavras, trabalhamos com pontos discretos. O grco abaixo apenas um apelo geomtrico para a operao de soma entre os pontos formados por uma curva elptica.

Figura 1. P + Q = R

Se quisermos dobrar um ponto P o procedimento segue da seguinte maneira: passamos uma reta tangente ao ponto P ; esta reta interceptar a curva em outro ponto, que denotaremos por R. O simtrico de R ser a soma de P e P , ou seja R = P + P = 2P Um caso especco congurado se tivermos P um ponto da forma P = (x, 0). Neste caso a reta tangente curva no ponto P ser vertical, contudo, no interceptar a curva em um outro ponto. Neste caso temos que P + P = 2P = 2.1. Curvas Elpticas Sobre Fp Seja o corpo Fp = {0, 1, . . . , p 1}, sendo p um primo qualquer. Todas as operaes admitidas a seguir devem ser calculadas em funo do resto da diviso por p, ou seja, todos os parmetros e variveis pertencem ao conjunto Fp . Uma curva elptica denida sobre o corpo nito primo Fp tem equao do tipo (2). Todos os pares (x, y ) Fp que satisfazem a equao (2) pertencem curva elptica. Como vimos anteriormente, o ponto no innito essencial para que os pontos de uma curva elptica formem um grupo. Tambm devemos garantir que esta curva no possua pontos repetidos, para tanto devemos ter = 0. Iremos denir uma frmula para soma entre dois pontos pertencentes a uma curva elptica [Koblitz et al. 2000], que ser muito til mais a frente. Se quisermos somar P = (x1 , y1 ) com Q = (x2 , y2 ) e seja R = (x3 , y3 ) o resultado desta soma, e se P = Q, temos x3 = 2 x1 x2 mod p y3 = (x1 x3 ) y1 onde =
(y2 y1 ) ( x2 x1 ) (3x2 1 +a) (2y1 )

mod p

mod p, se x1 = x2 mod p, se x1 = x2 e y1 = 0

Se quisssemos multiplicar um ponto P de uma curva elptica por um nmero inteiro n, o procedimento seria som-lo n vezes. Para ilustrar esta situao, seja P , queremos obter 7P . Bastaria computar: 7P = P + 2(P + 2P )

O nmero total de pontos que satisfaz uma curva elptica mais o ponto no innito denominado ordem, que denotaremos por #. Um resultado importante que diz respeito ordem de uma curva elptica se deve a Hasse: Teorema 1 (Hasse) Se uma curva elptica sobre Fq , temos q + 1 2 q # q + 1 + 2 q Existe um algoritmo de R. Scoof para obter # (ver [Schoof 1995] e [Schoof 1985]) que possui tempo de execuo O((log p)8 ). 2.2. Curvas Elpticas Sobre F2m Os elementos de um corpo nito F2m so representados de duas maneiras diferentes: representao polinomial e representao de base tima. Por ser mais simples, iremos trabalhar com a representao polinomial, que a preferida em publicaes de carter tutorial. Na representao polinomial, os elementos de F2m so do tipo F2m = {am1 xm1 + am2 xm2 + . . . + a1 x + a0 : ai {0, 1}} para i N, ou seja, so polinmios de coecientes binrios. Podemos tambm escrever o polinmio na forma (am1 am2 . . . a1 a0 ) Exemplo: Vamos descrever o conjunto F23 F23 = {(0), (1), (x), (x + 1), (x2 ), (x2 + 1), (x2 + x), (x2 + x + 1)} ou F23 = {(000), (001), (010), (011), (100), (101), (110), (111)} Assim como em Fp , onde todas as operaes esto fechadas mdulo p, em F2m estas operaes esto fechadas mdulo um polinmio irredutvel de grau m, ou seja, um polinmio o qual impossvel fatorar em outros polinmios de graus menores. As operaes de adio e multiplicao so de grande importncia em F2m , pois delas derivamos as operaes de subtrao e exponenciao, respectivamente. importante ressaltar a presena de um elemento gerador de F2m , ou seja, se g um gerador de F2m , obtemos todos elementos de F2m {0} a partir das potncias de g . Seja g um gerador de F2m . Os elementos de F2m so m m F2m = {0, g, g 2 , . . . , g 2 2 , g 2 1 } Se temos i, j N ento g i g j = g i+j = g i+j mod 2 1 e g ij = g ij mod 2 1 em F2m . A equao padro de uma curva elptica sobre F2m ligeiramente diferente das curvas sobre Fp : : y 2 + xy = x3 + ax2 + b em F2m Seja P = (x, y ) um ponto de uma curva elptica qualquer sobre F2m . O inverso deste ponto dado por P = (x, y + x). Observe a diferena: o inverso de P = (x, y ), em Fp , P = (x, y ). As equaes que denem a soma tambm so um pouco diferentes das equaes em Fp . Se quisermos somar P = (x1 , y1 ) com Q = (x2 , y2 ) e seja R = (x3 , y3 ) o resultado desta soma, e se P = Q, ento y 2 + y1 2 y 2 + y1 + x2 +x1 + x1 + x2 + a, se P = Q x2 + x1 x3 = b x2 1 + 2 , se P = Q
x1
m m

e y3 =

y2 + y1 x2 + x1

(x1 + x3 ) + x3 + y1 , se P = Q
y1 x1

x2 1 + x1 +

x3 + x3 , se P = Q

3. Segurana
Se um esquema criptogrco est baseado em um problema matemtico, a nica forma de quebrar esse sistema por intermdio de algoritmos que tentem resolver, da forma mais eciente possvel, o problema proposto. Tais algoritmos se dividem em dois tipos bsicos: algoritmos especcos e algoritmos genricos [Barbosa 2003]. Algoritmos especcos so utilizados em casos bem denidos, baseiam-se em determinados aspectos, ou seja, onde se conhece um tipo de parmetro, cando o seu uso restrito a esses tipos de situaes. J os algoritmos genricos no se preocupam com qualquer tipo de restrio. Dois tipos de curvas elpticas apresentam uma certa fraqueza contra algoritmos especcos, so elas: supersingulares (supersingular elliptic curve) e anmalas (anomalous elliptic curve). Seja (Fp ) uma curva elptica, denimos esta curva como anmala, se a ordem desta curva for p, ou seja, # = p. Pelo teorema de Hasse, sabemos que #(Fq ) = q + 1 t, onde |t| 2 q . Uma curva elptica chamada de supersingular se, e somente se, t = 0 mod p. Estas duas curvas devem ser evitadas, pois existem algoritmos ecientes contra ambas. fcil observar que o nmero de curvas supersingulares ou anmalas extremamente menor em relao ao nmero total de curvas possveis sobre um corpo nito qualquer [Barreto 1999]. Para tanto, o NIST (National Institute of Standards and Technology) recomenda em seu site curvas e parmetros de aplicao segura. Os algoritmos genricos, como era de se esperar, possuem o tempo de execuo superior ao especco. Este tempo de execuo permitir avaliar quanto o sistema criptogrco seguro. Existem algoritmos para resolver o PLD e o Problema da Fatorao de Inteiros (PFI) (ver [Semaev 1998], [Adleman and DeMarrais 1994]), porm nenhum possui tempo de execuo polinomial. Sendo assim, esses problemas so considerados de difcil resoluo. O algoritmo genrico mais conhecido para o PLD sobre curvas elpticas o Pollard- (Pollards rho [Pollard 1978]) que tem tempo de execuo de O( n) [Gordon and McCurley 1993] onde n a ordem da curva (ver [Teske 1998], [Kuhn and Struik 2001]). Observe que este algoritmo exponencial em relao ao nmero de bits necessrios para representar a ordem do grupo. J para o PLD e o PFI o 1 2 tempo de execuo O(exp(c + O(1))(ln n) 3 (ln ln n) 3 ) onde c uma constante e n = pq ; este considerado sub-exponcial. Logo, mais difcil de se resolver o PLD sobre curvas elpticas do que o PLD original e o PFI. Por estes motivos, um criptossistema baseado em curvas elpticas necessita de uma chave de aproximadamente 160 bits, e o RSA, por exemplo, utiliza uma chave de 1024 bits, mantendo segurana equivalente em ambos. Na tabela 1 podemos ver o tamanho das chaves em bits, com o mesmo grau de segurana. Como era de se esperar, os algoritmos simtricos necessitam de chaves muito menores que os assimtricos. O mais relevante na tabela 1 a diferena considervel entre os algoritmos assimtricos.

4. O PLD Sobre Curvas Elpticas


Nesta seo iremos tratar do PLD sobre curvas elpticas. Antes de entrar em curvas elpticas, vamos falar de forma mais geral. Seja (G, ) um grupo munido com a operao ,

Tabela 1. Tamanho das chaves em bits.

Modelo de Criptograa Simtrico ECC RSA Razo ECC:RSA 80 163 1024 1:6 128 256 3072 1:12 192 384 7680 1:20 256 512 15360 1:30 e dado G um gerador de um subgrupo J de G, ou seja, J = {i : i 0}. Sendo J , o problema consiste em calcular s tal que s = onde s = . . . s vezes [Terada 2000]. No caso de uma curva elptica, o conjunto G formado pelos pontos desta curva mais o ponto no innito , e a operao binria representada pela soma de dois pontos na curva, ou seja, a diculdade que era na exponenciao agora est na multiplicao de um inteiro por um ponto de uma curva elptica. Isso signica que o problema consiste em encontrar um inteiro que foi multiplicado por um ponto da curva elptica, isto , seja uma curva elptica, dados os pontos P, Q encontrar s tal que P = sQ.

5. Aplicao de Curvas Elpticas em Criptograa


Nesta seo iremos expor dois mtodos usados para criptografar mensagens usando curvas elpticas. Ilustraremos com exemplos numricos tais algoritmos, tendo em vista facilitar o entendimento. Iremos trabalhar com ambos os corpos Fp e F2m para descrever o algoritmo ElGamal sobre curvas elpticas, no entanto o outro algoritmo (Menezes-Vanstone) que mostraremos aplicado apenas em corpos primos Fp . 5.1. O Algoritmo ElGamal Sobre Curvas Elpticas Como o algoritmo ElGamal trabalha com um grupo, podemos us-lo sobre curvas elpticas. Vamos supor que Alice deseja enviar uma mensagem para Bob, seja m esta mensagem mapeada num ponto de uma curva elptica, para tanto vamos ao algoritmo [Hankerson et al. 2003]. Algoritmo: 1. Bob escolhe, e mantm em segredo, um inteiro b N e envia Alice K = bP , sendo P um ponto da curva elptica conhecido publicamente. 2. Alice escolhe inteiro a N (tambm o guarda para si) e computa c1 = aP e c2 = m + aK . 3. Para decifrar a mensagem m Bob calcula c2 bc1 = m + abP baP = m. Para facilitar o entendimento, vamos a um exemplo. Exemplo: Iremos criptografar a palavra LNCC, neste caso iremos cifrar em blocos de duas letras, primeiro mapeamos as letras LN e depois CC em pontos de uma curva elptica. Neste exemplo iremos mapear da seguinte maneira: cada letra do alfabeto estar associada a um nmero entre 01 e 26 de forma que A= 01, B= 02, . . ., Z= 26, porm, precisamos mapear esta mensagem em pontos de uma curva elptica. Para isso iremos multiplicar o nmero associado letra por um ponto P , logo iremos concatenar os nmeros associados e depois multiplicar por P . Para ilustrar esta situao, vamos supor que iremos mapear

AB em uma curva elptica y 2 = x3 + 373x + 402 sobre F3697 , como A= 01 e B= 02 concatenamos 01 e 02, obtemos 0102 e multiplicamos por P , digamos P = (551, 1946), logo 102P = 102(551, 1946) = (3108, 1065). Logo, AB=(3108, 1065). Vamos supor que Alice enviar a palavra LNCC para Bob, para tanto 1. Bob escolhe um nmero inteiro b, digamos b = 919, e envia Alice P = (551, 1946) e K = bP = 919(551, 1446) = (301, 3454) (observe que um problema invivel descobrir b a partir de K e P ). Observe que K pertence a curva elptica y 2 = x3 + 373x + 402 sobre F3697 . 2. Alice escolhe um inteiro a = 815, e multiplica c1 = 815P = 815(551, 1946) = (958, 14). Agora Alice precisa mapear a string LN, procedendo do modo que zemos acima. A string foi mapeada no ponto m = LN = (2309, 2502). Precisamos somar este ponto ao ponto obtido por aK = 815K = 815(301, 3454) = (837, 2461). Agora Alice mascara o ponto m = LN = (2309, 2502), somando-o ao ponto aK . Logo, c2 = m + aK = (2309, 2502) + (837, 2461) = (1518, 14). Alice transmite a Bob o par de pontos cifrados (c1 , c2 ) = ((958, 14), (1518, 14)) 3. Para descriptar Bob deve calcular m = c2 bc1 . Primeiro Bob calcula o valor de bc1 = 919c1 = 919(958, 14) = (837, 2461). Prosseguindo, temos que m = c2 bc1 = (1518, 14) (837, 2461) = (1518, 14)+((837, 2461)) = (1518, 14)+ (837, 2461) = (2309, 2502), repare que LN = (2309, 2502). 4. Para criptografar as letras CC o procedimento o mesmo, agora Alice s precisa calcular o ponto c2 = m + aK CC = 0303P = 303(551, 1946) = (3023, 762) = m, c2 = (3023, 762) + (837, 2461) = (3084, 2426) e envia c2 = (3084, 2426) para Bob. 5. Bob novamente calcula m = c2 bc1 = (3084, 2426) (837, 2461) = (3084, 2426) + ((837, 2461)) = (3084, 2426) + (837, 2461) = (3023, 762), recuperando a string CC, e assim encerra o processo. Neste trabalho, expomos dois corpos para serem usados sobre curvas elpticas, Fp e F2m . No exemplo anterior usamos o corpo Fp , agora usaremos como exemplo um corpo nito do tipo F2m , usando tambm o algoritmo ElGamal para criptografar a palavra LNCC. A convenincia em usar o corpo F2m que podemos represent-lo por strings de m bits, ou seja, cada elemento de F2m pode ser representado por um nmero binrio entre 0 e 2m 1. Usaremos a curva elptica : y 2 + xy = x3 + g 140 x2 + g 97 . Observe que a = g 140 = x6 + x5 + x3 + x2 = (01101100) e b = g 97 = x6 + x2 + x = (01000110), onde g = x7 + x3 + x2 + x um polinmio gerador de F28 . Portanto, os pontos desta curva sero um par de polinmios pertencentes a F28 . Por exemplo, o ponto (g 63 , g 81 ) pertence a , visto que (g 81 )2 + g 63 g 81 = (g 63 )3 + g 140 (g 63 )2 + g 97 g 162 + g 144 = g 189 + g 11 + g 97 (10001100) (10110110) = (11010001) (10101101) (01000110) (00111010) = (00111010) Exemplo: Novamente, Alice quem enviar uma mensagem para Bob. Vamos supor que, depois de mapeado na curva elptica , LN = (g 137 , g 40 ) e CC = (g 82 , g 102 ).

1. Bob escolhe um inteiro, b = 77, e envia para Alice P = (g 58 , g 27 ) = ((10011000), (10011110)) (a partir de agora, para a notao no car muito carregada, iremos usar (g 115 , g 49 ) no lugar de ((00110011), (10110010) por exemplo) e K = bP = 77(g 58 , g 27 ) = (g 23 , g 13 ), sendo P um ponto da curva elptica : y 2 + xy = x3 + g 140 x2 + g 97 . 2. Alice escolhe um inteiro a = 52, e multiplica c1 = 52P = 52(g 58 , g 27 ) = (g 182 , g 99 ). Como a string j foi mapeada, m = LN = (g 137 , g 40 ). Precisamos somar este ponto ao ponto obtido por aK = 52K = 52(g 23 , g 13 ) = (g 2 , g 14 ). Agora Alice esconde o ponto m = LN = (g 137 , g 40 ) somando-o ao ponto aK , logo c2 = m + aK = (g 137 , g 40 ) + (g 2 , g 14 ) = (g 174 , g 7 ), e envia os pontos cifrados (c1 , c2 ) = ((g 182 , g 99 ), (g 174 , g 7 )). 3. Bob agora precisa descriptografar o texto ilegvel (c1 , c2 ) = ((g 182 , g 99 ), (g 174 , g 7 )) que recebeu de Alice, para isso deve calcular m = c2 bc1 . Primeiro Bob calcula o valor de bc1 = 77c1 = 77(g 182 , g 99 ) = (g 2 , g 14 ). Vimos que, se P = (x, y ), ento P (x, x + y ). Fazendo isso te2 2 14 2 77 mos que bc1 = (g , g + g ) = (g , g ). Prosseguindo temos que m = c2 bc1 = (g 174 , g 7 ) (g 2 , g 14 ) = (g 174 , g 7 ) + ((g 2 , g 14 )) = (g 174 , g 7 ) + (g 2 , g 77 ) = (g 137 , g 40 ); observe que LN = (g 137 , g 40 ) recuperado assim a primeira parte da mensagem. 4. Alice repete o mesmo procedimento, s que agora j temos o ponto c1 = (g 182 , g 99 ). A mensagem CC foi mapeada no ponto CC = (g 87 , g 102 ), como foi dito anteriormente. Para obter o ponto c2 , ela computa c2 = m + aK = (g 87 , g 102 ) + (g 2 , g 14 ) = (g 66 , g 135 ), e envia para Bob o ponto c2 = (g 66 , g 135 ). 5. Bob agora calcula m = (g 66 , g 135 ) + (g 2 , g 77 ) = (g 87 , g 102 ). Lembre-se que Bob j havia calculado o valor de bc1 = (g 2 , g 77 ), recuperando a string CC e, assim, nalizando o algoritmo. 5.2. O Criptossistema Menezes-Vanstone Uma outra tcnica muito usada para criptografar dados usando curvas elpticas o criptossistema Menezes-Vanstone [Menezes and Vanstone 1993]. Neste sistema, o texto legvel um par ordenado m = (x1 , x2 ), com x1 , x2 F p , sendo que m no um ponto da curva elptica em questo, diferentemente do criptossistema anterior. O texto ilegvel ser uma tripla ordenada r = (y0 , y1 , y2 ), onde y1 , y2 F p e y0 um ponto da curva elptica. Segue abaixo o algoritmo usado neste mtodo. Algoritmo: Para criptografar m = (x1 , x2 ). 1. Bob escolhe um inteiro k F p e calcula y0 = kP (lembre-se que Bob conhece publicamente o ponto P ). 2. Bob computa (c1 , c2 ) = kQ, y1 = c1 x1 mod p e y2 = c2 x2 mod p. Envia para Alice a tripla r = (y0 , y1 , y2 ). Para descriptografar r = (y0 , y1 , y2 ). 1. Alice calcula sy0 = skP = kQ = (c1 , c2 ), onde s um inteiro selecionado por Alice. Observe que Q = sP . 2. Logo aps, Alice calcula x1 = y1 (c1 )1 mod p e x2 = y2 (c2 )1 mod p, recuperando a mensagem m = (x1 , x2 ).

Vamos a um exemplo da aplicao deste criptossistema. Exemplo: Bob ir enviar a mensagem MCT para Alice, tal mensagem ser codicada na tabela ASCII. Ento temos que M = 77, C = 67 e T = 84. Como a mensagem legvel ser o par m = (x1 , x2 ), vamos separar em dois caracteres. Logo, a mensagem legvel car m = (7767, 84). Para Bob criptografar tal palavra ele precisa conhecer os pontos P = (1355793, 621792) e Q = (949594, 812871) , onde : y 2 = x3 + 67110x + 262147 est sobre F2097421 e Q = 78771 P , ou seja, Alice escolheu o inteiro s = 78771. 1. Bob escolhe k = 23358, e logo aps computa y0 = kP = (1390038, 1344654). 2. Bob agora calcula kQ = (647014, 449701) = (c1 , c2 ), c1 x1 = 647014 7767 = 2034443 mod p e c2 x2 = 449701 84 = 21306 mod p. Bob envia r = (y0 , y1 , y2 ) para Alice. Repare que y0 um ponto da curva elptica e y1 e y2 so inteiros pertencentes a F2097421 . 3. Para descriptografar Alice calcula s y0 = (647014, 449701) = (c1 , c2 ). Para nalizar calcula x1 = y1 (c1 )1 = 7767 mod p e x2 = y2 (c2 )1 = 84 mod p, recuperando a mensagem MCT.

6. Consideraes Finais
Conclumos que os mtodos de criptograa sobre grupos de curvas elpticas possuem segurana equivalente ao RSA, entretanto, com quantidade de bits consideravelmente menor na chave criptogrca, o que possibilita um ganho substancial de processamento. Uma vez que a chave criptogrca pode ser reduzida, podemos ter criptograa com curvas elpticas em dispositivos com pouco poder computacional, por exemplo, cartes de banco. Isto se deve ao fato de que o PLD sobre pontos de uma curva elptica mais difcil de ser resolvido do que sobre um corpo primo, como foi mostrado na seo 3 . Alm disto, os portais de bancos na Internet podero processar muito mais requisies sem a necessidade de aumentar sua capacidade de processamento. Assim, conclumos que deve ser recomendada a substituio do RSA por mtodos de criptograa baseados em curvas elpticas. Tambm ca recomendado o uso do algoritmo de Menezes-Vanstone para troca de chaves. Estas recomendaes possibilitam a existncia de segurana com maior velocidade e capacidade de transmisso de dados.

7. Agradecimentos
Gostaramos de agradecer ao PIBIC/CNPq, pelo apoio nanceiro para este trabalho.

Referncias
Adleman, L. M. and DeMarrais, J. (1994). A subexponential algorithm for discrete logarithms over all nite elds. In CRYPTO 93: Proceedings of the 13th Annual International Cryptology Conference on Advances in Cryptology, pages 147158, London, UK. Springer-Verlag. Barbosa, J. C. (2003). Criptograa de chave pblica baseada em curvas elpticas. Dissertao de Mestrado, COPPEUFRJ. Barreto, P. (1999). Curvas elpticas e criptograa - conceitos e algoritmos. Dife, W. and Hellman, M. E. (1976). New directions in cryptography. IEEE Trans. Information Theory, IT-22(6):644654.

ElGamal, T. (1985). A public key cryptosystem and a signature scheme based on discrete logarithms. IEEE Trans. Inform. Theory, 31(4):469472. Gordon, D. M. and McCurley, K. S. (1993). Massively parallel computation of discrete logarithms. Lecture Notes in Computer Science, 740:312323. Hankerson, D., Menezes, A. J., and Vanstone, S. (2003). Guide to Elliptic Curve Cryptography. Springer-Verlag New York, Inc., Secaucus, NJ, USA. Koblitz, N. (1987). 48(177):203209. Elliptic curve cryptosystems. Mathematics of Computation,

Koblitz, N., Menezes, A., and Vanstone, S. (2000). The state of elliptic curve cryptography. Des. Codes Cryptography, 19(2-3):173193. Kuhn, F. and Struik, R. (2001). Extensions of pollards rho algorithm for computing multiple discrete logarithms. In SAC 01: Revised Papers from the 8th Annual International Workshop on Selected Areas in Cryptography, pages 212229, London, UK. Springer-Verlag. Menezes, A. and Vanstone, S. A. (1993). Elliptic curve cryptosystems and their implementations. J. Cryptology, 6(4):209224. Miller, V. S. (1986). Use of elliptic curves in cryptography. In Advances in cryptology CRYPTO 85 (Santa Barbara, Calif., 1985), volume 218 of Lecture Notes in Comput. Sci., pages 417426. Springer, Berlin. Pollard, J. M. (1978). Monte Carlo methods for index computation mod p. Mathematics of Computation, 32:918924. Schoof, R. (1985). Elliptic curves over nite elds and the computation of square roots mod p. Mathematics of Computation, 44:483494. Schoof, R. (1995). Counting points on elliptic curves over nite elds. J. Theor. Nombres Bordeaux (219254). Semaev, I. A. (1998). An algorithm for evaluation of discrete logarithms in some nonprime nite elds. Math. Comput., 67(224):16791689. Terada, R. (2000). Segurana de Dados: Criptograa em Redes de Computadores. Edgard Blucher, 1 edition. Teske, E. (1998). Speeding up pollards rho method for computing discrete logarithms. In ANTS-III: Proceedings of the Third International Symposium on Algorithmic Number Theory, pages 541554, London, UK. Springer-Verlag.

Вам также может понравиться