Μέθοδος υπογραφής
Το ML-DSA-87 εξηγημένο μαθηματικά
Πώς το ML-DSA-87 (FIPS 204) υπογράφει μια αξιολόγηση του McGesund — από το Module-LWE και τη δειγματοληψία απόρριψης έως τον έλεγχο στο πρόγραμμα περιήγησης.
Τελευταία ενημέρωση: 2026-09-07
1. Περί τίνος πρόκειται
Όταν κάποιος υποβάλλει μια αξιολόγηση στο McGesund, στο παρασκήνιο συμβαίνουν περισσότερα από όσα υποδηλώνει το κείμενο. Η αξιολόγηση υπογράφεται ψηφιακά κατά την υποβολή. Αυτή την υπογραφή μπορεί κάθε επισκέπτης να την επαληθεύσει αργότερα στο δικό του πρόγραμμα περιήγησης — χωρίς να μας εμπιστευτεί και χωρίς να μας ρωτήσει.
Για πελάτες από το πακέτο Pro και πάνω αυτό γίνεται μεταξύ άλλων με το ML-DSA-87. Αυτό το άρθρο εξηγεί τι συμβαίνει μαθηματικά.
Μια σημαντική διευκρίνιση εξαρχής:
Το ML-DSA δεν είναι κρυπτογράφηση. Το κείμενο της αξιολόγησης παραμένει δημόσια αναγνώσιμο — αυτό είναι άλλωστε το νόημα μιας αξιολόγησης. Το ML-DSA δεν αποδεικνύει μυστικότητα, αλλά προέλευση και ακεραιότητα.
Το ML-DSA αναπτύχθηκε από το CRYSTALS-Dilithium και έχει τυποποιηθεί ως FIPS 204. Ο αριθμός 87 δηλώνει το επίπεδο παραμέτρων. Υπάρχουν τρία:
- ML-DSA-44
- ML-DSA-65
- ML-DSA-87
Το ML-DSA-87 είναι το ανώτατο και ανήκει στην κατηγορία ασφάλειας 5 του NIST.
2. Τι ακριβώς υπογράφεται;
Στην υπογραφή δεν εισέρχεται το ίδιο το κείμενο της αξιολόγησης, αλλά ένα συμπαγές αντικείμενο δεδομένων που καθηλώνει μονοσήμαντα το κείμενο. Στο McGesund έχει στον πυρήνα του την εξής μορφή:
{
"v": 1,
"typ": "rev-comment",
"f": "<αναγνωριστικό επιχείρησης>",
"c": "<αναγνωριστικό αξιολόγησης>",
"h": "<SHA-256 του κειμένου της αξιολόγησης>",
"rh": "<SHA-256 ολόκληρης της εγγραφής υποβολής>",
"rv": 1,
"qh": "<SHA-256 του φακέλου QR, μόνο σε αξιολογήσεις μέσω QR>",
"iat": 1757203200
}
Αυτό το αντικείμενο είναι το μήνυμά μας . Δεσμεύει μαζί έξι δηλώσεις:
- Σε ποια επιχείρηση ανήκει η αξιολόγηση (
f) - Ποια αξιολόγηση εννοείται (
c) - Ποιο κείμενο υπήρχε πίσω από αυτήν — ως τιμή κατακερματισμού (
h) - Ποια εγγραφή δεδομένων συνολικά υποβλήθηκε (
rh): κείμενο, καρδιές, γεω-κατάσταση και στοιχεία αφορμής, κανονικά σειριοποιημένα και κατακερματισμένα — στην έκδοση σχήματοςrv - Από ποιον κωδικό QR προέρχεται η αξιολόγηση (
qh)· χωρίς QR το πεδίο παραλείπεται - Πότε έγινε η υπογραφή (
iat)
Αν κάποιος αλλάξει αργότερα έναν και μόνο χαρακτήρα στο κείμενο της αξιολόγησης, το h δεν ταιριάζει πλέον — και ούτε το rh. Όποιος αντ' αυτού πειράξει μόνο τις καρδιές, αφήνει το h άθικτο αλλά σπάει το rh. Αν κάποιος αλλάξει μία από αυτές τις τιμές κατακερματισμού, η υπογραφή δεν ταιριάζει πλέον. Ακριβώς αυτή η αλυσίδα είναι το ζητούμενο.
3. Τι πρέπει να επιτυγχάνει η υπογραφή
Ένας επισκέπτης που διαβάζει την αξιολόγηση πρέπει να μπορεί να ελέγξει μόνος του τρία πράγματα:
- Η αξιολόγηση εκδόθηκε πράγματι από το McGesund.
- Το κείμενο δεν τροποποιήθηκε από την υποβολή του και μετά.
- Κανείς δεν μπορεί να επινοήσει μια νέα αξιολόγηση που να φαίνεται έγκυρη.
Για αυτό υπάρχει ένα ζεύγος κλειδιών:
- ένα ιδιωτικό κλειδί — βρίσκεται αποκλειστικά στην υπηρεσία υπογραφής
- ένα δημόσιο κλειδί — μπορεί να το έχει ο καθένας, προσδιορίζεται μέσω του αναγνωριστικού κλειδιού (
kid) στον φάκελο
Η υπογραφή γίνεται με το ιδιωτικό κλειδί. Ο έλεγχος γίνεται με το δημόσιο — και μάλιστα στο πρόγραμμα περιήγησης του αναγνώστη, όχι στον δικό μας διακομιστή.
4. Γιατί εν γένει μια μετακβαντική μέθοδος;
Πολλές σημερινές συνήθεις μέθοδοι υπογραφής στηρίζονται στην παραγοντοποίηση μεγάλων αριθμών ή σε διακριτούς λογαρίθμους. Ένας επαρκώς ισχυρός κβαντικός υπολογιστής θα μπορούσε να λύσει ακριβώς αυτά τα προβλήματα σημαντικά ταχύτερα με γνωστούς αλγορίθμους.
Για μια αξιολόγηση αυτό δεν είναι ακαδημαϊκό ερώτημα. Μια αξιολόγηση πρέπει να είναι επαληθεύσιμη ακόμη και σε δέκα χρόνια. Όποιος υπογράφει σήμερα, υπογράφει για όλη τη διάρκεια ζωής της καταχώρισης.
Γι' αυτό το ML-DSA χρησιμοποιεί άλλη βάση:
Ακριβέστερα: Module-LWE και Module-SIS.
5. Τι είναι ένα πλέγμα;
Καταρχάς απλώς σημεία στον χώρο. Ας πάρουμε δύο διανύσματα:
Όλοι οι ακέραιοι συνδυασμοί
σχηματίζουν το πλέγμα. Για παράδειγμα:
Το καθοριστικό:
Σε μικρές διαστάσεις τα προβλήματα πλεγμάτων είναι εύκολα. Σε πολύ υψηλές διαστάσεις ορισμένα ερωτήματα γίνονται εξαιρετικά δύσκολα.
6. Πολυώνυμα αντί για μεμονωμένους αριθμούς
Το ML-DSA δεν υπολογίζει με διδιάστατα διανύσματα, αλλά με πολυώνυμα και διανύσματα πολυωνύμων.
Ένα πολυώνυμο όπως το
γράφεται ως λίστα συντελεστών:
Οι υπολογισμοί γίνονται σε έναν δακτύλιο:
Αυτό σημαίνει δύο πράγματα:
- : υπολογισμός modulo
- : ένας πρόσθετος κανόνας που σταθεροποιεί το μήκος των πολυωνύμων
Για και τα τρία επίπεδα του ML-DSA ισχύει:
Ένα πολυώνυμο έχει επομένως 256 συντελεστές, θεωρούμενους modulo 8.380.417. Αυτό που αλλάζει ανάμεσα στα επίπεδα δεν είναι το ή το , αλλά το μέγεθος των πινάκων — περισσότερα γι' αυτό παρακάτω.
Παρεμπιπτόντως: ο πολλαπλασιασμός πολυωνύμων σε αυτόν τον δακτύλιο υλοποιείται στην πράξη μέσω του NTT, της θεωρητικοαριθμητικής παραλλαγής του ταχέος μετασχηματισμού Fourier. Το ML-DSA επομένως δεν αποφεύγει καθόλου τις ιδέες του FFT· απλώς αυτές βρίσκονται στην αριθμητική και όχι στην αρχή της υπογραφής.
7. Το κεντρικό τέχνασμα: Module-LWE
Η βασική ιδέα είναι το Module Learning With Errors:
Όπου:
- — δημόσιος, φαινομενικά τυχαίος πίνακας από πολυώνυμα
- — μικρά μυστικά διανύσματα
- — δημόσια τιμή
Ένας επιτιθέμενος γνωρίζει τα και , όχι όμως τα . Η εξίσωση του φαίνεται σαν μια τυχαία εξίσωση με θόρυβο. Τα μικρά μυστικά δεν πρέπει να μπορεί να τα υπολογίσει αντίστροφα με αποδοτικό τρόπο.
8. Ένα ελάχιστο αριθμητικό παράδειγμα
Παίρνουμε σκόπιμα μια γελοία μικρή παραλλαγή — κανονικούς αριθμούς αντί για πολυώνυμα, διάσταση 2 αντί για 256, και
Έστω
Τότε:
Σε αυτή τη μικρογραφία θα μπορούσε κανείς να δοκιμάσει όλες τις δυνατότητες. Στο ML-DSA-87 ο είναι πίνακας από πολυώνυμα με 256 συντελεστές το καθένα — πρόκειται για πάνω από 14.000 αγνώστους στη δομή του πλέγματος.
9. Το ζεύγος κλειδιών της υπηρεσίας υπογραφής
Το ιδιωτικό κλειδί περιέχει μεταξύ άλλων τα μικρά διανύσματα . Στο ML-DSA-87 οι συντελεστές τους προέρχονται από το διάστημα
δηλαδή από το . Αυτή η μικρότητα δεν είναι λεπτομέρεια, αλλά ο πυρήνας: μόνο επειδή τα μυστικά είναι μικρά προκύπτει καν ένα δύσκολο πρόβλημα πλέγματος.
Το δημόσιο κλειδί είναι απλοποιημένα
Το είναι ένα seed από το οποίο ο ανακατασκευάζεται ντετερμινιστικά — ο πίνακας επομένως δεν χρειάζεται να μεταδοθεί. Το είναι τα ανώτερα bit του · τα κατώτερα bit παραλείπονται, γεγονός που μικραίνει σημαντικά το κλειδί. Αυτή η παράλειψη είναι αργότερα ο λόγος για τις λεγόμενες υποδείξεις.
Έτσι προκύπτει η επιθυμητή ασυμμετρία:
10. Η αξιολόγηση γίνεται αριθμός
Η υπηρεσία υπογραφής κατακερματίζει πρώτα το αντικείμενο payload της ενότητας 2:
Στο παράδειγμα-παιχνίδι μας παίρνουμε έναν τεχνητό μικρο-κατακερματισμό. Στο πραγματικό σύστημα το έχει μήκος 512 bit και δεσμεύει επιπλέον και το δημόσιο κλειδί — έτσι μια υπογραφή δεν μπορεί να επαναπροσδιοριστεί ως υπογραφή άλλου κλειδιού.
11. Δέσμευση
Η υπηρεσία υπογραφής επιλέγει ένα τυχαίο μικρό διάνυσμα . Στο παράδειγμά μας:
Από αυτό προκύπτει μια ενδιάμεση τιμή, η δέσμευση:
Αυτό δεν είναι ακόμη υπογραφή.
12. Από την αξιολόγηση προκύπτει μια πρόκληση
Μήνυμα και δέσμευση κατακερματίζονται μαζί:
Στο ML-DSA-87 το είναι ένα πολυώνυμο με ακριβώς συντελεστές από το , ενώ όλοι οι υπόλοιποι 196 είναι μηδέν. Αυτή η δομή είναι σκόπιμη: κρατά το μικρό.
Στο παράδειγμα-παιχνίδι μας θέτουμε απλώς
13. Η καθαυτό υπογραφή
Με τις τιμές μας:
14. Το βήμα που εύκολα προσπερνά κανείς: η δειγματοληψία απόρριψης
Εδώ βρίσκεται το σημείο στο οποίο το ML-DSA διαφέρει από μια αφελή κατασκευή — και δεν είναι προαιρετικό.
Το περιέχει το μυστικό . Αν εξέδιδε κανείς πάντα απλώς το , το θα μπορούσε να υπολογιστεί στατιστικά από αρκετά πολλές υπογραφές. Σε μια πλατφόρμα αξιολογήσεων με πάρα πολλές υπογραφές την ημέρα αυτός δεν είναι θεωρητικός κίνδυνος.
Γι' αυτό η υπηρεσία υπογραφής ελέγχει πριν από την έκδοση αν το αποκαλύπτει υπερβολικά πολλά, και απορρίπτει διαφορετικά την υπογραφή — τότε ξεκινά από την αρχή με ένα νέο τυχαίο . Αυτό ονομάζεται Fiat-Shamir with Aborts.
Η συνθήκη είναι κατ' ουσίαν:
Για το ML-DSA-87 ισχύουν και . Προστίθεται ένα δεύτερο όριο στα κατώτερα bit. Στην πράξη είναι φυσιολογικά τα πολλαπλά περάσματα — η υπογραφή είναι επομένως διαδικασία με βρόχο, όχι ένα μεμονωμένο βήμα.
Για την επαλήθευση είναι σημαντικό: ακριβώς αυτό το όριο το ελέγχει αργότερα και το πρόγραμμα περιήγησης. Μια υπογραφή με υπερβολικά μεγάλους συντελεστές απορρίπτεται, ακόμη κι αν η εξίσωση επαληθεύεται.
15. Γιατί το πρόγραμμα περιήγησης μπορεί να το ελέγξει
Το πρόγραμμα περιήγησης του αναγνώστη γνωρίζει:
- την αξιολόγηση και μαζί της το
- το δημόσιο κλειδί
- την υπογραφή
Το δεν το γνωρίζει. Η σχέση που το βοηθά παρ' όλα αυτά:
Και επειδή ισχύει
το άγνωστο μπορεί να αντικατασταθεί από τη δημόσια τιμή:
Αυτή είναι η κεντρική εξίσωση — και λέει κάτι σημαντικό: το πρόγραμμα περιήγησης ανακατασκευάζει το όχι ακριβώς, αλλά μόνο με ακρίβεια μέχρι τον μικρό όρο .
16. Το μικρο-παράδειγμα ως το τέλος
Είχαμε:
Ας υπολογίσουμε:
Η αρχική δέσμευση ήταν
Η διαφορά είναι
Δηλαδή ακριβώς ο μικρός όρος σφάλματος που είχε προβλεφθεί. Ο επαληθευτής δεν λαμβάνει το , αλλά κάτι που βρίσκεται κοντά στο .
Ακριβώς γι' αυτό το ML-DSA δεν συγκρίνει τις ίδιες τις τιμές, αλλά τα ανώτερα bit τους. Και ακριβώς γι' αυτό η υπογραφή περιέχει επιπλέον ένα διάνυσμα υποδείξεων : γνωστοποιεί συμπαγώς σε ποια σημεία η στρογγυλοποίηση ανατράπηκε πάνω από ένα όριο εξαιτίας του μικρού όρου σφάλματος. Στο ML-DSA-87 επιτρέπονται το πολύ τέτοιες υποδείξεις. Δεν αποκαλύπτουν το μυστικό — απλώς επιδιορθώνουν τη στρογγυλοποίηση.
Στο τέλος το πρόγραμμα περιήγησης υπολογίζει εκ νέου την πρόκληση. Αν συμφωνεί,
και αν όλες οι νόρμες βρίσκονται εντός των ορίων, η υπογραφή είναι έγκυρη.
17. Τι συμβαίνει αν κάποιος αλλάξει την αξιολόγηση;
Ας υποθέσουμε ότι κάποιος με πρόσβαση στη βάση δεδομένων — ακόμη και κάποιος από εμάς — αλλάζει το κείμενο της αξιολόγησης ή μία από τις καρδιές. Τότε αλλάζει τουλάχιστον μία από τις δύο τιμές κατακερματισμού στο payload (h στο κείμενο, rh σε κάθε πεδίο της εγγραφής δεδομένων):
Έτσι αλλάζει η πρόκληση:
Η υπάρχουσα υπογραφή όμως δημιουργήθηκε για την παλιά πρόκληση. Το πρόγραμμα περιήγησης υπολογίζει και διαπιστώνει:
Η καθοριστική πρόταση: μπορούμε να διαγράψουμε μια αξιολόγηση, δεν μπορούμε όμως να την αλλάξουμε απαρατήρητα. Στο McGesund ο ίδιος έλεγχος τρέχει επιπλέον κάθε νύχτα στην πλευρά του διακομιστή σε όλο το απόθεμα — μια αξιολόγηση που δεν περνά αυτόν τον έλεγχο δεν συνυπολογίζεται πλέον στον μέσο όρο της επιχείρησης.
18. Γιατί δεν μπορεί κανείς να επινοήσει υπογραφή;
Ένας επιτιθέμενος γνωρίζει τα και , όχι όμως τα . Για να κατασκευάσει μια έγκυρη υπογραφή θα έπρεπε να βρει μια τριάδα που
- ικανοποιεί την εξίσωση επαλήθευσης και
- τηρεί τα όρια των νορμών και
- ταιριάζει με την πρόκληση που προκύπτει από αυτές ακριβώς τις τιμές.
Αυτό καταλήγει στον πυρήνα του σε ένα δύσκολο πρόβλημα πλέγματος — συγκεκριμένα στο Module-SIS: την εύρεση σύντομων λύσεων μιας ομογενούς εξίσωσης modulo . Η συνθήκη μικρότητας δεν είναι εδώ διακοσμητική, αλλά ο ίδιος ο βαθμός δυσκολίας. Χωρίς αυτήν μια λύση θα ήταν τετριμμένη.
19. Γιατί «Module»;
Η λέξη περιγράφει τη δομή ανάμεσα στα απλά διανύσματα και στα γενικά πλέγματα. Αντί να υπολογίζει με μεμονωμένους αριθμούς, το ML-DSA εργάζεται με διανύσματα πολυωνύμων:
και με πίνακες από αυτά:
Το πλεονέκτημα: αποκτά κανείς την υψηλή διάσταση ενός πλέγματος, διατηρώντας όμως μια συμπαγή, αποδοτικά υπολογίσιμη αναπαράσταση. Η ασφάλεια ρυθμίζεται με ακρίβεια μέσω του μεγέθους του πίνακα, χωρίς αλλαγή δακτυλίου.
20. Γιατί ακριβώς 87;
Τα τρία επίπεδα δεν διαφέρουν στον δακτύλιο, αλλά στις διαστάσεις:
| Παράμετρος | ML-DSA-44 | ML-DSA-65 | ML-DSA-87 |
|---|---|---|---|
| Μέγεθος πίνακα | |||
| Εύρος μυστικού | 2 | 4 | 2 |
| Βάρος πρόκλησης | 39 | 49 | 60 |
| Δημόσιο κλειδί | 1.312 B | 1.952 B | 2.592 B |
| Υπογραφή | 2.420 B | 3.309 B | 4.627 B |
| Κατηγορία NIST | 2 | 3 | 5 |
Αξιοσημείωτο: το ML-DSA-87 δεν είναι απλώς «ML-DSA-65, μόνο μεγαλύτερο». Το εύρος του μυστικού επιστρέφει από το 4 πάλι στο 2· η ασφάλεια προέρχεται εδώ από τον μεγαλύτερο πίνακα, όχι από μεγαλύτερους συντελεστές. Πρόκειται για μια αυτοτελή, τυποποιημένη επιλογή παραμέτρων.
Το τίμημα: 4.627 byte ανά υπογραφή — ανά σφραγίδα που αποθηκεύεται και παραδίδεται στο πρόγραμμα περιήγησης κατά τον έλεγχο. Γι' αυτό στο McGesund προσφέρεται δίπλα στο ML-DSA-87 και το FALCON, που αρκείται σε 1.280 byte.
21. Fiat-Shamir: γιατί λειτουργεί χωρίς συνομιλητή
Μια διαδραστική απόδειξη θα εξελισσόταν ως εξής:
- Η υπηρεσία υπογραφής στέλνει μια δέσμευση.
- Ο ελεγκτής στέλνει μια τυχαία πρόκληση.
- Η υπηρεσία υπογραφής απαντά.
- Ο ελεγκτής επαληθεύει.
Σε μια αξιολόγηση δεν υπάρχει αυτός ο διάλογος — ο αναγνώστης έρχεται μήνες αργότερα. Η λύση είναι ο μετασχηματισμός Fiat-Shamir: η πρόκληση δεν επιλέγεται με ζάρια, αλλά προκύπτει από τον κατακερματισμό των ίδιων των δεδομένων:
Έτσι ένας διάλογος μετατρέπεται σε έγγραφο. Η υπηρεσία υπογραφής δεν μπορεί να διαλέξει την πρόκληση, γιατί γι' αυτό θα έπρεπε να ελέγχει τον κατακερματισμό.
22. Η συνολική ροή
23. Τι κάνει συγκεκριμένα το McGesund με αυτό
Τρία επίπεδα αλληλοσυμπληρώνονται:
Ο φάκελος. Κάθε υπογεγραμμένη αξιολόγηση φέρει μια υπογραφή Ed25519. Αυτή είναι η υποχρεωτική εκδοχή — κλασική, ελάχιστη σε μέγεθος, ελέγξιμη εγγενώς σε κάθε πρόγραμμα περιήγησης.
Οι μετακβαντικές σφραγίδες. Επιπλέον μπορούν να τοποθετηθούν δίπλα της μία ή δύο κβαντικά ανθεκτικές υπογραφές. Ποιες, εξαρτάται από το πακέτο:
| Πακέτο | διαθέσιμα επίπεδα υπογραφής |
|---|---|
| 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, και τα δύο παράλληλα |
Η παράλληλη εκδοχή είναι σκόπιμα πλεονάζουσα. Αν μία από τις δύο μαθηματικές οικογένειες — πλέγματα NTRU στο FALCON, πλέγματα Module στο ML-DSA — αποδειχθεί ασθενέστερη από ό,τι υποθέτουμε σήμερα, η άλλη εξακολουθεί να ισχύει.
Το χρονικό αγκύρωμα. Το αποτύπωμα του κλειδιού υπογραφής αγκυρώνεται μέσω OpenTimestamps σε ένα μπλοκ του Bitcoin. Έτσι μπορεί να αποδειχθεί όχι μόνο ότι η υπογραφή είναι γνήσια, αλλά και ότι υπήρχε ήδη σε συγκεκριμένη χρονική στιγμή — χωρίς να χρειάζεται κανείς να πιστέψει τη δική μας χρονοσήμανση.
Όλα αυτά ελέγχονται στο πρόγραμμα περιήγησης του αναγνώστη, μέσω ενός αρθρώματος WASM. Εμείς παρέχουμε τα δεδομένα· ο υπολογισμός γίνεται στη συσκευή του επισκέπτη. Αν αύριο βγαίναμε εκτός δικτύου, μια αξιολόγηση που έχει ήδη ληφθεί θα παρέμενε επαληθεύσιμη.
24. ML-DSA και FALCON δίπλα δίπλα
| Ιδιότητα | FALCON (FN-DSA) | ML-DSA |
|---|---|---|
| Τύπος | ψηφιακή υπογραφή | ψηφιακή υπογραφή |
| Οικογένεια πλεγμάτων | NTRU | Module-LWE / Module-SIS |
| Δακτύλιος | , | , |
| Βασικός μηχανισμός | σύντομο διάνυσμα μέσω δειγματοληψίας Gauss | πρόκληση-απάντηση με απορρίψεις |
| FFT / NTT | FFT κινητής υποδιαστολής, κρίσιμη για την ασφάλεια | NTT, μόνο αριθμητική |
| Μέγεθος υπογραφής (ανώτατο επίπεδο) | 1.280 B | 4.627 B |
| Υλοποίηση | απαιτητική (κινητή υποδιαστολή) | συγκριτικά ευθύγραμμη |
| Τυποποίηση | προβλέπεται ως FIPS 206 (FN-DSA), δεν έχει ακόμη ολοκληρωθεί | FIPS 204, ολοκληρωμένη |
Με λίγα λόγια: το ML-DSA υλοποιείται και ελέγχεται σωστά ευκολότερα, το FALCON παρέχει σαφώς πιο συμπαγείς υπογραφές. Στον κωδικό QR δεν βρίσκεται καμία από τις δύο — εκεί υπάρχει μόνο ο φάκελος Ed25519. Το μέγεθος της υπογραφής μετρά επομένως στην αποθήκευση και την παράδοση, η ευρωστία στην υλοποίηση. Γι' αυτό προσφέρουμε και τα δύο.
25. Μια πρόταση για να κρατήσετε
Όποιος κατέχει το μυστικό διάνυσμα, υπογράφει σε χιλιοστά του δευτερολέπτου. Όποιος δεν το κατέχει, θα έπρεπε να λύσει ένα πρόβλημα πλέγματος σε πάνω από 14.000 διαστάσεις — ακόμη και με κβαντικό υπολογιστή.
Για τον αναγνώστη μιας αξιολόγησης αυτό σημαίνει απλώς: δεν χρειάζεται να μας πιστέψει. Μπορεί να το επαληθεύσει.