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ó. |