Você está na página 1de 13

CRIPTOGRAFIA DE CHAVE PBLICA: ALGORITMOS QUE POSSIBILITAM A CRIAO DE CHAVE ASSIMTRICA

RAIMUNDO CNDIDO DE SOUSA* RESUMO Este trabalho contm conceitos relacionados criptografia de chave pblica, bem como a aplicao matemtica envolvida nos algoritmos de chave pblica: algoritmo RSA, algoritmo Rabin e algoritmo Elgamal. Conceitos e aplicaes extrados a partir de pesquisa bibliogrfica, com a viso de mostrar a utilizao e funcionamento dos criptossistemas de chave pblica. Palavra-chave: criptografia; chave pblica.

1. INTRODUO Com a disseminao e popularizao da internet, a proteo da privacidade se tornou extremamente importante para cada cidado, pois os seus dados pessoais trafegam na internet, e podem ser grampeados. Criptografia a chave que permite solucionar tecnologicamente este problema. Para tornar seguro o comrcio eletrnico h necessidade de se ter criptografia de alto nvel, tanto de segurana como de eficincia, nas vrias plataformas (Terada, 2000). Os algoritmos de chave pblica vm resolver os problemas de autenticao e integridade. Alm disso, um problema ocorrido na criptografia de chave simtrica (apresenta a mesma chave para cifrar e decifrar) resolvido, pois, propem um modelo onde so utilizadas duas chaves, uma para cifrar outra para decifrar. Uma outra vantagem dos criptossistemas de chave assimtrica a possibilidade da criao de assinatura digital. 2. CONCEITOS BSICOS Em um cenrio tpico, um emissor usa a chave pblica do receptor para criptografar uma mensagem. Apenas o receptor possui a chave particular relacionada para decriptografar a mensagem. A complexidade da relao entre a chave pblica e a chave particular significa que, contanto que as chaves tenham o comprimento necessrio, impraticvel, em termos computacionais, determinar uma a partir da outra. A criptografia de chave pblica tambm chamada de criptografia assimtrica. Poderemos citar alguns conceitos que daro uma maior nfase ao trabalho, que so os seguintes: Chave particular: a metade secreta de um par de chaves criptogrficas que usada com um algoritmo de chave pblica. As chaves particulares so usadas para decriptografar uma chave de sesso simtrica, assinar dados digitalmente ou decriptografar dados que foram criptografados com a chave pblica correspondente. Chave pblica:a metade no secreta de um par de chaves criptogrficas que usada com um algoritmo de chave pblica. As chaves pblicas normalmente so usadas ao criptografar uma chave de sesso, verificar uma assinatura digital ou criptografar dados que possam ser decriptografados com a chave particular correspondente. Autenticao do destino: visa esconder informaes sigilosas das pessoas que controlam as linhas de comunicao e os computadores intermedirios (provedores).

Integridade de informao: busca evitar que um mal- intencionado leia e altere parte da informao transitando na linha de comunicao antes de chegar ao destino, ou seja, o destinatrio gostaria de detectar se alguma alterao parcial foi feita na linha. Autenticao da origem: como evitar que um falso usurio (origem) envie uma informao para destinatrio, ou seja, o destinatrio deseja ter certeza que foi o usurio verdadeiro que enviou a informao. Integridade de banco de dados: como evitar que alguma pessoa desautorizada leia as informaes j enviadas e armazenadas no computador do destinatrio. Deteco de integridade de informao: evita que alguma pessoa desautorizada leia e altere as informaes j enviadas e armazenadas no computador do destinatrio. 3. IDIA INICIAL DE CRIPTOGRAFIA DE CHAVE PBLICA Foi proposto um modelo de criptossistema chamado modelo de chave pblica (Diffie e Hellman, 1978) em que cada usurio possui um par de chaves (S,P) sendo S a sua chave particular, secreta, e P a sua chave pblica. As chaves S e P so relacionadas matematicamente de tal forma que: ?? Se x denota um texto legvel, e S() denota a aplicao da chave S, transforma x em S(x)=y ento P(y) =x onde P() denota a aplicao da chave P, ou seja, S a chave inversa da chave P onde, P(S(x)) =x; ?? O clculo do par de chaves (S,P) computacionalmente fcil. ?? computacionalmente difcil calcular S a partir do conhecimento de P. ?? Os clculos de P() e S() so computacionalmente fceis para quem conhece as chaves. ?? computacionalmente difcil calcular S() sem conhecer a chave S. Estas possibilidades levam ao seguinte cenrio: ?? Cada usurio calcula o seu par de chaves (S,P) no seu computador. ?? A chave guardada de forma segura no seu computador. ?? A chave P distribuda a todos de forma pblica. 4. COMPLEXIDADE DE ALGORITMO Seja n o comprimento de entrada para um algoritmo A. Um algoritmo A de tempo polinomial se a funo f(n) do tempo de execuo no pior caso de A tal que f(n) = O (n K ) para um constante k. Um algoritmo A de tempo exponencial se no existe constante k tal que f(n) = O (n K ).

Algoritmos de tempo polinomial so computacionalmente eficientes (ou viveis ou fceis ), e os algoritmos de tempo exponencial so computacionalmente ineficientes ( ou inviveis ou difceis). Diz-se que um problema computacional invivel ou difcil se no se conhece qualquer algoritmo de tempo polinomial para resolve-lo. 4.1. Problema do logaritmo discreto Alguns criptossistemas , so baseados na dificuldade computacional do problema do logaritmo discreto que o seguinte: Dados um primo p e inteiros g,t: 0 < g,t< p, calcular um inteiro s tal que t = g s mod p. Quando p relativamente longo, ningum at hoje (nem mesmo os pesquisadores especializados ) descobriu um algoritmo eficiente,i.e., de tempo polinomial, para resolver este problema. A idia ento incorporar esta dificuldade de soluo em esquema criptogrfico 5. ALGORITMO RSA Este algoritmo foi publicado em 1978 e o seu nome derivado das iniciais dos seus autores: Ron Rivest, Adi Shamir e Len Adleman. Este algoritmo baseado na dificuldade computacional de fatorar um nmero inteiros em primos. Inicialmente o usurio deve calcular um par de chaves: a chave pblica do usurio P e a chave secreta S. 5.1. Clculo de um par de chaves Calcular dois nmeros inteiros primos e longos ( i. e, com centenas de bits) chamados q e r; e calcular seu produto n = q.r , recomenda-se que o comprimento de q seja prximo de r para tornar invivel a fatorao rpida de n em primos. Calcular um terceiro nmero chamado s relativamente primo a (q- 1) (r- 1) (que igual ? (n) = ? (q) ? (r) e calcular um inteiro p que satisfaa p.s = 1 mod (q- 1) (r- 1) i. e, p=s ? 1 mod n ? atravs do algoritmo de Euclides estendido. A seguir o usurio apaga os nmeros q e r do seu sistema. A chave secreta S = (s,n) guardada com cuidado e a chave pblica P = (p,n) enviada para qualquer pessoa amiga. 5.2. Algoritmo de criptografia e decriptografia Nestas condies,considerando um texto legvel expresso com um nmero inteiro 0 ? m ? n -1, um emissor, conhecendo a chave pblica P do usurio (receptor) efetua os seguintes passos: ?? O emissor calcula e envia para o usurio m p mod n = c, onde p e n so da chave pblica do usurio. ( c chamado texto ilegvel de m )

?? O usurio recebe c e calcula c s mod n que deve ser igual a m. Se eventualmente, um intruso, conseguir grampear o valor c da linha de comunicao entre emissor e receptor, ele no consegue recuperar o valor m, pois ele no conhece a chave secreta S = (s,n), ou seja, o valor c ilegvel paro o intruso. 5.3. Exemplo numrico de RSA q =312313, r =123217, n = 312313 ? 123217 =38482270921, ? (n) = (q- 1) (r- 1) = 312312 ? 123216 = 38481835392, p = 25271899, s = p ? 1 mod ? (n) = 25271899 ? 1 mod 38481835392 = 28963169491, ento, s ? p mod ? (n) = 28963169491 ? 25271899 mod 38481835392 = 1 Um texto legvel abcde representada numericamente por m = 0102030405, isto , a 01, b 02, etc. E ento , sendo m< n, tem-se: m p mod n = 0102030405 25271899 mod 38482270921 = 36647352873 = c, o texto ilegvel para o intruso. 1 c s mod n = 36647352873 2896316949 mod 38482270921 = 0102030405 = m. 5.4. Segurana do RSA A fatorao do mdulo n um ponto vulnervel, alm disso o algoritmo RSA possui outras possveis vulnerabilidades. 5.4.1. Fatorao Se um intruso conseguisse fatorar o nmero n em primos q e r, ento ele poderia calcular s que satisfaa p.s = 1 mod (q- 1) (r- 1) como efetuado no clculo do par de chaves. por isso que recomenda-se q ? r para dificultar a fatorao de n = q.r. O ponto importante aqui que at hoje no se conhece um algoritmo rpido para fatorar um nmero n longo em primos, e consequentemente um intruso no consegue recalcular a chave secreta, mesmo que seja um estudioso do assunto, e tenha um supercomputador sua disposio. Para ilustrar a dificuldade de fatorar um inteiro quando o nmero n possui 129 algarismos decimais, um intruso gastaria 5 mil MIPS- anos, um MIPS- ano significando usar um computador por um ano executando um milho de intruses por segundo. 5.4.1.1. Algoritmos que executam fatorao Utilizando um dos algoritmos mais rpidos que se conhece, chamado QS (de Quadratic Sieve) (Pomerance, 1985). Mais precisamente, o algoritmo QS possui tempo de execuo proporcional a e (ln n )(ln ln n) .

Um outro algoritmo para fatorao chamado NFS (de Number Field Sieve) (Pollard, 1993). 1 /3 2 /3 Com tempo de execuo proporcional a e 1, 92(ln) (ln ln n) , mais rpido que o QS para nmeros com mais 350 bits. Em fevereiro de 1999 foi estabelecido um recorde em fatorao de uma chave RSA de 465 bits (140 decimais ) pela execuo do algoritmo NFS distribudo em centenas de estaes de trabalho, durante vrios meses. 5.4.2. Clculo de ? (n) sem fatorar n Se algum conseguisse calcular ? (n) sem fatorar n, ele poderia calcular a chave secreta s como sendo a inversa da chave pblica p mod ? (n), usando o algoritmo de Euclides estendido. Entretanto, esta possibilidade no mais vivel que fatorar n, pois a existncia de um algoritmo rpido para calcular ? (n) implicaria na existncia de um algoritmo rpido para fatorar n. Isto : ? algoritmo rpido para calcular ? sem fatorar n, ento ? algoritmo rpido para fatorar n. Suponhamos ento que algum tivesse calculado ? (n). Primeiro ele calcula (q + r) a partir do conhecimento de n = q.r e ? (n) (= n (q + r) 1). Depois nota que (q r) raiz quadrada de (q +r) 2 - 4n. Finalmente q a metade da diferena de (q + r) e (q r). Conclui-se assim que esta vulnerabilidade to ou mais difcil que a fatorao de n. 5.5. Autenticao do remetente Vamos supor que alm do par de chaves S = (s,n) e P = (p,n) , existe um outro par P ' =(p ' ,n ' ) e S ' = (s ' ,n ' ) (calculados pelo emissor), com n ' < n. O envio do texto legvel alterado para: ?? O emissor calcula ms mod n ' = a, onde s ' e n ' so da sua chave secreta ( a chamado cdigo de m assinado pelo emissor ). ?? O emissor calcula a p mod n = c, onde p e n so da chave pblica do receptor. ?? O emissor envia c para o receptor. ?? Recebe-se c e calcula c s mod n onde s em so da sua chave secreta. Esse valor deve ser igual a a, pois (s,n) a chave que desfaz o que a chave (p,n) faz. ' ?? O receptor calcula a p mod n ' que deve ser igual a m, pois (p ' , n ' ) a chave que desfaz o que a chave (s ' , n ' ) faz.
'

Neste procedimento temos as seguintes propriedades muito importantes em redes de computadores ( como a internet ):

?? Autenticao do destinatrio , pois s o receptor autntico possui o valor s utilizado para converter c em a e assim o emissor tem certeza de que s o usurio verdadeiro pode ter recuperado m. ?? Autenticao do remetente, isto , o receptor tem certeza que s o emissor verdadeiro pode ter enviado c para ele, pois s o emissor conhece o valor s' utilizado para converter m em a ( portanto, a recebe o nome de cdigo de m assinado pelo emissor). 6. ALGORITMO RABIN Veremos que este algoritmo demonstravelmente seguro e baseia-se na dificuldade computacional de um intruso calcular o texto legvel a partir do conhecimento do texto ilegvel correspondente. Onde essa dificuldade equivalente a de fatorar um inteiro em primos (Rabin,1978). 6.1. Clculo de um par de chaves Calcula-se dois nmeros inteiros primos e longos ( i. e., com centenas de bits) chamados q e r; e calcula-se o seu produto n = q.r. Onde o comprimento de q seja prximo de r tornando invivel a fatorao rpida de n em primos. A chave secreta S = (q, r) guardada com cuidado e a pblica P = (n) enviada para qualquer pessoa amiga. 6.2 Algoritmo de criptografia Nestas condies, considerando um texto legvel expresso como nmero inteiro 0 ? m ? n- 1, um emissor, conhecendo a chave pblica de P de um usurio (receptor), efetua o seguinte passo: Calcula e envia para o usurio m 2 mod n = c.( c o texto ilegvel de m). 6.3. Algoritmo de decriptografia O usurio recebe c e conhecendo a chave secreta (q, r), efetua os seguintes passos: ?? Calcula as quatro razes quadradas de c mod n: m1 , m2 , m3 , m4 . ?? O texto legvel m deve ser ou m1 ou m 2 ou m3 ou m 4 ; se m contiver alguma redundncia, o usurio capaz de decidir qual. Tal redundncia pode ser, por exemplo, uma parte do texto legvel repetida, de tal forma que as outras trs razes no tero tal repetio com alta probabilidade. Se eventualmente, um intruso conseguir gravar o texto ilegvel c da linha de comunicao entre o receptor e emissor , ele no consegue recuperar o valor m, pois ele no conhece a chave secreta S do receptor. Em outras palavras, o valor m inteligvel para um intruso. 6.3. Criptanlise do algoritmo

O algoritmo possui a mesma vulnerabilidade do RSA, pois, se um intruso conseguisse fatorar o n em primos q e r, ento ele poderia calcular m a partir de c. Por outro lado, atravs da fatorao de n conhecendo razes quadradas de a mod n, se um intruso conseguisse calcular m a partir do conhecimento de c, ele conseguiria fatorar n. Portanto, os problemas de fatorar n e calcular m so igualmente difceis. 6.4. Exemplo do algoritmo Vamos supor que o texto le gvel a ser enviado por um emissor seja DABAC, e vamos supor que a redundncia consiste em repetir as duas ltimas letras, resultando DABACAC. Com a representao de cada letra a um nmero: a letra A representa 1, B 2, etc. Assim o texto DABACAC representado pelo nmero m = 4121313. A chave secreta do receptor q = 1123 e r = 7723. A chave pblica do receptor n = q.r = 1123 ? 7723 = 8672929. O emissor calcula o texto ilegvel c = m 2 mod n = 4121313 2 mod8672929 = 577647 e envia c. O receptor recebe c e efetua os seguintes clculos: ?? x 1 = c ?? x 2 = c
q ?1 4

mod q = 577647

1124 4

mod 1123 = 1026;

r ?1 4

mod r = 577647

7724 4

mod 7723 =4954;

?? q ? 1 mod r = 1123 ? 1 mod 7723 = 1623; ?? r ? 1 mod q = 7723 ? 1 mod1123 = 887; ?? (x 2 ? q ? q ? 1 ) mod n = (4954 ? 1123 ? 1623) mod 8672929 = 784977; ?? (x 1 ? r ? r ? 1 ) mod n = (1026 ? 7723 ? 887) mod 8672929 = 3336336; ?? x 0 = (x 2 ? q ? q ? 1 + x 1 ? r ? r ? 1 ) mod n = (784977 + 3336336) mod 8672929 = 4121313; a outra raiz n - x 0 ; o receptor reconhece que x0 m, pois contm a redundncia estabelecida; ?? x '0 = (x 2 ? q ? q ? 1 - x 1 ? r 1 ? r ? 1 ) mod n = (784977 3336336) mod 8672929 = 6121570; a outra raiz n - x '0 ; 7. ALGORITMO ELGAMAL DE CHAVE PBLICA

Este algoritmo incorpora a dificuldade de soluo do problema do logaritmo discreto na definio da funo criptogrfica. Para um primo p > 2 relativamente longo, considera-se um gerador g do conjunto Z *p dos inteiros relativamente primos a p (Elgamal, 1985). O receptor escolhe inicialmente um inteiro S tal que 1 ? S ? p 2. Seja x ? Z *p a ser criptografado por um emissor. O conjunto de chave K = {(p,g,S,T) : T = g S mod p}. S difcil de ser calculado mesmo sabendo T, g e p (problema do logaritmo discreto). Os valores p, g e T so pblicos; S secreto conhecido apenas pelo receptor. 7.1. Algoritmo de criptografia Para chave pblica (p,g,T) do receptor, o emissor efetua os seguintes passos: ?? Escolhe um nmero aleatrio secreto k ? Z p? 1 . Recomenda-se usar um k distinto para cada x a ser criptografado. ?? Seja o texto legvel x ? Z *p . Calcula y = g k mod p; e z = x.T k mod p. Onde y,z ? Z* P. ?? O texto ilegvel (y,z) que enviado para o receptor ?? emissor ? y = g k mod p; e z = x.T k mod p ? receptor Observe que T k pode ser considerado como uma chave voltil, i. e., uma chave que s usada para criptografar este x, e a criptografia consiste em multiplicar Tk por x.(T k = g Sk mod p). 7.2. Algoritmo de decriptografia
S ?1 Para o receptor decriptografar y,z ? Z * mod p.(y ? S = g ? Sk = (T k ) ? 1 mod p. P ele efetua z(y )

7.3. Exemplo numrico Para p = 2579, g = 2, S =765, T = 2 765 mod 2579 = 949. Para criptografar x = 1299 o emissor escolhe k = 853: y = 2 853 mod 2579 = 435, e z =1299 ? 949 853 mod 2579 = 2396. Para decriptografar (y,z) = (435,2396), o receptor calcula 2396 ? (435 765 ) ? 1 mod 2579 = 1299. 7.4 Segurana A segurana baseia-se em dois aspectos: ?? Se o intruso no consegue calcular k ento ele no consegue calcular nem T k e nem z(T k ) ? 1 = x. E k protegido pela dificuldade do problema do logaritmo discreto.(y = g k mod p).

?? Como T = g S mod p, S tambm protegido pela dificuldade do problema do logaritmo discreto. importante a utilizao de um k distinto para cada x a ser criptografado. Se dois textos legveis x 1 e x 2 forem criptografados, respectivamente para (y 1 ,z 1 ) e (y 2 ,z 2 ) com um mesmo k e um intruso consegue obt- lo, ento z 1 /z 2 = x 1 /x 2 e x 2 pode ser calculado facilmente se x 1 for conhecido. 8. ELEMENTOS AUXILIARES Sero abordados elementos que facilitaro um maior entendimento sobre os algoritmos estudados ao longo do trabalho. 8.1 Nmeros primos Um inteiro p > 1 primo se e s se p divisvel apenas por 1 e por p. O conjunto C dos primos infinito; se C fosse finito, considere o produto P de todos os elementos de C: P + 1 tambm seria primo pois (P +1) dividido por qualquer primo em C resultaria em resto 1,ou seja, (P + 1) um novo primo fora de C e portanto, C no pode ser finito. 8.2 Algoritmo de Euclides estendido Este algoritmo consiste em termos duas variveis adicionais ui e v i , tais que mdc(a,b), a>0, b>0 e inteiros u e v tais que mdc(a,b) = u? a + v? b, que satisfaam x i = u i ? a + v i ? b, para i ? -2 ,onde: u ? 2 = 1; v ? 2 = 0; u ?1 = 0; v ?1 = 1; x ? 2 = a; x ?1 = b; i= 0; q i = quociente de x i ? 2 /x i ?1 ; x i = x i ? 2 mod x i ?1 ; u i =u i ? 2 - q i ? u i ?1 ; v i = v i ? 2 - q i ? v i ?1 . Tabela 1: Execuo do algoritmo de Euclides estendido para a = 2520 e b = 616 i i+1 x i ?2 x i ?1 qi x i ? 2 mod x i ?1 ui vi -2 1 0 -1 0 1 0 2520 616 4 56 1 -4 1 1 616 56 11 0 -11 45 2 2 56 0 Como x i ?1 = 0, x i ? 2 = 56 ? mdc(2520,616) = 1 ? 25 - 4? 616. Esta extenso nos fornece dois inteiros u e v tais que: mdc(a,b) = u? a + v ? b, ou seja, o mdc a soma de dois inteiros sendo um mltiplo de a e outro mltiplo de b. No caso particular em que a e b so relativamente primos tem-se: mdc(a,b) = 1 se e s existem inteiros u, v tais que u ? a + v ? b = 1.

8.2.1 Clculo de inversa multiplicativa mod m Quando mdc(n,m) = 1, o Algoritmo de Euclides estendido pode ser usado para calcular a inversa de n mod m ,i.e., calcular n ? 1 tal que n ? 1 ? n = 1 mod m. Para tanto basta aplicarmos o algoritmo para a = n e b = m, obtendo-se u, v tais que: u ? n + v? m =1 = mdc(n,m) ? u ? n =1 mod m, ou seja, obtemos u = n ? 1 mod m. Se eventualmente mdc(n,m) >1 aps a execuo do algoritmo, i.e., n e m no so relativamente primos, ento o algoritmo calcular mdc(n,m) e no fornecer u e v tais que u ? n + v? m = 1, e neste caso n no possuir uma inversa mod m. Por outro lado, vamos supor que exista inteiro w ? u tal que w ? n = 1 mod m. Multiplicando ambos os lados por u: u? w? n = u mod m ? w ? (u ? n) = u mod m ? w = u mod m (pois u ? n =1 mod m) portanto, s existe uma inversa mod m. Tabela 2: Clculo da inversa de 977mod 2075. i x i ?2 x i ?1 qi x i ? 2 mod x i ?1 -2 -1 0 977 2075 0 977 1 2075 977 2 121 2 977 121 8 9 3 121 9 13 4 4 9 4 2 1 Da ltima linha tem-se: 1 = 463 ? 977 - 218? 2075 = mdc(977,2075) ? 463 = 977 ? 1 mod 2075. 8.3 Z n e Z * n O conjunto de todos inteiros chamado Z. O conjunto dos inteiros mod n chamado Z n . E.g,
* Z 10 = {0, 1,...9}. O conjunto dos inteiros relativamente primos a n chamado Z * n . E.g. Z10 = {1, 3, 7,9}

ui 1 0 1 -2 17 -223 463

vi 0 1 0 1 -8 105 -218

i +1

1 2 3 4 5

8.4 Funo ? de Euler


* ? (n) simboliza o nmero de elementos em Z * n , tambm chamado ordem de Zn . E.g., * ? (10) = 4, pois Z10 = {1, 3, 7, 9}.

Se n for primo, ? (n) = n-1, pois Z * n = {1, 2, 3, ... n-1}.

8.4 Gerador ou elemento primitivo de Z * n


s Seja a ? Z * = 1 mod n. Pode-se n . A ordem de a, ord(a), o menor inteiro positivo s tal que a r provar que se a = 1 mod n ento s divide r. Em particular, s divide ? (n).

E.g., se n = 21 ento Z* 21 = {1,2,4,5,8,10,11,13,16,17,19,20}. Note que ? (21) = ? (3) ? (7) =2 ? 6. Tabela 3: Ordens dos elementos em Z * 21 * 1 2 4 5 8 a ? Z 21 Ord(a) 1 6 3 6 2

11 6

13 6

16 2

17 6

19 6

20 2

* * Seja g ? Z * n . Se ord(g) = ? (n), ento g gerador de z n . E neste caso diz-se que Z n cclico.

Algumas propriedades teis dos geradores de Z * n:


k k ?? Z * n possui um gerador se e s se n = 2,4,p ou 2p , onde p um primo mpar e

k ? 1.Em particular, se p primo, Z *p possui um gerador.


j ?? Se g ? Z * mod n tambm um gerador de Z * n um gerador, g n se e s se

mdc(j, ? (n)) = 1. Portanto, deduz-se que se Z * n for cclico ento o nmero de geradores ? ( ? (n)). * j ?? Se g ? Z * mod n: 0 ? j ? ? (n) 1}. n um gerador, Z n = {g
? ( n) / p ?? g ? Z * ? 1mod n para cada primo p divisor de ? (n). n um gerador se e s se g * ?? E.g., Z14 cclico e possui um gerador: g = 3. ? (14) = ? (2) ? (7) = 6, e 3 5 mod14=5, 3 6 mod 14 = 1. mdc(5, ? (14)) = 1 e 5 gerador: 5 6 mod 14 = 1.

8.5 Clculo de quatro razes quadradas Dados dois primos p e q no caso particular de 4 p + 1 e 4 q + 1 veremos como calcular as quatro razes quadradas de a mod pq. Calcula-se inicialmente x 1 e x 2 :
? mod p? ?? q ?1 x 2 ? a 4 mod q ? ?
p? 1 4

x1 ? a

p ?1 ? 2 2 x ? a a ? a mod p ? 1 pelo Teorema de Fermat ? q ?1 ? x 2 ? a 2 ? a mod q ? 2

A seguir, pelo Teorema chins do resto calcula-se x 0 soluo do sistema:

? x 0 ? x1 mod p ? ? x 0 ? x2 mod q

que x 0 ? ( x 2 pp ? 1 ? x1 qq ? 1 ) mod pq

Onde p ? 1 e q ? 1 so calculveis pelo Algoritmo de Euclides estendido, e so tais que: pp


?1

+ qq =1 ?

?1

? pp ? 1 ? 1 mod q ? ?1 ? ? qq ? 1 mod p

Este x 0 calculado tal que :


2 2 x0 mod p ? x1 ( qq ? 1 ) mod p ? x12 mod p ? a mod p 2 ?1 ) 2 x0 mod q ? x 2 mod q ? x2 mod q ? a mod q 2 ( pp
2 Portanto, tem-se que x 0 mod pq ? a mod pq ou seja x 0 uma das quatro razes quadradas de a mod pq. As outras trs razes so: ' ' x0 ? ( x 2 pp ? 1 ? x1qq ? 1 ) mod pq , ( pq ? x 0 ), ( pq ? x0 )

9 CONSIDERAES FINAIS Como pudemos observar ao decorrer do trabalho, a criptografia de chave pblica baseada em dificuldades computacionais. Com a evoluo tecnolgica cada vez mais acelerada, os computadores tm a capacidade de processamento aumentada periodicamente. necessrio aprimorar constantemente os sistemas criptogrficos, prova disso, a segurana em redes de computador uma das reas que mais buscam alternativas para um maior desenvolvimento . Outro fator que leva criptografia de chave pblica a ser valorizada a tendncia cada dia maior do crescimento do comrcio eletrnico, que sem dvida seria invivel sem uma criptografia que proporcione total segurana aos usurios.
REFERNCIAS BIBLIOGRFICAS

Buchmann, J.A..(2002) Introduo criptografia. So Paulo: Berkeley Brasil. Elgamal, T.(1985) A public key cryptosystem and a signature scheme based on discret logarithms. IEEE Transactions on information, v. 31, p. 473-481. Grant, Gail L.(1997) Understanding digital signatures: establishing trust over the internet and other networks . Computing McGraw-Hill. Howard, Michael (2000) Designing secure web-based apllications for Microsoft Windows 2000. Microsoft press . Rabin, M.(1979). Digitalized signatures and public key functions as intractable as factoring. MIT/LCS/TR-212, MIT Laboratory for Computer Science. Rivest, R.; A. Shamir e L. Adleman (1978) A method for obtaining signatures and public key cryptosystem. Communications of the ACM, v.21, n. 2, p. 120-126 Schneier, Bruce.(1995) Applied cryptography: Protocols, algorithms, and source code in C. John Wiley & sons.

Terada, Ro uto. Segurana de dados: criptografia em redes de computador. 1. ed. So Paulo: Edgard Blcher, 2000. p.237.

Você também pode gostar