Parakstu algoritms
FALCON matemātiski izskaidrots
Kā McGesund atsauksme tiek parakstīta ar FN-DSA (FALCON) — un kāpēc viena mainīta rakstzīme salauž parakstu.
Stāvoklis: 2026-09-07
1. Par ko šeit ir runa
Atsauksme McGesund vietnē nav vienkārši teksta lauks datubāzē, kuram jātic uz vārda. Nosūtīšanas brīdī tā tiek digitāli parakstīta, un vēlāk ikviens apmeklētājs var šo parakstu pārrēķināt savā pārlūkprogrammā.
Daļai šo parakstu mēs izmantojam FALCON — precīzāk, FN-DSA-512 un FN-DSA-1024. Šis raksts skaidro, kas tur matemātiski notiek.
Svarīgi jau iepriekš:
FALCON nav šifrēšana. Atsauksmes tekstam taču ir jābūt lasāmam. FALCON pierāda nevis slepenību, bet gan izcelsmi un neskartību.
2. Kas tieši tiek parakstīts
Parakstīts tiek nevis pats teksts, bet kompakts datu objekts, kas viennozīmīgi nostiprina tekstu:
{
"v": 1,
"typ": "rev-comment",
"f": "<uzņēmuma ID>",
"c": "<atsauksmes ID>",
"h": "<atsauksmes teksta SHA-256>",
"rh": "<visa iesniegtā datu ieraksta SHA-256>",
"rv": 1,
"qh": "<QR aploksnes SHA-256, tikai QR atsauksmēm>",
"iat": 1757203200
}
Tas ir mūsu ziņojums . Tas sasaista kopā:
- kuram uzņēmumam atsauksme pieder (
f), - par kuru atsauksmi ir runa (
c), - kāds teksts aiz tās stāvēja — kā jaucējvērtība (
h), - kāds datu ieraksts kopumā tika iesniegts (
rh): teksts, sirdis, ģeostatuss un ziņas par apmeklējuma iemeslu, kanoniski serializēti un sajaukti, shēmas versijārv, - no kura QR koda atsauksme nāk (
qh) — atsauksmei bez QR šis lauks atkrīt, - kad tika parakstīts (
iat).
Viena mainīta rakstzīme atsauksmes tekstā šo ķēdi salauž. Tieši tāds ir nolūks — un kopš rh tas pats attiecas arī uz vēlāk pārbīdītu sirdi vai mainītu ģeostatusu.
3. Pamatproblēma
Lasītājs, kas nonāk uzņēmuma profilā, saskaras ar diviem jautājumiem:
- Vai šī atsauksme tiešām nāk no McGesund sistēmas?
- Vai tā vēlāk ir mainīta?
Tam kalpo atslēgu pāris:
- privātā atslēga — paliek parakstīšanas dienestā
- publiskā atslēga — to drīkst zināt ikviens
Parakstīts tiek ar privāto, pārbaudīts ar publisko atslēgu. Un tas notiek lasītāja ierīcē, nevis uz mūsu servera.
4. Kāpēc FALCON?
Daudzi mūsdienu parakstu algoritmi balstās uz problēmām, kas klasiskiem datoriem ir grūtas, bet pietiekami lieliem kvantu datoriem varētu kļūt ievērojami vieglākas.
Atsauksmei tas ir būtiskāk nekā īslaicīgam ziņojumam: atsauksmei arī pēc pieciem vai desmit gadiem jābūt pārbaudāmai. Kas paraksta šodien, paraksta uz visu ieraksta dzīves laiku.
Tāpēc FALCON balstās uz režģu kriptogrāfiju:
Tiek uzbūvēts matemātiski vienkārši aprakstāms režģis, kurā noteikts meklēšanas uzdevums ir ārkārtīgi grūts.
5. Kas ir matemātisks režģis?
Divi vektori:
Visas veselo skaitļu kombinācijas
veido punktu režģi. Piemēram:
Izšķirošais ir šis:
Pašu režģi ir viegli aprakstīt. Atrast tajā noteiktas īpašības ir ļoti grūti.
6. Noslēpums ir īsi vektori
Klasiskais grūtais uzdevums skan šādi:
Tā ir Shortest Vector Problem. Divās dimensijās to var atrisināt izmēģinot. FALCON strādā 512. vai 1024. dimensijā — tur tas ir bezcerīgi.
Tomēr FALCON nav vajadzīgs īsākais vektors kā tāds, bet kaut kas radniecīgs: iepriekš dotam mērķa punktam atrast tuvu režģa punktu. Arī tas bez pareizās papildinformācijas ir grūti.
7. Polinomi skaitļu vietā
FALCON izmanto NTRU režģi un rēķina ar polinomiem. Tātad atsevišķu skaitļu vietā — ar koeficientu virknēm:
Rēķināts tiek gredzenā
Tas nozīmē:
- : rēķināšana pēc moduļa . Piemēram, ja , tad , jo .
- : notur polinomus fiksētā garumā.
FALCON konkrēti izmanto:
8. Galvenais triks
Privātā atslēga sastāv no četriem maziem polinomiem
ar NTRU vienādojumu
Šie četri kopā veido slepenu, labvēlīgu režģa bāzi — režģa aprakstu no īsiem vektoriem.
Publiskā atslēga pēc būtības ir viens vienīgs polinoms:
No izriet tas pats režģis, taču neērtā bāzē no gariem vektoriem:
Tā ir visa FALCON būtība. Abas bāzes apraksta vienu un to pašu režģi. Tikai viena ir rēķināšanai noderīga, bet otra nav.
To var iedomāties kā pilsētas plānu: publiska ir pilnā karte. Slepena ir īsceļu zināšana.
9. Atsauksme kļūst par punktu
Pirms parakstīšanas payload objekts iziet cauri jaucējfunkcijai. FALCON tam izmanto Hash-to-Point: no ziņojuma rodas nevis skaitliska vērtība, bet uzreiz punkts gredzenā.
Papildus parakstīšanas dienests izlozē nejaušu sāli (320 biti) un jauc to līdzi:
Sāls nav papildinājums. Bez tās viena un tā pati atsauksme vienmēr dotu vienu un to pašu parakstu, un no daudziem parakstiem varētu rekonstruēt slepeno bāzi. Tāpēc tā ceļo līdzi parakstā.
10. Kas ir derīgs paraksts
Meklēts ir pāris
ar divām īpašībām:
Pirmo nosacījumu vien ir triviāli izpildīt — pietiek ņemt un . Tieši otrais nosacījums padara uzdevumu grūtu.
11. Pilnībā izrēķināts mini piemērs
Mēs sarukinām visu līdz rotaļlietas izmēram: polinomi ar tikai vienu koeficientu, tātad parasti skaitļi, un
Slepenā atslēga. Divi mazi skaitļi:
Publiskā atslēga. Ir , jo . Tātad:
Režģis. .
Publiskā bāze izriet tieši no :
Abi pieder — un abi ir gari.
Slepeno bāzi zina tikai parakstīšanas dienests:
jo un . Determinants ir
tātad NTRU vienādojums izpildās. Abi vektori ir īsi.
1. solis: atsauksmi sajaukt
Pieņemsim, ka atsauksmes payload objekts dod
2. solis: pirmais, sliktais risinājums
apmierina . Bet garums ir — daudz par garu.
3. solis: saīsināšana ar slepeno bāzi
Parakstīšanas dienests izsaka mērķa punktu savā īsajā bāzē:
Tas noved pie un . Noapaļojot uz , , rodas režģa punkts
Pārbaude: , tātad tiešām pieder . Atņemam:
Garums:
Tas ir paraksts.
4. solis: tas pats aprēķins ar publisko bāzi
Kas zina tikai , tam ir bāze . Tas pats noapaļošanas aprēķins tur dod režģa punktu un līdz ar to
Arī derīgs vienādojuma risinājums — bet septiņreiz garāks. Ja pieņemšanas robeža ir zemāka par 26, tas ir bezvērtīgs.
Tās ir FALCON slēptdurvis vienā rindā.
5. solis: pārlūkprogramma pārbauda
Pārlūkprogramma saņem atsauksmi, sāli un . Tā no jauna aprēķina jaucējvērtību, iegūst , rekonstruē
un pārbauda garumu:
6. solis: kāds maina atsauksmes tekstu
Ja tekstu vēlāk maina, mainās satura jaucējvērtība un līdz ar to punkts, teiksim
Vecais paraksts paliek , bet
Mēs varam atsauksmi izdzēst. Mainīt tā, lai to nepamanītu, mēs to nevaram.
Godīga piezīme par piemēru
Divās dimensijās uzbrucējs īsus risinājumus var vienkārši izmēģināt — piemēram, gadījumā . Šis piemērs nav drošs; tas tikai parāda mehānismu. FALCON-1024 gadījumā vektoram ir 2048 koeficienti, un tur izmēģināšana neved nekur.
12. Kāpēc netiek vienkārši noapaļots?
- soļa metode saucas Babai noapaļošana. Mācību piemēram tā pietiek — īstam parakstu algoritmam ne.
Iemesls: noapaļotie paraksti neizvietojas vienmērīgi. To forma ir atkarīga no slepenās bāzes ģeometrijas. No pietiekami daudziem parakstiem šo ģeometriju varētu rekonstruēt — un līdz ar to arī privāto atslēgu. Tieši uz tā ir cietuši agrākie uz režģiem balstītie parakstu algoritmi.
Tāpēc FALCON īsos vektorus izlozē no diskrēta Gausa sadalījuma pār režģi:
Vērtības tuvu mērķa punktam ir varbūtīgākas, taču tas, kura tieši tiek izvēlēta, ir nejauši. Rezultāts ir sadalījums, kas neko neizpauž par izmantoto bāzi — matemātiski: tas nav atšķirams no sadalījuma, kas atkarīgs vienīgi no paša režģa.
Šis izlozes modulis ir prasīgākā FALCON daļa. Tas darbojas rekursīvi pār koka struktūru un strādā ar peldošā komata skaitļiem — kas padara implementāciju delikātu un ir galvenais iemesls, kāpēc FALCON ir grūtāk pareizi realizēt nekā ML-DSA.
13. Kas patiesībā tiek pārraidīts
Paraksts sastāv no
Tikai — nevis pāris. pārbaudītājs izrēķina pats:
Tā kā koeficienti ir mazi un izkliedēti ap nulli, tos var stipri saspiest. Tas ir iemesls FALCON uzkrītoši kompaktajiem parakstiem:
| publiskā atslēga | paraksts | |
|---|---|---|
| FALCON-512 | 897 B | ~666 B |
| FALCON-1024 | 1793 B | ~1280 B |
Salīdzinājumam: ML-DSA-87 vajadzīgi 4627 baiti. McGesund gadījumā gan neviens no šiem parakstiem neatrodas pašā QR kodā — uzlīme nes tikai Ed25519 aploksni; pēckvantu zīmogi atrodas pie datu ieraksta un tiek ielādēti pārbaudes brīdī. Izmērs šeit tātad neizšķir drukājamību, bet gan glabāšanu un pārraidi: FALCON zīmogs ir labu ceturtdaļu no ML-DSA zīmoga lieluma.
14. Kāpēc FALCON pārbauda ātri
Naiva polinomu reizināšana maksā
Ar ātro Furjē transformāciju tas samazinās aptuveni līdz
Pie tā ir atšķirība starp miljonu un aptuveni desmit tūkstošiem operāciju. Tāpēc pārbaude apmeklētāja pārlūkprogrammā notiek milisekundēs — un tāpēc nosaukumā ir burts F:
FAst Fourier Lattice-based COmpact signatures over NTRU.
15. Norise attēlā
16. Kāpēc uzbrucējs neizdodas
Viņš zina un līdz ar to visu režģi. Viņš zina arī mērķa punktu , tiklīdz atsauksme ir publiska. Viņam trūkst īsās bāzes.
Lai atsauksmi viltotu, viņam pašam izvēlētai vērtībai būtu jāatrod īss vektors — vienīgi no publiskā apraksta. Tas ir tas pats uzdevums, ko ilustrēja piemēra 4. solis: bez labajiem vektoriem tas pats aprēķins nonāk pie krietni par gara risinājuma.
- dimensijā labākās zināmās metodes — gan klasiskās, gan uz kvantiem balstītās — no tā ir tālu.
17. Ko McGesund ar to konkrēti dara
Aploksne. Katra parakstītā atsauksme nes Ed25519 parakstu. Tas ir obligātais variants — klasisks, ļoti mazs, katrā pārlūkprogrammā natīvi pārbaudāms.
Pēckvantu zīmogi. Blakus atrodas viens vai divi kvantu izturīgi paraksti. Kuri — atkarīgs no tarifa:
| Tarifs | pieejamie parakstu līmeņi |
|---|---|
| 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, abi paralēli |
Paralēlais variants ir apzināti dublējošs. FALCON balstās uz NTRU režģiem, ML-DSA — uz moduļu režģiem. Ja viena no abām saimēm izrādītos vājāka, nekā šodien pieņemts, otra turpina nest.
Laika enkurs. Parakstīšanas atslēgas nospiedums caur OpenTimestamps tiek noenkurots Bitcoin blokā. Tādējādi ir pierādīts ne tikai tas, ka paraksts ir īsts, bet arī tas, ka tas noteiktā brīdī jau eksistēja — un nevienam nav jātic mūsu laika zīmogam.
Viss šis aprēķins notiek lasītāja pārlūkprogrammā, caur WASM moduli. Mēs piegādājam datus; pārbaude notiek apmeklētāja ierīcē. Ja mēs rīt pazustu no tīkla, vienreiz ielādēta atsauksme paliktu pārbaudāma.
Par nosaukumu izpratni: FALCON pašlaik tiek standartizēts kā FN-DSA; projekts ir paredzēts kā FIPS 206, taču vēl nav pabeigts. Tāpēc McGesund kodā līmeņi saucas FN-DSA-512 un FN-DSA-1024, pat ja sarunvalodā joprojām runā par FALCON.
18. Svarīgākā intuīcija
Publiskā atslēga ir pilnīgs labirinta apraksts. To drīkst aplūkot ikviens.
Paraksts ir pierādījums: „Tieši šai atsauksmei es esmu atradis ļoti īsu ceļu."
Privātā atslēga ir īsceļu zināšana.
Lasītājam īsceļi nav jāzina. Viņš tikai pārmēra, vai iesniegtais ceļš tiešām ir īss un tiešām pieder šai atsauksmei. Abas lietas viņš var izdarīt bez mums.
Kas maina tekstu, pārbīda punktu — un vecais ceļš ved tukšumā.