Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 1525|Odgovoriti: 3

Algoritem šifriranja Curve25519

[Kopiraj povezavo]
Objavljeno 2025-2-12 ob 17:05:02 | | | |
urve25519 je najvišja raven Diffie-Hellmanove funkcije, ki je na voljo za širok spekter scenarijev, zasnoval pa jo je profesor Daniel J. Bernstein. V kriptografiji je Curve25519 eliptična krivulja, ki zagotavlja 128-bitno varnost in je zasnovana za uporabo z eliptično krivuljo Diffie-Hellman (ECDH) shemo za pogajanje o ključih. Je ena najhitrejših ECC krivulj in ni zajeta z nobenim znanim patentom.

Glede na uporabnikov 32-bajtni ključ curve25519 izračuna uporabnikov 32-bajtni javni ključ. Glede na 32-bajtni ključ tega uporabnika in 32-bajtni javni ključ drugega uporabnika, curve25519 izračuna 32-bajtni skupni ključ za oba uporabnika. Ta skrivnost se nato lahko uporabi za avtentikacijo in šifriranje informacij za oba uporabnika.

2. Prenesi in prevajaj Curve25519

Knjižnica curve25519 izračuna funkcijo curve25519 z zelo visoko hitrostjo. Knjižnica ima širok spekter uporab. Lahko in bi ga morali uporabiti v svojem programu, namesto da povezujete na skupno knjižnico; Prevedena koda je približno 16KB, odvisno od procesorja.

Prenesi in prevajaj

Prenesti

Zbrati


3. Uporabite Curve25519

Za vsak C program, ki bo uporabljal curve25519, ga spremenite tako, da vključuje curve25519.h, in spremenite makefile, da povežete program s curve25519.a in navedete, da program temelji na curve25519.a in curve25519.h.

Izračun ključev

Notranje, za generiranje 32-bajtne krivulje25519 ključa, najprej ustvarimo skrivnost 32 naključnih bajtov iz kriptografskega varnostnega vira: mysecret[0], mysecret[1], ..., mysecret[31]. Nato naredite takole:
mysecret[0] &= 248;
mysecret[31] &= 127;
mysecret[31] |= 64;
Ustvari 32-bajtni Curve25519 ključ mysecret[0], mysecret[1], ..., mysecret[31].

V prihodnosti bo knjižnična različica podpirala funkcijo stiskanja curve25519_, ki stisne 128 bajtov zgoščenja v 32 bajtov, kar doda nekaj zaščite pred nezadostnimi generatorji naključnih števil; Funkcija curve25519_ clamp, ki pretvori 32 bajtov v ključ; in najlažja za uporabo kombinacija curve25519_ funkcij za generiranje ključev, ki neposredno pretvorijo 128 bajtov v ključe.

Izračunajte javne ključe

Za generiranje 32-bajtnega javnega ključa, ki ustreza 32-bajtnemu ključu mypublic[0], mypublic[1], ..., mypublic[31], pokličite funkcijo
curve25519 (mypublic, mysecret, basepoint);
kjer je konstantna osnovna točka:

const neoznačena CHAR osnovna točka[32] = {9};
Prihodnje različice knjižnice bodo podpirale bolj jedrnate curve25519_ javne funkcije.

Generirajte skupni ključ

Glede na javni ključ Curve25519 drugega uporabnika je njegov[0], njegovapublic[1], ..., njegovapublic[31], klic

Curve25519 (deljeno, mysecret, hispublic);
Generirajte 32-bajtne skupne ključe[0], deljene[1], ..., deljene[31]. Druga oseba lahko ustvari isti skupni ključ na podlagi svojega zasebnega ključa in vašega javnega ključa.
Nato lahko oba zgoščita ta skupni ključ in uporabita rezultat kot ključ, na primer za Poly1305-AES.
Prihodnje različice knjižnice bodo podpirale curve25519_ razširitveno funkcijo, ki neposredno zgoščuje 32-bajtni ključ in generira 128 bajtov kot ključ, in je najlažja za uporabo, kombinacija curve25519_ deljene funkcije.

4. Referenca

[Pojasnila Ed25519 in Curve25519]Prijava do hiperpovezave je vidna.
[Curve25519 šifriranje in dešifriranje ter ED25519 uporaba podpisov]Prijava do hiperpovezave je vidna.
[ED25519]Prijava do hiperpovezave je vidna.
[Android ED25519 implementacija]Prijava do hiperpovezave je vidna.
[[ED25519 C implementacija]Prijava do hiperpovezave je vidna.
[ed25519 Java implementacija]Prijava do hiperpovezave je vidna.

Izvirno:Prijava do hiperpovezave je vidna.




Prejšnji:Vtičnik za pomoč pri razvoju kode za Angular 18 Series (Thirty-One) VS
Naslednji:NVIDIA Project DIGITS osebni AI superračunalnik
 Najemodajalec| Objavljeno 2025-2-12 ob 17:07:50 |
.NET/C# implementacijska koda:


Preizkus




Curve25519.cs (31 KB, Število prenosov: 1, 售价: 10 粒MB)
Objavljeno 13. 2. 2025 ob 16:26:18 |
Izgleda dobro, podprite ga.
Objavljeno 2025-2-14 09:51:22 |
Izgleda dobro, podprite ga
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com