我正在使用openssl加密库,我对所有这些加密的东西都很陌生,并且慢慢地我正在学习所有这些。我对随机数发生器有疑问,我使用RAND_pseudo_bytes()
来产生一个伪随机数。我用我所需的熵为它提供种子。但我的疑问是,如果我们提供两次相同的种子,随机数发生器会生成相同的随机数吗?随机数生成器和种子
1
A
回答
2
伪随机数发生器是确定性的。但是,它们的构造方式很难生成循环(如果它达到之前的状态,它将生成相同的随机数,直到进入下一个循环,而没有结束)。
如果你开始使用与它相同的种子的伪随机数发生器将产生相同的输出。这是Ubuntu中的一个问题,静态代码分析的响应导致在播种过程中删除任何随机数。
请注意,大多数伪随机数发生器在混合在当前状态的额外的种子/熵。所以一旦伪随机数发生器播种良好,它将继续产生随机数。很多库默认情况下都会通过一个好的熵源(例如/dev/random
或Linux系统上的预先播种/dev/urandom
)为随机数生成器播种。
当然,它不会受到伤害测试。
+0
我的回答有什么问题,jithin? –
相关问题
- 1. 随机种子生成
- 2. 随机生成器,种子不工作
- 3. C++为psudo随机数生成器生成一个很好的随机种子
- 4. 随机数与种子生成
- 5. 生成随机数字:更新种子
- 6. 在种子内生成随机数
- 7. 随机种子来产生随机数
- 8. 播种随机数生成器
- 9. 种子伪随机数发生器
- 10. 种子随机数发生器
- 11. 如何为随机生成器生成良好的随机种子?
- 12. 在Java中为随机数生成器使用特定种子
- 13. 随机数字生成器 - 为什么每次都要种子
- 14. Java随机生成器的种子产生不同的输出
- 15. 随机生成器和CUDA
- 16. 随机数生成器帮助不生成随机数 - C
- 17. 64位随机发生器的种子
- 18. 随机数据生成器
- 19. Python随机数生成器
- 20. 随机数据生成器
- 21. 随机数种子
- 22. 随机生成器字母和整数
- 23. 随机数生成器和验证
- 24. 生成 “随机” 数是相同的javascript每次(即种子随机数)
- 25. 随机数生成/哪种算法?
- 26. 随机访问种子3D白噪声随机发生器
- 27. 能否使用负数作为随机数生成的种子?
- 28. 使用固定种子的随机密钥生成器java
- 29. 基于种子的伪随机序列生成器
- 30. 用已知种子创建ThreadLocal随机生成器
您可能会在[crypto.stackexchange.com](http://crypto.stackexchange.com) – Joe
中找到知道此问题答案的人。如果种子相同,则应该生成相同的序列。 – doptimusprime
@Joe:这个问题对于crypto.SE来说并不是很合适,尽管在这里被问到的方式让人有点难以辨认:“加密PRNG如何工作?”对于crypto.SE来说是一个很好的问题(除了可能有点太宽泛); “OpenSSL PRNG如何工作?”在主题上会略微有些变化,而“我如何使用OpenSSL PRNG?”将加密的主题。这里问的这个问题看起来有点像第二种类型,但它背后的[真正的问题](http://crypto.stackexchange.com/q/9983)更接近最后一个。 –