Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 1525|Odpowiedź: 3

Algorytm szyfrowania Curve25519

[Skopiuj link]
Opublikowano 2025-2-12 17:05:02 | | | |
urve25519 to najwyższy poziom funkcji Diffie-Hellman dostępny dla szerokiego zakresu scenariuszy, zaprojektowany przez profesora Daniela J. Bernsteina. W kryptografii Curve25519 to krzywa eliptyczna zapewniająca 128-bitowe bezpieczeństwo i jest zaprojektowana do użycia ze schematem negocjacji kluczy Diffie-Hellman (ECDH) z krzywą eliptyczną. Jest to jedna z najszybszych krzywych ECC i nie jest objęta żadnymi znanymi patentami.

Dla klucza użytkownika o długości 32 bajtów, curve25519 oblicza jego 32-bajtowy klucz publiczny. Mając 32-bajtowy klucz tego użytkownika i 32-bajtowy klucz publiczny innego, curve25519 oblicza 32-bajtowy klucz współdzielony dla obu użytkowników. Ten sekret może być następnie używany do uwierzytelniania i szyfrowania informacji dla obu użytkowników.

2. Pobierz i skompiluj Curve25519

Biblioteka curve25519 oblicza funkcję curve25519 z bardzo dużą prędkością. Biblioteka ma szerokie zastosowania. Możesz i powinieneś stosować go w swoim własnym programie zamiast linkować do współdzielonej biblioteki; Skompilowany kod ma około 16KB, w zależności od procesora.

Pobierz i skompiluj

Pobierać

kompilować


3. Użyj Curve25519

Dla dowolnego programu w języku C, który będzie używał curve25519, zmodyfikuj go tak, aby zawierał curve25519.h, a plik makefile, aby połączyć program z curve25519.a i stwierdzić, że program zależy od curve25519.a i curve25519.h.

Obliczaj klucze

Wewnętrznie, aby wygenerować klucz curve25519 o długości 32 bajtów, najpierw wygeneruj sekret 32 losowych bajtów z kryptograficznego źródła bezpieczeństwa: mysecret[0], mysecret[1], ..., mysecret[31]. Następnie zrób następująco:
mysecret[0] &= 248;
mysecret[31] &= 127;
mysecret[31] |= 64;
Wygeneruj 32-bajtowy klucz Curve25519: mysecret[0], mysecret[1], ..., mysecret[31].

W przyszłości wersja biblioteczna będzie obsługiwać funkcję kompresji curve25519_, która kompresuje 128 bajtów haszowania do 32 bajtów, co doda pewną ochronę przed niewystarczającymi generatorami liczb losowych; Funkcja curve25519_ clamp, która przekształca 32 bajty w klucz; oraz najłatwiejszą w użyciu kombinacją curve25519_ funkcji generowania kluczy, które bezpośrednio przekształcają 128 bajtów w klucze.

Oblicz klucze publiczne

Aby wygenerować 32-bajtowy klucz publiczny odpowiadający 32-bajtowemu kluczowi mypublic[0], mypublic[1], ..., mypublic[31], wywołaj funkcję
curve25519 (mypublic, mysecret, punkt bazowy);
gdzie stały punkt bazowy wynosi:

Const Underpoint Unsigned CHAR[32] = {9};
Przyszłe wersje biblioteki będą wspierać bardziej zwięzłe curve25519_ funkcje publiczne.

Wygeneruj wspólny klucz

Na podstawie klucza publicznego Curve25519 innego użytkownika: hispublic[0], hispublic[1], ..., hispublic[31],

Curve25519 (udostępnione, mysecret, hispublic);
Generuj klucze współdzielone 32 bajtów[0], współdzielone[1], ..., współdzielone[31]. Inna osoba może wygenerować ten sam wspólny klucz na podstawie swojego klucza prywatnego oraz Twojego klucza publicznego.
Następnie oboje możecie zahashować ten wspólny klucz i użyć wyniku jako klucza, na przykład dla Poly1305-AES.
Przyszłe wersje biblioteki będą obsługiwać funkcję rozszerzenia curve25519_, która bezpośrednio haszuje klucz 32-bajtowy, generując 128 bajtów jako klucz, i jest najłatwiejsza w użyciu – funkcja łącząca curve25519_ współdzielona.

4. Odniesienie

[Wyjaśnienie Ed25519 i Curve25519]Logowanie do linku jest widoczne.
[Curve25519 szyfrowanie i deszyfrowanie oraz ED25519 użycie sygnatur]Logowanie do linku jest widoczne.
[ED25519]Logowanie do linku jest widoczne.
[Implementacja ED25519 Androida]Logowanie do linku jest widoczne.
[[ED25519 implementacja C]Logowanie do linku jest widoczne.
[ed25519 Implementacja Java]Logowanie do linku jest widoczne.

Oryginał:Logowanie do linku jest widoczne.




Poprzedni:Wtyczka Angular 18 Series (Thirty-One) VS VS Pomocy w Rozwoju Kodu
Następny:Osobisty superkomputer AI NVIDIA Project DIGITS
 Ziemianin| Opublikowano 2025-2-12 o 17:07:50 |
Kod implementacyjny .NET/C#:


Test




Curve25519.cs (31 KB, Liczba pobranych plików: 1, 售价: 10 粒MB)
Opublikowano 2025-2-13 16:26:18 |
Wygląda dobrze, wesprzej to.
Opublikowano 2025-2-14 09:51:22 |
Wygląda dobrze, wesprzem to
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com