Μέθοδος υπογραφής

Το FALCON εξηγημένο μαθηματικά

Πώς υπογράφεται μια αξιολόγηση του McGesund με FN-DSA (FALCON) — και γιατί ένας αλλαγμένος χαρακτήρας σπάει την υπογραφή.

Τελευταία ενημέρωση: 2026-09-07

1. Περί τίνος πρόκειται

Μια αξιολόγηση στο McGesund δεν είναι ένα πεδίο κειμένου σε μια βάση δεδομένων, στο οποίο πρέπει κανείς απλώς να πιστέψει. Κατά την υποβολή της υπογράφεται ψηφιακά, και κάθε επισκέπτης μπορεί αργότερα να επαληθεύσει αυτή την υπογραφή στο δικό του πρόγραμμα περιήγησης.

Για ένα μέρος αυτών των υπογραφών χρησιμοποιούμε το FALCON — ακριβέστερα τα FN-DSA-512 και FN-DSA-1024. Αυτό το άρθρο εξηγεί τι συμβαίνει μαθηματικά.

Μια σημαντική διευκρίνιση εξαρχής:

Το FALCON δεν είναι κρυπτογράφηση. Το κείμενο της αξιολόγησης προορίζεται άλλωστε για ανάγνωση. Το FALCON δεν αποδεικνύει μυστικότητα, αλλά προέλευση και ακεραιότητα.


2. Τι ακριβώς υπογράφεται

Δεν υπογράφεται το ελεύθερο κείμενο, αλλά ένα συμπαγές αντικείμενο δεδομένων που καθηλώνει μονοσήμαντα το κείμενο:

{
  "v":   1,
  "typ": "rev-comment",
  "f":   "<αναγνωριστικό επιχείρησης>",
  "c":   "<αναγνωριστικό αξιολόγησης>",
  "h":   "<SHA-256 του κειμένου της αξιολόγησης>",
  "rh":  "<SHA-256 ολόκληρης της εγγραφής υποβολής>",
  "rv":  1,
  "qh":  "<SHA-256 του φακέλου QR, μόνο σε αξιολογήσεις μέσω QR>",
  "iat": 1757203200
}

Αυτό είναι το μήνυμά μας mm. Δεσμεύει μαζί:

  1. σε ποια επιχείρηση ανήκει η αξιολόγηση (f),
  2. για ποια αξιολόγηση πρόκειται (c),
  3. ποιο κείμενο υπήρχε πίσω από αυτήν — ως τιμή κατακερματισμού (h),
  4. ποια εγγραφή δεδομένων υποβλήθηκε συνολικά (rh): κείμενο, καρδιές, γεω-κατάσταση και στοιχεία αφορμής, κανονικά σειριοποιημένα και κατακερματισμένα, στην έκδοση σχήματος rv,
  5. από ποιον κωδικό QR προέρχεται η αξιολόγηση (qh) — σε αξιολόγηση χωρίς QR το πεδίο παραλείπεται,
  6. πότε έγινε η υπογραφή (iat).

Ένας αλλαγμένος χαρακτήρας στο κείμενο της αξιολόγησης σπάει αυτή την αλυσίδα. Αυτός ακριβώς είναι ο σκοπός — και από το rh και μετά το ίδιο ισχύει για μια εκ των υστέρων μετακινημένη καρδιά ή μια αλλαγμένη γεω-κατάσταση.


3. Το βασικό πρόβλημα

Ένας αναγνώστης που φτάνει σε ένα προφίλ επιχείρησης έχει δύο ερωτήματα:

  1. Προέρχεται πράγματι αυτή η αξιολόγηση από το σύστημα του McGesund;
  2. Τροποποιήθηκε εκ των υστέρων;

Για αυτό υπάρχει ένα ζεύγος κλειδιών:

  • ένα ιδιωτικό κλειδί — παραμένει στην υπηρεσία υπογραφής
  • ένα δημόσιο κλειδί — μπορεί να το έχει ο καθένας

Η υπογραφή γίνεται με το ιδιωτικό, ο έλεγχος με το δημόσιο κλειδί. Και μάλιστα στη συσκευή του αναγνώστη, όχι στον δικό μας διακομιστή.


4. Γιατί FALCON;

Πολλές σημερινές μέθοδοι υπογραφής στηρίζονται σε προβλήματα που είναι δύσκολα για τους κλασικούς υπολογιστές, θα μπορούσαν όμως να γίνουν σημαντικά ευκολότερα για επαρκώς μεγάλους κβαντικούς υπολογιστές.

Σε μια αξιολόγηση αυτό είναι πιο κρίσιμο από ό,τι σε ένα εφήμερο μήνυμα: μια αξιολόγηση πρέπει να είναι επαληθεύσιμη και σε πέντε ή δέκα χρόνια. Όποιος υπογράφει σήμερα, υπογράφει για όλη τη διάρκεια ζωής της καταχώρισης.

Γι' αυτό το FALCON στηρίζεται στην κρυπτογραφία πλεγμάτων:

Κατασκευάζεται ένα πλέγμα που περιγράφεται μαθηματικά με απλό τρόπο, μέσα στο οποίο μια συγκεκριμένη αναζήτηση είναι εξαιρετικά δύσκολη.


5. Τι είναι ένα μαθηματικό πλέγμα;

Δύο διανύσματα:

v1=(2,0),v2=(1,2).v_1=(2,0), \qquad v_2=(1,2).

Όλοι οι ακέραιοι συνδυασμοί

av1+bv2,a,bZa\,v_1+b\,v_2, \qquad a,b\in\mathbb{Z}

σχηματίζουν ένα πλέγμα σημείων. Για παράδειγμα:

2v1+3v2=(4,0)+(3,6)=(7,6).2v_1+3v_2=(4,0)+(3,6)=(7,6).
v₁ = (2,0)v₂ = (1,2)(7,6)0
Δύο διανύσματα παράγουν ένα πλέγμα. Κάθε σημείο είναι ένας ακέραιος συνδυασμός των δύο — το σημειωμένο προκύπτει από δύο φορές το v₁ και τρεις φορές το v₂.

Το καθοριστικό είναι:

Το ίδιο το πλέγμα περιγράφεται εύκολα. Η εύρεση ορισμένων ιδιοτήτων μέσα σε αυτό είναι πολύ δύσκολη.


6. Το μυστικό είναι τα σύντομα διανύσματα

Το κλασικό δύσκολο ερώτημα είναι:

minvL,  v0v.\min_{v\in L,\;v\neq0}\|v\|.

Αυτό είναι το πρόβλημα του συντομότερου διανύσματος (Shortest Vector Problem). Σε δύο διαστάσεις μπορεί κανείς να το λύσει με εξαντλητική δοκιμή. Το FALCON εργάζεται σε διάσταση 512 ή 1024 — εκεί δεν υπάρχει καμία προοπτική.

μακριά βάσησχεδόν παράλληλασυντομότερο διάνυσμα
Το ίδιο πλέγμα, δύο περιγραφές. Τα γκρίζα διανύσματα το παράγουν επίσης, είναι όμως μακριά και σχεδόν παράλληλα — μια κακή βάση. Το σύντομο διάνυσμα είναι αυτό που δύσκολα βρίσκεται.

Το FALCON δεν χρειάζεται πάντως το συντομότερο διάνυσμα καθαυτό, αλλά κάτι συγγενικό: για ένα δοσμένο σημείο-στόχο να βρεθεί ένα κοντινό σημείο του πλέγματος. Και αυτό είναι δύσκολο χωρίς τη σωστή πρόσθετη πληροφορία.

σημείο-στόχος από την αξιολόγησηκοντινό σημείο πλέγματοςαπομακρυσμένο
Το σημείο-στόχος από την αξιολόγηση (κενός κύκλος) δεν ανήκει στο πλέγμα. Ζητείται ένα σημείο του πλέγματος ακριβώς δίπλα του — η διακεκομμένη διαδρομή προς ένα απομακρυσμένο σημείο είναι επίσης λύση της πρώτης συνθήκης, δεν είναι όμως σύντομη.

7. Πολυώνυμα αντί για αριθμούς

Το FALCON χρησιμοποιεί ένα πλέγμα NTRU και υπολογίζει με πολυώνυμα. Δηλαδή αντί για μεμονωμένους αριθμούς, με λίστες συντελεστών:

f=(1,0,1,0,0,1)f(x)=1+x2+x5.f=(1,0,1,0,0,1) \quad\longleftrightarrow\quad f(x)=1+x^2+x^5.

Οι υπολογισμοί γίνονται στον δακτύλιο

Rq=Zq[x]/(xn+1).R_q=\mathbb{Z}_q[x]/(x^n+1).

Αυτό σημαίνει:

  • Zq\mathbb{Z}_q: υπολογισμός modulo qq. Με q=7q=7 για παράδειγμα 10310\equiv3, αφού 107=310-7=3.
  • xn=1x^n=-1: κρατά τα πολυώνυμα σε σταθερό μήκος.

Το FALCON χρησιμοποιεί συγκεκριμένα:

q=12289,n=512  ηˊ  1024.q=12289, \qquad n=512 \;\text{ή}\; 1024.

8. Το κεντρικό τέχνασμα

Το ιδιωτικό κλειδί αποτελείται από τέσσερα μικρά πολυώνυμα

f,  g,  F,  Gf,\;g,\;F,\;G

με την εξίσωση NTRU

fGgF=q.fG-gF=q.

Αυτά τα τέσσερα σχηματίζουν μαζί μια μυστική, καλοσχηματισμένη βάση πλέγματος — μια περιγραφή του πλέγματος από σύντομα διανύσματα.

Το δημόσιο κλειδί είναι κατ' ουσίαν ένα και μόνο πολυώνυμο:

h=gf(modq).h=\frac{g}{f}\pmod q.

Από το hh προκύπτει το ίδιο πλέγμα, αλλά σε μια δύσχρηστη βάση από μακριά διανύσματα:

L={(s1,s2)  :  s1+s2h0(modq)}.L=\{(s_1,s_2)\;:\;s_1+s_2\,h\equiv0 \pmod q\}.

Αυτός είναι όλος ο πυρήνας του FALCON. Και οι δύο βάσεις περιγράφουν το ίδιο πλέγμα. Απλώς η μία είναι χρήσιμη για υπολογισμούς και η άλλη όχι.

Μπορεί κανείς να το φανταστεί σαν χάρτη πόλης: δημόσιος είναι ο πλήρης χάρτης. Μυστική είναι η γνώση των συντομεύσεων.


9. Η αξιολόγηση γίνεται σημείο

Πριν από την υπογραφή, το αντικείμενο payload περνά από μια συνάρτηση κατακερματισμού. Το FALCON χρησιμοποιεί γι' αυτό το Hash-to-Point: από το μήνυμα δεν προκύπτει αριθμητική τιμή, αλλά απευθείας ένα σημείο στον δακτύλιο.

Επιπλέον η υπηρεσία υπογραφής επιλέγει ένα τυχαίο salt rr (320 bit) και το συμπεριλαμβάνει στον κατακερματισμό:

c=HashToPoint(rm).c=\mathrm{HashToPoint}(r \,\|\, m).

Το salt δεν είναι διακοσμητικό. Χωρίς αυτό η ίδια αξιολόγηση θα έδινε πάντα την ίδια υπογραφή, και από πολλές υπογραφές θα μπορούσε να ανακατασκευαστεί η μυστική βάση. Γι' αυτό ταξιδεύει μαζί μέσα στην υπογραφή.


10. Τι είναι μια έγκυρη υπογραφή

Ζητείται ένα ζεύγος

(s1,s2)(s_1,s_2)

με δύο ιδιότητες:

s1+s2hc(modq)και(s1,s2)  μικροˊ.s_1+s_2\,h\equiv c \pmod q \qquad\text{και}\qquad \|(s_1,s_2)\|\;\text{μικρό}.

Η πρώτη συνθήκη από μόνη της ικανοποιείται τετριμμένα — θέτει κανείς s2=0s_2=0 και s1=cs_1=c. Η δεύτερη συνθήκη κάνει το πρόβλημα δύσκολο.

Η συντομιˊα ειˊναι η υπογραφηˊ.\boxed{\text{Η συντομία είναι η υπογραφή.}}

11. Ένα πλήρως λυμένο μικρο-παράδειγμα

Συρρικνώνουμε τα πάντα σε μέγεθος παιχνιδιού: πολυώνυμα με έναν μόνο συντελεστή, δηλαδή συνηθισμένους αριθμούς, και

q=97.q=97.

Το μυστικό κλειδί. Δύο μικροί αριθμοί:

f=3,g=5.f=3, \qquad g=5.

Το δημόσιο κλειδί. Ισχύει 3165(mod97)3^{-1}\equiv65 \pmod{97}, αφού 365=195=297+13\cdot65=195=2\cdot97+1. Άρα:

h=gf1=565=32534(mod97).h=g\cdot f^{-1}=5\cdot65=325\equiv \boxed{34} \pmod{97}.

Το πλέγμα. L={(s1,s2):s1+34s20(mod97)}L=\{(s_1,s_2): s_1+34\,s_2\equiv0 \pmod{97}\}.

Η δημόσια βάση προκύπτει απευθείας από το hh:

(97,0)και(34,1).(97,0) \quad\text{και}\quad (-34,1).

Και τα δύο ανήκουν στο LL — και τα δύο είναι μακριά.

Τη μυστική βάση τη γνωρίζει μόνο η υπηρεσία υπογραφής:

(g,f)=(5,3)και(G,F)=(9,14),(-g,f)=(-5,3) \quad\text{και}\quad (-G,F)=(-9,-14),

αφού 5+343=970-5+34\cdot3=97\equiv0 και 9+34(14)=485=5970-9+34\cdot(-14)=-485=-5\cdot97\equiv0. Η ορίζουσα είναι

(5)(14)(3)(9)=70+27=97=q,(-5)(-14)-(3)(-9)=70+27=97=q,

άρα η εξίσωση NTRU επαληθεύεται. Και τα δύο διανύσματα είναι σύντομα.


Βήμα 1: Κατακερματισμός της αξιολόγησης

Ας υποθέσουμε ότι το αντικείμενο payload της αξιολόγησης δίνει

c=71.c=71.

Βήμα 2: Μια πρώτη, κακή λύση

(s1,s2)=(71,0)(s_1,s_2)=(71,0)

ικανοποιεί 71+340=71c71+34\cdot0=71\equiv c. Το μήκος όμως είναι 7171 — πολύ μεγάλο.

Βήμα 3: Συντόμευση με τη μυστική βάση

Η υπηρεσία υπογραφής εκφράζει το σημείο-στόχο στη σύντομη βάση της:

(71,0)=a(5,3)+b(9,14).(71,0)=a\,(-5,3)+b\,(-9,-14).

Αυτό οδηγεί σε a10,25a\approx-10{,}25 και b2,20b\approx-2{,}20. Στρογγυλοποιώντας σε a=10a=-10, b=2b=-2 προκύπτει το σημείο πλέγματος

10(5,3)2(9,14)=(50,30)+(18,28)=(68,2).-10\,(-5,3)-2\,(-9,-14)=(50,-30)+(18,28)=(68,-2).

Έλεγχος: 68+34(2)=6868=068+34\cdot(-2)=68-68=0, άρα πράγματι ανήκει στο LL. Αφαίρεση:

(71,0)(68,2)=(3,2)(71,0)-(68,-2)=\boxed{(3,2)}

Μήκος:

(3,2)=9+4=133,61.\|(3,2)\|=\sqrt{9+4}=\sqrt{13}\approx3{,}61.

Αυτή είναι η υπογραφή.

Βήμα 4: Η ίδια μέθοδος με τη δημόσια βάση

Όποιος γνωρίζει μόνο το h=34h=34, έχει τη βάση {(97,0),(34,1)}\{(97,0),(-34,1)\}. Ο ίδιος υπολογισμός στρογγυλοποίησης δίνει εκεί το σημείο πλέγματος (97,0)(97,0) και επομένως

(71,0)(97,0)=(26,0),(26,0)=26.(71,0)-(97,0)=(-26,0), \qquad \|(-26,0)\|=26.

Επίσης έγκυρη λύση της εξίσωσης — αλλά επτά φορές μεγαλύτερη. Αν το όριο αποδοχής τεθεί κάτω από το 26, η λύση αυτή είναι άχρηστη.

Ίδιος αλγοˊριθμος, ιˊδιο πλεˊγμα, ιˊδιο σημειˊο-στοˊχος.Μοˊνο η βαˊση διαφεˊρει — και μαζιˊ της το αποτεˊλεσμα.\boxed{ \begin{array}{c} \text{Ίδιος αλγόριθμος, ίδιο πλέγμα, ίδιο σημείο-στόχος.}\\ \text{Μόνο η βάση διαφέρει — και μαζί της το αποτέλεσμα.} \end{array}}

Αυτή είναι η καταπακτή του FALCON σε μία γραμμή.

Βήμα 5: Το πρόγραμμα περιήγησης ελέγχει

Το πρόγραμμα περιήγησης λαμβάνει την αξιολόγηση, το salt και το s2=2s_2=2. Υπολογίζει ξανά τον κατακερματισμό, παίρνει c=71c=71, ανακατασκευάζει

s1=cs2h=7168=3,s_1=c-s_2\,h=71-68=3,

και ελέγχει το μήκος:

(3,2)=13    βΈγκυρη υπογραφηˊ\|(3,2)\|=\sqrt{13}\;\leq\;\beta \quad\Longrightarrow\quad \boxed{\text{Έγκυρη υπογραφή}}

Βήμα 6: Κάποιος αλλάζει το κείμενο της αξιολόγησης

Αν το κείμενο αλλάξει εκ των υστέρων, αλλάζει ο κατακερματισμός περιεχομένου και μαζί του το σημείο, ας πούμε

c=40.c'=40.

Η παλιά υπογραφή παραμένει (3,2)(3,2), όμως

3+342=7140Άκυρη υπογραφηˊ3+34\cdot2=71\neq40 \quad\Longrightarrow\quad \boxed{\text{Άκυρη υπογραφή}}

Μπορούμε να διαγράψουμε μια αξιολόγηση. Δεν μπορούμε όμως να την τροποποιήσουμε χωρίς να γίνει αντιληπτό.

Μια ειλικρινής επισήμανση για το παράδειγμα

Σε δύο διαστάσεις ένας επιτιθέμενος μπορεί να βρει σύντομες λύσεις με απλή δοκιμή — για c=40c'=40 π.χ. το (6,1)(6,1). Το παράδειγμα δεν είναι ασφαλές· δείχνει μόνο τον μηχανισμό. Στο FALCON-1024 το διάνυσμα έχει 2048 συντελεστές, και εκεί η εξαντλητική δοκιμή δεν οδηγεί πουθενά.


12. Γιατί δεν γίνεται απλώς στρογγυλοποίηση;

Η μέθοδος του βήματος 3 ονομάζεται στρογγυλοποίηση Babai. Για ένα διδακτικό παράδειγμα αρκεί — για μια πραγματική μέθοδο υπογραφής όχι.

Ο λόγος: οι στρογγυλοποιημένες υπογραφές δεν κατανέμονται ομοιόμορφα. Η μορφή τους εξαρτάται από τη γεωμετρία της μυστικής βάσης. Από αρκετά πολλές υπογραφές θα μπορούσε να ανακατασκευαστεί αυτή η γεωμετρία — και μαζί της το ιδιωτικό κλειδί. Ακριβώς σε αυτό απέτυχαν παλαιότερες μέθοδοι υπογραφής βασισμένες σε πλέγματα.

Γι' αυτό το FALCON αντλεί τα σύντομα διανύσματα από μια διακριτή κατανομή Gauss πάνω στο πλέγμα:

P(x)exc2/(2σ2).P(x)\propto e^{-\|x-c\|^2/(2\sigma^2)}.

Τιμές κοντά στο σημείο-στόχο είναι πιθανότερες, αλλά ποια ακριβώς επιλέγεται είναι τυχαίο. Το αποτέλεσμα είναι μια κατανομή που δεν αποκαλύπτει τίποτα για τη βάση που χρησιμοποιήθηκε — μαθηματικά: δεν διακρίνεται από μια κατανομή που εξαρτάται μόνο από το ίδιο το πλέγμα.

Αυτός ο δειγματολήπτης είναι το πιο απαιτητικό τμήμα του FALCON. Τρέχει αναδρομικά πάνω σε μια δενδρική δομή και εργάζεται με αριθμούς κινητής υποδιαστολής — γεγονός που καθιστά την υλοποίηση λεπτή υπόθεση και αποτελεί τον κύριο λόγο για τον οποίο το FALCON υλοποιείται σωστά δυσκολότερα από το ML-DSA.


13. Τι μεταδίδεται στην πραγματικότητα

Η υπογραφή αποτελείται από

σ=(r,  s2).\sigma=(r,\;s_2).

Μόνο το s2s_2 — όχι το ζεύγος. Το s1s_1 το υπολογίζει ο ελεγκτής μόνος του:

s1=cs2h(modq).s_1=c-s_2\,h \pmod q.

Επειδή οι συντελεστές του s2s_2 είναι μικροί και κατανέμονται γύρω από το μηδέν, συμπιέζονται πολύ αποτελεσματικά. Αυτός είναι ο λόγος για τις εντυπωσιακά συμπαγείς υπογραφές του FALCON:

δημόσιο κλειδίυπογραφή
FALCON-512897 B~666 B
FALCON-10241.793 B~1.280 B

Για σύγκριση: το ML-DSA-87 χρειάζεται 4.627 byte. Στο McGesund πάντως καμία από αυτές τις υπογραφές δεν βρίσκεται μέσα στον ίδιο τον κωδικό QR — το αυτοκόλλητο φέρει μόνο τον φάκελο Ed25519· οι μετακβαντικές σφραγίδες βρίσκονται δίπλα στην εγγραφή δεδομένων και φορτώνονται κατά τον έλεγχο. Το μέγεθος επομένως δεν κρίνει εδώ τη δυνατότητα εκτύπωσης, αλλά την αποθήκευση και τη μετάδοση: μια σφραγίδα FALCON είναι περίπου ένα τέταρτο του μεγέθους μιας σφραγίδας ML-DSA.


14. Γιατί το FALCON ελέγχει γρήγορα

Ο αφελής πολλαπλασιασμός πολυωνύμων κοστίζει

O(n2).O(n^2).

Με τον ταχύ μετασχηματισμό Fourier αυτό μειώνεται περίπου σε

O(nlogn).O(n\log n).

Με n=1024n=1024 αυτό είναι η διαφορά ανάμεσα σε ένα εκατομμύριο και περίπου δέκα χιλιάδες πράξεις. Γι' αυτό ο έλεγχος στο πρόγραμμα περιήγησης ενός επισκέπτη ολοκληρώνεται σε χιλιοστά του δευτερολέπτου — και γι' αυτό υπάρχει το F στο όνομα:

FAst Fourier Lattice-based COmpact signatures over NTRU.


15. Η ροή σε εικόνα

ΥΠΗΡΕΣΊΑ ΥΠΟΓΡΑΦΉΣ (MCGESUND)ΠΡΌΓΡΑΜΜΑ ΠΕΡΙΉΓΗΣΗΣ ΤΟΥ ΕΠΙΣΚΈΠΤΗιδιωτικό κλειδί (f, g, F, G — σύντομη βάση)Payload m = {επιχείρηση, αξιολόγηση, h, rh, iat}Salt r + HashToPoint(r ‖ m) = cΔειγματοληψία Gauss: σύντομο διάνυσμα (s₁, s₂)Υπογραφή σ = (r, s₂) + kidΑξιολόγηση + σ + δημόσιο κλειδί hνέος υπολογισμός του c, s₁ = c − s₂·h‖(s₁, s₂)‖ ≤ β ;έγκυρηάκυρη
Από το payload μέχρι το τικ επαλήθευσης στο πρόγραμμα περιήγησης. Όλα πάνω από τη διαχωριστική γραμμή συμβαίνουν μία φορά κατά την υποβολή, όλα από κάτω σε κάθε επισκέπτη εκ νέου — στη δική του συσκευή, με το δημόσιο κλειδί.

16. Γιατί αποτυγχάνει ένας επιτιθέμενος

Γνωρίζει το hh και μαζί του ολόκληρο το πλέγμα. Γνωρίζει επίσης το σημείο-στόχο cc, μόλις η αξιολόγηση δημοσιευθεί. Αυτό που του λείπει είναι η σύντομη βάση.

Για να πλαστογραφήσει μια αξιολόγηση θα έπρεπε να βρει, για ένα cc της επιλογής του, ένα σύντομο διάνυσμα — μόνο από τη δημόσια περιγραφή. Αυτό είναι το πρόβλημα που ανέδειξε το βήμα 4 του παραδείγματος: χωρίς τα καλά διανύσματα, ο ίδιος υπολογισμός καταλήγει σε μια πολύ μεγάλη λύση.

Σε διάσταση 1024 οι καλύτερες γνωστές μέθοδοι — κλασικές όσο και κβαντικές — απέχουν πολύ από αυτό.

Υπογραφηˊ: γρηˊγορηΈλεγχος: γρηˊγοροςΠλαστογραˊφηση: δυˊσκολη\boxed{\text{Υπογραφή: γρήγορη}\quad \text{Έλεγχος: γρήγορος}\quad \text{Πλαστογράφηση: δύσκολη}}

17. Τι κάνει συγκεκριμένα το McGesund με αυτό

Ο φάκελος. Κάθε υπογεγραμμένη αξιολόγηση φέρει μια υπογραφή Ed25519. Αυτή είναι η υποχρεωτική εκδοχή — κλασική, πολύ μικρή, ελέγξιμη εγγενώς σε κάθε πρόγραμμα περιήγησης.

Οι μετακβαντικές σφραγίδες. Δίπλα της βρίσκονται μία ή δύο κβαντικά ανθεκτικές υπογραφές. Ποιες, εξαρτάται από το πακέτο:

Πακέτοδιαθέσιμα επίπεδα υπογραφής
BasisEd25519, FN-DSA-512
KlassikEd25519, FN-DSA-512, FN-DSA-1024
ProEd25519, FN-DSA-1024, ML-DSA-87
PremiumEd25519, FN-DSA-1024, ML-DSA-87, και τα δύο παράλληλα

Η παράλληλη εκδοχή είναι σκόπιμα πλεονάζουσα. Το FALCON στηρίζεται σε πλέγματα NTRU, το ML-DSA σε πλέγματα Module. Αν μία από τις δύο οικογένειες αποδειχθεί ασθενέστερη από ό,τι υποθέτουμε σήμερα, η άλλη εξακολουθεί να ισχύει.

Το χρονικό αγκύρωμα. Το αποτύπωμα του κλειδιού υπογραφής αγκυρώνεται μέσω OpenTimestamps σε ένα μπλοκ του Bitcoin. Έτσι αποδεικνύεται όχι μόνο ότι η υπογραφή είναι γνήσια, αλλά και ότι υπήρχε ήδη σε συγκεκριμένη χρονική στιγμή — χωρίς να χρειάζεται κανείς να πιστέψει τη δική μας χρονοσήμανση.

Όλα αυτά υπολογίζονται στο πρόγραμμα περιήγησης του αναγνώστη, μέσω ενός αρθρώματος WASM. Εμείς παρέχουμε τα δεδομένα· ο έλεγχος τρέχει στη συσκευή του επισκέπτη. Αν αύριο βγαίναμε εκτός δικτύου, μια αξιολόγηση που έχει φορτωθεί μία φορά θα παρέμενε επαληθεύσιμη.

Για την κατάταξη των ονομάτων: το FALCON τυποποιείται προς το παρόν ως FN-DSA· το σχέδιο προορίζεται ως FIPS 206, δεν έχει όμως ακόμη ολοκληρωθεί. Γι' αυτό τα επίπεδα ονομάζονται στον κώδικα του McGesund FN-DSA-512 και FN-DSA-1024, ακόμη κι αν στην καθομιλουμένη εξακολουθεί να γίνεται λόγος για FALCON.


18. Η σημαντικότερη διαίσθηση

Το δημόσιο κλειδί είναι η πλήρης περιγραφή ενός λαβυρίνθου. Καθένας μπορεί να τη δει.

Η υπογραφή είναι η απόδειξη: «Για αυτή ακριβώς την αξιολόγηση βρήκα μια πολύ σύντομη διαδρομή.»

Το ιδιωτικό κλειδί είναι η γνώση των συντομεύσεων.

Ο αναγνώστης δεν χρειάζεται να γνωρίζει τις συντομεύσεις. Απλώς μετρά αν η διαδρομή που του παρουσιάζεται είναι πράγματι σύντομη και ανήκει πράγματι σε αυτή την αξιολόγηση. Και τα δύο μπορεί να τα κάνει χωρίς εμάς.

Το FALCON μετατρεˊπει μια αξιολοˊγηση σε σημειˊο ενοˊς πλεˊγματοςκαι την υπογραφηˊ σε μια συˊντομη διαδρομηˊ προς αυτοˊ.\boxed{ \begin{array}{c} \text{Το FALCON μετατρέπει μια αξιολόγηση σε σημείο ενός πλέγματος}\\ \text{και την υπογραφή σε μια σύντομη διαδρομή προς αυτό.} \end{array}}

Όποιος αλλάξει το κείμενο, μετακινεί το σημείο — και η παλιά διαδρομή οδηγεί στο κενό.