【发布时间】:2019-05-27 16:42:37
【问题描述】:
我正在考虑创建一个使用 Libsodium 的 crypto_box_easy 加密和解密聊天消息的移动应用程序。
但是,在网上查阅了很多资料后,我发现公私钥算法的一大缺陷是,一旦接收者的私钥泄露,记录的数据就会被解密。
为避免这种情况,建议使用完美前向保密 (PFS),我想知道 Libsodium 是否已经在前面提到的函数中支持 PFS,因为每个加密都使用单独的 nonces。
也许有人可以指导我 PFS 和 Libsodiums 函数之间的区别(如果有的话),或者通过澄清 nonces 和 PFS 的关系来帮助我。
【问题讨论】:
-
可以查看 libsodium.gitbook.io/doc/key_exchange 并注意完美前向保密 = 前向保密
-
虽然可能没有隐式前向保密,但您可以使用临时/临时 crypto_box 密钥对在 libsodium 中实现前向保密,您只需根据每个会话的临时密钥对生成新的共享密钥。跨度>
标签: encryption public-key-encryption encryption-asymmetric nonce libsodium