Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 1525|Отговор: 3

Алгоритъм за криптиране Curve25519

[Копирай линк]
Публикувано на 2025-2-12 17:05:02 | | | |
urve25519 е най-високото ниво на функция на Дифи-Хелман, достъпно за широк спектър от сценарии, проектирано от професор Даниел Дж. Бърнстийн. В криптографията Curve25519 е елиптична крива, която осигурява 128-битова сигурност и е проектирана за използване с елиптичната крива на Diffie-Hellman (ECDH) схема за преговори на ключове. Това е една от най-бързите ECC криви и не е обхваната от никакви известни патенти.

С 32-байтов ключ на потребителя, curve25519 изчислява 32-байтовия публичен ключ на потребителя. Като се има предвид 32-байтов ключ на този потребител и 32-байтов публичен ключ на друг потребител, curve25519 изчислява 32-байтов споделен ключ за двамата потребители. Тази тайна може да се използва за удостоверяване и криптиране на информация и за двамата потребители.

2. Изтеглете и компилирайте Curve25519

Библиотеката curve25519 изчислява функцията curve25519 с много висока скорост. Библиотеката предлага широк спектър от приложения. Можете и трябва да го приложите в собствената си програма, вместо да свързвате към споделена библиотека; Компилираният код е около 16KB, в зависимост от процесора.

Изтегляне и компилиране

Свалям

компилирам


3. Използвайте Curve25519

За всяка C програма, която използва curve25519, модифицирайте програмата да включва curve25519.h и променете makefile-а, за да свърже програмата с curve25519.a и да посочите, че програмата зависи от curve25519.a и curve25519.h.

Ключове за изчисление

Вътрешно, за да генерирате 32-байтов ключ curve25519, първо генерирайте тайна от 32 произволни байта от криптографски източник за сигурност: mysecret[0], mysecret[1], ..., mysecret[31]. След това направете следното:
mysecret[0] &= 248;
mysecret[31] &= 127;
mysecret[31] |= 64;
Генерирайте 32-байтов ключ Curve25519 mysecret[0], mysecret[1], ..., mysecret[31].

В бъдеще библиотечната версия ще поддържа функция за компресия curve25519_, която компресира 128 байта хеширане в 32 байта, добавяйки известна защита срещу недостатъчни генератори на случайни числа; Функция за curve25519_ clamp, която преобразува 32 байта в клавиш; и най-лесна за използване комбинация от curve25519_ функции за генериране на ключове, които директно конвертират 128 байта в ключове.

Изчисление на публични ключове

За да генерирате 32-байтов публичен ключ, който съвпада с 32-байтовия ключ mypublic[0], mypublic[1], ..., mypublic[31], извикайте функцията
curve25519(моята публична, моята тайна, базова точка);
където константната базова точка е:

Конст неподписан чар базова точка[32] = {9};
Бъдещите версии на библиотеката ще поддържат по-кратки curve25519_ публични функции.

Генериране на споделен ключ

Давайки на друг потребител публичен ключ Curve25519 hispublic[0], hispublic[1], ..., hispublic[31], call

curve25519(споделена, моята тайна, неговата публична);
Генериране на споделени ключове от 32 байта, споделени[0], споделени[1], ..., споделени[31]. Друг човек може да генерира същия споделен ключ въз основа на своя частен ключ, както и на вашия публичен ключ.
След това и двамата можете да хеширате този споделен ключ и да използвате резултата като ключ, например за Poly1305-AES.
Бъдещите версии на библиотеката ще поддържат функция за разширение curve25519_, която директно хешира 32-байтов ключ, генерирайки 128 байта като ключ, и е най-лесна за използване – комбинация curve25519_ споделена функция.

4. Препратка

[Обяснение на Ed25519 и Curve25519]Входът към хиперлинк е видим.
[Curve25519 криптиране и декриптиране и ED25519 използване на подписи]Входът към хиперлинк е видим.
[ED25519]Входът към хиперлинк е видим.
[Android ED25519 внедряване]Входът към хиперлинк е видим.
[[ED25519 C имплементация]Входът към хиперлинк е видим.
[ed25519 Java имплементация]Входът към хиперлинк е видим.

Оригинален:Входът към хиперлинк е видим.




Предишен:Angular 18 серия (Тридесет и едно) срещу плъгин за помощ при разработка на код
Следващ:NVIDIA Project DIGITS персонален AI суперкомпютър
 Хазяин| Публикувано на 2025-2-12 17:07:50 |
.NET/C# код за имплементация:


Тест




Curve25519.cs (31 KB, Брой изтегляния: 1, 售价: 10 粒MB)
Публикувано на 2025-2-13 16:26:18 |
Изглежда добре, подкрепи го.
Публикувано на 2025-2-14 09:51:22 |
Изглежда добре, подкрепете го
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com