Referência do vetor de inicialização do SDK de criptografia da AWS - SDK de criptografia da AWS

Se fornecermos uma tradução da versão em inglês do guia, a versão em inglês prevalecerá caso haja qualquer conflito entre as versões. A tradução é fornecida com o uso de tradução por máquina.

Referência do vetor de inicialização do SDK de criptografia da AWS

As informações nesta página são uma referência para criar sua própria biblioteca de criptografia compatível com o SDK de criptografia da AWS. Se você não está criando sua própria biblioteca de criptografia compatível, você provavelmente não precisa dessas informações.

Para usar o SDK de criptografia da AWS em uma das linguagens de programação compatíveis, consulte Linguagens de programação.

Para a especificação que define os elementos de uma implementação adequada do SDK de criptografia da AWS, consulte a Especificação do SDK de criptografia da AWS no repositório aws-encryption-sdk-specification no GitHub.

O SDK de criptografia da AWS fornece os vetores de inicialização (IVs) que são necessários para todos os pacotes de algoritmos compatíveis. O SDK usa números sequenciais de molduras para construir um IV, de forma que duas molduras na mesma mensagem não podem ter o mesmo IV.

Cada IV de 96 bits (12 bytes) é construído a partir de duas matrizes de bytes big-endian concatenadas na seguinte ordem:

  • 64 bits: 0 (reservado para uso futuro)

  • 32 bits Número de sequência do quadro. Para a tag de autenticação de cabeçalho, esse valor é todo de zeros.

Antes da apresentação do armazenamento em cache de chaves de dados, o SDK de criptografia da AWS sempre usava uma nova chave de dados para criptografar cada mensagem e gerava todos os IVs aleatoriamente. Os IVs gerados aleatoriamente eram seguros criptograficamente porque as chaves de dados nunca eram reutilizadas. Quando o SDK apresentou o armazenamento em cache da chave de dados, que reutiliza intencionalmente as chaves de dados, alteramos a maneira como o SDK gera IVs.

O uso de IVs determinísticos que não podem ser repetidos em uma mensagem aumenta significativamente o número de chamadas que podem ser executadas com segurança sob uma única chave de dados. Além disso, as chaves de dados que são armazenadas em cache sempre usam um pacote de algoritmos com uma função de derivação de chaves. O uso de um IV determinístico com uma função de derivação de chaves pseudoaleatória para derivar as chaves de criptografia de uma chave de dados permite que o SDK de criptografia da AWS criptografe 2^32 mensagens sem exceder os limites de criptografia.