【问题标题】:Can a pseudorandom generator ever be true random?伪随机生成器可以是真正的随机吗?
【发布时间】:2016-03-08 10:01:16
【问题描述】:

我可以理解如何将种子用于伪随机生成(例如时间)并不能使其真正随机化;但是当伪随机生成器从硬件随机数生成器中获取种子时,伪随机生成器不会变成真随机,因为它的种子是从 TRNG 收集的?

【问题讨论】:

    标签: random numbers generator random-seed


    【解决方案1】:

    首先,要认识到单个数字不是随机的或非随机的:只有大量的数字。

    如果您从真正随机的源中播种 PRNG,然后继续调用 PRNG 以获取更多数字,那么您将得到一个伪随机的 sequence 数字,尽管播种良好。 p>

    如果您使用真正随机源为 PRNG 播种,然后仅从 PRNG 中获取一个值,那么您将获得真正随机数的散列。如果 PRNG 的种子散列函数很好,这将与它的输入一样随机。如果不是,它可能更可预测(例如,一个只有 64 位内部状态的 PRNG 只会产生 2^64 个不同的值,不管你用多少位做种子)。

    这并不是说这是一个坏主意——游戏模拟和 Monte Carlo 系统应该使用来自 TRNG 源的快速 PRNG,以获得速度和质量的最佳折衷。但是加密应用程序需要加密安全的随机值,这比较棘手。

    【讨论】:

      【解决方案2】:

      没有

      好的种子是必要的,但它们不会改变 PRNG 的性质(和缺陷)。

      例如,即使具有良好的绝对真实随机种子 RNG(例如 LCG),仍然会在高维度上经历相关采样

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-02
        • 1970-01-01
        • 2023-03-15
        • 2014-05-18
        相关资源
        最近更新 更多