【问题标题】:How to use ed25519 to encrypt/decrypt data?如何使用 ed25519 加密/解密数据?
【发布时间】:2014-11-16 05:42:18
【问题描述】:

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

【问题讨论】:

    标签: c encryption encryption-asymmetric


    【解决方案1】:

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

    1. 生成一个新的临时密钥对e, E
    2. 使用ed25519_key_exchange 函数计算eA 之间的共享DH 机密。
    3. 使用该秘密的某种 KDF。最简单的情况是哈希。
    4. 将步骤 3 中导出的值用作对称算法中的键

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

    有些人不喜欢使用same keypair for signing and encryption。使用风险自负。如果您不需要此密钥重用,我会推荐 LibSodium 作为替代方案。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 你不能使用 Ed25519,但你可以使用 Ed25519 公钥。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多