Το urve25519 είναι το υψηλότερο επίπεδο συνάρτησης Diffie-Hellman που διατίθεται για ένα ευρύ φάσμα σεναρίων, σχεδιασμένο από τον καθηγητή Daniel J. Bernstein. Στην κρυπτογραφία, το Curve25519 είναι μια ελλειπτική καμπύλη που παρέχει ασφάλεια 128-bit και έχει σχεδιαστεί για χρήση με το σχήμα διαπραγμάτευσης κλειδιού ελλειπτικής καμπύλης Diffie-Hellman (ECDH). Είναι μια από τις ταχύτερες καμπύλες ECC και δεν καλύπτεται από κανένα γνωστό δίπλωμα ευρεσιτεχνίας.
Δεδομένου του κλειδιού 32 byte ενός χρήστη, το curve25519 υπολογίζει το δημόσιο κλειδί 32 byte του χρήστη. Δεδομένου του κλειδιού 32 byte αυτού του χρήστη και του δημόσιου κλειδιού 32 byte ενός άλλου χρήστη, το curve25519 υπολογίζει ένα κοινόχρηστο κλειδί 32 byte για χρήση και από τους δύο χρήστες. Αυτό το μυστικό μπορεί στη συνέχεια να χρησιμοποιηθεί για τον έλεγχο ταυτότητας και την κρυπτογράφηση πληροφοριών και για τους δύο χρήστες.
2. Κατεβάστε και μεταγλωττίστε το Curve25519
Η βιβλιοθήκη curve25519 υπολογίζει τη συνάρτηση curve25519 με πολύ υψηλή ταχύτητα. Η βιβλιοθήκη έχει ένα ευρύ φάσμα εφαρμογών. Μπορείτε και πρέπει να το εφαρμόσετε στο δικό σας πρόγραμμα αντί να συνδέεστε σε μια κοινόχρηστη βιβλιοθήκη. Ο μεταγλωττισμένος κώδικας είναι περίπου 16KB, ανάλογα με την CPU.
Λήψη και μεταγλώττιση
Καταφόρτωση
συλλέγω
3. Χρησιμοποιήστε το Curve25519
Για οποιοδήποτε πρόγραμμα C που θα χρησιμοποιεί το curve25519, τροποποιήστε το πρόγραμμα ώστε να περιλαμβάνει το curve25519.h και τροποποιήστε το makefile για να συνδέσετε το πρόγραμμα με το curve25519.a και δηλώστε ότι το πρόγραμμα εξαρτάται από το curve25519.a και το curve25519.h.
Υπολογιστικά πλήκτρα
Εσωτερικά, για να δημιουργήσετε ένα κλειδί curve25519 32 byte, δημιουργήστε πρώτα ένα μυστικό 32 τυχαίων byte από μια κρυπτογραφική πηγή ασφαλείας: mysecret[0], mysecret[1], ..., mysecret[31]. Στη συνέχεια, κάντε τα εξής: mysecret[0] &= 248; mysecret[31] &= 127; mysecret[31] |= 64; Δημιουργήστε ένα κλειδί Curve25519 32 byte mysecret[0], mysecret[1], ..., mysecret[31].
Στο μέλλον, η έκδοση της βιβλιοθήκης θα υποστηρίζει μια λειτουργία συμπίεσης curve25519_ που συμπιέζει 128 byte κατακερματισμού σε 32 byte, προσθέτοντας κάποια προστασία από ανεπαρκείς γεννήτριες τυχαίων αριθμών. Μια λειτουργία σφιγκτήρα curve25519_ που μετατρέπει 32 byte σε κλειδί. και ένας πιο εύχρηστος συνδυασμός curve25519_ λειτουργιών δημιουργίας κλειδιών, οι οποίες μετατρέπουν απευθείας 128 byte σε κλειδιά.
Υπολογισμός δημόσιων κλειδιών
Για να δημιουργήσετε ένα δημόσιο κλειδί 32Byte που ταιριάζει με το κλειδί 32Byte mypublic[0], mypublic[1], ..., mypublic[31], καλέστε τη συνάρτηση καμπύλη25519(mypublic,mysecret,σημείο βάσης); όπου το σταθερό σημείο βάσης είναι:
const ανυπόγραφο σημείο βάσης char[32] = {9}; Οι μελλοντικές εκδόσεις της βιβλιοθήκης θα υποστηρίζουν πιο συνοπτικές curve25519_ δημόσιες λειτουργίες.
Δημιουργία κοινόχρηστου κλειδιού
Δεδομένου του δημόσιου κλειδιού Curve25519 ενός άλλου χρήστη hispublic[0], hispublic[1], ..., hispublic[31], καλέστε
curve25519 (κοινόχρηστο, mysecret, hispublic); Δημιουργήστε κοινόχρηστα κλειδιά 32 byte κοινόχρηστα[0], κοινόχρηστα[1], ..., κοινόχρηστα[31]. Ένα άλλο άτομο μπορεί να δημιουργήσει το ίδιο κοινόχρηστο κλειδί με βάση το δικό του ιδιωτικό κλειδί καθώς και το δημόσιο κλειδί σας. Στη συνέχεια, και οι δύο μπορείτε να κατακερματίσετε αυτό το κοινόχρηστο κλειδί και να χρησιμοποιήσετε το αποτέλεσμα ως κλειδί, για παράδειγμα για το Poly1305-AES. Οι μελλοντικές εκδόσεις της βιβλιοθήκης θα υποστηρίζουν μια συνάρτηση επέκτασης curve25519_ που κατακερματίζει απευθείας ένα κλειδί 32 Byte για να δημιουργήσει 128 byte ως κλειδί και είναι η πιο εύκολη στη χρήση, ένας συνδυασμός curve25519_ κοινόχρηστης συνάρτησης.
4. Αναφορά
[Επεξήγηση Ed25519 και Curve25519]Η σύνδεση με υπερσύνδεσμο είναι ορατή. [Curve25519 κρυπτογράφηση και αποκρυπτογράφηση και ED25519 χρήση υπογραφών]Η σύνδεση με υπερσύνδεσμο είναι ορατή. [ED25519]Η σύνδεση με υπερσύνδεσμο είναι ορατή. [Εφαρμογή Android ED25519]Η σύνδεση με υπερσύνδεσμο είναι ορατή. [[Εφαρμογή ED25519 C]Η σύνδεση με υπερσύνδεσμο είναι ορατή. [ed25519 Υλοποίηση Java]Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Αρχικός:Η σύνδεση με υπερσύνδεσμο είναι ορατή. |