Signaturmetoder
FALCON matematiskt förklarat
Hur ett omdöme på McGesund undertecknas med FN-DSA (FALCON) — och varför ett ändrat tecken bryter underskriften.
Uppdaterat: 2026-09-07
1. Vad det handlar om
Ett omdöme på McGesund är inte ett textfält i en databas som man bara får tro på. Det signeras digitalt när det skickas in, och varje besökare kan senare räkna efter signaturen i sin egen webbläsare.
För en del av dessa signaturer använder vi FALCON — närmare bestämt FN-DSA-512 och FN-DSA-1024. Denna artikel förklarar vad som matematiskt sker.
Viktigt att slå fast först:
FALCON är ingen kryptering. Omdömestexten ska ju läsas. FALCON bevisar inte sekretess, utan ursprung och oförändrat innehåll.
2. Vad som exakt signeras
Det som signeras är inte den löpande texten, utan ett kompakt dataobjekt som entydigt spikar fast texten:
{
"v": 1,
"typ": "rev-comment",
"f": "<Företags-ID>",
"c": "<Omdömes-ID>",
"h": "<SHA-256 av omdömestexten>",
"rh": "<SHA-256 av hela den inskickade datamängden>",
"rv": 1,
"qh": "<SHA-256 av QR-envelopen, endast vid QR-omdömen>",
"iat": 1757203200
}
Detta är vårt meddelande . Det binder samman:
- vilket företag omdömet hör till (
f), - vilket omdöme det gäller (
c), - vilken text som låg bakom — som hashvärde (
h), - vilken datamängd som lämnades in i sin helhet (
rh): text, hjärtan, geostatus och uppgifter om anledning, kanoniskt serialiserade och hashade, i schemaversionenrv, - ur vilken QR-kod omdömet kommer (
qh) — vid ett omdöme utan QR utgår fältet, - när signeringen skedde (
iat).
Ett ändrat tecken i omdömestexten bryter denna kedja. Det är just avsikten — och sedan rh gäller detsamma för ett i efterhand förskjutet hjärta eller en ändrad geostatus.
3. Grundproblemet
En läsare som kommer till en företagsprofil står inför två frågor:
- Kommer detta omdöme verkligen från McGesund-systemet?
- Har det ändrats i efterhand?
För detta finns ett nyckelpar:
- en privat nyckel — stannar i signaturtjänsten
- en offentlig nyckel — får alla ha
Signeringen sker med den privata, verifieringen med den offentliga nyckeln. Och det på läsarens enhet, inte på vår server.
4. Varför FALCON?
Många av dagens signaturmetoder vilar på problem som är svåra för klassiska datorer, men som skulle kunna bli betydligt lättare för tillräckligt stora kvantdatorer.
Vid ett omdöme är det mer relevant än vid ett flyktigt meddelande: ett omdöme ska gå att kontrollera om fem eller tio år. Den som undertecknar i dag undertecknar för hela postens livslängd.
FALCON vilar därför på gitterkryptografi:
Man bygger ett matematiskt enkelt beskrivbart gitter där en bestämd sökuppgift är extremt svår.
5. Vad är ett matematiskt gitter?
Två vektorer:
Alla heltalskombinationer
ger ett gitter av punkter. Till exempel:
Det avgörande är:
Gittret självt är lätt att beskriva. Att hitta bestämda egenskaper i det är mycket svårt.
6. Hemligheten är korta vektorer
Den klassiska svåra uppgiften lyder:
Det är Shortest Vector Problem. I två dimensioner kan man pröva sig fram. FALCON arbetar i dimension 512 eller 1024 — där är det utsiktslöst.
FALCON behöver dock inte den kortaste vektorn rakt av, utan något besläktat: att till en given målpunkt hitta en näraliggande gitterpunkt. Även det är svårt utan rätt tilläggsinformation.
7. Polynom i stället för tal
FALCON använder ett NTRU-gitter och räknar med polynom. Alltså med koefficientlistor i stället för enskilda tal:
Räkningen sker i ringen
Det betyder:
- : räkning modulo . Vid till exempel , eftersom .
- : håller polynomen på fast längd.
FALCON använder konkret:
8. Det centrala knepet
Den privata nyckeln består av fyra små polynom
med NTRU-ekvationen
Dessa fyra bildar tillsammans en hemlig, välartad gitterbas — en beskrivning av gittret med korta vektorer.
Den offentliga nyckeln är i allt väsentligt ett enda polynom:
Ur följer samma gitter, men i en ohanterlig bas av långa vektorer:
Det är hela kärnan i FALCON. Båda baserna beskriver samma gitter. Bara det att den ena går att räkna med och den andra inte.
Man kan tänka sig det som en stadskarta: offentlig är den fullständiga kartan. Hemlig är kunskapen om genvägarna.
9. Omdömet blir en punkt
Innan signeringen går nyttolastobjektet genom en hashfunktion. FALCON använder för detta Hash-to-Point: ur meddelandet blir inget talvärde, utan direkt en punkt i ringen.
Dessutom drar signaturtjänsten ett slumpmässigt salt (320 bitar) och hashar in det:
Saltet är ingen utsmyckning. Utan det skulle samma omdöme alltid ge samma signatur, och ur många signaturer skulle den hemliga basen gå att rekonstruera. Det följer därför med in i signaturen.
10. Vad en giltig signatur är
Sökt är ett par
med två egenskaper:
Det första villkoret ensamt är trivialt att uppfylla — man sätter och . Det andra villkoret gör uppgiften svår.
11. Ett fullständigt genomräknat miniexempel
Vi krymper allt till leksaksformat: polynom med bara en koefficient, alltså vanliga tal, och
Den hemliga nyckeln. Två små tal:
Den offentliga nyckeln. Det gäller , eftersom . Alltså:
Gittret. .
Den offentliga basen följer direkt ur :
Båda ligger i — och båda är långa.
Den hemliga basen känner bara signaturtjänsten:
eftersom och . Determinanten är
NTRU-ekvationen går alltså ihop. Båda vektorerna är korta.
Steg 1: Hasha omdömet
Anta att omdömets nyttolastobjekt ger
Steg 2: En första, dålig lösning
uppfyller . Men längden är — alldeles för lång.
Steg 3: Korta ned med den hemliga basen
Signaturtjänsten uttrycker målpunkten i sin korta bas:
Det leder till och . Avrundat till , ger det gitterpunkten
Kontroll: , alltså faktiskt i . Subtrahera:
Längd:
Det är signaturen.
Steg 4: Samma metod med den offentliga basen
Den som bara känner har basen . Samma avrundningsberäkning ger där gitterpunkten och därmed
Också en giltig lösning på ekvationen — men sju gånger längre. Sätts acceptansgränsen under 26 är den värdelös.
Det är FALCONs fallucka på en rad.
Steg 5: Webbläsaren verifierar
Webbläsaren får omdömet, saltet och . Den beräknar hashen på nytt, får , rekonstruerar
och prövar längden:
Steg 6: Någon ändrar omdömestexten
Ändras texten i efterhand ändras innehållshashen och därmed punkten, säg
Den gamla signaturen förblir , men
Vi kan radera ett omdöme. Ändra det kan vi inte utan att det märks.
Ärlighetsanmärkning om exemplet
I två dimensioner kan en angripare helt enkelt pröva sig fram till korta lösningar — för till exempel . Exemplet är inte säkert; det visar bara mekanismen. Hos FALCON-1024 har vektorn 2048 koefficienter, och där leder prövande ingenstans.
12. Varför avrundar man inte bara?
Metoden ur steg 3 heter Babai-avrundning. För ett läroboksexempel räcker den — för en verklig signaturmetod inte.
Skälet: de avrundade signaturerna ligger inte jämnt fördelade. Deras form beror på den hemliga basens geometri. Ur tillräckligt många signaturer skulle denna geometri gå att rekonstruera — och därmed den privata nyckeln. Just på detta har tidigare gitterbaserade signaturmetoder gått bet.
FALCON drar därför de korta vektorerna ur en diskret gaussfördelning över gittret:
Värden nära målpunkten är mer sannolika, men vilket som exakt väljs är slumpmässigt. Resultatet är en fördelning som inte avslöjar något om den använda basen — matematiskt: den går inte att skilja från en fördelning som bara beror på gittret självt.
Denna sampler är den mest krävande delen av FALCON. Den löper rekursivt över en trädstruktur och arbetar med flyttal — vilket gör implementationen känslig och är huvudskälet till att FALCON är svårare att genomföra korrekt än ML-DSA.
13. Vad som faktiskt överförs
Signaturen består av
Endast — inte paret. räknar verifieraren fram själv:
Eftersom koefficienterna i är små och sprider sig runt noll går de att komprimera kraftigt. Det är skälet till FALCONs påfallande kompakta signaturer:
| offentlig nyckel | signatur | |
|---|---|---|
| FALCON-512 | 897 B | ~666 B |
| FALCON-1024 | 1 793 B | ~1 280 B |
Som jämförelse: ML-DSA-87 behöver 4 627 byte. Hos McGesund sitter dock ingen av dessa signaturer i själva QR-koden — dekalen bär endast Ed25519-envelopen; PQ-stämplarna ligger vid datamängden och laddas in vid verifieringen. Storleken avgör här alltså inte tryckbarheten, utan lagring och överföring: en FALCON-stämpel är drygt en fjärdedel så stor som en ML-DSA-stämpel.
14. Varför FALCON verifierar snabbt
Naiv polynommultiplikation kostar
Med den snabba fouriertransformen sjunker det till ungefär
Vid är det skillnaden mellan en miljon och runt tiotusen operationer. Därför löper verifieringen i en besökares webbläsare på millisekunder — och därför sitter F:et i namnet:
FAst Fourier Lattice-based COmpact signatures over NTRU.
15. Förloppet i bild
16. Varför en angripare misslyckas
Han känner till och därmed hela gittret. Han känner också målpunkten , så snart omdömet är offentligt. Vad han saknar är den korta basen.
För att förfalska ett omdöme skulle han behöva hitta en kort vektor till ett självvalt — enbart ur den offentliga beskrivningen. Det är den uppgift som steg 4 i exemplet illustrerade: utan de goda vektorerna landar samma beräkning i en alldeles för lång lösning.
I dimension 1024 är de bästa kända metoderna — såväl klassiska som kvantbaserade — långt ifrån detta.
17. Vad McGesund konkret gör med detta
Envelopen. Varje signerat omdöme bär en Ed25519-signatur. Det är obligatoriet — klassisk, mycket liten, nativt verifierbar i varje webbläsare.
Post-kvantstämplarna. Bredvid ligger en eller två kvantresistenta signaturer. Vilka beror på abonnemanget:
| Abonnemang | tillgängliga signaturnivåer |
|---|---|
| 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, båda parallellt |
Den parallella varianten är medvetet redundant. FALCON står på NTRU-gitter, ML-DSA på modulgitter. Skulle en av de båda familjerna vara svagare än vad man i dag antar bär den andra vidare.
Tidsankaret. Signaturnyckelns fingeravtryck förankras via OpenTimestamps i ett Bitcoin-block. Därmed är inte bara belagt att signaturen är äkta, utan också att den redan fanns vid en bestämd tidpunkt — utan att någon behöver tro på vår tidsstämpel.
Allt detta räknas i läsarens webbläsare, via en WASM-modul. Vi levererar data; verifieringen löper på besökarens enhet. Gick vi ned från nätet i morgon skulle ett en gång laddat omdöme förbli kontrollerbart.
Om namnen: FALCON standardiseras för närvarande som FN-DSA; utkastet är avsett som FIPS 206, men är ännu inte avslutat. Därför heter nivåerna i McGesund-koden FN-DSA-512 och FN-DSA-1024, även om man i språkbruket fortsatt talar om FALCON.
18. Den viktigaste intuitionen
Den offentliga nyckeln är den fullständiga beskrivningen av en labyrint. Alla får titta på den.
Signaturen är beviset: "Jag har hittat en mycket kort väg för just detta omdöme."
Den privata nyckeln är kunskapen om genvägarna.
Läsaren behöver inte känna genvägarna. Han mäter bara efter om den framlagda vägen verkligen är kort och verkligen hör till detta omdöme. Bådadera kan han göra utan oss.
Den som ändrar texten flyttar punkten — och den gamla vägen leder ut i tomma intet.