Random Mersenne Twister是好的二进制RNG吗?

Random Mersenne Twister是好的二进制RNG吗?,random,mersenne-twister,Random,Mersenne Twister,我试图找到一个RNG来生成伪随机比特流。我发现Mersenne Twister(MT19937)是一种广泛使用的RNG,它可以生成良好的32位无符号整数,并且已经实现了生成明显良好的双精度浮点(生成53位整数)。但我似乎没有发现任何关于它表现良好的地方 表达了对Mersenne Twister随机性的一些担忧,这让我对使用它产生了怀疑 有人知道Mersenne Twister是否有用于生成伪随机比特的显著偏差吗?如果是这样的话,有人知道一个好的伪随机位生成器吗?所有伪随机位生成器都努力在每个位上

我试图找到一个RNG来生成伪随机比特流。我发现Mersenne Twister(MT19937)是一种广泛使用的RNG,它可以生成良好的32位无符号整数,并且已经实现了生成明显良好的双精度浮点(生成53位整数)。但我似乎没有发现任何关于它表现良好的地方

表达了对Mersenne Twister随机性的一些担忧,这让我对使用它产生了怀疑


有人知道Mersenne Twister是否有用于生成伪随机比特的显著偏差吗?如果是这样的话,有人知道一个好的伪随机位生成器吗?

所有伪随机位生成器都努力在每个位上生成高度不可预测性。在观察624个值之前,目前无法预测mersene捻线机的一个比特,其程度远远优于随机概率

所有形式为“X RNG好吗”的问题必须回答为:“你在用它做什么?”Merese Twister凭借其出色的频率分布在模拟中取得了巨大成功在加密情况下,它完全没有任何价值。可以通过查看任何624个连续输出来识别内部状态。Blum-Blum-Shub在加密情况下非常强大,但在模拟中运行速度慢得令人无法接受。

否。 任何人都不应该选择Mersenne绕圈器来生成随机性,除非它是内置的,如果你广泛使用随机性,你无论如何都应该替换它。Mersenne Twister无法通过简单得多、速度快得多的算法无法通过的基本统计随机性测试,通常只是有点令人失望

我现在推荐的不安全的非晶伪随机数生成器是和。xoroshiro+速度更快,据称质量稍高,但PCG系列提供了更完整的库,并填补了更多的角色


然而,现代密码的随机性可以得到足够快的速度。Rust的
rand
库默认使用ISAAC,并且存在其他选择除了最特殊的情况外,这应该是您的默认选择。

如果没有外部来源,例如种子设定或获取数字,这可能很好。计算起来也很快,一笔奖金。我工作过的公司一直都在使用它,所以你也得到了认可。你担心它的随机性到底有多大?IIRC,它不应该用于统计/高安全性的东西,但对于大多数用途来说,它足够快而且非常随机。(虽然,根据维基百科的文章…IIRC,显然有更快的算法。)它的初始值接近于0,但经过一系列迭代后,它是非常随机的。@muntoo MWC对位有偏见,所以我不能用它。@MitchWheat什么是蒙特卡洛的好RNG?我想修改我的评论:Mersenne twister不适合加密,但适合蒙特卡洛。