Você está na página 1de 1

TANNERY P EROTTO Orientador: Ronie Peterson Dario Universidade Federal de Mato Grosso

CRIPTOGRAFIA RSA

1 Introducao
Este trabalho tem como objetivo apresentar o algoritmo RSA como uma aplicacao da Teoria Elementar dos N meros. Utilizaremos alguns resultados b sicos e logo em seguida dareu a mos o passo-a-passo de como codicar e decodicar uma mensagem de texto nalizando com a demonstracao e coment rios sobre o grau de seguranca. a A criptograa RSA e um tipo de criptograa de chave-p blica, ou seja, existem duas chaves: u uma que codica a mensagem e outra que decodica. A chave que codica e de conhecimento p blico, possibilitando que qualquer usu rio da internet dissimule o conte do de sua mensagem e u a u garanta o sigilo da mesma. A chave que decodica e privada, ou seja, somente o administrador do sistema que recepciona a mensagem e capaz de aplicar uma funcao na mensagem codicada e posteriormente l -la. e O RSA n o garante a n o interceptacao da mensagem, garante t o somente que o usu rio a a a a legtmo ser capaz de decodicar. Essa garantia de sigilo e relativa. Na teoria e possvel descobrir a a chave privada, existe por m, um problema de ordem temporal e computacional no algoritmo RSA e que torna muito difcil um usu rio n o legtmo decodicar usando os m todos atuais fatoracao. a a e Vejamos porqu : E que para implementar o algoritmo RSA necessitamos de um n mero n produto e u de dois n meros primos muitos grandes (mais de 250 dgitos) p e q. E o problema central na u decodicacao se resume em fatorar n. E no problema da fatoracao que reside toda seguranca do RSA. Uma pessoa que tentasse fatorar um n de 309 dgitos (1024 bits) com o melhor algoritimo de fatoracao existente (crivo dos corpos n mericos) levaria 23, 7 meses para descobrir p e q. u

3 Traduzindo Numeros em Palavras


3.1 Como Codicar uma Mensagem
O primeiro passo para implementar o RSA e a escolha de um par de n meros n e w tais que: u (1) n e o produto de dois n meros primos p e q. u (2) w e inversvel m dulo (n). o Podemos comecar a traduzir uma mensagem seguindo os passos enumerados: 1. Troca-se as letras da mensagem pelo n mero correspondente da tabela abaixo. O espaco u entre palavras e susbstitudo pelo n mero 99. u A B C D E F G H I J K L M 10 11 12 13 14 15 16 17 18 19 20 21 22 O P Q R S T U W 24 25 26 27 28 29 30 31 V X Y Z 32 33 34 35 N 23

3.3 Demostracao e Seguranca do RSA


Lembre-se que chamamos de Y o bloco j codicado na secao anterior, ou seja, Y = B w . Assim e a de se esperar que [Yd ] = [Bw ]d = [B] que corresponde a uma das letras da tabela de convers o. ` a Demonstracao. (Validade do RSA). Como wd 1(mod (n)), temos que existe um inteiro tal que ed = 1 + (n) = 1 + (p 1)(q 1). Assim, Bwd B (Bp1 )(q1) (modp). Pelo Pequemo Teorema de Fermat, Bp1 1 (modp). Fazendo substituicao na relacao anterior obtemos ed B B(mod p), ou seja, um bloco [B] codicado e decodicado retorna a alguma letra da tabela.

2. Separa-se a seq encia num rica em blocos menores de maneira que cada bloco seja menor u e que o n escolhido e de maneira que nenhum dos blocos comece por zero. 3. Para codicarmos um bloco [B] qualquer, fazemos [B] X(mod n).
w

4 Seguranca do RSA
Embora todos tenham acesso ao par de codicacao (n, w), o que torna difcl a decodicacao e o c lculo de d. Para este c lculo, e necess rio utilizar o algoritmo euclidiano estendido a (n) e a a a w. Mas s sabemos calcular (n) se soubermos fatorar n. o E se algu m calculasse (n) por um m todo desconhecido, que utilize somente o par (n, w)? Veja e e o que aconteceria: sabemos que (n) = (p 1)(q 1) = pq (p + q) + 1 = n (p + q) + 1. Note que p + q = n (n) + 1 que e um valor conhecido. E al m disso, e

2 Resultados da Teoria Elementar dos Numeros


2.1 Os elementos inversveis de
n

Assim, X ser o bloco codicado. a Um exemplo pode ser p = 17, q = 101 e n = 17 101 = 1717. Escolhemos ainda w = 13, que e inversvel m dulo (n) = (p 1) (q 1) = 16 100 = 1600. Suponha que queremos codicar a o mensagem DOIS E PRIMO. Utilizando a tabela acima, obtemos que esta mensagem corresponde a seq encia num rica ` u e 132418289914992527182224. Escolhemos separ -la em blocos de dois dgitos: 13-24-18-28-99-14-99-25-27-18-22-24. Escoa lhendo o bloco [B] = [22], que corresponde ao M da mensagem, obtemos [22]13 1346(mod n) e assim devemos trocar [22] por 1346. Fazendo o mesmo processo para cada bloco, obtemos a seq encia num rica u e 47-482-936-1197-90-1229-90-1318-130-936-1346-482 que corresponde a codicacao da mensagem escolhida. `

Para n 1, denotamos por n = {0, 1, . . . , n 1} o quociente de pela relacao de congru ncia e m dulo n. Com as operacoes de soma e multiplicacao, n e um anel comutativo. O conjunto dos o elementos inversveis de n e um grupo multiplicativo, denotado por U(n) e e descrito como: U(n) = {a
n;

mdc(a, n) = 1}.

V rios testes de primalidade utilizam o grupo U(n), que tamb m e importante para demonstrar a e que o RSA e seguro. A ordem do grupo U(n) e exatamente (n), a funcao de Euler, que conta a quantidade de valores que s o menores que n e relativamente primos com n. E importante notar a que para p primo, temos (p) = p 1.

(p + q)2 4n = (p2 + q 2 + 2pq) 4pq = (p q)2 . Portanto, pq = tamb m seria conhecido. e Resultado: se algu m conseguir calcular (n) por um m todo qualquer ent o ter descoberto p + q e e a a e p q e com isso ca f cil calcular p e q. Em outras palvras, fatorou n. Mas esse e um problema a que atravessa os s culos sem solucao. Por isso d n o e f cil de se obter e o RSA e declarado seguro. e a a (p + q)2 4n

2.2 O Teorema de Euler


Teorema (Euler) Sejam n > 0 e a n meros inteiros. Se mdc(a, n) = 1 ent o u a a
(n)

1 (mod n).

Para a demonstracao e necess rio lembrarmos dois fatos b sicos sobre um grupo nito G: a a (1) Dado a G, existe um menor inteiro positivo k tal que ak = e, onde e e o elemento neutro de G e k e chamado de ordem de G. (2) Teorema de Lagrange Se H e um subgrupo de G, ent o a ordem de H divide a ordem de G. a Sendo a e n primos entre si, ent o a U(n). A ordem do subgrupo gerado pela classe a e igual a a ordem de a. Assim, pelo Teorema de Lagrange, a ordem de a divide a ordem de U(n), que e (n). a Em outras palavras, se a ordem de a e k, ent o (n) = kr, para algum r inteiro positivo. Dito isto, e imediato que r (n) (a) = ( a )k = 1 j que ak = 1 a

3.2 Como Decodicar uma Mensagem


Para a decodicacao, tomamos X= [B]w , o bloco codicado no passo 3 da secao anterior. 1. Calcula-se d tal que d e inverso de w m dulo (n) = 1600. A exist ncia do n mero d e o e u garantida pela escolha de w. O c lculo de d pode ser feito atrav s do algoritmo euclidiano a e estendido. 2. O resultado da decodicacao e um inteiro Y que verica a congru ncia e [X]d Y(mod n) e que esteja na tabela acima. Na pr xima secao demonstraremos que Y= [B]. o

Referencias
[1] SAUTOY, Marcus du. The Music of the Primes. [2] COUTINHO, Severino Collier. N meros Inteiros e a Criptograa RSA. u [3] OLIVEIRA, F bio Borges.; Criptograa: Matem tica Aplicada a Seguranca da Informacao. a a `

2.3 O Pequeno Teorema de Fermat


Teorema (Fermat) Se a e um n mero inteiro e p e um n mero primo que n o divide a, ent o vale u u a a a seguinte congru ncia: e ap1 1 (modp). Uma conseq encia imediata deste teorema e a congru ncia: a a (modp), que tamb m ser u e e a utilizada na demonstracao do funcionamento do RSA.
p

Voltemos ao exemplo da secao anterior. Temos X = 1346. Pelo algoritmo euclidiano estendido obtemos 1 = 1600 + 13(123). Como 123 1477(mod n), temos d = 1477. Agora Xd = (1346)1477 22(mod n).

Você também pode gostar