====== 4.2 Testiranje algoritmov ====== Ta stran prikazuje, kako testirate Post-Quantum algoritme ML-DSA in ML-KEM. ---- ===== Izpis razpoložljivih algoritmov ===== ==== Podpisni algoritmi ==== $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 } **Klasični:** RSA-SHA256 RSA-PSS ECDSA Ed25519 Ed448 ==== KEM algoritmi ==== & $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 } ---- ===== Generiranje ML-DSA ključev ===== ==== ML-DSA-65 (priporočeno) ==== # Generiranje zasebnega ključa & $openssl genpkey -algorithm mldsa65 -out mldsa65.key # Izvleček javnega ključa & $openssl pkey -in mldsa65.key -pubout -out mldsa65.pub # Prikaz informacij o ključu & $openssl pkey -in mldsa65.key -text -noout Izpis: ML-DSA Private Key (mldsa65): priv: (4032 bytes) pub: (1952 bytes) ==== Vse ML-DSA variante ==== | Varianta | Varnost | Velikost ključa | Velikost podpisa | |----------|---------|-----------------|------------------| | 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 (manjši) & $openssl genpkey -algorithm mldsa44 -out mldsa44.key # ML-DSA-87 (večji, varnejši) & $openssl genpkey -algorithm mldsa87 -out mldsa87.key ---- ===== ML-DSA podpisovanje in preverjanje ===== ==== Ustvarjanje testne datoteke ==== "Hello Post-Quantum World!" | Out-File -Encoding ASCII test.txt ==== Podpisovanje ==== & $openssl dgst -sign mldsa65.key -out test.sig test.txt ==== Preverjanje ==== & $openssl dgst -verify mldsa65.pub -signature test.sig test.txt Pričakovani izpis: Verified OK ---- ===== ML-KEM enkapsulacija ključev ===== ==== Generiranje ML-KEM-768 ključa ==== & $openssl genpkey -algorithm mlkem768 -out mlkem768.key & $openssl pkey -in mlkem768.key -pubout -out mlkem768.pub ==== Vse ML-KEM variante ==== | Varianta | Varnost | Javni ključ | Šifriran tekst | Skupna skrivnost | |----------|---------|-------------|----------------|------------------| | 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 | ---- ===== Merjenje zmogljivosti ===== # Zmogljivost ML-DSA podpisov & $openssl speed mldsa44 mldsa65 mldsa87 Primer izpisa (variira glede na strojno opremo): 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 # Zmogljivost ML-KEM enkapsulacije & $openssl speed mlkem512 mlkem768 mlkem1024 ---- ===== Kombiniran test ===== Popoln testni potek dela: $openssl = "D:\Projects\openssl-3.6.0\bin\bin\openssl.exe" # 1. Ustvarjanje testne datoteke "Testno sporočilo za Post-Quantum kriptografijo" | Out-File -Encoding ASCII pq_test.txt # 2. ML-DSA-65 par ključev Write-Host "Generiram ML-DSA-65 ključe..." & $openssl genpkey -algorithm mldsa65 -out pq_test.key & $openssl pkey -in pq_test.key -pubout -out pq_test.pub # 3. Podpisovanje Write-Host "Podpisujem sporočilo..." & $openssl dgst -sign pq_test.key -out pq_test.sig pq_test.txt # 4. Preverjanje Write-Host "Preverjam podpis..." $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 USPEŠEN!" -ForegroundColor Green } else { Write-Host "✗ ML-DSA-65 test NI USPEL!" -ForegroundColor Red } # 5. Čiščenje Remove-Item pq_test.* -ErrorAction SilentlyContinue ---- ===== Težave? ===== | Simptom | Možen vzrok | |---------|-------------| | ''Unknown algorithm'' | OpenSSL < 3.6 ali Provider manjka | | Brez ML-DSA v seznamu | Napačna gradnja ali Provider ni naložen | | Podpis ne uspe | Poškodovana datoteka ključa | → [[wvds:sl:openssl:troubleshooting|Odpravljanje težav]] ---- ===== Naprej na ===== * [[.:fips-validieren|Validacija FIPS načina]] * [[wvds:sl:openssl:integration:start|5. Integracija]] ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//