0

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

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

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

4

1 回答 1

1

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

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

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

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

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

但是,真的,XSalsa20 没有任何问题。它有一个舒适的安全边际,它的大随机数大小非常方便。

于 2019-11-30T02:15:27.660 回答