CRYSTALS-Kyber: KEM basado en retículos
Recorra la encapsulación de claves Module-LWE y sus conjuntos de parámetros.
CRYSTALS-Kyber: KEM basado en retículos es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.
¿Por qué Kyber?
CRYSTALS-Kyber (cuyo nombre NIST cambió a ML-KEM en FIPS 203) es un mecanismo de encapsulación de claves (KEM) basado en Module-LWE. Sustituye a RSA y ECDH para el intercambio de claves y proporciona resistencia cuántica con un rendimiento práctico.
KEM frente a acuerdo de claves
Un KEM encapsula un secreto compartido: el remitente genera una clave aleatoria K y la cifra con la clave pública del destinatario (encapsulación), lo que produce un texto cifrado C. El destinatario desencapsula C con su clave privada para recuperar K. No se necesita un intercambio interactivo de claves.
Base de Module-LWE
Kyber utiliza Module-LWE sobre el anillo R_q = Z_q[x]/(x^256+1), con q=3329. La dimensión es k=2 (Kyber-512), k=3 (Kyber-768) y k=4 (Kyber-1024). Los niveles de seguridad son de ~128, ~192 y ~256 bits, respectivamente. k=3 (Kyber-768) es la opción predeterminada recomendada.
Generación de claves
Genere la matriz A ∈ R_q^{k×k} a partir de la semilla ρ (expandible). Muestree el secreto s y el ruido e a partir de una distribución binomial centrada (con coeficientes pequeños). Clave pública: (ρ, t=As+e). Clave privada: s. El ruido e es pequeño, pero impide recuperar s a partir de la clave pública.
Encapsulación
Para enviar un secreto compartido al titular de la clave pública (ρ, t), muestree r, e1 y e2 a partir de la distribución de ruido. Calcule u = A^T r + e1, v = t^T r + e2 + round(q/2)*m, donde m es un mensaje aleatorio de 256 bits. Secreto compartido K = KDF(m). Texto cifrado = (u, v).
Desencapsulación
Con la clave privada s, calcule m' = decompress(v - s^T u) = decompress(t^T r + e2 + round(q/2)*m - s^T(A^T r + e1)). Los términos de ruido se cancelan aproximadamente, dejando m'≈m. Calcule K = KDF(m'). Probabilidad de fallo de desencapsulación: < 2^{-139}.
Tamaños de las claves y del texto cifrado
Kyber-768: clave pública de 1184 bytes, clave privada de 2400 bytes, texto cifrado de 1088 bytes y secreto compartido de 32 bytes. Compárelo con ECDH-P256: clave pública de 65 bytes y texto cifrado de 32 bytes. Kyber es aproximadamente 15 veces más grande, pero ofrece seguridad poscuántica. Aun así, es rápido: encapsulación y desencapsulación tardan menos de 1 ms en CPU modernas.
Optimización con NTT
La multiplicación de polinomios en R_q = Z_q[x]/(x^256+1) utiliza la transformada teórica de números (NTT), el análogo aritmético modular de la FFT. La NTT reduce la multiplicación de polinomios de O(n^2) a O(n log n). q=3329 se eligió por sus buenas propiedades para la NTT con n=256.
Intercambio híbrido de claves
Durante la migración a PQC, utilice un intercambio híbrido de claves: combine ECDH y Kyber. Secreto compartido = KDF(ECDH_output || Kyber_output). La seguridad exige romper ambos: los adversarios clásicos no rompen ninguno; los adversarios cuánticos rompen ECDH, pero no Kyber. Los borradores de TLS 1.3 (IETF RFC 8446) admiten KEM híbridos.
Consideraciones sobre canales laterales
La desencapsulación de Kyber no se ejecuta en tiempo constante en implementaciones ingenuas: el paso de muestreo por rechazo filtra información temporal. La implementación de referencia utiliza una NTT en tiempo constante y una comparación de textos cifrados comprimidos. Utilice el código de referencia de la propuesta de NIST o implementaciones de bibliotecas auditadas.
Estado de la implementación
NIST publicó FIPS 203 (ML-KEM) en agosto de 2024. Chrome incorporó compatibilidad con Kyber en TLS 1.3 en 2023. Cloudflare, Google y AWS están implementando ECDH+Kyber híbrido. OpenSSL 3.x añadió compatibilidad con ML-KEM. Las implementaciones para LibSSH y WireGuard están en desarrollo.
Comprobación rápida
¿Qué documento estándar de NIST estandariza CRYSTALS-Kyber?
Resumen
Kyber (ML-KEM) es un KEM basado en Module-LWE que sustituye a ECDH. Sus claves ocupan aproximadamente 1 KB; utiliza aritmética NTT rápida y ofrece resistencia cuántica. Impleméntelo de forma híbrida con ECDH durante la migración. Está estandarizado como FIPS 203. Siguiente tema: los esquemas de firma CRYSTALS-Dilithium y Falcon.
Preguntas frecuentes
¿La lección «CRYSTALS-Kyber: KEM basado en retículos» es gratis?
Sí — el texto completo de «CRYSTALS-Kyber: KEM basado en retículos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.
¿Qué aprenderé en «CRYSTALS-Kyber: KEM basado en retículos»?
Recorra la encapsulación de claves Module-LWE y sus conjuntos de parámetros. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cryptology Academy?
No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «CRYSTALS-Kyber: KEM basado en retículos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?
Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Algoritmos de Shor y Grover explicados
- CRYSTALS-Kyber: KEM basado en retículos
- Firmas CRYSTALS-Dilithium y Falcon
- Migración a PQC: enfoques híbridos