Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 1525|Відповідь: 3

Алгоритм шифрування Curve25519

[Копіювати посилання]
Опубліковано 2025-2-12 17:05:02 | | | |
urve25519 — це найвищий рівень функції Діффі-Геллмана, доступний для широкого спектра сценаріїв, розроблений професором Даніелем Дж. Бернштейном. У криптографії Curve25519 — це еліптична крива, яка забезпечує 128-бітну безпеку і призначена для використання з схемою узгодження ключів за еліптичною кривою Діффі-Хеллмана (ECDH). Це одна з найшвидших кривих ECC і не охоплена жодним відомим патентом.

Враховуючи 32-байтовий ключ користувача, curve25519 обчислює 32-байтовий публічний ключ користувача. Враховуючи 32-байтовий ключ цього користувача та 32-байтовий публічний ключ іншого, curve25519 обчислює 32-байтовий спільний ключ для обох користувачів. Цей секрет можна використовувати для автентифікації та шифрування інформації обох користувачів.

2. Завантажити та скомпілювати Curve25519

Бібліотека curve25519 обчислює функцію curve25519 на дуже високій швидкості. Бібліотека має широкий спектр застосувань. Ви можете і повинні застосовувати це у власній програмі, а не пов'язувати їх із спільною бібліотекою; Скомпільований код становить близько 16 КБ, залежно від процесора.

Завантажити та скомпілювати

Завантажити

Скомпілювати


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_ затиску, яка перетворює 32 байти в ключ; а також найпростіша у використанні комбінація функцій генерації curve25519_ ключів, які безпосередньо конвертують 128 байт у ключі.

Обчислення публічних ключів

Щоб згенерувати публічний ключ об'ємом 32 Байти, який відповідає ключу mypublic[0], mypublic[1], ..., mypublic[31), викликайте функцію
Curve25519(MyPublic, MySecret, BasePoint);
де стала базова точка дорівнює дорівнюванню:

Конст непідписаний бейспойнт[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 (Thirty-One) проти
Наступний:Персональний суперкомп'ютер NVIDIA Project DIGITS
 Орендодавець| Опубліковано 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