Postupak potpisivanja
FALCON matematički objašnjen
Kako se McGesund recenzija potpisuje s FN-DSA (FALCON) — i zašto jedan izmijenjeni znak lomi potpis.
Stanje: 2026-09-07
1. O čemu je riječ
Recenzija na McGesundu nije tekstualno polje u bazi podataka kojemu se mora vjerovati. Pri slanju se digitalno potpisuje, a svaki posjetitelj taj potpis može kasnije preračunati u vlastitom pregledniku.
Za dio tih potpisa koristimo FALCON — točnije FN-DSA-512 i FN-DSA-1024. Ovaj članak objašnjava što se pritom matematički događa.
Važno unaprijed:
FALCON nije šifriranje. Tekst recenzije se ionako treba čitati. FALCON ne dokazuje tajnost, nego podrijetlo i cjelovitost.
2. Što se točno potpisuje
Ne potpisuje se tekući tekst, nego kompaktan podatkovni objekt koji tekst jednoznačno prikiva:
{
"v": 1,
"typ": "rev-comment",
"f": "<ID tvrtke>",
"c": "<ID recenzije>",
"h": "<SHA-256 teksta recenzije>",
"rh": "<SHA-256 cijelog zapisa o predaji>",
"rv": 1,
"qh": "<SHA-256 QR omotnice, samo kod QR recenzija>",
"iat": 1757203200
}
To je naša poruka . Ona zajedno veže:
- kojem poduzeću recenzija pripada (
f), - o kojoj je recenziji riječ (
c), - koji je tekst iza toga stajao — kao hash-vrijednost (
h), - koji je zapis ukupno predan (
rh): tekst, srca, geo-status i podaci o povodu, kanonski serijalizirani i uhashirani, u verziji shemerv, - iz kojeg QR koda recenzija potječe (
qh) — kod recenzije bez QR-a to polje otpada, - kada je potpisano (
iat).
Jedan izmijenjeni znak u tekstu recenzije lomi taj lanac. Upravo je to svrha — a otkad postoji rh, isto vrijedi za naknadno pomaknuto srce ili izmijenjeni geo-status.
3. Osnovni problem
Čitatelj koji dođe na profil poduzeća pred dva je pitanja:
- Potječe li ova recenzija doista iz McGesund sustava?
- Je li naknadno izmijenjena?
Za to postoji par ključeva:
- privatni ključ — ostaje u servisu za potpisivanje
- javni ključ — smije ga imati svatko
Potpisuje se privatnim, provjerava javnim ključem. I to na uređaju čitatelja, a ne na našem poslužitelju.
4. Zašto FALCON?
Mnogi današnji postupci potpisivanja počivaju na problemima koji su za klasična računala teški, ali bi za dovoljno velika kvantna računala mogli postati znatno lakši.
Kod recenzije je to važnije nego kod prolazne poruke: recenzija bi za pet ili deset godina još trebala biti provjerljiva. Tko danas potpisuje, potpisuje za cijeli životni vijek unosa.
FALCON zato počiva na kriptografiji rešetki:
Gradi se matematički jednostavno opisiva rešetka u kojoj je jedan određeni zadatak pretraživanja iznimno težak.
5. Što je matematička rešetka?
Dva vektora:
Sve cjelobrojne kombinacije
daju rešetku od točaka. Na primjer:
Bitno je:
Samu rešetku lako je opisati. Naći određena svojstva u njoj vrlo je teško.
6. Tajna su kratki vektori
Klasični teški zadatak glasi:
To je Shortest Vector Problem. U dvije se dimenzije može isprobati. FALCON radi u dimenziji 512 ili 1024 — ondje je to bezizgledno.
FALCON-u, doduše, ne treba najkraći vektor kao takav, nego nešto srodno: uz zadanu ciljnu točku pronaći blisku točku rešetke. I to je bez prave dodatne informacije teško.
7. Polinomi umjesto brojeva
FALCON koristi NTRU rešetku i računa s polinomima. Dakle ne s pojedinačnim brojevima, nego s listama koeficijenata:
Računa se u prstenu
To znači:
- : računanje modulo . Pri primjerice , jer je .
- : drži polinome na čvrstoj duljini.
FALCON konkretno koristi:
8. Ključni trik
Privatni se ključ sastoji od četiriju malih polinoma
s NTRU jednadžbom
Ta četiri zajedno tvore tajnu, dobroćudnu bazu rešetke — opis rešetke sastavljen od kratkih vektora.
Javni je ključ u biti jedan jedini polinom:
Iz proizlazi ista rešetka, ali u nezgrapnoj bazi od dugih vektora:
To je cijela jezgra FALCON-a. Obje baze opisuju istu rešetku. Samo je jedna upotrebljiva za računanje, a druga nije.
Može se to zamisliti kao plan grada: javna je potpuna karta. Tajno je poznavanje prečica.
9. Recenzija postaje točka
Prije potpisivanja objekt payloada prolazi kroz hash-funkciju. FALCON za to koristi Hash-to-Point: iz poruke ne nastaje brojčana vrijednost, nego izravno točka u prstenu.
Servis za potpisivanje dodatno izvlači slučajnu sol (320 bitova) i uhashira je zajedno:
Sol nije ukras. Bez nje bi ista recenzija uvijek davala isti potpis, a iz mnogo bi se potpisa dala rekonstruirati tajna baza. Zato putuje zajedno u potpisu.
10. Što je valjan potpis
Traži se par
s dva svojstva:
Prvi je uvjet sam po sebi trivijalno ispuniti — postavi se i . Drugi uvjet čini zadatak teškim.
11. Do kraja izračunat mini-primjer
Sve smanjujemo na igračku veličinu: polinomi sa samo jednim koeficijentom, dakle obični brojevi, i
Tajni ključ. Dva mala broja:
Javni ključ. Vrijedi , jer je . Dakle:
Rešetka. .
Javna baza proizlazi izravno iz :
Oba leže u — i oba su duga.
Tajnu bazu zna samo servis za potpisivanje:
jer je i . Determinanta je
NTRU jednadžba dakle vrijedi. Oba su vektora kratka.
Korak 1: Uhashirati recenziju
Pretpostavimo da objekt payloada recenzije daje
Korak 2: Prvo, loše rješenje
zadovoljava . Ali duljina je — mnogo predugo.
Korak 3: Skratiti tajnom bazom
Servis za potpisivanje izražava ciljnu točku u svojoj kratkoj bazi:
To vodi na i . Zaokruženo na , dobiva se točka rešetke
Kontrola: , dakle doista u . Oduzimanje:
Duljina:
To je potpis.
Korak 4: Isti postupak s javnom bazom
Tko zna samo , ima bazu . Isti račun sa zaokruživanjem ondje daje točku rešetke i time
Također valjano rješenje jednadžbe — ali sedam puta duže. Postavi li se granica prihvaćanja ispod 26, ono je bezvrijedno.
To su FALCON-ova skrivena vrata u jednom retku.
Korak 5: Preglednik provjerava
Preglednik dobiva recenziju, sol i . On iznova izračuna hash, dobiva , rekonstruira
i provjerava duljinu:
Korak 6: Netko mijenja tekst recenzije
Izmijeni li se tekst naknadno, mijenja se hash sadržaja, a time i točka, recimo
Stari potpis ostaje , ali
Recenziju možemo obrisati. Izmijeniti je ne možemo a da se to ne primijeti.
Iskrena napomena uz primjer
U dvije dimenzije napadač kratka rješenja može naprosto isprobati — za primjerice . Primjer nije siguran; on samo pokazuje mehanizam. Kod FALCON-1024 vektor ima 2048 koeficijenata, a ondje isprobavanje ne vodi nikamo.
12. Zašto se ne zaokružuje jednostavno?
Postupak iz koraka 3 zove se Babaijevo zaokruživanje. Za školski je primjer dovoljan — za pravi postupak potpisivanja nije.
Razlog: zaokruženi potpisi nisu ravnomjerno raspoređeni. Njihov oblik ovisi o geometriji tajne baze. Iz dovoljno bi se potpisa ta geometrija dala rekonstruirati — a time i privatni ključ. Upravo su na tome propali raniji postupci potpisivanja utemeljeni na rešetkama.
FALCON zato kratke vektore izvlači iz diskretne Gaussove razdiobe nad rešetkom:
Vrijednosti blizu ciljne točke vjerojatnije su, ali koja se točno odabere, slučajno je. Rezultat je razdioba koja ništa ne odaje o korištenoj bazi — matematički: nije razlučiva od razdiobe koja ovisi samo o samoj rešetki.
Taj je sampler najzahtjevniji dio FALCON-a. Radi rekurzivno nad strukturom stabla i barata brojevima s pomičnim zarezom — što implementaciju čini osjetljivom i glavni je razlog zašto je FALCON teže ispravno izvesti nego ML-DSA.
13. Što se zapravo prenosi
Potpis se sastoji od
Samo — ne par. Vrijednost provjeritelj izračuna sam:
Budući da su koeficijenti od mali i rasipaju se oko nule, daju se snažno komprimirati. To je razlog FALCON-ovih upadljivo kompaktnih potpisa:
| javni ključ | potpis | |
|---|---|---|
| FALCON-512 | 897 B | ~666 B |
| FALCON-1024 | 1.793 B | ~1.280 B |
Za usporedbu: ML-DSA-87 treba 4.627 bajtova. Na McGesundu, doduše, nijedan od tih potpisa nije u samom QR kodu — naljepnica nosi samo Ed25519 omotnicu; PQ pečati leže uz zapis i dohvaćaju se pri provjeri. Veličina ovdje dakle ne odlučuje o mogućnosti ispisa, nego o pohrani i prijenosu: FALCON pečat velik je otprilike četvrtinu ML-DSA pečata.
14. Zašto FALCON brzo provjerava
Naivno množenje polinoma stoji
S brzom Fourierovom transformacijom to pada na otprilike
Pri to je razlika između milijun i oko deset tisuća operacija. Zato provjera u pregledniku posjetitelja teče u milisekundama — i zato u imenu stoji slovo F:
FAst Fourier Lattice-based COmpact signatures over NTRU.
15. Tijek postupka na slici
16. Zašto napadač ne uspijeva
On zna , a time i cijelu rešetku. Zna i ciljnu točku , čim je recenzija javna. Nedostaje mu kratka baza.
Da bi krivotvorio recenziju, morao bi uz samostalno odabrani pronaći kratak vektor — i to samo iz javnog opisa. To je zadatak koji je ilustrirao korak 4 primjera: bez dobrih vektora isti račun završava kod predugog rješenja.
U dimenziji 1024 najbolji poznati postupci — klasični kao i kvantni — daleko su od toga.
17. Što McGesund konkretno radi s time
Envelope. Svaka potpisana recenzija nosi Ed25519 potpis. To je obavezna varijanta — klasična, vrlo malena, nativno provjerljiva u svakom pregledniku.
Post-kvantni pečati. Uz nju stoje jedan ili dva kvantno otporna potpisa. Koji, ovisi o tarifi:
| Tarifa | dostupne razine potpisa |
|---|---|
| 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 usporedno |
Usporedna je varijanta namjerno redundantna. FALCON stoji na NTRU rešetkama, ML-DSA na Module rešetkama. Pokaže li se jedna od dviju obitelji slabijom nego što se danas pretpostavlja, druga nosi dalje.
Vremensko sidro. Otisak ključa za potpisivanje sidri se preko OpenTimestampsa u jednom Bitcoin bloku. Time je dokazano ne samo da je potpis pravi, nego i da je u određenom trenutku već postojao — a da pritom nitko ne mora vjerovati našem vremenskom žigu.
Sve se to računa u pregledniku čitatelja, preko WASM modula. Mi isporučujemo podatke; provjera teče na uređaju posjetitelja. Kad bismo sutra nestali s mreže, jednom učitana recenzija ostala bi provjerljiva.
O razvrstavanju naziva: FALCON se trenutačno standardizira kao FN-DSA; nacrt je predviđen kao FIPS 206, ali još nije dovršen. Zato se razine u McGesund kodu zovu FN-DSA-512 i FN-DSA-1024, i onda kada se u govoru i dalje spominje FALCON.
18. Najvažnija intuicija
Javni ključ je potpun opis labirinta. Svatko ga smije pogledati.
Potpis je dokaz: „Za točno ovu recenziju pronašao sam vrlo kratak put."
Privatni ključ je poznavanje prečica.
Čitatelj prečice ne mora poznavati. On samo izmjeri je li predočeni put doista kratak i pripada li doista ovoj recenziji. Oboje može bez nas.
Tko izmijeni tekst, pomiče točku — a stari put vodi u prazno.