Collision Resistance
抗碰撞是哈希函数的性质:难以找到两个不同输入产生相同哈希输出。由生日攻击决定所需输出长度。
用途
确保哈希值唯一标识输入,是数字签名与完整性校验的安全基础。
机制
对 n 位哈希,生日攻击需约 2^(n/2) 次计算找到碰撞。因此 128 位哈希仅需 2^64 次即可碰撞(不安全),256 位需 2^128(安全)。MD5 与 SHA-1 因碰撞攻击被弃用。
用例
- 数字签名安全基础
- 内容寻址存储(Git、IPFS)
- 证书指纹唯一性
- 区块链工作量证明
示例
- 输入
SHA-256 (256-bit)输出2^128 trials needed to find a collisionSecure
常见错误
- Using a 128-bit hash (collision needs only 2^64)
- Use at least 256-bit output