一种优化的MD5算法与硬件实现

一种优化的MD5算法与硬件实现摘要:MD5算法是应用非常广泛的一种Hash算法,在数字签名和验签中占有重要地位,算法的效率会直接影响到签名和验签的速度.本文提出一种优化的MD5算法,采用三级加法器替代四级加法器、优化循环移位操作的方式缩短MD5算法单步运算的关键路径,并用VERILOGHDL语言进行硬件实现.通过仿真和FPGA验证,结果表明该设计功能正确,硬件资源消耗少,数据吞吐量大.该设计应用于一款密码安全芯片,采用0.18μm工艺进行MPW流片,芯片面积为6mm2.时钟频率为150MHz,电压3.3V时,功耗约为10.7mW.关键词:MD5算法;hash算法;签名和验签;散列函数中图分类号:TN335文献标志码:A互联网技术的高速发展给人们带来了许多便利的同时,也带来了诸多的问题.人们的生产和社会活动与网络密切相关,随时随地都在利用网络进行数据交互.提供一个高效性、隐私性和完整性的信息生存环境是时代的需求,是迫切需要解决的问题.在信息安全的研究领域中,密码学以及相关技术发挥着越来越关键的作用.加密哈希函数在密码学中扮演着至关重要的角色.它广泛应用于电子商务、信息安全和电子政务等安全性要求比较高的领域中[1],同时也是实现数字签名、消息的完备性和消息可认证性的重要工具.MD5算法是MD结构的典型代表,是密码学中应用广泛的一种哈希函数[2].由RonaldRivest在1991年提出[3].MD5算法可以将任意长度的数据输入压缩成128bit的输出,具有不可逆性、数据完整性、不可抵赖性等特点[4],可以防止数据被篡改和数据丢失.MD5算法可通过软件和硬件的方式实现.软件实现的算法极其依赖计算机硬件平台,算法运算时间长,效率低,不能满足物联网高速发展的需求.传统的MD5算法一般采用软件或计算机硬件平台的方式实现,算法效率难以满足物联网高速发展的需求.本文提出一种优化的MD5算法,在循环迭代模式上利用三级加法器替代四级加法器、优化循环移位操作方式缩短关键路径,在流水线模式下采用32级流水线设计去搭建算法实现架构.最后通过VERILOGHDL语言进行硬件实现.1算法介绍MD5算法以任意位的消息作为输入,将消息经过系列处理后以512位分组形式来处理输入消息,且每一分组会被分割成16个32位子分组,经过一系列的计算处理得到新的四个32位分组,将这四个32位分组级联后生成一个128位散列值就是所求的MD5算法加密的摘要值[5].1.1消息扩展首先对输入消息进行填充,使其消息长度对512求余数的值为448.故消息长度扩展至N*512+448bits(N为正整数)[6-7].填充的方法如下:在消息后面填充一个1和无数个0,直至满足对512求余得448才停止对信息进行填充.然后再在其后加上一个以64位二进制表示的填充前的消息长度.经过这两步的处理,填充后的消息长度为N*512+448+64=(N+1)*512bits,长度恰好是512的整数倍,以便后续分组[8-9].1.2消息分组将每512-bit的消息划分成16组,每组32-bit,同时给出MD5中四个32位作为链接变量(ChainingVariable)的整数参数,分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210[10].本文中填充好的消息数据以及链接变量均采用小端字节序的方式进行计算处理.1.3循环运算首先定义好每轮运算的逻辑函数,即:FF(a,b,c,d,Mj,s,t)i为a=b+((a+F(b,c,d)+Mj+t)is)(1)GG(a,b,c,d,Mj,s,ti)为a=b+((a+G(b,c,d)+Mj+t)is)(2)HH(a,b,c,d,Mj,s,t)i为a=b+((a+H(b,c,d)+Mj+t)is)(3)H(a,b,c,d,Mj,s,t)i为a=b+((a+(Ib,c,d)+Mj+t)is)(4)其中包含了四个非线性基本函数为:F(x,y,z)=(xy)(|~xz)(5)G(x,y,z)=(xy)(|~xz)(6)H(x,y,z)=(x^y^z)(7)(Ix,y,z)=y(^x|~z)(8)ti表示4294967296*abs(sin(i))的整数部分[11-12];Mj表示512-bit的消息的第j个子分组;s表示循环左移s位.当MD5算法进行运算时,先将链接变量A,B,C,D寄存到a,b,c,d中,再进入四轮循环,每轮操作非常相似.其中每操作就是计算对应轮的逻辑函数的值且每轮的循环次数为16次.1.4摘要输出四轮计算完后,将A,B,C,D加上对应的a,b,c,d得到新的A,B,C,D.如果还有512-bit分组,则可作为下一分组数...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?