Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 1525|Svar: 3

Curve25519-krypteringsalgoritmen

[Kopiera länk]
Publicerad den 2025-2-12 17:05:02 | | | |
urve25519 är den högsta nivån av Diffie-Hellman-funktionen som finns tillgänglig för ett brett spektrum av scenarier, designad av professor Daniel J. Bernstein. Inom kryptografi är Curve25519 en elliptisk kurva som ger 128-bitars säkerhet och är designad för användning med den elliptiska kurvan Diffie-Hellman (ECDH) nyckelförhandlingsschema. Det är en av de snabbaste ECC-kurvorna och omfattas inte av några kända patent.

Givet en användares 32-bytes nyckel beräknar curve25519 användarens 32-bytes publika nyckel. Givet den användarens 32-bytes nyckel och en annan användares 32-bytes publika nyckel, beräknar curve25519 en 32-bytes delad nyckel för båda användarna att använda. Denna hemlighet kan sedan användas för att autentisera och kryptera information för båda användarna.

2. Ladda ner och kompilera Curve25519

Kurvbiblioteket beräknar kurvan25519-funktionen med mycket hög hastighet. Biblioteket har ett brett utbud av tillämpningar. Du kan och bör tillämpa det i ditt eget program istället för att länka till ett delat bibliotek; Den kompilerade koden är cirka 16 KB, beroende på CPU.

Ladda ner och kompilera

Ladda ned

kompilera


3. Använd Curve25519

För alla C-program som använder kurva25519, ändra programmet för att inkludera kurva25519.h, och ändra makefilen för att länka programmet med kurva25519.a och ange att programmet beror på kurva25519.a och kurva25519.h.

Beräkningsnycklar

Internt, för att generera en 32-bytes kurva25519-nyckel, generera först en hemlighet på 32 slumpmässiga byte från en kryptografisk säkerhetskälla: mysecret[0], mysecret[1], ..., mysecret[31]. Gör sedan följande:
mysecret[0] &= 248;
mysecret[31] &= 127;
mysecret[31] |= 64;
Generera en 32-bytes Curve25519-nyckel mysecret[0], mysecret[1], ..., mysecret[31].

I framtiden kommer biblioteksversionen att stödja en curve25519_ komprimeringsfunktion som komprimerar 128 byte hashning till 32 byte, vilket ger visst skydd mot otillräckliga slumptalsgeneratorer; En curve25519_ klämfunktion som omvandlar 32 byte till en nyckel; och en enklast att använda kombination av curve25519_ nyckelgenereringsfunktioner, som direkt omvandlar 128 byte till nycklar.

Beräkna publika nycklar

För att generera en 32Byte offentlig nyckel som matchar 32Byte-nyckeln mypublic[0], mypublic[1], ..., mypublic[31], anropa funktionen
curve25519(mypublic, mysecret, basepoint);
där den konstanta baspunkten är:

const osignerad char basepoint[32] = {9};
Framtida versioner av biblioteket kommer att stödja mer koncis curve25519_ offentliga funktioner.

Generera en delad nyckel

Givet en annan användares Curve25519 publika nyckel är hans public[0], hispublic[1], ..., hispublic[31], anrop

curve25519 (delade, min hemlighet, sin publik);
Generera 32-bytes delade nycklar[0], delade[1], ..., delade[31]. En annan person kan generera samma delade nyckel baserat på sin egen privata nyckel samt din publika nyckel.
Sedan kan ni båda hasha denna delade nyckel och använda resultatet som en nyckel, till exempel för Poly1305-AES.
Framtida versioner av biblioteket kommer att stödja en curve25519_ extension-funktion som direkt hashar en 32-byte nyckel för att generera 128 byte som nyckel, och är den enklaste att använda, en kombination curve25519_ delad funktion.

4. Referens

[Ed25519 och Curve25519 förklaras]Inloggningen med hyperlänken är synlig.
[Curve25519 kryptering och dekryptering samt ED25519 användning av signaturer]Inloggningen med hyperlänken är synlig.
[ED25519]Inloggningen med hyperlänken är synlig.
[Android ED25519 implementation]Inloggningen med hyperlänken är synlig.
[[ED25519 C-implementering]Inloggningen med hyperlänken är synlig.
[ed25519 Java-implementation]Inloggningen med hyperlänken är synlig.

Original:Inloggningen med hyperlänken är synlig.




Föregående:Angular 18-serien (Thirty-One) VS Code Development Assistance Plugin
Nästa:NVIDIA Project DIGITS personlig AI-superdator
 Hyresvärd| Publicerad den 2025-2-12 17:07:50 |
.NET/C#-implementeringskod:


Test




Curve25519.cs (31 KB, Antal nedladdningar: 1, 售价: 10 粒MB)
Publicerad den 2025-2-13 16:26:18 |
Ser bra ut, stöd det.
Publicerad den 2025-2-14 09:51:22 |
Ser bra ut, stöd den
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com