urve25519 on kõrgeim Diffie-Hellmani funktsiooni tase, mis on saadaval paljude stsenaariumite jaoks, mille on välja töötanud professor Daniel J. Bernstein. Krüptograafias on Curve25519 elliptiline kõver, mis pakub 128-bitist turvalisust ja on mõeldud kasutamiseks elliptilise kõvera Diffie-Hellman (ECDH) võtmeläbirääkimiste skeemiga. See on üks kiiremaid ECC kõveraid ega kuulu ühegi teadaoleva patendi alla.
Kasutaja 32-baidise võtme korral arvutab curve25519 kasutaja 32-baidise avaliku võtme. Arvestades selle kasutaja 32-baidist võtit ja teise kasutaja 32-baidist avalikku võtit, arvutab curve25519 mõlemale kasutajale 32-baidise jagatud võtme. Seda saladust saab seejärel kasutada info autentimiseks ja krüpteerimiseks mõlema kasutaja jaoks.
2. Laadi alla ja koosta Curve25519
curve25519 teek arvutab curve25519 funktsiooni väga suure kiirusega. Raamatukogul on lai valik rakendusi. Sa saad ja peaksid selle rakendama oma programmis, mitte jagatud raamatukogule; Kompileeritud kood on umbes 16KB, sõltuvalt protsessorist.
Laadi alla ja kompileeri
Alla laadima
Kompileerida
3. Kasuta Curve25519
Iga C programmi puhul, mis kasutab curve25519, muuda programm nii, et see sisaldaks curve25519.h, ning muuda makefile'i nii, et see seob programmi kõverusega 25519.a ja öelge, et programm sõltub curve25519.a-st ja curve25519.h-st.
Arvutusvõtmed
Sisemiselt, et genereerida 32-baidine kõver 25519 võti, genereeri esmalt saladus 32 juhusliku baidi suuruses krüptograafilisest turvaallikast: mysecret[0], mysecret[1], ..., mysecret[31]. Seejärel tee nii: mysecret[0] &= 248; mysecret[31] &= 127; mysecret[31] |= 64; Genereeri 32-baidine Curve25519 võti mysecret[0], mysecret[1], ..., mysecret[31].
Tulevikus toetab teegi versioon curve25519_ tihendusfunktsiooni, mis tihendab 128 baiti räsi 32 baidiks, lisades kaitset ebapiisavate juhuslike arvude generaatorite vastu; curve25519_ klambrifunktsioon, mis teisendab 32 baiti võtmeks; ning kõige lihtsamini kasutatavat curve25519_ võtmegeneratsiooni funktsioonide kombinatsiooni, mis teisendavad otse 128 baiti võtmeteks.
Arvuta avalikud võtmed
32-baidise avaliku võtme genereerimiseks, mis vastab 32-baidisele võtmele mypublic[0], mypublic[1], ..., mypublic[31], kutsu funktsioon kõver 25519 (minu avalik, salajane, baaspunkt); kus konstantne baaspunkt on:
const unsigned char basepoint[32] = {9}; Raamatukogu tulevased versioonid toetavad lühemat curve25519_ avalikku funktsiooni.
Genereeri jagatud võti
Teise kasutaja Curve25519 avaliku võtme korral hispublic[0], hispublic[1], ..., hispublic[31], call
curve25519 (jagatud, minu saladus, tema avalik); Genereeri 32-baidised jagatud võtmed jagatud[0], jagatud[1], ..., jagatud[31]. Teine inimene saab sama jagatud võtme genereerida nii oma privaatvõtme kui ka sinu avaliku võtme põhjal. Seejärel saate mõlemad selle ühisvõtme räsi teha ja kasutada tulemust võtmena, näiteks Poly1305-AES puhul. Tulevased teegi versioonid toetavad curve25519_ laiendusfunktsiooni, mis räsitab otse 32-baidise võtme, et genereerida 128 baiti võtmena, ning on kõige lihtsam kasutada – kombinatsioon curve25519_ jagatud funktsioon.
4. Viide
[Ed25519 ja Curve25519 selgitatud]Hüperlingi sisselogimine on nähtav. [Curve25519 krüpteerimine ja dekrüpteerimine ning ED25519 allkirjade kasutamine]Hüperlingi sisselogimine on nähtav. [ED25519]Hüperlingi sisselogimine on nähtav. [Android ED25519 rakendus]Hüperlingi sisselogimine on nähtav. [[ED25519 C rakendus]Hüperlingi sisselogimine on nähtav. [ed25519 Java rakendus]Hüperlingi sisselogimine on nähtav.
Originaal:Hüperlingi sisselogimine on nähtav. |