28
Criptografia: Criptografia: Algoritmo RSA Algoritmo RSA por: Bernardino Sant’ Ana Júnior por: Bernardino Sant’ Ana Júnior

Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

Criptografia:Criptografia:Algoritmo RSAAlgoritmo RSA

por: Bernardino Sant’ Ana Júniorpor: Bernardino Sant’ Ana Júnior

Page 2: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

ObjetivosObjetivos

- Apresentar uma revisão histórica da criptografia até surgimento do RSA

- Descrição do RSA e apresentação da matemática envolvida

Page 3: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

SumárioSumário

IntroduçãoIntrodução

DesenvolmentoDesenvolmento

Breve HistóricoBreve Histórico

Cifras assimétricas Cifras assimétricas

RSA e Aritmética Modular RSA e Aritmética Modular

Conclusão Conclusão

Page 4: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

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

Page 5: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

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

Page 6: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

FREQUÊNCIA APROXIMADA DAS LETRAS NO PORTUGUÊS.FREQUÊNCIA APROXIMADA DAS LETRAS NO PORTUGUÊS.

Letra Freq Letra Freq(%) (%)

A 14.63 N 5.05B 1.04 O 10.73C 3.88 P 2.52D 4.99 Q 1.20E 12.57 R 6.53F 1.02 S 7.81G 1.30 T 4.34H 1.28 U 4.63I 6.18 V 1.67J 0.40 W 0.01K 0.02 X 0.21L 2.78 Y 0.01M 4.74 Z 0.47

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.

Page 7: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

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.

Page 8: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

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

Page 9: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

CriptografiaCriptografia

Meio de Transmissão

TextoClaro

TextoClaro

TextoClaro

TextoClaro

TextoCripto

TextoCripto

TextoCripto

TextoCripto

Ch Pub B

Ch Pr B

A B

Page 10: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

Assinatura digitalAssinatura digital

Meio de Transmissão

TextoClaro

TextoClaro

TextoClaro

TextoClaro

Textoassinado

Textoassinado

Ch Pr A

Ch Pub A

Textoassinado

Textoassinado

A B

Page 11: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

Criptografia e Assinatura DigitalCriptografia e Assinatura Digital

Meio de Transmissão

TextoClaro

TextoClaro

TextoClaro

TextoClaro

TextoCriptoassinado

TextoCriptoassinado

Ch Pr A

Ch Pub A

TextoCriptoassinado

TextoCriptoassinado

Ch Pub B

Ch Pr B

A B

Page 12: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

http://www.usc.edu/dept/molecular-science/RSApics.htm

RSA

Adi Shamir, Ronald Rivest e Leonard Adlman

Page 13: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

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

Page 14: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

Aritmética Modular: Aritmética Modular: a ≡ b moda ≡ b mod

A notação a ≡ b mod m, indica que (a-b) é divisível por m.

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.

Page 15: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

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

Page 16: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

NÍCIO

Procedimento Euclides Estendido

R0= Φ(n) , R1= e, x0=1, y0=0, x1=0, y1=1;

Repita o procedimento abaixo enquanto R<>0;

R= R0 mod R1;

q = inteiro de (Φ(n)/e);

x = x0 – q.x1;

x0 = x1;

x1 = x;

y = y0 –q. y1;

y0 = y1,

y1 = y;

se R = 0 apresentar os valores de x e y

FIM

Algoritmo de Euclides Estendido

INÍCIOR0= Φ(n), R1= e, x0=1, y0=0, x1=0, y1=1;Repita o procedimento abaixo enquanto R<>0;R= R0 mod R1;q = inteiro de (Φ(n)/e);x = x0 – q.x1;x0 = x1;x1 = x;y = y0 –q. y1;y0 = y1,y1 = y;se R = 0 apresentar os valores de x e yFIM

Page 17: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

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

Page 18: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

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

Page 19: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

H O R A72 79 82 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

Page 20: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

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

Page 21: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

BLOCOS: 72 79 82 65

BLOCOS UNIDOS: 72798265

72 79 82 65H O R A

Analogia:

E = 69 => ((69)17)1 / 17 = 69

Assinatura Digital:

Mensagem: E ; ASCII => 69

Alice envia mensagem para Bob

Page 22: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

ALICE p = 41, q = 29, n = 1189, Φ(n) = 1120)chave pública: (e, n) = (17, 1189)

chave privada: (d, n) = (593, 1189)

BOBp = 31, q = 37, n = 1147, Φ(n) = 1080)chave pública: (e, n) = (11, 1147)

chave privada:(d, n) = (491, 1147)

CRIPTOGRAFIA (ALICE)

6911mod 1147 => 516

516593mod 1189 => 924

DECRIPTOGRAFIA (BOB)

92417mod 1189 => 516

516491mod 1147 => 69

Page 23: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

Simétricos x AssimétricosSimé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

Page 24: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

EXEMPLOS DE CHAVES:

e d n51755 911 93953136866879 40471 15597537110781 4247405 9687191

Chave pública Chave Privada

(51755, 93953) (911, 93953)

(136866879, 155975371) (40471, 155975371)

(10781, 9687191) (4247405, 9687191)

Page 25: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

Algoritmos de fatoração

- Algoritmo de Fermat - Algoritmo Pollard p-1

RSA 576Fatorado 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.

188198812920607963838697239461650439807163563379417382700763356422988859715234665485319060606504743045317388011303396716199692321205734031879550656996221305168759307650257059

Resultado:

398075086424064937397125500550386491199064362342526708406385189575946388957261768583317

472772146107435302536223071973048224632914695302097116459852 171130520711256363590397527

Page 26: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

Para Saber Mais:

http://www.rsasecurity.com

http://www.numaboa.com.br

http://www.geocities.com/dicaseduvidas

Page 27: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

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.

Page 28: Criptografia: Algoritmo RSA por: Bernardino Sant’ Ana Júnior

CONCLUSÃO