Saltar al contenido
ecdsa.com

ML-DSA (FIPS 204)

El algoritmo de firma digital basado en retículos de módulos (Module-Lattice-Based Digital Signature Algorithm) de FIPS 204 (agosto de 2024), derivado de CRYSTALS-Dilithium: la principal firma poscuántica del NIST, con los conjuntos de parámetros ML-DSA-44, ML-DSA-65 y ML-DSA-87.
También se escribeML-DSAFIPS 204DilithiumCRYSTALS-DilithiumML-DSA-65

Tamaños en bytes (FIPS 204, tabla 2), clave pública / firma: ML-DSA-44 1312 / 2420 (categoría de seguridad 2), ML-DSA-65 1952 / 3309 (categoría 3), ML-DSA-87 2592 / 4627 (categoría 5). Las claves privadas expandidas ocupan de 2560 a 4896 bytes, pero pueden guardarse como la semilla de 32 bytes. En un núcleo de Apple M4 Max, OpenSSL 3.6.5 realiza unas 3900 firmas ML-DSA-44 y 20.800 verificaciones por segundo; la firma usa muestreo por rechazo, así que su duración varía.

La firma es hedged por defecto: se mezclan 32 bytes de aleatoriedad nueva con la clave y el mensaje, y una variante determinista opcional usa ceros en su lugar (§3.4). Cada firma vincula una cadena de contexto de hasta 255 bytes. HashML-DSA (§5.4) firma un resumen con el OID del hash vinculado, como un algoritmo distinto. Los identificadores X.509 son id-ml-dsa-44, -65 y -87 (de 2.16.840.1.101.3.4.3.17 a .19, RFC 9881).

ML-DSA es la opción predeterminada para la firma poscuántica de uso general: certificados en PKI privadas, firmware, documentos. Su tamaño es el obstáculo para TLS en la PKI web pública, y por eso se están diseñando los certificados ML-DSA compuestos y los certificados de árbol de Merkle (Merkle Tree Certificates). La herramienta de firmas poscuánticas firma y verifica en local.

Estándares y referencias

Todos los términos