Vous êtes sur la page 1sur 4

3 O algoritmo RSA

O primeiro passo para se comear a cifrar uma mensagem pelo sistema RSA
transformar a mensagem em um nmero, e isso feito atravs do padro
ASCII [ver referncia 5]. Por exemplo, a mensagem teorema de fermat,
convertida em cdigo ASCII, sem os espaos, ficaria:

1161011111141011099710010110210111410997116

Em segundo lugar, deve-se quebrar a mensagem em blocos relativamente


pequenos. O tamanho mximo dos blocos ser esclarecido na subsesso
seguinte, em que determinaremos os parmetros de cifragem da RSA. Os
blocos devem ser escolhidos aleatoriamente, tomando-se alguns cuidados,
para que no seja permitida a tcnica de anlise de frequncia na tentativa
de quebra do cdigo (ver 4).

1
3.1 Codificao e decodificao
Os parmetros de entrada para a cifragem pelo mtodo RSA so dois primos
p e q suficientemente grandes, sobre os quais se calcular um nmero n = pq
e (m) = (p 1)(q 1). Alm disso, necessrio gerar aleatoriamente um
nmero e tal que (e, (p 1)(q 1)) = 1, ou seja, e e (m) so primos
entre si. Definamos C (b) como o bloco b codificado e D(a) como o bloco a
decodi- ficado (utilizaremos esta notao sempre, daqui para frente).
Vejamos quais propriedades devemos esperar de um bom algoritmo de
cifragem.

Em primeiro lugar, claro que queremos que D(C (b)) = b sempre, ou seja,
que a decifragem de um bloco pelo algoritmo sempre produza o mesmo bloco
cifrado. Utilizando jargo matemtico, queremos a unicidade de decifragem.
Em segundo, importante que seja difcil obter a funo D(a) a partir de
C (b), o que quer dizer que um interceptador ter dificuldades em decifrar a
mensagem. O conceito de difcil , de fato, muito abstrato, mas do ponto
de vista da RSA, ele est intimamente relacionado com os esforos com-
putacionais para quebrar a cifra, considerando as condies necessrias e
suficientes para a decifragem.

No sentido da RSA, as frmulas de codificao e decodificao so:

C (b) be (mod n), 0 < C (b) < n

D(a) ad (mod n), 0 < D(a) < n


sendo a um bloco codificado e b um bloco da mensagem original e d o
inverso de e mdulo (n).
Devemos portanto demonstrar o seguinte
Teorema 3.1. D(C (b)) = b.
Demonstrao. D(C (b)) C (b)d bed (mod n). Mas, como d inverso de
e mdulo (n), ed = 1 + k(n). Da, segue que D(C (b)) b1+k(n)
(b(n) )k b (mod n). Como n = pq, temos que (n) = (p 1)(q 1) o que
implica que D(C (b)) (bp1 )(q1)k b (mod p). Se p no divide b, ento
D(C (b)) b (mod p)

pelo Pequeno Teorema de Fermat. Se p divide b, ento b 0 (mod n)


ou seja D(C (b)) (bp1 )(q1)k b 0 (mod p). Analogamente, possvel
mostrar que D(C (b)) b (mod q) e como p e q so primos,
D(C (b)) b (mod n)
e o teorema est quase demonstrado, a menos da igualdade. O fato de que
D(a) sempre menor que n nos diz que a congruncia implica na igualdade a
menos que b n. Entretanto, podemos escolher b de qualquer maneira con-
veniente (e aqui estabelecemos o tamanho de cada bloco!). A demonstrao
est completa.

Com este teorema, temos a segurana de que o mtodo RSA um bom


mtodo de cifragem e decifragem, do ponto de vista da primeira propriedade
listada acima. Mas por que ele to seguro?

3.2 Sistema de chave pblica


Antes de responder a essa pergunta, entretanto, vamos discutir um pouco
mais sobre o sistema de codificao da RSA. Como entrada, ele exige dois
nmeros primos e um terceiro nmero, e. Os parmetros para codificar uma
mensagem so os nmeros n e e e por isso chamamos o par (n, e) de chave
de codificao. Para decifrar, necessitamos apenas de (n, d) ( importante
notar que d depende intimamente dos fatores, em separado, p e q).

Por razes que citaremos a seguir, difcil obter o par de decodificao a


partir apenas do par de codificao e, portanto, poderemos considerar (n, e)
como parmetros pblicos (que podem ser divulgados em qualquer lugar,
indiscriminadamente) e d como um parmetro privado, assim como p e q.

Desta anlise, segue que a RSA um sistema de cifragem de chave pblica,


pois qualquer um pode ter acesso aos parmetros de codificao sem com-
prometer o processo.

5 Concluso
Os impactos da RSA so fortes na matemtica, e, em contrapartida, o desen-
volvimento da cifra s foi permitido por conta de grandes avanos na teoria
aritmtica dos nmeros. Pesquisas na rea de codificao devem envolver a
garantia da aleatoriedade dos blocos e dos nmeros primos na implementao
do sistema de cifragem. J no ramo de decodificao, como visto acima, o
melhor rumo a se tomar tentar fatorar o nmero n de maneira eficiente.
Entretanto, repetimos que este problema j foi exaustivamente atacado por
matemticos de todo o mundo, desde muito tempo, e at hoje no aparenta
ter alguma soluo.
Referncias
1. Niven, I.M, An introduction to the Theory of Numbers

2. Santos, J.P.O, Introduo Teoria dos Nmeros, IMPA-RJ

3. Diffie, W. e Hellman, M., "New directions in Cryptography",


IEEE Transactions on Information Theory

4. Singh, S. O livro dos Cdigos

5. www.asciitable.com Tabela Ascii

Vous aimerez peut-être aussi