urve25519 ir augstākais Diffie-Hellman funkcijas līmenis, kas pieejams plašam scenāriju klāstam, ko izstrādājis profesors Daniels J. Bernšteins. Kriptogrāfijā Curve25519 ir eliptiska līkne, kas nodrošina 128 bitu drošību un ir paredzēta lietošanai ar eliptiskas līknes Diffie-Hellman (ECDH) atslēgu sarunu shēmu. Tā ir viena no ātrākajām ECC līknēm, un uz to neattiecas neviens zināms patents.
Ņemot vērā lietotāja 32 baitu atslēgu, curve25519 aprēķina lietotāja 32 baitu publisko atslēgu. Ņemot vērā šī lietotāja 32 baitu atslēgu un cita lietotāja 32 baitu publisko atslēgu, curve25519 aprēķina 32 baitu koplietojamo atslēgu, ko var izmantot abi lietotāji. Pēc tam šo noslēpumu var izmantot, lai autentificētu un šifrētu informāciju abiem lietotājiem.
2. Lejupielādējiet un kompilējiet Curve25519
Curve25519 bibliotēka aprēķina curve25519 funkciju ar ļoti lielu ātrumu. Bibliotēkai ir plašs pielietojumu klāsts. Jūs varat un vajadzētu to lietot savā programmā, nevis saistīt ar koplietojamu bibliotēku; Kompilētais kods ir aptuveni 16 KB atkarībā no procesora.
Lejupielādēt un kompilēt
Lejupielādēt
Apkopot
3. Izmantojiet Curve25519
Jebkurai C programmai, kas izmantos curve25519, modificējiet programmu, lai iekļautu curve25519.h, un modificējiet makefile, lai sasaistītu programmu ar curve25519.a un norādiet, ka programma ir atkarīga no curve25519.a un curve25519.h.
Skaitļošanas atslēgas
Iekšēji, lai ģenerētu 32 baitu līkni25519 atslēgu, vispirms ģenerējiet 32 nejaušu baitu noslēpumu no kriptogrāfijas drošības avota: mysecret[0], mysecret[1], ..., mysecret[31]. Pēc tam rīkojieties šādi: mysecret[0] &= 248; mans noslēpums[31] &= 127; mans noslēpums[31] |= 64; Ģenerējiet 32 baitu līkni25519 atslēgu mysecret[0], mysecret[1], ..., mysecret[31].
Nākotnē bibliotēkas versija atbalstīs curve25519_ saspiešanas funkciju, kas saspiež 128 baitus jaukšanas 32 baitos, pievienojot zināmu aizsardzību pret nepietiekamiem nejaušu skaitļu ģeneratoriem; curve25519_ skavas funkcija, kas pārvērš 32 baitus par atslēgu; un visvieglāk lietojama curve25519_ atslēgu ģenerēšanas funkciju kombinācija, kas tieši pārvērš 128 baitus atslēgās.
Publisko atslēgu aprēķināšana
Lai ģenerētu 32baitu publisko atslēgu, kas atbilst 32baitu atslēgai mypublic[0], mypublic[1], ..., mypublic[31], izsauciet funkciju līkne25519 (mana sabiedrība, mans noslēpums, bāzes punkts); kur konstantes bāzes punkts ir:
const unsigned char basepoint[32] = {9}; Bibliotēkas nākotnes versijas atbalstīs kodolīgākas curve25519_ publiskās funkcijas.
Koplietojamas atslēgas ģenerēšana
Ņemot vērā cita lietotāja Curve25519 publisko atslēgu hispublic[0], hispublic[1], ..., hispublic[31], call
līkne25519 (kopīgots, mans noslēpums, viņa publiskais); Ģenerēt 32 baitu koplietojamās atslēgas[0], koplietotas[1], ..., koplietotas[31]. Cita persona var ģenerēt to pašu koplietojamo atslēgu, pamatojoties uz savu privāto atslēgu, kā arī jūsu publisko atslēgu. Tad jūs abi varat jaukt šo koplietojamo atslēgu un izmantot rezultātu kā atslēgu, piemēram, Poly1305-AES. Nākotnes bibliotēkas versijas atbalstīs curve25519_ paplašinājuma funkciju, kas tieši jauc 32 baitu atslēgu, lai ģenerētu 128 baitus kā atslēgu, un ir visvieglāk lietojama, kombinācija curve25519_ koplietojamu funkciju.
4. Atsauce
[Ed25519 un Curve25519 paskaidrots]Hipersaites pieteikšanās ir redzama. [Curve25519 šifrēšana un atšifrēšana un parakstu ED25519 izmantošana]Hipersaites pieteikšanās ir redzama. [ED25519]Hipersaites pieteikšanās ir redzama. [Android ED25519 ieviešana]Hipersaites pieteikšanās ir redzama. [[ED25519 C ieviešana]Hipersaites pieteikšanās ir redzama. [ed25519 Java ieviešana]Hipersaites pieteikšanās ir redzama.
Sākotnējā:Hipersaites pieteikšanās ir redzama. |