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

f3l*_*lix 9 hardware random

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

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

PS:恕我直言,问题真正的随机数发生器并没有真正涵盖这一点


编辑:

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

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

sli*_*lim 6

您没有指定环境.

从Linux的/ dev/random文档中

随机数发生器将来自设备驱动程序和其他源的环境噪声收集到熵池中.生成器还保持对熵池中噪声的比特数的估计.从该熵池中创建随机数.

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

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

......还有EGD,即熵聚会守护神.用Perl编写,因此可以跨多个平台移植.

  • 我在LavaRnd网站上看不到熔岩灯的引用.它说他们的混乱来源是暗盒中的CCD. (2认同)

Seb*_*rog 5

我一直想购买PCI或USB量子随机数发生器,但我不知道它们的成本是多少,坦率地说它可能很多!它们确实提供了惊人的16 Mibit/s和4 Mibit/s的随机数,但是可以在*NIX盒子和Windows上使用.这比我需要的还要多!

除此之外,如何"满满的一本书"?拥有100,000普通偏差的百万随机数字可能是他们在亚马逊上出售的最酷书!我还没买它,但这只是时间问题.必须非常方便在你的书架上有这样一个真正的随机数库存!


Seb*_*Seb 1

计算中的真正随机数不存在,也永远不会存在。计算机是确定性的,如果你在相同的环境下重复相同的经历,就会得到相同的结果。

您通过计算机获得的是伪随机数,主要取决于当前情况:日期、时间、其他变量(例如正在使用的内存、当前的网络流量等)。

例如,一些在线扑克网站,为了在一定程度上保证所发牌局的随机性,必须安装特定的硬件来获取环境噪声并据此生成随机数(不仅如此,而且这是一个主要因素)。

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