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
  1. 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.0 a EDDSA-SigVer-1.0.
  2. Z každé stáhněte internalProjection.json.
  3. 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.

← Zpět na přehled kryptografie