让我们假设我们正在生成非常大的(例如 128 或 256 位)数字作为分组密码的密钥。
让我们进一步假设我们戴着锡纸帽子(至少在外面时)。
如此偏执,我们想确定我们可用的熵,但我们并不完全相信任何特定的来源。也许政府正在操纵我们的硬币。也许这些骰子的权重如此微妙。如果输入的硬件中断/dev/random
有点过于一致怎么办?(除了偏执之外,我们很懒惰,不想手动生成它......)
所以,让我们把它们混合起来。
执行此操作的安全方法是什么?大概只是连接来自每个源的几个字节并不完全安全——如果其中一个源有偏差,理论上它可能会导致诸如相关密钥攻击之类的事情。
在连接的字节上运行 SHA-256 是否足够?
(是的,很快我会拿到一份 Cryptography Engineering 的副本。:))