Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Criptografia RSA
Antonio Carlos Campello RA 059076 e Isabel Leal RA 061533
4 de Dezembro de 2007
Resumo
Esta monografia est dividida em trs sesses. Na primeira, fare-
mos um breve estudo das noes elementares de teoria aritmtica dos
nmeros e enunciaremos resultados importantes, como o Pequeno Teo-
rema de Fermat e o Teorema de Euler. Na segunda parte, utilizaremos
os conceitos introduzidos anteriormente para descrever cuidadosamente
o mtodo de cifragem e decifragem da criptografia RSA. Por ltimo,
discutiremos algumas nuances da RSA, como a sua segurana, apli-
caes e impactos matemticos.
Contedo
1 Introduo 2
2 Bases matemticas 3
2.1 Divisibilidade e nmeros primos . . . . . . . . . . . . . . . . . 3
2.1.1 A funo de Euler . . . . . . . . . . . . . . . . . . . 4
2.2 Congruncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Pequeno Teorema de Fermat . . . . . . . . . . . . . . 6
2.2.2 Teorema de Euler . . . . . . . . . . . . . . . . . . . . . 6
3 O algoritmo RSA 7
3.1 Codificao e decodificao . . . . . . . . . . . . . . . . . . . 8
3.2 Sistema de chave pblica . . . . . . . . . . . . . . . . . . . . . 9
4 Segurana e aplicaes 9
4.1 Fatorao de inteiros . . . . . . . . . . . . . . . . . . . . . . . 10
4.2 Assinaturas digitais . . . . . . . . . . . . . . . . . . . . . . . . 11
5 Concluso 11
1
1 Introduo
Desde que as primeiras sociedades foram formadas e a comunicao entre os
homens tornou-se vital, a arte de cifrar/decifrar mensagens tem desempe-
nhado um importante papel em diversas reas da vida cotidiana.
2
Por fim, vale ressaltar que, apesar da sua ampla utilizao prtica, a Teo-
ria dos Nmeros foi desenvolvida essencialmente com motivaes meramente
matemticas e, portanto, o estudo direcionado do assunto para o entendi-
mento da criptografia RSA no dar, de maneira nenhuma, uma viso abran-
gente do tema. Para um estudo mais aprofundado, recomenda-se a bibli-
ografia [1].
2 Bases matemticas
Nesta sesso, faremos um estudo, desde os princpios bsicos, da teoria essen-
cial para a compreenso da criptografia RSA.
1. 1|a.
2. a|a.
fcil ver que, para o anel dos inteiros, a definio acima corresponde ex-
atamente ideia intuitiva de mximo divisor comum, que o maior inteiro,
em mdulo, que divide os dois inteiros simultneamente. Entretanto, usual-
mente define-se mdc deste modo para facilitar a extenso para outros anis
diferentes de Z.
3
Definio 2.3. Seja a Z com a > 1. Dizemos que a primo, se ele
possuir exatamente dois divisores, 1 e a.
A definio acima pode ser extendida para qualquer inteiro cujo mdulo
maior que um, considerando os divisores 1, 1, a e a.
Exemplo 1. Seja p primo. Temos que (p 1)! = 1.2.3...(p 1) ou seja,
p no divide nenhum dos termos da multiplicao e, portanto, no divide
(p 1)!. Do fato de que p primo, segue que (p 1)! no divide p, ou seja,
o maior nmero que divide os dois simultneamente 1. Da definio de
mximo divisor comum, finalmente chegamos em (p, (p 1)!) = 1.
Teorema 2.1 (fundamental da Aritmtica). Todo nmero inteiro maior do
que 1 pode expresso como o produto de nmeros primos.
Demonstrao. A demonstrao pode ser encontrada em [1]. A extenso do
teorema para inteiros com mdulo maior que 1 bvia.
O fato elementar enunciado no teorema acima afirma que um nmero fica
bem caracterizado pela sua fatorao em primos. Este fato, apesar da sua
aparente simplicidade, base para a maioria das demonstraes em teoria
aritmtica dos nmeros e ser fortemente utilizado no desenvolvimento da
RSA.
Definio 2.4. Dizemos que dois nmeros so primos relativos (ou co-
primos) se o mximo divisor comum entre eles 1.
4
Demonstrao. Para demonstrar 1, temos que ter em vista que a quantidade
total de nmeros menores que p exatamente p . Desses nmeros, h
exatamente p1 que no so co-primos com p , pois estamos considerando
nmeros da forma pb, em que 1 b p1 . Da, o resultado segue.
A demonstrao de 2 no ser dada aqui e pode ser encontrada em [2], no
Captulo 4.
Levando em considerao (1) e (2), chegamos facilmente em
e o resultado segue.
2.2 Congruncia
Definio 2.6. Se um inteiro m, no nulo, divide a diferena a b, em que
a e b so inteiros, dizemos que a congruente a b mdulo m, e denotamos
por a b (mod m). Se a b no divisvel por m dizemos que a no
congruente a b mdulo m e denotamos por a 6 b (mod m).
Faremos a seguir uma lista sucinta das propriedades de congruncias de
numeros inteiros, sem demonstrao. Uma lista mais elobarada e outros
teoremas fogem ao escopo desta monografia e podero ser encontrados em
[1] ou [2].
Propriedades. Sejam a, b, c, d e m inteiros. Ento:
1. a b (mod m), a b (mod m) e a b 0 (mod m) so proposies
equivalentes.
2. Se a b (mod m) e b c (mod m), ento a c (mod m).
3. a a (mod m)
4. Se a b (mod m) e c d (mod m), ento a + c b + d (mod m).
5. Se a b (mod m), ento ac bc (mod m).
6. Sejam a, b, c e m inteiros. Se ac bc (mod m), ento a b (mod m/d),
onde d = (c, m). Essa propriedade conhecida como a Lei do Cance-
lamento.
Demonstrao. Lei do Cancelamento. Como ac bc (mod m), temos que
c(a b) = km, e k um inteiro, e portanto (c/d)(a b) = (k/d)m, da
concluimos que (k/d)|(c/d)(a b) e, por definio de MDC, (m/d, c/d) = 1)
e portanto (m/d)|(a b), e o resultado segue.
5
As trs primeiras propriedades mostram que a relao de congruncia uma
relao de equivalncia. Utilizaremos freqentemente, daqui para frente, as
propriedades bsicas de congruncia apresentadas acima.
ap1 1 (mod m)
6
Demonstrao. Para demonstrar o Teorema de Euler, vamos seguir o mesmo
roteiro do Pequeno Teorema de Fermat. Primeiramente, fcil ver que, se
r1 , r2 , ..., r(m) englobam todos os restos no-nulos possveis na diviso por m,
ento ar1 , ar2 , ..., ar(m) tambm o faz, com (a, m) = 1. Ou seja, podemos
fazer uma relao biunvoca entre os dois conjuntos, em congruncia, e da
chegamos em
ou seja
a(m) r1 r2 ...r(m) = r1 r2 ...r(m) (mod m)
Pela lei do cancelamento, temos ento, que
a(m) 1 (mod m)
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
7
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.
D(C(b)) b (mod p)
D(C(b)) b (mod n)
8
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.
4 Segurana e aplicaes
Primeiramente, vamos considerar que todos os blocos da mensagem original
foram separados de maneira aleatria, ou seja, a anlise de frequncia im-
possvel, j que os blocos no possuem um padro entre si (por exemplo, se
cada bloco representasse exatamente duas letras da mensagem seria possvel
considerar uma tcnica de anlise de frequncia baseada no aparecimento de
dgrafos em diversas linguas).
9
4.1 Fatorao de inteiros
Levando em considerao o que foi dito acima, a segurana da RSA se baseia,
basicamente, no seguinte
Teorema 4.1. Uma condio necessria e suficiente para se decodificar uma
mensagem conhecendo-se apenas e e n, no sentido da sesso anterior,
fatorar o nmero n.
Este teorema significa, grosso modo, que, se possvel quebrar a RSA, ento
h um jeito eficiente de se fatorar um nmero em primos (ou, no mnimo,
um nmero que composto por dois primos), j que os nmeros p e q podem
ser arbitrariamente grandes, e, em contrapartida, se h um bom algoritmo
para fatorao, ento a RSA pode ser quebrada. Entretanto, at hoje no
h um algoritmo de fatorao to eficiente de modo que a RSA possa ser
quebrada em tempo razavel. Mais que isso: possvel que no exista tal
algoritmo! Portanto, de acordo com o teorema acima, a segurana do sistema
de cifragem RSA est garantida!.
Demonstrao. A condio suficiente facilmente demonstrada j que, se
fatoramos n, ento podemos encontrar (n) e utilizar as operaes da sesso
anterior para decifrar a mensagem. A condio necessria no trivial,
mas podemos esboar alguns casos, como por exemplo, se for inventado um
algoritmo eficiente para se calcular (n) a partir de d e e, ento:
(n) = (p 1)(q 1) = pq p q + 1 = n (p + q) + 1
portanto
p + q = n + 1 (n)
Em contrapartida, temos que
(p + q)2 4n = p2 + 2pq + q 2 4n = p2 + q 2 2pq = (p q)2
logo p
pq = (n + 1 (n))2 4n
e destas duas equaes segue que
p
(n + 1 (n))2 4n + n + 1 (n)
p=
2
e p
(n + 1 (n))2 4n + n + 1 (n)
q=
2
Em resumo, o nmero n foi fatorado!
10
4.2 Assinaturas digitais
Um dos impactos da criao da RSA acaba de ser enunciado acima e diz res-
peito ao antigo problema da fatorao de nmeros primos. Citaremos aqui
uma importante aplicao prtica, que segue como um resultado imediato
da RSA: a assinatura digital.
Suponhamos, para resolver o problema, que Alice queira manda uma men-
sagem para Bob. Sejam Ca , Da , Cb e Db as funes de codificao e decod-
ificao para Alice e Bob, respectivamente e seja m a mensagem original.
A sequncia de operaes que Alice deve fazer : aplicar Da (m) (funo
que s conhecida por ela, pois se trata dos parmetros privados da cifra)
e, em seguita, aplicar Cb (Da (m)). Ao receber a mensagem, Bob deve de-
cifrar, fazendo Db (Cb (Da (m))) e conseguindo Da (m). Logo depois, ele deve
utilizar a cifra pblica de Alice para recuperar a mensagem original, pois
Ca (Da (m)) = m. Se a mensagem obtida fizer sentido, ento a probabilidade
de ela ter sido enviada por Alice quase 1, pois ela a nica que conhece a
funo Da . Voil, temos um sistema de assinaturas seguro!
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.
11
Referncias
1. Niven, I.M, An introduction to the Theory of Numbers
12