Um mecanismo de encapsulamento de chaves (KEM) é um processo criptográfico usado para estabelecer um segredo partilhado entre duas partes através de um canal não fidedigno. Um mecanismo de encapsulamento de chaves envolve três algoritmos principais:
- Geração de chaves: é gerado um par de chaves que consiste numa chave pública e numa chave privada.
- Encapsulamento: a chave pública é usada para produzir um segredo partilhado e um texto encriptado correspondente.
- Decapsulação: a chave privada é usada para recuperar o segredo partilhado do texto encriptado.
Os mecanismos de encapsulamento de chaves são uma base fundamental para os protocolos de troca de chaves e a encriptação de chaves públicas híbrida (HPKE).
Fluxo de trabalho de encapsulamento e desencapsulamento
A descrição seguinte descreve o processo de utilização de um par de chaves KEM para encapsular e desencapsular dados. Os dois participantes neste fluxo de trabalho são um remetente e um destinatário. O remetente cria um texto cifrado e um segredo partilhado através da chave pública do destinatário e, em seguida, o destinatário desencripta o texto cifrado através da chave privada do destinatário para obter o segredo partilhado. Apenas alguém com conhecimento da chave privada pode desencapsular o texto cifrado para obter o segredo partilhado original.
O remetente obtém a chave pública do destinatário.
O remetente usa a chave pública para executar o passo de encapsulamento, que gera um segredo partilhado e um texto cifrado correspondente.
O remetente envia o texto cifrado ao destinatário.
O destinatário usa a chave privada do destinatário para desencapsular o texto cifrado. O destinatário e o remetente têm agora o mesmo segredo partilhado.
Mecanismos de encapsulamento de chaves pós-quânticos (PQ-KEM)
Os computadores quânticos têm o potencial de desencriptar material encriptado por algoritmos de encriptação clássicos, como os algoritmos RSA e ECDSA amplamente usados, o que pode tornar esse material encriptado vulnerável a ataques de "recolher agora, desencriptar mais tarde". Em tais ataques, os adversários recolhem os dados encriptados atuais que usam algoritmos de encriptação clássicos e armazenam-nos, com a intenção de os desencriptar mais tarde, quando estiverem disponíveis computadores quânticos potentes. Os PQ-KEMs foram concebidos para serem resistentes a ataques quânticos, garantindo que os dados encriptados com eles hoje permanecem seguros mesmo na era quântica, impedindo a desencriptação futura de informações recolhidas hoje.
O Cloud Key Management Service suporta ML-KEM-768 e ML-KEM-1024, que foram padronizados pela NIST na FIPS-203, e o X-Wing, um KEM híbrido que combina ML-KEM-768 com X25519. Estes algoritmos têm os seguintes valores de tamanho (em bytes):
Algoritmo | Chave pública | Texto encriptado | Segredo partilhado |
---|---|---|---|
ML_KEM_768 | 1184 | 1088 | 32 |
ML_KEM_1024 | 1568 | 1568 | 32 |
KEM_XWING | 1216 | 1120 | 32 |
Capacidades de KEMs do Cloud KMS
O Cloud KMS oferece as seguintes capacidades relacionadas com mecanismos de encapsulamento de chaves:
Criar uma chave KEM com finalidade da chave de
KEY_ENCAPSULATION
e um algoritmo de encapsulamento de chaves.Obter a chave pública para uma chave KEM.
Desencapsular um segredo partilhado através da chave privada de uma chave KEM.
Para encapsular com chaves do Cloud KMS, tem de usar SDKs e ferramentas disponíveis abertamente com a chave pública. O Cloud KMS não oferece capacidades de encapsulamento.