以这种方式构建PRNG难道不容易吗?为什么不这样做?

也就是说,就我所知,我们可以简单地拥有一个接种种子的PRNG。当你要求一个随机位时,它取可计算正常数的二进制扩展的第n位,并递增n。

我的第一个想法是,也许我们没有找到可计算的正常数字,但我们。剩下的想法是,有充分的理由不这样做 - 或者我不熟悉PRNG的一些属性,这种方法不会有,或者它在某种程度上是不切实际的,或者被其他方法超越。

有帮助吗?

解决方案

这会使预测输出变得非常简单。

例如,假设您生成整数0x54a30b7f。如果您有4GiB的pi(或随机噪声或实际正常数字),则可能只会出现该特定整数的一个(或可能是少数),并且我可以合理地预测所有未来数字。在加密强PRNG的情况下,这是一个严重的问题。如果不使用简单的顺序扫描而是使用某些功能,我只需要遵循这个功能,如果它很难跟随它就会变成一个PRNG就可以了。

如果您不关心生成器的加密强度,那么有更紧凑的方法来生成随机数。例如, Mersenne Twister 的周期要长得多,不需要4GiB查找表。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top