Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 1525|Válasz: 3

Curve25519 titkosítási algoritmus

[Linket másol]
Közzétéve: 2025-2-12 17:05:02 | | | |
az urve25519 a legmagasabb szintű Diffie-Hellman funkció, amely széles körű helyzetekhez elérhető, Daniel J. Bernstein professzor tervezésével. A kriptográfiában a Curve25519 egy elliptikus görbe, amely 128 bites biztonságot biztosít, és az elliptikus görbe Diffie-Hellman (ECDH) kulcs-egyeztetési sémájához tervezték. Ez az egyik leggyorsabb ECC görbe, és nem fedi le semmilyen ismert szabadalom alá.

A felhasználó 32 bájtos kulcsa esetén curve25519 kiszámítja a felhasználó 32 bájtos nyilvános kulcsát. Figyelembe véve az adott felhasználó 32 bájtos kulcsát és egy másik felhasználó 32 bájtos nyilvános kulcsát, curve25519 32 bájtos közös kulcsot számít ki mindkét felhasználó számára. Ez a titok ezután mindkét felhasználó számára az adatok hitelesítésére és titkosítására használható.

2. Töltse le és fordítsa le a Curve25519-et

A curve25519 könyvtár nagyon nagy sebességgel számolja ki a curve25519 függvényt. A könyvtár széles körű alkalmazási területtel rendelkezik. Ezt a saját programodban is alkalmazhatod és alkalmaznod kell, nem pedig egy megosztott könyvtárra linkelnél; A fordított kód körülbelül 16KB, a CPU-tól függően.

Töltsd le és fordítsd le

Letöltés

összeállít


3. Használd a Görbét25519

Bármely C programnál, amely curve25519-et használ, módosítsd a programot úgy, hogy tartalmazza a curve25519.h-t, és módosítsd a makefile-t, hogy összekapcsolja a programot curve25519.a-val, és állapítsd meg, hogy a program a curve25519.a és curve25519.h függvénye.

Számítási kulcsok

Belsőleg, hogy létrehozzunk egy 32 bájtos görbét25519 kulcsot, először generáljunk egy 32 véletlenszerű bájtból álló titkot egy kriptográfias biztonsági forrásból: mysecret[0], mysecret[1], ..., mysecret[31]. Ezután a következőket csináljuk:
mysecret[0] &= 248;
mysecret[31] &= 127;
mysecret[31] |= 64;
Generálj egy 32 bájtos Curve25519 kulcsot mysecret[0], mysecret[1], ..., mysecret[31].

A jövőben a könyvtári verzió támogatni fog egy curve25519_ tömörítési függvényt, amely 128 bájtos hashelést 32 bájtra tömörít, némi védelmet nyújtva a kevés véletlenszámgenerátor ellen; Egy curve25519_ clamp függvény, amely 32 bájtot alakít kulcsgá; és egy legegyszerűbbre használható curve25519_ kulcsgeneráló funkciók kombinációja, amelyek közvetlenül 128 bájtot alakítanak kulcsokká.

Számítás nyilvános kulcsokat

Egy 32 bájtos nyilvános kulcs generálásához, amely megfelel a 32 bájtos mypublic[0], mypublic[1], ..., mypublic[31] kulcsnak, hívjuk a függvényt
curve25519 (mypublic, mysecret,basepoint);
ahol az állandó bázispont a következő:

const nem jelölt karakter bázispont[32] = {9};
A könyvtár jövőbeli változatai tömörebb curve25519_ nyilvános funkciókat támogatnak.

Generálj egy megosztott kulcsot

Egy másik felhasználó Curve25519 nyilvános kulcsa esetén hispublic[0], hispublic[1], ..., hispublic[31], hív

curve25519 (megosztott, titkom, public);
Generálj 32 bájtos megosztott kulcsokat megosztott[0], osztott[1], ..., osztott[31]. Egy másik személy ugyanazt a közös kulcsot generálhatja a saját privát kulcsa és a te nyilvános kulcsod alapján.
Ezután mindketten hashelhettek ezt a közös kulcsot, és az eredményt kulcsként használhatjátok, például a Poly1305-AES esetében.
A könyvtár jövőbeli verziói támogatni fognak egy curve25519_ kiterjesztési funkciót, amely közvetlenül hashel, hogy 128 bájtot generáljon kulcsként, és ez a legkönnyebben használható, curve25519_ közös funkció kombinációja.

4. Hivatkozás

[Ed25519 és Curve25519 magyarázat]A hiperlink bejelentkezés látható.
[Curve25519 titkosítás és dekódolás és ED25519 aláírások használata]A hiperlink bejelentkezés látható.
[ED25519]A hiperlink bejelentkezés látható.
[Android ED25519 megvalósítás]A hiperlink bejelentkezés látható.
[[ED25519 C megvalósítás]A hiperlink bejelentkezés látható.
[ed25519 Java implementáció]A hiperlink bejelentkezés látható.

Eredeti:A hiperlink bejelentkezés látható.




Előző:Angular 18 Series (Thirty-One) VS Kódfejlesztési Segédplugin
Következő:NVIDIA Project DIGITS személyes AI szuperszámítógép
 Háziúr| Közzétéve: 2025-2-12 17:07:50 |
.NET/C# implementációs kód:


Teszt




Curve25519.cs (31 KB, Letöltések száma: 1, 售价: 10 粒MB)
Közzétéve: 2025-2-13 16:26:18 |
Jól néz ki, támogassátok.
Közzétéve: 2025-2-14 09:51:22 |
Jól néz ki, támogassuk
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com