Você está na página 1de 32

UNIVERSIDADE ESTADUAL PAULISTA "JULIO DE MESQUITA FILHO "

U N E S P
Faculdade de Engenharia de Ilha Solteira - FEIS
Introduo Criptograa RSA
DEPARTAMENTO DE MATEMTICA
Aluna: Elen Viviani Pereira da Silva
Orientador: Jaime Edmundo Apaza Rodriguez
Ilha Solteira - SP, 2006
Agradecimentos
Eu agradeo aos meus pais, a quem devo minha vida, ao meu orientador Prof.
Jaime Edmundo Apaza Rodriguez, quem deposita todas as suas conanas em
mim, ao Rafael Antonio Rossato, ao Edison Righetto e ao Prof. Edson Donizete
de Carvalho.
1
Prefcio
Este trabalho surgiu a partir do estudo de alguns livros e artigos sobre Crip-
tograa, em geral, e em particular, sobre o mtodo RSA. O estudo deste mtodo,
suas origens, desenvolvimento, descrio e aplicaes, assim como a sua segurana,
so os objetivos deste trabalho. So dois os principais ramos da matemtica en-
volvidos neste estudo. De um lado, a Teoria dos Nmeros, onde so apresentados
os conceitos, resultados e algoritmos necessrios em que se basea o mtodo, e de
outro, a Teoria da Complexidade Algortmica, onde so discutidas alguns aspectos
e resultados sobre os custos operacionais dos algoritmos, ou seja, em termos de
tempo e uso de mquina, quanto custa um determinado algoritmo.
Sumrio
1 Introduo Criptograa 3
1.1 Um pouco de histria . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Teoria dos Nmeros e lgebra 5
2.1 Divisibilidade e propriedades . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Nmeros Primos e propriedades . . . . . . . . . . . . . . . . . . . . 7
2.3 Congruncias Lineares . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Uma aplicao . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Anis e Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.1 Anis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.2 Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Custos Algortmicos Computacionais 15
3.1 Custo das operaes elementares . . . . . . . . . . . . . . . . . . . . 16
3.2 Testes de Primalidade . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 Mtodo de Criptograa RSA 20
4.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2 Descrio do mtodo RSA . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.1 Um exemplo: . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 Segurana do RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.4 Assinaturas no RSA . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.5 Alguns algoritmos importantes . . . . . . . . . . . . . . . . . . . . 25
4.5.1 Em Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.5.2 Em Z
n
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.6 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2
Captulo 1
Introduo Criptograa
1.1 Um pouco de histria
O impulso para descobrir segredos est profundamente enraizado na natureza hu-
mana. Durante milhares de anos, reis e rainhas dependiam de algum tipo de
comunicao, mesmo que no eciente, para governar seus pases. Ao mesmo
tempo, todos estavam cientes dos riscos das mensagens serem interceptadas pelo
inimigo. Foi essa ameaa que gerou o desenvolvimento de mtodos para mascarar
as mensagens, denominados cdigos e cifras. Segundo alguns historiadores e anal-
istas militares, a Terceira Guerra Mundial ser a guerra dos matemticos, uma vez
que estes tero o controle sobre a prxima grande arma de guerra: a transmisso
segura da informao.
Os principais cdigos usados atualmente para a proteo das informaes mil-
itares foram elaborados por matemticos ou por pesquisadores com conhecimento
profundo em tal ara. Embora a Criptograa seja de importncia fundamental
em termos militares, os sistemas criptogrcos so amplamente utilizados no meio
civil, em transaes bancrias, em negociaes e em simples trocas de mensagens
que so efetuadas via internet.
Muitas mudanas no curso da histria humana se deram pela decifrao de
cartas e documentos. Entre elas, temos a morte de Maria, a rainha da Esccia e a
entrada dos Estados Unidos na Primeira Guerra Mundial.
A proliferao dos computadores e sistemas de comunicao em 1960 criou
uma grande demanda do setor privado buscando, na Criptograa, meios para pro-
teger a informao na forma digital e fornecer servios de segurana. Esta fase
comeou com o trabalho de H. Feistel na IBM em 1973, culminando em 1977,
com a adoo de um Processamento Padro de Informao Federal (USA) para
criptografar informao no classicada; a DES (Data Encryption Standard) o
mecanismo criptogrco melhor conhecido na histria.
Um trabalho relevante na pesquisa sobre Criptograa apareceu em 1976,
3
quando W. Die e M. Hellman publicaram o artigo New Directions in Cryp-
tography. Este trabalho introduz o conceito inovador de Criptograa de Chave
Pblica e fornece um novo e engenhoso mtodo para troca de chave, cuja segu-
rana esta baseada na impossibilidade do Problema do logaritmo discreto.
A Criptograa RSA trabalha com algoritmos computacionais utilizando a chave
pblica. Esse cdigo foi inventado em 1978 por Ron L. Rivest, Adi Shamir e Len
Adleman que, na poca, trabalhavam no Massachussets Institute of Technology
(M.I.T.). As letras RSA correspondem s iniciais dos inventores do cdigo.
A segurana desse sistema criptogrco est baseada em um antigo problema
matemtico: obter os fatores primos de um nmero dado. O RSA explora essa
situao ao utilizar um nmero, que atualmente varia de 512 a 1024 bits, e que
o produto de dois nmeros primos muito grandes.
Diversos mtodos de fatorao foram desenvolvidos. Vrios matemticos estu-
daram caminhos alternativos para solucionar este problema tais como Carl Gauss,
Leonard Euler e Pierre de Fermat. Mas essa rea era considerada intil para ns
prticos. No entanto, com o advento da cifra assimtrica, a mesma se tornou inter-
essante a todos os prossionais relacionados tecnologia da informao, inclusive
aos matemticos.
A engenhosidade de todos esses prossionais produziram resultados impor-
tantes no problema da fatorao. No entanto, nenhum mtodo desenvolvido
considerado satisfatrio a m de ser executado em tempo polinomial, e portanto, o
tamanho da chave suciente para garantir a segurana da informao no mtodo
RSA, em tempo real.
O algoritmo RSA foi patentiado pelo M.I.T. em 1983 nos Estados Unidos, mas
expirou em 21 de setembro de 2000. O RSA , atualmente, o mais usado em
aplicaes comerciais. Este o mtodo utilizado, por exemplo, no Netscape, o
mais popular dos softwares de navegao na Internet.
4
Captulo 2
Teoria dos Nmeros e lgebra
2.1 Divisibilidade e propriedades
Denio 1. Sejam a, b Z, com a = 0. Dizemos que a divide b, se existir c Z
tal que b = ac.
Observao: O inteiro c nico.
Notao: a|b signica, a divide b ou b mltiplo de a.
Propriedades fundamentais:
(1) a|a, para todo a Z.
(2) Se a|b e b|c, ento a|c, para todo a, b Z.
(3) Se a|b e c|d, ento ac|bd.
(4) Se a|b, ento a|mb, para todo m Z.
(5) Se a|b e a|c, ento a|(bx +cy), x, y Z.
(6) Se a|b e b|a, ento a = b.
Antes de enunciar e demonstrar o Algoritmo da Diviso, enunciamos a chamada
Propriedade de Arquimedes.
Propriedade de Arquimedes. Dados a, b Z, com b = 0, ento a mltiplo
de b ou se encontra entre dois mltiplos consecutivos de b, ou seja,
para b > 0, temos qb a < (q + 1)b,
e para b < 0, temos qb a < (q 1)b, onde q Z.
O Algoritmo da Diviso
Sejam a, b Z, com b 1. Ento existem nmeros inteiros nicos, q e r, tais
que
a = qb +r, com 0 r < b.
5
Prova:
Existncia: Pela Propriedade de Arquimedes, como b > 0, existe q Z, satis-
fazendo a condio qb a < (q + 1)b. Isto implica que 0 a qb e a qb < b.
Desta forma, se denirmos r = a qb, teremos garantida a existncia de q e r
inteiros.
Unicidade: Suponha a existncia de q
1
e r
1
tais que
a = q
1
b +r
1
, com 0 r
1
< b.
Segue que (qb + r) (q
1
b + r
1
) = 0, de onde b(q q
1
) = r
1
r, o que implica
b|(r
1
r). Mas, como r
1
< b e r < b, temos |r
1
r| < b. Assim r
1
r = 0, pois
b|(r
1
r). Portanto, r
1
= r e consequentemente, q
1
= q.
Mximo Divisor Comum e Mnimo Mltiplo Comum
Denico 2. Um inteiro, no negativo, d o mximo divisor comum dos
nmeros inteiros a e b (denota-se por d = mdc(a, b)), se
(a) d|a e d|b (ou seja, d um divisor comum);
(b) Se c|a e c|b ento c|d (ou seja, d o maior dos divisores comuns).
Denio 3. Um inteiro no negativo, d, o mnimo mltiplo comum dos
nmeros inteiros a e b )denota-se por d = mmc(a, b)), se
(a) a|d e b|d (ou seja, d mltiplo comum);
(b) se a|c e b|c ento d|c (ou seja, d o menor dos mltiplos comuns).
Denio 4. Dois inteiros a e b so ditos primos relativos se mdc(a, b) = 1.
conhecido um mtodo para determinar o mdc(a, b), chamado mtodo das
divises sucessivas. O resultado a seguir usa esse argumento para mostrar que
existe o mdc de dois nmeros inteiros e igual ao ltimo resto no-nulo das divises
sucessivas realizadas.
Algoritmo de Euclides. Sejam r
0
= a e r
1
= b inteiros no-negativos, com
b = 0. Se o algoritmo da diviso for aplicado sucessivamente para se obter
r
j
= q
j+1
r
j+1
+r
j+2
, com 0 r
j+2
< r
j+1
,
para j = 0, 1, 2, , n 1 e r
n+1
= 0, ento mdc(a, b) = r
n
, o ltimo resto
no-nulo.
Usando o algoritmo de Euclides, partindo da ltima diviso (que deu o mdc)
e substituindo sucessivamente nas igualdades anteriores, obtida a seguinte pro-
priedade fundamental do mximo divisor comum.
6
Propriedade: Se d = (a, b), ento existem nmeros inteiros r, s tais que d =
ra +sb.
2.2 Nmeros Primos e propriedades
Denio 1. Um inteiro p 2 dito primo se seus nicos divisores positivos so
1 e p.
Se p no primo, ento p dito composto.
Proposio 1. Se p primo e p|ab, ento p|a ou p|b.
Prova: De fato, suponha que p a, ou seja, mdc(a, p) = 1, pois p primo.
Assim, existem inteiros r, s tais que 1 = ra + sp. Multiplicando a igualdade em
ambos os lados por b temos b = r(ab) +p(sb). Como p|ab, ento existe um inteiro
k tal que ab = pk. Substituindo na igualdade acima obtemos
b = (rk)p + (sb)p = p(rk +sb)
o que implica que p|b.
Teorema do Nmero Primo. Seja (x) denotando o nmero de nmero de
primos que so menores ou iguais do que x. Ento
lim
x
(x)
x/ ln x
= 1.
Teorema Fundamental da Aritmtica
Todo nmero inteiro, maior do 1, pode ser representado de maneira nica, salvo
a ordem dos fatores, como
n = p
e
1
1
p
e
2
2
p
e
3
3
. . . p
e
k
k
,
onde os p
i
so primos distintos e e
i
inteiros positivos.
Teorema 2. Existem innitos nmeros primos.
Das vrias demonstraes para existem para este teorema, vamos apresentar a
demonstrao feita por contradio, dada por Euclides.
Prova: Seja p
1
, p
2
, ..., p
n
a lista de todos os primos. Considerando o nmero
R = p
1
p
2
...p
n
+1, claro que R no divisvel por nenhum dos p
i
da lista consider-
ada acima e que R maior do que qualquer p
i
. Mas, pelo Teorema Fundamental da
Aritmtica, ou R primo ou possui algum fator primo e isto implica na existncia
7
de um primo que no pertence quela lista. Portanto a sequncia dos nmeros
primos no pode ser nita.
Proposio 3. Sejam os nmeros inteiros
a = p
e
1
1
p
e
2
2
. . . p
e
k
k
e b = p
f
1
1
p
f
2
2
. . . p
f
k
k
,
onde e
i
0 e f
i
0, para i = 1, 2, , k. Ento
mdc(a, b) = p
min(e
1
,f
1
)
1
p
min(e
2
,f
2
)
2
. . . p
min(e
k
,f
k
)
k
mmc(a, b) = p
max(e
1
,f
1
)
1
p
max(e
2
,f
2
)
2
. . . p
max(e
k
,f
k
)
k
Lema 4. Se a, b Z, ento max(a, b) +min(a, b) = a +b.
Prova:
Se a = b ento max(a, b) = min(a, b) = a = b. Logo max(a, b) + min(a, b) =
a +b.
Se a = b, sem perda de generalidade, podemos considerar a < b. Logo
max(a, b) = b e min(a, b) = a. Portanto, max(a, b) +min(a, b) = a +b.
Proposio 4. Se a e b so inteiros positivos ento mmc(a, b)mdc(a, b) = ab.
Prova: Suponha a = p
e
1
1
p
e
2
2
. . . p
e
k
k
e b = p
f
1
1
p
f
2
2
. . . p
f
k
k
, onde cada e
i
0 e
f
i
0. Ento segue que,
mdc(a, b) mmc(a, b) =
k

i=1
p
min(a
i
,b
i
)
i
k

i=1
p
max(a
i
,b
i
)
i
=
k

i=1
p
min(a
i
,b
i
)+max(a
i
,b
i
)
i
.
Pelo lema acima, temos
k

i=1
p
min(a
i
,b
i
)+max(a
i
,b
i
)
i
=
k

i=1
p
(a
i
+b
i
)
i
= ab,
o que prova o resultado.
Denio 4. Para n 1, a funo (n) denota o nmeros de inteiros no
intervalo [1, n], que so relativamente primos n. Esta funo chamada de
Funo Totiente de Euler.
Propriedades:
(1) Se p primo, ento (p) = p 1.
De fato, seja S = {1, 2, ....., p1} o conjunto de todos os nmeros menores que
p. Dado m S, temos que p m, pois m < p. Alm disso, p primo e portanto
8
mdc(p, m) = 1, para qualquer que seja m S. Como S contm p 1 elementos,
segue que (p) = p 1.
(2) A funo multiplicativa, isto , se mdc(m n) = 1 ento
(m, n) = (m)(n).
(3) Se n = p
e
1
1
p
e
2
2
. . . p
e
k
k
, com p
i
primos e e
i
0, para todo i, ento
(n) = n(1
1
p
1
)(1
1
p
2
) . . . (1
1
p
k
).
Assim, se n um nmero composto que pode ser fatorado como o produto de
dois nmeros primos p e q ento (n) = (p 1)(q 1).
Proposio 5. Para todo inteiro n 5,
(n) >
n
6 ln ln n
.
2.3 Congruncias Lineares
Denio 5. Sejam a, b, n Z com n > 1. Dizemos que a congruente com b,
mdulo n, se n divide a b.
Notao: Denota-se a congruncia por a b (mod n).
Propriedades: Sejam a, b, c, d Z. So vlidas:
(1) (Reexiva) a a (mod n).
(2) (Simtrica) Se a b (modn) ento b a (mod n).
(iii)(transitividade) Se a b (mod n) e b c (mod n), ento a c (mod n).
(iv)Se a b (mod n) e c (mod n) ento a + c b + d (mod n) e ac
bd (mod n).
Por essas trs propriedades serem atendidas temos que a relao de congruncia
uma relao de equivalncia.
2.3.1 Uma aplicao
Um dos mtodos mais antigos de criptograa era usado pelo grande imperador da
Roma, Jlio Csar, a cerca de 50A.C.. Csar escrevia para Marcus Ccero usando
a rudimentar cifra de substituio onde a cada letra do alfabeto correspondia outra
letra algumas posies frente da letra cifrada. Como por exemplo:
9
TEXTO : ABCDEFGHIJKLMNOPQRSTUV WXY Z
CIFRA : DEFGHIJKLMENOPQRSTUV WY ZABC
A cifra de Csar pode ser descrita usando congruncia modular. Primeiramente,
cada letra do alfabeto ser expressa numericamente em dois dgitos como abaixo:
Tabela 03
A B C D E F G H I J K L M
00 01 02 03 04 05 06 07 08 09 10 11 12
N O P Q R S T U V W Y X Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Se C a letra a qual queremos cifrar e P a letra a qual corresponde a letra
cifrada, ento:
C P + 3 (mod 26).
Para descobrir o texto basta aplicar o procedimento reverso da congruncia:
P C 3 C + 23 (mod 26).
2.4 Anis e Grupos
2.4.1 Anis
Denio: Seja A um conjunto no vazio e duas operaes denidas nele (que
chamaremos de adio, +, e multiplicao, ). O conjunto A um anel se so
vlidas as propriedades:
(1) Associatividade aditiva: (a +b) +c = a + (b +c).
(2) Comutatividade da adio: a +b = b +a.
(3) Elemento neutro aditivo: Existe 0 A tal que a + 0 = 0 +a = a.
(4) Elemento inverso aditivo: Para a A existe um nico a, tal que a +
(a) = (a) +a = 0.
(5) Associatividade da multiplicao: a(bc) = (ab)c.
(6) Leis Distributivas: a(b +c) = ab +ac e (a +b)c = ac +bc.
Alm disso, temos:
(a) A um anel com unidade 1 se existir 1 A, 0 = 1, tal que
a1 = 1a = a, para qualquer a A.
10
(b) A um anel comutativo, se para quaisquer a, b A temos:
ab = ba.
(c) A um anel sem divisores de zero se, para quaisquer a, b A, ab = 0 ento
ou a = 0 ou b = 0.
(d) A um anel de integridade se (A, +, ) um anel comutativo, com unidade
e sem divisores de zero.
(e) (A, +, ) um corpo se um anel de integridade, onde todo elemento
no-nulo possui inverso multiplicativo.
Exemplo: O prottipo de anel o conjunto Z, com as operaes de adio
e multiplicao usuais, onde 1 a unidade e 0 o elemento neutro aditivo. Os
conjuntos Q, R, C so exemplos de corpos.
Ideal e Anel Quociente:
Denio: Sejam A um anel e J um subconjunto de A. J um ideal de A se
(1) 0 J
(2) Se a, b J ento a b J.
(3) Para a J e x A temos
a) ax J, ideal esquerda,
b) xa J, ideal direita.
Exemplo: Para A um anel e x A, temos que J = Ax = {ax : a A} um
ideal ( esquerda) gerado por x. No caso A = Z, e x = 3, o ideal 3Z est formado
pelos mltiplos de 3.
Denio: O ideal J = Ax dito ideal principal ( esquerda) gerado por
x A.
Sejam A um anel e J = Az, z A, um ideal principal de A. Para x, x

A,
dena-se a relao:
x x

(mod J) x x

J.
A relao "" uma relao de equivalncia em A. O conjunto
x = {y A : y x (mod J)}
a classe de equivalncia do elemento x A, relativamente a relao .
Observar que
y x y x J.
Notao: x = x +J = {x +z : z J}.
11
Denio: O conjunto quociente de A pelo ideal J est formado pelas classes
de equivalncia de A, ou seja, A/J = {x = x +J : x A}.
Denindo em A/J as operaes de adio e multiplicao de classes, verica-se
que A/J um anel, o anel quociente de A.
Denotamos por Z
n
o conjunto quociente do anel Z pelo ideal J = Zn = nZ.
Esse conjunto um anel comutativo, com identidade 1 e contm exatamente n
classes de equivalncia. comum denot-lo por
Z
n
= {0, 1, 2, , n 1}.
Denio: a Z
n
inversvel se existir b Z
n
tal que ab = ba = 1.
Anel de polinmios
Denio: Seja A um anel. Um polinmio p, na indeterminada x e com
coecientes em A, uma expresso da forma
p(x) = a
0
+a
1
x +a
2
x
2
+. . . +a
n
x
n
,
onde n um inteiro no negativo e a
0
, a
1
, . . . , a
n
A.
O polinmio p(x) = 0 + 0x + 0x
2
+. . . + 0x
n
o polinmio nulo.
Denota-se por A[x] o conjunto de todos os polinmios na indeterminada x e
com coecientes no anel A. No que segue, tomaremos A = K como sendo um
corpo.
Sejam os polinnios
p(x) = a
0
+a
1
x +a
2
x
2
+. . . +a
n
x
n
e q(x) = b
0
+b
1
x +b
2
x
2
+. . . +b
n
x
n
.
Igualdade: p(x) = q(x) se e somente se a
i
= b
i
, para i = 0, 1, , n.
Adio: p(x) +q(x) = c
0
+c
1
x +c
2
x
2
+. . . +a
k
x
k
, onde c
i
= a
i
+b
i
.
Multiplicao: p(x)q(x) = c
0
+c
1
x+c
2
x
2
+. . . +a
n
x
n
, onde c
k
=

n
i=0
a
i
b
ki
.
Verica-se que (K[x], +, ) um anel de integridade.
Dado p(x) = a
0
+a
1
x +a
2
x
2
+. . . +a
n
x
n
K[x], com a
n
= 0. Dizemos que n
o grau do polinmio p(x). Denota-se por n = gr(p(x)
Denio: Um polinmio dito mnico se o seu coeciente do termo de maior
grau igual a 1.
Ao estudar o anel de polinmios K[x], os conceitos e resultados que aparecem
so homlogos ao caso do anel Z. Assim, so vlidos o Algoritmo da Diviso,
Mximo Divisor Comum, Mnino Divisor Comum, fator irredutvel e outros. Ainda
12
mais importante o fato de que as demonstraes em K[x] so uma "traduo" das
demonstraes que se do em Z. Alm disso, possvel generalizar tais conceitos e
resultados para uma classe ainda mais geral de aneis (por exemplo, os domnios de
fatorao nica, os domnios principais, os domnios euclidianos), dos quais K[x]
e Z so casos particulares
2.4.2 Grupos
Denio: Um conjunto G, munido de uma operao , um grupo se, para
quaiquer a, b, c G, so vlidas
(1) Associatividade: a (b c) = (a b) c.
(2) Elemento neutro: Existe um elemento e G tal que a e = e a = a.
(3) Elemento inverso: Dado a G, existe um elemento a
1
G, tal que
a a
1
= a
1
a = e.
Se para quaisquer a, b G, satisfeita a propriedade a b = b a, dizemos que
G um grupo abeliano.
Exemplo: O conjunto U(n) = {a Z
n
: mdc(a, n) = 1}, dos elementos
invertveis de Z
n
, com a operao de multiplicao de classes, um grupo abeliano.
Em particular, se n primo ento U(n) = {a : 1 a n 1}. Desta forma, o
nmero de elementos de U(n) igual a (n) = n 1.
Denio: A ordem de um grupo o seu nmero de elementos.
Denio: Um grupo G dito nito se a sua ordem nita.
A ordem do grupo U(n) dado pela funo de Euler (n).
Subgrupos
Denio: Seja (G, ) um grupo. Um subconjunto no vazio, H de G, um
subgrupo se:
(1) Para todo a, b H, a b H.
(2) O elemento neutro de G est em H.
(3) Para todo a H, seu inverso a

tambm est em H.
Teorema de Lagrange:
Em um grupo nito, a ordem de qualquer subgrupo divide a ordem do grupo.
Esse teorema muito importante na construo de subgrupos e grupos cclicos.
Subgrupos Cclicos
13
Sejam (G, ) um grupo nito e a G. Para k Z, temos
a
k
= a a a .... a
. .
kvezes
.
O conjunto das potncias de a:
H = {e, a, a
2
, a
3
, },
um subgrupo nito de G. Assim, existe um inteiro positivo m, tal que para todo
n > m, vale a
m
= a
n
, de onde segue a
nm
= e. o elemento neutro. Assim:
(1) Dado a G, existe um inteiro positivo k tal que a
k
= e.
(2) Se a
k
= e, ento o inverso de a a
k1
. Logo o inverso de a est em H.
O subgrupo H de G descrito acima dito subgrupo cclico e gerado por a.
O menor inteiro positivo k tal que a
k
= e chamado a ordem de a. Conclumos
que H = {e, a, a
2
, a
3
, , a
k1
}, onde todos os elementos so distintos. Assim a
ordem de H k.
Seja G um grupo cuja ordem o nmero primo p. Para a = e em G, considere
o subgrupo H formado pelas potncias de a. Pelo Teorema de Lagrange, a ordem
de H divide a ordem de G. Logo, a ordem de H p e assim H = G. Portanto,
todos os grupos de ordem um nmero primo so cclicos. Mas a recproca nem
sempre verdadeira. Um exemplo disso o grupo U(5), que tem ordem (5) = 4
e cclico, gerado por 2.
Grupo Quociente
Sejam, (G, ) um grupo abeliano e H um subgrupo de G. Para x, y G,
denimos a relao:
x y (mod) H x y
1
H.
A relao uma relao de equivalncia. A classe de equivalncia de x
x = {y G : y x(modH)}.
Mas, y x (mod H) signica dizer que y x
1
= h H, isto y = h x.
Portanto, a classe de equivalncia de x o conjunto
x = {h x : h H}.
Segue que x = y se, e somente se, x y(modH). Em particular, a classe do
elemento neutro e H, ou seja, x H se e somente se x = e. O conjunto das
classes de equivalncia de G, pela congruncia mdulo H denotado por G/H.
Em G/H denimos a operao a

b =

a b e assim (G/H, ) um grupo
abeliano.
14
Captulo 3
Custos Algortmicos
Computacionais
A Teoria da Complexidade Algortmica estuda os aspectos relacionados aos re-
cursos necessrios (tais como tempo, espao, nmero de bits e nmero de proces-
sadores) para resolver um determinado problema. Atualmente, os computadores
resolvem problemas mediante algoritmos que tem uma complexidade ou custo com-
putacional polinmico, que menor que o custo computacional exponencial. Neste
captulo, introduzimos alguns conceitos e resultados acerca dos custos computa-
cionais de algoritmos, em particular, daqueles usados neste trabalho.
Denies:
(a) A classe de complexidade P o conjunto de todas as decises dos problemas
que so resolvidos em tempo polinomial.
(b) A classe de complexidade NP o conjunto de todas as decises de proble-
mas lgicos (sim ou no), as quais podem ser vericadas em tempo polinomial.
Os problemas com custo fatorial ou combinatrio esto agrupados em NP.
A importncia dessa complexidade pode ser observada no exemplo a seguir, que
mostra 5 algoritmos de complexidades diferentes, A1A5, para resolver um mesmo
problema. Suponha que cada operao leva 1 milisegundo de tempo para ser
efetuada. A tabela seguinte fornece o tempo necessrio por cada um dos algoritmos
dados, (T
k
(n) a complexidade do algoritmo).
15
Tabela 01
A1 A2 A3 A4 A5
n T
1
(n) = n T
2
(n) = nlogn T
3
(n) = n
2
T
4
(n) = n
3
T
5
(n) = 2
n
16 0, 016s 0, 064s 0, 256s 4s 30dias e 4s
32 0, 032s 0, 16s 1s 33s 46dias
512 0, 512s 9s 120dias e 22s 1dia e 13h 10
139
anos
O tempo de execuo de um problema considera o nmero de passos necessrios
para resolver uma instncia dele, a partir do tamanho da entrada, utilizando o al-
goritmo mais eciente disposio. Intuitivamente, no caso uma instncia com
entrada de longitude n que pode se resolver em n
2
passos, dizemos que esse prob-
lema tm uma complexidade em tempo de n
2
. Supostamente, o nmero exato
de passos depende da mquina em que se programe, da linguagem utilizada e de
outros fatores.
3.1 Custo das operaes elementares
Sejam a = (a
k1
, a
k
, . . . , a
1
, a
0
)
2
e b = (b
k1
, b
k
, . . . , b
1
, b
0
)
2
, as representaes
binrias dos inteiros a e b.
1. Soma:
Passo 1: Calculamos a
0
+b
0
.
Se a
0
+ b
0
< 2 ento s
0
= a
0
+ b
0
o algarismo das unidades de a + b. Se
a
0
+ b
0
= 2 ento s
0
= 0 e "vai" 1. O tanto que "vai" para o prximo passo
conhecido como reserva.
Passo 2: Calculamos a
1
+ b
1
, se a reserva zero, ou a
1
+ b
1
+ 1, se houver
reserva no nula.
A seguir, repetimos este procedimento at i = k.
Exemplo: Para 12 = (0011)
2
, 8 = (0001)
2
, temos
1
o
Passo a
0
+b
0
= 2, logo s
0
= 0 e "vai" 1.
2
o
Passo a
1
+b
1
+ 1 = 2, logo s
1
= 0 e "vai"1.
3
o
Passo a
2
+b
2
+ 1 = 1 < 2, logo s
2
= 1 e reserva igual a 0.
4
o
Passo a
3
+b
3
= 0 < 2, logo s
3
= 0 e s
4
= 1
Assim, 12 + 8 = 20 = (00101)
Neste caso, claro que no necessrio efetuar mais do que 2k operaes
aritmticas elementares.
2. Multiplicao:
16
Primeiro multiplicamos b por cada bit de a e depois efetuamos a soma dos
resultados. Teremos k produtos elementares e no mximo 2k 1 operaes para
cada elemento de b. Mas como b possui k elementos, teremos k(2k 1) operaes.
Temos ba
i
= (c
i,k+1
; . . . ; c
i,1
; c
i,0
)
2
e ento a soma pode ser escrita na forma:
c
0,k+1
. . . c
0,1
c
0,0
c
1,k+1
. . . c
1,1
c
1,0
c
2,k+1
. . . c
2,1
c
2,0
.
.
.
.
.
.
.
.
.
c
k,k+1
. . . c
k,1
c
k,0
Levar em conta que o nmero de somas realizadas em cada coluna no pode
exceder 2k. Como temos k colunas, podemos somar todos estes nmeros a um custo
de 2k
2
somas elementares. Juntando tudo, no realizamos mais do que 4k
2
k
operaes aritmticas elementares.
Denio: Sejam f e g, duas funes cujos domnio N ou R, e contradomnio
R. Dizemos que f(x) O(g(x)), ou seja, f(x) de ordem g(x), se existirem
constantes c
1
e c
2
tais que f(x) c
1
g(x), sempre que x > c
2
.
Exemplo:
Seja f(x) R[x], grau n. Ento f(x) O(x
n
).
Prova: De fato, seja f(x) = a
n
x
n
+a
n1
x
n1
+. . . +a
0
x
0
, com a
n
= 0. Escolha
um nmero real b > a
n
. Como
lim
x
f(x)
bx
n
=
a
n
b
< 1,
Conclumos que, para x suciente grande, teremos f(x) bx
n
, ou seja, f(x)
O(x
n
).
Propriedades: Sejam f
1
, f
2
, g
1
, g
2
: N R. Se f
1
= O(g
1
), f
2
= O(g
2
) ento
f
1
+f
2
= O(max {g
1
, g
2
})
f
1
f
2
= O(g
1
g
2
)
Em particular, se tanto f
1
quanto f
2
so O(g
1
), ento f
1
+f
2
= O(g
1
) e f
1
f
2
=
O(g
2
1
).
Quando um problema tem custo O em uma congurao de computador e lin-
guagem, este custo ser o mesmo em todos os computadores, ou seja, essa notao
generaliza a noo de custo computacional, independentemente do equipamento
utilizado.
17
3.2 Testes de Primalidade
Para implementar o mtodo RSA necessrio escolher dois primos p e q relativa-
mente grandes. Recomenda-se fazer a escolha de primos com o nmero de dgitos
maior ou igual a 100. Existem algum testes de primalidade antigos, como os apre-
sentados abaixo, e alguns desses so utilizados na implementao do mtodo. No
entanto, nenhum deles eciente com nmeros grandes.
Pequeno Teorema de Fermat: Se p primo e a um inteiro tal que
mdc(a, p) = 1 ento
a
p1
1 (mod p)
Prova: Dados p e a com p a, consideramos os conjuntos {1, 2, 3, ..., p 1} e
{a, 2a, 3a, .....(p 1)a}. Armamos que a, 2a, 3a, ..., (p 1)a 0 (mod p).
De fato, se i, j 1, 2, 3, ..., p 1 e ia ja (mod p), conclumos i j (mod p),
pois mdc(a, p) = 1. Assimi = j, dado que 0 i, j < p. Isto implica que os nmeros
a, 2a, 3a, 4a, ....(p1)a so incongruentes entre si mod p. Logo, a, 2a, 3a, 4a, ....(p
1)a so congruentes, em alguma ordem, aos 1, 2, 3, ..., p1. Podemos concluir ento
que
(p 1)! = 1.2.3....p 1 a.2a.3a.4a....(p 1)a, ou seja,
(p 1) a
(p1)
(p 1)! (mod p).
Como mdc((p 1)!, p) = 1 ento a
(p1)
1 (mod p).
Teorema de Fermat: Para qualquer primo p e qualquer a Z temos
a
p
a (mod p)
Prova: Temos duas possibilidades a considerar:
1
o
Caso : Se p | a, ento p | a(a
(p1)
1), ou seja, p | a
p
a, e portanto
a
p
a (mod p).
2
o
Caso: Se p a, ento pelo Pequeno Teorema de Fermat, a
p1
1 (mod p).
Multiplicando a congruncia por a obtemos a
p
a (mod p).
Teorema de Euler: Se a U(n) ento a
(n)
1 (mod n).
Um caso particular do teorema de Euler o Pequeno Teorema de Fermat.
Recproca do Teorema de Wilson: Se n um nmero inteiro positivo tal
que (n 1)! 1 (mod n), ento n primo.
Prova: De fato, se n um nmero positivo no primo ento n = pq, com p e q
primos e 1 < p, q < n 1. Desta forma, p divide n e tambm (n 1)! , e portanto
(n 1)! 1 (mod n).
18
Teorema da Raiz Primitiva: Se p primo ento U(p) cclico.
Segundo este teorema, se p primo ento existe um elemento b U(p), cuja
ordem exatamente p 1, ou seja,
b
(p1)
1 (mod p), mas b
r
1 (mod p),
se r < p1. Digamos que dado um nmero mpar n e que achamos b U(n) cuja
ordem exatamente n1. Pelo Teorema de Lagrange , a ordem de b tem que dividir
a ordem de U(n). Logo n 1 tem que dividir (n). Entretanto (n) n 1.
Conclumos assim que (n) = n 1. Portanto n primo.
Teste de Lucas: Seja n um inteiro positivo mpar e b um inteiro tal que
2 b n 1. Se b
n1
1 (mod n) e b
n1/p
1 (mod n), para cada fator primo
p de n 1, ento n primo.
19
Captulo 4
Mtodo de Criptograa RSA
4.1 Introduo
Dentre dos mtodos criptogrcos de chave pblica, o RSA o mais conhecido e,
atualmente, o mais usado, sobre todo em aplicaes comerciais. Este sistema de
criptograa muito til para o comercio eletrnico via Internet, assim como para
navegar nela, atraves do Netscape.
Esse mtodo foi inventado em 1978 por R. L. Rivest, A. Shamir e L. Adleman,
quando trabalhavam no Massachussets Institute of Technology (M.I.T.).
O RSA, por ser um mtodo de chave pblica, permite que qualquer usurio
codique mensagens, mas como a chave de decodicao secreta, s o destinatrio
legtimo poder decodic-la.
A impossibilidade de quebrar a chave de decodicao possvel pela no ex-
istncia de algoritmos ecientes para a fatorao de inteiros em fatores primos,
sobre todo, se o nmero de algarismos 100 ou maior. O tempo de codicao
de uma mensagem praticamente deprezvel, mas o tempo de decodicao pode
tornar o processo inviavel.
4.2 Descrio do mtodo RSA
A chave de codicao do RSA esta constituda essencialmente por n = pq, onde
p e q so primos grandes e distintos. Temos que escolher um inteiro e de forma
que mdc((n), e) = 1 e 1 < e < (n). O par de inteiros n e e so feitos pblicos.
Os nmeros primos podem ser testados, quanto a primalidade, atravs de testes
probabilsticos, e a escolha mais popular um nmero maior ou igual a 2
16
+ 1 =
65537.
Cada letra do alfabeto colocada em correspondncia biunvoca com um nmero
de dois algarismos. Analogamente, ao espao entre as palavras corresponde um
20
nmero, tambm de dois algarismos, diferente dos demais. Aps da pre-codicao,
obtida uma sequncia de nmeros, a qual preciso separar em blocos apropri-
adamente.
Denotaremos esses blocos por M
i
, onde i = 1, 2, ..., k. Para cada inteiro M
i
,
relativamente primo com n, temos:
M
(n)
1(mod n). (1)
J que para cada primo p, temos (p) = p 1, segue, das propriedades da funo
totiente de Euler, que
(n) = (p)(q) = (p 1)(q 1).
O bloco codicado o resto da diviso M
e
i
por n. Agora, devemos calcular
C(M
i
), de forma que:
M
e
i
C(M
i
)(mod n). (2)
Para decifrar a mensagem necessrio encontrar um nmero d tal que
ed 1(mod (p 1)(q 1)). (3)
Para isso, basta resolvermos, atravs do Algoritmo Euclidiano, a equao
ed +y(n) = 1.
Aps determinar d, achamos o resto da diviso de C(M
i
)
d
por n. Assim, de (1),
(2) e (3) segue que
C(M
i
)
d
(M
e
i
)
d
M
1+(n)t
i
M(M
(n)
)
t
M(1
t
) M(mod n).
4.2.1 Um exemplo:
Para ilustrar o processo descrito acima, vamos codicar a frase
CIFRAR UMA ARTE.
Primeiro, fazemos a converso da mensagem dada, (pre-codicao), para uma
sequncia nmerica, de acordo com a tabela 04 abaixo.
Tabela 04
A B C D E F G H I J K L M N O P Q R
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
S T U V W Y X Z -
28 29 30 31 32 33 34 35 99
21
Assim obtemos a sequncia:
1218152710279914993022109910272914
Escolhemos p = 11, q = 7 e o nmero e = 11. Assim, a chave feita pblica
o par (77, 11) e a ordem de n (77) = (11 1)(7 1) = 60. Neste caso, a
mensagem pode ser quebrada nos seguintes blocos:
121 81 527 102 79 914 99 302 210 99 102 72 914
Logo, codica-se cada bloco e resultam
Bloco 121 :
(121)
11
(44)
11
(44
2
)
4
(11)
3
(11)
2
44 44
2
11(mod 77)
Bloco 81 :
(81)
11
(4
4
)
2
4
3
9(4)
3
37(mod 77)
Bloco 527 :
(527)
11
(65)
11
(23)
2
(67)(65) 32(mod 77)
Bloco 102 :
(102)
11
(25)
11
(4
2
)(9)(25) 58(mod 77)
Bloco 79 :
(79)
11
(2)
11
46(mod 77)
Bloco 914 :
(914)
11
(67)
11
(23)
5
(67) 23(mod 77)
Bloco 99 :
(99)
11
(22)
11
(22)
5
22(mod 77)
Bloco 302 :
(302)
11
(71)
11
(64)
2
(36)(71) 71(mod 77)
Bloco210 :
(210)
11
(56)
11
56(mod 77)
Bloco 72 :
(72)
11
(25
5
)(72) 39(mod 77).
Obtemos assim a mensagem cifrada:
11373258462322715622583923
Para decifrar a mensagem temos que determinar o nmero inteiro positivo d
atravs da equao diofantina 11d + y60 = 1. Aplicando o Algoritmo Euclidiano
Estendido obtemos d = 11. Logo, decodicamos os blocos codicados e resultam
22
Bloco 11 :
(11)
11
(44)
2
(11) (11)
2
121(mod 77)
Bloco 37 :
(37)
11
(60)
5
(37) (15)(67) 81(mod 77)
Bloco 32 :
(32)
11
(23)
5
(32) 65 527(mod 77)
Bloco 58 :
(58)
11
(37)
2
(53)(58) 25 102(mod 77)
Bloco 46 :
(46)
11
(37)
5
(46) (67)(46) 79(mod 77)
Bloco 23 :
(23)
11
(23)
2
equiv67 914(mod 77)
Bloco 22 :
(22)
11
22 99(mod 77)
Bloco 71 :
(71)
11
71 302(mod 77)
Bloco 210 :
(56)
11
56 210(mod 77)
Bloco 72 :
(39)
11
(58)
39
(37)(58)(39) 72(mod 77)
Assim, obtida a sequncia original e portanto, recuperada a mensagem.
4.3 Segurana do RSA
Como j se sabe, o RSA um mtodo de chave pblica, pois o par (n, e) acessvel
a qualquer usurio. Na prtica, s podemos calcular d se soubermos a ordem,
(n), de n e o nmero e. O fato que para calcular a ordem de n necessrio
fator -lo para obter p e q, uma vez que no conhecida outra forma de encontrar
rapidamente a ordem do nmero. Se n for muito grande, este um problema
complexo.
Mtodos conhecidos de fatorao para nmeros grandes
(1) Algoritmo de fatorao de Richard Schroeppel. Ele pode fatorar n em
aproximadamente
exp
_
ln(n).ln(ln(n)) = n

lnln(n)/ln(n)
= (ln(n))

ln(n)/ln(ln(n))
23
degraus. A tabela 05 mostra o nmero de operaes necessrias para fatorar n e
o tempo requerido em cada operao em um microssegundo para cada quantidade
de dgitos decimais do nmero n.
Tabela 05
Dgitos Nmero de Operaes Tempo
50 1, 4 10
10
3, 9 horas
70 9, 0 10
12
104 dias
100 2, 3 10
15
74 anos
200 1, 2 10
23
3, 8 10
9
anos
300 1, 5 10
29
4, 9 10
15
anos
500 1, 3 10
39
4, 2 10
25
anos
(2) O mtodo General Number Field Sieve (GNFS) estudado por Shamir e
Arjem Lenstra. Este mtodo uma extenso do mtodo chamado Special Number
Field Sieve (SNFS). Ele o algoritmo mais eciente conhecido atualmente para
fatorar nmeros com um nmero de dgitos maior do que 100. [Ver [4], [5], [8],
[10]].
Observao:
Algoritmos "turbinados" e o uso de computadores super-velozes fariam a
fatorao provavelmente mais rpida, mas no signicativamente menor, para
nmeros muito grandes. A ttulo de ilustrao, considere que o bloco C a ser
codicado tenha 100 casas decimais e que e tenha 50 casas decimais. Dessa forma,
para cifrar o bloco haveria um clculo da ordem de:
C
e
[10
100
]
(10)
50
importante observar que um nmero dessa grandeza no poderia ser armazenado
em qualquer computador. No entanto, possvel obter o mdulo deste nmero,
evitando a exploso de memria. Outro problema que surge no mtodo RSA a
necessidade de gerar nmeros primos grandes aleatoriamente.
Diante disso, acredita-se que quebrar o RSA e fatorar n sejam problemas equiv-
alentes. Atualmente, pesquisa-se sobre o computador quntico, que seria capaz de
fatorar nmeros e vericar primos com uma velocidade enorme. Isto acabaria
com a majestade do RSA e surgiria uma nova criptograa, a chamada criptograa
quntica.
4.4 Assinaturas no RSA
O mtodo RSA tambm pode ser utilizado para vericar a originalidade das men-
sagens. Para implementar um sistema de assinaturas digitais com RSA, o utilizador
24
que possua uma chave privada d, poder assinar uma mensagem dada (em blocos),
M, com a seguinte expresso:
s M
d
(mod n)
De fato, difcil descobrir s sem o conhecimento de d. Portanto, uma assinatura
digital descrita acima dicilmente forjada. O receptor recupera a mensagem
utilizando a chave pblica e do emissor e portanto:
s
e
(M
d
)
e
M(mod d)
Assim, o receptor poder validar a assinatura do emissor calculando s
e
(mod n).
A assinatura varia de acordo com a mensagem e opera-se o tamanho da assinatura
sobre as mensagens longas. Para melhorar essa situao, faz-se operar o algoritmo
sobre um resumo da mensagem, o chamado digest, ou pode-se ser produzido um
valor hash, tambm diminuindo a mensagem, porm ambas identicando a mesma
como nica.
4.5 Alguns algoritmos importantes
4.5.1 Em Z
Sejam a, b inteiros no negativos e menores ou iguais que n. O nmero de bits uti-
lizados para as quatro operaes bsicas com nmeros inteiros (adio, subtrao,
multiplicao e diviso) so:
Tabela 02
Operao Bits
Adio (a +b) O(lg a + lg b) = O(lg n)
Subtrao (a b) O(lg a + lg b) = O(lg n)
Multiplicao (ab) O((lg a)(lg b)) = O((lg n)
2
)
Diviso (a = bq +r) O((lg a)(lg b)) = O((lg n)
2
)
Apresentamos a seguir a implementao do Algoritmo Euclidiano, para deter-
minar o mximo divisor comum de dois nmeros inteiros.
Algoritmo Euclidiano
Entrada: Dois inteiros positivos a e b, com a b.
Sada: O mximo divisor comum entre a e b.
1. Enquanto b = 0 faa:
25
q int(a/b)
r a bq
a b
b r.
2. Retorne a.
Algoritmo Euclidiano Estendido
Entrada: Dois inteiros positivos a e b, com a b.
Sada: d = mdc(a, b)e dois inteiros satisfazendo ax +by = d.
1. Se b = 0 ento faa :
d a
x 1
y 0, retorne (d, x, y).
2. Faa:
x
2
1
x
1
0
y
1
1
3. Enquanto b > 0 faa:
q int(a/b)
r a qb
x x
2
qx
1
y y
2
qy
1
.
a b
b r
x
2
x
1
x
1
x
y
2
y
1
y
1
y.
4.
d a
x x
2
y y
2
e retorne (d, x, y).
26
4.5.2 Em Z
n
Mdulo Exponencial:
Entrada: a Z
n
, e k tal que 0 k < n representado na base 2, ou seja,
k =

t
i=0
k
i
2
i
.
Sida: a
k
(mod n)
Inteiro: a, k, b, t, A, n
Incio
Ler: a, n, k
b 1
Se (k = 0) ento
Imprimir b
Fim - se
A a
Se (k
0
= 1) ento
b a
Fim- se
Para i de 1 at t faa
A A
2
(mod n)
Se (k
i
= 1) ento
b A.b (mod n)
Fim - se
Fim Para
Imprimir b
Fim
Para determinar k na base 2:
Entrada: nmero n inteiro positivo na base decimal
Sada: nmero n na base 2
Incio
Ler n, a, r, i
i 0
Enquanto (q = 0) Faa
q int(n/2)
r n q 2
27
a
i
r
n q
i i + 1
Fim Enquanto
Para j de 0 at i 1 faa
Imprimir a
j
2
j
Fim Para
Fim
O Teorema Chins do Resto uma aplicao algortmica para calcular com-
putacionalmente mdulos.
Teorema Chins do Resto: Se o mximo divisor comum entre a
i
e m
i

igual a 1, mximo divisor comum entre m
i
e m
j
igual a 1, para i = j e c
i
inteiro,
ento o sistema
a
1
x c
1
(mod m
1
)
a
2
x c
2
(mod m
2
)
a
3
x c
3
(mod m
3
)
.
.
.
a
r
x c
r
(mod m
r
)
possui soluo e a soluo nica, mdulo m, onde m = m
1
m
2
m
3
...m
r
.
A soluo do sistema de congruncias simultneas pode ser calculado como
x =

k
i=1
a
i
N
i
M
i
(mod n), onde N
i
= n/n
i
e M
i
= N
1
i
(mod n
i
). Computacional-
mente, essa operao pode ser feita a um custo de O((lgn
2
)) bits operacionais.
Foram feitos estudos sobre o tempo gasto para codicar e decodicar a men-
sagem utilizando o sistema RSA com e sem o algoritmo chins do resto. Esses
estudos mostraram que o tempo gasto pelo sistema RSA sem o algoritmo chins
do resto aumenta linearmente enquanto o algoritmo tradicional mantm um tempo
quase constante. importante salientar que os testes foram feitos para nmeros
cuja quantidade de dgitos pequena e portanto a implementao se torna invivel
para nmeros grandes.
28
4.6 Concluso
O mtodo de Criptograa RSA constitui um exemplo de aplicao de vrios ramos
da matemtica soluo do problema de segurana na comunicao em tempo
real. Este mtodo garante a transmisso de informaes condenciais atravs de
redes inseguras, e tambm pode garantir autenticao do usurio, o que o torna
extremamente necessrio em transaes bancrias.
O RSA facilmente implementado, mas trabalhando com nmeros de ordem
grande, necessrio utilizar a computao em paralelo para a resoluo do prob-
lema em um tempo menor. por todas essas vantagens que, atualmente, o
mtodo mais utilizado. Alm disso, mesmo com grandes estudos na rea de algo-
ritmos poderosos em fatorao dos nmeros, ainda no conhecido um algoritmo
determinista ou aleatrio, em tempo polinomial, para encontrar um fator de um
inteiro composto n. Este fato emprico de grande interesse, porque o algoritmo
mais popular para criptograa, o RSA, seria inseguro se um algoritmo rpido para
fatorao de inteiros pudesse ser implementado.
29
Referncias
[1] Burton, D.M., Elementary Number Theory, 5th Edio, Internacional Series
in Pure and Applied Mathematics, 2002.
[2] Coutinho, S. C., Primalidade em Tempo Polinomial- Uma Introduo ao
Algoritmo AKS, Coleo Iniciao Cientca, Sociedade Brasileira de Matemtica,
IMPA, RJ, 2004.
[3] Coutinho, S. C., Nmeros Inteiros e Criptograa, Srie de Computao e
Matemtica, IMPA, Segunda Edio, 2003.
[4] Lenstra, A., Tromer, E., Shamir,A., Kortsmit, W., Dodson B., Hughes J.
and Leyland, P., Factoring Estimates para a 1024-bit RSA modulus, Asiacrypt
2003.
[5] Lenstra, A., Computational Methods in Public Key Cryptology, Institute
for Mathematical Sciences, National University of Singapore, 2002.
[6] Menezes, A., Oorschot, P.V., Vanstone, S., Handbook of Applied Criptog-
raphy, CRC, Press, 1996.
[7] Ribenboim, P., Nmeros primos: Mistrios e recordes, Coleo Matemtica
Universitria, IMPA, RJ., 2001.
[8] Rivest, R. L., Shamir, A., Adlemam, L., A Method for Obtaining Digital
Signatures and Public-Key Cryptosystems, Communications, Programming Tech-
niques SL Graham, RL Rivest Editors, 1978.
[9] Silva, W. L. e Chaves, L. M., A Criptograa RSA e o Algoritmo Chins do
Resto, Journal of Computer Science, 2000.
[10] Winkipdia, disponvel em: < http://pt.wikipedia.org/wiki/RSA> (01 de
setembro de 2006).
30

Você também pode gostar