Как да използвам ed25519 за криптиране/декриптиране на данни?

В момента проучвам https://github.com/orlp/ed25519 и има пример за подписване, но как да го използвам за криптиране/декриптиране на данни? Благодаря


person Mickey Shine    schedule 16.11.2014    source източник


Отговори (2)


Ако приемем, че искате да изпратите съобщение до Алис, която има публичния ключ A.

  1. Генерирайте нова двойка ефимерни ключове e, E
  2. Изчислете споделената DH тайна между e и A с помощта на функцията ed25519_key_exchange.
  3. Използвайте някакъв вид KDF на тази тайна. В най-простия случай хеш.
  4. Използвайте стойността, получена в стъпка 3, като ключ в симетричен алгоритъм

crypto_box работи почти по този начин на NaCl. Основните разлики са, че използва публични ключове на Montgomery и използва HSalsa20 като хеш в стъпка 3.

Някои хора не се чувстват комфортно да използват същата двойка ключове за подписване и криптиране. Използвайте на свой собствен риск. Ако не се нуждаете от тази повторна употреба на ключ, бих препоръчал LibSodium като алтернатива.

person CodesInChaos    schedule 17.11.2014

Вие не го правите. ED25519 е система за подпис с публичен ключ, а не система за криптиране. Опитът да го използвате за цел, за която не е проектиран, вероятно ще доведе до уязвимости в сигурността.

person Community    schedule 16.11.2014
comment
Не можете да използвате Ed25519, но можете да използвате публични ключове Ed25519. - person CodesInChaos; 17.11.2014