Inhaltsverzeichnis
4.2 Algorithmen testen
Diese Seite zeigt, wie Sie die Post-Quantum-Algorithmen ML-DSA und ML-KEM testen.
Verfügbare Algorithmen auflisten
Signatur-Algorithmen
$openssl = "D:\Projects\openssl-3.6.0\bin\bin\openssl.exe" & $openssl list -signature-algorithms
Post-Quantum (ML-DSA):
{ 2.16.840.1.101.3.4.3.17, mldsa44 }
{ 2.16.840.1.101.3.4.3.18, mldsa65 }
{ 2.16.840.1.101.3.4.3.19, mldsa87 }
Klassisch:
RSA-SHA256 RSA-PSS ECDSA Ed25519 Ed448
KEM-Algorithmen
& $openssl list -kem-algorithms
Post-Quantum (ML-KEM):
{ 2.16.840.1.101.3.4.4.1, mlkem512 }
{ 2.16.840.1.101.3.4.4.2, mlkem768 }
{ 2.16.840.1.101.3.4.4.3, mlkem1024 }
ML-DSA Schlüssel generieren
ML-DSA-65 (empfohlen)
# Private Key generieren & $openssl genpkey -algorithm mldsa65 -out mldsa65.key # Public Key extrahieren & $openssl pkey -in mldsa65.key -pubout -out mldsa65.pub # Key-Info anzeigen & $openssl pkey -in mldsa65.key -text -noout
Ausgabe:
ML-DSA Private Key (mldsa65):
priv:
(4032 bytes)
pub:
(1952 bytes)
Alle ML-DSA Varianten
| Variante | Sicherheit | Schlüsselgröße | Signaturgröße |
| ———- | ———— | —————- | ————— |
| ML-DSA-44 | 128-bit | 2560 B | 2420 B |
| ML-DSA-65 | 192-bit | 4032 B | 3293 B |
| ML-DSA-87 | 256-bit | 4896 B | 4595 B |
# ML-DSA-44 (kleiner) & $openssl genpkey -algorithm mldsa44 -out mldsa44.key # ML-DSA-87 (größer, sicherer) & $openssl genpkey -algorithm mldsa87 -out mldsa87.key
ML-DSA Signieren und Verifizieren
Test-Datei erstellen
"Hello Post-Quantum World!" | Out-File -Encoding ASCII test.txt
Signieren
& $openssl dgst -sign mldsa65.key -out test.sig test.txt
Verifizieren
& $openssl dgst -verify mldsa65.pub -signature test.sig test.txt
Erwartete Ausgabe:
Verified OK
ML-KEM Schlüsselkapselung
ML-KEM-768 Schlüssel generieren
& $openssl genpkey -algorithm mlkem768 -out mlkem768.key & $openssl pkey -in mlkem768.key -pubout -out mlkem768.pub
Alle ML-KEM Varianten
| Variante | Sicherheit | Public Key | Ciphertext | Shared Secret |
| ———- | ———— | ———— | ———— | ————— |
| ML-KEM-512 | 128-bit | 800 B | 768 B | 32 B |
| ML-KEM-768 | 192-bit | 1184 B | 1088 B | 32 B |
| ML-KEM-1024 | 256-bit | 1568 B | 1568 B | 32 B |
Performance messen
# ML-DSA Signatur-Performance & $openssl speed mldsa44 mldsa65 mldsa87
Beispielausgabe (variiert je nach Hardware):
sign verify sign/s verify/s mldsa44 0.0005s 0.0001s 1964.7 8234.5 mldsa65 0.0008s 0.0002s 1234.5 5123.4 mldsa87 0.0012s 0.0003s 832.1 3456.7
# ML-KEM Encapsulation-Performance & $openssl speed mlkem512 mlkem768 mlkem1024
Kombinierter Test
Ein vollständiger Test-Workflow:
$openssl = "D:\Projects\openssl-3.6.0\bin\bin\openssl.exe" # 1. Test-Datei erstellen "Test-Nachricht für Post-Quantum-Kryptographie" | Out-File -Encoding ASCII pq_test.txt # 2. ML-DSA-65 Schlüsselpaar Write-Host "Generiere ML-DSA-65 Schlüssel..." & $openssl genpkey -algorithm mldsa65 -out pq_test.key & $openssl pkey -in pq_test.key -pubout -out pq_test.pub # 3. Signieren Write-Host "Signiere Nachricht..." & $openssl dgst -sign pq_test.key -out pq_test.sig pq_test.txt # 4. Verifizieren Write-Host "Verifiziere Signatur..." $result = & $openssl dgst -verify pq_test.pub -signature pq_test.sig pq_test.txt 2>&1 if ($result -match "Verified OK") { Write-Host "✓ ML-DSA-65 Test ERFOLGREICH!" -ForegroundColor Green } else { Write-Host "✗ ML-DSA-65 Test FEHLGESCHLAGEN!" -ForegroundColor Red } # 5. Aufräumen Remove-Item pq_test.* -ErrorAction SilentlyContinue
Probleme?
| Symptom | Mögliche Ursache |
| ——— | —————— |
Unknown algorithm | OpenSSL < 3.6 oder Provider fehlt |
| Keine ML-DSA in Liste | Falscher Build oder Provider nicht geladen |
| Signatur schlägt fehl | Beschädigte Schlüsseldatei |
Weiter zu
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: den 29.01.2026 um 15:14