0Pricing
Cryptology Academy · Aula

ML-KEM (FIPS 203): padrão CRYSTALS-Kyber

Aprofunde-se no mecanismo de encapsulamento de chaves de ML-KEM, nos conjuntos de parâmetros e nas considerações de implementação.

ML-KEM (FIPS 203): padrão CRYSTALS-Kyber é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.

O que o ML-KEM padroniza

O ML-KEM (mecanismo de encapsulamento de chaves baseado em módulos e reticulados), padronizado como FIPS 203 em agosto de 2024, é o substituto pós-quântico para a troca de chaves Diffie-Hellman e RSA. Ele encapsula uma chave simétrica usando uma chave pública, produzindo um segredo compartilhado que ambas as partes podem usar para a criptografia simétrica. O ML-KEM deriva do CRYSTALS-Kyber, com pequenas alterações para tornar a especificação mais clara.

Conjuntos de parâmetros do ML-KEM

O ML-KEM define três conjuntos de parâmetros. O ML-KEM-512 visa aproximadamente 128 bits de segurança clássica e 100 bits de segurança pós-quântica, com uma chave pública de 800 bytes e um texto cifrado de 768 bytes. O ML-KEM-768 visa 192 bits de segurança clássica, com chave pública de 1184 bytes e texto cifrado de 1088 bytes. O ML-KEM-1024 visa 256 bits de segurança clássica, com chave pública de 1568 bytes e texto cifrado de 1568 bytes. O NIST recomenda o ML-KEM-768 para a maioria das aplicações.

Geração de chaves no ML-KEM

A geração de chaves do ML-KEM funciona da seguinte maneira: amostra-se uma matriz aleatória A a partir de uma semente usando SHAKE-128; amostram-se um vetor secreto pequeno e um vetor de erro; calcula-se t = As + e mod q. A chave pública é (seed, t), e a chave privada é s, juntamente com o resumo da chave pública. Usar uma semente em vez de armazenar A economiza memória e largura de banda significativas.

Processo de encapsulamento

Para encapsular, o remetente gera uma mensagem aleatória m e deriva uma chave simétrica K e uma aleatoriedade r por meio de SHA-3. O texto cifrado consiste em duas partes: u = Ar + e1 mod q e v = t^T r + e2 + encode(m) mod q. O segredo compartilhado K é derivado do resumo de m. A aleatoriedade é derivada deterministicamente de m, vinculando o texto cifrado à chave.

Desencapsulamento e transformação FO

O desencapsulamento recupera m calculando v - s^T u e decodificando o resultado; em seguida, deriva novamente K a partir de m. A transformação Fujisaki-Okamoto acrescenta uma etapa crucial: cifrar novamente usando o m recuperado e verificar se o texto cifrado coincide. Se não coincidir, retorna-se um valor pseudoaleatório derivado do resumo da chave privada e do texto cifrado. Isso impede ataques de texto cifrado escolhido ao tornar o desencapsulamento determinístico e verificável.

Prova de segurança CCA2

O ML-KEM alcança segurança IND-CCA2 no modelo de oráculo aleatório quântico (QROM), comprovada sob a hipótese Module-LWE. O QROM é importante porque adversários pós-quânticos podem consultar funções de resumo em superposição. A prova de segurança de Hofheinz, Hovelmanns e Kiltz (a estrutura HHK) fornece reduções estreitas da hipótese Module-LWE para a segurança do ML-KEM no QROM.

Desempenho em comparação com RSA e ECDH

O ML-KEM supera o RSA significativamente na troca de chaves em níveis de segurança equivalentes. A geração de chaves do ML-KEM-768 leva cerca de 16 microssegundos em uma CPU moderna; o encapsulamento leva 20 microssegundos e o desencapsulamento, 18 microssegundos. A geração de chaves do RSA-2048 leva segundos. As chaves públicas do ML-KEM (1184 bytes) são maiores que as do ECDH (32–64 bytes), mas muito menores que as do RSA-2048 (256 bytes apenas para a chave, embora sejam mais longas na prática).

Implementações híbridas

Durante o período de transição, a troca de chaves híbrida combina o ML-KEM com um algoritmo clássico, normalmente X25519 ou P-256 ECDH. O segredo compartilhado é o resumo das saídas dos dois KEM: K = Hash(K_classical || K_pqc). Isso garante que a segurança não seja pior que a de nenhum dos componentes. O TLS híbrido é especificado no documento do IETF draft-ietf-tls-hybrid-design e é compatível com BoringSSL, OpenSSL 3.x e Rustls.

ML-KEM no TLS 1.3

O IETF definiu X25519ML-KEM-768 como o compartilhamento híbrido de chaves para TLS 1.3 (draft-ietf-tls-hybrid-design). O Chrome acrescentou suporte na versão 124, em abril de 2024, e o Firefox, na versão 132, em 2024. A Cloudflare implantou o ML-KEM em sua infraestrutura de terminação TLS. Essa rápida adoção significa que centenas de milhões de conexões TLS por dia agora incluem troca de chaves pós-quântica.

Taxa de falha na descriptografia

Devido aos termos de erro no LWE, existe uma probabilidade ínfima de o desencapsulamento falhar mesmo sem um adversário. Para o ML-KEM-512, a probabilidade de falha é aproximadamente 2^{-139}; para o ML-KEM-768, é 2^{-164}. Essas taxas estão muito abaixo de qualquer preocupação prática — para comparação, erros de hardware são muito mais frequentes — e não afetam a segurança, mas precisam ser considerados na especificação.

Implementações de código aberto

O ML-KEM está implementado em diversas bibliotecas de código aberto. A implementação de referência da equipe do Kyber está em domínio público. O PQClean fornece uma implementação em C limpa e portável. O liboqs, projeto Open Quantum Safe, integra o ML-KEM a uma biblioteca de encapsulamento. O AWS-LC, ramificação da BoringSSL feita pela Amazon, inclui o ML-KEM para endpoints TLS da AWS. O padrão NIST FIPS 203 inclui pseudocódigo detalhado para todas as operações.

Quiz sobre os parâmetros do ML-KEM

Qual conjunto de parâmetros do ML-KEM o NIST recomenda para a maioria das aplicações?

Recapitulação do ML-KEM

O ML-KEM (FIPS 203) é o KEM pós-quântico padronizado pelo NIST, baseado em Module-LWE. Três conjuntos de parâmetros (512/768/1024) fornecem 128/192/256 bits de segurança clássica. A geração de chaves produz uma chave pública compacta a partir de uma semente aleatória; o encapsulamento deriva um segredo compartilhado; e o desencapsulamento usa a transformação FO para obter segurança CCA2. O ML-KEM é significativamente mais rápido que o RSA e já está implantado no TLS do Chrome, do Firefox e da Cloudflare.

Perguntas Frequentes

A aula “ML-KEM (FIPS 203): padrão CRYSTALS-Kyber” é grátis?

Sim — o texto completo de “ML-KEM (FIPS 203): padrão CRYSTALS-Kyber” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.

O que vou aprender em “ML-KEM (FIPS 203): padrão CRYSTALS-Kyber”?

Aprofunde-se no mecanismo de encapsulamento de chaves de ML-KEM, nos conjuntos de parâmetros e nas considerações de implementação. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cryptology Academy?

Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “ML-KEM (FIPS 203): padrão CRYSTALS-Kyber”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cryptology Academy?

Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. A Competição PQC do NIST: Processo e Critérios
  2. ML-KEM (FIPS 203): padrão CRYSTALS-Kyber
  3. ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)
  4. Planejando sua Migração para Padrões Pós-Quânticos
← Voltar para Cryptology Academy