我正在编写一款应用程序,用户可以使用端对端加密在设备之间通信。为此,我使用libsodium加密库。非对称加密函数crypto_box(...)需要一个nonce作为其中一个参数。
我有点困惑如何处理nonce。每个发送给某个人的消息都需要使用不同的nonce进行加密吗?这似乎不正确,因为我将不得不在具有公共访问权限的服务器上存储已使用的nonce,攻击者可以随便再次使用其中一个nonce。
所有从A发送到B的消息都具有不同的nonce是否足够,或者用于从A发送到B的nonce不能用于从C发送到B?
请有人向我解释一下。
我有点困惑如何处理nonce。每个发送给某个人的消息都需要使用不同的nonce进行加密吗?这似乎不正确,因为我将不得不在具有公共访问权限的服务器上存储已使用的nonce,攻击者可以随便再次使用其中一个nonce。
所有从A发送到B的消息都具有不同的nonce是否足够,或者用于从A发送到B的nonce不能用于从C发送到B?
请有人向我解释一下。