原像攻击(Preimage attack)是密码学中的一种破译手段,用于密碼雜湊函數上寻找含有特定哈希值的訊息。一个密碼雜湊函數应抵御对其原像的攻击。
在攻击情形下存在两种原像抗性:
- 原像抗性:对于所有预设输出,从计算角度应无法找到符合输入哈希的输出。例如,给定y,使得很难找到满足的x。
- 次原像抗性:从计算角度无法找到任何与特定输入值有着相同输出的二次输入值。例如,给定x,使得很难找到满足的次原像。即碰撞攻击。
通过对特定杂凑函数的密码分析可找到对其更快的原像攻击方法。学者找到了部分重大的原像攻击方式,但它们需要花费巨量时间与算力,即这些方式并不实际。若找到了实际的原像攻击手段,它将极大地影响诸多互联网协议。
所有对MD5与SHA-1已知的实际或近乎实际的攻击均为碰撞攻击,由于碰撞攻击相比原像攻击更易进行。碰撞攻击不被任何设定的值(任意两个值均可用于碰撞)所限制。而碰撞攻击的时间复杂度为2n/2。
常用解决方案
为提高对原像攻击的抗性,双散列是一种抵御某种情况攻击者破解了首个哈希的好策略。比特币系统使用双重散列SHA256,一种2000年代减缓哈希破解的常见手段。
另请参阅
- 生日攻击
- 密碼雜湊函數
- 彩虹表
- 隨機預言機
参考文献
- IETF RFC 4270: 网络协议中对加密哈希的攻击
评论 (0)