Saltar para o conteúdo

Usuário:Cmcf71/Testes

Origem: Wikipédia, a enciclopédia livre.

Vulnerabilidades do RSA[editar | editar código-fonte]

Por ser um sistema de criptografia muito utilizado, o RSA vem tendo suas vulnerabilidades pesquisadas e analisadas praticamente desde sua publicação inicial. Uma lista bem detalhada de ataques ao sistema pode ser encontrada no artigo de Dan Boneh[1]. Segue um resumo de alguns tipos de ataque discutidos no artigo.

Fatorando números inteiros muito grandes[editar | editar código-fonte]

Uma primeira abordagem de ataque ao RSA teria como objetivo a chave pública por meio da fatoração do módulo , ou seja, dada uma fatoração de , pode-se chegar ao expoente de decriptografia. Este é um exemplo de ataque de força bruta ao RSA.

Apesar da melhora constante dos algoritmos de fatoração de números inteiros, esta ainda é uma ameaça considerada distante da realidade, caso o sistema RSA seja corretamente implementado, devido à dificuldade para a fatoração de números inteiros com a tecnologia atual.

A título de ilustração Christof Paar[2] apresenta a discussão sobre o módulo de 129 dígitos publicada em um artigo da revista Scientific American por Martin Gardner em 1997. Fazendo uso dos métodos de fatoração disponíveis e poder computacional da época foi estimado que seriam necessários 40 trilhões de anos para fatorar um número desta magnitude porém a tarefa levou apenas 30 anos para ser realizada.

A discussão então recai em qual é o tamanho seguro para o módulo usado no RSA? Ainda de acordo com Christof Paar muitas aplicações utilizam módulos de 1024 bits porém hoje em dia acredita-se que será possível fatorar números desta magnitude em 10-15 anos e a agências de inteligência podem ser capazes de fazê-lo ainda mais rápido, já que tipicamente empregam as maiores autoridades em criptografia do mundo. Portanto, já é aconselhado utilizar parâmetros de RSA da ordem de 2048-4096 bits para uma segurança mais duradoura.

Módulo comum[editar | editar código-fonte]

Para evitar a geração de módulos diferentes poderia ser considerado o uso do mesmo módulo para todos os usuários emitido, por exemplo, por uma autoridade central confiável. Apesar de parecer eficiente em uma primeira análise, um usuário poderia usar seus próprios expoentes para fatorar o módulo de outros usuários. Devido a este fato, um módulo RSA nunca deve ser utilizado por mais de uma entidade.

Este é considerado um ataque elementar pois ilustra o uso errôneo do sistema RSA.

Pequeno expoente da chave privada[editar | editar código-fonte]

Para reduzir o tempo necessário para decriptar uma mensagem ou o tempo necessário para gerar uma assinatura pode-se tentar usar um valor de pequeno no lugar de um aleatório. Usando um pequeno pode-se alcançar uma melhora no desempenho em torno de fatores de 10 para um módulo de 1024 bits porém Michael Wiener[3] mostra que a escolha de um pequeno pode quebrar completamente o sistema RSA.

Pequeno expoente da chave pública[editar | editar código-fonte]

Pelos mesmos motivos do item anterior, é comum utilizar um expoente público pequeno. O menor possível é três porém para o sistema ficar protegido de alguns tipos de ataque sugere-se o valor e a especificação do sistema RSA menciona a geração aleatória de para tornar o sistema ainda mais seguro.

Ataques desta natureza, ao contrário dos baseados no método anterior, não levam a uma quebra total do sistema RSA, sendo portanto menos perigosos.

Os ataques mais poderosos relacionados ao pequeno expoente da chave pública utilizam resultados baseados no Teorema de Coppersmith[4].

Exposição parcial da chave privada[editar | editar código-fonte]

Imaginemos que um usuário teve acesso a uma fração da chave privada, de tamanho bits. Seria este usuário capaz de reproduzir o restante da chave a partir desta fração? Surpreendentemente a resposta é positiva caso a chave seja pequena o suficiente.

Um artigo de 1998[5] mostra que sendo é possível reconstruir toda a chave a partir de uma fração da mesma. Este resultado mostra a importância de proteger a chave privada RSA de forma eficiente e completa.

Ataques temporais[editar | editar código-fonte]

Alguns ataques não são decorrentes de falhas ou artifícios matemáticos. Estes ataques são chamados de ataques de implementação e buscam vulnerabilidades na implementação computacional do sistema RSA, segue um exemplo de ataques desta natureza.

Imaginemos que a chave privada do RSA está resguardada pelo armazenamento em um smartcard devidamente protegido. Um potencial ataque não consegue examinar o conteúdo do cartão e portanto não chega a expor a chave. Porém, um artigo de 1996[6] mostra que por meio de uma medição precisa do tempo que o smartcard demora para executar uma decriptação ou assinatura do RSA é possível descobrir o expoente da chave privada e desta forma deixar exposto todo o sistema.

Referências

  1. Boneh, Dan (1999). «Twenty Years of Attacks on the RSA Cryptosystem». Notices of the AMS. 46: 203–213 
  2. Paar, Christof (2009). Understanding cryptography a textbook for students and practitioners. Berlin London: Springer. ISBN 9783642041013 
  3. Wiener, Michael J. (1990). «Cryptanalysis of short RSA secret exponents». IEEE Transactions on Information Theory. 36: 553–558 
  4. Coppersmith, Don (1997). «Small Solutions to Polynomial Equations, and Low Exponent RSA Vulnerabilities». Journal of Cryptology. 10(4): 233–260 
  5. Boneh, Dan; et al. (1998). «Exposing an RSA Private Key Given a Small Fraction of its Bits» 
  6. Kocher, Paul C. (1996). «Timing Attacks on Implementations of Diffie-Hellman RSA DSS and Other Systems». Proceedings of the 16th Annual International Cryptology Conference on Advances in Cryptology: 104-113