考虑一个例子,在伪随机函数中,我们有一个主密钥MS来生成一组伪随机值。然后利用密钥推导函数从每个伪随机值导出密钥.假设所有密钥都足够长(在安全上下文中)。
问题:在上面的场景中,我可以使用从伪随机值(或派生密钥)派生的密钥作为伪随机函数的加密密钥或密钥吗?
换句话说,是否存在不应将派生密钥视为实际随机密钥的情况?
发布于 2015-11-24 16:06:53
是的,这正是KDF和PRF设计的目的。也就是说,任何合理有效的攻击者都无法判断您是否使用了实际的随机密钥或从KDF/PRF生成的东西。当然,这是假设您的初始种子/主秘密具有足够的熵,并且您获得各种值的方式不是以一种愚蠢的方式完成的。
使用KDF从初始主秘密派生多个密钥的做法非常普遍,您将发现它几乎用于任何标准的安全协议中,如TLS、IPsec或SSH。
换句话说,是否存在不应将派生密钥视为实际随机密钥的情况?
在上面,我只从实践的角度来考虑安全问题,也就是说,我们假设对手不能在任意长的时间内运行。然而,在我们允许对手任意长时间运行的理论模型中,有许多例子表明,使用完全随机字符串以外的任何东西都会破坏您的安全性。当然,最常见的例子是一次性垫。
https://crypto.stackexchange.com/questions/30776
复制相似问题