在最近一篇关于潜在受损随机数生成器的文章中,我了解到它/dev/random
结合了多种随机性来源:
“Torvalds 在他温和的爆发中辩称,来自 RdRand 的值与其他随机性来源相结合,这将阻止任何试图游戏处理器输出的尝试——但它声称混合是微不足道的(仅涉及异或)并且可以通过g人。” - Torvalds 拒绝在 Linux 加密中删除“后门”英特尔 RdRand 的电话
这句话表明异或这些来源对于加密目的来说太简单了。因此,我的问题是建议使用什么方法来组合多个随机源?
在最近一篇关于潜在受损随机数生成器的文章中,我了解到它/dev/random
结合了多种随机性来源:
“Torvalds 在他温和的爆发中辩称,来自 RdRand 的值与其他随机性来源相结合,这将阻止任何试图游戏处理器输出的尝试——但它声称混合是微不足道的(仅涉及异或)并且可以通过g人。” - Torvalds 拒绝在 Linux 加密中删除“后门”英特尔 RdRand 的电话
这句话表明异或这些来源对于加密目的来说太简单了。因此,我的问题是建议使用什么方法来组合多个随机源?
Fortuna是一个 CSPRNG,旨在与多个输入池一起工作。它从各种输入中采样,在内部混合它们,然后产生一个输出流。这是组合多个熵源的好方法。
关于时事话题,Linux 的方法不一定是错误的。对两个 PRNG 流进行异或运算并不是一个糟糕的技术。关于为什么现有方法不安全,没有任何好的论据,只是胡乱猜测。