真(非伪)随机数生成器。有什么?

时间:2009-03-18 15:00:02

标签: random hardware

我正在寻找可以产生真正随机数的经济实惠的解决方案。

我找到LavaRnd,这是一个加密声音的随机数生成器。有没有人在这个领域有经验和/或知道其他解决方案?

PS:恕我直言,问题True random number generator并没有真正涵盖这个


修改

我的好奇心更多是学术性的。我不想了解PRNG ,它们对于实际应用来说已经足够了。我知道他们存在并且他们会这样做。

当然,生成真正的随机数将需要硬件设备。这就是我用硬件标记的原因。

5 个答案:

答案 0 :(得分:6)

您没有指定环境。

来自Linux的/ dev / random

的文档
  

随机数发生器收集   设备的环境噪音   司机和其他来源变成了   熵池。发电机也保持   估计的位数   熵池中的噪音。从   这个熵池是随机数   创建

因此,这是一个加密安全的随机源,基于以太网数据包的任意时序,键盘和鼠标输入等不可预测的输入。

还有Bruce Schneier的Yarrow PRNG服务器。不是真正随机的,而是考虑加密安全。

......还有EGD,即熵聚会守护进程。用Perl编写,因此可以在许多平台上移植。

答案 1 :(得分:5)

我一直想购买PCI or USB Quantum Random Number Generator,但我不知道它们的价格是多少,坦白说它可能很多!它们确实提供了惊人的16 Mibit / s和4 Mibit / s的随机数,但是可以在* NIX盒子和Windows上使用。这比我需要的还要多!

除此之外,怎么'还有一本书充满了'? A Million Random Digits with 100,000 Normal Deviates也许是他们在亚马逊上销售的最酷书!我还没买它,但这只是时间问题。必须非常方便在你的书架上有这样一个真正的随机数库存!

答案 2 :(得分:2)

完全解决这个问题是一个广泛的主题。

存在硬件随机数生成器。它们使用热噪声甚至量子效应(在最快的模型中)来生成高质量的随机数。

有人怀疑热噪声随机数的产生可能会产生“偏见”。也就是说,在极端的长期内,某些数字的生成频率高于其他数字。生成的数字仍然是真正随机的。

要想知道这是怎么回事,可以考虑一个不公平的硬币,这种硬币可以让60%的时间成为头脑。翻转硬币仍然是一个随机的过程 - 从长远来看,我们应该期望60%的硬币成为首脑。表示随机过程编码信息或“熵”,因为任何确定的结果只是许多可能结果之一。另一方面,用不公平硬币产生的一系列头部和尾部将包含的信息少于用公平硬币产生的相同序列!

结果是,对于可证明的,偏执级别的安全性,您不希望直接使用硬件随机数生成器的数字。你想把它们送入一个熵池,随机(但可能有偏见)的数字可以流失。

事实上,大多数硬件随机数生成器都是通过内核(或Windows等价物)提供/ dev / random来处理这种偏差/熵问题。

另一方面,任何体面的随机数发生器都足够统一,可以快速进行蒙特卡罗模拟。

答案 3 :(得分:1)

c't 2/2009中有一篇关于真随机数和伪随机数的文章。除了LavaRnd之外,还讨论了RandCam和VIA的PadLock。

答案 4 :(得分:0)

计算中的

True 随机数不存在,也永远不会存在。计算机具有确定性,因为如果您在相同环境下重复相同的体验,将会实现相同的结果。

你得到的计算机是伪随机数,主要取决于当前的情况:日期,时间,其他变量,如使用的内存,此时的网络流量等。

例如,一些在线扑克网站,为了在某种程度上保证他们处理的手的随机性,必须安装特定的硬件,以获取环境噪音,并根据它产生随机数(不仅如此,但它是一个主要因素)。

因此,要使伪随机数接近真随机性,您需要考虑外部因素。