加载中...
生日攻击是一种利用生日悖论对哈希函数发起碰撞的密码学攻击方法。攻击者寻找两个产生相同哈希值的不同输入,其所需尝试次数远低于直觉,约为输出空间平方根量级。

| 中文名 | 生日攻击 |
| 外文名 | Birthday Attack |
| 理论依据 | 生日悖论 |
| 攻击目标 | 哈希函数碰撞 |
| 复杂度 | 约2的n/2次方 |
| 防御措施 | 使用长输出抗碰撞哈希 |
生日攻击(Birthday Attack)是一类针对密码学哈希函数的碰撞攻击,其名称与理论依据来自概率论中的生日悖论。它揭示了找到哈希碰撞所需的工作量,远比穷举整个输出空间要小得多。
生日悖论指出,在一个仅23人的房间里,存在两人生日相同的概率就超过50%,这一结果常令人意外。类比到哈希函数,若输出为n位,攻击者平均只需尝试约2的n/2次方个输入,就有较大概率找到两个哈希值相同的不同输入,而非需要2的n次方次。
这也是为什么密码学哈希函数需要足够长的输出:例如128位摘要面对生日攻击仅有约64位安全强度,在现代算力下已不够安全,故推荐使用SHA-256等更长输出的算法。
生日攻击的思想被用于评估数字签名、消息认证码和证书系统的安全边界。历史上,针对MD5和SHA-1的实际碰撞攻击就利用了这一原理,导致伪造证书等安全事件,促使业界淘汰这些弱哈希算法。
问:生日攻击是否意味着哈希函数不安全?答:不是。只要哈希输出足够长(如256位),生日攻击所需的计算量仍高得不可行。它只是提醒设计者输出位数要留出安全余量。
问:如何防御生日攻击?答:选用输出更长、抗碰撞性经过验证的现代哈希算法,避免使用MD5、SHA-1等已被攻破的旧算法即可有效防御。

| 中文名 | 生日攻击 |
| 外文名 | Birthday Attack |
| 理论依据 | 生日悖论 |
| 攻击目标 | 哈希函数碰撞 |
| 复杂度 | 约2的n/2次方 |
| 防御措施 | 使用长输出抗碰撞哈希 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧