您的位置: turnitin查重官网> 工程 >> 电气工程 >> 电气工程及自动化 >MD5加密算法改进与应用

MD5加密算法改进与应用

收藏本文 2024-03-15 点赞:7531 浏览:30759 作者:网友投稿原创标记本站原创

摘要:本文介绍了MD5加密算法的基本原理,并且在此基础对该算法进行了改进。最后将MD5加密算法应用于数据库存储等重要信息的加密处理。
关键词:MD5C#随机数 按位与运算
1007-9416(2012)08-0099-01
1、概述
MD5是Message-Diggest Algorithm 5(信息-摘要算法)的英文缩写,该算法的输入文本处理是通过将MD5分为512位分组,且16个32位的子分组组成了每个分组。4个32位的数分组组成了该算法的输出部

中国免费论文网www.udooo.com

分,然后把这4组32位的数级联成为1个128位的hash散列值。
第一步,用一个小于512位的倍数64位的数来补充消息长度。把1加在改消息的后面,其后面在加上所需个数的0,再把补充位数前的长度为64位的消息加到其后面。上面的步骤可以使得512位的整数倍正好是该消息的长度,而且又可以满足不同消息补位后的结果是不同的。
四个32位变量初始化为:
A=0M01234567
B=0M89abcdef
C=0Mfedcba98
D=0M76543210
第二步,在算法主循环运行时,消息的512位分组个数作为主循环循环次数。将上面四个变量复制到另外的变量中:A到a,B到b,C到c,D到d。第一轮进行16次操作。每次操作对a,b,c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a,b,c或d中之一。最后用该结果取代a,b,c或d中之一。
以一下是每次操作中用到的四个非线性函数(每轮一个)。
F(M,N,P)=( M &N)|((~ M)&P)
G(M,N,P)=(M&P)|(N&(~P))
H(M,N,P)=M^N^P
I(M,N,P)=N^(M|(~P))
(&是与,|是或,~是非,^是异或)
函数F是按逐位方式操作:如果M,那么N,否则P。函数H是逐位奇偶操作符。设Mj表示消息的第j个子分组(从0到15),<<FF(a,b,c,d,Mj,s,ti)表示a=b+((a+(F(b,c,d)+Mj+ti)<<GG(a,b,c,d,Mj,s,ti)表示a=b+((a+(G(b,c,d)+Mj+ti)<<HH(a,b,c,d,Mj,s,ti)表示a=b+((a+(H(b,c,d)+Mj+ti)<<II(a,b,c,d,Mj,s,ti)表示a=b+((a+(I(b,c,d)+Mj+ti)<<在第i步中,ti是4294967296*abs(sin(i))的整数部分,i的单位是弧度。(2的32次方)
所有这些完成之后,将A,B,C,D分别加上a,b,c,d。最后的输出是A,B,C和D的级联。

2、原始MD5加密算法的不足

目前对于信息系统或者网站系统来说,传统MD5算法的应用主要是在对于用户登录注册时的口令进行加密处理。一般情况下,在用户的加密强度不足或者是强度一般时,还是有多种方法对其加密后的进行的。
一般地,归纳有下面几种方法:使用MD5软件设置字典来进行;一些在线的MD5值查询网站提供MD5值的查询很快获取其值;通过社会工程学来获取或者重新设置用户的口令。
以上几点我们不难看出,随着技术的不断更新,对于加密强度不够的MD5加密很难使加密后的免于受到攻击。
基于上述的问题,为了确保系统的安全性,我们需要改进MD5加密算法,从而提升系统的安全性,本文在MD5算法基础上提出了对其改进的方法。

3、MD5的改进

系统自动产生随机的字符串R,在进行添加用户时,当用户输入时,对和随机数分别进行MD5加密运算,然后将所得的两个密文进行按位与运算MD5(MD5(pwd)&MD5(R)),将所得字符串仍然为32位,将其存入数据库中对应用户的密文字段。当下次用户登录时,系统将用户和系统的随机数R分别进行MD5运算。将得到的密文进行MD5(MD5(pwd’)&MD5(R))的运算,并将结果与数据库中对应用户的密文MD5(MD5(pwd)&MD5(R))进行对比,若相同则输入正确。

4、改进MD5的应用

将改进后的MD5加密算法应用到对用户登录的加密,对明文加密后将密文存入到数据库的对应该用户的存储字段,当改用户在次登录后将输入的用户进行加密,将得到的密文与数据库中该影虎的密文进行对比,如果相同则此用户的正确。
5、结语
由于目前的MD5加密的网站是对大量明文进行加密,记录明文对应的加密密文,然后用户将密文输入进行铭文的查询,所以MD5的是可以实现的。但本文中在用户中加入了系统产生的随机字符串,即使者得到数据库中用户的密文,并对之得到明文,但由于不知道加入的随机数,所以得到的并不正确。还有,04年王小云教授提出了MD5算法的碰撞性,即有可能存在多个明文对应相同的密文,入侵者可以利用这点达到登录的目的,但本文中由于加入了随机字符串,即使得到了与数据库中密文相同的明文,入侵者此时得到的明文并不是登陆用的用户,登陆不会成功。所以,本文提出的改进的MD5加密算法提高了原算法的安全性和抗碰撞性。
参考文献
Wang MiaoNun,Feng Dengguo,Lai Muejia,et al.Collisions for hash fuctions MD4,MD5,HAL-128 and RIPEMD[C].CrNptologN ePrint Archive:Report 2004/1999,Aug.2004.
曹珍富,薛庆水.学的发展方向与最新进展[J].计算机教育,2006,22(15):43-45.
[3]徐茂智,游林.信息安全与学[M].北京:清华大学出版社,2007:121-127.

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号