假设我们正在生成非常大的数字(例如128位或256位)作为块密码的密钥。
进一步假设我们戴着锡纸帽子(至少在外面的时候)。
由于如此偏执,我们想要确保我们有足够的熵,但我们并不完全信任任何特定的来源。也许政府正在操纵我们的硬币。也许这些骰子微微有些重量不均。如果输入到/dev/random的硬件中断有点太一致会怎么样?(除了偏执之外,我们还很懒,不想全部手动生成...)
那么,让我们把它们混合在一起。
哪些安全方法可以做到这一点?假设仅仅连接每个来源的几个字节并不完全安全-如果其中一个来源存在偏差,它可能在理论上容易受到相关密钥攻击等问题。
运行SHA-256是否足够?
(是的,很快我会拿起《加密工程》的副本。 :))
进一步假设我们戴着锡纸帽子(至少在外面的时候)。
由于如此偏执,我们想要确保我们有足够的熵,但我们并不完全信任任何特定的来源。也许政府正在操纵我们的硬币。也许这些骰子微微有些重量不均。如果输入到/dev/random的硬件中断有点太一致会怎么样?(除了偏执之外,我们还很懒,不想全部手动生成...)
那么,让我们把它们混合在一起。
哪些安全方法可以做到这一点?假设仅仅连接每个来源的几个字节并不完全安全-如果其中一个来源存在偏差,它可能在理论上容易受到相关密钥攻击等问题。
运行SHA-256是否足够?
(是的,很快我会拿起《加密工程》的副本。 :))
std::seed_seq
提供给您喜爱的随机数生成器。 - undefined