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

Odpravljanje težav


Naprej na


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: dne 15.12.2025 ob 21:17