Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 1525|Antwoord: 3

Curve25519 encryptie-algoritme

[Link kopiëren]
Geplaatst op 2025-2-12 17:05:02 | | | |
urve25519 is het hoogste niveau van Diffie-Hellman-functie dat beschikbaar is voor een breed scala aan scenario's, ontworpen door professor Daniel J. Bernstein. In de cryptografie is Curve25519 een elliptische kromme die 128-bits beveiliging biedt en is ontworpen voor gebruik met het elliptische curve Diffie-Hellman (ECDH) sleutelonderhandelingsschema. Het is een van de snelste ECC-curves en wordt niet door bekende patenten gedekt.

Gegeven de 32-byte sleutel van een gebruiker, berekent curve25519 de 32-byte publieke sleutel van de gebruiker. Gegeven de 32-byte sleutel van die gebruiker en de 32-byte publieke sleutel van een andere gebruiker, berekent curve25519 een gedeelde 32-byte sleutel die beide gebruikers kunnen gebruiken. Dit geheim kan vervolgens worden gebruikt om informatie voor beide gebruikers te authenticeren en te versleutelen.

2. Download en compileer Curve25519

De curve25519-bibliotheek berekent de curve25519-functie met een zeer hoge snelheid. De bibliotheek heeft een breed scala aan toepassingen. Je kunt en moet het toepassen in je eigen programma in plaats van te linken naar een gedeelde bibliotheek; De gecompileerde code is ongeveer 16KB, afhankelijk van de CPU.

Download en compileer

Downloaden

compileren


3. Gebruik Curve25519

Voor elk C-programma dat curve25519 gebruikt, pas het programma aan om curve25519.h toe te voegen, en pas het makefile aan om het programma te koppelen aan curve25519.a en geef aan dat het programma afhankelijk is van curve25519.a en curve25519.h.

Rekensleutels

Intern, om een 32-byte curve25519-sleutel te genereren, genereer je eerst een secret van 32 willekeurige bytes van een cryptografische beveiligingsbron: mysecret[0], mysecret[1], ..., mysecret[31]. Doe dan het volgende:
mysecret[0] &= 248;
mysecret[31] &= 127;
mysecret[31] |= 64;
Genereer een 32-byte Curve25519-sleutel mysecret[0], mysecret[1], ..., mysecret[31].

In de toekomst zal de bibliotheekversie een curve25519_ compressiefunctie ondersteunen die 128 bytes hashing comprimeert tot 32 bytes, wat enige bescherming biedt tegen onvoldoende willekeurige getallengeneratoren; Een curve25519_ clampfunctie die 32 bytes omzet in een sleutel; en een eenvoudigste combinatie van curve25519_ sleutelgeneratiefuncties, die 128 bytes direct omzetten in sleutels.

Bereken publieke sleutels

Om een 32Byte publieke sleutel te genereren die overeenkomt met de 32Byte sleutel mypublic[0], mypublic[1], ..., mypublic[31], roep de functie aan
curve25519 (mijnpubliek, mijngeheim, basepoint);
waarbij het constante basispunt is:

const onondertekende char basepoint[32] = {9};
Toekomstige versies van de bibliotheek zullen meer beknopte curve25519_ openbare functies ondersteunen.

Genereer een gedeelde sleutel

Gegeven de publieke sleutel van een andere gebruiker met de Curve25519 zijn[0], zijnpubliek[1], ..., zijnepubliek[31], oproep

curve25519 (gedeeld, mijngeheim, zijnpubliek);
Genereer gedeelde 32-byte gedeelde sleutels[0], gedeelde[1], ..., gedeelde[31]. Een ander persoon kan dezelfde gedeelde sleutel genereren op basis van zijn eigen privésleutel en jouw publieke sleutel.
Vervolgens kunnen jullie allebei deze gedeelde sleutel hashen en het resultaat als sleutel gebruiken, bijvoorbeeld voor Poly1305-AES.
Toekomstige versies van de bibliotheek zullen een curve25519_-extensiefunctie ondersteunen die direct een 32Byte-sleutel hasht om 128 bytes als sleutel te genereren, en die het gemakkelijkst te gebruiken is, een combinatie curve25519_ gedeelde functie.

4. referentie

[Ed25519 en Curve25519 uitgelegd]De hyperlink-login is zichtbaar.
[Curve25519 encryptie en ontsleuteling en ED25519 gebruik van handtekeningen]De hyperlink-login is zichtbaar.
[ED25519]De hyperlink-login is zichtbaar.
[Android ED25519 implementatie]De hyperlink-login is zichtbaar.
[[ED25519 C-implementatie]De hyperlink-login is zichtbaar.
[ed25519 Java-implementatie]De hyperlink-login is zichtbaar.

Origineel:De hyperlink-login is zichtbaar.




Vorig:Angular 18 Serie (Eenendertig) VS Code Development Assistance Plugin
Volgend:NVIDIA Project DIGITS persoonlijke AI-supercomputer
 Huisbaas| Geplaatst op 2025-2-12 17:07:50 |
.NET/C# implementatiecode:


Test




Curve25519.cs (31 KB, Aantal downloads: 1, 售价: 10 粒MB)
Geplaatst op 2025-2-13 16:26:18 |
Ziet er goed uit, steun het.
Geplaatst op 2025-2-14 09:51:22 |
Ziet er goed uit, steun het
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com