阻止分段攻击的依据是:
在两段之间,前段的散列数就是后段的初值很难做到。
CRC是流运算,开始有初值的条件,结束有散列的约束。
可以任意攻击一段,成功地得到初值和散列数。
但是本段的初值很难吻合上段的散列数。
可以利用CRC性质强行吻合,即改变本段的原文。
但是我们不知道上段的散列数。
故必须先计算最早的段,即必须知道首段的初值才能得到首段的散列数,才能将其作为下段的初值。
故可以论证,保护初值就可以阻止分段的攻击。
所以像网站登录可以用用户密码来作为初值。
最简单的可以将用户密码先计算散列出初值。
这样就逼迫碰撞要知道密码(才能知道初值)才可以。
由于HotWC3采用的是真正的CRC单向散列,故分段攻击无实际意义,因为只有穷举一条路。
而且查表也几乎不可能,因为碰撞过多,一个散列数对应多值。
菜农HotPower@126.com 2011.12.27 15.50 于雁塔菜地 |