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

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

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

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

Para a especificação que define os elementos de uma AWS Encryption SDK implementação adequada, consulte a AWS Encryption SDKEspecificação em GitHub.

O AWS Encryption SDK 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: o número sequencial da moldura. 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 AWS Encryption SDK 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 AWS Encryption SDK criptografe 2^32 mensagens sem exceder os limites de criptografia.