CRYSTALS-Kyber: KEM baseado em reticulados
Acompanhe o encapsulamento de chaves Module-LWE e os conjuntos de parâmetros.
CRYSTALS-Kyber: KEM baseado em reticulados é 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.
Por que Kyber?
CRYSTALS-Kyber, renomeado como ML-KEM pelo NIST no FIPS 203, é um mecanismo de encapsulamento de chaves (KEM) baseado em Module-LWE. Ele substitui RSA e ECDH na troca de chaves, oferecendo resistência quântica com níveis práticos de desempenho.
KEM versus acordo de chaves
Um KEM encapsula um segredo compartilhado: o remetente gera uma chave aleatória K e a criptografa com a chave pública do destinatário (encapsulamento), produzindo um texto cifrado C. O destinatário desencapsula C com sua chave privada para recuperar K. Não é necessária uma troca interativa de chaves.
Base do Module-LWE
Kyber usa Module-LWE sobre o anel R_q = Z_q[x]/(x^256+1), com q=3329. Dimensão k=2 (Kyber-512), k=3 (Kyber-768), k=4 (Kyber-1024). Nível de segurança: aproximadamente 128, 192 e 256 bits, respectivamente. k=3 (Kyber-768) é o padrão recomendado.
Geração de chaves
Gere a matriz A ∈ R_q^{k×k} a partir da semente ρ (expansível). Extraia o segredo s e o ruído e de uma distribuição binomial centrada, com coeficientes pequenos. Chave pública: (ρ, t=As+e). Chave privada: s. O ruído e é pequeno, mas impede a recuperação de s a partir da chave pública.
Encapsulamento
Para enviar um segredo compartilhado ao titular da chave pública (ρ, t): extraia r, e1, e2 da distribuição de ruído. Calcule u = A^T r + e1, v = t^T r + e2 + round(q/2)*m, em que m é uma mensagem aleatória de 256 bits. Segredo compartilhado K = KDF(m). Texto cifrado = (u, v).
Desencapsulamento
Com a chave privada s: calcule m' = decompress(v - s^T u) = decompress(t^T r + e2 + round(q/2)*m - s^T(A^T r + e1)). Os termos de ruído se cancelam aproximadamente, deixando m'≈m. Calcule K = KDF(m'). Probabilidade de falha do desencapsulamento: < 2^{-139}.
Tamanhos das chaves e do texto cifrado
Kyber-768: chave pública de 1184 bytes, chave privada de 2400 bytes, texto cifrado de 1088 bytes e segredo compartilhado de 32 bytes. Compare com ECDH-P256: chave pública de 65 bytes e texto cifrado de 32 bytes. Kyber é aproximadamente 15 vezes maior, mas é seguro contra ataques quânticos. Ainda assim, é rápido: encapsulamento e desencapsulamento levam menos de 1 ms em CPUs modernas.
Otimização com NTT
A multiplicação de polinômios em R_q = Z_q[x]/(x^256+1) usa a Transformada Teórica dos Números (NTT) — o análogo da FFT para a aritmética modular. A NTT reduz a multiplicação de polinômios de O(n^2) para O(n log n). q=3329 foi escolhido por oferecer boas propriedades de NTT para n=256.
Troca híbrida de chaves
Durante a migração para PQC, use uma troca híbrida de chaves: combine ECDH e Kyber. Segredo compartilhado = KDF(ECDH_output || Kyber_output). A segurança exige quebrar ambos: adversários clássicos não quebram nenhum dos dois; adversários quânticos quebram ECDH, mas não Kyber. Os rascunhos do TLS 1.3 (IETF RFC 8446) oferecem suporte a KEMs híbridos.
Considerações sobre canais laterais
O desencapsulamento de Kyber não executa em tempo constante em implementações ingênuas — a etapa de amostragem por rejeição vaza informações de temporização. A implementação de referência usa NTT em tempo constante e comparação de textos cifrados comprimidos. Use o código de referência da submissão do NIST ou implementações de bibliotecas auditadas.
Status da implantação
O NIST publicou o FIPS 203 (ML-KEM) em agosto de 2024. O Chrome adicionou suporte a Kyber no TLS 1.3 em 2023. Cloudflare, Google e AWS estão implantando ECDH+Kyber híbrido. O OpenSSL 3.x adicionou suporte a ML-KEM. As implementações de LibSSH e WireGuard estão em andamento.
Verificação rápida
Qual documento normativo do NIST padroniza CRYSTALS-Kyber?
Recapitulação
Kyber (ML-KEM) é um KEM baseado em Module-LWE que substitui ECDH. Tamanhos de chave de aproximadamente 1 KB; aritmética NTT rápida; resistente a ataques quânticos. Durante a migração, implante-o em modo híbrido com ECDH. Padronizado como FIPS 203. A seguir: os esquemas de assinatura CRYSTALS-Dilithium e Falcon.
Aprenda Cryptology Academy com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 67
- Aulas
- 261
Perguntas Frequentes
A aula “CRYSTALS-Kyber: KEM baseado em reticulados” é grátis?
Sim — o texto completo de “CRYSTALS-Kyber: KEM baseado em reticulados” é 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 “CRYSTALS-Kyber: KEM baseado em reticulados”?
Acompanhe o encapsulamento de chaves Module-LWE e os conjuntos de parâmetros. 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 “CRYSTALS-Kyber: KEM baseado em reticulados”?
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
- Algoritmos de Shor e Grover explicados
- CRYSTALS-Kyber: KEM baseado em reticulados
- Assinaturas CRYSTALS-Dilithium e Falcon
- Migração para PQC: abordagens híbridas