Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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.

Вычислительные ключи

Внутри, чтобы сгенерировать ключ curve2519 объемом 32 байта, сначала генерируйте секрет из 32 случайных байт из криптографического источника безопасности: mysecret[0], mysecret[1], ..., mysecret[31]. Затем делайте следующее:
mysecret[0] &= 248;
mysecret[31] &= 127;
mysecret[31] |= 64;
Сгенерируйте ключ Curve25519 размером 32 байта: 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], вызов

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

4. Ссылка

[Объяснение Ed25519 и Curve25519]Вход по гиперссылке виден.
[Шифрование и расшифровка Curve25519 и ED25519 использование подписей]Вход по гиперссылке виден.
[ED25519]Вход по гиперссылке виден.
[Реализация ED25519 Android]Вход по гиперссылке виден.
[[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