阅读:1200回复:0
PGP的安全问题分析<三>
PGP的安全问题分析<三>
2000-08-18? loking?105安全中心 -------------------------------------------------------------------------------- MD5 的安全性问题 MD5是一种在PGP中被用来单向变换用户口令和对信息签名的单向散列算法。 一种单向散列的强度体现在它能把任意的输入随机化到什么程度并且能产生唯一的输出。对单向散列的直接攻击可以分为普通直接攻击和“生日”攻击。 对MD5的普通直接攻击 所谓直接攻击又叫野蛮攻击。攻击者为了找到一份和原始明文 m 散列结果相同的明文 m\' ,就是 H(m)=H(m\') 。普通直接攻击,顾名思义就是穷举可能的明文去产生一个和 H(m) 相同的散列结果。对MD5来说散列结果为128-bits,就是说如果攻击者有一台每秒尝试1,000,000,000条明文的机器需要算约10^22年,同时兴许会同时发现m本身:))。 对MD5的生日攻击 生日攻击实际上只是为了找到两条能产生同样散列结果的明文。记得那个有名的 概率生日问题吗?在 N 个人中至少有两个人生日相同的概率是多少?所谓生日攻击 实际上只是用概率来指导散列冲突的发现,对于MD5来说如果尝试2^64条明文,那么它 们之间至少有一对发生冲突的概率就是 50%。仅此而已,对当今的科技能力来说,它 也是不可能的。一台上面谈到的机器平均需要运行585年才能找到一对,而且并不能马 上变成实际的攻击成果。因为码长和速度的关系,对crypt(3)的生日攻击就成功得多。 其他对MD5的攻击 微分攻击被证明对MD5的一次循环是有效的,但对全部4次循环无效。(微分攻击是通过比较分析有特定区别的明文在通过加密后的变化传播情况来攻击加密体系的。) 有一种成功的MD5攻击,不过它是对MD5代码本身做了手脚,是一种crack而不是hack更算不上cryptanalysis了。而且如果你做了PGP发行包的签名校验,是容易发现代码被替换过了的。 |
|
|