求具有相同Hash值的两个消息在计算上是不可行的。MD5的输出为128bit,若采用纯强力攻击寻找一个消息具有指定的Hash值的计算困难性为2,用每秒可试验1000000000个消息的计算机需要时间大约为1.07×10年。
相对于MD4算法,MD5算法增加了第四轮循环,每一轮中的每一步均有唯一的加法常数;增加了扩展变换,将前一轮的输出加到下一轮的,这样增加了雪崩效应;改变了第二轮和第三轮中访问消息子分组的次序,使其更不相似;近似优化了每一轮中的循环左移位移量以实现更快的雪崩效应,各轮的位移量互不相同;由于其160bit的输出,对穷举攻击更有抵抗力。
5.算法的应用
MD5算法可以对文件产生一个唯一的MD5报文摘要。MD5虽然比MD4稍微慢一些,但却更为安全,应用更为广泛。
①数字签名应用。MD5的典型应用是对一段信息产生信息摘要,以防止被篡改。在UNIX下有很多软件在下载的时候都有一个扩展名为.md5的文件,这个文件通常只有一行文本。MD5将整个文件当作一个大文本信息,通过不可逆的字符串变换算法,产生唯一的MD5信息摘要。若在以后传播此文件的过程中,无论文件的内容发生了任何形式的改变,只要对这个文件重新计算MD5,就会发现信息摘要不相同,由此可以确定得到的是一个不正确的文件。如果有第三方的认证机构,用MD5还可以防止文件作者的'抵赖',这就是所谓的数字签名应用。
②加/解密技术上。在UNIX系统中,用户密码就是以MD5(或其它类似算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成MD5值,然后去和保存在文件系统中的MD5值进行比较,从而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明文的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。这种加密技术被广泛的应用于UNIX系统中,这也是为什么UNIX系统比一般操作系统更为坚固一个重要原因。
6.结论
本文针对MD5加密算法进行了深入研究,分析了算法的安全性,通过程序开发对算法进行了实现,总结了MD5加密算法的应用。下一步将力争对MD5加密算法提出相应改进,进一步提高信息安全性和可靠性。
参考文献
1 Douglas R. Stinson.密码学原理与实践[M],北京:电子工业出版社, 2003
2 商品均 陈荣良; 加密算法与密钥管理 [N];计算机世界; 2000年
3 MD5加密算法在Web程序中的应用[J];科技咨询导报; 2006年08期
4 W.Diffie, M.Hellman, New Directions in Cryptography, IEEE Trans. On Info. Theory Vol.IT-22(6), p. 644-654, Nor. 1976 2/2 首页 上一页 1 2 |