Criptografia:
Algoritmo RSA
por: Bernardino Sant’ Ana Júnior
Objetivos
- Apresentar uma revisão histórica da criptografia até
surgimento do RSA
- Descrição do RSA e apresentação da matemática
envolvida
Sumário
Introdução
Desenvolmento
Breve Histórico
Cifras assimétricas
RSA e Aritmética Modular
Conclusão
Por milhões de anos a humanidade viveu como os animais.
Então aconteceu algo, que despertou o poder de nossas mentes:
aprendemos a falar.
Stephen Hawking
Três pessoas só conseguem manter um segredo se duas delas já estiveram
mortas
Benjamim Franklin
Histórico
- Objetivos da Criptografia : SIGILO e AUTENTICAÇÃO
- Processos : transposição e substituição
- Cifra de César e Códigos antigos de substituição. Eram
quebrados por análise de frequência.
- 1563 - Criador Blaise de Viginère
- 1821 - Charles Babbage criptonalista
- A partir do século XX e principalmente na Segunda Guerra
Mundial os métodos de transposição e substituição
começaram a ser mecanizados e com o desenvolvimento do
computador tornaram-se informatizados.
Máquinas utilizadas na II GM: Enigma e Purple
FREQUÊNCIA APROXIMADA DAS LETRAS NO PORTUGUÊS.
Letra Freq Letra
(%)
Freq
(%)
A
B
C
D
E
F
G
H
I
J
K
L
M
5.05
10.73
2.52
1.20
6.53
7.81
4.34
4.63
1.67
0.01
0.21
0.01
0.47
14.63
1.04
3.88
4.99
12.57
1.02
1.30
1.28
6.18
0.40
0.02
2.78
4.74
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Textos eram
criptoanalisados
comparando-se a
frequência com que
as letras apareciam
no texto
criptografado com a
frequência com que
apareciam num
determinado idioma.
Até 1976, os sistemas criptográficos eram baseados nos
chamados algoritmos simétricos, onde remetente e destinatário
possuíam a mesma chave.
A segurança do sistema encontrava-se no fato de a chave ser
transmitida de forma segura. Para a troca de chaves é necessário
um canal seguro. Mas se existe um canal seguro então é
necessário criptografar ?
Outra questão é o gerenciamento das chaves.
Exemplo: Para que 50 pessoas possam comunicar-se utilizando
a criptografia simétrica são necessárias:
(50 * 49) / 2 = 1.255 chaves diferentes.
No início da década de 70 a Indústria e Comércio
adotam o DES (Data Encryption Standard)
Diffie e Hellman, em 1976, criam a concepção de
chave pública
Em 1977 a criação do RSA (Rivest, Shamir, Adleman)
implementa de forma prática as idéias de chave
pública
Surgimento do PGP na década de 80
Nos algoritmos de Chave Pública:
Criptografia garante o SIGILO
Assinatura Digital garante a AUTENTICIDADE
Criptografia
A
Texto
Claro
Texto
Cript
o
B
Texto
Claro
Ch Pub B
Meio de
Transmissão
Texto
Cript
o
Ch Pr B
Assinatura digital
A
B
Texto
Claro
Texto
Claro
Ch Pr A
Texto
assinad
o
Meio de
Transmissão
Texto
assinad
o
Ch Pub A
Criptografia e Assinatura Digital
A
Texto
Claro
Texto
Cripto
assinad
o
B
Ch Pub B
Ch Pr A
Meio de
Transmissão
Texto
Claro
Texto
Cripto
assinad
o
Ch Pr B
Ch Pub A
RSA
Adi Shamir, Ronald Rivest e Leonard Adlman
http://www.usc.edu/dept/molecular-science/RSApics.htm
Algoritmo criado em 1977 por:
Ron Rivest, Adi Shamir e Leonard Adleman
Idéia da chave pública colocado em prática
Utilizado até os dias atuais e de grande segurança
Aritmética Modular: a ≡ b mod
A notação a ≡ b mod
divisível por m.
m, indica que (a-b) é
O Módulo 3, por exemplo, representa o conjunto
dos inteiros formados por 0, 1 e 2, sendo que
qualquer operação neste módulo não pode
ultrapassar 3. Exemplo:
2 + 2 = 4 , mas em MOD 3 o resultado 2 + 2 = 1.
Pois 4 é dividido por 3 e tem resto 1.
Matematicamente: 4 ≡ 1 MOD 3.
Algoritmo RSA
1) escolher p e q , dois números primos;
2) calcular n=p*q;
3) calcular Φ(n) = (p-1)(q-1);
4) escolher e
5) calcular d, com o Algoritmo de Euclides Estendido
6) Chave pública = (e,n)
7) Chave privada = (d,n)
8) Transformar a frase em ASCII e separar os blocos
9) Aplicar ci = bie mod n
Algoritmo de Euclides Estendido
NÍCIO
Procedimento Euclides Estendido
INÍCIO
R0= Φ(n), R1= e, x0=1, y0=0, x1=0, y1=1;
R0= Φ(n), R1= e, x0=1, y0=0, x1=0, y1=1;
Repita o procedimento abaixo enquanto R<>0;
Repita o procedimento abaixo enquanto R<>0;
R= R0 mod R1;
R= R0 mod R1;
q = inteiro de (Φ(n)/e);
q = inteiro de (Φ(n)/e);
x = x0 – q.x1;
x = x0 – q.x1;
x0 = x1;
x1 x0
= x; = x1;
y =x1
y0 –q.=y1;x;
= y0 –q. y1;
y0 y
= y1,
y1 y0
= y; = y1,
se y1
R=0=
apresentar
y; os valores de x e y
FIM
se R = 0 apresentar os valores de x e y
FIM
Algoritmo AKS
Os pesquisadores Manindra Agarwal, Nitin
Saxena e Neeraj Kayal, do Departamento de
Ciência da Computação e Engenharia do
Instituto de Tecnologia Indiano de Kanpur,
divulgaram em 6 de agosto de 2002, um
algoritmo para testar se números ímpares
grandes são primos em tempo polinomial.
<http://www.cse.iitk.ac.in/news/primality.html>.
EXEMPLO
p = 41, q = 29, logo n = p*q = 1189
Φ(n) = (p-1).(q-1), logo Φ(1189) = 1120.
Escolhendo e = 17 e calculando d = 593
chave pública: (e, n) = (17, 1189)
chave privada: (d, n) = (593, 1189)
equação: c = me ( mod n ).
Mensagem:
HORA
H
72
O
79
R
82
A
65
Chave Pública (17, 1189)
ASCII: 72 79 82 65; BLOCOS: 727 982 65
ci = bie mod n
bie mod n
Resultado
72717mod 1189
833
98217mod 1189
661
6517mod 1189
691
BLOCOS: 833 661 691
Chave Privada (593, 1189)
mi = cie mod n
cie mod n
Resultado
833593mod 1189
727
661593mod 1189
928
691593mod 1189
65
BLOCOS: 72 79 82 65
BLOCOS UNIDOS: 72798265
72
H
79
O
82
R
65
A
Analogia:
E = 69
=> ((69)17)1 / 17 = 69
Assinatura Digital:
Mensagem: E ; ASCII => 69
Alice envia mensagem para Bob
ALICE
p = 41, q = 29, n = 1189, Φ(n) = 1120)
chave pública: (e, n) = (17, 1189)
chave privada: (d, n) = (593, 1189)
BOB
p = 31, q = 37, n = 1147, Φ(n) = 1080)
chave pública: (e, n) = (11, 1147)
chave privada:(d, n) = (491, 1147)
CRIPTOGRAFIA (ALICE)
DECRIPTOGRAFIA (BOB)
6911mod 1147
92417mod 1189 => 516
=> 516
516593mod 1189 => 924
516491mod 1147 => 69
Simétricos x Assimétricos
As vantagens dos algoritmos simétricos são:
Não precisam transmitir a chave privada
Permitem a assinatura digital
E as desvantagens são relativas a velocidade de
processamento, que é mais lenta que os simétricos
EXEMPLOS DE CHAVES:
e
51755
136866879
10781
d
911
40471
4247405
n
93953
155975371
9687191
Chave pública
Chave Privada
(51755, 93953)
(911, 93953)
(136866879, 155975371)
(40471, 155975371)
(10781, 9687191)
(4247405, 9687191)
Algoritmos de fatoração
- Algoritmo de Fermat
- Algoritmo Pollard p-1
RSA 576
Fatorado em 03 Dez 2003, por uma equipe da Agência Federal para Segurança
de Tecnologia da Informação da Alemanha. Prêmio de $ 10,000.00. Total de
dígitos 174.
188198812920607963838697239461650439807163563379417382700763356422988
859715234665485319060606504743045317388011303396716199692321205734031
879550656996221305168759307650257059
Resultado:
398075086424064937397125500550386491199064362342526708406385189575946
388957261768583317
472772146107435302536223071973048224632914695302097116459852
171130520711256363590397527
Para Saber Mais:
http://www.rsasecurity.com
http://www.numaboa.com.br
http://www.geocities.com/dicaseduvidas
REFERÊNCIAS BIBLIOGRÁFICAS
AGRAWAL, Maindra; KAYAL, Neeraj; SAXENA, Nitin. Primes is in P. Indian Institute
of Technology: 2002. Disponível em: <http://www.cse.iitk.ac.in/news/primality.html>.
Acesso em: 09 mar. 2004.
COUTINHO, Severino Collier. Números Inteiros e Criptografia RSA, Rio de Janeiro:
Sociedade Brasileira de Matemática, 2000.
EVARISTO, Jaime; PERDIGÃO, Eduardo. Álgebra Abstrata, Maceió: EDUFAl, 2002.
KAHN, David. The Codebreakers: The history of secret writing, New York: Scribner,
1967, 1996.
LUCCHESI, Cláudio Leonardo. Introdução à Criptografia Computacional, Campinas:
Papirus, 1986.
SANT’ ANA JÚNIOR, Bernardino. Introdução à matemática aplicada à criptologia.
2004. Trabalho de Conclusão de Curso (Licenciatura em Matemática) - Universidade
Castelo Branco, Rio de Janeiro, 2004.
SINGH, Simon. O livro dos Códigos. Rio de Janeiro: Record, 1999.
CONCLUSÃO
Download

Algoritmos de Chave Pública (RSA)