

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á.

# Primitivas criptográficas
<a name="crypto-primitives"></a>

AWS KMS usa algoritmos criptográficos configuráveis para que o sistema possa migrar rapidamente de um algoritmo ou modo aprovado para outro. O conjunto padrão inicial de algoritmos criptográficos foi selecionado a partir de algoritmos do Padrão Federal de Processamento de Informações (aprovados pelo Federal Information Processing Standard – FIPS) para suas propriedades de segurança e performance.

## Entropia e geração de números aleatórios
<a name="entropy-and-random-numbers"></a>

AWS KMS a geração de chaves é realizada no AWS KMS HSMs. Eles HSMs implementam um gerador híbrido de números aleatórios que usa o [NIST SP800-90A Deterministic Random Bit Generator (DRBG) CTR\_DRBG using AES-256](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf). Ele é preparado com um gerador de bits aleatórios não determinísticos com 384 bits de entropia e atualizado com entropia adicional para fornecer resistência de previsão em cada chamada de material criptográfico.

## Operações de chave simétrica (somente criptografia)
<a name="symmetric-key-0ps"></a>

Todos os comandos de criptografia de chave simétrica usados HSMs usam os [Advanced Encryption Standards (AES)](http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf), no [Galois Counter Mode (GCM)](http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf) usando chaves de 256 bits. As chamadas análogas para descriptografar usam a função inversa. 

AES-GCM é um esquema de criptografia autenticado. Além de criptografar texto sem formatação para produzir texto cifrado, ele calcula uma tag de autenticação sobre o texto cifrado e quaisquer dados adicionais para os quais a autenticação é necessária (dados autenticados adicionalmente – AAD). A tag de autenticação ajuda a garantir que os dados são da fonte suposta e que o texto cifrado e os AAD não foram modificados.

Frequentemente, AWS omite a inclusão do AAD em nossas descrições, especialmente quando se refere à criptografia de chaves de dados. Está implícito pelo texto circundante nesses casos que a estrutura a ser criptografada é particionada entre o texto simples a ser criptografado e os AAD de texto simples a serem protegidos.

AWS KMS fornece uma opção para você importar o material chave para um, em AWS KMS key vez de AWS KMS depender da geração do material chave. Esse material de chave importado pode ser criptografado usando [RSAES-OAEP ou RSAES](https://datatracker.ietf.org/doc/html/rfc8017#section-7.1) [- PKCS1 -v1\_5](https://datatracker.ietf.org/doc/html/rfc8017#section-7.2) para proteger a chave durante o transporte para o HSM. AWS KMS Os pares de chaves RSA são gerados em. AWS KMS HSMs O material da chave importada é descriptografado em um AWS KMS HSM e recriptografado no AES-GCM antes de ser armazenado pelo serviço. 

## Operações de chave assimétrica (criptografia, assinatura digital e verificação de assinatura)
<a name="asymmetric-key-ops"></a>

AWS KMS suporta o uso de operações de chave assimétrica para operações de criptografia e assinatura digital. Operações de chave assimétrica contam com uma chave pública e um par de chaves privadas relacionadas matematicamente que podem ser usadas para criptografia e descriptografia ou para assinatura e verificação de assinatura, mas não ambos. A chave privada nunca sai AWS KMS sem criptografia. Você pode usar a chave pública interna AWS KMS chamando as operações da AWS KMS API ou fazer o download da chave pública e usá-la fora dela AWS KMS. 

AWS KMS suporta três tipos de cifras assimétricas. 
+ **RSA-OAEP (para criptografia) & RSA-PSS e RSA-PKCS- \#1 -v1\_5 (para assinatura e verificação)**: Suporta comprimentos de chave RSA (em bits): 2048, 3072 e 4096 para diferentes requisitos de segurança. 
+ **Curva elíptica (ECC)**: usada somente para assinatura e verificação. Suporta curvas ECC: NIST P256, P384, P521, SECP 256k1. 
+ **Criptografia pós-quântica** - Novos algoritmos criptográficos de chave pública que são resistentes à computação quântica. Suporta o [algoritmo de assinatura digital Module-Lattice (ML-DSA) NIST FIPS 204 com tamanhos de chave ML\_DSA\_44, ML\_DSA\_65 e ML\_DSA\_87](https://csrc.nist.gov/pubs/fips/204/final).

## Funções de derivação de chave
<a name="key-derivation-functions"></a>

Uma função de derivação de chave é usada para derivar chaves adicionais a partir de um segredo ou chave inicial. O AWS KMS usa uma função de derivação de chave (KDF) para derivar chaves por chamada para cada criptografia sob um AWS KMS key. [Todas as operações do KDF usam o [KDF no modo contador](https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-108.pdf) usando HMAC [[] com [] FIPS197](http://csrc.nist.gov/publications/fips/fips198-1/FIPS-198-1_final.pdf). SHA256 FIPS180](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf) A chave derivada de 256 bits é usada com AES-GCM para criptografar ou descriptografar dados e chaves do cliente.

## AWS KMS uso interno de assinaturas digitais
<a name="digital-signatures"></a>

Assinaturas digitais também são usadas para autenticar comandos e comunicações entre entidades do AWS KMS . Todas as entidades de serviço têm um par de chaves de algoritmo de assinatura digital de curva elíptica (ECDSA). Elas executam o ECDSA conforme definido na [Uso de algoritmos de criptografia de curva elíptica (ECC) na sintaxe de mensagem criptográfica (CMS)](https://datatracker.ietf.org/doc/html/rfc5753/) e X9.62-2005: *Criptografia de chave pública para o setor de serviços financeiros: o algoritmo de assinatura digital de curva elíptica (ECDSA)*. As entidades usam o algoritmo de hash seguro definido nas [Publicações de Normas Federais de Processamento de Informações, FIPS PUB 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf), conhecido como. SHA384 As chaves são geradas na curva secp384r1 (NIST-P384).

## criptografia envelopada
<a name="envelope-encryption"></a>

Uma construção básica usada em muitos sistemas criptográficos é a criptografia de envelope. A criptografia de envelope usa duas ou mais chaves criptográficas para proteger uma mensagem. Normalmente, uma chave é derivada a partir de uma chave estática de longo prazo *k*, e outra chave é uma chave por mensagem *msgKey*, que é gerada para criptografar a mensagem. O envelope é formado criptografando a mensagem: *texto cifrado = Criptografia(msgKey, mensagem)*. Em seguida, a chave de mensagem é criptografada com a chave estática de longo prazo:*encKey = Criptografia(k, msgKey)*. Por fim, os dois valores *(encKey, texto cifrado)* são empacotados em uma única estrutura, ou mensagem criptografada de envelope.

O destinatário, com acesso a *k*, pode abrir a mensagem envolta primeiro descriptografando a chave criptografada e depois descriptografando a mensagem.

AWS KMS fornece a capacidade de gerenciar essas chaves estáticas de longo prazo e automatizar o processo de criptografia de envelopes de seus dados. 

Além dos recursos de criptografia fornecidos no AWS KMS serviço, o [SDK de criptografia fornece bibliotecas de AWS criptografia](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/introduction.html) de envelopes do lado do cliente. Você pode usar essas bibliotecas para proteger os seus dados e as chaves de criptografia usadas para criptografar esses dados.