You are on page 1of 10

A HIPTESE DE RIEMANN E A INTERNET II Em 1977, os cientistas R. Rivest, A. Shamir e L. Adleman propuseram um cripto-sistema de chave pblica, denominado RSA.

Esse sistema utiliza algumas idias elementares de Teoria dos Nmeros. Apesar das idias utilizadas serem elementares, isso no significa que sejam triviais. Na verdade um dos maiores matemticos de todos os tempos, o matemtico alemo Gauss (1777-1855), criou e desenvolveu a noo de congruncias que fundamental na codificao e decodificao das chaves no sistema RSA. As congruncias, e o conseqente desenvolvimento denominado de Aritmtica Modular, representam uma grande contribuio Teoria dos Nmeros. Em particular, s questes de divisibilidade, pois, quando existe a necessidade de se trabalhar com os restos da diviso euclidiana, as congruncias so os instrumentos adequados. Gauss introduziu o conceito de congruncia no primeiro captulo de sua obra Disquisitiones Aritmtica publicada em 1801. Gauss introduziu, simultaneamente ao conceito de congruncia, a notao , que tornou o conceito uma tcnica poderosa em lgebra e Teoria doa Nmeros. Vamos s definies. Consideramos dois inteiros a, b e n um inteiro positivo. Se n divide a b, ento dizemos que a congruente a b modulo n, e escrevemos a b (mod n). Por exemplo: 37 2 (mod 5) , pois, 5 divide 37 2 = 35, 27 3 (mod 4) , pois, 4 divide 27 3 = 24, 7 7 (mod 4) , pois, 4 divide 7 7 = 0. Portanto, a b (mod n) significa que n divide a b; logo, existe um inteiro k tal que a b = kn pela definio de divisibilidade. Por exemplo, 37 2 (mod 5) implica que existe k (= 7) tal que 37 2 = 35 = 7 5. Dados os inteiros a e n, sabemos pelo Algoritmo da Diviso que existem inteiros q e r denominados, respectivamente, de quociente e resto, tais que: a = qn + r, onde 0 r < n; logo, a r = qn, ou seja, n divide a r. Portanto, pela definio de congruncia a r (mod n). O resto r pode assumir qualquer valor entre 0 e n 1. Dessa maneira, conclumos que todo inteiro a congruente modulo n a exatamente um dos valores entre 0, 1, 2, ..., n 1. O conjunto {0, 1, 2, ..., n 1} dos inteiros m que so os restos das divises modulo n, chamado de classe de resduos mdulo n. Se fixarmos n = 7, ento a classe de resduos mdulo 7 possui exatamente 7 elementos, a saber: 0, 1, 2,..., 6. Portanto, qualquer que seja o inteiro, ele congruente a um nico elemento da classe de resduos modulo 7. Por exemplo, 20 representado por 6 na classe de resduos mod 7, pois 20 6 (mod 7). A idia de congruncia est presente em nossa vida diria se pensarmos que relgios marcam as horas mdulo 12, dias da semana so medidos mdulo 4, meses do ano seguem um padro mdulo 12. Devido s muitas propriedades semelhantes entre congruncias e igualdades, Gauss escolheu o smbolo para o sinal de congruncia. 1

Observe que a a (mod n) e, se a b (mod n), ento b a(mod n). As operaes de adio, multiplicao e potenciao se comportam da maneira seguinte. Se a b (mod n) e c d (mod n) ento: a + c b + d (mod n), a c b d (mod n), ar br (mod n). O mtodo apresentado no exemplo seguinte fundamental em nosso tratamento de codificao e decodificao de chaves no sistema RSA. Alm disso, constitui-se em um exemplo bastante interessante de aplicao da noo de congruncias. Para determinar o resto da diviso de a por n suficiente encontrar um inteiro r tal que a r (mod n), onde 0 r < n. Por exemplo, para determinar o resto da diviso de 310 por 13, efetuamos 310 e depois dividimos por 13, o que no fcil. Entretanto, a noo de congruncia facilita bastante esse procedimento. Em primeiro lugar observamos que: 33 1 (mod 13), isso fcil! Agora, elevando tudo ao cubo, obtemos (33)3 (1)3 mod 13, ou seja, 39 1 (mod 13). Se multiplicarmos ambos os lados da congruncia por 3, ento obtemos 310 3 (mod 13). Os computadores atuais atingiram nveis to sofisticados que qualquer cripto-sistema precisa ser suficientemente robusto para resistir aos ataques de indivduos que desejam quebrar a segurana de suas transaes. Em 1975, os matemticos W. Diffie e M. Hellman propuseram um sistema totalmente novo de codificao: a criptografia de chave pblica. Nesse mtodo codificador duas chaves so utilizadas: uma para codificar e outra para decodificar. Alguns mtodos especficos foram desenvolvidos para implementar as idias de Diffie e Hellmann. Entretanto, o mtodo que recebeu mais apoio e que permanece como padro o sistema RSA. Para codificar um texto, segundo o sistema RSA, so necessrios: (1) um nmero grande N, que o produto de dois primos distintos p e q, ou seja, N = p q. (2) um inteiro E, conhecido como chave de codificao, que satisfaz as seguintes propriedades: o mximo divisor comum (MDC) entre E e o produto (p 1) (q 1) tambm 1. 1, e o MDC entre E e N

Para decodificar um texto, segundo o sistema RSA, so necessrios: (3) um inteiro D, conhecido como chave de decodificao, que satisfaz a condio: E D 1(mod (p 1) (q 1)). 2

Observamos que a relao entre E e D simtrica, isto , se D a chave de decodificao para E, ento E a chave de decodificao para D. Vamos codificar a mensagem PUBLIC KEY usando o sistema RSA com N = 2537 e chave de codificao E = 13. Primeiramente, observamos que N = 43.59 onde 43 e 59 so nmeros primos. Logo, MDC (13, (43 1) (59 1)) = MDC (13, 42 58) = 1, pois o inteiro 13 no divide 42 e nem 58; MDC (13, 2537) = 1, pois 13, 43 e 59 (2537 = 43 59) so nmeros primos. Agora convertemos o texto usando a tabela de correspondncia entre letras e nmeros: A = 00, B = 01, C = 02, D = 03, ... , X = 23, Y = 24, Z = 25. Como N = 2537 contm 4 dgitos, ns quebramos o texto em pares de letras: PU BL IC KE Y e completamos o ltimo bloco com a letra C obtendo PU BL IC KE YC. Utilizando a tabela de converso acima, os 5 blocos da mensagem convertidos so: 1520 0111 0802 1004 2402. Chamaremos de B o bloco de quatro dgitos. O prximo passo calcular o valor de cada um dos blocos de quatro dgitos elevados ao expoente 13 (mod 3127), isto , dado um bloco B, queremos determinar C tal que C = P13 (mod 2537). Por exemplo, quando codificamos o primeiro bloco, temos que resolver C 152013 r (mod 2537). Ento, procedemos da seguinte maneira: 15202 = 2.310.400 = 9102537 + 1730 1730 (mod 2537); 15204 = 17302 = 2.992.900 = 1179 2537 + 1777 1777 (mod 2537); 15208 = 17772 = 3.157.729 = 1244 2537 + 1701 1701 (mod 2537); 152012 = 15208. 15204 = 1701 1777 = 3.022.677 = 1191 2537 + 1110 = = 1110 (mod 2537); 152013 = 152012 1520 = 1110 1520 = 1.687.200 = 665 2537 + 95 = 95 (mod 2537). Assim, a codificao de 1520 0095. Os outros blocos da mensagem so codificados da mesma maneira, isto , elevando-se cada bloco constitudo de quatro dgitos potncia 13 (mod 2537). Portanto, o receptor receber a mensagem cifrada: 0095 1648 1410 1299 0811. Observe que no podemos converter essa mensagem em letras, pois alguns pares de dgitos constituintes dos blocos so maiores que 25. Na prxima coluna daremos os passos para decodificar mensagens segundo o sistema RSA e decodificaremos a mensagem desse exemplo.

A HIPTESE DE RIEMANN E A INTERNET III O matemtico alemo C. F. Gauss introduziu o conceito de congruncia no primeiro captulo de sua obra Disquisitiones Arithmeticae, publicada em 1801. Esse conceito fundamental na codificao e na decodificao das chaves no sistema RSA. O criptosistema de chave pblica, denominado RSA, foi desenvolvido pelos cientistas R. Rivest, A. Shamir e L. Adleman. Para codificar um texto, segundo o sistema RSA, so necessrios: (1) um nmero grande N, que o produto de dois nmeros primos distintos p e q, ou seja, N = p q. (2) um nmero inteiro E, conhecido como chave de codificao, que satisfaz as seguintes propriedades: o mximo divisor comum (MDC) entre E e o produto (p 1)(q 1) 1, e o MDC entre E e N tambm 1. Para decodificar um texto, segundo o sistema RSA, so necessrios: (3) um nmero inteiro D, conhecido como chave de decodificao, que satisfaz a condio: E D 1 (mod (p 1)(q 1)). A relao entre E e D simtrica, isto , se D a chave de decodificao para E, ento E a chave de decodificao para D. Na coluna anterior codificamos a mensagem PUBLIC KEY usando o sistema RSA com N = 2.537 = 4359, p = 43, q = 59 e com a chave de codificao E = 13. Primeiramente, observamos que N = 2.537 possui 4 dgitos e assim quebramos o texto em pares de letras: PU BL IC KE Y e completamos o ltimo bloco com a letra C obtendo: PU BL IC KE YC. Utilizando a tabela de converso que associa nmeros naturais s letras do alfabeto, os blocos convertidos da mensagem so: 1520 0111 0802 1004 2402. Dessa maneira, o receptor receber a mensagem cifrada: 0095 1648 1410 1299 0811. O nosso objetivo dar os passos necessrios para decodificarmos essa mensagem segundo o criptosistema RSA. Para decodificar essa mensagem necessitamos da chave pblica D de decodificao. Existe um mtodo para se determinar D, se E, p e q so conhecidos. Contudo, se p e q no so conhecidos, D no pode ser determinado. A segurana do criptosistema RSA reside nesse fato. 4

Se p e q so extremamente grandes, por exemplo, maiores que 10200, ento determinar esses nmeros primos em um tempo razovel, o que equivale a fatorar N = p q, pode estar alm da capacidade dos supercomputadores mais rpidos. Nosso objetivo determinar D tal que E D 1 (mod (p 1)(q 1)), em outras palavras D o inverso de E mdulo (p 1)(q 1). O mtodo consiste na utilizao do Algoritmo de Euclides aplicado chave E de codificao e ao nmero (p 1)(q 1). Como E e (p 1)(q 1) so primos entre si, o MDC entre eles 1. Primeiramente, percorremos todas as etapas do Algoritmo de Euclides para a determinao do MDC que nesse caso 1. Pelo Algoritmo Euclidiano temos que (p 1)(q 1) = q1 E + r2 , 0 r2 < E. Como sabemos que MDC ((p 1)(q 1), E) = 1, continuamos aplicando o Algoritmo Euclidiano at obtermos o resto da diviso igual a 1. Portanto, efetuamos a diviso de E por r2 e, assim por diante, at obtermos o resto igual a 1: E = q2 r2 + r3, 0 r3 < r2 r2 = q3 r3 + r4, 0 r4 < r3 ... rn-4 = qn-3 rn-3 + rn-2, 0 rn-2 < rn-3 rn-3 = qn-2 rn-2 + rn-1, 0 rn-1 < rn-2 rn-2 = qn-1 rn-1 + 1, 0 1 < rn-1. Agora, utilizando o Algoritmo de Euclides em sentido inverso podemos calcular D tal que E D 1 (mod (p 1)(q 1)). Portanto, D a chave de decodificao. Observemos que: 1 = rn-2 qn-1 rn-1 (1) rn-1 = rn-3 qn-2 rn-2 (2) rn-2 = rn-4 qn-3 rn-3 (3) r4 = r2 q3 r3 (n 3) r3 = E q2 r2, (n 2) r2 = (p 1)(q 1) q1E (n 1) Substituindo o valor de rn-1 de (2) em (1), obtemos 1 = (1 + qn-1 qn-2) rn-2 qn-1 rn-3 5

e, substituindo nessa igualdade o valor de rn-2 de (3), obtemos rn = (qn-3 + qn-1 qn-2 qn-3 + qn-1) rn-3 + (1 + qn-1 qn-2) rn-4. Assim, procedemos sucessivamente at obtermos, no final, o nmero inteiro D tal que E D 1 (mod (p 1)(q 1)). Em nosso exemplo, temos: N = 2.537 = 43 59, p = 43, q = 59 e (p 1)(q 1) = 42 58 = 2.436 e E = 13. Utilizando o Algoritmo de Euclides para determinar o MDC entre (p 1)(q 1) = 2.436 e E = 13 obtemos: 2.436 = 187 13 + 5, 13 = 2 5 + 3, 5 = 1 3 + 2, 3 = 1 2 + 1. Agora, utilizando o Algoritmo de Euclides em sentido inverso, obtemos: 1 = 3 1 2, 2 = 5 1 3, 3 = 13 2 5, 5 = 2436 187 13 Portanto, substituindo conforme explicamos acima, temos: 1 = 3 1 2 = 3 1 ( 5 1 3) = 3 1 5 + 1 3 = 5 + 2 3; 1 = 5 + 2 3 = 5 + 2 ( 13 2 5) = 5 + 2 13 4 5 = 2 13 5 5; 1 = 2 13 5 5 = 2 13 5 ( 2.436 187 13) = 2 13 5 2.436 + 935. 13 = = 937 13 5 2.436. Assim, obtemos 1 = 937 13 5 2.436 o que implica em 937 13 = 5 2.436 +1. Logo, 13 937 1 (mod 2.436), ou seja, E 937 1 (mod(p 1)(q 1)). Conclumos que D = 937. Na prxima coluna decodificaremos a mensagem.

A HIPTESE DE RIEMANN E A INTERNET IV No fcil elaborar um sistema de criptografia seguro na era dos supercomputadores. Contudo, os cientistas R. Rivest, A. Shamir e L. Adleman, desenvolveram um criptosistema de chave pblica, denominado RSA, que tem se mostrado inviolvel. Esse criptosistema depende do conhecimento matemtico dos nmeros primos e suas propriedades. Como vimos nas colunas anteriores, o trabalho da comunidade matemtica foi importantssimo na elaborao desse sistema. O matemtico alemo C. F. Gauss, formulou a noo de congruncias, que fundamental na codificao e decodificao das chaves no sistema RSA. Por outro lado, o mtodo proposto se justifica por causa de um teorema do matemtico suo L. Euler, que uma generalizao de um resultado sobre congruncias do matemtico francs P. de Fermat, conhecido como Pequeno Teorema de Fermat. Tal qual aconteceu em relao ao ltimo Teorema de Fermat, o matemtico francs apenas enunciou esse resultado e coube a Euler a demonstrao e generalizao do Pequeno Teorema de Fermat. Esse resultado afirma que: Se p um nmero primo, e m um inteiro que no divisvel por p, ento m p 1 1 (mod p), isto , o resto da diviso de m p 1 pelo primo p 1. Por exemplo, o resto da diviso de 1.024 = 210 = 211 1 por 11 1. A generalizao desse teorema, por Euler, aplica-se a qualquer mdulo. Sendo assim, utilizaremos a verso requerida para justificar o sistema RSA, onde o mdulo constitudo pelo produto de dois nmeros primos. Teorema de Euler-Fermat: Se p e q so um nmeros primos, e m um inteiro que no divisvel nem por p e nem por q, ento m
(p1) (q1)

1 (mod pq), isto , o resto da diviso de m (p1)

(q1)

por pq 1.

Por exemplo, o resto da diviso de 256 = 28 = 22.4 por 15 = 3.5 1. Como vimos anteriormente, para codificar um texto, segundo o sistema RSA, so necessrios: (1) um nmero grande N, que o produto de dois primos distintos p e q, ou seja, N = pq. (2) um inteiro E, conhecido como chave de codificao, que satisfaz as seguintes propriedades: o mximo divisor comum (MDC) entre E e o produto (p 1)(q 1) 1, e o MDC entre E e N tambm 1. Para decodificar um texto, segundo o sistema RSA, so necessrios: (3) um inteiro D, conhecido como chave de decodificao, que satisfaz a condio: 7

ED 1(mod (p 1)(q 1)). A relao entre E e D simtrica, isto , se D chave de decodificao para E, ento E chave de decodificao para D. Nas colunas anteriores codificamos a mensagem PUBLIC KEY usando o sistema RSA, onde escolhemos N = 2.537 = 4359, p = 43, q = 59 e chave de codificao E = 13. Primeiramente, observamos que o nmero N = 2.537 possui 4 dgitos e assim quebramos o texto em pares de letras: PU BL IC KE Y e completamos o ltimo bloco com a letra C obtendo: PU BL IC KE YC. Utilizando a tabela de converso que associa s letras do alfabeto nmeros naturais, os blocos da mensagem convertidos so: 1520 0111 0802 1004 2402. Dessa maneira, o receptor receber a mensagem cifrada: 0095 1648 1410 1299 0811. Para decodificar essa mensagem necessitamos da chave pblica de decodificao, D. Na coluna anterior obtivemos D = 937 como a chave de decodificao. Codificamos cada bloco, P, da mensagem em um bloco cifrado Q, usando a relao Q P13 (mod 2.537). Para decodificarmos o bloco Q dessa mensagem cifrada, devemos usar a relao P Q 937 (mod 2.537), 0 P < 2.537. Observamos que essa relao vlida, pois Q P13 (mod 2.537) implica em Q 937 (P13)937 (mod 2.537) P12.181 (mod 2.537). Como 13 937 = 12.181 = 5 2.436 + 1, obtemos Q 937 (P13)937 (mod 2.537) P12.181 (mod 2.537) (P2.436)5 P (mod 2.537). Pelo Teorema de Euler-Fermat, pois 13 e 59 so nmeros primos, obtemos P (13 1) (59 1) = P 2.436 1 (mod 2.537) e, ento, (P2.436)5 P P (mod 2.537). Logo, por transitividade, obtemos Q937 P (mod 2.537), 0 P < 2.537 quando MDC(P, 2.537) = 1. 8

Observe que a relao Q937 P (mod 2537), 0 P < 2.537, MDC(P, 2.537) = 1 verdadeira para todos os blocos desse exemplo. Agora, tomemos Q como o bloco 0095. Sendo assim, temos que resolver a congruncia 95 937 P (mod 2.537), isto , determinar o resto da diviso de 95937 por 2.537. Em primeiro lugar, observamos que mais fcil resolver essa congruncia se tomarmos 937 como a somatria de potncias de base 2: 937 = 512 + 256 + 128 + 32 + 8 + 1 = 29 + 28 + 27 + 25 + 23 + 1. Sendo assim, temos: 952 = 9.025 = 3 2.537 + 1.414 1.414 (mod 2.537); logo, 954 (1.414)2 (mod 2.537). Como (1.414)2 = 1.999.396 = 788 2.537 + 240, segue-se que 954 240 (mod 2.537). Da mesma maneira, obtemos: 958 1.786 (mod 2.537); 9516 787 (mod 2.537); 9532 341 (mod 2.537); 9564 2.116 (mod 2.537); 95128 2.188 (mod 2.537); 95256 25 (mod 2.537); 95512 625 (mod 2.537); Portanto: (95)937 = (95)512 (95)256 (95)128 (95)32 (95)8 (95) 625 25 2188 341 1786 95 (mod 2.537). Tomando-se os produtos dois a dois, obtemos: 625 25 = 15.625 = 6 2.537 + 403 403(mod 2.537) 2.188 341 = 746.108 = 294 2.537 + 230 230(mod 2.537) 1.786 95 = 169.670 = 66 2.537 + 2.228 2.228(mod 2.537). Logo, 625 25 2.188 341 1.786 95 (mod 2.537) 403 230 2.228 (mod 2.537). 9

Como 403 230 = 92.690 = 36 2.537 + 1.358 1.358(mod 2.537) segue que 1.358 2.228 = 3.025.624 = 1.192 2.537 + 1.520 1.520 (mod 2537). Conclumos que 625 25 2.188 341 1.786 95 = 1.358 2.228 = 3.025.624 = 1.192 2.537 + 1.520 1.520 (mod 2.537). Portanto, Q corresponde ao bloco 1.520. A pesquisa sobre a Hiptese de Riemann fornece informaes to preciosas, sobre o padro dos nmeros primos, que avanos nessa investigao poderiam nos levar a um progresso substancial nas tcnicas de fatorao e, conseqentemente, levar quebra da segurana na transmisso de dados via Internet. Enfatizamos que o desenvolvimento do criptosistema RSA representa mais um exemplo notvel da necessidade da pesquisa em Matemtica, pois representa o trabalho de inmeras geraes de matemticos. Na verdade, vale lembrar que foi Euclides, h mais de dois mil e trezentos anos, quem demonstrou, de modo genial, que existem infinitos nmeros primos. Apesar de toda a fora e todo o poder que a Matemtica evidencia, ainda persiste uma idia bastante pobre e inconsistente que a identifica apenas a uma linguagem a servio da cincia... . A Matemtica uma das maiores criaes do esprito humano e encerramos com as palavras de um dos criadores do Clculo Diferencial e Integral, o matemtico alemo Leibniz: A Matemtica a honra do esprito humano.

http://www.somatematica.com.br/coluna/gisele/11052005.php

10

You might also like