Universidade Federal De Minas Gerais Criptografia RSA Criptografia RSA Fundamentos De Álgebra Fundamentos De Álgebra Alexandre Elias Dos Santos Alexandre Elias Dos Santos [email protected][email protected]13 de Novembro de 2015 13 de Novembro de 2015
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Universidade Federal De Minas Gerais
Criptografia RSACriptografia RSAFundamentos De ÁlgebraFundamentos De Álgebra
Alexandre Elias Dos SantosAlexandre Elias Dos [email protected]@ufmg.br
● A criptografia, palavra de origem grega (kryptos, escondido, gráphein, escrita), é o estudo dos métodos de codificação de informação através do uso de chaves que são utilizadas no processo.
● É a arte de embaralhar caracteres de uma mensagem de forma que esta fique ilegível.
● A criptografia de chave pública, também conhecida como criptografia de chaves assimétricas, é baseada em algorítimos que requerem um par de chaves: uma secreta (privada) e outra pública que pode ser conhecida por todos.
Exemplo De Uso De Chaves Assimétricas
Chave Privada
Chave Pública
1) O remetente solicita ao destinatário uma chave para codificar a informação. Por sua vez, este gera um par de chaves assimétricas.
2) A chave privada é mantida em segredo e a pública é enviada ao remetente.
3) O remetente usa a chave pública para codificar a mensagem e encaminha esta ao destinatário.
4) O destinatário decodifica a mensagem utilizando chave privada e obtém a informação.
Remetente Destinatário
Key
Criptografia RSA
● A criptografia RSA é o método de chave pública mais utilizado no tráfego de dados na internet, como por exemplo, em mensagens de e-mail e compras online.
● Foi criada em 1978 pelos professores Ronald Rivest, Adi Shamir e Leonard Adleman do Instituto de Tecnologia de Massachusetts (MIT).
● O RSA fundamenta-se na Teoria dos Números, área clássica da matemática.
Método RSA
● O RSA basea-se na construção de um número composto resultante de dois fatores primos grande, no mínimo 100 dígitos.
● A segurança está na dificuldade de fatorar números compostos essencialmente grandes em seus componentes primos.
● Alguns teoremas importantes para a implementação são:➢ Teorema Fundamental da Aritmética;➢ Teorema de Euler;➢ Pequeno Teorema de Fermat;➢ Algorítimo estendido de Euclides.
Passo Inicial
● O passo zero da codificação é gerar aleatoriamente dois números primos grandes p e q, obtendo, portanto, um número composto n:
n = p x qn = p x q● Utilizamos o exemplo dado por S. C.
Coutinho escolhendo p = 11 e q = 13 e, portanto, n = 143.
Pré-codificação
● O primeiro passo é digitalizar os caracteres utilizando-se uma tabela para conversão.
● Como exemplo, digitalizamos apenas caracteres alfabéticos.
A B C D E F G H I J K L M
10 11 12 13 14 15 16 17 18 19 20 21 22
N O P Q R S T U V W X Y Z
23 24 25 26 27 28 29 30 31 32 33 34 35
Tabela 1 - Caracteres alfabéticos codificados.
Pré-codificando Uma Mensagem
● Codificamos a mensagem Paraty é linda:
P A R A T Y E L I N D A
25 10 27 10 29 34 99 14 99 21 18 23 13 10
Note que o caractere espaço corresponte ao número 99.
● Aqui podemos aplicar mp-1 ≡ 1 mod p do Teorema de Fermat supondo que m não divide p.
● De fato, m só divide p se m ≡ 0 mod p, pois p é primo. Além disso, m>0 e m<pq. Assim, esta congruência é facilmente verificável.
● Logo, aplicamos este teorema e obtemos:
D(k) ≡ m(mD(k) ≡ m(m(p-1)(p-1)))(q-1)b(q-1)b ≡ m1 ≡ m1(q-1)b(q-1)b ≡ m mod p ≡ m mod p
Verificação Do Produto*
● Como pudemos ver, bed ≡ b mod p, assim como bed ≡ b mod q.
● Dado que queremos mostrar que bed ≡ b mod n, então devemos verificar a validade para o produto n = pq.
● De fato, bed ≡ b implica em p|(bed – b) e, analogamente, q|(bed – b).
● Além disso, mdc(p,q) = 1. Logo, pq|(bed – b) e, portanto:
bbeded ≡ b mod n. ≡ b mod n.
Como queríamos mostrar.
* Os primos p e q são naturais distintos e mdc(p,q) = 1. Seja Δ>0 um número natural. Se p e q dividem Δ, então o produto pq divide Δ.
Segurança do RSA
Nº Dígitos Nº Operações Tempo
50 1,4 x 1010 3,9 horas
100 2,3 x 1015 74 anos
300 1,5 x 1029 4,9 x 1015 anos
500 1,3 x 1039 4,2 x 1025 anos
Tabela 2 – Número de operações e tempo necessário para fatorar n utilizando-se computadores modernos.
● A segurança do RSA está na dificuldade de calcular d sem conhecer Φ(n).
● Os primos p e q podem ser obtidos conhecendo-se a chave (n,e) e Φ(n). Daí, a descoberta de um novo método de computar Φ(n) tendo-se a chave pública seria equivalente a fatorar n.
● Acredita-se que quebrar a criptografia RSA é equivalente a fatorar n.
Conclusão
● A criptografia RSA é um método seguro para o tráfico de dados em meios públicos como a internet, desde que a chave de decodificação seja mantida em segredo.
● A complexidade computacional é uma grande barreira para fatorar n em seus fatores primos, contudo uma nova geração de computadores pode romper esta dificuldade. Isto tem levado a criação de novos métodos de criptografia, a saber, a criptografia quântica.
● Um algorítimo eficiente para calcular Φ(n) utilizando-se a chave pública implicaria numa forma eficiente de fatorar um número composto n.
● A Teoria dos Números é bem relevante em aplicações de sistemas de criptografias.
Bibliografia
● COUTINHO S.C. (2011) Números Inteiros e Criptografia RSA, Instituto de Matemática Pura e Aplicada.
● VIDIGAL A. e outros (2009) Fundamentos de Álgebra, Universidade Federal de Minas Gerais.
● SILVA E.V.P (2006) Introdução a Criptografia RSA, Universidade Estadual Paulista “Julio de Mesquita Filho”.