Allekirjoitusmenetelmä
FALCON matemaattisesti selitettynä
Miten McGesund-arvio allekirjoitetaan FN-DSA:lla (FALCON) — ja miksi yksi muutettu merkki rikkoo allekirjoituksen.
Päivitetty: 2026-09-07
1. Mistä tässä on kyse
Arvio McGesundissa ei ole tietokannan tekstikenttä, johon on vain uskottava. Se allekirjoitetaan digitaalisesti lähetyshetkellä, ja jokainen kävijä voi myöhemmin laskea allekirjoituksen uudelleen omassa selaimessaan.
Osaan näistä allekirjoituksista käytämme FALCONia — tarkemmin sanottuna menetelmiä FN-DSA-512 ja FN-DSA-1024. Tämä kirjoitus selittää, mitä siinä matemaattisesti tapahtuu.
Tärkeä huomautus aluksi:
FALCON ei ole salausmenetelmä. Arviotekstihän on tarkoitettu luettavaksi. FALCON ei todista salassapitoa vaan alkuperän ja eheyden.
2. Mitä tarkalleen allekirjoitetaan
Allekirjoitettavana ei ole leipäteksti vaan tiivis tietokohde, joka naulaa tekstin yksikäsitteisesti kiinni:
{
"v": 1,
"typ": "rev-comment",
"f": "<yritystunnus>",
"c": "<arviotunnus>",
"h": "<arviotekstin SHA-256>",
"rh": "<koko lähetystietueen SHA-256>",
"rv": 1,
"qh": "<QR-Envelopen SHA-256, vain QR-arvioissa>",
"iat": 1757203200
}
Tämä on viestimme . Se sitoo yhteen:
- mihin yritykseen arvio kuuluu (
f), - mistä arviosta on kyse (
c), - mikä teksti sen takana oli — tiivistearvona (
h), - mikä tietue kokonaisuudessaan lähetettiin (
rh): teksti, sydämet, sijaintitila ja käynnin syytä koskevat tiedot, kanonisesti sarjallistettuina ja tiivistettyinä, skeemaversiossarv, - mistä QR-koodista arvio on peräisin (
qh) — ilman QR-koodia annetussa arviossa kenttä jää pois, - milloin allekirjoitettiin (
iat).
Yksi muutettu merkki arviotekstissä rikkoo tämän ketjun. Juuri se on tarkoitus — ja kentän rh myötä sama pätee jälkikäteen siirrettyyn sydämeen tai muutettuun sijaintitilaan.
3. Perusongelma
Yritysprofiilille saapuva lukija kohtaa kaksi kysymystä:
- Onko tämä arvio todella peräisin McGesund-järjestelmästä?
- Onko sitä muutettu jälkikäteen?
Sitä varten on avainpari:
- yksityinen avain — pysyy allekirjoituspalvelussa
- julkinen avain — saa olla kenellä tahansa
Allekirjoittaminen tapahtuu yksityisellä, todentaminen julkisella avaimella. Ja nimenomaan lukijan laitteella, ei meidän palvelimellamme.
4. Miksi FALCON?
Monet nykyiset allekirjoitusmenetelmät perustuvat ongelmiin, jotka ovat klassisille tietokoneille vaikeita mutta voisivat riittävän suurille kvanttitietokoneille muuttua selvästi helpommiksi.
Arvion kohdalla tämä on olennaisempaa kuin ohimenevässä viestissä: arvion on määrä olla todennettavissa vielä viiden tai kymmenen vuoden kuluttua. Se, joka allekirjoittaa tänään, allekirjoittaa merkinnän koko elinkaareksi.
Siksi FALCON perustuu hilakryptografiaan:
Rakennetaan matemaattisesti helposti kuvattava hila, jossa tietty hakutehtävä on äärimmäisen vaikea.
5. Mikä on matemaattinen hila?
Kaksi vektoria:
Kaikki kokonaislukukertoimiset yhdistelmät
muodostavat pisteistä koostuvan hilan. Esimerkiksi:
Ratkaisevaa on:
Hila itse on helppo kuvata. Tiettyjen ominaisuuksien löytäminen siitä on hyvin vaikeaa.
6. Salaisuus on lyhyissä vektoreissa
Klassinen vaikea tehtävä kuuluu:
Tämä on Shortest Vector Problem. Kahdessa ulottuvuudessa sen voi ratkaista kokeilemalla. FALCON toimii ulottuvuudessa 512 tai 1024 — siellä se on toivotonta.
FALCON ei kuitenkaan tarvitse kaikkein lyhintä vektoria sinänsä, vaan jotakin siihen liittyvää: ennalta annettua kohdepistettä lähellä olevan hilapisteen löytämistä. Sekin on vaikeaa ilman oikeaa lisätietoa.
7. Polynomit lukujen sijaan
FALCON käyttää NTRU-hilaa ja laskee polynomeilla. Yksittäisten lukujen sijaan siis kerroinlistoilla:
Laskutoimitukset tehdään renkaassa
Se tarkoittaa:
- : laskeminen modulo . Kun , esimerkiksi , sillä .
- : pitää polynomit kiinteän mittaisina.
FALCON käyttää konkreettisesti:
8. Keskeinen temppu
Yksityinen avain koostuu neljästä pienestä polynomista
NTRU-yhtälön mukaisesti
Nämä neljä muodostavat yhdessä salaisen, hyväluontoisen hilakannan — hilan kuvauksen lyhyistä vektoreista.
Julkinen avain on olennaisesti yksi ainoa polynomi:
Polynomista saadaan sama hila, mutta kömpelössä kannassa, joka koostuu pitkistä vektoreista:
Tämä on FALCONin koko ydin. Molemmat kannat kuvaavat samaa hilaa. Toinen vain kelpaa laskemiseen ja toinen ei.
Sen voi kuvitella kaupungin karttana: julkista on täydellinen kartta. Salaista on oikoteiden tuntemus.
9. Arviosta tulee piste
Ennen allekirjoittamista payload-kohde kulkee tiivistefunktion läpi. FALCON käyttää siihen hash-to-point-menettelyä: viestistä ei tule lukuarvoa vaan suoraan piste renkaassa.
Lisäksi allekirjoituspalvelu arpoo satunnaisen saltin (320 bittiä) ja tiivistää sen mukaan:
Salt ei ole koriste. Ilman sitä sama arvio tuottaisi aina saman allekirjoituksen, ja useista allekirjoituksista voitaisiin rekonstruoida salainen kanta. Siksi se kulkee mukana allekirjoitukseen.
10. Mikä on kelvollinen allekirjoitus
Etsitään paria
jolla on kaksi ominaisuutta:
Pelkkä ensimmäinen ehto on triviaalisti täytettävissä — asetetaan ja . Toinen ehto tekee tehtävästä vaikean.
11. Täysin läpi laskettu miniesimerkki
Kutistamme kaiken lelukokoon: polynomit, joissa on vain yksi kerroin, siis tavallisia lukuja, ja
Yksityinen avain. Kaksi pientä lukua:
Julkinen avain. On , sillä . Siis:
Hila. .
Julkinen kanta saadaan suoraan luvusta :
Molemmat kuuluvat joukkoon — ja molemmat ovat pitkiä.
Salaisen kannan tuntee vain allekirjoituspalvelu:
sillä ja . Determinantti on
joten NTRU-yhtälö menee tasan. Molemmat vektorit ovat lyhyitä.
Askel 1: Arvion tiivistäminen
Oletetaan, että arvion payload-kohteesta tulee
Askel 2: Ensimmäinen, huono ratkaisu
toteuttaa ehdon . Mutta pituus on — aivan liian pitkä.
Askel 3: Lyhentäminen salaisen kannan avulla
Allekirjoituspalvelu ilmaisee kohdepisteen lyhyessä kannassaan:
Siitä seuraa ja . Pyöristettynä arvoihin , saadaan hilapiste
Tarkistus: , siis todella joukossa . Vähennetään:
Pituus:
Tämä on allekirjoitus.
Askel 4: Sama menettely julkisella kannalla
Sillä, joka tuntee vain arvon , on kanta . Sama pyöristyslasku antaa siellä hilapisteen ja siten
Niin ikään kelvollinen yhtälön ratkaisu — mutta seitsemän kertaa pidempi. Jos hyväksymisraja asetetaan alle 26:n, se on arvoton.
Tämä on FALCONin salaluukku yhdellä rivillä.
Askel 5: Selain tarkistaa
Selain saa arvion, saltin ja arvon . Se laskee tiivisteen uudelleen, saa , rekonstruoi
ja tarkistaa pituuden:
Askel 6: Joku muuttaa arviotekstiä
Jos tekstiä muutetaan jälkikäteen, sisältötiiviste muuttuu ja sen myötä piste, sanotaan
Vanha allekirjoitus pysyy arvossa , mutta
Voimme poistaa arvion. Muuttaa emme voi sitä ilman, että se huomataan.
Rehellisyyshuomautus esimerkistä
Kahdessa ulottuvuudessa hyökkääjä voi yksinkertaisesti kokeilla lyhyitä ratkaisuja läpi — arvolle vaikkapa . Esimerkki ei ole turvallinen; se näyttää vain mekanismin. FALCON-1024:ssä vektorilla on 2048 kerrointa, eikä siellä kokeileminen johda mihinkään.
12. Miksei yksinkertaisesti pyöristetä?
Askeleen 3 menettelyä kutsutaan Babain pyöristykseksi. Oppikirjaesimerkkiin se riittää — todelliseen allekirjoitusmenetelmään ei.
Syy: pyöristetyt allekirjoitukset eivät jakaudu tasaisesti. Niiden muoto riippuu salaisen kannan geometriasta. Riittävän monesta allekirjoituksesta tämä geometria olisi rekonstruoitavissa — ja sen myötä yksityinen avain. Juuri tähän aiemmat hilapohjaiset allekirjoitusmenetelmät ovat kaatuneet.
Siksi FALCON arpoo lyhyet vektorit diskreetistä Gaussin jakaumasta hilan yli:
Kohdepistettä lähellä olevat arvot ovat todennäköisempiä, mutta se, mikä niistä tarkalleen valitaan, on satunnaista. Tuloksena on jakauma, joka ei paljasta mitään käytetystä kannasta — matemaattisesti: sitä ei voi erottaa jakaumasta, joka riippuu vain hilasta itsestään.
Tämä sampleri on FALCONin vaativin osa. Se etenee rekursiivisesti puurakenteen yli ja käyttää liukulukuja — mikä tekee toteutuksesta arkaluontoisen ja on tärkein syy siihen, että FALCON on vaikeampi toteuttaa oikein kuin ML-DSA.
13. Mitä todella siirretään
Allekirjoitus koostuu osista
Vain — ei pari. Osan laskee todentaja itse:
Koska :n kertoimet ovat pieniä ja hajaantuvat nollan ympärille, ne ovat vahvasti pakattavissa. Se on syy FALCONin silmiinpistävän tiiviisiin allekirjoituksiin:
| julkinen avain | allekirjoitus | |
|---|---|---|
| FALCON-512 | 897 B | ~666 B |
| FALCON-1024 | 1 793 B | ~1 280 B |
Vertailun vuoksi: ML-DSA-87 tarvitsee 4 627 tavua. McGesundissa mikään näistä allekirjoituksista ei kuitenkaan ole itse QR-koodissa — tarrassa on vain Ed25519-Envelope; post-kvanttileimat ovat tietueen yhteydessä ja ladataan todennettaessa. Koko ei siis ratkaise tässä tulostettavuutta vaan muistin ja siirron: FALCON-leima on kooltaan runsas neljäsosa ML-DSA-leimasta.
14. Miksi FALCON todentaa nopeasti
Polynomien kertolasku naiivisti maksaa
Nopealla Fourier-muunnoksella se laskee suunnilleen tasolle
Kun , se on ero miljoonan ja noin kymmenentuhannen operaation välillä. Siksi todennus kävijän selaimessa kestää millisekunteja — ja siksi nimessä on F:
FAst Fourier Lattice-based COmpact signatures over NTRU.
15. Kulku kuvana
16. Miksi hyökkääjä epäonnistuu
Hän tuntee arvon ja siten koko hilan. Hän tuntee myös kohdepisteen heti, kun arvio on julkinen. Häneltä puuttuu lyhyt kanta.
Väärentääkseen arvion hänen pitäisi löytää itse valitsemalleen :lle lyhyt vektori — pelkän julkisen kuvauksen perusteella. Se on tehtävä, jota esimerkin askel 4 havainnollisti: ilman hyviä vektoreita sama lasku päätyy aivan liian pitkään ratkaisuun.
Ulottuvuudessa 1024 parhaat tunnetut menetelmät — sekä klassiset että kvanttipohjaiset — ovat siitä kaukana.
17. Mitä McGesund tekee tällä käytännössä
Envelope. Jokainen allekirjoitettu arvio kantaa Ed25519-allekirjoitusta. Se on pakollinen variantti — klassinen, hyvin pieni, natiivisti todennettavissa jokaisessa selaimessa.
Post-kvanttileimat. Sen rinnalla on yksi tai kaksi kvanttiresistenttiä allekirjoitusta. Mitkä, riippuu paketista:
| Paketti | käytettävissä olevat allekirjoitustasot |
|---|---|
| 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, molemmat rinnakkain |
Rinnakkainen variantti on tarkoituksella redundantti. FALCON nojaa NTRU-hiloihin, ML-DSA moduulihiloihin. Jos toinen näistä perheistä osoittautuisi heikommaksi kuin nykyisin oletetaan, toinen kantaa edelleen.
Aikaankkuri. Allekirjoitusavaimen sormenjälki ankkuroidaan OpenTimestampsin kautta Bitcoin-lohkoon. Siten on osoitettu paitsi se, että allekirjoitus on aito, myös se, että se oli olemassa jo tiettynä ajankohtana — ilman että kenenkään täytyisi uskoa meidän aikaleimaamme.
Kaikki tämä lasketaan lukijan selaimessa WASM-moduulin kautta. Me toimitamme tiedot; todennus tapahtuu kävijän laitteella. Jos poistuisimme huomenna verkosta, kerran ladattu arvio pysyisi todennettavissa.
Nimien sijoittamisesta: FALCONia standardoidaan parhaillaan nimellä FN-DSA; luonnos on tarkoitus julkaista standardina FIPS 206, mutta työ ei ole vielä valmis. Siksi tasot ovat McGesundin koodissa nimeltään FN-DSA-512 ja FN-DSA-1024, vaikka kielenkäytössä puhutaan edelleen FALCONista.
18. Tärkein intuitio
Julkinen avain on labyrintin täydellinen kuvaus. Jokainen saa katsoa sitä.
Allekirjoitus on osoitus: ”Olen löytänyt juuri tälle arviolle hyvin lyhyen reitin.”
Yksityinen avain on oikoteiden tuntemus.
Lukijan ei tarvitse tuntea oikoteitä. Hän vain mittaa, onko esitetty reitti todella lyhyt ja kuuluuko se todella tähän arvioon. Molemmat hän voi tehdä ilman meitä.
Se, joka muuttaa tekstiä, siirtää pistettä — ja vanha reitti johtaa tyhjään.