Zum Inhalt springen
ecdsa.com

DSA (Digitaler Signaturalgorithmus)

Der Signaturalgorithmus aus FIPS 186 (1994), der auf dem diskreten Logarithmus in endlichen Körpern beruht; FIPS 186-5 hat ihn 2023 für neue Signaturen zurückgezogen und nur noch zum Prüfen bestehender Signaturen beibehalten.
Auch geschrieben alsDigital Signature Algorithmssh-dssDSS

Die Domainparameter sind eine Primzahl p (1024–3072 Bit), eine Primzahl q, die p − 1 teilt (160, 224 oder 256 Bit), und ein Generator g der Untergruppe der Ordnung q. Eine Signatur besteht aus r = (gᵏ mod p) mod q und s = k⁻¹·(z + x·r) mod q – dieselbe Struktur wie bei ECDSA, dem Gegenstück auf elliptischen Kurven –, und DSA hat dieselbe Schwachstelle: Ein wiederholtes oder vorhersagbares k verrät den privaten Schlüssel x. RFC 6979 deckt DSA ebenso ab wie ECDSA.

FIPS 186-5 hält fest, dass DSA „in diesem Standard nicht mehr spezifiziert ist und nur noch zum Prüfen zuvor erzeugter digitaler Signaturen verwendet werden darf“. OpenSSH hat Schlüssel vom Typ ssh-dss 2015 standardmäßig deaktiviert und die DSA-Unterstützung mit OpenSSH 10.0 (April 2025) vollständig entfernt; GnuPG liest alte DSA/ElGamal-Schlüssel weiterhin, und viele Bibliotheken behalten die DSA-Prüfung für Archive bei.

Signaturen werden wie bei ECDSA kodiert: in X.509 und CMS als DER-kodierte SEQUENCE der beiden Ganzzahlen (zum Beispiel dsa-with-SHA256, 2.16.840.1.101.3.4.3.2), anderswo als zwei Ganzzahlen fester Länge. Wenn du noch DSA-Schlüssel findest, ersetze sie durch Ed25519 oder ECDSA P-256 und behalte DSA nur dort, wo alte Signaturen geprüft werden müssen.

Standards und Quellen

Alle Begriffe