我正试图以一种完美的方式洗牌一个标准的52牌牌(每个结果都有可能在一个平等的机会)。在这一点上,我不关心对它的密码分析攻击。
我遇到了一些可能在密码理论中得到解答的问题:
发布于 2019-12-30 18:15:44
与以前的答案不同,我会采取不同的态度。假设我们真的只有128位熵,这能阻止我们在洗牌时应用确定性算法吗?
从纯粹的计数角度看,128位输入的确定性函数不可能有52位!不同的可能产出。
但是,如果我们使用加密安全的PRNG种子128位熵源,我们可以很容易地洗牌一副牌,使它是无法区分的真正的随机洗牌。即使我以这种方式洗牌10亿个甲板,你在你的电脑上处理了很多年的数据,你仍然无法分辨这种有限的种子洗牌和真正的随机洗牌的区别。
所以我问一个真正的均匀随机洗牌的优点是什么?
发布于 2021-07-08 18:17:36
状态不足的PRNG也可以实现完全的洗牌。
这样做的方法是做多轮洗牌。每轮重新播种种子。最重要的是熵必须是足够的。
一个实现完全改组https://github.com/fsssosei/complete_随机播放的Python库
https://crypto.stackexchange.com/questions/76723
复制相似问题