Allkirjastamismeetod
FALCON matemaatiliselt selgitatud
Kuidas McGesundi arvustus FN-DSA-ga (FALCON) allkirjastatakse — ja miks üksainus muudetud märk allkirja murrab.
Seisuga: 2026-09-07
1. Millest siin jutt käib
McGesundi arvustus ei ole andmebaasi tekstiväli, mida tuleb lihtsalt uskuda. See allkirjastatakse digitaalselt juba saatmisel ja iga külastaja saab selle allkirja hiljem oma brauseris järele arvutada.
Osa neist allkirjadest teeme FALCONiga — täpsemalt FN-DSA-512 ja FN-DSA-1024-ga. See artikkel selgitab, mis seejuures matemaatiliselt toimub.
Kõigepealt oluline:
FALCON ei ole krüpteerimine. Arvustuse teksti ju peabki saama lugeda. FALCON ei tõenda salastatust, vaid päritolu ja terviklikkust.
2. Mida täpselt allkirjastatakse
Allkirjastatakse mitte jooksvat teksti, vaid kompaktne andmeobjekt, mis naelutab teksti üheselt kinni:
{
"v": 1,
"typ": "rev-comment",
"f": "<ettevõtte ID>",
"c": "<arvustuse ID>",
"h": "<arvustuse teksti SHA-256>",
"rh": "<kogu esitatud andmekirje SHA-256>",
"rv": 1,
"qh": "<QR-Envelope'i SHA-256, ainult QR-arvustuste puhul>",
"iat": 1757203200
}
See on meie sõnum . See seob kokku:
- millisele ettevõttele arvustus kuulub (
f), - millisest arvustusest on jutt (
c), - milline tekst selle taga oli — räsiväärtusena (
h), - milline andmekirje tervikuna esitati (
rh): tekst, südamed, geostaatus ja ajendi andmed, kanooniliselt serialiseeritud ja räsitud, skeemiversioonisrv, - millisest QR-koodist arvustus pärineb (
qh) — QR-ita arvustuse puhul see väli puudub, - millal allkirjastati (
iat).
Üksainus muudetud märk arvustuse tekstis murrab selle ahela. Just see ongi eesmärk — ja alates välja rh lisandumisest kehtib sama tagantjärele nihutatud südame või muudetud geostaatuse kohta.
3. Põhiülesanne
Lugeja, kes satub ettevõtte profiilile, seisab kahe küsimuse ees:
- Kas see arvustus pärineb tõesti McGesundi süsteemist?
- Kas seda on tagantjärele muudetud?
Selleks on olemas võtmepaar:
- privaatvõti — jääb allkirjastamisteenusesse
- avalik võti — tohib olla igaühel
Allkirjastatakse privaatvõtmega, kontrollitakse avalikuga. Ja nimelt lugeja seadmes, mitte meie serveris.
4. Miks FALCON?
Paljud tänased allkirjastamismeetodid põhinevad ülesannetel, mis on klassikaliste arvutite jaoks rasked, kuid võivad piisavalt suurte kvantarvutite jaoks tunduvalt kergemaks muutuda.
Arvustuse puhul on see olulisem kui põgusa sõnumi puhul: arvustus peab olema kontrollitav ka viie või kümne aasta pärast. Kes allkirjastab täna, allkirjastab kirje kogu eluea jaoks.
FALCON põhineb seetõttu võrekrüptograafial:
Ehitatakse matemaatiliselt lihtsalt kirjeldatav võre, milles üks kindel otsinguülesanne on ülimalt raske.
5. Mis on matemaatiline võre?
Kaks vektorit:
Kõik täisarvulised kombinatsioonid
annavad punktidest koosneva võre. Näiteks:
Otsustav on:
Võret ennast on lihtne kirjeldada. Kindlate omaduste leidmine selle sees on väga raske.
6. Saladus on lühikesed vektorid
Klassikaline raske ülesanne on:
See on Shortest Vector Problem ehk lühima vektori ülesanne. Kahes mõõtmes saab selle läbi proovida. FALCON töötab mõõtmes 512 või 1024 — seal on see lootusetu.
FALCON ei vaja siiski kõige lühemat vektorit kui sellist, vaid midagi sellega sugulast: etteantud sihtpunktile lähedase võrepunkti leidmist. Ka see on ilma õige lisateabeta raske.
7. Polünoomid arvude asemel
FALCON kasutab NTRU-võret ja arvutab polünoomidega. Üksikute arvude asemel siis kordajate loenditega:
Arvutatakse ringis
See tähendab:
- : arvutamine mooduli järgi. korral näiteks , sest .
- : hoiab polünoomid kindla pikkusega.
FALCON kasutab konkreetselt:
8. Keskne trikk
Privaatvõti koosneb neljast väikesest polünoomist
koos NTRU-võrrandiga
Need neli moodustavad koos salajase, hästi käituva võrebaasi — võre kirjelduse lühikeste vektorite kaudu.
Avalik võti on sisuliselt üksainus polünoom:
-st tuleneb sama võre, kuid kohmakas baasis, mis koosneb pikkadest vektoritest:
Selles ongi FALCONi kogu tuum. Mõlemad baasid kirjeldavad sama võret. Ainult et üks neist kõlbab arvutamiseks ja teine mitte.
Seda võib ette kujutada linnaplaanina: avalik on täielik kaart. Salajane on otseteede tundmine.
9. Arvustusest saab punkt
Enne allkirjastamist läbib andmeobjekt räsifunktsiooni. FALCON kasutab selleks Hash-to-Pointi: sõnumist ei saa arvväärtus, vaid otse punkt ringis.
Lisaks tõmbab allkirjastamisteenus juhusliku soola (320 bitti) ja räsib selle kaasa:
Sool ei ole kaunistus. Ilma selleta annaks sama arvustus alati sama allkirja ja paljudest allkirjadest saaks salajase baasi taastada. Seetõttu rändab ta koos allkirjaga kaasa.
10. Milline on kehtiv allkiri
Otsitakse paari
kahe omadusega:
Esimest tingimust üksi on triviaalne täita — võtame ja . Teine tingimus teeb ülesande raskeks.
11. Täielikult läbi arvutatud minimaalne näide
Kahandame kõik mängusuuruseks: polünoomid ainult ühe kordajaga, seega tavalised arvud, ja
Salajane võti. Kaks väikest arvu:
Avalik võti. Kehtib , sest . Seega:
Võre. .
Avalik baas tuleneb otse -st:
Mõlemad asuvad hulgas — ja mõlemad on pikad.
Salajast baasi teab ainult allkirjastamisteenus:
sest ja . Determinant on
NTRU-võrrand seega kehtib. Mõlemad vektorid on lühikesed.
1. samm: arvustuse räsimine
Oletame, et arvustuse andmeobjekt annab
2. samm: esimene, halb lahend
rahuldab tingimust . Kuid pikkus on — palju liiga pikk.
3. samm: salajase baasiga lühendamine
Allkirjastamisteenus väljendab sihtpunkti oma lühikeses baasis:
Sellest tuleb ja . Ümardatuna , annab võrepunkti
Kontroll: , seega tõepoolest hulgas . Lahutame:
Pikkus:
See ongi allkiri.
4. samm: sama menetlus avaliku baasiga
Kellel on teada ainult , sellel on baas . Sama ümardamisarvutus annab seal võrepunkti ja seega
Samuti võrrandi kehtiv lahend — aga seitse korda pikem. Kui vastuvõtupiir seatakse allapoole 26, on see väärtusetu.
See on FALCONi peiduluuk ühes reas.
5. samm: brauser kontrollib
Brauser saab arvustuse, soola ja . Ta arvutab räsi uuesti, saab , taastab
ja kontrollib pikkust:
6. samm: keegi muudab arvustuse teksti
Kui teksti tagantjärele muudetakse, muutub sisuräsi ja sellega punkt, ütleme
Vana allkiri jääb -ks, aga
Me võime arvustuse kustutada. Muuta me seda märkamatult ei saa.
Aus märkus näite kohta
Kahes mõõtmes saab ründaja lühikesi lahendeid lihtsalt läbi proovida — jaoks näiteks . See näide ei ole turvaline; ta näitab ainult mehhanismi. FALCON-1024 puhul on vektoril 2048 kordajat ja seal ei vii läbiproovimine kuhugi.
12. Miks lihtsalt ei ümardata?
- sammu menetlust nimetatakse Babai ümardamiseks. Õppenäite jaoks piisab sellest — tõelise allkirjastamismeetodi jaoks mitte.
Põhjus: ümardatud allkirjad ei jaotu ühtlaselt. Nende kuju sõltub salajase baasi geomeetriast. Piisavalt paljudest allkirjadest saaks selle geomeetria taastada — ja sellega privaatvõtme. Just selle peale on varasemad võrepõhised allkirjastamismeetodid komistanud.
FALCON tõmbab lühikesed vektorid seetõttu diskreetsest Gaussi jaotusest üle võre:
Sihtpunkti lähedal olevad väärtused on tõenäolisemad, aga see, milline neist täpselt valitakse, on juhuslik. Tulemuseks on jaotus, mis ei reeda kasutatud baasi kohta midagi — matemaatiliselt: seda ei saa eristada jaotusest, mis sõltub ainult võrest endast.
See sämpler on FALCONi kõige nõudlikum osa. Ta töötab rekursiivselt üle puustruktuuri ja kasutab ujukomaarve — mis teeb teostuse tundlikuks ja on peamine põhjus, miks FALCONit on raskem korrektselt teostada kui ML-DSA-d.
13. Mida tegelikult edastatakse
Allkiri koosneb osadest
Ainult — mitte paar. arvutab kontrollija ise:
Kuna kordajad on väikesed ja hajuvad nulli ümber, saab neid tugevalt kokku pakkida. See on FALCONi silmatorkavalt kompaktsete allkirjade põhjus:
| avalik võti | allkiri | |
|---|---|---|
| FALCON-512 | 897 B | ~666 B |
| FALCON-1024 | 1 793 B | ~1 280 B |
Võrdluseks: ML-DSA-87 vajab 4 627 baiti. McGesundis ei ole kumbki neist allkirjadest siiski QR-koodis endas — kleebis kannab ainult Ed25519 Envelope'i; kvantijärgsed templid asuvad andmekirje juures ja laaditakse kontrollimisel juurde. Suurus ei otsusta siin seega prinditavuse, vaid salvestusruumi ja edastuse üle: FALCONi tempel on umbes veerand ML-DSA templi suurusest.
14. Miks FALCON kiiresti kontrollib
Naiivne polünoomide korrutamine maksab
Kiire Fourier' teisendusega langeb see umbes tasemele
korral on see vahe miljoni ja umbes kümne tuhande operatsiooni vahel. Seepärast käib kontroll külastaja brauseris millisekunditega — ja seepärast on nimes F:
FAst Fourier Lattice-based COmpact signatures over NTRU.
15. Kulg pildis
16. Miks ründaja läbi kukub
Ta teab -d ja sellega kogu võret. Ta teab ka sihtpunkti , niipea kui arvustus on avalik. Puudu on tal lühike baas.
Arvustuse võltsimiseks peaks ta ise valitud jaoks leidma lühikese vektori — üksnes avaliku kirjelduse põhjal. See on ülesanne, mida näite 4. samm illustreeris: ilma heade vektoriteta jõuab sama arvutus palju liiga pika lahendini.
Mõõtmes 1024 on parimad teadaolevad meetodid — nii klassikalised kui ka kvantpõhised — sellest kaugel.
17. Mida McGesund sellega konkreetselt teeb
Envelope. Iga allkirjastatud arvustus kannab Ed25519 allkirja. See on kohustuslik variant — klassikaline, väga väike, igas brauseris natiivselt kontrollitav.
Kvantijärgsed templid. Nende kõrval asub üks või kaks kvantiresistentset allkirja. Millised, sõltub paketist:
| Pakett | saadaolevad allkirjatasemed |
|---|---|
| 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, mõlemad paralleelselt |
Paralleelne variant on teadlikult üleliigne. FALCON toetub NTRU-võredele, ML-DSA moodulvõredele. Kui üks neist kahest perekonnast peaks osutuma nõrgemaks, kui täna eeldatakse, kannab teine edasi.
Ajaankur. Allkirjastamisvõtme sõrmejälg ankurdatakse OpenTimestampsi kaudu Bitcoini plokki. Sellega ei ole tõendatud üksnes see, et allkiri on ehtne, vaid ka see, et ta oli teataval ajahetkel juba olemas — ilma et keegi peaks uskuma meie ajatemplit.
Kõik see arvutatakse lugeja brauseris WASM-mooduli abil. Meie tarnime andmed; kontroll käib külastaja seadmes. Kui me homme võrgust kaoksime, jääks juba korra laaditud arvustus kontrollitavaks.
Nimede kohta: FALCONit standarditakse praegu nimega FN-DSA; kavand on ette nähtud FIPS 206-na, kuid ei ole veel lõpetatud. Seepärast kannavad tasemed McGesundi koodis nimesid FN-DSA-512 ja FN-DSA-1024, isegi kui kõnepruugis räägitakse endiselt FALCONist.
18. Kõige tähtsam intuitsioon
Avalik võti on labürindi täielik kirjeldus. Igaüks tohib seda vaadata.
Allkiri on tõend: „Ma leidsin just selle arvustuse jaoks väga lühikese tee."
Privaatvõti on otseteede tundmine.
Lugeja ei pea otseteid teadma. Ta üksnes mõõdab järele, kas esitatud tee on tõepoolest lühike ja kuulub tõepoolest selle arvustuse juurde. Mõlemat saab ta teha ilma meieta.
Kes teksti muudab, nihutab punkti — ja vana tee viib tühjusesse.