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

Το SLH-DSA εξηγημένο μαθηματικά

Πώς το SLH-DSA-SHA2-256f (FIPS 205) υπογράφει χωρίς κανένα άλλο δύσκολο πρόβλημα πέρα από τις συναρτήσεις κατακερματισμού — από τις αλυσίδες κατακερματισμού και τα δέντρα Merkle έως το δάσος από δέντρα FORS.

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

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

Στο McGesund, οι πελάτες των πακέτων Αξιολογήσεις Premium και Σήματα Premium μπορούν να επιλέξουν το επίπεδο υπογραφής PQ-Dual-Diversified. Τότε κάθε κωδικός QR φέρει, εκτός από την κλασική υπογραφή Ed25519, δύο κβαντικά ανθεκτικές υπογραφές: ML-DSA-87 και SLH-DSA-SHA2-256f.

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

Το SLH-DSA δεν είναι κρυπτογράφηση. Το περιεχόμενο παραμένει δημόσια αναγνώσιμο. Το SLH-DSA αποδεικνύει προέλευση και ακεραιότητα — όπως κάθε ψηφιακή υπογραφή.

Το SLH-DSA σημαίνει ολογράφως Stateless Hash-Based Digital Signature Algorithm. Αναπτύχθηκε από το SPHINCS+ και τυποποιήθηκε το 2024 ως FIPS 205. Το όνομα προδίδει ήδη την ιδιαιτερότητά του: η μέθοδος χρησιμοποιεί μόνο συναρτήσεις κατακερματισμού. Ούτε πλέγματα, ούτε ελλειπτικές καμπύλες, ούτε μεγάλους πρώτους αριθμούς.


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

Στο McGesund, το SLH-DSA υπογράφει την ίδια εγγραφή δεδομένων που καλύπτει και η υπογραφή Ed25519 στον κωδικό QR: το payload του κωδικού QR. Περιέχει μεταξύ άλλων σε ποια επιχείρηση ανήκει ο κωδικός (fid), τι είδους είναι (typ), πότε εκδόθηκε (iat) και μέχρι πότε ισχύει (exp) — ως μια συμπαγώς κωδικοποιημένη ακολουθία byte (CBOR).

Αυτή η ακολουθία byte είναι το μήνυμά μας MM. Αν κάποιος αλλάξει εκ των υστέρων έστω και ένα bit, καμία από τις υπογραφές δεν ταιριάζει πλέον.

Η υπογραφή SLH-DSA δεν βρίσκεται μέσα στον ίδιο τον κωδικό QR. Με περίπου 49 KB είναι πολύ μεγάλη γι' αυτό. Αποθηκεύεται ως ξεχωριστή «σφραγίδα» στην εγγραφή QR στο backend του McGesund και φορτώνεται στο πρόγραμμα περιήγησης όταν κάνετε κλικ στο «Έλεγχος αυθεντικότητας».


3. Γιατί μια μέθοδος μόνο από συναρτήσεις κατακερματισμού;

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

ΜέθοδοςΗ ασφάλεια στηρίζεται σε
Ed25519διακριτό λογάριθμο σε ελλειπτική καμπύλη
FALCONσύντομα διανύσματα σε πλέγματα NTRU
ML-DSAModule-LWE και Module-SIS (πλέγματα)
SLH-DSAμόνο σε ιδιότητες της συνάρτησης κατακερματισμού

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

Το SLH-DSA, αντίθετα, χρειάζεται μόνο η συνάρτηση κατακερματισμού να κάνει αυτό για το οποίο κατασκευάστηκε:

Αποˊ το H(x) δεν μπορειˊ να υπολογιστειˊ αντιˊστροφα το x, και κανειˊς δεν βριˊσκει δευˊτερο x′ με H(x′)=H(x).\text{Από το } H(x) \text{ δεν μπορεί να υπολογιστεί αντίστροφα το } x \text{, και κανείς δεν βρίσκει δεύτερο } x' \text{ με } H(x') = H(x) \text{.}

Αυτή είναι η επί μακρότερον και διεξοδικότερα μελετημένη υπόθεση όλης της κρυπτογραφίας. Ακόμη και ένας κβαντικός υπολογιστής βοηθά εδώ μόνο περιορισμένα: ο αλγόριθμος του Grover υποδιπλασιάζει τα bit ασφάλειας. Γι' αυτό η παραλλαγή 256 χρησιμοποιεί τιμές κατακερματισμού n=32n = 32 byte =256= 256 bit — μετά τον Grover απομένουν ακόμη 128 bit.

Ακριβώς γι' αυτό το επίπεδο λέγεται Diversified: Το ML-DSA (πλέγματα) και το SLH-DSA (κατακερματισμός) προέρχονται από διαφορετικές μαθηματικές οικογένειες. Αν πέσει η μία, η άλλη εξακολουθεί να ισχύει.


4. Δομικό στοιχείο 1: υπογραφή με αλυσίδες κατακερματισμού (WOTS+)

Η βασική ιδέα είναι εκπληκτικά απλή. Ξεκινάμε με ένα μόνο ψηφίο.

Πάρτε μια μυστική τυχαία τιμή ss και κατακερματίστε την ξανά και ξανά:

s  →  H(s)  →  H2(s)  →  …  →  H15(s)=ps \;\to\; H(s) \;\to\; H^2(s) \;\to\; \dots \;\to\; H^{15}(s) = p

Το τέλος της αλυσίδας, pp, δημοσιεύεται. Αυτό είναι το δημόσιο κλειδί για αυτό το ένα ψηφίο.

Για να υπογραφεί ένα ψηφίο dd μεταξύ 0 και 15, αποκαλύπτεται η τιμή της αλυσίδας στη θέση dd:

σ=Hd(s)\sigma = H^{d}(s)

Όποιος θέλει να ελέγξει, κατακερματίζει το σ\sigma άλλες 15−d15 - d φορές. Αν προκύψει ακριβώς το pp, η υπογραφή είναι γνήσια:

H15−d(σ)=?pH^{15-d}(\sigma) \stackrel{?}{=} p

Ένα μικρό παράδειγμα

Υπογράφουμε το ψηφίο d=6d = 6:

  • Ο υπογράφων δημοσιεύει σ=H6(s)\sigma = H^6(s).
  • Ο ελεγκτής υπολογίζει H9(σ)=H15(s)H^{9}(\sigma) = H^{15}(s) και συγκρίνει με το pp. Ταιριάζει.

Ένας πλαστογράφος που έχει δει το σ\sigma μπορεί χωρίς κόπο να υπολογίσει από αυτό τα H7(s)H^7(s), H8(s)H^8(s) κ.ο.κ. — δηλαδή να υπογράψει μεγαλύτερα ψηφία. Μικρότερα δεν μπορεί, γιατί για αυτό θα έπρεπε να κατακερματίσει προς τα πίσω.

Το άθροισμα ελέγχου κατά του «μετρήματος προς τα πάνω»

Για να μην μπορεί κανείς απλώς να αυξάνει ψηφία, υπογράφεται επιπλέον ένα άθροισμα ελέγχου:

C=∑i(15−di)C = \sum_{i} (15 - d_i)

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

Σε κλίμακα μιας τιμής κατακερματισμού

Μια τιμή κατακερματισμού 32 byte έχει 64 ψηφία στη βάση 16. Σε αυτά προστίθενται 3 ψηφία αθροίσματος ελέγχου:

len=64+3=67 αλυσιˊδες\text{len} = 64 + 3 = 67 \text{ αλυσίδες}

Μια τέτοια υπογραφή ονομάζεται WOTS+ (Winternitz One-Time Signature). Το μεγάλο της μειονέκτημα κρύβεται στο όνομα: One-Time, μίας χρήσης. Όποιος υπογράψει δύο διαφορετικά μηνύματα με το ίδιο κλειδί, αποκαλύπτει τόσες τιμές αλυσίδων ώστε οι πλαστογραφίες γίνονται δυνατές.


5. Δομικό στοιχείο 2: πολλά κλειδιά μίας χρήσης κάτω από μία στέγη (δέντρο Merkle)

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

Η λύση είναι ένα δέντρο Merkle: τα δημόσια κλειδιά 2h′2^{h'} ζευγών WOTS+ σχηματίζουν τα φύλλα. Κάθε δύο γειτονικά κατακερματίζονται μαζί, τα αποτελέσματα ξανά ανά ζεύγη, μέχρι να μείνει στην κορυφή μία μόνο ρίζα.

κοˊμβος=H(αριστεραˊ ∥ δεξιαˊ)\text{κόμβος} = H(\text{αριστερά} \,\|\, \text{δεξιά})

Στο SLH-DSA-SHA2-256f κάθε δέντρο έχει ύψος h′=4h' = 4, δηλαδή 24=162^4 = 16 φύλλα.

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


6. Δομικό στοιχείο 3: δέντρα πάνω σε δέντρα (υπερδέντρο)

16 κλειδιά μίας χρήσης φυσικά δεν αρκούν. Γι' αυτό το SLH-DSA στοιβάζει δέντρα το ένα πάνω στο άλλο: η ρίζα ενός δέντρου υπογράφεται με ένα κλειδί WOTS+ του δέντρου από πάνω. Αυτός ο πύργος ονομάζεται υπερδέντρο.

Στο SLH-DSA-SHA2-256f υπάρχουν d=17d = 17 στρώσεις, καθεμία με ύψος 4:

h=d⋅h′=17⋅4=68h = d \cdot h' = 17 \cdot 4 = 68

Στο κατώτατο επίπεδο είναι έτσι διαθέσιμα

268≈2,95⋅10202^{68} \approx 2{,}95 \cdot 10^{20}

φύλλα. Η ρίζα του ανώτατου δέντρου ονομάζεται PK.root\text{PK.root} — αυτή είναι το πραγματικό δημόσιο κλειδί.

Σημαντικό: κανείς δεν υπολογίζει αυτά τα δέντρα εκ των προτέρων. Όλες οι μυστικές τιμές παράγονται όποτε χρειάζονται από μια μυστική αρχική τιμή SK.seed\text{SK.seed}. Αποθηκεύονται μόνο τέσσερις τιμές των 32 byte η καθεμία:

ΜέροςΠεριεχόμενοΜέγεθος
SK.seedαρχική τιμή για όλες τις μυστικές τιμές των αλυσίδων32 B
SK.prfαρχική τιμή για την τυχαία συνιστώσα RR32 B
PK.seedδημόσια αρχική τιμή, διαχωρίζει τα ζεύγη κλειδιών μεταξύ τους32 B
PK.rootρίζα του ανώτατου δέντρου32 B

Το ιδιωτικό κλειδί αποτελείται και από τις τέσσερις (128 byte), το δημόσιο μόνο από τα PK.seed και PK.root (64 byte).


7. Δομικό στοιχείο 4: ένα δάσος κατά των τυχαίων συμπτώσεων (FORS)

Τώρα το πραγματικό πρόβλημα: πώς ξέρει ο υπογράφων ποιο από τα 2682^{68} φύλλα είναι ακόμη αχρησιμοποίητο;

Παλαιότερες μέθοδοι βασισμένες στον κατακερματισμό (XMSS, LMS) τηρούν για τον σκοπό αυτό έναν μετρητή. Αυτός δεν πρέπει ποτέ να επαναφερθεί — ούτε από ένα αντίγραφο ασφαλείας, ούτε από έναν δεύτερο διακομιστή. Αν συμβεί παρ' όλα αυτά, ένα κλειδί μίας χρήσης χρησιμοποιείται δύο φορές και η μέθοδος έχει σπάσει. Τέτοιες μέθοδοι ονομάζονται με κατάσταση.

Το SLH-DSA είναι χωρίς κατάσταση: το φύλλο επιλέγεται ψευδοτυχαία από το ίδιο το μήνυμα. Τότε μπορεί να συμβεί δύο μηνύματα να πέσουν στο ίδιο φύλλο. Γι' αυτό στο κατώτατο επίπεδο δεν κρέμεται μια υπογραφή μίας χρήσης, αλλά μια υπογραφή λίγων χρήσεων: το FORS (Forest of Random Subsets).

Το FORS αποτελείται από k=35k = 35 μικρά δέντρα Merkle με 2a=29=5122^a = 2^9 = 512 φύλλα το καθένα. Τα φύλλα είναι μυστικές τυχαίες τιμές.

Για την υπογραφή, ο κατακερματισμός του μηνύματος διασπάται σε 35 αριθμούς των 9 bit ο καθένας. Κάθε αριθμός επιλέγει στο «δικό του» δέντρο ακριβώς ένα φύλλο. Η υπογραφή περιέχει για κάθε δέντρο:

  • τη μυστική τιμή αυτού του φύλλου
  • τη διαδρομή αυθεντικοποίησής του (9 κόμβοι)

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


8. Ολόκληρη η διαδικασία της υπογραφής

  1. Τυχαία συνιστώσα. Από το SK.prf\text{SK.prf}, έναν νέο τυχαίο αριθμό και το μήνυμα προκύπτει μια τιμή RR 32 byte.
  2. Κατακερματισμός του μηνύματος.
    digest=Hmsg(R, PK.seed, PK.root, M)\text{digest} = H_{\text{msg}}(R,\ \text{PK.seed},\ \text{PK.root},\ M)
    Τα 49 byte της σύνοψης μοιράζονται: 40 byte επιλέγουν τα 35 φύλλα FORS, το υπόλοιπο καθορίζει ποιο δέντρο (idx_tree) και ποιο φύλλο (idx_leaf) στο κατώτατο επίπεδο του υπερδέντρου χρησιμοποιείται.
  3. Υπογραφή FORS επί του μηνύματος. Από αυτήν προκύπτει ένα δημόσιο κλειδί FORS.
  4. Υπογραφή υπερδέντρου επί αυτού του κλειδιού FORS: 17 υπογραφές WOTS+, καθεμία με μια διαδρομή αυθεντικοποίησης, στρώση προς στρώση μέχρι το PK.root\text{PK.root}.

Η τελική υπογραφή είναι απλώς η συνένωση:

σ=R ∥ σFORS ∥ σHT\sigma = R \,\|\, \sigma_{\text{FORS}} \,\|\, \sigma_{\text{HT}}

9. Γιατί η υπογραφή έχει μέγεθος 49.856 byte

Με τις παραμέτρους του SLH-DSA-SHA2-256f, το μέγεθος μπορεί να υπολογιστεί ακριβώς (n=32n = 32 byte ανά τιμή κατακερματισμού):

ΜέροςΥπολογισμόςByte
RRnn32
FORSk⋅(1+a)⋅n=35⋅10⋅32k \cdot (1 + a) \cdot n = 35 \cdot 10 \cdot 3211.200
Υπερδέντρο(h+d⋅len)⋅n=(68+17⋅67)⋅32(h + d \cdot \text{len}) \cdot n = (68 + 17 \cdot 67) \cdot 3238.624
Σύνολο49.856

Για σύγκριση: μια υπογραφή Ed25519 έχει 64 byte, το ML-DSA-87 έχει 4.627 byte. Το μέγεθος είναι το τίμημα για το ότι το SLH-DSA αρκείται σε τίποτα άλλο πέρα από συναρτήσεις κατακερματισμού.


10. Πώς ελέγχει το πρόγραμμα περιήγησης

Στο SLH-DSA, έλεγχος σημαίνει: εκ νέου κατακερματισμός.

  1. Υπολογίζεται ξανά η σύνοψη από το RR, το δημόσιο κλειδί και το μήνυμα.
  2. Από τα 35 αποκαλυφθέντα φύλλα FORS και τις διαδρομές τους υπολογίζονται οι 35 ρίζες των δέντρων και από αυτές το δημόσιο κλειδί FORS.
  3. Με καθεμία από τις 17 υπογραφές WOTS+ οι αλυσίδες κατακερματίζονται μέχρι το τέλος, σχηματίζεται το δημόσιο κλειδί WOTS+ και μέσω της διαδρομής κατακερματίζεται προς τα πάνω μέχρι τη ρίζα του δέντρου.
  4. Στο τέλος πρέπει να προκύψει ακριβώς το PK.root\text{PK.root}.

Πρόκειται για μερικές χιλιάδες κλήσεις της συνάρτησης κατακερματισμού — παιχνιδάκι για έναν υπολογιστή. Στο πρόγραμμα περιήγησης ο έλεγχος διαρκεί σε εμάς περίπου 6 έως 12 χιλιοστά του δευτερολέπτου.


11. Τι συμβαίνει αν κάποιος αλλάξει την εγγραφή δεδομένων;

Αν αλλάξει έστω και ένα bit του μηνύματος MM, η σύνοψη αλλάζει εντελώς. Έτσι οι 35 αριθμοί δείχνουν σε άλλα φύλλα FORS και η μέθοδος σε άλλη θέση στο υπερδέντρο.

Τα αποκαλυφθέντα μυστικά δεν ταιριάζουν πλέον: οι ρίζες που υπολογίζονται ξανά αποκλίνουν και στο τέλος δεν προκύπτει το PK.root\text{PK.root}. Ο έλεγχος αποτυγχάνει.

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


12. Γιατί ακριβώς 256f;

Το FIPS 205 ορίζει δώδεκα σύνολα παραμέτρων: δύο οικογένειες κατακερματισμού (SHA-2 και SHAKE), τρία επίπεδα ασφάλειας (128, 192, 256) και για το καθένα μία γρήγορη («f») και μία μικρή («s») παραλλαγή.

ΠαραλλαγήΥπογραφήΔιαδικασία υπογραφής (σε εμάς)Έλεγχος
SHA2-256s29.792 Bπερ. 2,6 sπερ. 3 ms
SHA2-256f49.856 Bπερ. 0,26 sπερ. 6 ms

Το 256 σημαίνει κατηγορία ασφάλειας 5 του NIST — το ίδιο επίπεδο με τα FALCON-1024 και ML-DSA-87.

Επιλέξαμε το «f» επειδή οι επιχειρήσεις μπορούν να εκδώσουν έως 500 κωδικούς QR με μία κίνηση. Με το «s» η υπογραφή θα διαρκούσε πάνω από 20 λεπτά, με το «f» κάτω από ένα λεπτό. Σε αντάλλαγμα η υπογραφή είναι μεγαλύτερη — αφού δεν βρίσκεται μέσα στον κωδικό QR, αυτό είναι ανεκτό.

SHA-2 αντί για SHAKE, επειδή τα SHA-256 και SHA-512 διαθέτουν επιτάχυνση υλικού σε πρακτικά κάθε συσκευή.


13. Τυχαιότητα κατά την υπογραφή

Το FIPS 205 επιτρέπει δύο τρόπους παραγωγής του RR:

  • ντετερμινιστικά: ίδιο μήνυμα, ίδια υπογραφή
  • τυχαιοποιημένα («hedged»): συμμετέχει και ένας νέος τυχαίος αριθμός

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


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

Το επίπεδο. Το PQ-Dual-Diversified διατίθεται στα Αξιολογήσεις Premium και Σήματα Premium. Ένας κωδικός QR φέρει τότε τρεις υπογραφές:

ΥπογραφήΟικογένειαΘέση
Ed25519ελλειπτική καμπύληστον κωδικό QR
ML-DSA-87πλέγματασφραγίδα στο backend
SLH-DSA-SHA2-256fσυναρτήσεις κατακερματισμούσφραγίδα στο backend

Η διαδικασία υπογραφής. Μια υπογραφή SLH-DSA κοστίζει περίπου ένα τέταρτο του δευτερολέπτου υπολογιστικού χρόνου. Για να παραμένει ο διακομιστής στο μεταξύ διαθέσιμος για όλους τους άλλους, τους υπολογισμούς εκτελούν ξεχωριστά νήματα παρασκηνίου.

Ο έλεγχος. Το πρόγραμμα περιήγησης του αναγνώστη φορτώνει και τις δύο σφραγίδες και τις ελέγχει με το ίδιο άρθρωμα WASM όπως όλες τις άλλες υπογραφές PQ. Εμείς παρέχουμε τα δεδομένα· ο υπολογισμός γίνεται στη συσκευή του επισκέπτη.

Η αντιπαραβολή με το NIST. Το άρθρωμά μας περνά τα επίσημα διανύσματα δοκιμής του NIST για το SLH-DSA-SHA2-256f: από τις αρχικές τιμές του NIST προκύπτουν byte προς byte τα ίδια κλειδιά, και όλες οι σκόπιμα αλλοιωμένες υπογραφές απορρίπτονται. Μπορείτε να το ελέγξετε μόνοι σας στο πρόγραμμα περιήγησης στη σελίδα δοκιμών NIST.

Το χρονικό αγκύρωμα. Όπως για όλα τα κλειδιά, το αποτύπωμα του κλειδιού SLH-DSA αγκυρώνεται μέσω OpenTimestamps σε ένα μπλοκ του Bitcoin.


15. SLH-DSA, ML-DSA και FALCON δίπλα δίπλα

ΙδιότηταFALCON (FN-DSA)ML-DSA-87SLH-DSA-SHA2-256f
Βάσηπλέγματα NTRUπλέγματα Moduleμόνο συναρτήσεις κατακερματισμού
ΠρότυποFIPS 206 (σε επεξεργασία)FIPS 204, οριστικόFIPS 205, οριστικό
Δημόσιο κλειδί1.793 B2.592 B64 B
Υπογραφή1.280 B4.627 B49.856 B
Διαδικασία υπογραφήςχιλιοστά του δευτερολέπτουχιλιοστά του δευτερολέπτουπερ. 0,26 s
Έλεγχοςχιλιοστά του δευτερολέπτουχιλιοστά του δευτερολέπτουχιλιοστά του δευτερολέπτου
Υπόθεσηπρόβλημα πλέγματοςπρόβλημα πλέγματοςσυνάρτηση κατακερματισμού

Με λίγα λόγια: το SLH-DSA είναι η πιο αργή και η μεγαλύτερη από τις τρεις μεθόδους — και η πιο συντηρητική. Δεν βασίζεται σε τίποτα που δεν προϋποθέτει ήδη ούτως ή άλλως κάθε άλλη υπογραφή: μια ασφαλή συνάρτηση κατακερματισμού.


16. Μια πρόταση για να κρατήσετε

Το SLH-DSA υπογραˊφει με αλυσιˊδες κατακερματισμουˊ, τις ομαδοποιειˊ σε δεˊντρα Merkleκαι επιλεˊγει το φυˊλλο αποˊ το ιˊδιο το μηˊνυμα — ασφαλεˊς οˊσοη συναˊρτηση κατακερματισμουˊ ειˊναι ασφαληˊς.\boxed{ \begin{array}{c} \text{Το SLH-DSA υπογράφει με αλυσίδες κατακερματισμού, τις ομαδοποιεί σε δέντρα Merkle}\\ \text{και επιλέγει το φύλλο από το ίδιο το μήνυμα — ασφαλές όσο}\\ \text{η συνάρτηση κατακερματισμού είναι ασφαλής.} \end{array}}

Όποιος κατέχει τη μυστική αρχική τιμή, υπογράφει σε ένα τέταρτο του δευτερολέπτου. Όποιος δεν την κατέχει, θα έπρεπε να υπολογίσει το SHA-256 ή το SHA-512 προς τα πίσω — ακόμη και με κβαντικό υπολογιστή.

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