RSA

Summary

O RSA (Rivest-Shamir-Adleman) é um algoritmo de criptografia assimétrica que permite cifrar e decifrar dados, utilizando um par de chaves criptográficas diferentes: uma chave pública e uma chave privada.

Como funciona?

O RSA utiliza um sistema de criptografia assimétrica baseado em duas chaves:

  • Chave pública (Public Key): pode ser partilhada com outras entidades e utilizada para cifrar dados ou verificar assinaturas digitais.
  • Chave privada (Private Key): deve ser mantida em segredo e utilizada para decifrar dados ou criar assinaturas digitais.

O funcionamento da cifragem é o seguinte:

  1. O destinatário gera um par de chaves criptográficas: uma chave pública e uma chave privada.
  2. Partilha a chave pública com a entidade que pretende comunicar consigo.
  3. A entidade emissora utiliza a chave pública do destinatário para cifrar os dados.
  4. Os dados cifrados (ciphertext) são enviados para o destinatário.
  5. O destinatário utiliza a sua chave privada para decifrar os dados.
  6. Os dados originais (plaintext) são recuperados.

O processo pode ser representado pela seguinte expressão:
𝐶=𝐸𝐾𝑝𝑢𝑏(𝑃)Para decifrar os dados:
𝑃=𝐷𝐾𝑝𝑟𝑖𝑣(𝐶)Onde:

  • 𝑃 = dados originais (plaintext).
  • 𝐶 = dados cifrados (ciphertext).
  • 𝐸 = operação de cifragem.
  • 𝐷 = operação de decifragem.
  • 𝐾𝑝𝑢𝑏 = chave pública.
  • 𝐾𝑝𝑟𝑖𝑣 = chave privada.

Como funciona a relação entre as duas chaves?

A segurança do RSA baseia-se na dificuldade matemática de fatorizar números inteiros muito grandes, que resultam da multiplicação de dois números primos.

De forma simplificada:

  1. São escolhidos dois números primos muito grandes, 𝑝 e 𝑞.
  2. É calculado o produto dos dois números:
    𝑛=𝑝×𝑞
  3. O valor 𝑛 é utilizado na construção das chaves pública e privada.
  4. A chave pública pode ser divulgada, enquanto a chave privada é mantida em segredo.

A dificuldade em descobrir os fatores primos originais a partir de 𝑛 é uma das bases matemáticas da segurança do RSA.

O que torna o RSA seguro?

A segurança do RSA baseia-se em vários elementos matemáticos e criptográficos:

  • Criptografia assimétrica: utiliza duas chaves diferentes, uma pública e outra privada.
  • Fatorização de números primos: a segurança depende da dificuldade de fatorizar números inteiros muito grandes.
  • Chaves criptográficas: utiliza chaves de grandes dimensões, sendo comuns tamanhos de 2048 e 3072 bits.
  • Separação das chaves: a chave pública pode ser divulgada sem comprometer diretamente a segurança da chave privada.
  • Assinaturas digitais: permite verificar a autenticidade e integridade de mensagens através de mecanismos de assinatura e validação.