Kyber es un mecanismo de encapsulación de claves (KEM) diseñado para ser resistente a ataques criptoanalíticos con futuras computadoras cuánticas poderosas . Se utiliza para establecer un secreto compartido entre dos partes que se comunican sin que un atacante ( IND-CCA2 ) en el sistema de transmisión pueda descifrarlo. Este criptosistema asimétrico utiliza una variante del problema de aprendizaje con errores en red como su función básica de trampilla . Ganó la competencia NIST para el primer estándar de criptografía post-cuántica (PQ). [1] NIST llama a su estándar Mecanismo de encapsulación de claves basado en red de módulos ( ML-KEM ). [2]
El sistema se basa en el problema de aprendizaje de módulos con errores (M-LWE), junto con anillos ciclotómicos . [3] Recientemente, también ha habido una reducción estricta de la seguridad matemática formal del problema de anillo-LWE a MLWE. [4] [5] En comparación con los métodos PQ de la competencia, tiene ventajas típicas de los métodos basados en red, por ejemplo, en lo que respecta al tiempo de ejecución, así como al tamaño de los textos cifrados y el material clave. [6]
Se han definido variantes con diferentes niveles de seguridad: Kyber512 ( nivel de seguridad NIST 1, ≈ AES 128), Kyber768 (nivel de seguridad NIST 3, ≈ AES 192) y Kyber1024 (nivel de seguridad NIST 5, ≈ AES 256). [7] En el nivel Kyber768, las claves secretas tienen un tamaño de 2400 bytes, las claves públicas de 1184 y los textos cifrados de 1088. [8] [9]
Con una implementación optimizada en consecuencia, 4 kilobytes de memoria pueden ser suficientes para las operaciones criptográficas. [10] Para un escenario de cifrado de chat utilizando liboqs, se encontró que reemplazar el intercambio de claves ECDH extremadamente eficiente y no cuánticamente seguro utilizando Curve25519 aumentaba el tiempo de ejecución en un factor de aproximadamente 2,3 (1,5–7), un aumento estimado de 2,3 veces (1,4–3,1) en el consumo de energía y tenía aproximadamente 70 veces (48–92) más sobrecarga de datos . [11] Las operaciones de hash internas representan la mayor parte del tiempo de ejecución, que, por lo tanto, potencialmente se beneficiaría en gran medida de la aceleración de hardware correspondiente .
Kyber se deriva de un método publicado en 2005 por Oded Regev , desarrollado por desarrolladores de Europa y América del Norte, que son empleados por varias universidades gubernamentales o instituciones de investigación, o por empresas privadas, con financiación de la Comisión Europea , Suiza, los Países Bajos y Alemania. [12] También desarrollaron el esquema de firma relacionado y complementario Dilithium , como otro componente de su "Suite criptográfica para redes algebraicas" (CRYSTALS). Al igual que otros métodos PQC-KEM, Kyber hace un uso extensivo del hash internamente. En el caso de Kyber, aquí se utilizan variantes de Keccak ( SHA-3 /SHAKE), para generar números pseudoaleatorios , entre otras cosas. [10] En 2017, el método se presentó al Instituto Nacional de Estándares y Tecnología de EE. UU. (NIST) para su proceso de selección pública para un primer estándar para primitivas criptográficas seguras para la cuántica (NISTPQC). Se trata del único mecanismo de encapsulación de claves que ha sido seleccionado para su estandarización al final de la tercera ronda del proceso de estandarización del NIST. [4] Según una nota al pie del informe que anuncia la decisión, está condicionada a la ejecución de varios acuerdos relacionados con patentes , siendo NTRU una opción de respaldo. Actualmente, está en marcha una cuarta ronda del proceso de estandarización, con el objetivo de estandarizar un KEM adicional. En la segunda fase del proceso de selección, se ajustaron varios parámetros del algoritmo y se eliminó la compresión de las claves públicas. [10] Más recientemente, el NIST prestó especial atención a los costos en términos de tiempo de ejecución y complejidad para las implementaciones que enmascaran los tiempos de ejecución para evitar los correspondientes ataques de canal lateral (SCA). [4]
Kyber sufrió cambios durante el proceso de estandarización del NIST. En particular, en la presentación para la ronda 2 (denominada Kyber v2 ), se cambiaron las siguientes características: [13]
La presentación a la ronda 3 sufrió más ajustes: [14]
Los desarrolladores han publicado una implementación de referencia en el dominio público (o bajo CC0 ) , que está escrita en C. [15] La biblioteca de programas liboqs del proyecto Open Quantum Safe (OQS) contiene una implementación basada [16] en eso. [11] OQS también mantiene un módulo de proveedor de seguridad cuántica para OpenSSL 3.x, [17] y ha integrado su código en BoringSSL y wolfSSL . [18] Hay un puñado de implementaciones que utilizan varios otros lenguajes de programación de desarrolladores externos, incluidos JavaScript y Java. [19] [20] [21] Existen varias implementaciones de hardware optimizadas (gratuitas), incluida una que es resistente a ataques de canal lateral. [22] [23] La Oficina Federal Alemana para la Seguridad de la Información apunta a la implementación en Thunderbird , y en este contexto también una implementación en la biblioteca de programas Botan y los ajustes correspondientes al estándar OpenPGP . [24] En 2023, el servicio de mensajería cifrada Signal implementó PQXDH , un algoritmo de cifrado postcuántico basado en Kyber, en su protocolo Signal que utilizan WhatsApp y otros. [25] [26]
{{citation}}
: Mantenimiento de CS1: falta la ubicación del editor ( enlace ){{citation}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{citation}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{citation}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{citation}}
: CS1 maint: varios nombres: lista de autores ( enlace )