似乎在类unix系统中,使用纯C语言从/dev/urandom读取数据是提取高质量随机字节最简单的方法。我需要运行一个模拟程序,每秒大约需要10k个32位随机数,它可能会运行几天。使用/dev/urandom是否适合这个目的?当熵池耗尽时,这里的随机字节的质量如何?
编辑1:
虽然我现在在我的笔记本电脑上为/dev/urandom运行了3个并行的diehard测试,但我得到了以下有趣的行。测试还没有完成。
编辑1:
虽然我现在在我的笔记本电脑上为/dev/urandom运行了3个并行的diehard测试,但我得到了以下有趣的行。测试还没有完成。
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_parking_lot| 0| 12000| 100|0.99573896| WEAK
diehard_sums| 0| 100| 100|0.00116464| WEAK
sts_serial| 7| 100000| 100|0.99996076| WEAK
/dev/urandom
可能是可以使用的(它是一个CSPRNG),除非您需要重复序列。 - Michael Foukarakis/dev/urandom
使用的底层算法,或者当熵池耗尽时会发生什么。换句话说,情况有多糟糕? - user3810155