Um mecanismo de encapsulamento de chaves (KEM) é um processo criptográfico usado para estabelecer um segredo compartilhado entre duas partes em um canal não confiável. Um mecanismo de encapsulamento de chaves envolve três algoritmos principais:
- Geração de chaves: um par de chaves é gerado, consistindo em uma chave pública e uma chave privada.
- Encapsulamento: a chave pública é usada para produzir uma senha secreta e um texto criptografado correspondente.
- Decapsulação: a chave privada é usada para recuperar o segredo compartilhado do texto cifrado.
Os mecanismos de encapsulamento de chaves são um elemento fundamental para protocolos de troca de chaves e criptografia de chave pública híbrida (HPKE).
Fluxo de trabalho de encapsulamento e desencapsulamento
A seguir, descrevemos o processo de uso de um par de chaves KEM para encapsular e desencapsular dados. Os dois participantes desse fluxo de trabalho são um remetente e um destinatário. O remetente cria um texto criptografado e uma senha secreta usando a chave pública do destinatário. Em seguida, o destinatário descriptografa o texto criptografado usando a chave privada para recuperar a senha secreta. Somente alguém com conhecimento da chave privada pode desencapsular o texto criptografado para recuperar a senha secreta original.
O remetente recupera a chave pública do destinatário.
O remetente usa a chave pública para realizar a etapa de encapsulamento, que gera uma senha secreta e um texto criptografado correspondente.
O remetente envia o texto cifrado para o destinatário.
O destinatário usa a chave privada dele para desencapsular o texto criptografado. O destinatário e o remetente agora têm o mesmo segredo compartilhado.
Mecanismos de encapsulamento de chaves pós-quânticos (PQ-KEM)
Os computadores quânticos têm o potencial de descriptografar material criptografado por algoritmos de criptografia clássicos, como os amplamente usados RSA e ECDSA, o que pode tornar esse material vulnerável a ataques de "armazenar agora, descriptografar depois" (SNDL, na sigla em inglês). Nesses ataques, os adversários coletam dados criptografados de hoje que usam algoritmos de criptografia clássicos e os armazenam, com a intenção de descriptografá-los mais tarde, quando computadores quânticos potentes estiverem disponíveis. Os PQ-KEMs são projetados para serem resistentes a ataques quânticos, garantindo que os dados criptografados com eles hoje permaneçam seguros mesmo na era quântica, impedindo a descriptografia futura de informações armazenadas hoje.
O Cloud Key Management Service oferece suporte a ML-KEM-768 e ML-KEM-1024, que foram padronizados pelo NIST no FIPS-203, e ao X-Wing, um KEM híbrido que combina ML-KEM-768 com X25519. Esses algoritmos têm os seguintes valores de tamanho (em bytes):
| Algoritmo | Chave pública | Texto criptografado | Senha secreta |
|---|---|---|---|
| ML_KEM_768 | 1184 | 1.088 | 32 |
| ML_KEM_1024 | 1568 | 1568 | 32 |
| KEM_XWING | 1216 | 1120 | 32 |
Recursos de KEMs do Cloud KMS
O Cloud KMS oferece os seguintes recursos relacionados a mecanismos de encapsulamento de chaves:
Criar uma chave KEM com a finalidade de chave de
KEY_ENCAPSULATIONe um algoritmo de encapsulamento de chave.Recuperar a chave pública de uma chave KEM.
Desencapsular uma chave secreta compartilhada usando a chave privada de uma chave KEM.
Para encapsular usando chaves do Cloud KMS, use SDKs e ferramentas disponíveis abertamente com a chave pública. O Cloud KMS não oferece recursos de encapsulamento.