生日界是什么
生日界描述的是「巧合碰撞」的概率规律:在 2^n 个可能取值中随机抽取,大约抽到 2^(n/2) 次就可能出现两次相同结果。因此 n 位摘要的抗碰撞强度只有 n/2 位,而抗前像强度接近 n 位。这解释了为什么 128 位摘要(碰撞工作量约 2^64)不再适合新系统,而 256 位摘要(约 2^128)成为当前通用选择:安全等级的判断口径是抗碰撞强度,不是摘要位数本身。
基本信息
| 碰撞工作量 | 约 2^(n/2) 次哈希运算(n 为摘要位数) |
|---|---|
| 128 位摘要 | 约 2^64,存量系统使用需谨慎 |
| 160 位摘要 | 约 2^80,SHA-1 已被实践攻破 |
| 256 位摘要 | 约 2^128,当前签名与证书的通用选择 |
| 前像强度 | 约 2^n,与抗碰撞强度不是同一量级 |
典型使用场景
- 选择签名与证书使用的摘要算法:未明确指定时按 ≥256 位执行
- 评估内容寻址、去重指纹是否够用:数据量越大碰撞概率越高
- 评审口令存储方案时纠正「摘要越长越安全」的误解,聚焦迭代成本
- 设计协议时判断是否需要给摘要加域分隔或随机盐,避免跨类型混淆
- 审计存量系统时按生日界说明升级摘要长度的必要性
长度选择速记
长度选择速记
签名 / 证书:摘要 ≥ 256 位 # 抗碰撞约 128 位
消息 ID / 去重指纹:可截断到 128 位 # 抗碰撞约 64 位,需评估数据规模
口令存储:关注迭代成本(Argon2 / PBKDF2 参数)而非摘要长度
# 估算口径:按最坏情况的攻击者算力,而不是按当前硬件能力生日界估算
| 摘要长度 | 碰撞工作量级 | 适用判断 |
|---|---|---|
| 64 位 | 约 2^32 | 仅非对抗场景 |
| 128 位 | 约 2^64 | 存量系统,谨慎使用 |
| 160 位 | 约 2^80 | SHA-1 已被实践攻破 |
| 256 位 | 约 2^128 | 当前通用选择 |
| 512 位 | 约 2^256 | 余量充足,注意性能与带宽成本 |
生日界解释的是「为什么短摘要不安全」,并不直接回答「什么时候够用」:还要结合数据规模、碰撞代价与攻击者算力估算。对抗性场景应留足余量,非对抗场景(如本地缓存键)可以适度放宽。