据我所知,实践中大多数伪随机数生成的实现都使用诸如线性移位反馈寄存器(LSFR)或这些“ Mersenne Twister”算法之类的方法。尽管它们通过了大量(启发式)统计检验,但是并没有理论上的保证,它们看起来对所有可有效计算的统计检验都是伪随机的。然而,从加密协议到科学计算再到银行业务,这些方法在各种应用中都被不加选择地使用。我感到有些令人担忧的是,我们几乎无法保证这些应用程序是否按预期工作(因为任何类型的分析都可能假定输入是真正的随机性)。
另一方面,复杂性理论和密码学提供了非常丰富的伪随机性理论,我们甚至拥有伪随机数生成器的候选构造,该构造会欺骗使用候选单向函数的任何有效统计测试。
我的问题是:这种理论是否已付诸实践?我希望对于密码学或科学计算等随机性的重要用途,使用理论上合理的PRG。
顺便说一句,对于使用LSFR作为随机性来源时,快速排序等流行算法的工作情况,我可以找到一些有限的分析,显然它们可以很好地工作。参见Karloff和Raghavan的“随机化算法和伪随机数”。