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