====== 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//