Ir al contenido

Niveles de Seguridad

AegisQ admite los tres conjuntos de parámetros ML-KEM de FIPS 203. El predeterminado es ML-KEM-768 (categoría NIST 3). Seleccione parámetros según su protocolo, modelo de amenazas y requisitos de interoperabilidad; una categoría no certifica esta implementación.

NivelValor del EnumNIST LevelClave PúblicaClave SecretaCapsuleOverhead del Paquete
ML-KEM-512SecurityLevel.ML_KEM_5121800 B1632 B768 B796 B
ML-KEM-768SecurityLevel.ML_KEM_7683 (default)1184 B2400 B1088 B1116 B
ML-KEM-1024SecurityLevel.ML_KEM_102451568 B3168 B1568 B1596 B

Overhead del paquete one-shot = capsule + AES nonce (12 B) + AES auth tag (16 B). El tamaño total one-shot es overhead + longitud del plaintext. Streaming usa otro formato de header/frames.

  • Categoría 1 — Usa la búsqueda exhaustiva de claves AES-128 como objetivo de comparación NIST.
  • Categoría 3 — Usa la búsqueda exhaustiva de claves AES-192 como objetivo de comparación. Predeterminado de AegisQ.
  • Categoría 5 — Usa la búsqueda exhaustiva de claves AES-256 como objetivo de comparación.

Son categorías de seguridad del algoritmo, no garantías de un período de retención ni equivalencias literales de seguridad en bits para todo ataque. Los tres modos híbridos usan AES-256-GCM para el payload.

from aegisq import AegisCipher, SecurityLevel
# Default: ML-KEM-768 (NIST Nivel 3)
cipher = AegisCipher()
# Selección explícita del nivel
cipher_512 = AegisCipher(level=SecurityLevel.ML_KEM_512) # Categoría 1, claves más pequeñas
cipher_768 = AegisCipher(level=SecurityLevel.ML_KEM_768) # Categoría 3 (predeterminado)
cipher_1024 = AegisCipher(level=SecurityLevel.ML_KEM_1024) # Categoría 5, claves más grandes

Estos son los parámetros internos de ML-KEM para cada nivel de seguridad:

Nivelkη₁η₂dᵤdᵥpk sizesk sizect sizess size
ML-KEM-512232104800 B1632 B768 B32 B
ML-KEM-7683221041184 B2400 B1088 B32 B
ML-KEM-10244221151568 B3168 B1568 B32 B

Donde:

  • k — Dimensión del módulo (número de vectores de polinomios)
  • η₁, η₂ — Parámetros de muestreo CBD para los términos de error
  • dᵤ, dᵥ — Anchos de bits de compresión
  • pk — Clave pública, sk — Clave secreta, ct — Ciphertext (capsule), ss — Shared secret