【问题标题】:Can libsodium's secret box be configured to use a cipher other than Salsa20?libsodium 的秘密盒子可以配置为使用 Salsa20 以外的密码吗?
【发布时间】:2019-11-08 22:56:02
【问题描述】:

我知道这个问题似乎更适合 Crypto.SE 或 Security.SE;我在这里问它是因为我专门寻求 API 方面的帮助,而不是询问技术或历史背景。

我目前正在考虑通过 PyNaCl 将 libsodium 集成到我的一个项目中。扫描了这两个项目的文档(诚然不是超级彻底),在我看来,除了默认的 Salsa20 之外,没有其他方法可以使用密码。

这对我来说不是一个直接的问题,因为 Salsa20 似乎既安全又高效,但在未来,我可能想使用不同的算法。任何一个库都提供这种切换(理想情况下是在 PyNaCl 级别)吗?

【问题讨论】:

    标签: libsodium pynacl


    【解决方案1】:

    box 操作只是执行标量乘法以获得共享密钥,然后使用该密钥执行经过身份验证的加密。

    前者是通过scalarmult API 完成的,您可以手动调用它来获取与box 将计算的密钥相同的密钥。

    后者是secretstream API,您也可以使用上一步中的共享密钥手动调用。

    Libsodium 有一个更好的密钥交换 API:kx (crypto_kx),您可以在第一步中使用它。

    对于对称操作,它还提供了 XSalsa20 (-Poly1305) 的替代方案,特别是在 AEAD API 中:XChaCha20 (-Poly1305)、AES-256 (-GCM) 和 AEGIS-256。

    但是,实际上,XSalsa20 并没有什么问题。它有一个舒适的安全边际,它的大nonce大小非常方便。

    【讨论】:

      猜你喜欢
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多