Podpisová schéma
FALCON vysvetlený matematicky
Ako sa hodnotenie McGesund podpisuje pomocou FN-DSA (FALCON) — a prečo jeden zmenený znak podpis zlomí.
Stav: 2026-09-07
1. O čo tu ide
Hodnotenie na McGesund nie je textové pole v databáze, ktorému treba veriť. Pri odoslaní sa digitálne podpíše a každý návštevník si tento podpis môže neskôr prepočítať vo vlastnom prehliadači.
Na časť týchto podpisov používame FALCON — presnejšie FN-DSA-512 a FN-DSA-1024. Tento článok vysvetľuje, čo sa pritom matematicky deje.
Dôležité na úvod:
FALCON nie je šifrovanie. Text hodnotenia sa predsa má čítať. FALCON nedokazuje utajenie, ale pôvod a neporušenosť.
2. Čo presne sa podpisuje
Nepodpisuje sa súvislý text, ale kompaktný dátový objekt, ktorý text jednoznačne pribíja:
{
"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
}
To je naša správa . Zväzuje dokopy:
- ku ktorému podniku hodnotenie patrí (
f), - o ktoré hodnotenie ide (
c), - aký text za ním stál — ako hašovú hodnotu (
h), - 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émyrv, - z ktorého QR kódu hodnotenie pochádza (
qh) — pri hodnotení bez QR toto pole odpadá, - kedy sa podpisovalo (
iat).
Jeden zmenený znak v texte hodnotenia túto reťaz zlomí. Presne to je zmyslom — a od zavedenia rh to isté platí pre dodatočne posunuté srdce alebo zmenený geo-status.
3. Základný problém
Čitateľ, ktorý príde na profil podniku, stojí pred dvoma otázkami:
- Pochádza toto hodnotenie naozaj zo systému McGesund?
- Bolo dodatočne zmenené?
Na to slúži pár kľúčov:
- súkromný kľúč — zostáva v podpisovej službe
- verejný kľúč — môže ho mať každý
Podpisuje sa súkromným, overuje verejným kľúčom. A to na zariadení čitateľa, nie na našom serveri.
4. Prečo FALCON?
Mnohé dnešné podpisové schémy stoja na problémoch, ktoré sú pre klasické počítače ťažké, pre dostatočne veľké kvantové počítače by sa však mohli stať výrazne ľahšími.
Pri hodnotení je to relevantnejšie než pri prchavej správe: hodnotenie má byť overiteľné aj o päť alebo desať rokov. Kto podpisuje dnes, podpisuje na celú životnosť záznamu.
FALCON preto stojí na mriežkovej kryptografii:
Postaví sa matematicky jednoducho opísateľná mriežka, v ktorej je určitá vyhľadávacia úloha mimoriadne ťažká.
5. Čo je matematická mriežka?
Dva vektory:
Všetky celočíselné kombinácie
dávajú mriežku bodov. Napríklad:
Rozhodujúce je:
Samotná mriežka sa opisuje ľahko. Nájsť v nej určité vlastnosti je veľmi ťažké.
6. Tajomstvom sú krátke vektory
Klasická ťažká úloha znie:
To je Shortest Vector Problem. V dvoch rozmeroch sa dá vyskúšať všetko. FALCON pracuje v dimenzii 512 alebo 1024 — tam je to beznádejné.
FALCON však nepotrebuje najkratší vektor ako taký, ale niečo príbuzné: k zadanému cieľovému bodu nájsť blízky bod mriežky. Aj to je bez správnej dodatočnej informácie ťažké.
7. Polynómy namiesto čísel
FALCON používa NTRU mriežku a počíta s polynómami. Teda namiesto jednotlivých čísel so zoznamami koeficientov:
Počíta sa v okruhu
To znamená:
- : počítanie modulo . Pri napríklad , lebo .
- : udržiava polynómy na pevnej dĺžke.
FALCON konkrétne používa:
8. Ústredný trik
Súkromný kľúč pozostáva zo štyroch malých polynómov
s NTRU rovnicou
Tieto štyri tvoria spolu tajnú, dobromyseľnú bázu mriežky — opis mriežky z krátkych vektorov.
Verejný kľúč je v podstate jediný polynóm:
Z vyplýva tá istá mriežka, ale v nemotornej báze z dlhých vektorov:
To je celé jadro FALCONu. Obe bázy opisujú tú istú mriežku. Len jedna je na počítanie použiteľná a druhá nie.
Dá sa to predstaviť ako plán mesta: verejná je úplná mapa. Tajná je znalosť skratiek.
9. Z hodnotenia sa stáva bod
Skôr než sa podpisuje, prejde objekt payloadu hašovou funkciou. FALCON na to používa hash-to-point: zo správy nevzniká číselná hodnota, ale priamo bod v okruhu.
Podpisová služba navyše ťahá náhodnú soľ (320 bitov) a hašuje ju spolu:
Soľ nie je ozdoba. Bez nej by to isté hodnotenie dávalo vždy ten istý podpis a z mnohých podpisov by sa dala zrekonštruovať tajná báza. Preto putuje spolu do podpisu.
10. Čo je platný podpis
Hľadá sa dvojica
s dvoma vlastnosťami:
Prvú podmienku samu osebe je triviálne splniť — stačí položiť a . Ťažkou robí úlohu až druhá podmienka.
11. Úplne prepočítaný miniatúrny príklad
Všetko zmenšíme na hračkársku veľkosť: polynómy s jediným koeficientom, teda obyčajné čísla, a
Tajný kľúč. Dve malé čísla:
Verejný kľúč. Platí , lebo . Teda:
Mriežka. .
Verejná báza vyplýva priamo z :
Obe ležia v — a obe sú dlhé.
Tajnú bázu pozná len podpisová služba:
lebo a . Determinant je
NTRU rovnica teda vychádza. Oba vektory sú krátke.
Krok 1: Zahašovať hodnotenie
Predpokladajme, že objekt payloadu hodnotenia dá
Krok 2: Prvé, zlé riešenie
spĺňa . Dĺžka je však — priveľa.
Krok 3: Skrátiť pomocou tajnej bázy
Podpisová služba vyjadrí cieľový bod vo svojej krátkej báze:
To vedie na a . Po zaokrúhlení na , vzniká bod mriežky
Kontrola: , teda skutočne v . Odčítanie:
Dĺžka:
To je podpis.
Krok 4: Ten istý postup s verejnou bázou
Kto pozná len , má bázu . Ten istý zaokrúhľovací výpočet dá bod mriežky a tým
Takisto platné riešenie rovnice — ale sedemkrát dlhšie. Ak sa hranica prijatia nastaví pod 26, je bezcenné.
To sú padacie dvierka FALCONu v jednom riadku.
Krok 5: Prehliadač overuje
Prehliadač dostane hodnotenie, soľ a . Nanovo vypočíta haš, dostane , zrekonštruuje
a overí dĺžku:
Krok 6: Niekto zmení text hodnotenia
Ak sa text dodatočne zmení, zmení sa haš obsahu a tým aj bod, povedzme na
Starý podpis zostáva , ale
Hodnotenie môžeme zmazať. Zmeniť ho tak, aby si to nikto nevšimol, nedokážeme.
Poznámka o poctivosti príkladu
V dvoch rozmeroch dokáže útočník krátke riešenia jednoducho vyskúšať — pre napríklad . Príklad nie je bezpečný; ukazuje len mechanizmus. Pri FALCON-1024 má vektor 2048 koeficientov a tam skúšanie nevedie nikam.
12. Prečo sa jednoducho nezaokrúhľuje?
Postup z kroku 3 sa nazýva Babaiovo zaokrúhľovanie. Pre učebnicový príklad postačuje — pre skutočnú podpisovú schému nie.
Dôvod: zaokrúhlené podpisy nie sú rozdelené rovnomerne. Ich tvar závisí od geometrie tajnej bázy. Z dostatočného množstva podpisov by sa táto geometria dala zrekonštruovať — a tým aj súkromný kľúč. Práve na tom stroskotali skoršie mriežkové podpisové schémy.
FALCON preto ťahá krátke vektory z diskrétneho Gaussovho rozdelenia nad mriežkou:
Hodnoty blízko cieľového bodu sú pravdepodobnejšie, ale ktorá presne sa zvolí, je náhodné. Výsledkom je rozdelenie, ktoré neprezrádza nič o použitej báze — matematicky: nedá sa odlíšiť od rozdelenia, ktoré závisí len od samotnej mriežky.
Tento sampler je najnáročnejšou časťou FALCONu. Beží rekurzívne nad stromovou štruktúrou a pracuje s číslami s pohyblivou rádovou čiarkou — čo robí implementáciu chúlostivou a je hlavným dôvodom, prečo sa FALCON správne implementuje ťažšie než ML-DSA.
13. Čo sa skutočne prenáša
Podpis pozostáva z
Len — nie celá dvojica. si overovateľ dopočíta sám:
Keďže koeficienty sú malé a rozptýlené okolo nuly, dajú sa silno komprimovať. To je dôvod nápadne kompaktných podpisov FALCONu:
| verejný kľúč | podpis | |
|---|---|---|
| FALCON-512 | 897 B | ~666 B |
| FALCON-1024 | 1 793 B | ~1 280 B |
Pre porovnanie: ML-DSA-87 potrebuje 4 627 bajtov. Na McGesund však ani jeden z týchto podpisov nie je v samotnom QR kóde — nálepka nesie len obálku Ed25519; postkvantové pečiatky ležia pri zázname a pri overovaní sa donačítajú. Veľkosť tu teda nerozhoduje o tlačiteľnosti, ale o úložisku a prenose: pečiatka FALCON je dobrú štvrtinu veľkosti pečiatky ML-DSA.
14. Prečo FALCON overuje rýchlo
Naivné násobenie polynómov stojí
S rýchlou Fourierovou transformáciou to klesá približne na
Pri je to rozdiel medzi miliónom a približne desiatimi tisícmi operácií. Preto overenie v prehliadači návštevníka beží v milisekundách — a preto väzí F v názve:
FAst Fourier Lattice-based COmpact signatures over NTRU.
15. Priebeh v obraze
16. Prečo útočník neuspeje
Pozná a tým celú mriežku. Pozná aj cieľový bod , len čo je hodnotenie verejné. Chýba mu krátka báza.
Aby hodnotenie sfalšoval, musel by k vlastnému zvolenému nájsť krátky vektor — len z verejného opisu. To je úloha, ktorú ilustroval krok 4 príkladu: bez dobrých vektorov skončí ten istý výpočet pri príliš dlhom riešení.
V dimenzii 1024 sú od toho najlepšie známe postupy — klasické aj kvantové — veľmi ďaleko.
17. Čo s tým McGesund konkrétne robí
Obálka. Každé podpísané hodnotenie nesie podpis Ed25519. To je povinný variant — klasický, veľmi malý, natívne overiteľný v každom prehliadači.
Postkvantové pečiatky. Vedľa neho ležia jeden alebo dva kvantovo odolné podpisy. Ktoré, závisí od tarifu:
| Tarif | dostupné stupne podpisu |
|---|---|
| Basis | Ed25519, FN-DSA-512 |
| Klassik | Ed25519, FN-DSA-512, FN-DSA-1024 |
| Pro | Ed25519, FN-DSA-1024, ML-DSA-87 |
| Premium | Ed25519, FN-DSA-1024, ML-DSA-87, oba súbežne |
Súbežný variant je zámerne redundantný. FALCON stojí na NTRU mriežkach, ML-DSA na modulových mriežkach. Ak by sa jedna z týchto dvoch rodín 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 je doložené 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.
Všetko sa to počíta v prehliadači čitateľa, cez modul WASM. My dodávame údaje; overenie beží na zariadení návštevníka. Keby sme zajtra zmizli zo siete, raz načítané hodnotenie zostane overiteľné.
K zaradeniu názvov: FALCON sa v súčasnosti štandardizuje ako FN-DSA; návrh je plánovaný ako FIPS 206, ale zatiaľ nie je uzavretý. Preto sa stupne v kóde McGesund volajú FN-DSA-512 a FN-DSA-1024, aj keď sa v bežnej reči naďalej hovorí o FALCONe.
18. Najdôležitejšia intuícia
Verejný kľúč je úplný opis labyrintu. Pozrieť si ho smie každý.
Podpis je dôkaz: „Práve pre toto hodnotenie som našiel veľmi krátku cestu."
Súkromný kľúč je znalosť skratiek.
Čitateľ skratky poznať nemusí. Len premeria, či je predložená cesta skutočne krátka a či skutočne patrí k tomuto hodnoteniu. Oboje dokáže bez nás.
Kto zmení text, posunie bod — a stará cesta vedie do prázdna.