urve25519 este cel mai înalt nivel de funcție Diffie-Hellman disponibil pentru o gamă largă de scenarii, proiectat de profesorul Daniel J. Bernstein. În criptografie, Curve25519 este o curbă eliptică care oferă securitate pe 128 de biți și este proiectată pentru utilizare cu schema de negociere a cheilor cu curbe eliptice Diffie-Hellman (ECDH). Este una dintre cele mai rapide curbe ECC și nu este acoperită de niciun brevet cunoscut.
Având o cheie de 32 de octeți a utilizatorului, curve25519 calculează cheia publică de 32 de octeți a utilizatorului. Având în vedere cheia de 32 de octeți a acelui utilizator și cheia publică de 32 de octeți a altuia, curve25519 calculează o cheie partajată de 32 de octeți pentru ca ambii utilizatori să o folosească. Acest secret poate fi apoi folosit pentru a autentifica și cripta informații pentru ambii utilizatori.
2. Descarcă și compila Curve25519
Biblioteca curve25519 calculează funcția curve25519 cu o viteză foarte mare. Biblioteca are o gamă largă de aplicații. Poți și ar trebui să o aplici în propriul tău program în loc să faci legătura către o bibliotecă partajată; Codul compilat are aproximativ 16KB, în funcție de CPU.
Descarcă și compila
Descărca
compila
3. Folosește Curve25519
Pentru orice program C care va folosi curve25519, modificați programul pentru a include curve25519.h și modificați makefile-ul pentru a lega programul de curve25519.a și a menționa că programul depinde de curve25519.a și curve25519.h.
Chei de calcul
Intern, pentru a genera o cheie curbă 25519 de 32 de octeți, generează mai întâi un secret de 32 de octeți aleatori dintr-o sursă de securitate criptografică: mysecret[0], mysecret[1], ..., mysecret[31]. Apoi faceți următoarele: secretul meu[0] &= 248; mysecret[31] &= 127; mysecret[31] |= 64; Generează o cheie Curve25519 de 32 de octeți: mysecret[0], mysecret[1], ..., mysecret[31].
În viitor, versiunea bibliotecii va suporta o funcție de compresie curve25519_ care comprimă 128 de octeți de hashing în 32 de octeți, adăugând o anumită protecție împotriva generatoarelor insuficiente de numere aleatoare; O funcție curve25519_ clamp care convertește 32 de octeți într-o cheie; și o combinație mai ușor de folosit de curve25519_ funcții de generare a cheilor, care convertesc direct 128 de octeți în chei.
Cheile publice de calcul
Pentru a genera o cheie publică de 32 de octeți care să corespundă cu cheia de 32 de octeți mypublic[0], mypublic[1], ..., mypublic[31], apelați funcția curve25519(mypublic, mysecret,basepoint); unde punctul de bază constant este:
const unsigned char basepoint[32] = {9}; Versiunile viitoare ale bibliotecii vor susține funcții publice curve25519_ mai concise.
Generează o cheie partajată
Având în vedere cheia publică a altui utilizator Curve25519 public hispublic[0], hispublic[1], ..., hispublic[31], apel
curve25519(împărtășit, secretul meu, publicul); Generează chei partajate de 32 de octeți partajate[0], partajate[1], ..., partajate[31]. O altă persoană poate genera aceeași cheie comună pe baza propriei chei private, precum și a cheii tale publice. Apoi amândoi puteți face hash la această cheie partajată și folosiți rezultatul ca cheie, de exemplu pentru Poly1305-AES. Versiunile viitoare ale bibliotecii vor suporta o funcție de extensie curve25519_ care hashează direct o cheie de 32 de octeți pentru a genera 128 de octeți ca cheie și este cea mai ușor de folosit, o combinație curve25519_ funcție partajată.
4. Referință
[Ed25519 și Curve25519 explicate]Autentificarea cu hyperlink este vizibilă. [Curve25519 criptare și decriptare și utilizarea semnăturilor ED25519]Autentificarea cu hyperlink este vizibilă. [ED25519]Autentificarea cu hyperlink este vizibilă. [Implementare ED25519 Android]Autentificarea cu hyperlink este vizibilă. [[ED25519 Implementare C]Autentificarea cu hyperlink este vizibilă. [ed25519 Implementare în Java]Autentificarea cu hyperlink este vizibilă.
Original:Autentificarea cu hyperlink este vizibilă. |