随机生成的数字和安全随机生成的数字有什么区别?

时间:2020-03-06 14:25:39  来源:igfitidea点击:

如标题所述,随机生成的数字和安全随机生成的数字之间有什么区别?

解决方案

没有计算上可行的算法应该:

  • 恢复种子,或者
  • 预测"下一位"

安全的随机数生成器。

示例:线性反馈移位寄存器在那里产生许多随机数,但是如果有足够的输出,则可以发现种子并预测所有后续数字。

仅带有一个"随机数"通常意味着一个伪随机数。因为它是一个伪随机数,所以攻击者可以(轻松)预测到它。

安全随机数是来自真正随机数据源(即)的随机数。涉及某种形式的熵池。

它可能取决于上下文,但是当我们像这样比较它们时,我会说"随机数"是一个pseduo随机数,而"安全随机数"是真正的随机数。前者为我们提供基于种子和算法的数字,其他人为我们提供一些固有的随机函数。

就像AES和ROT13之间的区别一样。

为避免浮躁,通常会在生成随机数时在权衡难度和可预测性之间做出权衡,一旦我们看到了一些,就可以选择。由我们语言的内置rand()返回的随机数通常是便宜的,可预测的。

同意Purfiedeas。还有一篇很好的文章,叫做作弊在线扑克

即使给出先前生成的随机数列表,安全随机数也不应该是可预测的。通常,我们会将其用作加密例程的密钥,因此我们不希望它可猜测或者可预测。当然,可猜测性取决于上下文,但是我们应该假定攻击者知道我们所知道的所有知识,并且可能会使用这些知识来生成随机数。

有各种各样的网站可以生成安全的随机数,其中一个值得信赖的数字就是hotbits。如果我们只是一次完成一次随机数生成活动,那么为什么不使用抽奖结果,因为它证明是随机的。当然,不要告诉任何人哪张彩票和哪张彩票,而是通过适当的手把这些数字放入以获得想要的范围。

随机数可能表示算法使用"种子"返回的伪随机数。

安全随机数将是从基于铯的随机数生成器(使用铯的衰减率返回数字)之类的设备返回的真实随机数。这是自然发生的,无法预测。

请注意,数字不是随机的。 "随机性"根本不是任何给定数字的属性(即使XKCD告诉情况也是如此)。

只有生成数字的过程才可能被评定为"随机性"。阅读"颜色是什么"以获取有关此主题的一些讨论。