Saltar al contenido
ecdsa.com

DSA (algoritmo de firma digital)

El algoritmo de firma de FIPS 186 (1994) basado en el logaritmo discreto en campos finitos, que FIPS 186-5 retiró en 2023 para firmas nuevas y que solo se mantiene para verificar las existentes.
También se escribeDigital Signature Algorithmssh-dssDSS

Los parámetros de dominio son un primo p (de 1024 a 3072 bits), un primo q que divide a p − 1 (de 160, 224 o 256 bits) y un generador g del subgrupo de orden q. Una firma es r = (gᵏ mod p) mod q y s = k⁻¹·(z + x·r) mod q, la misma estructura que ECDSA, que es su análogo de curva elíptica, y comparte el mismo modo de fallo: un k repetido o predecible revela la clave privada x. El RFC 6979 cubre tanto DSA como ECDSA.

FIPS 186-5 establece que DSA «ya no se especifica en este estándar y solo puede usarse para verificar firmas digitales generadas previamente». OpenSSH desactivó las claves ssh-dss de forma predeterminada en 2015 y eliminó por completo la compatibilidad con DSA en OpenSSH 10.0 (abril de 2025); GnuPG todavía lee las claves DSA/ElGamal antiguas, y muchas bibliotecas mantienen la verificación DSA para los archivos históricos.

Las firmas se codifican como las de ECDSA: una SEQUENCE DER con los dos enteros en X.509 y CMS (por ejemplo, dsa-with-SHA256, 2.16.840.1.101.3.4.3.2) o dos enteros de longitud fija en otros formatos. Si todavía encuentras claves DSA, sustitúyelas por Ed25519 o ECDSA P-256 y conserva DSA solo donde haya que comprobar firmas antiguas.

Estándares y referencias

Todos los términos