urve25519 yra aukščiausio lygio Diffie-Hellman funkcija, prieinama įvairiems scenarijams, sukurta profesoriaus Danielio J. Bernsteino. Kriptografijoje Curve25519 yra elipsinė kreivė, užtikrinanti 128 bitų saugumą ir skirta naudoti su elipsinės kreivės Diffie-Hellman (ECDH) raktų derybų schema. Tai viena greičiausių ECC kreivių, kuriai netaikomi jokie žinomi patentai.
Atsižvelgiant į vartotojo 32 baitų raktą, curve25519 apskaičiuoja vartotojo 32 baitų viešąjį raktą. Atsižvelgiant į to vartotojo 32 baitų raktą ir kito vartotojo 32 baitų viešąjį raktą, curve25519 apskaičiuoja 32 baitų bendrą raktą, kurį gali naudoti abu vartotojai. Tada ši paslaptis gali būti naudojama abiejų vartotojų informacijai autentifikuoti ir užšifruoti.
2. Atsisiųskite ir kompiliuokite Curve25519
Curve25519 biblioteka apskaičiuoja curve25519 funkciją labai dideliu greičiu. Biblioteka turi platų pritaikymo spektrą. Galite ir turėtumėte jį pritaikyti savo programoje, o ne susieti su bendra biblioteka; Sukompiliuotas kodas yra apie 16 KB, priklausomai nuo procesoriaus.
Atsisiųsti ir kompiliuoti
Atsisiųsti
Kompiliuoti
3. Naudokite Curve25519
Bet kuriai C programai, kuri naudos curve25519, modifikuokite programą, kad įtrauktumėte curve25519.h, ir modifikuokite makefile, kad susietumėte programą su curve25519.a ir nurodykite, kad programa priklauso nuo curve25519.a ir curve25519.h.
Skaičiavimo raktai
Viduje, norėdami sugeneruoti 32 baitų kreivės raktą25519, pirmiausia sugeneruokite 32 atsitiktinių baitų paslaptį iš kriptografinio saugumo šaltinio: mysecret[0], mysecret[1], ..., mysecret[31]. Tada atlikite šiuos veiksmus: mysecret[0] &= 248; mysecret[31] &= 127; mysecret[31] |= 64; Sukurkite 32 baitų Curve25519 raktą mysecret[0], mysecret[1], ..., mysecret[31].
Ateityje bibliotekos versija palaikys curve25519_ glaudinimo funkciją, kuri suspaudžia 128 baitus maišos į 32 baitus, pridedant tam tikrą apsaugą nuo nepakankamų atsitiktinių skaičių generatorių; curve25519_ spaustuko funkcija, kuri 32 baitus paverčia raktu; ir lengviausiai naudojamas curve25519_ raktų generavimo funkcijų derinys, kuris tiesiogiai paverčia 128 baitus raktais.
Skaičiuoti viešuosius raktus
Norėdami sugeneruoti 32 baitų viešąjį raktą, atitinkantį 32 baitų raktą mypublic[0], mypublic[1], ..., mypublic[31], iškvieskite funkciją kreivė25519 (manoviešumas, mano paslaptis, bazinis taškas); kur pastovus bazinis taškas yra:
const unsigned char basepoint[32] = {9}; Būsimos bibliotekos versijos palaikys glaustesnes curve25519_ viešąsias funkcijas.
Generuokite bendrinamą raktą
Atsižvelgiant į kito vartotojo Curve25519 viešąjį raktą jopublic[0], hispublic[1], ..., hispublic[31], call
curve25519(bendras,manopaslaptis,joviešas); Generuoti 32 baitų bendrai naudojamus raktus[0], bendrinti[1], ..., bendrinti[31]. Kitas asmuo gali sugeneruoti tą patį bendrinamą raktą pagal savo privatųjį ir viešąjį raktą. Tada abu galite maišyti šį bendrinamą raktą ir naudoti rezultatą kaip raktą, pavyzdžiui, Poly1305-AES. Būsimos bibliotekos versijos palaikys curve25519_ plėtinio funkciją, kuri tiesiogiai maišo 32 baitų raktą, kad sugeneruotų 128 baitus kaip raktą, ir yra lengviausia naudoti, derinys curve25519_ bendra funkcija.
4. Nuoroda
[Ed25519 ir Curve25519 paaiškinta]Hipersaito prisijungimas matomas. [Curve25519 šifravimas ir iššifravimas bei ED25519 parašų naudojimas]Hipersaito prisijungimas matomas. [ED25519]Hipersaito prisijungimas matomas. [Android ED25519 diegimas]Hipersaito prisijungimas matomas. [[ED25519 C įgyvendinimas]Hipersaito prisijungimas matomas. [ed25519 Java įgyvendinimas]Hipersaito prisijungimas matomas.
Originalus:Hipersaito prisijungimas matomas. |