如何使用ed25519加密/解密数据?

Mic*_*ine 3 c encryption encryption-asymmetric

目前我正在调查https://github.com/orlp/ed25519,它有签名示例,但如何使用它来加密/解密数据?谢谢

小智 6

你不知道。ED25519 是一个公钥签名系统,而不是一个加密系统。尝试将其用于非设计用途可能会引入安全漏洞。

  • 您不能使用 Ed25519,但可以使用 Ed25519 公钥。 (4认同)

Cod*_*aos 6

假设您想向拥有公钥的 Alice 发送消息A

  1. 生成一个新的临时密钥对eE
  2. 计算eA使用ed25519_key_exchange函数之间的共享 DH 秘密。
  3. 使用该秘密的某种 KDF。在最简单的情况下是散列。
  4. 使用在步骤 3 中导出的值作为对称算法中的密钥

NaCl 的crypto_box 工作原理几乎是这样的。主要区别在于它使用蒙哥马利形式的公钥并在步骤 3 中使用 HSalsa20 作为哈希。

有些人对使用相同的密钥对进行签名和加密感到不舒服。使用风险自负。如果您不需要此密钥重用,我建议您使用 LibSodium 作为替代方案。