Criptografia autenticada determinística com dados associados (AEAD, na sigla em inglês)

A primitiva de criptografia autenticada determinista com dados associados (AEAD determinista) fornece criptografia com uma propriedade determinista: criptografar os mesmos dados sempre gera o mesmo texto criptografado. Esse tipo de criptografia é útil para o encapsulamento de chaves ou para alguns esquemas de pesquisa em dados criptografados. Consulte RFC 5297, seção 1.3 para mais informações. Devido à propriedade determinística, as implementações dessa primitiva podem levar à perda de confidencialidade, porque um invasor só precisa descobrir o texto criptografado de uma determinada mensagem para identificar outras instâncias dela.

O AEAD determinístico tem as seguintes propriedades:

  • Secrecy: nada sobre o texto simples é conhecido, exceto o tamanho e a igualdade de textos simples repetidos.
  • Autenticidade: é impossível mudar o texto simples que foi criptografado sem ser detectado.
  • Simétrica: a criptografia do texto simples e a descriptografia do texto criptografado são feitas com a mesma chave.
  • Determinista: se a chave primária não for alterada, a criptografia de um texto simples duas vezes com os mesmos parâmetros resultará no mesmo texto criptografado.

Dados associados

A AEAD determinística também pode ser usada para vincular o texto criptografado a dados associados específicos. Por exemplo, se você tiver um banco de dados com os campos user-id e encrypted-medical-history: nesse cenário, user-id pode ser usado como dados associados ao criptografar encrypted-medical-history. Isso impede que um invasor mova o histórico médico de um usuário para outro.

Escolher um tipo de chave

Recomendamos o tipo de chave AES256_SIV para todos os casos de uso.

Garantias de segurança

  • Força de autenticação de pelo menos 80 bits.
  • O texto simples e os dados associados podem ter comprimentos arbitrários (no intervalo de 0 a 232 bytes).
  • Nível de segurança de 128 bits contra ataques de recuperação de chaves e também em ataques multiusuário com até 232 chaves. Isso significa que, se um invasor conseguir 232 textos criptografados da mesma mensagem criptografada com 232 chaves, ele precisará fazer 2128 computações para conseguir uma única chave.
  • A capacidade de criptografar com segurança 238 mensagens, desde que cada uma tenha menos de 1 MB.

Exemplo de caso de uso:

Consulte Como criptografar dados de forma determinística e vincular o texto criptografado ao contexto.