Κρυπτογραφία
Έλεγχος NIST: ελέγξτε μόνοι σας το ML-DSA-87, το SLH-DSA και το Ed25519
Το αμερικανικό ινστιτούτο τυποποίησης NIST δημοσιεύει επίσημα διανύσματα δοκιμών για το ML-DSA (FIPS 204) και το SLH-DSA (FIPS 205): δεδομένα εισόδου με τα αποτελέσματα που πρέπει να δίνει μια σωστή υλοποίηση, μεταξύ αυτών και σκόπιμα παραποιημένες υπογραφές. Εδώ το πρόγραμμα περιήγησής σας υπολογίζει ξανά αυτές τις περιπτώσεις με ακριβώς την ίδια μονάδα που ελέγχει και τις αξιολογήσεις μας.
Έναρξη δοκιμής
Τα αρχεία δοκιμών φορτώνονται απευθείας από το NIST στο GitHub, όχι από τους διακομιστές μας. Το αρχείο δοκιμών του SLH-DSA είναι περίπου 30 MB, οπότε η φόρτωση μπορεί να διαρκέσει λίγο.
Ή: κατεβάστε μόνοι σας τα αρχεία και επιλέξτε τα
- Ανοίξτε τους φακέλους
ML-DSA-keyGen-FIPS204,ML-DSA-sigVer-FIPS204,SLH-DSA-keyGen-FIPS205,SLH-DSA-sigVer-FIPS205,EDDSA-SigGen-1.0καιEDDSA-SigVer-1.0στο GitHub του NIST. - Κατεβάστε από τον καθένα το
internalProjection.json. - Επιλέξτε εδώ τα αρχεία (όλα ή μεμονωμένα):
Τι δείχνει η δοκιμή και τι όχι
- Δημιουργία κλειδιών (keyGen): από κάθε αρχική τιμή του NIST (seed) η μονάδα μας δημιουργεί μια υπογραφή. Αυτή είναι έγκυρη με το δημόσιο κλειδί που ορίζει το NIST μόνο αν η μονάδα μας υπολόγισε ακριβώς το ίδιο κλειδί.
- Έλεγχος υπογραφών (sigVer): η μονάδα μας πρέπει σε κάθε περίπτωση να καταλήγει στην ίδια κρίση με το NIST, ακόμη και σε σκόπιμα αλλοιωμένες υπογραφές, μηνύματα και πλαίσια.
- SLH-DSA-SHA2-256f: από τις τρεις αρχικές τιμές του NIST (skSeed, skPrf, pkSeed) η μονάδα μας πρέπει να παράγει ακριβώς το ίδιο ιδιωτικό και δημόσιο κλειδί με το NIST — σε σύγκριση byte προς byte. Για τον έλεγχο υπογραφών ισχύει το ίδιο με παραπάνω. Αξιολογείται μόνο το σύνολο παραμέτρων SHA2-256f, που χρησιμοποιεί η McGesund.
- Ed25519: εδώ δεν δοκιμάζεται ο δικός μας κώδικας, αλλά η κρυπτογραφία που είναι ενσωματωμένη στο πρόγραμμα περιήγησης και η εφεδρική μας βιβλιοθήκη noble, η οποία ελέγχει τις αξιολογήσεις σε προγράμματα περιήγησης χωρίς Ed25519. Δοκιμάζεται καθαρό Ed25519 χωρίς προκατακερματισμό και πλαίσιο, όπως υπογράφουμε. Το NIST παρέχει γι’ αυτό λίγες μόνο παραποιημένες περιπτώσεις· οι υπόλοιπες είναι έγκυρες υπογραφές που πρέπει να γίνουν δεκτές.
- Δεν καλύπτεται: η διαχείριση κλειδιών, οι διακομιστές και οι διαδικασίες γύρω από την υπογραφή. Η δοκιμή αποδεικνύει ότι τα μαθηματικά συμφωνούν με το πρότυπο, τίποτα περισσότερο.
- FN-DSA (Falcon): το πρότυπο FIPS 206 δεν είναι ακόμη οριστικό, γι’ αυτό το NIST δεν έχει δημοσιεύσει ακόμη επίσημα διανύσματα δοκιμών. Μόλις κυκλοφορήσουν, θα τα προσθέσουμε εδώ.