Podpisová schéma

ML-DSA-87 vysvetlený matematicky

Ako ML-DSA-87 (FIPS 204) podpisuje hodnotenie McGesund — od Module-LWE cez rejection sampling až po overenie v prehliadači.

Stav: 2026-09-07

1. O čo tu ide

Keď niekto na McGesund odovzdá hodnotenie, deje sa na pozadí viac, než by text naznačoval. Hodnotenie sa pri odoslaní digitálne podpíše. Tento podpis si môže každý návštevník neskôr prepočítať vo vlastnom prehliadači — bez toho, aby nám dôveroval, a bez toho, aby sa nás pýtal.

Pre zákazníkov od tarifu Pro sa to okrem iného deje pomocou ML-DSA-87. Tento článok vysvetľuje, čo sa pritom matematicky deje.

Dôležité na úvod:

ML-DSA nie je šifrovanie. Text hodnotenia zostáva verejne čitateľný — to je predsa zmyslom hodnotenia. ML-DSA nedokazuje utajenie, ale pôvod a neporušenosť.

ML-DSA vzniklo z CRYSTALS-Dilithium a je štandardizované ako FIPS 204. Číslo 87 označuje parametrický stupeň. Sú tri:

  • ML-DSA-44
  • ML-DSA-65
  • ML-DSA-87

ML-DSA-87 je najvyšší a leží v bezpečnostnej kategórii NIST 5.


2. Čo presne sa podpisuje?

Do podpisu neputuje samotný text hodnotenia, ale kompaktný dátový objekt, ktorý text jednoznačne pribíja. Na McGesund vyzerá v jadre takto:

{
  "v":   1,
  "typ": "rev-comment",
  "f":   "<ID firmy>",
  "c":   "<ID hodnotenia>",
  "h":   "<SHA-256 textu hodnotenia>",
  "rh":  "<SHA-256 celého odovzdaného záznamu>",
  "rv":  1,
  "qh":  "<SHA-256 QR obálky, len pri QR hodnoteniach>",
  "iat": 1757203200
}

Tento objekt je naša správa mm. Zväzuje dokopy šesť výpovedí:

  1. Ku ktorému podniku hodnotenie patrí (f)
  2. Ktoré hodnotenie je myslené (c)
  3. Aký text za ním stál — ako hašovú hodnotu (h)
  4. Aký záznam bol odovzdaný ako celok (rh): text, srdcia, geo-status a údaje o príležitosti, kanonicky serializované a zahašované — vo verzii schémy rv
  5. Z ktorého QR kódu hodnotenie pochádza (qh); bez QR toto pole odpadá
  6. Kedy sa podpisovalo (iat)

Ak niekto neskôr zmení v texte hodnotenia jediný znak, h už nesedí — a rh takisto nie. Kto namiesto toho pohne len srdcami, nechá h nedotknuté, ale zlomí rh. Ak niekto zmení jednu z týchto hašových hodnôt, podpis už nesedí. Práve táto reťaz je pointou.


3. Čo má podpis dokázať

Návštevník, ktorý hodnotenie číta, má vedieť sám overiť tri veci:

  1. Hodnotenie bolo skutočne vydané McGesundom.
  2. Text sa od odoslania nezmenil.
  3. Nikto nedokáže vymyslieť nové, platne vyzerajúce hodnotenie.

Na to slúži pár kľúčov:

  • súkromný kľúč — leží výlučne v podpisovej službe
  • verejný kľúč — môže ho mať každý, adresuje sa cez ID kľúča (kid) v obálke

Podpisuje sa súkromným kľúčom. Overuje sa verejným — a to v prehliadači čitateľa, nie na našom serveri.


4. Prečo vôbec postkvantová schéma?

Mnohé dnes bežné podpisové schémy stoja na faktorizácii veľkých čísel alebo na diskrétnych logaritmoch. Dostatočne výkonný kvantový počítač by práve tieto problémy dokázal so známymi algoritmami vyriešiť podstatne rýchlejšie.

Pri hodnotení to nie je akademická otázka. Hodnotenie má byť overiteľné aj o desať rokov. Kto podpisuje dnes, podpisuje na celú životnosť záznamu.

ML-DSA preto používa iný základ:

Mriezˇkoveˊ probleˊmy\boxed{\text{Mriežkové problémy}}

Presnejšie: Module-LWE a Module-SIS.


5. Čo je mriežka?

Najprv len body v priestore. Vezmime dva vektory:

b1=(2,0),b2=(1,2).b_1=(2,0), \qquad b_2=(1,2).

Všetky celočíselné kombinácie

ab1+bb2,a,bZa\,b_1+b\,b_2, \qquad a,b\in\mathbb{Z}

tvoria mriežku. Napríklad:

2b1+b2=(4,0)+(1,2)=(5,2).2b_1+b_2 = (4,0)+(1,2) = (5,2).
b₁ = (2,0)b₂ = (1,2)(5,2)0
Dva vektory, všetky celočíselné kombinácie z nich: mriežka. Vyznačený bod vzniká z dvojnásobku b₁ a jedného b₂.

Rozhodujúce je:

V malých dimenziách sú mriežkové problémy ľahké. Vo veľmi vysokých dimenziách sa určité úlohy stávajú mimoriadne ťažkými.


6. Polynómy namiesto jednotlivých čísel

ML-DSA nepočíta s 2D vektormi, ale s polynómami a vektormi polynómov.

Polynóm ako

a(x)=1+2x+x3a(x)=1+2x+x^3

sa dá zapísať ako zoznam koeficientov:

a=(1,2,0,1).a=(1,2,0,1).

Počíta sa v okruhu:

Rq=Zq[x]/(xn+1).R_q=\mathbb{Z}_q[x]/(x^n+1).

To znamená dvoje:

  • Zq\mathbb{Z}_q: počítanie modulo qq
  • xn=1x^n=-1: dodatočné pravidlo, ktoré fixuje dĺžku polynómov

Pre všetky tri stupne ML-DSA platí:

n=256,q=8380417.n=256, \qquad q=8380417.

Polynóm má teda 256 koeficientov, uvažovaných modulo 8 380 417. Medzi stupňami sa nemení nn ani qq, ale veľkosť matíc — o tom neskôr viac.

Mimochodom: násobenie polynómov v tomto okruhu beží v praxi cez NTT, teoreticko-číselný variant rýchlej Fourierovej transformácie. ML-DSA sa teda zďaleka nezaobíde bez myšlienok FFT; sú len ukryté v aritmetike namiesto v princípe podpisu.


7. Ústredný trik: Module-LWE

Jadrom myšlienky je Module Learning With Errors:

t=As1+s2(modq).\mathbf{t}=\mathbf{A}\mathbf{s}_1+\mathbf{s}_2 \pmod q.

Pritom sú:

  • A\mathbf{A} — verejná, zdanlivo náhodná matica z polynómov
  • s1,s2\mathbf{s}_1,\mathbf{s}_2 — malé tajné vektory
  • t\mathbf{t} — verejná hodnota

Útočník pozná A\mathbf{A} a t\mathbf{t}, ale nie s1,s2\mathbf{s}_1,\mathbf{s}_2. Rovnica preň vyzerá ako náhodná rovnica so šumom. Malé tajomstvá z nej nemá dokázať efektívne spätne vypočítať.


8. Maličký číselný príklad

Berieme zámerne smiešne malý variant — obyčajné čísla namiesto polynómov, dimenziu 2 namiesto 256, a

q=17.q=17.

Nech je

A=(3572),s1=(11),s2=(10).A=\begin{pmatrix}3&5\\7&2\end{pmatrix}, \qquad \mathbf{s}_1=\begin{pmatrix}1\\-1\end{pmatrix}, \qquad \mathbf{s}_2=\begin{pmatrix}1\\0\end{pmatrix}.

Potom:

As1=(3572)=(25),A\mathbf{s}_1=\begin{pmatrix}3-5\\7-2\end{pmatrix}=\begin{pmatrix}-2\\5\end{pmatrix},
t=As1+s2=(25)+(10)=(15)    (165)(mod17).\mathbf{t}=A\mathbf{s}_1+\mathbf{s}_2=\begin{pmatrix}-2\\5\end{pmatrix}+\begin{pmatrix}1\\0\end{pmatrix}=\begin{pmatrix}-1\\5\end{pmatrix} \;\equiv\; \boxed{\begin{pmatrix}16\\5\end{pmatrix}} \pmod{17}.

V tomto miniformáte by sa dali vyskúšať všetky možnosti. Pri ML-DSA-87 je A\mathbf{A} matica 8×78\times 7 z polynómov po 256 koeficientoch — to je vyše 14 000 neznámych v mriežkovej štruktúre.


9. Pár kľúčov podpisovej služby

Súkromný kľúč obsahuje okrem iného malé vektory s1,s2\mathbf{s}_1,\mathbf{s}_2. Pri ML-DSA-87 pochádzajú ich koeficienty z intervalu

[η,η]kdeη=2,[-\eta,\eta] \quad\text{kde}\quad \eta=2,

teda z množiny {2,1,0,1,2}\{-2,-1,0,1,2\}. Táto malosť nie je detail, ale jadro veci: len preto, že sú tajomstvá malé, vzniká vôbec ťažký mriežkový problém.

Verejný kľúč je zjednodušene

(ρ,t1).(\rho,\mathbf{t}_1).

ρ\rho je seed, z ktorého sa dá A\mathbf{A} deterministicky zrekonštruovať — matica sa teda nemusí prenášať. t1\mathbf{t}_1horné bity hodnoty t\mathbf{t}; spodných d=13d=13 bitov odpadá, čo kľúč výrazne zmenší. Toto vynechanie je neskôr dôvodom pre takzvané hinty.

Tým vzniká žiadaná asymetria:

verejne overitˇ    tajne podpıˊsatˇ\boxed{\text{verejne overiť}\;\neq\;\text{tajne podpísať}}

10. Z hodnotenia sa stáva číslo

Podpisová služba najprv zahašuje objekt payloadu z časti 2:

μ=H(m).\mu=H(m).

V našom hračkárskom príklade berieme umelý mini-haš. V skutočnom systéme je μ\mu dlhé 512 bitov a viaže navyše aj verejný kľúč — vďaka tomu sa podpis nedá preložiť na iný kľúč.


11. Commitment

Podpisová služba ťahá náhodný malý vektor y\mathbf{y}. V našom príklade:

y=(21).\mathbf{y}=\begin{pmatrix}2\\-1\end{pmatrix}.

Z toho vzniká medzihodnota, commitment:

w=Ay=(32+5(1)72+2(1))=(112).\mathbf{w}=A\mathbf{y} =\begin{pmatrix}3\cdot2+5\cdot(-1)\\7\cdot2+2\cdot(-1)\end{pmatrix} =\begin{pmatrix}1\\12\end{pmatrix}.

To ešte nie je podpis.


12. Z hodnotenia sa stáva výzva

Správa a commitment sa zahašujú spoločne:

c=H(μ,w).c=H(\mu,\mathbf{w}).

Pri ML-DSA-87 je cc polynóm s presne τ=60\tau=60 koeficientmi z množiny {1,+1}\{-1,+1\}, všetkých ostatných 196 je nulových. Táto štruktúra je zámerná: udržiava cs1c\cdot\mathbf{s}_1 malé.

V našom hračkárskom príklade jednoducho položíme

c=2.c=2.

13. Samotný podpis

z=y+cs1.\mathbf{z}=\mathbf{y}+c\,\mathbf{s}_1.

S našimi hodnotami:

cs1=2(11)=(22),c\,\mathbf{s}_1=2\begin{pmatrix}1\\-1\end{pmatrix}=\begin{pmatrix}2\\-2\end{pmatrix},
z=(21)+(22)=(43)\mathbf{z}=\begin{pmatrix}2\\-1\end{pmatrix}+\begin{pmatrix}2\\-2\end{pmatrix} =\boxed{\begin{pmatrix}4\\-3\end{pmatrix}}

14. Krok, ktorý sa ľahko prehliadne: rejection sampling

Tu leží miesto, v ktorom sa ML-DSA líši od naivnej konštrukcie — a nie je voliteľné.

z=y+cs1\mathbf{z}=\mathbf{y}+c\,\mathbf{s}_1 obsahuje tajomstvo s1\mathbf{s}_1. Keby sa z\mathbf{z} jednoducho vždy vydalo, dalo by sa s1\mathbf{s}_1 z dostatočného množstva podpisov štatisticky vypočítať. Pri hodnotiacom portáli s veľmi mnohými podpismi denne to nie je teoretické riziko.

Preto podpisová služba pred vydaním overí, či z\mathbf{z} neprezrádza priveľa, a v opačnom prípade podpis zahodí — potom sa začne odznova s novým náhodným y\mathbf{y}. Nazýva sa to Fiat-Shamir with Aborts.

Podmienka znie v podstate:

z<γ1β.\|\mathbf{z}\|_\infty < \gamma_1-\beta.
commitment w = Ayvýzva c = H(μ, w)odpoveď z = y + c · s₁‖z‖∞ < γ₁ − β ?ánopodpis sa vydánie — nové y
Tri kroky a jedna slučka. Ak z vyjde priveľké, nič sa nedolaďuje — celý priebeh sa zahodí a začne sa nanovo s čerstvým náhodným y. Preto je podpisovanie tu slučkovým postupom.

Pre ML-DSA-87 platí γ1=219\gamma_1=2^{19} a β=τη=602=120\beta=\tau\cdot\eta=60\cdot2=120. K tomu pristupuje druhá hranica na spodných bitoch. V praxi je viacero priebehov normou — podpisovanie je teda slučkový postup, nie jednorazový krok.

Pre verifikáciu je dôležité: práve túto hranicu overuje neskôr aj prehliadač. Podpis s priveľkými koeficientmi sa odmietne, aj keď rovnica vychádza.


15. Prečo to prehliadač dokáže overiť

Prehliadač čitateľa pozná:

  • hodnotenie a tým mm
  • verejný kľúč (ρ,t1)(\rho,\mathbf{t}_1)
  • podpis (c~,z,h)(\tilde c,\mathbf{z},\mathbf{h})

s1\mathbf{s}_1 nepozná. Súvislosť, ktorá ho napriek tomu posunie ďalej:

z=y+cs1Az=Ay+cAs1.\mathbf{z}=\mathbf{y}+c\,\mathbf{s}_1 \quad\Longrightarrow\quad A\mathbf{z}=A\mathbf{y}+c\,A\mathbf{s}_1.

A pretože platí

t=As1+s2\mathbf{t}=A\mathbf{s}_1+\mathbf{s}_2

dá sa neznáme As1A\mathbf{s}_1 nahradiť verejnou hodnotou:

Azct=Aycs2.A\mathbf{z}-c\,\mathbf{t}=A\mathbf{y}-c\,\mathbf{s}_2.

To je ústredná rovnica — a hovorí niečo dôležité: prehliadač rekonštruuje AyA\mathbf{y} nie presne, ale len s presnosťou na malý člen cs2c\,\mathbf{s}_2.


16. Miniatúrny príklad do konca

Mali sme:

A=(3572),t=(15),c=2,z=(43).A=\begin{pmatrix}3&5\\7&2\end{pmatrix},\quad \mathbf{t}=\begin{pmatrix}-1\\5\end{pmatrix},\quad c=2,\quad \mathbf{z}=\begin{pmatrix}4\\-3\end{pmatrix}.

Prepočítajme si to:

Az=(1215286)=(322),ct=2(15)=(210),A\mathbf{z}=\begin{pmatrix}12-15\\28-6\end{pmatrix}=\begin{pmatrix}-3\\22\end{pmatrix}, \qquad c\,\mathbf{t}=2\begin{pmatrix}-1\\5\end{pmatrix}=\begin{pmatrix}-2\\10\end{pmatrix},
Azct=(112).A\mathbf{z}-c\,\mathbf{t}=\begin{pmatrix}-1\\12\end{pmatrix}.

Pôvodný commitment bol

w=(112).\mathbf{w}=\begin{pmatrix}1\\12\end{pmatrix}.

Rozdiel je

(112)(112)=(20)=cs2.\begin{pmatrix}-1\\12\end{pmatrix}-\begin{pmatrix}1\\12\end{pmatrix} =\begin{pmatrix}-2\\0\end{pmatrix} =-c\,\mathbf{s}_2.

Teda presne predpovedaný malý chybový člen. Verifikátor nedostane w\mathbf{w}, ale niečo, čo leží blízko pri w\mathbf{w}.

Práve preto ML-DSA neporovnáva samotné hodnoty, ale ich horné bity. A práve preto obsahuje podpis navyše vektor hintov h\mathbf{h}: kompaktne oznamuje, na ktorých miestach zaokrúhlenie kvôli malému chybovému členu preklopilo cez hranicu. Pri ML-DSA-87 je povolených najviac ω=75\omega=75 takýchto pokynov. Tajomstvo neprezrádzajú — len opravujú zaokrúhlenie.

Na záver prehliadač nanovo vypočíta výzvu. Ak sa zhoduje,

cnoveˊ=c,c_{\text{nové}}=c,

a všetky normy ležia v hraniciach, podpis je platný.


17. Čo sa stane, keď niekto hodnotenie zmení?

Predpokladajme, že niekto s prístupom do databázy — aj niekto u nás — zmení text hodnotenia alebo jedno zo sŕdc. Potom sa zmení aspoň jedna z dvoch hašových hodnôt v payloade (h pri texte, rh pri ktoromkoľvek poli záznamu):

H(m)H(m).H(m)\neq H(m').

Tým sa zmení výzva:

cc.c\neq c'.

Existujúci podpis však bol vytvorený pre starú výzvu. Prehliadač si to prepočíta a zistí:

cnoveˊcpodpisPodpis je neplatnyˊc_{\text{nové}}\neq c_{\text{podpis}} \quad\Longrightarrow\quad \boxed{\text{Podpis je neplatný}}

Rozhodujúca veta k tomu: hodnotenie môžeme zmazať, ale nemôžeme ho nepozorovane zmeniť. Na McGesund beží to isté overenie navyše každú noc serverovo nad celým fondom — hodnotenie, ktoré týmto overením neprejde, už nevstupuje do priemeru podniku.


18. Prečo nikto nedokáže podpis vymyslieť?

Útočník pozná A\mathbf{A} a t\mathbf{t}, ale nie s1,s2\mathbf{s}_1,\mathbf{s}_2. Aby postavil platný podpis, musel by nájsť trojicu (c~,z,h)(\tilde c,\mathbf{z},\mathbf{h}), ktorá

  • spĺňa verifikačnú rovnicu a
  • dodržiava hranice noriem a
  • zodpovedá výzve, ktorá z týchto hodnôt samotných vyplýva.

To v jadre vedie na ťažký mriežkový problém — konkrétne na Module-SIS: nájsť krátke riešenia homogénnej rovnice modulo qq. Podmienka malosti pritom nie je ozdoba, ale samotná miera obtiažnosti. Bez nej by bolo riešenie triviálne.

verejneˊ uˊdaje    tˇazˇkyˊ mriezˇkovyˊ probleˊm\boxed{\text{verejné údaje}\;\rightarrow\;\text{ťažký mriežkový problém}}

19. Prečo „Module"?

Toto slovo opisuje štruktúru medzi jednoduchými vektormi a všeobecnými mriežkami. Namiesto počítania s jednotlivými číslami pracuje ML-DSA s vektormi polynómov:

a=(a1(x),a2(x),,ak(x)),\mathbf{a}=(a_1(x),a_2(x),\ldots,a_k(x)),

a s maticami z nich:

A=(a1,1(x)a1,2(x)a2,1(x)a2,2(x)).\mathbf{A}= \begin{pmatrix} a_{1,1}(x)&a_{1,2}(x)&\cdots\\ a_{2,1}(x)&a_{2,2}(x)&\cdots\\ \vdots&\vdots&\ddots \end{pmatrix}.

Výhoda: získa sa vysoká dimenzia mriežky, ale zachová sa kompaktná, efektívne počítateľná reprezentácia. Bezpečnosť sa dá jemne dolaďovať cez veľkosť matice bez toho, aby sa menil okruh.


20. Prečo práve 87?

Tri stupne sa nelíšia v okruhu, ale v dimenziách:

ParameterML-DSA-44ML-DSA-65ML-DSA-87
Veľkosť matice (k,)(k,\ell)4×44\times46×56\times58×78\times7
Rozsah tajomstva η\eta242
Váha výzvy τ\tau394960
Verejný kľúč1 312 B1 952 B2 592 B
Podpis2 420 B3 309 B4 627 B
Kategória NIST235

Pozoruhodné: ML-DSA-87 nie je jednoducho „ML-DSA-65, len väčšie". Rozsah tajomstva η\eta ide zo 4 opäť späť na 2; bezpečnosť tu vyplýva z väčšej matice, nie z väčších koeficientov. Ide o samostatnú, štandardizovanú voľbu parametrov.

va¨cˇsˇia matematickaˊ sˇtruktuˊravysˇsˇia bezpecˇnostnaˊ rezerva\boxed{\text{väčšia matematická štruktúra}\rightarrow\text{vyššia bezpečnostná rezerva}}

Cena: 4 627 bajtov na podpis — na každú pečiatku, ktorá sa uloží a pri overovaní doručí prehliadaču. Preto stojí na McGesund vedľa ML-DSA-87 na výber aj FALCON, ktorý si vystačí s 1 280 bajtmi.


21. Fiat-Shamir: prečo to funguje bez protistrany

Interaktívny dôkaz by prebiehal takto:

  1. Podpisová služba pošle commitment.
  2. Overovateľ pošle náhodnú výzvu.
  3. Podpisová služba odpovie.
  4. Overovateľ si to prepočíta.

Pri hodnotení tento dialóg neexistuje — čitateľ prichádza o mesiace neskôr. Riešením je Fiat-Shamirova transformácia: výzva sa nehádže kockou, ale hašuje sa zo samotných údajov:

c=H(verejnyˊ klˇuˊcˇ,  spraˊva,  commitment).c=H(\text{verejný kľúč},\;\text{správa},\;\text{commitment}).

Tým sa z dialógu stáva dokument. Podpisová služba si výzvu nemôže vybrať, pretože by na to musela ovládať haš.


22. Celý priebeh

PODPISOVÁ SLUŽBA (MCGESUND)PREHLIADAČ NÁVŠTEVNÍKAsúkromný kľúč s₁, s₂payload m = {firma, hodnotenie, h, rh, iat}haš μnáhodný vektor ycommitment w = Ayvýzva c = H(μ, w)z = y + c · s₁podpis (c, z, hinty) + kidhodnotenie + podpis + ver. kľúčAz − c·t → horné bity + hintyprepočítať výzvuprepočítaná výzva = doručená?platnýneplatnýzahodiť, ak je z priveľké(rejection sampling)
Celá cesta hodnotenia. Prerušovaný spätný skok je rejection sampling — berie sa tak často, kým nie je z dosť malé na to, aby o tajnom kľúči nič neprezradilo.

23. Čo s tým McGesund konkrétne robí

Do seba zapadajú tri roviny:

Obálka. Každé podpísané hodnotenie nesie podpis Ed25519. To je povinný variant — klasický, drobný, natívne overiteľný v každom prehliadači.

Postkvantové pečiatky. Navyše sa dajú priložiť jeden alebo dva kvantovo odolné podpisy. Ktoré, závisí od tarifu:

Tarifdostupné stupne podpisu
BasisEd25519, FN-DSA-512
KlassikEd25519, FN-DSA-512, FN-DSA-1024
ProEd25519, FN-DSA-1024, ML-DSA-87
PremiumEd25519, FN-DSA-1024, ML-DSA-87, oba súbežne

Súbežný variant je zámerne redundantný. Ak by sa jedna z dvoch matematických rodín — NTRU mriežky pri FALCONe, modulové mriežky pri ML-DSA — ukázala slabšia, než sa dnes predpokladá, druhá nesie ďalej.

Časová kotva. Odtlačok podpisového kľúča sa cez OpenTimestamps ukotví v bloku Bitcoinu. Tým sa dá doložiť nielen to, že podpis je pravý, ale aj to, že v určitom okamihu už existoval — bez toho, aby musel niekto veriť našej časovej pečiatke.

Overuje sa to všetko v prehliadači čitateľa, cez modul WASM. My dodávame údaje; prepočítava sa na zariadení návštevníka. Keby sme zajtra zmizli zo siete, raz stiahnuté hodnotenie zostane overiteľné.


24. ML-DSA a FALCON vedľa seba

VlastnosťFALCON (FN-DSA)ML-DSA
Typdigitálny podpisdigitálny podpis
Rodina mriežokNTRUModule-LWE / Module-SIS
OkruhZq[x]/(xn+1)\mathbb{Z}_q[x]/(x^n+1), q=12289q=12289Zq[x]/(x256+1)\mathbb{Z}_q[x]/(x^{256}+1), q=8380417q=8380417
Kľúčový mechanizmuskrátky vektor cez Gaussovo vzorkovanievýzva a odpoveď s prerušeniami
FFT / NTTFFT s pohyblivou rádovou čiarkou, kritická pre bezpečnosťNTT, len aritmetika
Veľkosť podpisu (najvyšší stupeň)1 280 B4 627 B
Implementácianáročná (pohyblivá rádová čiarka)pomerne priamočiara
Štandardizáciaplánovaná ako FIPS 206 (FN-DSA), zatiaľ neuzavretáFIPS 204, uzavretá

Stručne povedané: ML-DSA sa ľahšie správne implementuje a overuje, FALCON dodáva podstatne kompaktnejšie podpisy. V QR kóde nie je ani jeden z nich — tam stojí samotná obálka Ed25519. Veľkosť podpisu preto zaváži pri ukladaní a doručovaní, robustnosť pri implementácii. Preto ponúkame oboje.


25. Jedna veta na záver

ML-DSA vytvaˊra z kraˊtkeho tajneˊho vektora odpovedˇ na vyˊzvu,ktoraˊ bola zahasˇovanaˊ priamo z hodnotenia — overitelˇnuˊpre kazˇdeˊho, kto maˊ verejnyˊ klˇuˊcˇ.\boxed{ \begin{array}{c} \text{ML-DSA vytvára z krátkeho tajného vektora odpoveď na výzvu,}\\ \text{ktorá bola zahašovaná priamo z hodnotenia — overiteľnú}\\ \text{pre každého, kto má verejný kľúč.} \end{array}}

Kto vlastní tajný vektor, podpisuje za milisekundy. Kto ho nevlastní, musel by vyriešiť mriežkový problém vo vyše 14 000 dimenziách — aj s kvantovým počítačom.

Pre čitateľa hodnotenia to znamená jednoducho: nemusí nám veriť. Môže si to prepočítať.