公共随机数的安全影响

时间:2015-03-09 07:47:33

标签: cryptography public-key-encryption nacl-cryptography

我计划使用crypto_box()Nacl函数来加密消息,作为客户端/服务器协议的一部分。服务器必须处理多个客户端,并且使用服务器的公钥对从客户端到服务器的每条消息进行加密,并使用客户端的私钥进行签名。

cypto_box()函数还要求我提供一个随机数。当前的消息号可以用作我的理解,对于能够跟踪交换了多少消息的攻击者来说,必须知道该随机数。然后,客户端和服务器都将维护一个消息计数器,并简单地使用最新的计数器值作为随机数。

但是,我必须处理重新排序或丢失消息的情况。因此,我将明文与加密消息一起发送明文。只要同一个nonce没有使用两次,我就不会发现这种方法存在任何问题。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

不,nonce&IV和IV可能被视为公共知识。我刚检查了NaCl网站,但我没有看到任何与此相反的明确言论。

CBC操作模式对IV(不可预测性)有一些额外的要求,但这当然不是NaCl的问题。

你应该确保你不接受任何nonce< =最后收到的nonce,否则攻击者可能会重新发送或重新排序消息。