Está en la página 1de 12

Teoria Aritmtica dos Nmeros e

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.

A criptografia a rea do conhecimento que tem como objetivo propiciar


a troca segura de informaes entre um transmissor e um receptor. Para
isso, so necessrias uma chave e um algoritmo de cifragem - essencialmente
uma regra para transformar o texto original no cifrado. Na "contramo"da
criptografia, h a criptoanlise, cujo objetivo encontrar meios de quebrar
uma cifra, ou seja, decifrar mensagens sem necessariamente saber qual a
chave.

Durante sculos vrias cifras poderosas, de acordo com as ferramentas de


cada poca, foram desenvolvidas. A cifra de Csar, o cdigo de substituio
simples, o cdigo de substituio homofnica e a cifra de Vigenre so ex-
emplos de algumas delas e so descritos com nfase menos tcnica e mais
histrica em [4]. O ponto em comum de todas essas cifras (e todas as outras
que surgiram at a metade do sculo passado) a sua simetria, ou seja, o
fato de que a chave utilizada para cifrar uma mensagem a mesma para
decifrar. Cifras com esta propriedade so denominadas cifras simtricas e
durante muito tempo acreditou-se que eram as nicas cifras possveis.

Por volta de 1970, entretanto, a criptografia de chaves simtricas deu lu-


gar a uma nova proposta: a criptografia de chaves assimtricas, e a que
a teoria aritmtica dos nmeros desepenha um papel importante. A teoria
das chaves assimtricas baseia-se no fato de que possvel utilizar uma chave
para decifrar diferente da utilizada para cifrar uma mensagem, e o suporte
para esta teoria so alguns resultados de aritmtica elementar, sobretudo
em congruncias. A primeira cifra deste tipo foi a conhecida como DH (ver
referncia [3]).

Finalmente, em 1977, Ron Rivest, Leonard Adleman e Adi Shamir apoiaram-


se nas idias matemticas implementadas pela DH e criaram a chamada
criptografia de chave pblica, com a cifra que ficaria mundialmente famosa,
a RSA. A cifra, alm de permitir troca segura de informaes entre qual-
quer usurio, com sua segurana garantida pela dificuldade computacional
em fatorar um nmero qualquer, devolvia, como corolrio, um mtodo de
assinaturas digitais utilizado at hoje.

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.

2.1 Divisibilidade e nmeros primos


Definio 2.1. Sejam a e b dois nmeros inteiros. Dizemos que a divide b
e denotamos por a|b se existe um inteiro k tal que b = ka.

Listamos abaixo algumas propriedades bsicas da divisibilidade.

Propriedades. Sejam a,b e c inteiros.

1. 1|a.

2. a|a.

3. Se a|b e b|c, ento a|c.

4. Se a|b, ento a|bc.

Demonstrao. As demonstraes das propriedades acima decorrem imedia-


tamente da definio de divisibilidade e podem ser encontradas em [2].

Definio 2.2. Sejam a, b e d inteiros. Dizemos que d o mximo divisor


comum de a e b (e denotamos por (a, b) = d) se: (i) d|a e d|b e (ii) se d0 |a
e d0 |b ento d0 |d, com d0 inteiro.

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.

2.1.1 A funo de Euler


Definio 2.5. O nmero (m) o nmero de inteiros positivos menores
que, ou iguais a m, que so relativamente primos com m.
Um fato importante de se notar, a partir da definio, que (p) = p 1,
se p um nmero primo, j que ele coprimo com todos os menores que
ele. A definio da funo de Euler ser importante em um dos teoremas
citados na prxima sesso e fundamental no sistema de cifragem da RSA.
Para finalizar a sesso, enunciaremos a seguir trs propriedade da funo
que sero teis daqui para frente.
Teorema 2.2. Seja p um nmero primo, e a um inteiro positivo. Ento,
(1) (p) = p p1
(2) (mn) = (m)(n)
(3) Se a = p1 1 p2 2 ...pnn , em que p1 ...pn so os fatores primos de a, ento
(a) = a(1 1/p1 )(1 1/p2 )...(1 1/pn ).

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

(a) = (p1 1 )(p2 2 )...(pnn ) = p1 1 1 p2 2 1 ...pnn 1 (p1 1)(p2 1)...(pn 1)

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.

2.2.1 Pequeno Teorema de Fermat


Teorema 2.3 (Pequeno Teorema de Fermat). Seja p um nmero primo. Se
p no divide a, ento ap1 1 (mod p).

Demonstrao. Seja o conjunto de valores a, 2a, 3a,...,(p 1)a. Sabemos


que, pelo fato de que p no divide a, (a, p) = 1 e, portanto, nenhum dos
nmeros deste conjunto divisvel por p. Alm disso, temos que, se aj ak
(mod p), ento j k (mod p), ou seja, todos eles so incongruentes mdulo
p e, portanto, podemos estabelecer uma relao biunvoca entre os "aj",
j = 1, 2, ..., p 1 e o conjunto 1, 2, 3, ...(p 1), em termos de congruncia,
isto , cada um dos termos do primeiro conjunto congruente a um diferente
do segundo. Deste argumento, e da propriedade 5 da relao de congruncia,
segue a seguinte igualdade:

a(2a)(3a)...(p 1)a 1.2.3...(p 1) (mod p)

ou seja ap1 (p 1)! (p 1)! (mod p). Da lei do cancelamento, e do fato


de que ((p 1)!, p) = 1, segue que

ap1 1 (mod m)

Corolrio 2.1. Se p um primo e a um inteiro positivo, ento ap a


(mod p)

Demonstrao. Se p no divide a, do Pequeno Teorema de Fermat, temos


que p|(ap1 1) ou seja p|a(ap1 1). Se p divide a, ento p|a(ap1 1).

2.2.2 Teorema de Euler


O teorema de Euler visa generalizar o Pequeno Teorema de Fermat para
quaisquer nmeros inteiros, utilizando, para isso a funo de Euler.
interessante notar que para um nmero primo, o Teorema de Euler exata-
mente o Pequeno Teorema de Fermat.

Teorema 2.4 (Teorema de Euler). Se m um inteiro positivo e a um


inteiro com (a, m) = 1, ento a(m) 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

ar1 ar2 ...ar(m) r1 r2 ...r(m) (mod m)

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)

e isso completa a demonstrao.

Corolrio 2.2 (Pequeno Teorema de Fermat). Tome m = p, no sentido


do teorema anterior e teremos que (m) = p 1. O Pequeno Teorema de
Fermat segue da.
Apenas com estes resultados de Teoria Aritmtica dos Nmeros poderemos,
na prxima sesso, mostrar o algoritmo de cifragem e decifragem da RSA.
Contudo, apesar da aparente simplicidade de toda a teoria, preciso ter em
mente que ela foi construda durante muito tempo, por diversos matemticos
renomados na rea.

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).

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.

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)

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.

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.

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.

O problema da assinatura digital consiste em ter certeza de quem o desti-


natrio de uma mensagem, e bastante relevante principalmente nas relaes
entre bancos e empresas, pois tanto o banco deve ter confiabilidade de que
o seu cliente que est enviando uma ordem, quanto a empresa deve ter
certeza que ningum est tentando se passar por ela.

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

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

12

También podría gustarte