Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 1525|Odpoveď: 3

Šifrovací algoritmus Curve25519

[Kopírovať odkaz]
Zverejnené 2025-2-12 17:05:02 | | | |
urve25519 je najvyššia úroveň Diffie-Hellmanovej funkcie dostupná pre širokú škálu scenárov, navrhnutá profesorom Danielom J. Bernsteinom. V kryptografii je Curve25519 eliptická krivka, ktorá poskytuje 128-bitovú bezpečnosť a je navrhnutá na použitie s eliptickou krivkou Diffie-Hellman (ECDH) na vyjednávanie kľúčov. Je to jedna z najrýchlejších ECC kriviek a nie je krytá žiadnymi známymi patentmi.

Pri danom 32-bajtovom kľúči používateľa curve25519 vypočíta 32-bajtový verejný kľúč používateľa. Na základe 32-bajtového kľúča tohto používateľa a 32-bajtového verejného kľúča iného používateľa curve25519 vypočíta 32-bajtový zdieľaný kľúč pre oboch používateľov. Toto tajomstvo je potom možné použiť na autentifikáciu a šifrovanie informácií pre oboch používateľov.

2. Stiahnuť a skompilovať Curve25519

Knižnica curve25519 počíta funkciu curve25519 veľmi rýchlo. Knižnica má široké spektrum využitia. Môžete a mali by ste ho aplikovať vo svojom programe namiesto prepojenia na zdieľanú knižnicu; Skompilovaný kód má približne 16KB, v závislosti od CPU.

Stiahnuť a skompilovať

Stiahnuť

kompilovať


3. Použite Curve25519

Pre akýkoľvek C program, ktorý bude používať curve25519, upravte program tak, aby zahŕňal curve25519.h, a upravte makefile tak, aby program prepojil s curve25519.a a uveďte, že program závisí od curve25519.a a curve25519.h.

Výpočtové kľúče

Interne, na vygenerovanie 32-bajtového kľúča curve25519, najprv vygenerujte tajomstvo 32 náhodných bajtov z kryptografického bezpečnostného zdroja: mysecret[0], mysecret[1], ..., mysecret[31]. Potom postupujte nasledovne:
mysecret[0] &= 248;
mysecret[31] &= 127;
mysecret[31] |= 64;
Vygenerujte 32-bajtový kľúč Curve25519 mysecret[0], mysecret[1], ..., mysecret[31].

V budúcnosti bude knižničná verzia podporovať curve25519_ kompresnú funkciu, ktorá komprimuje 128 bajtov hashovania do 32 bajtov, čím pridá určitú ochranu proti nedostatočným generátorom náhodných čísel; Funkcia curve25519_ clamp, ktorá prevádza 32 bajtov na kľúč; a najjednoduchšia kombinácia curve25519_ kľúčových funkcií, ktoré priamo konvertujú 128 bajtov na kľúče.

Vypočítajte verejné kľúče

Na generovanie 32-bajtového verejného kľúča, ktorý zodpovedá 32-bajtovému kľúču mypublic[0], mypublic[1], ..., mypublic[31], zavolajte funkciu
curve25519 (mypublic, mysecret, basepoint);
kde konštantný základný bod je:

Const nepodpísaný char základný bod[32] = {9};
Budúce verzie knižnice budú podporovať stručnejšie curve25519_ verejné funkcie.

Vygenerujte zdieľaný kľúč

Na základe verejného kľúča Curve25519 iného používateľa jehopublic[0], jehopublic[1], ..., jehopublic[31], volá

Curve25519 (zdieľané, mysecret, jeho verejnosť);
Generujte zdieľané 32-bajtowe zdieľané kľúče[0], zdieľané[1], ..., zdieľané[31]. Ďalšia osoba môže vytvoriť rovnaký zdieľaný kľúč na základe svojho vlastného súkromného kľúča aj vášho verejného kľúča.
Potom môžete obaja zahashovať tento zdieľaný kľúč a použiť výsledok ako kľúč, napríklad pre Poly1305-AES.
Budúce verzie knižnice budú podporovať curve25519_ rozširujúcu funkciu, ktorá priamo zahashuje 32-bajtový kľúč a generuje 128 bajtov ako kľúč, a je najjednoduchšia na použitie ako kombinácia curve25519_ zdieľaná funkcia.

4. Referencia

[Vysvetlenie Ed25519 a Curve25519]Prihlásenie na hypertextový odkaz je viditeľné.
[Curve25519 šifrovanie a dešifrovanie a ED25519 používanie podpisov]Prihlásenie na hypertextový odkaz je viditeľné.
[ED25519]Prihlásenie na hypertextový odkaz je viditeľné.
[Android ED25519 implementácia]Prihlásenie na hypertextový odkaz je viditeľné.
[[ED25519 C implementácia]Prihlásenie na hypertextový odkaz je viditeľné.
[ed25519 Java implementácia]Prihlásenie na hypertextový odkaz je viditeľné.

Originál:Prihlásenie na hypertextový odkaz je viditeľné.




Predchádzajúci:Angular 18 Series (Thirty-One) VS plugin na pomoc pri vývoji kódu
Budúci:Osobný AI superpočítač NVIDIA Project DIGITS
 Prenajímateľ| Zverejnené 12.2.2025 o 17:07:50 |
Implementačný kód .NET/C#:


Test




Curve25519.cs (31 KB, Počet stiahnutí: 1, 售价: 10 粒MB)
Zverejnené 2025-2-13 16:26:18 |
Vyzerá to dobre, podporte to.
Zverejnené 2025-2-14 09:51:22 |
Vyzerá to dobre, podoprite to
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com