Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 1525|Odpověď: 3

Šifrovací algoritmus Curve25519

[Kopírovat odkaz]
Zveřejněno 12. 2. 2025 17:05:02 | | | |
urve25519 je nejvyšší úroveň Diffie-Hellmanovy funkce dostupná pro širokou škálu scénářů, navržená profesorem Danielem J. Bernsteinem. V kryptografii je Curve25519 eliptická křivka, která poskytuje 128bitovou bezpečnost a je navržena pro použití s eliptickým Diffie-Hellmanovým (ECDH) schématem vyjednávání klíčů. Jedná se o jednu z nejrychlejších ECC křivek a není kryta žádnými známými patenty.

Na základě 32bajtového klíče uživatele curve25519 vypočítá jeho 32bajtový veřejný klíč. Na základě 32bajtového klíče tohoto uživatele a veřejného klíče 32 bajtů druhého uživatele curve25519 vypočítá sdílený 32bajtový klíč pro oba uživatele. Toto tajemství lze pak použít k autentizaci a šifrování informací pro oba uživatele.

2. Stáhnout a zkompilovat Curve25519

Knihovna curve25519 vypočítává funkci curve25519 velmi vysokou rychlostí. Knihovna má široké spektrum využití. Můžete a měli byste ji aplikovat ve svém vlastním programu místo propojení do sdílené knihovny; Zkompilovaný kód má přibližně 16 KB, v závislosti na CPU.

Stáhněte a zkompilujte

Stáhnout

kompilovat


3. Použijte Curve25519

Pro jakýkoli program v C, který bude používat curve25519, upravte program tak, aby zahrnoval curve25519.h, a upravte makefile tak, aby program propojil s curve25519.a a uveďte, že program závisí na curve25519.a a curve25519.h.

Výpočetní klíče

Interně, pro generování 32bajtové křivky25519 klíče, nejprve vygenerujte tajemství o 32 náhodných bajtech z kryptografického bezpečnostního zdroje: mysecret[0], mysecret[1], ..., mysecret[31]. Pak postupujte následovně:
mysecret[0] &= 248;
mysecret[31] &= 127;
mysecret[31] |= 64;
Vygenerujte 32bajtový klíč Curve25519 mysecret[0], mysecret[1], ..., mysecret[31].

V budoucnu bude knihovní verze podporovat curve25519_ kompresní funkci, která komprimuje 128 bajtů hashování do 32 bajtů, čímž přidá určitou ochranu proti nedostatečným generátorům náhodných čísel; curve25519_ clamp funkce, která převádí 32 bajtů na klíč; a nejjednodušší použití kombinace curve25519_ funkcí generování klíčů, které přímo převádějí 128 bajtů na klíče.

Spočítejte veřejné klíče

Pro vytvoření 32bajtového veřejného klíče, který odpovídá 32bajtovému klíči mypublic[0], mypublic[1], ..., mypublic[31], zavolejte funkci
curve25519 (mypublic, mysecret, basepoint);
kde konstantní základní bod je:

Const Undersigned CHAR Basepoint[32] = {9};
Budoucí verze knihovny budou podporovat stručnější curve25519_ veřejné funkce.

Generujte sdílený klíč

Na základě veřejného klíče Curve25519 jiného uživatele je jeho veřejný[0], jeho veřejný[1], ..., jehopublic[31], volá

Curve25519 (sdílené, mysecret, jeho veřejné);
Generujte sdílené klíče o rozsahu 32 bajtů[0], sdílené[1], ..., sdílené[31]. Další osoba může vytvořit stejný sdílený klíč na základě svého soukromého klíče i vašeho veřejného klíče.
Pak můžete oba tento sdílený klíč zahashovat a použít výsledek jako klíč, například pro Poly1305-AES.
Budoucí verze knihovny budou podporovat curve25519_ rozšíření, které přímo hashuje 32bajtový klíč a generuje 128 bajtů jako klíč, a je nejjednodušší na použití, což je kombinace curve25519_ sdílené funkce.

4. Reference

[Vysvětlení Ed25519 a Curve25519]Přihlášení k hypertextovému odkazu je viditelné.
[Curve25519 šifrování a dešifrování a ED25519 použití podpisů]Přihlášení k hypertextovému odkazu je viditelné.
[ED25519]Přihlášení k hypertextovému odkazu je viditelné.
[Android ED25519 implementace]Přihlášení k hypertextovému odkazu je viditelné.
[[ED25519 C implementace]Přihlášení k hypertextovému odkazu je viditelné.
[ed25519 Java implementace]Přihlášení k hypertextovému odkazu je viditelné.

Původní:Přihlášení k hypertextovému odkazu je viditelné.




Předchozí:Angular 18 Series (Thirty-One) VS plugin pro pomoc při vývoji kódu
Další:Osobní AI superpočítač NVIDIA Project DIGITS
 Pronajímatel| Zveřejněno 12. 2. 2025 v 17:07:50 |
Implementační kód .NET/C#:


Test




Curve25519.cs (31 KB, Počet stažení: 1, 售价: 10 粒MB)
Zveřejněno 13. února 2025 16:26:18 |
Vypadá to dobře, podpořte to.
Zveřejněno 14. 2. 2025 09:51:22 |
Vypadá to dobře, podpořte to
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com