Podpisni postopek
FALCON matematično pojasnjen
Kako se ocena na McGesund podpiše s FN-DSA (FALCON) — in zakaj spremenjen znak zlomi podpis.
Stanje: 2026-09-07
1. Za kaj gre
Ocena na McGesund ni besedilno polje v podatkovni bazi, ki mu je treba verjeti. Ob oddaji je digitalno podpisana in vsak obiskovalec lahko ta podpis pozneje preračuna v svojem brskalniku.
Za del teh podpisov uporabljamo FALCON — natančneje FN-DSA-512 in FN-DSA-1024. Ta prispevek pojasnjuje, kaj se pri tem dogaja matematično.
Pomembno takoj na začetku:
FALCON ni šifriranje. Besedilo ocene naj bo vendar prebrano. FALCON ne dokazuje tajnosti, temveč izvor in nespremenjenost.
2. Kaj natančno se podpiše
Ne podpiše se tekoče besedilo, temveč kompakten podatkovni objekt, ki besedilo enolično pribije:
{
"v": 1,
"typ": "rev-comment",
"f": "<ID podjetja>",
"c": "<ID ocene>",
"h": "<SHA-256 besedila ocene>",
"rh": "<SHA-256 celotnega zapisa oddaje>",
"rv": 1,
"qh": "<SHA-256 ovojnice QR, le pri ocenah prek QR>",
"iat": 1757203200
}
To je naše sporočilo . Skupaj veže:
- h kateremu podjetju ocena spada (
f), - za katero oceno gre (
c), - katero besedilo je bilo za tem — kot zgoščena vrednost (
h), - kateri zapis je bil oddan v celoti (
rh): besedilo, srca, geo status in navedbe o povodu, kanonično serializirani in zgoščeni, v shemski različicirv, - iz katere kode QR ocena izvira (
qh) — pri oceni brez QR to polje odpade, - kdaj je bil podpis izdan (
iat).
Spremenjen znak v besedilu ocene zlomi to verigo. Prav to je namen — in od rh naprej velja isto za naknadno premaknjeno srce ali spremenjen geo status.
3. Temeljni problem
Bralec, ki pride na profil podjetja, stoji pred dvema vprašanjema:
- Ali ta ocena res izvira iz sistema McGesund?
- Ali je bila naknadno spremenjena?
Za to obstaja par ključev:
- zasebni ključ — ostane v podpisni storitvi
- javni ključ — ima ga lahko vsak
Podpisuje se z zasebnim, preverja z javnim ključem. In sicer na napravi bralca, ne na našem strežniku.
4. Zakaj FALCON?
Mnogi današnji podpisni postopki temeljijo na problemih, ki so za klasične računalnike težki, za dovolj velike kvantne računalnike pa bi lahko postali občutno lažji.
Pri oceni je to bolj pomembno kot pri bežnem sporočilu: ocena naj bo preverljiva še čez pet ali deset let. Kdor podpiše danes, podpiše za celotno življenjsko dobo vnosa.
FALCON zato temelji na mrežni kriptografiji:
Zgradi se matematično preprosto opisljiva mreža, v kateri je določena iskalna naloga izjemno težka.
5. Kaj je matematična mreža?
Dva vektorja:
Vse celoštevilske kombinacije
dajo mrežo točk. Na primer:
Odločilno je:
Mrežo samo je lahko opisati. Najti v njej določene lastnosti je zelo težko.
6. Skrivnost so kratki vektorji
Klasična težka naloga se glasi:
To je problem najkrajšega vektorja. V dveh dimenzijah ga je mogoče rešiti s preizkušanjem. FALCON dela v dimenziji 512 ali 1024 — tam je to brezupno.
FALCON pa ne potrebuje najkrajšega vektorja kot takega, temveč nekaj sorodnega: k vnaprej dani ciljni točki najti bližnjo točko mreže. Tudi to je brez pravih dodatnih informacij težko.
7. Polinomi namesto števil
FALCON uporablja mrežo NTRU in računa s polinomi. Namesto s posameznimi števili torej s seznami koeficientov:
Računa se v kolobarju
To pomeni:
- : računanje po modulu . Pri na primer , saj je .
- : ohranja polinome na stalni dolžini.
FALCON konkretno uporablja:
8. Osrednji trik
Zasebni ključ sestavljajo štirje majhni polinomi
z enačbo NTRU
Ti štirje skupaj tvorijo skrivno, dobrohotno bazo mreže — opis mreže iz kratkih vektorjev.
Javni ključ je v bistvu en sam polinom:
Iz sledi ista mreža, a v neokretni bazi iz dolgih vektorjev:
To je celotno jedro FALCON. Obe bazi opisujeta isto mrežo. Le da je ena za računanje uporabna, druga pa ne.
Predstavljati si je mogoče kot mestni načrt: javen je celoten zemljevid. Skrivno je poznavanje bližnjic.
9. Ocena postane točka
Preden se podpiše, gre objekt payload skozi zgoščevalno funkcijo. FALCON za to uporablja hash-to-point: iz sporočila ne nastane številska vrednost, temveč neposredno točka v kolobarju.
Podpisna storitev poleg tega izvleče naključno sol (320 bitov) in jo sozgošča:
Sol ni okrasek. Brez nje bi ista ocena vedno dala isti podpis in iz mnogih podpisov bi bilo mogoče rekonstruirati skrivno bazo. Zato potuje s podpisom vred.
10. Kaj je veljaven podpis
Iskan je par
z dvema lastnostma:
Prvi pogoj sam je trivialno izpolniti — postavi se in . Drugi pogoj naredi nalogo težko.
11. V celoti izračunan mini primer
Vse skrčimo na igračno velikost: polinomi z le enim koeficientom, torej navadna števila, in
Skrivni ključ. Dve majhni števili:
Javni ključ. Velja , saj je . Torej:
Mreža. .
Javna baza sledi neposredno iz :
Oba ležita v — in oba sta dolga.
Skrivno bazo pozna le podpisna storitev:
saj je in . Determinanta je
enačba NTRU torej izide. Oba vektorja sta kratka.
Korak 1: Zgoščevanje ocene
Recimo, da objekt payload ocene da
Korak 2: Prva, slaba rešitev
izpolnjuje . Toda dolžina je — daleč predolga.
Korak 3: Krajšanje s skrivno bazo
Podpisna storitev izrazi ciljno točko v svoji kratki bazi:
To vodi na in . Zaokroženo na , sledi točka mreže
Kontrola: , torej dejansko v . Odštevanje:
Dolžina:
To je podpis.
Korak 4: Isti postopek z javno bazo
Kdor pozna le , ima bazo . Isti zaokroževalni račun tam da točko mreže in s tem
Prav tako veljavna rešitev enačbe — a sedemkrat daljša. Če je meja sprejema postavljena pod 26, je brez vrednosti.
To je skrivna vrata FALCON v eni vrstici.
Korak 5: Brskalnik preverja
Brskalnik dobi oceno, sol in . Na novo izračuna zgoščeno vrednost, dobi , rekonstruira
in preveri dolžino:
Korak 6: Nekdo spremeni besedilo ocene
Če se besedilo naknadno spremeni, se spremeni zgoščena vrednost vsebine in s tem točka, recimo
Stari podpis ostane , toda
Oceno lahko izbrišemo. Spremeniti je ne moremo, ne da bi to opazili.
Pošteno opozorilo k primeru
V dveh dimenzijah lahko napadalec kratke rešitve preprosto preizkusi — za na primer . Primer ni varen; kaže le mehanizem. Pri FALCON-1024 ima vektor 2048 koeficientov in tam preizkušanje ne vodi nikamor.
12. Zakaj se ne zaokroži kar tako?
Postopek iz koraka 3 se imenuje Babaijevo zaokroževanje. Za učbeniški primer zadošča — za resničen podpisni postopek ne.
Razlog: zaokroženi podpisi niso enakomerno porazdeljeni. Njihova oblika je odvisna od geometrije skrivne baze. Iz dovolj velikega števila podpisov bi bilo to geometrijo mogoče rekonstruirati — in s tem zasebni ključ. Prav na tem so prejšnji mrežni podpisni postopki propadli.
FALCON zato kratke vektorje izvleče iz diskretne Gaussove porazdelitve nad mrežo:
Vrednosti blizu ciljne točke so verjetnejše, a katera natanko bo izbrana, je naključno. Rezultat je porazdelitev, ki o uporabljeni bazi ne izda ničesar — matematično: ni razločljiva od porazdelitve, ki je odvisna le od mreže same.
Ta vzorčevalnik je najzahtevnejši del FALCON. Teče rekurzivno po drevesni strukturi in dela s števili s plavajočo vejico — kar naredi implementacijo občutljivo in je glavni razlog, da je FALCON teže pravilno izvesti kot ML-DSA.
13. Kaj se dejansko prenaša
Podpis sestavlja
Le — ne par. Vrednost preveritelj izračuna sam:
Ker so koeficienti majhni in razpršeni okoli ničle, jih je mogoče močno stisniti. To je razlog za izstopajoče kompaktne podpise FALCON:
| javni ključ | podpis | |
|---|---|---|
| FALCON-512 | 897 B | ~666 B |
| FALCON-1024 | 1.793 B | ~1.280 B |
Za primerjavo: ML-DSA-87 potrebuje 4.627 bajtov. Pri McGesund pa noben od teh podpisov ne tiči v sami kodi QR — nalepka nosi le ovojnico Ed25519; postkvantni žigi ležijo ob zapisu in se ob preverjanju dodatno naložijo. Velikost tu torej ne odloča o možnosti tiskanja, temveč o pomnilniku in prenosu: žig FALCON je dobro četrtino velikosti žiga ML-DSA.
14. Zakaj FALCON hitro preverja
Naivno množenje polinomov stane
S hitro Fourierjevo transformacijo to pade na približno
Pri je to razlika med milijonom in okoli deset tisoč operacijami. Zato preverjanje v brskalniku obiskovalca teče v milisekundah — in zato tiči F v imenu:
FAst Fourier Lattice-based COmpact signatures over NTRU.
15. Potek v sliki
16. Zakaj napadalec propade
Pozna in s tem celotno mrežo. Pozna tudi ciljno točko , takoj ko je ocena javna. Manjka mu kratka baza.
Da bi ponaredil oceno, bi moral k sam izbranemu najti kratek vektor — zgolj iz javnega opisa. To je naloga, ki jo je ponazoril korak 4 primera: brez dobrih vektorjev isti račun pristane pri veliko predolgi rešitvi.
V dimenziji 1024 so najboljši znani postopki — klasični in kvantni — od tega daleč.
17. Kaj McGesund konkretno počne s tem
Ovojnica. Vsaka podpisana ocena nosi podpis Ed25519. To je obvezna različica — klasična, zelo majhna, izvorno preverljiva v vsakem brskalniku.
Postkvantni žigi. Ob njej ležita en ali dva kvantno odporna podpisa. Katera, je odvisno od paketa:
| Paket | razpoložljive stopnje podpisa |
|---|---|
| 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 vzporedno |
Vzporedna različica je namenoma redundantna. FALCON stoji na mrežah NTRU, ML-DSA na modulnih mrežah. Če bi se ena od obeh družin izkazala za šibkejšo, kot se domneva danes, nosi druga naprej.
Časovno sidro. Prstni odtis podpisnega ključa se prek OpenTimestamps zasidra v blok Bitcoin. S tem ni dokazano le, da je podpis pristen, temveč tudi, da je v določenem trenutku že obstajal — ne da bi moral kdo verjeti našemu časovnemu žigu.
Vse to se računa v brskalniku bralca, prek modula WASM. Mi dostavimo podatke; preverjanje teče na napravi obiskovalca. Če bi jutri odšli z omrežja, bi enkrat naložena ocena ostala preverljiva.
K umestitvi imen: FALCON se trenutno standardizira kot FN-DSA; osnutek je predviden kot FIPS 206, a še ni dokončan. Zato se stopnje v kodi McGesund imenujejo FN-DSA-512 in FN-DSA-1024, čeprav se v govoru še naprej govori o FALCON.
18. Najpomembnejša intuicija
Javni ključ je celoten opis labirinta. Vsak si ga sme ogledati.
Podpis je dokazilo: „Za natanko to oceno sem našel zelo kratko pot."
Zasebni ključ je poznavanje bližnjic.
Bralcu bližnjic ni treba poznati. Le izmeri, ali je predložena pot dejansko kratka in ali dejansko spada k tej oceni. Oboje zmore brez nas.
Kdor spremeni besedilo, premakne točko — in stara pot vodi v prazno.