MD 报文摘要算法.docVIP

  • 29
  • 0
  • 约1.65万字
  • 约 18页
  • 2019-03-27 发布于江苏
  • 举报
MD5 报文摘要算法 1 执行简介 本文描述了MD5报文摘要算法,此算法将对输入的任意长度的信息进行计算,产生一个128位 长度的“指纹”或“报文摘要”,假定两个不同的文件产生相同的报文摘要或由给定的报文摘要产生 原始信息在计算上是行不通的。MD5算法适合用在数据签名应用中,在此应用中,一个大的文件必 须在类似RSA算法的公用密钥系统中用私人密钥加密前被“压缩”在一种安全模式下。 MD5算法能在32位机器上能以很快的速度运行。另外,MD5算法不需要任何大型的置换列表。 此算法编码很简洁。MD5算法是MD4报文摘要算法的扩展。MD5算法稍慢于MD4算法,但是在设 计上比MD4算法更加“保守”。设计MD5是因为MD4算法被采用的速度太快,以至于还无法证明 它的正确性,因为MD4算法速度非常快,它处在遭受成功秘密攻击的“边缘”。MD5后退了一步, 它舍弃了一些速度以求更好的安全性。它集中了不同的评论家提出的建议,并采取了一些附加的优化 措施。它被放在公共的地方以求公众的评论意见,它可能当作一个标准被采纳。 作为基于OSI的应用,MD5的对象标识符是: md5OBJECTIDENTIFIER::= iso(1)member-body(2)US(840)rsadsi(113549)digestAlgorithm(2)5} 在X.509类型AlgorithmIdentifier[3]中,MD5算法参数应该包括NULL类型。 2 术语和符号 本文中一个“字”是32位,一个“字节”是8位。一系列位串可看成是一系列字节的普通形式, 其中的连续的8位看成一个字节,高位在前,同理一系列字节串可看成是一系列32位的字,其中每 个连续的4个字节当作一个字,地位在前。 我们定义x_i代表“x减去I.如果下划线左边的是一个表达式,则用括号括住,如: x_{i+1}。同样我们用^代表求幂,这样x^i则代表x的i次幂。 符号“+”代表字的加,Xs代表32位的值X循环左移s位,not(X)代表X的按位 补运算,XvY表示X和Y的按位或运算,XxorY代表X和Y的按位异或运算,XY代表 X和Y的按位与运算。 3 MD5算法描述 我们假设有一个b位长度的输入信号,希望产生它的报文摘要,此处b是一个非负整数,b也可 能是0,不一定必须是8的整数倍,它可能是任意大的长度。我们设想信号的比特流如下所示: m_0m_1...m_{b-1} 下面的5步计算信息的报文摘要。 (1)补位 MD5算法是对输入的数据进行补位,使得如果数据位长度LEN对512求余的结果是448。即数 据扩展至K*512+448位。即K*64+56个字节,K为整数。补位操作始终要执行,即使数据长度LEN 对512求余的结果已是448。 具体补位操作:补一个1,然后补0至满足上述要求。总共最少要补一位,最多补512位。 (2)补数据长度 用一个64位的数字表示数据的原始长度b,把b用两个32位数表示。那么只取B的低64位。 当遇到b大于2^64这种极少遇到的情况时,这时,数据就被填补成长度为512位的倍数。也就是说, 此时的数据长度是16个字(32位)的整数倍数。用M[0...N-1]表示此时的数据,其中的N是16 的倍数。 (3)初始化MD缓冲器 用一个四个字的缓冲器(A,B,C,D)来计算报文摘要,A,B,C,D分别是32位的寄存器,初 始化使用的是十六进制表示的数字 A=0B=0X89abcdef C=0Xfedcba98 D=0(4)处理位操作函数 首先定义4个辅助函数,每个函数的输入是三个32位的字,输出是一个32位的字。 X,Y,Z为32位整数。 F(X,Y,Z)=XYvnot(X)Z G(X,Y,Z)=XZvYnot(Z) H(X,Y,Z)=XxorYxorZ I(X,Y,Z)=Yxor(Xvnot(Z)) 这一步中使用一个64元素的常数组T[1...64],它由sine函数构成,T[i]表示数组中的第i个元 素,它的值等于经过4294967296次abs(sin(i))后的值的整数部分(其中i是弧度)。T[i]为32位 整数用16进制表示,数组元素在附录中给出。 具体过程如下: /*处理数据原文*/ Fori=0toN/16-1do /*每一次,把数据原文存放在16个元素的数组X中.*/ Forj=0to15do SetX[j]toM[i*16+j]. end/结束对J的循环 /*SaveAasAA,BasBB,CasCC,andDasDD.*/ AA=A BB=B CC=C DD=D /*第1轮*/ /*以[abcdksi]表示如下操作 a=b+((a+F(b,c,d)+X[k]+T[i])s).*/ /*Dothefollowing1

文档评论(0)

1亿VIP精品文档

相关文档