A AEAD determinística fornece criptografia com uma propriedade determinística: a criptografia dos mesmos dados sempre gera o mesmo texto criptografado. Esse tipo de criptografia é útil para encapsulamento de chaves ou alguns esquemas para pesquisar em dados criptografados. Para mais informações, consulte a RFC 5297, seção 1.3 (link em inglês). Devido à propriedade determinística, as implementações desse primitivo podem levar à perda de sigilo, porque um invasor só precisa descobrir o texto criptografado de uma determinada mensagem para identificar outras instâncias dela.
A AEAD determinística tem as seguintes propriedades:
- Confidencialidade: nada é conhecido sobre o texto simples, exceto o tamanho dele e a igualdade de textos simples repetidos.
- Autenticidade: é impossível mudar o texto simples criptografado que está por trás do texto criptografado sem ser detectado.
- Simetria: a criptografia do texto simples e a descriptografia do texto criptografado são feitas com a mesma chave.
- Determinista: desde que a chave primária não seja alterada, criptografar um texto simples duas vezes com os mesmos parâmetros resulta no mesmo texto criptografado.
Dados associados
A AEAD determinística também pode ser usada para vincular texto criptografado a dados associados
específicos. Suponha que você tenha 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 evita que um invasor transfira o histórico médico de um usuário para outro.
Escolha 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 tamanhos arbitrários (dentro do intervalo de 0 a 232 bytes).
- Nível de segurança de 128 bits contra ataques de recuperação de chave e também em ataques multiusuário com até 232 chaves. Isso significa que, se um adversário receber 232 textos criptografados da mesma mensagem criptografados com 232 chaves, ele precisará fazer 2128 cálculos para conseguir uma única chave.
- Criptografia segura de 238 mensagens, desde que cada uma tenha menos de 1 MB.
Exemplo de caso de uso
Consulte Quero criptografar dados de maneira determinista e Quero vincular texto criptografado ao contexto.