Βάση γνώσεων: κβαντική ανθεκτική κρυπτογράφηση

Nymchat τεχνικό whitepaper

Post-Quantum Key Συμφωνία στο Nymchat

Διανομή των δημόσιων κλειδιών ML-KEM-768 πάνω από τη Nostr χωρίς κατάλογο ή μητρώο, και σπορά τους από ένα μυστικό που καμία δημόσια αξία δεν αποκαλύπτει.

Έκδοση 1.0 Αύγουστος 2026 Εφαρμόζεται στο Nymchat 3.74+

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

1Το πρόβλημα

Τα ιδιωτικά μας μηνύματα κρυπτογραφούνται με NIP-44, το οποίο έχει δύο διαχωρίσιμα μισά. το μισό που ξεφλουδίζει το απλό κείμενο — ChaCha20 με ετικέτα HMAC-SHA256, κλειδωμένο μέσω ΧΧΔΕ (ΡΕΦΚ 5869) - δεν απειλείται ουσιαστικά από έναν κβαντικό υπολογιστή. ο αλγόριθμος του Grover κοστίζει μια επιτάχυνση τετράγωνης ρίζας έναντι ενός συμμετρικού κλειδιού, και τα 256 bits απορροφούν αυτό. Συμφωνώ Η ελλειπτική καμπύλη Diffie-Hellman ΚΕΦΑΛΑΙΟ 256Κ1Η ανάκτηση ενός ιδιωτικού κλειδιού από τον δημόσιο αντισυμβαλλόμενο του αποκαλύπτει αναδρομικά κάθε κοινό μυστικό που έχει παράγει ποτέ το κλειδί.

Η απειλή που δημιουργεί αυτό δεν αναβάλλεται μέχρι να υπάρξει μια τέτοια μηχανή. Ένας αντίπαλος με αποθήκευση μπορεί να καταγράψει κείμενο κρυπτογράφησης σήμερα και να το αποκρυπτογραφήσει κάθε φορά που φτάνει η δυνατότητα. Οτιδήποτε αποστέλλεται τώρα που εξακολουθεί να έχει σημασία τότε έχει ήδη τεθεί σε κίνδυνο.

1.1 Η ερώτηση που απαντά αυτό το άρθρο

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

Το ερώτημα

Για να στείλετε μήνυμα στην Αλίκη σήμερα, χρειάζεστε ένα πράγμα: το npub της.Προσθέστε μια μετα-κβαντική ανταλλαγή και χρειάζεστε ένα δεύτερο - το ML-KEM δημόσιο κλειδί της.Πού ζει αυτό το κλειδί και πώς μπορείτε να το πάρετε πριν μπορείτε να της στείλετε οτιδήποτε;

Μπορείτε να το γράψετε σε χαρτί, να το διαβάσετε δυνατά, ή να το σαρώσετε από μια οθόνη, και είναι το μόνο που χρειάζεται κάποιος για να κρυπτογραφήσει για σας. Ένα ML-KEM-768 δημόσιο κλειδί είναι 1.184 bytes. Δεν μπορεί να διαβαστεί δυνατά, δεν θα ταιριάζει σε ένα όνομα χρήστη, και δεν ανήκει σε έναν κώδικα QR εκτός από μια ταυτότητα που είναι μόνο 32 bytes.

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

2Σχεδιασμός περιορισμών

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

  1. όσο το δυνατόν λιγότερα μυστικά. Κάθε επιπλέον μυστικό είναι ένας άλλος τρόπος για να χάσετε το ιστορικό σας και κάποιος που ξέρει πώς να δημιουργήσει αντίγραφο ασφαλείας για ένα nsec δεν θα ξέρει πώς να δημιουργήσει αντίγραφο ασφαλείας για οτιδήποτε άλλο. Η ενότητα 3.1 δείχνει ότι αυτό το κλειδί δεν μπορεί να ικανοποιηθεί άμεσα - ένα μετα-κλειδί κβαντικού τύπου που προέρχεται από το nsec δεν παρέχει καθόλου μετα-κβαντική προστασία - έτσι ο σχεδιασμός ξοδεύει ακριβώς ένα μυστικό και τίποτα περισσότερο: ένα μόνο κομμάτι του υλικού κλειδιού, που παράγεται μία φορά ανά ταυτότητα, παρουσιάζεται με την ίδια μορφή με το nsec και στον ίδιο τόπο, έτσι ώστε όποιος ξέρει πώς να κρατήσει το ένα να ξέρει πώς να κρατήσει το άλλο.
  2. Χωρίς την εξουσία. Δεν υπάρχει διακομιστής που να μπορεί να εμπιστευτείται για να πει ποιο κλειδί ανήκει σε ποιον.
  3. Πολλές συσκευές, μία ταυτότητα Μια ταυτότητα Nostr χρησιμοποιείται συνήθως από πολλούς πελάτες ταυτόχρονα.Οποιοδήποτε βασικό υλικό υπάρχει πρέπει να καταλήξει να είναι πανομοιότυπο σε όλους τους πελάτες και οι διαδρομές που το φέρουν εκεί δεν πρέπει να είναι αναγνώσιμες από τον αντίπαλο από τον οποίο το χαρακτηριστικό υπερασπίζεται.
  4. Χωρίς διαπραγμάτευση Οποιαδήποτε ανταλλαγή εντός της ζώνης του “ποια ψηφία υποστηρίζετε;” είναι μια επιφάνεια που ένας επιτιθέμενος μπορεί να τραβήξει για να αναγκάσει την ασθενέστερη επιλογή.

3Ένα ανεξάρτητο μυστικό ρίζας

Η απόφαση που φέρει το φορτίο είναι ότι το κλειδί αποκύψωσης ML-KEM σπέρνεται από βασικό υλικό που καμία δημόσια αξία δεν αποκαλύπτει.

pqRoot   = 32 bytes from a CSPRNG, generated ONCE per identity

seed     = HKDF-Expand(
               HKDF-Extract(salt = "nym-pq-root-v2", IKM = pqRoot),
               info = "mlkem768/epoch/" || epoch,
               64 bytes)

(ek, dk) = ML-KEM-768.KeyGen(seed)

Η ρίζα παρουσιάζεται στον χρήστη με τον τρόπο που ένα nsec είναι: Μπέκα32 Με το ανθρωποαναγνωρίσιμο πρόθεμα nympqΈτσι, διαβάζεται ως nympq1…, που εμφανίζεται δίπλα στο nsec στην οθόνη ταυτότητας πίσω από την ίδια αλληλεπίδραση αποκάλυψης, αντιγράφεται με το ίδιο στοιχείο ελέγχου, ποτέ δεν συνδέεται και ποτέ δεν αποστέλλεται οπουδήποτε στο σαφές.

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

3.1 Γιατί το κλειδί δεν μπορεί να προκύψει από το κλειδί ταυτότητας

Ο προφανής σχεδιασμός είναι να σπείρει το πληκτρολόγιο από το μυστικό που έχει ήδη ο χρήστης:

seed = HKDF(salt = "…", IKM = nsec)          // do not do this

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

Και τα τέσσερα οφέλη είναι άχρηστα, για έναν λόγο. Ο αλγόριθμος του Shor τρέχει ενάντια σε ένα δημοσιευμένο npub αποδίδει το nsec. Η προέλευση σπόρων είναι ένας δημόσιος αλγόριθμος ενάντια στο nsec. Έτσι, ο αντίπαλος που σπάει το κλασικό μισό ανακατασκευάζει το μετέπειτα κβαντικό μισό εκτελώντας το ίδιο HKDF που εκτελεί ο καθένας άλλος. Ενάντια στη συγκομιδή-τώρα-αποκρυπτογράφηση-αργότερα - η μόνη απειλή που υπάρχει το χαρακτηριστικό για να σταματήσει - ένα κλειδί που προέρχεται με αυτόν τον τρόπο δεν προσθέτει τίποτα.

Ο κανόνας είναι ότι όλα προκύπτουν από

Το κλειδί αποκρυπτογράφησης ML-KEM πρέπει να προέρχεται από εντροπία που δεν προέρχεται από το nsec ούτε μεταδίδεται ποτέ υπό κλασική κρυπτογράφηση.

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

3.2 Αποκτήστε τη ρίζα σε άλλες συσκευές του χρήστη

Περιορισμός 3 του Τμήματος 2 – μία ταυτότητα, πολλές συσκευές – δεν μπορεί να ικανοποιηθεί από την αριθμητική εδώ, διότι το όλο θέμα είναι ότι το κλειδί δεν είναι λειτουργία οποιουδήποτε από τα συσκευές που ήδη μοιράζονται. nympq1… τον ίδιο τον κώδικα.

Η ρίζα εμφανίζεται ως nympq1… δίπλα στο nsec, και μια δεύτερη συσκευή δέχεται να τοποθετηθεί στον ίδιο πίνακα. Αυτό είναι ολόκληρος ο μηχανισμός. Μια συσκευή που δεν έχει δοθεί ο κωδικός δεν μπορεί να συμμετάσχει, το οποίο περιγράφεται στην ενότητα 4.2.

Ο κανόνας στην ενότητα 3.1 λέει ότι η ρίζα δεν μπορεί ποτέ να ταξιδέψει υπό κλασική μόνο κρυπτογράφηση, και κάθε μηχανισμός που θα το έκανε αυτό αυτόματο -συγχρονίζοντάς το μέσω ενός αναμεταδότη, τυλίγοντάς το στο κλειδί ταυτότητας- παραβιάζει ακριβώς αυτό.

Η μορφή αφήνει χώρο για μια τυλιγμένη διαδρομή: μια εγγραφή μπορεί να φέρει μια λίστα τυλιγμένων, το καθένα ένα AEAD blob κάτω από ένα κλειδί που ο χρήστης μπορεί να αναπαράγει σε μια άλλη συσκευή - μια έξοδο PRF passkey, για παράδειγμα. nympq1… Το μόνο που μπορείς να κάνεις είναι να το κάνεις αυτό.Η παράγραφος 10.1 αναφέρει πόσο κοστίζει.

Η ίδια η εγγραφή ζει στη δική της κατηγορία ρυθμίσεων, nymchat-pq-rootΑκόμα κι αν δεν φέρει περιτύλιγμα, κάνει την απαραίτητη δουλειά: η παρουσία του είναι πώς μια δεύτερη συσκευή μαθαίνει ότι αυτή η ταυτότητα έχει ήδη μια ρίζα, η οποία είναι αυτό που την σταματά να προσελκύει έναν αντίπαλο (Κεφάλαιο 3.3).

Σημείωση σχεδιασμού: η κατηγορία που δεν μπορεί να χρησιμοποιήσει το νέο κλειδί

Η nymchat-pq-root Κατηγορία ΠΡΕΠΕΙ δεν Αυτή η γραμμή φέρει το μοναδικό αντίγραφο της ρίζας, έτσι σφραγίζοντάς την κάτω από ένα κλειδί που προέρχεται από τη ρίζα είναι μια κλειδαριά του οποίου το κλειδί είναι μέσα στο κουτί: καμία συσκευή δεν θα μπορούσε ποτέ να το ανοίξει, συμπεριλαμβανομένης της συσκευής που το έγραψε. είναι σφραγισμένη κλασικά - NIP-44 από μόνη της - ή όχι καθόλου.

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

3.3 Γεννήσεις και υιοθεσίες

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

  1. Αναζητήστε ένα υπάρχον nymchat-pq-root Το ρεκόρ.
  2. Βρέθηκε η εγγραφή και αυτή η συσκευή μπορεί να την ξεκλειδώσει - να την υιοθετήσουν και να ανακοινώσουν αυτή την ταυτότητα ως μετα-κβαντική ικανότητα.
  3. Βρέθηκε η εγγραφή και αυτή η συσκευή δεν μπορεί να την ξεκλειδώσει - μην δημιουργείτε μια νέα ρίζα και μην δημοσιεύετε καμία ανακοίνωση καθόλου.Προτρέψτε τον χρήστη να συνδέσει αυτή τη συσκευή εισάγοντας το nympq1… κώδικα από μια συσκευή που την έχει ήδη.
  4. Χωρίς ρεκόρ - να δημιουργήσετε μια ρίζα, να δημοσιεύσετε την εγγραφή, να ανακοινώσετε και να nympq1… κώδικα στον χρήστη μία φορά, ώστε να μπορούν να το αποθηκεύσουν.

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

4Η ανακοίνωση της ικανότητας

Το δημόσιο μισό του παράγωγου πληκτρολογίου δημοσιεύεται ως διευθύνσιμο ΝΕΑ-01 εκδήλωση — τύπος 30078, ετικέτα nym-pq:

{
  "kind": 30078,
  "tags": [
    ["d", "nym-pq"],
    ["t", "nym-pq"],
    ["expiration", "<unix seconds>"]
  ],
  "content": {
    "v":     2,
    "alg":   "mlkem768",
    "nym":   1,
    "epoch": 0,
    "pk2":   "<base64url ML-KEM-768 encapsulation key>",
    "exp":   <unix seconds>,
    "devices": [ ... ]
  }
}

Αντιμετωπίζεται σημαίνει ότι το αναμεταδότη διατηρεί ένα συμβάν ανά είδος (kind, pubkey, d-tag), έτσι μια δημοσίευση αντικαθιστά την προηγούμενη ανακοίνωση στη θέση της.

Η υπογραφή είναι δεσμευτική. Το συμβάν υπογράφεται από το κλειδί ταυτότητας, οπότε ο ισχυρισμός &ldquo;αυτό το κλειδί ML-KEM ανήκει σε αυτό το npub&rdquo; είναι ακριβώς τόσο ισχυρό όσο το ίδιο το npub. Η αντικατάσταση ενός διαφορετικού κλειδιού ενσωμάτωσης απαιτεί τη σφυρηλάτηση μιας υπογραφής secp256k1. Ένας επιτιθέμενος που μπορεί να το κάνει αυτό δεν χρειάζεται να ανησυχεί για το KEM.

Οι ανακοινώσεις λήγουν. Μια επταήμερη NIP-40 Η ημερομηνία λήξης, που αναδημοσιεύεται κάθε 24 ώρες, διατηρεί στο αρχείο μια δήλωση σχετικά με έναν πελάτη που εξακολουθεί να εκτελείται και όχι έναν πελάτη που ήταν.

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

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

Το πεδίο κλειδιών ονομάζει τη μορφή του. Το πεδίο είναι pk2, και το ψηφίο είναι μέρος του συμβολαίου και όχι διακόσμηση: ονομάζει τη μορφή φορτίου χρήσης με την οποία μπορεί να χρησιμοποιηθεί το κλειδί. Ένας αναγνώστης που δεν αναγνωρίζει το πεδίο καταλήγει στο πεδίο &ldquo;Nymchat client, δεν υπάρχει κλειδί post-quantum&rdquo; και στέλνει το συνηθισμένο NIP-44, το οποίο κάθε σύνδεση μπορεί να διαβάσει. Αυτό είναι η σωστή κατεύθυνση αποτυχίας, και αξίζει να αναφερθεί ως κανόνας ο αριθμός μορφής υπάρχει για να επιβάλει: μια αναγνωρισμένη αξίωση ικανότητας πρέπει να κοστίζει προστασία, ποτέ παράδοση.

4.1 Η απουσία είναι σημαντική και τρισδιάστατη

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

ΠαρατηρητήςΜέσαΣτείλτε συμπεριφορά
Ανακοίνωση με κλειδί Nymchat, το post-quantum ικανό Υβριδικό
Διαφήμιση, κανένα κλειδί Nymchat, κλασικό μόνο – post-quantum off, ή μια συσκευή που δεν είναι ακόμη συνδεδεμένη με τη ρίζα της ταυτότητας Κλασικό NIP-17
Χωρίς ανακοίνωση Άγνωστος πελάτης: Μπορεί να είναι οποιοσδήποτε χρήστης του Nostr ή του Bitchat Κλασικό, συν ένα περιτύλιγμα συμβατότητας

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

4.2 Μια συσκευή που δεν μπορεί να ανοίξει τη ρίζα παραμένει σιωπηλή

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

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

5Η ανακάλυψη και η απόφαση αποστολής

Οι πελάτες μαθαίνουν τα κλειδιά των συνομηλίκων με δύο τρόπους. Μια μόνιμη συνδρομή καλύπτει τους ανθρώπους με τους οποίους ένας χρήστης αντιστοιχεί στην πραγματικότητα - ανοιχτές συνομιλίες και μέλη της ομάδας - έτσι ώστε οι ανακοινώσεις τους να έρχονται ως συνηθισμένα γεγονότα. Για έναν συνομηλίκο που συναντήθηκε για πρώτη φορά, ένα ερώτημα μιας κλήσης εκτελείται κατά την ώρα αποστολής, περιορισμένο σε 2,5 δευτερόλεπτα. αν δεν επιλυθεί, το μήνυμα πηγαίνει κλασικό, το οποίο είναι η συμπεριφορά που υπήρχε πριν από την προσθήκη post-quantum και όχι μια νέα λειτουργία αποτυχίας.

Ένας χρήστης που συνδέει μια νέα συσκευή, ή που μετακινείται από μια σύνδεση επέκτασης του προγράμματος περιήγησης σε ένα τοπικό κλειδί, γίνεται μετα-κβαντικό ικανό στη μέση της συνομιλίας, και μια μόνιμα cached &ldquo;no&rdquo; θα τους κρατήσει στην κλασική κρυπτογράφηση για τη ζωή της ανακοίνωσης.

5.1 Γιατί δεν υπάρχει επίθεση υποβάθμισης

Η απόφαση δρομολόγησης περιορίζεται σε μία μόνο ερώτηση:

pq = (we hold a signed, unexpired ML-KEM key for this recipient)

Δεν υπάρχει διαπραγμάτευση δυνατοτήτων, δεν υπάρχει λίστα υποστηριζόμενων αλγορίθμων και κανένα πεδίο που ένας επιτιθέμενος δεν μπορεί να καθαρίσει για να αναγκάσει μια ασθενέστερη διαδρομή. είναι Ο τρόπος αποτυχίας μιας αφαιρούμενης ή περιορισμένης ανακοίνωσης είναι ότι το μήνυμα πηγαίνει κλασικό - το status quo πριν από αυτό το χαρακτηριστικό - αντί ότι ένα υβριδικό μήνυμα κατεβαίνει σε κάτι ψευδές.

Το αντίστροφο επίσης κρατάει και έχει περισσότερη σημασία: ένας πελάτης στέλνει υβριδικό Μόνο Όταν κρατάει ένα κλειδί, και κρατώντας το κλειδί είναι απόδειξη ότι ο παραλήπτης μπορεί να αποκωδικοποιηθεί.Δεν υπάρχει κατάσταση στην οποία ένα μήνυμα αποστέλλεται μετα-κβαντικά σε κάποιον που δεν μπορεί να το διαβάσει.

6Η υβριδική κατασκευή

Ένα μη τροποποιημένο κείμενο κρυπτογράφησης NIP-44 είναι το εσωτερικό στρώμα και το ML-KEM κλειδώνει ένα εξωτερικό AEAD γύρω από αυτό:

inner = nip44_encrypt(plaintext, conversation_key(sender, recipient))

info  = "nymchat-pq2" || sender_secp_pk || recip_secp_pk || kem_ct || recip_kem_pk
prk   = HKDF-Extract(salt = "nymchat-pq2-v1", IKM = kem_ss)
key   = HKDF-Expand(prk, info || "key",   32)
nonce = HKDF-Expand(prk, info || "nonce", 12)

outer = ChaCha20-Poly1305(key, nonce, plaintext = inner, aad = info)

payload = "pq2." || base64url(kem_ct) || "." || base64url(outer)

Και τα δύο μυστικά πρέπει ακόμα να ανακτηθούν για να διαβαστεί το μήνυμα: το εξωτερικό στρώμα παράγει μόνο κείμενο κρυπτογράφησης NIP-44, και το άνοιγμα που χρειάζεται το κλασικό ECDH. Ένας κβαντικός αντίπαλος που σπάει το secp256k1 παίρνει το εσωτερικό κλειδί και εξακολουθεί να αντιμετωπίζει το ML-KEM.

Το κλειδί ML-KEM του παραλήπτη είναι μακράς διαρκείας, αλλά κάθε μήνυμα φέρει ένα ανεξάρτητο κείμενο κρυπτογράφησης και επομένως ένα ανεξάρτητο κείμενο κρυπτογράφησης. kem_ssΑυτό είναι που κάνει την προέλευση του nonce αντί της τυχαιοποίησης ακούγεται: Κεφαλογιάννη 1305 είναι σπασμένο με την επαναχρησιμοποίηση ενός ζεύγους (κλειδιού, nonce) και εδώ το ίδιο το κλειδί είναι νέο για κάθε μήνυμα, οπότε κανένα ζεύγος δεν μπορεί να επαναληφθεί.

6.1 Γιατί τα στρώματα παραμένουν χωριστά

Η εναλλακτική λύση είναι να αναμίξετε και τα δύο μυστικά σε ένα μόνο κλειδί συνομιλίας και να το παραδώσετε στο NIP-44:

ck = HKDF-Extract(salt = "…",
                  IKM  = ecdh_x || kem_ss || …)          // do not do this

Αυτή η κατασκευή ακούγεται σαν κρυπτογραφία. Έχει ένα δομικό πρόβλημα: χρειάζεται ecdh_x, το ακατέργαστο συντεταγμένο x της εξόδου ECDH, ως βασικό υλικό - και μια επέκταση του προγράμματος περιήγησης (NIP-07) ή ένας απομακρυσμένος υπογράφων (NIP-46Εκτελεί NIP-44 για λογαριασμό του καλούντος και επιστρέφει ένα κείμενο κρυπτογράφησης, το οποίο είναι ολόκληρο το σημείο κράτησης του κλειδιού κάπου όπου η εφαρμογή δεν μπορεί να φτάσει.

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

Το κόστος είναι το εύρος ζώνης και δεν είναι μικρό. Το κείμενο κρυπτογράφησης ML-KEM είναι 1.088 bytes και οδηγεί σε κάθε μήνυμα, base64url-κωδικοποιημένο σε 1.451 χαρακτήρες. το εξωτερικό AEAD προσθέτει μια ετικέτα Poly1305 16-byte και επεκτείνει το φορτίο χρήσης NIP-44 που τυλίγει κατά ένα τρίτο. Ένα μήνυμα 50 χαρακτήρων αυξάνεται από 176 bytes σε 1.712, και ένα μήνυμα 2.000 χαρακτήρων από 2.820 σε 5.238. Το πάτωμα είναι περίπου 1,5 KB ανά μήνυμα ανεξάρτητα από το πόσο σύντομο είναι το μήνυμα, το οποίο είναι το τίμημα της ενσωμάτωσης κάθε φορά αντί να επαναχρησιμοποιεί ένα κοινόχρηστο μυστικό.

6.2 Αυτοπροσδιοριζόμενα payloads

Η pq2. Το πρόθεμα καθιστά την ανάπτυξη προοδευτική: είναι αυτοπεριοριστική, οπότε ένας πελάτης επιλέγει τη διαδρομή αποκρυπτογράφησης ελέγχοντας το φορτίο χρήσης αντί να εμπιστεύεται μια ετικέτα ή να θυμάται τι υποστηρίζει ένας ομοτίμος. Ένας αναγνώστης που δεν αναγνωρίζει ένα πρόθεμα αποτυγχάνει να ανοίξει αυτό το φορτίο χρήσης αντί να το διαβάσει λανθασμένα και τα μηνύματα που σφραγίζονται πριν από κάθε πλευρά θα μπορούσαν να κάνουν το post-quantum να παραμένει αναγνώσιμο όπως το συνηθισμένο NIP-44 χωρίς μετεγκατάσταση.

Η σιωπηλή απόρριψη

Η αποκωδικοποίηση ML-KEM έχει σχεδιαστεί για να μην αποτυγχάνει ποτέ: δεδομένου ενός κατεστραμμένου κειμένου κρυπτογράφησης, ο μετασχηματισμός Fujisaki-Okamoto επιστρέφει ένα καθοριστικό ψευδο-τυχαίο μυστικό και όχι ένα σφάλμα. Επομένως, ένα λανθασμένο κλειδί δεν εμφανίζεται καθόλου στο στρώμα KEM - εμφανίζεται ως αποτυχία HMAC μέσα στο NIP-44, το οποίο είναι ο ίδιος τρόπος με μια λανθασμένη κλασική επιφάνεια κλειδιού. Οι καλούντες αντιμετωπίζουν και τα δύο με τον ίδιο τρόπο, οπότε η αποτυχία δεν φέρει κανένα διακριτικό σήμα.

6.3 Και τα δύο στρώματα του τυλιγμένου δώρου

A NIP-17 Το προσωπικό μήνυμα είναι ένα NIP-59 δώρο περιτύλιγμα: μια μη υπογεγραμμένη φήμη, σφραγισμένη κάτω από το κλειδί ταυτότητας του αποστολέα (τύπος 13), στη συνέχεια τυλιγμένη κάτω από ένα αποσπάσιμο κλειδί που παράγεται ανά μήνυμα (τύπος 1059).

A hybrid NIP-59 gift wrap: the rumor sealed under the sender's key, that seal wrapped under a per-message ephemeral key, both layers carrying a NIP-44 ciphertext inside a post-quantum AEAD. kind 1059 — wrap  ·  signed by a per-message ephemeral key content = pq2.<kem_ct>.<aead>   inner = NIP-44(eph, recip)   outer key = ML-KEM(recip) kind 13 — seal  ·  signed by the sender's identity key content = pq2.<kem_ct>.<aead>   inner = NIP-44(sender, recip)   outer key = ML-KEM(recip) rumor — unsigned the message: kind, content, tags, author pubkey unsigned on purpose — a signature would be portable proof
Και τα δύο στρώματα κρυπτογράφησης είναι υβριδικά, το καθένα με ανεξάρτητη ML-KEM ενσωμάτωση.Το εξωτερικό στρώμα είναι κλειδωμένο σε ένα απορριπτόμενο μυστικό, έτσι ώστε το περιτύλιγμα να μην αποκαλύπτει τον αποστολέα.

Μια σύνδεση υπογράφοντος παίρνει μόνο το εξωτερικό στρώμα. Η σφραγίδα παράγεται από τον υπογράφοντα ως συνηθισμένο NIP-44 - η εφαρμογή δεν βλέπει ποτέ το κλειδί που το κάνει - οπότε δεν μπορεί να υβριδιστεί στη θέση του. Αυτό δεν κοστίζει τίποτα ενάντια στην επίθεση στην οποία αναφέρεται: η σφραγίδα είναι προσβάσιμη μόνο μέσω του περιβλήματος, και το περιτύλιγμα είναι αυτό που αποθηκεύει ένας εγγραφέας. Ένας αντίπαλος που κρατά την καταγεγραμμένη κίνηση πρέπει να σπάσει το ML-KEM πριν μια σφραγίδα είναι ακόμη ορατή για να επιτεθεί.

7Ομαδικά μηνύματα και μερική κάλυψη

Ένα μήνυμα ομάδας δεν είναι ένα κείμενο κρυπτογράφησης. Είναι το ίδιο απλό κείμενο που εκδίδεται σε κάθε μέλος, κάθε αντίγραφο ενσωματωμένο στο δικό του κλειδί ML-KEM αυτού του μέλους. Ένα μέλος που έχει δημοσιεύσει ένα κλειδί παίρνει ένα υβριδικό περιτύλιγμα.

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

Ως εκ τούτου, το Nymchat παρακολουθεί την κάλυψη ανά μήνυμα κατά τη διάρκεια του fan-out - ο αριθμός είναι γνωστός μόνο ενώ κατασκευάζονται τα wraps - και το σήμα αναφέρει &ldquo;quantum-resistant σε 8 από τα 10 μέλη&rdquo; αντί να ισχυρίζεται ότι το μήνυμα προστατεύεται. ΕΠΙΛΟΓΗ Το μήνυμα της ομάδας (μόνο ο αποστολέας μετράει τον ανεμιστήρα), η διεπαφή αναφέρει μερική αντί για πλήρη προστασία.

7.1 Τι αναφέρει η ασπίδα

Η ασπίδα λέει την αλήθεια για την Μήνυμακαι όχι για το λογισμικό που το έστειλε:

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

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

8Αντίγραφα που απευθύνονται στον εαυτό σας

Πολλά πράγματα που αποθηκεύει ένας πελάτης είναι κρυπτογραφημένα με την ταυτότητα του χρήστη: συγχρονισμένες ρυθμίσεις, η λίστα συνομιλιών, τα πλήκτρα ομάδας και το αρχείο μηνυμάτων. Αυτά μεταφέρουν περισσότερα για έναν χρήστη από ό, τι τα περισσότερα μεμονωμένα μηνύματα, οπότε αφήνοντάς τα κλασικά θα τα καθιστούσαν το ασθενέστερο αποθηκευμένο αντικείμενο ανεξάρτητα από το πόσο προσεκτικά τα ίδια τα μηνύματα ήταν σφραγισμένα. nymchat-pq-root την ίδια την κατηγορία, η οποία δεν μπορεί να σφραγιστεί κάτω από ένα κλειδί που μόνο μπορεί να παράγει.

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

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

Ένας περιορισμός που αξίζει να αναφερθεί

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

Μια συσκευή που τρέχει μια επέκταση προγράμματος περιήγησης ή έναν απομακρυσμένο υπογράφοντα (NIP-46) δεν έχει nsec για να προέλθει από, αλλά κρατά τον κώδικα ανάκτησης, και κάτω από τη στρωμένη κατασκευή της Ενότητας 6.1 που είναι όλα τα μετα-κβαντικά μισά χρειάζεται: ο υπογράφων παράγει το στρώμα NIP-44 όπως πάντα έχει, και ο πελάτης κλειδώνει το ίδιο το εξωτερικό στρώμα.

9Ροτάζ

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

9.1 Οι παλιές εποχές διατηρούνται και τίποτα δεν επανακρυπτογραφείται

Ένας πελάτης δημιουργεί υποψήφιους αποκρυπτογράφησης από την τρέχουσα εποχή μέχρι την εποχή &minus; 3, οπότε ένα μήνυμα σφραγισμένο λίγο πριν από μια περιστροφή εξακολουθεί να ανοίγει ενάντια στο ζεύγος κλειδιών που ήταν τρέχον όταν αποστέλλεται.

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

10Τι δεν προστατεύει

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

10.1 Η ρίζα είναι ένα δεύτερο μυστικό, και η απώλεια του είναι μη ανακτήσιμη

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

Με τη χειροκίνητη μεταφορά της μόνης διαδρομής, αυτό είναι πιο απότομη από ό, τι μπορεί να διαβάσει πρώτα. nympq1… Ο κώδικας οπουδήποτε έχει ακριβώς ένα αντίγραφο του, σε μια συσκευή, και η απώλεια αυτής της συσκευής χάνει κάθε post-quantum μήνυμα, ρυθμίσεις blob και γραμμή αρχείου σφραγισμένη σε αυτό. nsec Δεν βοηθάει, αυτή είναι η ιδιοκτησία πάνω στην οποία στηρίζεται ολόκληρο το σχέδιο.

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

10.2 Πιστοποίηση, διαφορετική από την εμπιστευτικότητα

Κάθε υπογραφή στο Nostr είναι Schnorr πάνω από secp256k1, και αυτό παραμένει αμετάβλητο εδώ. Ένας αντίπαλος με έναν κβαντικό υπολογιστή θα μπορούσε να παραποιήσει υπογραφές και να προσποιηθεί έναν χρήστη σε πραγματικό χρόνο. Αυτό που η υβριδική ανταλλαγή κλειδιών χάνει είναι η συγκομιδή-τώρα-αποκρυπτογράφηση-αργότερα: ένας επιτιθέμενος που καταγράφει την κυκλοφορία σήμερα δεν μπορεί να το διαβάσει αργότερα. Δεν καθιστά ένα μήνυμα απαράδεκτο έναντι ενός αντιπάλου που έχει ήδη το μηχάνημα. Αυτή η διάκριση μεταφέρεται στις εφαρμογές σκόπιμα - ο δείκτης padlock αναφέρει επαλήθευση, η ασπίδα αναφέρει εμπιστευτικότητα και είναι

Ο δεσμός μεταξύ ενός npub και ενός κλειδιού ML-KEM είναι μια υπογραφή secp256k1, οπότε ένας αντίπαλος που μπορεί να τα παραποιήσει μπορεί να αντικαταστήσει ένα δικό του κλειδί.

10.3 Μεταδεδομένα

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

10.4 Το off-line δίκτυο

Η μεταφορά με δίχτυ Bluetooth της Nymchat είναι ένα ξεχωριστό πρωτόκολλο με το δικό της χέρι, και δεν καλύπτεται από αυτό το έργο.

10.5 Μηνύματα που έχουν ήδη αποσταλεί

Ciphertext καταγράφηκε ενώ και οι δύο πλευρές ήταν ακόμα κλασική παραμένει κλασική μόνιμα. Υπάρχει ήδη και δεν μπορεί να σφραγιστεί ξανά. Προστασία ξεκινά από το μήνυμα όπου και οι δύο πλευρές κρατούσαν τα κλειδιά post-quantum, όχι τη στιγμή που η λειτουργία ενεργοποιήθηκε.

11Εξετάζονται εναλλακτικές

προσέγγισηΓιατί όχι
Απόκτηση του κλειδιού post-quantum από το κλειδί ταυτότητας Απορρίφθηκε.Η προέλευση είναι ένας δημόσιος αλγόριθμος πάνω από το nsec, και ένας κβαντικός αντίπαλος ανακτά το nsec από το δημοσιευμένο npub, έτσι σπάζοντας το κλασικό μισό χέρια πάνω από το μετα-κβαντικό μισό με αυτό.
Στείλτε τη ρίζα στις άλλες συσκευές του χρήστη μέσω NIP-44 Μια ρίζα που μεταδίδεται υπό κλασική μόνο κρυπτογράφηση μπορεί να ανακτηθεί από οποιονδήποτε έχει καταγράψει αυτό το μήνυμα και σπάει το κλειδί του αργότερα, που είναι ο αντίπαλος που η ρίζα υπάρχει για να σταματήσει.
Ένα ξεχωριστά δημιουργημένο πληκτρολόγιο ML-KEM σε κάθε συσκευή Απορρίφθηκε. Οι συσκευές θα κρατούσαν διαφορετικά κλειδιά αποκρυπτογράφησης και μία αντικαταστάσιμη ανακοίνωση ανά ταυτότητα δεν μπορεί να τα μεταφέρει όλα.Οι συνάδελφοι θα κρυπτογραφούσαν σε όποιο κλειδί δημοσιεύθηκε τελευταία και κάθε άλλη συσκευή δεν θα μπορούσε να διαβάσει το αποτέλεσμα.
Βάλτε τη ρίζα κάτω από ένα pin Απορρίφθηκε Ένα PIN τεσσάρων ψηφίων είναι περίπου 13 bits έναντι ενός επιτιθέμενου εκτός σύνδεσης που κρατά τη γραμμή που τυλίγεται.
Επέκταση του npub για να μεταφέρετε και τα δύο κλειδιά 1,184 bytes δεν είναι ένα κοινόχρηστο αναγνωριστικό, και θα σπάσει κάθε υπάρχον πελάτη της Nostr ανάλυση μιας διεύθυνσης που ορίζεται ως 32 bytes.
Μια βασική υπηρεσία διαχείρισης Επαναφέρει την εξουσία που το δίκτυο υπάρχει για να αποφύγει.Όποιος απαντά στην αναζήτηση αποφασίζει ποιος μπορεί να διαβάσει το μήνυμα.
Προσθέστε το κλειδί σε κάθε μήνυμα Δεν λύνει τίποτα: ο αποστολέας χρειάζεται το Ο παραλήπτης κλειδί πριν από το πρώτο μήνυμα, το οποίο είναι ακριβώς η περίπτωση χωρίς προηγούμενο μήνυμα για να το μεταφέρει.
Δυνατότητα διαπραγμάτευσης εντός ζώνης Δημιουργεί μια υποβαθμισμένη επιφάνεια. Ένας επιτιθέμενος που μπορεί να αφαιρέσει μια σημαία ικανότητας αναγκάζει το κλασικό μονοπάτι.
Post-quantum μόνο, χωρίς κλασικό πόδι Απορρίπτει δεκαετίες ανάλυσης του secp256k1 σε αντάλλαγμα για ένα πολύ νεότερο πρωτόγονο. και οι δύο Αδυναμία .

12Εφαρμοστική ισοτιμία

Το Nymchat προμηθεύει δύο ανεξάρτητες εφαρμογές αυτής της κατασκευής - μία σε JavaScript για την εφαρμογή web, μία σε Dart για τις εφαρμογές για κινητές συσκευές, συμπεριλαμβανομένης μιας θύρας ML-KEM-768.

Η εφαρμογή του Dart ML-KEM επικυρώνεται έναντι του επίσημου ΝΕΑ ACVP Ενημερωτικό δελτίο Τύπου της Ε.Ε.Ε. για την έκδοση του άρθρου 68 του Νόμου της Κυβέρνησης (ML-KEM-*-FIPS203) — 25 κλειδιά γενιάς, 25 ενσωμάτωση και 10 περιπτώσεις αποκωδικοποίησης, που εκτελούνται ως δική τους σουίτα. Αυτοί είναι οι φορείς που δημοσιεύει η NIST για να επικυρώσει μια υλοποίηση, οπότε το πέρασμα τους είναι απόδειξη ότι η θύρα είναι σωστή, όχι απλώς απόδειξη ότι οι δύο πελάτες συμφωνούν μεταξύ τους. Επιπλέον, μια κοινή τοποθέτηση των δοκιμαστικών φορέων - εξαγωγή σπόρων, ενσωμάτωση, και οι δύο μορφές φορτίου και ολοκληρωμένα περιτυλίγματα δώρων - δημιουργείται από την αναφορά JavaScript και ελέγχεται από τις δύο σουίτες δοκιμών. Το ριζικό μυστικό επεκτείνει αυτή την τοποθέτηση αντί να την αντικαθιστά: ρίζα σε σπό nympq1… Μια απόκλιση σε οποιαδήποτε από τις δύο εφαρμογές αποτυγχάνει την κατασκευή αντί να παράγει ένα μήνυμα που ο άλλος πελάτης δεν μπορεί να ανοίξει.

Είναι αυτό που λέει μια συσκευή &ldquo;αυτό είναι η ρίζα που κρατάω&rdquo; από &ldquo;αυτό είναι ένα διαφορετικό ένα&rdquo;, και ένας πελάτης που δεν μπορούσε να αναπαράγει το δακτυλικό αποτύπωμα ενός άλλου πελάτη θα διάβαζε μια τέλεια καλή εγγραφή ως καμία εγγραφή καθόλου - και στη συνέχεια, ακολουθώντας την Ενότητα 3.3, σφυρηλατήστε μια δεύτερη ρίζα και διαιρέστε την ταυτότητα.

Νύμφη είναι Ανοιχτή πηγή σύμφωνα με την AGPL-3.0. Ο κρυπτογραφικός πυρήνας που περιγράφεται εδώ είναι js/nym-crypto.js και js/modules/pq.js στην ιστοσελίδα του πελάτη, και lib/core/crypto/ Με lib/features/identity/pq_registry.dart στους κινητούς πελάτες.

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