密钥哈希:构建安全消息认证码的多种方法
1. 密钥前缀构造的安全隐患
密钥前缀构造(secret - prefix construction)在哈希函数中存在一定的安全问题。
- 长度扩展攻击的威胁 :SHA - 2 系列的哈希函数容易受到长度扩展攻击。攻击者在已知较短消息的哈希值 Hash(K || M1) 时,无需知道 M1 和密钥 K ,就能计算出 Hash(K || M1 || M2) 。这使得攻击者可以免费伪造有效的 MAC 标签,因为他们原本不应仅根据 M1 的 MAC 猜出 M1 || M2 的 MAC。Merkle - Damgård 结构存在允许长度扩展攻击的弱点,而 SHA - 3 的候选者都具备抵御此类攻击的能力。
- 不同密钥长度的风险 :当允许使用不同长度的密钥时,密钥前缀构造也不安全。例如,不同长度的密钥 K 与消息 M 组合后,可能会得到相同的 K || M 值,从而导致哈希结果相同。虽然可以通过对密钥长度、密钥和消息一起哈希(如 Hash(L || K || M) ,其中 L 是密钥长度的 16 位整数编码)来解决,但现代哈希函数如 BLAKE2 和 SHA - 3 包含密钥模式,可避免这些问题,提供安全的 PRF 和 MAC。
密钥哈希构建安全消息认证码的方法
超级会员免费看
订阅专栏 解锁全文
943

被折叠的 条评论
为什么被折叠?



