PQC

Firma digital post-cuántica compatible con eIDAS: el estándar que viene

17 de marzo de 2026 11 min de lectura PWR.es

La firma electrónica cualificada tiene el mismo valor legal que una firma manuscrita en toda la UE. Así lo establece el Reglamento eIDAS (910/2014) y su actualización eIDAS 2.0 (2024/1183). Pero la base criptográfica de las firmas electrónicas actuales — RSA y ECDSA — es vulnerable a la computación cuántica. Si un ordenador cuántico puede forjar tu firma digital, ¿qué valor legal tiene?

El NIST publicó en agosto de 2024 el estándar FIPS 204 (ML-DSA, antes CRYSTALS-Dilithium), un algoritmo de firma digital diseñado para resistir ataques cuánticos. ENISA y el BSI alemán ya recomiendan preparar la transición. La pregunta no es si las firmas post-cuánticas llegarán al marco eIDAS, sino cuándo. Y las organizaciones que se preparen ahora tendrán ventaja regulatoria y técnica.

El marco eIDAS actual: cómo funciona la firma cualificada

eIDAS define tres niveles de firma electrónica, cada uno con requisitos técnicos y valor legal crecientes:

  • Firma electrónica simple: cualquier dato electrónico asociado a otros datos electrónicos para firmar. Un checkbox de 'acepto' o un nombre escrito en un email. Valor probatorio débil
  • Firma electrónica avanzada (FEA): vinculada al firmante de forma única, permite identificarlo, creada con datos bajo su control exclusivo, y vinculada a los datos firmados de modo que cualquier modificación posterior sea detectable. Implementada típicamente con certificados X.509 y RSA/ECDSA
  • Firma electrónica cualificada (FEQ): una firma avanzada creada con un dispositivo cualificado de firma (QSCD) y basada en un certificado cualificado emitido por un prestador de servicios de confianza (TSP) incluido en la lista de confianza de un Estado miembro. Equivalente legal a firma manuscrita en toda la UE

La cadena de confianza es: el firmante tiene un certificado cualificado emitido por un TSP acreditado (en España: FNMT, AC Camerfirma, Firmaprofesional, etc.), usa un dispositivo cualificado (tarjeta criptográfica, HSM) para crear la firma, y un algoritmo criptográfico aprobado. Actualmente, los algoritmos aprobados son RSA (>= 2048 bits) y ECDSA (>= 256 bits en curvas NIST).

ML-DSA (Dilithium): la firma post-cuántica del NIST

ML-DSA (Module-Lattice Digital Signature Algorithm, FIPS 204) es el equivalente post-cuántico de RSA y ECDSA para firmas digitales. Al igual que ML-KEM para cifrado, se basa en problemas de retículos modulares (Module-LWE y Module-SIS) que no tienen solución eficiente conocida ni en ordenadores clásicos ni cuánticos.

El NIST define tres niveles de seguridad para ML-DSA:

  • ML-DSA-44: nivel de seguridad 2 (~128 bits clásicos). Clave pública: 1.312 bytes. Firma: 2.420 bytes. Equivalente a RSA-2048 o ECDSA-256
  • ML-DSA-65: nivel de seguridad 3 (~192 bits). Clave pública: 1.952 bytes. Firma: 3.309 bytes. Equivalente a RSA-3072
  • ML-DSA-87: nivel de seguridad 5 (~256 bits). Clave pública: 2.592 bytes. Firma: 4.627 bytes. Equivalente a RSA-4096 o ECDSA-384

Las firmas ML-DSA son significativamente más grandes que las de ECDSA (64 bytes para P-256) pero comparables a RSA-4096 (512 bytes). Para documentos y transacciones, el incremento de tamaño es irrelevante. Para protocolos de red donde cada byte cuenta (TLS handshake), se requiere optimización pero es manejable.

Rendimiento: ML-DSA vs RSA vs ECDSA

Los benchmarks de ML-DSA son sorprendentemente competitivos. La firma y verificación son más rápidas que RSA en la mayoría de casos:

TEXT
Operación              | RSA-2048   | ECDSA-256  | ML-DSA-65
─────────────────────────────────────────────────────────────
Generación de claves   | 2-5 ms     | 0,04 ms    | 0,10 ms
Firmar                 | 2-3 ms     | 0,08 ms    | 0,30 ms
Verificar              | 0,1 ms     | 0,15 ms    | 0,12 ms
Tamaño clave pública   | 256 bytes  | 64 bytes   | 1.952 bytes
Tamaño firma           | 256 bytes  | 64 bytes   | 3.309 bytes
Resistente a quantum   | No         | No         | Sí

Nota: tiempos medidos en hardware x86-64 de gama media (Xeon E-2236)

ML-DSA-65 firma en 0,3 ms — 10 veces más rápido que RSA-2048 y solo 4 veces más lento que ECDSA-256. La verificación es incluso más rápida que ECDSA. Para un sistema de firma documental que procesa cientos de documentos por hora, la diferencia es imperceptible.

Implementación en PHP con Rúbrica

Rúbrica, el módulo de firma digital de PWR.es, implementa ML-DSA a través de liboqs (Open Quantum Safe) vía PHP FFI. La interfaz es idéntica a la firma con OpenSSL, pero los algoritmos subyacentes son post-cuánticos:

PHP
<?php
require_once 'rubrica.php';

// ─── Firma digital post-cuántica con ML-DSA-65 ───

// 1. Generar par de claves ML-DSA-65
$claves = rubrica_pqc_generar_claves('ML-DSA-65');
// $claves['publica'] → 1.952 bytes
// $claves['privada'] → 4.032 bytes

// 2. Firmar un documento
$documento = file_get_contents('contrato.pdf');
$firma = rubrica_pqc_firmar($documento, $claves['privada']);
// $firma → 3.309 bytes (base64: ~4.412 chars)

// 3. Verificar la firma
$valida = rubrica_pqc_verificar($documento, $firma, $claves['publica']);
// true si el documento no ha sido modificado

// 4. Firma con timestamp (TSA)
$firma_sellada = rubrica_pqc_firmar_con_timestamp(
    $documento, $claves['privada'],
    ['tsa' => 'https://tsa.fnmt.es/tsa/tss']
);

Firmas híbridas: transición segura

Al igual que con el cifrado, la transición a firmas post-cuánticas debe ser gradual. El enfoque recomendado por ENISA y el BSI es la firma híbrida: firmar con un algoritmo clásico (RSA o ECDSA) y simultáneamente con un algoritmo post-cuántico (ML-DSA). Si alguno de los dos se rompe, el otro mantiene la validez.

La firma híbrida es especialmente importante en el contexto legal. Hoy, una firma ML-DSA pura no tiene reconocimiento legal bajo eIDAS porque ML-DSA no está en la lista de algoritmos aprobados. Pero si la firma incluye también ECDSA (que sí está aprobado), tiene validez legal inmediata. Cuando eIDAS apruebe ML-DSA, la firma post-cuántica pasará a ser la que proporciona la seguridad a largo plazo.

PHP
<?php
// ─── Firma híbrida: ECDSA + ML-DSA-65 ───
require_once 'rubrica.php';

// Claves clásicas (ECDSA P-256, válida bajo eIDAS hoy)
$ec = openssl_pkey_new([
    'curve_name' => 'prime256v1',
    'private_key_type' => OPENSSL_KEYTYPE_EC,
]);

// Claves post-cuánticas (ML-DSA-65, válida bajo eIDAS mañana)
$pqc = rubrica_pqc_generar_claves('ML-DSA-65');

// Firmar con ambos algoritmos
$documento = file_get_contents('contrato.pdf');

// 1. Firma ECDSA (validez legal actual)
openssl_sign($documento, $firma_ecdsa, $ec, OPENSSL_ALGO_SHA256);

// 2. Firma ML-DSA (protección post-cuántica)
$firma_mldsa = rubrica_pqc_firmar($documento, $pqc['privada']);

// 3. Combinar en estructura híbrida
$firma_hibrida = rubrica_firma_hibrida([
    'documento_hash' => hash('sha3-256', $documento),
    'clasica' => [
        'algoritmo' => 'ECDSA-P256-SHA256',
        'firma' => base64_encode($firma_ecdsa),
        'certificado' => $cert_cualificado, // Cert. cualificado eIDAS
    ],
    'pqc' => [
        'algoritmo' => 'ML-DSA-65',
        'firma' => base64_encode($firma_mldsa),
        'clave_publica' => base64_encode($pqc['publica']),
    ],
    'timestamp' => rubrica_timestamp('https://tsa.fnmt.es/tsa/tss'),
]);

Sellado de tiempo: el ancla temporal de la firma

Una firma digital demuestra quién firmó y que el documento no ha sido modificado. Pero no demuestra cuándo se firmó. Para eso existen las autoridades de sellado de tiempo (TSA), que emiten un sello temporal firmado por un tercero de confianza.

En el contexto post-cuántico, el sellado de tiempo cobra especial importancia. Si en 2035 un ordenador cuántico puede forjar firmas RSA, ¿cómo demuestras que tu documento fue firmado en 2026 con una firma RSA válida en ese momento? El sello temporal de una TSA — si la propia TSA usa algoritmos post-cuánticos o si el sello se renueva periódicamente — proporciona esa garantía.

El protocolo de sellado de tiempo está definido en RFC 3161. La TSA recibe un hash del documento, lo firma con su certificado incluyendo la hora exacta (sincronizada con fuentes atómicas), y devuelve el token de sellado. En España, la FNMT ofrece un servicio TSA gratuito para certificados emitidos por ella.

PHP
<?php
// Sellado de tiempo RFC 3161 con Rúbrica
require_once 'rubrica.php';

// Hash del documento que queremos sellar
$hash = hash('sha256', file_get_contents('contrato.pdf'), true);

// Solicitar sello temporal a la TSA de la FNMT
$sello = rubrica_timestamp_rfc3161($hash, [
    'tsa_url' => 'https://tsa.fnmt.es/tsa/tss',
    'hash_algo' => 'sha256',
    'cert_tsa' => true, // Incluir certificado de la TSA en la respuesta
]);

// El sello contiene:
// - Hash del documento
// - Timestamp UTC con precisión de milisegundos
// - Firma de la TSA (actualmente RSA, futuro ML-DSA)
// - Certificado de la TSA
// - Nonce para prevenir replay attacks

// Verificar el sello
$valido = rubrica_verificar_timestamp($sello, $hash);
// true si el sello es auténtico y el hash coincide

eIDAS 2.0 y la hoja de ruta post-cuántica

El Reglamento (UE) 2024/1183 (eIDAS 2.0) no menciona explícitamente ML-DSA ni algoritmos post-cuánticos específicos. Pero sí establece el marco para su adopción:

  • El artículo 24.2a faculta a la Comisión para adoptar actos delegados que especifiquen los algoritmos criptográficos de referencia, incluyendo actualizaciones por razones de seguridad
  • ENISA publicó en 2024 el informe 'Post-Quantum Cryptography: Current State and Quantum Mitigation' recomendando que los TSP de la UE comiencen pruebas con algoritmos PQC
  • El BSI alemán exige desde 2025 que los nuevos sistemas de firma soporten al menos modo híbrido (clásico + PQC)
  • ETSI (European Telecommunications Standards Institute) está trabajando en la actualización de los estándares de firma CAdES, XAdES y PAdES para incluir ML-DSA
  • La lista de algoritmos aprobados para eIDAS (ETSI TS 119 312) se actualizará para incluir ML-DSA cuando los estándares ISO/ETSI estén completos

La hoja de ruta realista es: estandarización ISO/ETSI de ML-DSA en firmas electrónicas durante 2026-2027, inclusión en la lista de algoritmos aprobados de eIDAS durante 2027-2028, y obligatoriedad progresiva a partir de 2028-2030. Las organizaciones que empiecen ahora con firmas híbridas estarán preparadas cuando la regulación lo exija.

Implicaciones legales: validez de firmas antiguas

¿Qué pasa con los millones de documentos firmados con RSA y ECDSA cuando estos algoritmos se consideren inseguros? Este es el problema de la 'validez a largo plazo' (Long-Term Validation, LTV) y eIDAS ya tiene mecanismos para abordarlo:

Los formatos de firma avanzados — CAdES-A, XAdES-A, PAdES-LTV — incluyen toda la información necesaria para verificar la firma en el futuro: los certificados, las respuestas OCSP, las CRL, y los sellos temporales. Periódicamente, se añade un nuevo sello temporal con un algoritmo más fuerte que 'envuelve' toda la firma anterior. Este proceso de re-sellado es la clave para la preservación a largo plazo.

  • Firma PAdES-LTV: el PDF incluye todos los certificados de la cadena, respuestas OCSP actuales, y un sello temporal. Se puede verificar offline años después
  • Re-sellado periódico: antes de que el algoritmo del sello temporal expire o se debilite, se añade un nuevo sello con un algoritmo más fuerte
  • Transición PQC: cuando ML-DSA esté disponible en los servicios TSA, el re-sellado se hará con ML-DSA, protegiendo retroactivamente las firmas RSA/ECDSA antiguas

Recomendaciones prácticas para 2026

  • Si emites firmas electrónicas: comienza a implementar firma híbrida (ECDSA + ML-DSA) en entornos de pruebas
  • Si almacenas documentos firmados: implementa re-sellado periódico con sellos temporales actualizados
  • Si eres TSP o integrador: prepara tu infraestructura para soportar ML-DSA cuando ETSI publique los estándares actualizados
  • Si desarrollas software de firma: abstrae el algoritmo criptográfico para que cambiar de ECDSA a ML-DSA sea una línea de configuración, no una reescritura
  • Para todos: no esperes a que eIDAS obligue. Los clientes que manejan datos con valor a largo plazo (contratos, escrituras, historiales) ya deberían exigir protección post-cuántica

Rúbrica implementa firma híbrida ECDSA + ML-DSA con sellado temporal RFC 3161, todo en PHP nativo con liboqs vía FFI. La misma interfaz que usas hoy para firmar con RSA sirve para firmar con ML-DSA. Cuando eIDAS apruebe oficialmente ML-DSA, tu código no necesitará cambiar: solo la configuración del algoritmo.

La firma digital post-cuántica no es un ejercicio académico. Es una necesidad legal inminente para cualquier organización que emita documentos con validez a largo plazo. Los contratos firmados hoy con RSA podrían ser forjables en 2035. Las organizaciones que implementen firma híbrida ahora protegen su seguridad jurídica futura. Las que esperen, tendrán que re-firmar millones de documentos con prisa y coste.