Kryptografie
NIST-Abgleich: ML-DSA-87, SLH-DSA und Ed25519 selbst prüfen
Das US-Standardisierungsinstitut NIST veröffentlicht offizielle Testvektoren für ML-DSA (FIPS 204) und SLH-DSA (FIPS 205): Eingaben mit den Ergebnissen, die eine korrekte Implementierung liefern muss, darunter absichtlich manipulierte Signaturen. Hier rechnet Ihr Browser diese Fälle mit genau dem Modul nach, das auch unsere Bewertungen prüft.
Test starten
Die Testdateien werden direkt bei NIST auf GitHub geladen, nicht von unseren Servern. Die SLH-DSA-Prüfdatei ist rund 30 MB groß, das Laden kann etwas dauern.
Oder: Dateien selbst herunterladen und auswählen
- Bei NIST auf GitHub die Ordner
ML-DSA-keyGen-FIPS204,ML-DSA-sigVer-FIPS204,SLH-DSA-keyGen-FIPS205,SLH-DSA-sigVer-FIPS205,EDDSA-SigGen-1.0undEDDSA-SigVer-1.0öffnen. - Jeweils
internalProjection.jsonherunterladen. - Die Dateien hier auswählen (alle oder einzelne):
Was der Test zeigt und was nicht
- Schlüsselerzeugung (keyGen): Aus jedem NIST-Startwert (Seed) erzeugt unser Modul eine Signatur. Sie ist nur dann unter dem von NIST vorgegebenen öffentlichen Schlüssel gültig, wenn unser Modul exakt denselben Schlüssel berechnet hat.
- Signaturprüfung (sigVer): Unser Modul muss bei jedem Fall dasselbe Urteil fällen wie NIST, auch bei absichtlich veränderten Signaturen, Nachrichten und Kontexten.
- SLH-DSA-SHA2-256f: Aus den drei NIST-Startwerten (skSeed, skPrf, pkSeed) muss unser Modul exakt denselben privaten und öffentlichen Schlüssel erzeugen wie NIST — Byte für Byte verglichen. Bei der Signaturprüfung gilt dasselbe wie oben. Ausgewertet wird nur der Parametersatz SHA2-256f, den McGesund nutzt.
- Ed25519: Hier wird nicht unser eigener Code getestet, sondern die im Browser eingebaute Kryptografie und unsere Ersatz-Bibliothek noble, die Bewertungen in Browsern ohne Ed25519 prüft. Getestet wird reines Ed25519 ohne Vorab-Hash und Kontext, so wie wir signieren. NIST liefert dafür nur wenige manipulierte Fälle; die übrigen sind gültige Signaturen, die akzeptiert werden müssen.
- Nicht abgedeckt: Schlüsselverwaltung, Server und die Abläufe um die Signatur herum. Der Test belegt, dass die Mathematik dem Standard entspricht, nicht mehr.
- FN-DSA (Falcon): Der Standard FIPS 206 ist noch nicht final, deshalb gibt es von NIST noch keine offiziellen Testvektoren. Sobald sie erscheinen, ergänzen wir sie hier.