【问题标题】:What is the difference between a non-secure random number generator and a secure random number generator?非安全随机数生成器和安全随机数生成器有什么区别?
【发布时间】:2008-09-19 12:07:12
【问题描述】:

正如标题所说:非安全随机数生成器和安全随机数生成器有什么区别?

【问题讨论】:

标签: random cryptography


【解决方案1】:

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

  • 恢复种子,或
  • 预测“下一位”

用于安全的随机数生成器。

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

【讨论】:

    【解决方案2】:

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

    有各种网站可以生成安全随机数,其中一个受信任的网站是hotbits。如果您只是将随机数生成作为一次性活动,为什么不使用彩票抽奖结果,因为它可以证明是随机的。当然,不要告诉任何人哪张彩票和哪张开奖,把这些号码经过适当的修改以获得你想要的范围。

    【讨论】:

      【解决方案3】:

      只有一个“随机数”通常意味着一个伪随机数。因为它是一个伪随机数,所以攻击者可以(很容易)预测到它。

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

      【讨论】:

      • 这实际上非常非常不准确:随机生成的数字意味着,随机生成:掷骰子,听声卡的白噪声,随机。
      • 伪随机数生成器显然是通过算法生成随机数。例如梅森捻线机。加密强大的随机数生成器同样是“伪”的,它们也通过算法生成数字。
      • 但是,如果它们的熵池仍然是秘密的,它们通常被证明是难以预测的。强加密伪随机数生成器 (prng) 的一个示例是 Yarrow,它用于 Mac OS X 上 /dev/random 和 /dev/urandom 的实现,由 Bruce 设计。
      【解决方案4】:

      同意 Purfiedeas。还有一篇很好的文章,叫做Cheat Online Poker

      【讨论】:

        【解决方案5】:

        随机数可能意味着使用“种子”的算法返回的伪随机数。

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

        【讨论】:

          【解决方案6】:

          这可能取决于上下文,但是当您像这样比较它们时,我会说“随机数”是pseduo random number,而“安全随机数”是真正随机的。前者给你一个基于种子和算法的数字,另一个给你一个固有随机函数的数字。

          【讨论】:

          • 安全随机数不必来自真正的随机源 例如,通过使用良好的伪随机源并使用 MD5 校验和结果作为安全随机数来生成安全随机数通常是非常安全的结果。这不是一个理想的解决方案,但还不错。
          【解决方案7】:

          这就像 AES 和 ROT13 之间的区别。

          为了不那么轻率,在生成随机数时,通常需要在生成随机数的难易程度和序列中下一个随机数的可预测性之间进行权衡。由您的语言的内置 rand() 返回的随机数通常是廉价的、可预测的种类。

          【讨论】:

            猜你喜欢
            • 2021-09-03
            • 1970-01-01
            • 2015-09-09
            • 1970-01-01
            • 2017-12-28
            • 2010-11-14
            • 2012-02-07
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多