Kryptografie
Ověření NIST: zkontrolujte ML-DSA-87, SLH-DSA a Ed25519 sami
Americký normalizační institut NIST zveřejňuje oficiální testovací vektory pro ML-DSA (FIPS 204) a SLH-DSA (FIPS 205): vstupy s výsledky, které musí správná implementace vrátit, včetně úmyslně zmanipulovaných podpisů. Zde váš prohlížeč přepočítá tyto případy přesně tím modulem, který ověřuje i naše hodnocení.
Spustit test
Testovací soubory se načítají přímo z NIST na GitHubu, ne z našich serverů. Testovací soubor SLH-DSA má asi 30 MB, načítání proto může chvíli trvat.
Nebo: stáhněte si soubory sami a vyberte je
- Na GitHubu NIST otevřete složky
ML-DSA-keyGen-FIPS204,ML-DSA-sigVer-FIPS204,SLH-DSA-keyGen-FIPS205,SLH-DSA-sigVer-FIPS205,EDDSA-SigGen-1.0aEDDSA-SigVer-1.0. - Z každé stáhněte
internalProjection.json. - Zde vyberte soubory (všechny nebo jednotlivé):
Co test ukazuje a co ne
- Generování klíčů (keyGen): z každé počáteční hodnoty NIST (seed) vytvoří náš modul podpis. Ten je platný pod veřejným klíčem určeným NIST jen tehdy, když náš modul vypočítal přesně stejný klíč.
- Ověření podpisu (sigVer): náš modul musí v každém případě dojít ke stejnému verdiktu jako NIST, i u úmyslně změněných podpisů, zpráv a kontextů.
- SLH-DSA-SHA2-256f: Ze tří počátečních hodnot NIST (skSeed, skPrf, pkSeed) musí náš modul vytvořit přesně stejný soukromý a veřejný klíč jako NIST — porovnáno bajt po bajtu. Pro ověření podpisu platí totéž co výše. Vyhodnocuje se pouze sada parametrů SHA2-256f, kterou McGesund používá.
- Ed25519: zde se netestuje náš vlastní kód, ale kryptografie vestavěná v prohlížeči a naše záložní knihovna noble, která ověřuje hodnocení v prohlížečích bez Ed25519. Testuje se čisté Ed25519 bez předhashování a kontextu, tak jak podepisujeme. NIST k tomu poskytuje jen několik zmanipulovaných případů; ostatní jsou platné podpisy, které musí být přijaty.
- Nepokryto: správa klíčů, servery a procesy kolem podpisu. Test dokládá, že matematika odpovídá standardu, nic víc.
- FN-DSA (Falcon): standard FIPS 206 ještě není konečný, proto NIST zatím nezveřejnil oficiální testovací vektory. Jakmile vyjdou, doplníme je sem.