Barvna shema: Temna
Trenutno dejavna stran: start » sl » Dokumentacija » Postkvantna kriptografija » WvdS Crypto Service – pregled » Navodila » Preverjanje testnih vektorjev

Preverjanje testnih vektorjev

l4re/crypto_test_vectors.json vsebuje celotne zahteve in odgovore binarnega protokola, bajt za bajtom, s pripadajočimi ključi. Integratorjem služijo kot referenca za lastno izvedbo. Ta navodila pokažejo, kako vektorje preračunate neodvisno od storitve in kako jih ustvarite znova.

Kaj datoteka vsebuje

SkupinaŠteviloVsebina vektorja
AES-256-GCM4ključ, zahteva 0x01, odgovor z enkratno vrednostjo, oznako in šifriranim besedilom
ML-DSA2ML-DSA-65 in ML-DSA-44: par ključev, zahteva 0x10, odgovor s podpisom
ML-KEM2ML-KEM-768 in ML-KEM-1024: par ključev, zahteva 0x20, odgovor s skrivnostjo in šifriranim besedilom

Poleg tega datoteka vsebuje tri testna potrdila RSA. Vsi ključi so testni ključi in v produkcijskem sistemu nimajo kaj iskati.

ML-DSA podpisuje hedged; isto sporočilo da ob vsakem zagonu drugačen podpis. Podpise zato preverjajte s preverjanjem, ne s primerjavo bajtov.

Neodvisen preračun

tools/verify-test-vectors.py vsak vektor preračuna z libcrypto po vaši izbiri, brez kode storitve. Če je mogoče, uporabite drugo različico OpenSSL od tiste, s katero so vektorji nastali.

python tools/verify-test-vectors.py l4re/crypto_test_vectors.json "C:\Program Files\OpenSSL\bin\libcrypto-3-x64.dll"
python3 tools/verify-test-vectors.py l4re/crypto_test_vectors.json /usr/lib/x86_64-linux-gnu/libcrypto.so.3

Skripta dešifrira vsak vektor AES, preveri vsak podpis in ga za spremenjeno sporočilo zavrne ter izvede dekapsulacijo vsakega šifriranega besedila ML-KEM. Ob uspehu se konča z 8 vectors, 0 failures in povratno vrednostjo 0. libcrypto mora poznati ML-DSA in ML-KEM, torej biti vsaj OpenSSL 3.5.

Ponovno ustvarjanje

cd l4re
cargo test --test crypto_test_vectors test_export_full_suite -- --ignored

Test na novo zapiše crypto_test_vectors.json s svežimi ključi in časom nastanka v polju created. Preden zapiše, preveri vsak podpis, izvede dekapsulacijo vsakega šifriranega besedila in velikosti primerja s konstantami velikosti storitve, ki so navedene tudi v wvds_crypto.h. Rezultat nato preverite s skripto zgoraj.

Sorodne teme

sl/wiki/pqcrypt/svc/how-to/verify-test-vectors.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille