这是来自 reddit 讨论的引述:
……对于扑克 [一个加密安全的 RNG] 是完全没有必要的。如果你有一个适当的不可预测的种子,并且你丢弃了很多随机性,那么 MT 是完全安全的。
我通常会将此视为无知,但这种情况仍在继续:
我实际上已经实现了一个真钱扑克后端,公司甚至还对其进行了认证
而且由于没有人在互联网上撒谎,这让我想知道。所述人在讨论的另一部分对此进行了扩展:
[为了防止可预测性],您不会使用 [MT 生成器] 生成的 624 个连续值。如果你想要一个真钱应用程序。通过认证,标准之一是丢弃大量且不可预测的 PRNG 输出。
您也不知道如何使用 PRNG 来产生 shuffle 的细节。因此,您无法将您在桌子上看到的牌映射到 PRNG 中的序列。
您也不知道何时重新播种 PRNG。
最后一件事。您需要存储 (2 19937 − 1) * 4 字节的数据进行查找,以便找到您需要预测的模式。
除了最后一段,这些论点听起来很可疑,就像默默无闻的安全。最后一段听起来不那么重要,但讨论中的其他人声称该陈述是不真实的,您不需要这么大的查找表。
澄清一下,我知道 MT19937 在密码学上并不安全(我引用的人也是如此)。然而,到目前为止,我的假设是赌博(和扑克)需要一个加密安全的随机源——而不仅仅是一个安全的种子——(a)防篡改,(b)用于认证。这是错的吗?