Procedimenti di firma
FALCON spiegato matematicamente
Come una recensione di McGesund viene firmata con FN-DSA (FALCON) — e perché un carattere modificato rompe la firma.
Aggiornato: 2026-09-07
1. Di che cosa si tratta
Una recensione su McGesund non è un campo di testo in una banca dati a cui bisogna semplicemente credere. Al momento dell'invio viene firmata digitalmente, e ogni visitatore può ricalcolare questa firma in seguito nel proprio browser.
Per una parte di queste firme utilizziamo FALCON — più precisamente FN-DSA-512 e FN-DSA-1024. Questo contributo spiega che cosa accade matematicamente.
Una precisazione preliminare:
FALCON non è una cifratura. Il testo della recensione è fatto proprio per essere letto. FALCON non dimostra la riservatezza, bensì origine e integrità.
2. Che cosa viene firmato esattamente
Non viene firmato il testo discorsivo, bensì un oggetto dati compatto che fissa il testo in modo univoco:
{
"v": 1,
"typ": "rev-comment",
"f": "<ID azienda>",
"c": "<ID recensione>",
"h": "<SHA-256 del testo della recensione>",
"rh": "<SHA-256 dell'intero record inviato>",
"rv": 1,
"qh": "<SHA-256 dell'envelope QR, solo per recensioni via QR>",
"iat": 1757203200
}
Questo è il nostro messaggio . Lega insieme:
- a quale azienda appartiene la recensione (
f), - di quale recensione si tratta (
c), - quale testo vi stava dietro — come valore hash (
h), - quale record è stato inviato nel suo insieme (
rh): testo, cuori, stato geografico e indicazioni sull'occasione, serializzati canonicamente e sottoposti a hash, nella versione di schemarv, - da quale QR code proviene la recensione (
qh) — in una recensione senza QR il campo decade, - quando è stata apposta la firma (
iat).
Un carattere modificato nel testo della recensione rompe questa catena. È esattamente questo lo scopo — e da quando esiste rh lo stesso vale per un cuore spostato successivamente o per uno stato geografico modificato.
3. Il problema di fondo
Un lettore che arriva sul profilo di un'azienda si trova davanti a due domande:
- Questa recensione proviene davvero dal sistema McGesund?
- È stata modificata in un secondo momento?
A tal fine esiste una coppia di chiavi:
- una chiave privata — resta nel servizio di firma
- una chiave pubblica — può averla chiunque
Si firma con la chiave privata, si verifica con quella pubblica. E precisamente sul dispositivo del lettore, non sul nostro server.
4. Perché FALCON?
Molti procedimenti di firma odierni si fondano su problemi che per i calcolatori classici sono difficili, ma che per computer quantistici sufficientemente grandi potrebbero diventare nettamente più facili.
Per una recensione ciò è più rilevante che per un messaggio effimero: una recensione deve essere verificabile ancora fra cinque o dieci anni. Chi firma oggi, firma per l'intera vita della voce.
FALCON si fonda perciò sulla crittografia su reticoli:
Si costruisce un reticolo descrivibile in modo matematicamente semplice, nel quale un determinato compito di ricerca è estremamente difficile.
5. Che cos'è un reticolo matematico?
Due vettori:
Tutte le combinazioni a coefficienti interi
danno un reticolo di punti. Per esempio:
Decisivo è questo:
Il reticolo in sé è facile da descrivere. Trovarvi determinate proprietà è molto difficile.
6. Il segreto sono i vettori corti
Il classico compito difficile recita:
Questo è lo Shortest Vector Problem. In due dimensioni si può risolvere per tentativi. FALCON lavora in dimensione 512 o 1024 — lì è senza speranza.
A FALCON non serve però il vettore più corto in assoluto, bensì qualcosa di affine: trovare, per un punto obiettivo dato, un punto reticolare vicino. Anche questo è difficile senza l'informazione aggiuntiva giusta.
7. Polinomi invece di numeri
FALCON utilizza un reticolo NTRU e calcola con polinomi. Dunque non con singoli numeri, ma con liste di coefficienti:
Si calcola nell'anello
Ciò significa:
- : calcolare modulo . Con , per esempio, , poiché .
- : mantiene i polinomi a lunghezza fissa.
FALCON usa concretamente:
8. Il trucco centrale
La chiave privata è composta da quattro piccoli polinomi
con l'equazione NTRU
Questi quattro formano insieme una base reticolare segreta e ben condizionata — una descrizione del reticolo fatta di vettori corti.
La chiave pubblica è in sostanza un unico polinomio:
Da risulta lo stesso reticolo, ma in una base scomoda fatta di vettori lunghi:
È questo tutto il nocciolo di FALCON. Entrambe le basi descrivono lo stesso reticolo. Solo che una è utilizzabile per il calcolo e l'altra no.
Ce lo si può immaginare come una pianta della città: pubblica è la mappa completa. Segreta è la conoscenza delle scorciatoie.
9. La recensione diventa un punto
Prima di firmare, l'oggetto payload passa attraverso una funzione hash. FALCON usa a tal fine Hash-to-Point: dal messaggio non si ricava un valore numerico, bensì direttamente un punto nell'anello.
Inoltre il servizio di firma estrae un salt casuale (320 bit) e lo include nell'hash:
Il salt non è un accessorio. Senza di esso la stessa recensione darebbe sempre la stessa firma, e da molte firme si potrebbe ricostruire la base segreta. Per questo viaggia insieme alla firma.
10. Che cos'è una firma valida
Si cerca una coppia
con due proprietà:
La prima condizione da sola è banale da soddisfare — basta porre e . È la seconda condizione a rendere difficile il compito.
11. Un mini-esempio calcolato per intero
Riduciamo tutto a dimensioni giocattolo: polinomi con un solo coefficiente, dunque numeri ordinari, e
La chiave segreta. Due piccoli numeri:
La chiave pubblica. Si ha , poiché . Dunque:
Il reticolo. .
La base pubblica si ricava direttamente da :
Entrambi giacciono in — ed entrambi sono lunghi.
La base segreta la conosce solo il servizio di firma:
poiché e . Il determinante è
l'equazione NTRU torna dunque. Entrambi i vettori sono corti.
Passo 1: fare l'hash della recensione
Supponiamo che l'oggetto payload della recensione dia
Passo 2: una prima soluzione, cattiva
soddisfa . Ma la lunghezza è — troppo lunga.
Passo 3: accorciare con la base segreta
Il servizio di firma esprime il punto obiettivo nella sua base corta:
Ciò porta ad e . Arrotondando ad , si ottiene il punto reticolare
Controllo: , dunque effettivamente in . Sottraendo:
Lunghezza:
Questa è la firma.
Passo 4: lo stesso procedimento con la base pubblica
Chi conosce solo ha la base . Lo stesso calcolo di arrotondamento fornisce lì il punto reticolare e quindi
Anche questa è una soluzione valida dell'equazione — ma sette volte più lunga. Se la soglia di accettazione viene posta al di sotto di 26, essa è priva di valore.
Questa è la trapdoor di FALCON in una riga.
Passo 5: il browser verifica
Il browser riceve la recensione, il salt e . Ricalcola l'hash, ottiene , ricostruisce
e verifica la lunghezza:
Passo 6: qualcuno modifica il testo della recensione
Se il testo viene modificato in un secondo momento, cambia l'hash del contenuto e con esso il punto, poniamo
La vecchia firma resta , ma
Possiamo cancellare una recensione. Modificarla senza che si noti, no.
Nota di trasparenza sull'esempio
In due dimensioni un aggressore può semplicemente provare soluzioni corte per tentativi — per per esempio . L'esempio non è sicuro; mostra soltanto il meccanismo. In FALCON-1024 il vettore ha 2048 coefficienti, e lì procedere per tentativi non porta da nessuna parte.
12. Perché non si arrotonda e basta?
Il procedimento del passo 3 si chiama arrotondamento di Babai. Per un esempio didattico basta — per un vero procedimento di firma no.
Il motivo: le firme arrotondate non si distribuiscono in modo uniforme. La loro forma dipende dalla geometria della base segreta. Da un numero sufficiente di firme si potrebbe ricostruire questa geometria — e con essa la chiave privata. È esattamente su questo che sono naufragati precedenti procedimenti di firma basati su reticoli.
FALCON estrae perciò i vettori corti da una distribuzione gaussiana discreta sul reticolo:
I valori vicini al punto obiettivo sono più probabili, ma quale venga scelto esattamente è casuale. Il risultato è una distribuzione che non rivela nulla sulla base utilizzata — matematicamente: non è distinguibile da una distribuzione che dipende solo dal reticolo stesso.
Questo sampler è la parte più impegnativa di FALCON. Gira ricorsivamente su una struttura ad albero e lavora con numeri in virgola mobile — il che rende l'implementazione delicata ed è la ragione principale per cui FALCON è più difficile da realizzare correttamente rispetto a ML-DSA.
13. Che cosa viene effettivamente trasmesso
La firma è composta da
Solo — non la coppia. se lo calcola il verificatore:
Poiché i coefficienti di sono piccoli e si distribuiscono attorno allo zero, si lasciano comprimere fortemente. È questo il motivo delle firme notevolmente compatte di FALCON:
| chiave pubblica | firma | |
|---|---|---|
| FALCON-512 | 897 B | ~666 B |
| FALCON-1024 | 1.793 B | ~1.280 B |
Per confronto: ML-DSA-87 richiede 4.627 byte. In McGesund, però, nessuna di queste firme sta nel QR code stesso — l'adesivo porta solo l'envelope Ed25519; i timbri PQ si trovano presso il record e vengono caricati al momento della verifica. Qui la dimensione non decide quindi della stampabilità, bensì di memoria e trasmissione: un timbro FALCON è grande poco più di un quarto di un timbro ML-DSA.
14. Perché FALCON verifica in fretta
La moltiplicazione di polinomi in modo ingenuo costa
Con la trasformata veloce di Fourier ciò scende a circa
Con è la differenza tra un milione e circa diecimila operazioni. Per questo la verifica nel browser di un visitatore gira in millisecondi — ed è per questo che nel nome c'è la F:
FAst Fourier Lattice-based COmpact signatures over NTRU.
15. Il procedimento in figura
16. Perché un aggressore fallisce
Conosce e con esso l'intero reticolo. Conosce anche il punto obiettivo , non appena la recensione è pubblica. Ciò che gli manca è la base corta.
Per falsificare una recensione dovrebbe trovare, per un scelto da sé, un vettore corto — a partire dalla sola descrizione pubblica. È il compito che il passo 4 dell'esempio ha illustrato: senza i vettori buoni lo stesso calcolo approda a una soluzione troppo lunga.
In dimensione 1024 i migliori procedimenti noti — sia classici sia quantistici — ne sono ben lontani.
17. Che cosa ne fa concretamente McGesund
L'envelope. Ogni recensione firmata porta una firma Ed25519. È la variante obbligatoria — classica, molto piccola, verificabile nativamente in ogni browser.
I timbri post-quantistici. Accanto si trovano una o due firme resistenti ai quanti. Quali, dipende dal piano tariffario:
| Piano | livelli di firma disponibili |
|---|---|
| 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, entrambe in parallelo |
La variante parallela è ridondante di proposito. FALCON poggia su reticoli NTRU, ML-DSA su reticoli modulari. Se una delle due famiglie dovesse essere più debole di quanto oggi si assuma, l'altra regge.
L'ancoraggio temporale. L'impronta digitale della chiave di firma viene ancorata tramite OpenTimestamps in un blocco Bitcoin. Così è dimostrato non solo che la firma è autentica, ma anche che essa esisteva già in un determinato momento — senza che qualcuno debba credere alla nostra marca temporale.
Tutto questo viene calcolato nel browser del lettore, tramite un modulo WASM. Noi forniamo i dati; la verifica gira sul dispositivo del visitatore. Se domani andassimo offline, una recensione una volta caricata resterebbe verificabile.
Per inquadrare i nomi: FALCON viene attualmente standardizzato come FN-DSA; la bozza è prevista come FIPS 206, ma non è ancora conclusa. Perciò nel codice di McGesund i livelli si chiamano FN-DSA-512 e FN-DSA-1024, anche se nell'uso corrente si continua a parlare di FALCON.
18. L'intuizione più importante
La chiave pubblica è la descrizione completa di un labirinto. Chiunque può guardarla.
La firma è la prova: «Per esattamente questa recensione ho trovato un percorso molto corto».
La chiave privata è la conoscenza delle scorciatoie.
Il lettore non deve conoscere le scorciatoie. Verifica soltanto se il percorso presentato è effettivamente corto e se appartiene effettivamente a questa recensione. Entrambe le cose può farle senza di noi.
Chi modifica il testo sposta il punto — e il vecchio percorso non porta più a nulla.