核心属性

  1. 抗碰撞性 (Collision Resistance):找到 使得 是困难的。
  2. 抗第二原像 (Second Pre-image Resistance):给定 ,找到 使得 是困难的。
  3. 抗原像 (Pre-image Resistance/One-wayness):给定 ,找到 使得 是困难的。
  • 关系:抗碰撞 抗第二原像 抗原像。

攻击与结构

  • 生日攻击:对于输出长度为 的哈希,找到碰撞的复杂度是 ,而不是 。因此 至少要是 256 (如 SHA-256)。
  • Merkle-Damgård 结构:将压缩函数 (固定长度输入) 扩展为哈希函数 (任意长度输入)。MD5, SHA-1, SHA-2 都基于此。
    • 缺陷:易受长度扩展攻击 (Length Extension Attack)。如果 已知,敌手可以在不知道 的情况下计算
  • HMAC
    • 嵌套结构是为了抵御长度扩展攻击。