5报文摘要算法的研究与实现_信息加密-论文网

上传人:re****.1 文档编号:433172821 上传时间:2023-10-01 格式:DOCX 页数:4 大小:14.90KB
返回 下载 相关 举报
5报文摘要算法的研究与实现_信息加密-论文网_第1页
第1页 / 共4页
5报文摘要算法的研究与实现_信息加密-论文网_第2页
第2页 / 共4页
5报文摘要算法的研究与实现_信息加密-论文网_第3页
第3页 / 共4页
5报文摘要算法的研究与实现_信息加密-论文网_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《5报文摘要算法的研究与实现_信息加密-论文网》由会员分享,可在线阅读,更多相关《5报文摘要算法的研究与实现_信息加密-论文网(4页珍藏版)》请在金锄头文库上搜索。

1、5报文摘要算法的研究与实现_信息加密-论文网论文摘要:在信息加密中,采用报文摘要的方法不但可以节省加密时间,还可以节省报文传输和存储的开销。在目前提出多种报文摘要中,应用最广的就是MD5。本文针对MD5报文摘要算法进行了深入研究,分析了算法的安全性,通过程序开发对算法进行了实现,总结了MD5加密算法的应用。论文关键词:信息加密,报文摘要1.引言在信息加密中,采用报文摘要的方法不但可以节省加密时间,还可以节省报文传输和存储的开销。目前,提出的多种报文摘要中,应用最广的一种就是MD5加密算法。MD5算法的全称为Message-DigestAlgorithm5(信息-摘要算法),是90年代初由Ron

2、Rivest设计的一种单向哈希函数,经MD2、MD3和MD4发展而来。其作用是让大容量信息在用数字签名软件签署私人密匙之前被压缩成一种保密的格式,即把一个任意长度的字节串变换成一定长的大整数,输入是任意长度的信息,输出是128位消息摘要(Message-Digest),以一种充分复杂的方式将各比特打乱,每个输出比特都受每一个输入比特的影响。本文针对MD5报文摘要算法进行了深入研究,分析了算法的安全性,通过程序开发对算法进行了实现,并总结了MD5加密算法的应用。2.算法的描述对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的

3、处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值,见图1MD5加密算法原理。采用MD5报文摘要算法产生报文摘要的全过程包括以下五个步骤:填充,使报文长度为512的倍数减64。对明文输入按512bit分组,填充使其成为512bit的整数倍,且最后一组的后64bit先空出。附加长度,将填充前的报文长度写入最后的64比特,总长度N=L512。填充位数为1512bit,填充数字图样为(1000),得Y0,Y1,YL-1。初始化MD缓存,4个32bit的寄存器。每轮输出为128bit,可用下述四个32bit字:A,B,C,D表示,其初始存数以十六进制表示为:(A,

4、B,C,D),共128bits,其中:A=01234567;B=89ABCDEF;C=FEDCBA98;D=76543210处理每个报文分组:处理每个报文分组(512bits),算法的核心是4轮循环的压缩函数。其中,Y表示输入的第q组512bit数据,在各轮中参加运算。T1,2,64为64个元素表,分四组参与不同轮的计算。Ti是232*abs(sine(i)的整数部分,i是弧度。可用32bit二元数表示,T是32bit的随机数源。输出报文摘要。所有L个512bit的分组处理完之后,第L阶段的输出便是128bit的报文摘要。图1:MD5报文摘要算法原理在MD5算法中,首先,需要对信息进行填充,使

5、其字节长度对512求余的结果等于448。因此,信息的字节长度(BitsLength)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的方法为:在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充;然后,在在这个结果后面附加一个以64位二进制表示的填充前信息长度;经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。MD5主循环有四轮,是四轮运算,各轮逻辑函数不同。每轮又要进行16步迭代运算,四轮共需64步完成。每次操作对A、B

6、、C和D中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量。再将所得结果向右环移一个不定的数,并加上A、B、C或D中之一。最后,用该结果取代A、B、C或D中之一。以下是每次操作中用到的四个非线性函数(每轮一个),如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。F是一个逐位运算的函数。即如果X,那么Y,否则Z。函数H是逐位奇偶操作符。F(X,Y,Z)=(X&Y)|(X)&Z);G(X,Y,Z)=(X&Z)|(Y&(Z);H(X,Y,Z)=XYZ;I(X,Y,Z)=Y(X|(Z)(其中,&是与,|是或,是非,是异或)3.算法的实现根据MD5算法描述,本文通过程

7、序实现,程序中输入要处理的明文,最终输出只显示16进制的MD5值。要设计算法中应用到的子函数FF(),GG(),HH(),II()以及他们所要调用到的F(),G(),H(),I()函数;接下来是四轮循环,每轮16次。执行结果如下:将要处理的明文设定为:01234567程序执行结果为:feeaffffa24b0000fb7c000073f4ffff将要处理的明文设定为:abcdefg程序执行结果为:c1150000659affffbecbffff36430000将要处理的明文设定为:11111111程序执行结果为:152a0000a6deffff121000008a070000从以上程序的执行结果可以看出,MD5可以把一个任意长度的字节串变换成一定长的大整数,输入是任意长度的信息,输出是128位消息摘要。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号