Referência de algoritmos 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 de algoritmos 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.

Se você está criando sua própria biblioteca capaz de ler e gravar textos cifrados compatíveis com o AWS Encryption SDK, deve compreender como o AWS Encryption SDK implementa os algoritmos compatíveis para criptografar dados brutos.

O AWS Encryption SDK é compatível com os seguintes pacotes de algoritmos. Todos os pacotes de algoritmos AES-GCM têm um vetor de inicialização de 12 bytes e uma tag de autenticação AES-GCM de 16 bytes. O pacote de algoritmos padrão varia de acordo com a versão do AWS Encryption SDK e a política de confirmação de chave selecionada. Para obter detalhes, consulte Política de compromisso e pacote de algoritmos.

Pacotes de algoritmos do AWS Encryption SDK
ID do algoritmo Versão do formato de mensagem Algoritmo de criptografia Tamanho da chave de dados (bits) Algoritmo de derivação de chave Algoritmo de assinatura Algoritmo de confirmação de chave Tamanho dos dados do pacote de algoritmos (bytes)
05 78 0x02 AES-GCM 256 HKDF com SHA-512 ECDSA com P-384 e SHA-384 HKDF com SHA-512 32 (confirmação de chave)
04 78 0x02 AES-GCM 256 HKDF com SHA-512 Nenhum HKDF com SHA-512 32 (confirmação de chave)
03 78 0x01 AES-GCM 256 HKDF com SHA-384 ECDSA com P-384 e SHA-384 Nenhum N/D
03 46 0x01 AES-GCM 192 HKDF com SHA-384 ECDSA com P-384 e SHA-384 Nenhum N/D
02 14 0x01 AES-GCM 128 HKDF com SHA-256 ECDSA com P-256 e SHA-256 Nenhum N/D
01 78 0x01 AES-GCM 256 HKDF com SHA-256 Nenhum Nenhum N/D
01 46 0x01 AES-GCM 192 HKDF com SHA-256 Nenhum Nenhum N/D
01 14 0x01 AES-GCM 128 HKDF com SHA-256 Nenhum Nenhum N/D
00 78 0x01 AES-GCM 256 Nenhum Nenhum Nenhum N/D
00 46 0x01 AES-GCM 192 Nenhum Nenhum Nenhum N/D
00 14 0x01 AES-GCM 128 Nenhum Nenhum Nenhum N/D
ID do algoritmo

Um valor de 2 bytes hexadecimal que identifica exclusivamente a implementação de um algoritmo. Esse valor é armazenado no cabeçalho da mensagem do texto cifrado.

Versão do formato de mensagem

A versão do formato desta mensagem. Os pacotes de algoritmos com confirmação de chave usam formato de mensagem versão 2 (0x02). Os pacotes de algoritmos sem confirmação de chave usam formato de mensagem versão 1 (0x01).

Tamanho dos dados do pacote de algoritmos

O tamanho em bytes dos dados específicos do pacote de algoritmos. Esse campo é suportado somente no formato de mensagem versão 2 (0x02). No formato de mensagem versão 2 (0x02), esses dados aparecem no campo Algorithm suite data do cabeçalho da mensagem. Os conjuntos de algoritmos que compatíveis com o confirmação de chave usam 32 bytes para a cadeia de caracteres de confirmação de chave. Para obter mais informações, consulte Algoritmo de confirmação de chaves nesta lista.

Tamanho da chave de dados

O tamanho da chave de dados em bits. O AWS Encryption SDK é compatível com chaves de 256, 192 e 128 bits. A chave de dados é gerada por um token de autenticação ou chave mestra.

Em algumas implementações, essa chave de dados é usada como entrada para uma função de derivação de extract-and-expand chave baseada em HMAC (HKDF). A saída da HKDF é usada como a chave de criptografia de dados no algoritmo de criptografia. Para obter mais informações, consulte Algoritmo de derivação de chaves nessa lista.

Algoritmo de criptografia

O nome e o modo do algoritmo de criptografia utilizado. O pacote de algoritmos do AWS Encryption SDK usa o algoritmo de criptografia Advanced Encryption Standard (AES) no Galois/Counter Mode (GCM).

Algoritmo de confirmação de chave

O algoritmo usado para calcular a string de confirmação de chave. A saída é armazenada no campo Algorithm suite data do cabeçalho da mensagem e é usada para validar a chave de dados para o confirmação de chave.

Para obter uma explicação técnica sobre como adicionar confirmação de chave a um conjunto de algoritmos, consulte Confirmação de chaves AEADs no Cryptology ePrintArchive.

Algoritmo de derivação de chave

A função de derivação de extract-and-expand chave baseada em HMAC (HKDF) usada para derivar a chave de criptografia de dados. O AWS Encryption SDK usa o HKDF definido na RFC 5869.

Pacotes de algoritmos sem confirmação de chave (ID do algoritmo 01xx03xx)

  • A função de hash usada é SHA-384 ou SHA-256, dependendo do pacote de algoritmos.

  • Para a etapa de extração:

    • Nenhum sal é usado. De acordo com a RFC, o sal é definido como uma string de zeros. O tamanho da string é igual ao tamanho da saída da função de hash, que é 48 bytes para SHA-384 e 32 bytes para SHA-256.

    • O material de chaveamento de entrada é a chave de dados recebida do provedor de tokens de autenticação ou de chaves mestras.

  • Para a etapa de expansão:

    • A chave pseudoaleatória de entrada é a saída da etapa de extração.

    • As informações da entrada são uma concatenação do ID do algoritmo seguido pelo ID da mensagem (nessa ordem).

    • O comprimento do material de chaveamento de saída é o Tamanho da chave de dados. Essa saída é usada como a chave de criptografia de dados no algoritmo de criptografia.

Pacotes de algoritmos com confirmação de chave (ID do algoritmo 04xx e 05xx)

  • A função hash usada é SHA-512.

  • Para a etapa de extração:

    • O sal é um valor aleatório criptográfico de 256 bits. No formato de mensagem versão 2 (0x02), esse valor é armazenado no campo MessageID.

    • O material de chaveamento inicial é a chave de dados recebida do provedor de tokens de autenticação ou de chaves mestras.

  • Para a etapa de expansão:

    • A chave pseudoaleatória de entrada é a saída da etapa de extração.

    • O rótulo da chave são os bytes codificados em UTF-8 da string DERIVEKEY na ordem de bytes big endian.

    • As informações da entrada são uma concatenação do ID do algoritmo seguido pelo rótulo de chave (nessa ordem).

    • O comprimento do material de chaveamento de saída é o Tamanho da chave de dados. Essa saída é usada como a chave de criptografia de dados no algoritmo de criptografia.

Versão do formato de mensagem

A versão do formato de mensagem usado com o conjunto de algoritmos. Para obter detalhes, consulte Referência do formato de mensagens.

Algoritmo de assinatura

O algoritmo de assinatura usado para gerar umaassinatura digital sobre o cabeçalho e o corpo do texto cifrado. O AWS Encryption SDK usa o ECDSA (Elliptic Curve Digital Signature Algorithm - Algoritmo de assinatura digital de curva elíptica) com as seguintes especificações:

  • A curva elíptica usada é a curva P-384 ou P-256, conforme especificado pelo ID do algoritmo. Essas curvas são definidas no Digital Signature Standard (DSS) (FIPS PUB 186-4).

  • A função de hash usada é SHA-384 (com a curva P-384) ou SHA-256 (com a curva P-256).