Algoritmo de criptografia RSA

Algoritmo de criptografia RSA

Algoritmo de criptografia Rivest, Shamir, Adleman (RSA)

usos

RSA, que recebeu o nome desses inventores, é um algoritmo de criptografia pertencente à grande família de “criptografia assimétrica”.




RSA pode ser usado para garantir:

  • confidencialidade: apenas o dono da chave privada poderá ler a mensagem criptografada com a chave pública correspondente.
  • não alteração e não repúdio: apenas o dono da chave privada pode assinar uma mensagem (com a chave privada). Uma assinatura descriptografada com a chave pública irá, portanto, provar a autenticidade da mensagem.

Sua robustez reside na dificuldade de fatorar um grande número.

Principais eventos

  • 1978: Ronald L. Rivest, Adi Shamir e Leonard Adleman publicam "Um Método para Obter Assinaturas Eletrônicas e Chaves Públicas de Criptossistemas". Na revista mensal da Association for Computing Machinery (ACM).
  • 1982: Rivest, Shamir e Adleman fundaram a empresa “RSA Data Security” (que em 2006 se tornou “RSA, The Security Division of EMC”). "Um sistema criptográfico de comunicações e método." patenteado em 1983 no Massachusetts Institute of Technology (MIT), expirou em setembro de 2000.
  • 1991: publicação dos primeiros “Padrões de criptografia de chave pública” (PKCS) e abertura da “competição de fatoração RSA” (encerrada em 2007), levando o mundo da pesquisa a desenvolver métodos para fatorar chaves públicas (e, portanto, descriptografar qualquer mensagem).
  • 1994: “O algoritmo de tempo polinomial para fatoração de computador quântico” por Peter Shor, teoricamente permite quebrar qualquer chave RSA. No entanto, colocá-lo em prática requer um computador quântico (o que reacendeu um grande interesse neste campo). Em 2001, a IBM teve sucesso na fatoração quântica de uma chave RSA de 15 bits (experimento repetido em 2012).
  • 2000: publicação dos padrões PKCS # 15, os mais recentes até o momento (na versão 1.1).
  • 2010: a chave RSA de 768 bits da competição de 1991 foi quebrada, até o momento este é o melhor resultado (conhecido publicamente) da fatoração de uma chave RSA. Em nosso país, a Referência de Segurança Geral recomenda o uso de chaves de 2048 bits para o período 2010-2021.

Implementação RSA

Isenção de responsabilidade: este artigo estabelece o princípio básico do algoritmo publicado em 1978.
Para uma implementação rigorosa, um certo número de precauções deve ser levado em consideração a fim de evitar certas vulnerabilidades (consulte os padrões mais recentes).




Alice e Bob

  • Bob tem uma mensagem confidencial que deseja enviar para Alice.
  • Alice constrói duas chaves:
    • uma chave de criptografia pública que ela transmite a Bob.
    • uma chave de descriptografia privada que mantém com cuidado.
  • Bob usa a chave pública para criptografar a mensagem e a passa para Alice.
  • Alice usa a chave privada para descriptografar a mensagem recebida.

Geração de chave

  • Sejam dois grandes números primos escolhidos "aleatoriamente": pe q.
  • Nota: n = p * q e φ = (p-1) * (q-1)
  • Deixe um grande todo ser escolhido "aleatoriamente", primeiro com φ. E o inverso do módulo d φ.
  • A chave de criptografia pública é o par (n, e), a chave de descriptografia privada é o par (n, d).

Criptografia / Descriptografia

Encriptação

  • Antes de ser criptografada, a mensagem original deve ser decomposta em uma série de inteiros M com valores entre 0 e n-1.
  • Para cada inteiro M, temos que calcular C≡M ^ e [n].
  • A mensagem criptografada é composta pela sucessão de inteiros C.

Decifrar

  • De acordo com a forma como foi criptografada, a mensagem recebida deve ser composta por uma sucessão de inteiros C com valores entre 0 e n-1.
  • Para cada inteiro C é necessário calcular M≡C ^ d [n].
  • A mensagem original pode então ser reconstruída a partir da série de inteiros M.

Fiabilité

A segurança do algoritmo RSA depende da dificuldade de fatorar n.
Para decifrar a mensagem, é necessário encontrar d sabendo e, o que requer recomputar φ, e portanto sabendo p e q, os dois fatores primos de n.




Porém, a fatoração de um inteiro (de tamanho muito grande) em fatores primos é extremamente difícil, operação que requer uma capacidade de cálculo muito importante.
Por exemplo: em 2010, o INRIA e seus parceiros conseguiram fatorar uma chave de 768 bits. Demorou dois anos e meio de pesquisa e mais de 10 ^ 20 cálculos. Este é o resultado de fatoração mais conhecido até o momento.


Para evitar o aumento do poder de computação, é regularmente recomendado o uso de tamanhos de chave cada vez maiores (atualmente 2048 bits).

Adicione um comentário do Algoritmo de criptografia RSA
Comentário enviado com sucesso! Vamos analisá-lo nas próximas horas.