首页/安全/加密与证书速查/生日界与摘要长度选择
加密算法基础95 条

生日界与摘要长度选择

n 位摘要的碰撞搜索工作量约为 2^(n/2):128 位摘要约 2^64 次即可找到碰撞,这就是新系统摘要长度普遍选择 256 位的原因。

加密与证书速查安全更新于 2026-10-13

生日界是什么

生日界描述的是「巧合碰撞」的概率规律:在 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^80SHA-1 已被实践攻破
256 位约 2^128当前通用选择
512 位约 2^256余量充足,注意性能与带宽成本
生日界解释的是「为什么短摘要不安全」,并不直接回答「什么时候够用」:还要结合数据规模、碰撞代价与攻击者算力估算。对抗性场景应留足余量,非对抗场景(如本地缓存键)可以适度放宽。

易错点

  • 把 128 位摘要当成 128 位安全等级使用 → 抗碰撞实际只有 64 位,高价值场景存在现实风险
  • 超大规模指纹库(内容寻址、全网去重)沿用短摘要 → 数据量接近 2^64 时碰撞概率显著上升
  • 为追求「更长更安全」盲目加长摘要却不调整协议 → 带宽与兼容成本上升,安全收益有限
  • 不同类型的摘要共用同一命名空间又不加域分隔 → 跨类型碰撞与业务混淆

数据来源与参考

  • NIST SP 800-107 Rev.1(碰撞概率讨论)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌