0

以这种方式构建 PRNG 不是很容易吗?为什么没有完成?

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

我的第一个想法是,也许我们没有找到可计算的正常数,但我们找到了. 剩下的想法是,有一个很好的理由不这样做——要么是我不熟悉的 PRNG 的某些属性,而这种方法不具备,要么在某种程度上不切实际,要么被其他方法超越。

4

1 回答 1

3

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

例如,假设您生成整数 0x54a30b7f。如果您有 4GiB 的 pi(或随机噪声或实际的正常数),那么该特定整数可能只会出现一次(或少数),我可以以相当高的概率预测所有未来的数字。在密码学强 PRNG 的情况下,这是一个严重的问题。如果你使用一些函数而不是简单的顺序扫描,我只需要遵循这个函数,如果它很难遵循它本身就会变成一个 PRNG。

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

于 2009-03-06T01:57:28.567 回答