根据过去的值预先计算加密随机数的下一个值是否安全?

Is it safe to have the next value of a cryptographic nonce be pre-computed based on past values?

服务器只需要使用伪随机生成器在初始化时创建第一个随机数,客户端应该知道这个值。此随机数应在第一个加密请求上使用,然后服务器根据该响应的某些属性计算随机数的下一个值,这是客户端和服务器都能够做到的能力。第二次加密请求将使用随机数的更新值,依此类推。这就像初始化向量在其他解决方案中的工作方式一样。

由于 nonce 是 publicly 可见值,并且根据初步研究,public 可见性对安全性没有影响,我这里的问题仅与 nonce 值链的生成有关而不是随机的。好处是在加密请求中客户端和服务器之间会形成一个link

我正在使用 libsodium 加密系统。

随机数不必是秘密的,只是随机的。即未重复使用。能满足这个就好了。我建议随机数的哈希棘轮。