В настоящее время я исследую https://github.com/orlp/ed25519, и у него есть пример для подписания, но как использовать его для шифрования/дешифрования данных? Спасибо
Как использовать ed25519 для шифрования/дешифрования данных?
Ответы (2)
Предположим, вы хотите отправить сообщение Алисе, у которой есть открытый ключ A
.
- Создайте новую пару эфемерных ключей
e
,E
- Вычислите общий секрет DH между
e
иA
с помощью функцииed25519_key_exchange
. - Используйте какой-нибудь KDF этого секрета. В простейшем случае хэш.
- Используйте значение, полученное на шаге 3, в качестве ключа в симметричном алгоритме.
NaCl crypto_box
работает почти так. Основные отличия заключаются в том, что он использует открытые ключи формы Монтгомери и использует HSalsa20 в качестве хэша на шаге 3.
Некоторым людям неудобно использовать одну и ту же пару ключей для подписи. и шифрование. Используйте на свой риск. Если вам не нужно повторное использование этого ключа, я бы порекомендовал LibSodium в качестве альтернативы.
person
CodesInChaos
schedule
17.11.2014
Вы не знаете. ED25519 — это система подписи с открытым ключом, а не система шифрования. Попытка использовать его для целей, для которых он не был разработан, может привести к возникновению уязвимостей в системе безопасности.
person
Community
schedule
16.11.2014
Вы не можете использовать Ed25519, но можете использовать открытые ключи Ed25519.
- person CodesInChaos; 17.11.2014