View
120
Download
0
Category
Preview:
Citation preview
Algoritmos de Chave Pública
RSA
Introdução
• O problema da distribuição de chaves sempre foi o elo mais fraco da maioria dos sistemas de criptografia.
• Em 1976, dois pesquisadores da Universidade de Stanford, Diffie e Hellman propuseram um sistema de criptografia totalmente novo:– As chaves de criptografia e decriptografia são
diferentes. Uma pública e a outra privada.– A chave de decriptografia (privada) não consegue ser
derivada da chave de criptografia (pública).
Proposta
• Cada usuário precisa ter duas chaves: Uma pública e a outra privada.
• O algoritmo de criptografia E e o algoritmo de decriptografia D tem de atender a três requisitos:– D (E (P)) = P.– É extremamente difícil deduzir D a partir de E.– O texto criptografado não pode ser decifrado por
um ataque de texto claro escolhido.
Requisitos
• O primeiro requisito diz que se aplicarmos o algoritmo D a um texto claro P criptografado por E obteremos novamente a mensagem em texto claro.
• O segundo requisito é autoexplicativo.• O terceiro requisito significa que os intrusos podem
experimentar o algoritmo exaustivamente que não conseguirão quebrá-lo.– Logo, não há razão para a chave não tornar-se pública.
Funcionamento do método
• O remetente criptografa uma mensagem utilizando a chave pública do destinatário.– A chave pública pode estar:• Em um arquivo público, por exemplo no web site do
destinatário.• Em uma Infraestrutura de Chaves Públicas.
• Alice calcula EB (P) e envia para Bob.
• Bob calcula DB (EB (P)) = P
Os pesquisadores
• Três pesquisadores do MIT.– Rivest (cientista da
computação), – Shamir (cientista da
computação) ,– Adleman (matemático) .
• Examinaram o artigo de Diffie e Hellman.
• Propuseram entre si, inúmeras soluções durante o ano.
A solução
• Em abril de 1977.• Rivest.– É possível construir uma cifra assimétrica?– Encontrar uma função de mão única que possa ser
revertida apenas se o receptor possuir alguma informação especial?
A matemática do RSA (1)
• Alice escolhe dois números primos gigantes, p e q. • Os primos devem ser enormes, geralmente de
1024 bits, mas para simplicidade vamos dizer que Alice escolhe p = 17 e q = 11. Ela mantém esses números em segredo.
• A seguir, Alice multiplica os números um pelo outro para conseguir outro número, n. – p x q = n.– Logo, n = 187.
A matemática do RSA (2)
• A seguir, calcula também z = (p-1) x (q-1). – Logo, z = 160.
• Depois, Alice escolhe outro número, e, de modo que este e z sejam primos relativos. Ou seja, não possuam fatores comuns.
• Suponha que Alice escolhe e = 7. – Repetindo, e, (p-1) x (q-1), ou se preferir, e e z, precisam
ser primos relativos, não tendo fatores comuns.– Observe que temos várias opções: 7, 11, 13, 17, 19
• n e e tornam-se a chave pública de Alice (187 e 7).
Primos relativos
• Os números 8 e 15 são primos relativos porque os divisores positivos de 8, são:– 1, 2, 4 e 8.
• E os de 15, são:– 1, 3, 5 e 15.
• De modo que o 1 é o único inteiro nas duas listas.
Cálculo da chave privada
• Finalmente, Alice calcula um número d de forma que d x e = 1 mod z.
• Conforme exemplo abaixo:
Chave Pública
• Alice divulga e e n como sendo a sua chave pública.
• O e pode ser parte da chave pública de todos, desde que cada pessoa tenha um n diferente, o que depende da escolha de p e q.
Restrição ao tamanho do bloco
• Cada bloco de texto claro, P, precisa estar no intervalo entre 0 ≤ P < n.
• O que pode ser feito agrupando-se o texto claro em blocos de k bits onde k é o maior inteiro para o qual a desigualdade 2k < n é verdadeira.
Criptografando
• Para criptografar são necessários e e n e para decriptografar, d e n.
• Em outras palavras, para criptografar faça:C = Pe (mod n)
• Para descriptografar, faça:P = Cd (mod n).
Convertendo a entrada
• A mensagem a ser cifrada, P, precisa ser convertida em um número. – Por exemplo, binários em ASC convertidos para
decimal. • O número P então é cifrado para produzir C,
de acordo com a fórmula: C = Pe (mod n).
Exemplo
• Supondo que Bob deseje enviar para Alice a letra “X”.
• Em ASC o X é representado por 1011000 o que equivale a 88 em decimal. Assim, P = 88.
• Para cifrar a mensagem, Bob pega a chave pública de Alice, n = 187 e e = 7, o que resulta na seguinte fórmula: C = 887 (mod 187).
C = 40867559636992 (mod 187)C = 40867559636992 / 187 = 218543099663 (resto 11).
• Bob agora envia o texto cifrado, C = 11, para Alice.
Considerações
• Exponenciais em aritmética modular são funções de mão única.
• É muito difícil, a partir de C = 11, recuperar a mensagem original, P. – Logo, Eva não pode decifrar a mensagem.
• Alice pode decifrá-la porque ela tem uma informação especial.– Ela conhece os valores de p e q.
Decifrando
• Para decifrar a mensagem, Alice simplesmente usa a fórmula:
P = Cd (mod 187)P = 1123 (mod 187)P = 88
• O que corresponde a letra “X” em ASC.
Exemplo
Sumário da operação
• Suponha que o navegador web possua um texto a ser transmitido.
• Inicialmente o navegador envia uma solicitação.– Ola servidor, mande-me a sua chave pública.
• O servidor responde.– Aqui está: n=187 e e=7.
• Após receber a chave pública do servidor, o navegador (cliente) criptografa com ela o texto a ser enviado e o envia.
• Ao receber o texto criptografado, o servidor o descriptografa com a sua própria chave privada.
Descobrindo o código
• As chaves pública e privada são relacionadas, mas a sua relação é difícil de ser derivada por terceiros.
• A chave pública possui dois valores, n e k onde k é calculado a partir de z e z é calculado a partir de p e q.
• A chave privada d é calculada a partir de k e z que são calculados a partir de p e q. – Observe a relação matemática entre as chaves.
• Então, para um interceptador encontrar a chave privada d, a única maneira é determinando quais foram os números primos usados para determiná-la (p e q).– Decomposição de números com mais de uma centena de dígitos.
Recommended