首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于PRNG的几点思考

关于PRNG的几点思考
EN

Cryptography用户
提问于 2018-09-29 11:18:56
回答 1查看 135关注 0票数 2

最近我读到了伪随机生成器,我有一些观察:

  1. 我的结论是,当PRNG的熵太小时,它的安全实现必须阻塞或返回错误代码。如果PRNG不这样做,就意味着它不能安全--我们不能确定返回的伪随机比特“来自”真正的随机比特(用足够的熵实现)。是?
  2. 演示文稿理解和管理熵的使用点OpenSSL提供的PRNG本身不重新启动(幻灯片32)。这是否意味着在长期运行的应用程序中,我们必须手动重新分配?否则我们就没有安全的PRNG了?如果是,如何重新播种?每分钟?每小时一次?每生成1024字节?当熵足够时,如何确保种子被取走?
  3. 如果你知道的书籍/章节/博客涵盖了我的疑虑,请告诉我!

(预先谢谢:)

EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-09-29 14:06:22

回答你的一些问题:-

PRNG的安全实现必须阻塞。

CSPRNG是PRNG的加密安全版本。如果有一个很好且未知的种子(对任何攻击者来说),那么CSPRNG就可以永远有效地运行。ChaCha20或基于AES的东西可以生成输出的Oodle字节。

这是一个语义上的区别,但您可以说这类CSPRNG应该在初始化时阻止。他们不应该输出任何东西,除非用足够的熵正确地播种。由于未知熵有时很难获得,在CSPRNG启动之前可能会有延迟。获取128位或256位的未知熵对于某些实现(如IoT设备)来说是很长的,而不需要在TRNG上运行。

然而,重新播种可能很有用,特别是在桌面计算机/server的情况下。这些设备允许其他进程与CSPRNG一起执行。目前有263台运行在我的/dev/urandom设备旁边。他们中的任何人都可能在监视我。定期重新播种是为了减轻CSPRNG内部状态的潜在妥协。如果RNG是在你厨房的IoT冰箱上运行的话,这种重新播种是不必要的。

...how重新播种?每分钟?每小时一次?

这就是诀窍。这将取决于你的环境。CSPRNG 福图纳使用了一种非常复杂的、可变的时间重新播种和池机制。昆蒂斯量子密钥分配系统可能每隔几分钟就重新对常规侧进行一次密钥分配.应答给出默认的/dev/urandom重发率为1分钟。我看不出为什么物联网葡萄酒冷却器必须在功率周期之间重新分配。我觉得没人能给你一个有意义的转业期。一条建议可能是,如果你能够接触到某种形式的TRNG,你可以尽可能经常地利用它。

虽然考虑到在密码学而不是模拟中,确切的随机流往往与密钥和/或IV密切相关。在协议建立后简单地交换CSPRNG的内部状态就会突然中断会话。协议必须重新制定。这增加了复杂性和计算/network开销,也适用于OpenSSL。你的会议就会结束。

至于进一步的阅读,这个论坛当然。熵和CSPRNG标签下有很多争论。

票数 3
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/62745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档