真正随机数发生器

时间:2012-05-04 06:16:42

标签: random cryptography seed prng

根据我的理解,PRNG使用种子生成一系列不是真正随机的数字。是否有可能通过每次使用时不同种子重复使用PRNG来创建真正的随机数生成器。种子可以从dev / random或当前时间或时钟滴答中提取。如果没有,那么在软件中是否有一个真正的随机数生成器?

由于

4 个答案:

答案 0 :(得分:3)

如果你每次需要一个随机数你重新种子PRNG,你可以切断中间人并直接使用种子作为随机数。

但你所谈论的是在实践中完成的。这些是所谓的加密安全PRNG,它们被用在许多操作系统中,以便为加密应用程序提供随机数。它们经常从熵池中重新播种,其设计使得从计算上很难通过了解过去的数字(例如,对于LCG来说非常简单的事情)来计算下一个数字,并且还要弄清楚过去来自当前的数字。

这种方法的好处是你不会阻止生成随机数。系统中的熵是有限的资源,只能来自外部来源,因此通过使用CSPRNG,您可以安全地扩展它,同时不会危及安全性。

答案 1 :(得分:2)

简单的答案是没有这样的实施,因为据我所知,这根本不可能。要生成真正的随机数,您需要一个外部熵源,如hardware random number generator

答案 2 :(得分:1)

时钟不是很随机,但/ dev / random有一些随机性 - 它实际上就像一桶随机性,你可以根据随机生产和消费的速度来消耗。如果您使用dev / random,那么您没有使用RNG。从/ dev / random播种RNG是多余的。

答案 3 :(得分:0)

英特尔is working如果按宣传方式运作,可能会真正具有开创性。它实际上会使硬件PRNG变得多余。