Aller au contenu
ecdsa.com

DSA (algorithme de signature numérique)

L’algorithme de signature fondé sur le logarithme discret dans un corps fini, défini par FIPS 186 (1994), retiré par FIPS 186-5 en 2023 pour les nouvelles signatures et conservé uniquement pour vérifier les signatures existantes.
Autres graphiesDigital Signature Algorithmssh-dssDSS

Les paramètres de domaine sont un nombre premier p (de 1024 à 3072 bits), un nombre premier q qui divise p − 1 (160, 224 ou 256 bits) et un générateur g du sous-groupe d’ordre q. Une signature est formée de r = (gᵏ mod p) mod q et de s = k⁻¹·(z + x·r) mod q, la même structure qu’ECDSA, son analogue sur courbe elliptique, avec lequel DSA partage le même mode de défaillance : un k répété ou prévisible révèle la clé privée x. La RFC 6979 couvre DSA aussi bien qu’ECDSA.

FIPS 186-5 indique que DSA « n’est plus spécifié dans cette norme et ne peut être utilisé que pour vérifier des signatures numériques générées antérieurement ». OpenSSH a désactivé les clés ssh-dss par défaut en 2015 et a entièrement supprimé la prise en charge de DSA dans OpenSSH 10.0 (avril 2025) ; GnuPG lit toujours les anciennes clés DSA/ElGamal, et de nombreuses bibliothèques conservent la vérification DSA pour les archives.

Les signatures sont encodées comme celles d’ECDSA : une SEQUENCE DER des deux entiers en X.509 et en CMS (par exemple dsa-with-SHA256, 2.16.840.1.101.3.4.3.2), ou deux entiers de longueur fixe ailleurs. Si vous trouvez encore des clés DSA, remplacez-les par des clés Ed25519 ou ECDSA P-256 et ne gardez DSA que là où d’anciennes signatures doivent être vérifiées.

Normes et références

Tous les termes