算法描述 ③初始化MD缓冲区:算法使用128比特长的缓冲区存储中间结 果和最终杂凑值。 缓冲区表示为4个32比特长的寄存器(A,B,C,D),每个寄 存器都以little endian方式存储数据 ■其初值取为(以存储方式) ■A=01234567,B=89 ABCDEF,C=FEDCBA98,D=76543210 ■实际上为 ■A=67452301,B=EFCDAB89,C=98 BADCFE,D=10325476
③初始化MD缓冲区:算法使用128比特长的缓冲区存储中间结 果和最终杂凑值。 缓冲区表示为4个32比特长的寄存器(A,B,C,D),每个寄 存器都以little endian方式存储数据 其初值取为(以存储方式) A=01234567,B=89ABCDEF, C=FEDCBA98,D=76543210 实际上为 A=67452301,B=EFCDAB89,C=98BADCFE,D=10325476 算法描述
算法描述 ④以512比特的分组为单位处理消息:每一分组m,(q=0,,L-1)都 经一压缩函数HDs处理。HDs是算法的核心,其中又有4轮处 理过程,如下页所示。 ⑤ 输出:消息的L个分组都被处理完后,最后一个HDs的输出 即为产生的消息摘要
④以512比特的分组为单位处理消息:每一分组mq (q=0,…,L-1)都 经一压缩函数HMD5处理。HMD5是算法的核心,其中又有4轮处 理过程,如下页所示。 ⑤ 输出:消息的L个分组都被处理完后,最后一个HMD5的输出 即为产生的消息摘要。 算法描述
算法描述 ●MD5的处理过程第④步 h28 512 CVD=IV B c D 169 CV-SUM(CVf(mf(mfG(mgfr(m CV)) B c MD-CVL G,117.32p2(] 16步 I:缓冲区ABCD的初值 A B c D m,:消息的第q个512比特长的分组 H,1133.48L[p( 16步 L:消息分组个数 B c D IT981 C',:第q个分组时输入的链接变量 f:使用基本逻辑函数x的轮函数 SUM32:对应字的模232加法 中单单明 MD:最终的值 128 CVm
•CV0 =IV •CVq+1=SUM32 (CVq , fI (mq , fH (mq , fG (mq , fF (mq , CVq ))))) •MD=CVL •IV: 缓冲区ABCD的初值 •mq : 消息的第q个512比特长的分组 •L: 消息分组个数 •CVq : 第q个分组时输入的链接变量 •fx : 使用基本逻辑函数x的轮函数 •SUM32: 对应字的模2 32加法 •MD: 最终的值 MD5的处理过程第④步 算法描述
算法描述 。T小:表T中的第i个字 TT1]=D76AA478 TT17]=F61E2562 T33]=FFFA3942 T49]=F4292244 T[2]=E8C7B756 T[18]=C040B340 T34]=8771F681 T[50]=432AFF97 T3]=242070DB TT19]=265E5A51 TT35]=699D6122 T51]=AB9423A7 7T4]=C1BDCEEE TT201-E9B6C7AA T36]=FDE5380C T52]=FC93A039 115]=F57COFAF TT21]=D62F105D 7T371=A4BEEA44 T53]=655B59C3 T6]=4787C62A T[22]=02441453 7T381=4BDECFA9 T54]=8F0CCC92 T[7]=A8304613 T[23]=D8A1E681 7T391=F6BB4B60 71551-FFEFF47D T8]=FD469501 TT241=E7D3FBC8 7J40]=BEBFBC70 T56]=85845DD1 T9]=698098D8 7T251=21E1CDE6 T41]=289B7EC6 T57]=6FA87E4F T10]=8B44F7AF T[26]=C33707D6 7421=EAA127FA 71581=FE2CE6E0 7T11]=FFFF5BB1 TT27]=F4D50D87 T43]=D4EF3085 T59]=A3014314 T12]=895CD7BE T[28]=455A14ED TT44]=04881D05 T60]=4E0811A1 T13]=6B901122 TT29]=A9E3E905 TT45]=D9D4D039 1T61]=F7537E82 T14]=FD987193 71301-FCEFA3F8 T46]=E6DB99E5 T62]=BD3AF235 T15]=A679438E T[31]=676F02D9 T47]=1FA27CF8 7163]-2AD7D2BB IT16]=49B40821 T32]=8D2A4C8A T48]=C4AC5665 T64]=EB86D391
T[i]: 表T中的第i个字 算法描述 T[1]=D76AA478 T[2]=E8C7B756 T[3]=242070DB T[4]=C1BDCEEE T[5]=F57COFAF T[6]=4787C62A T[7]=A8304613 T[8]=FD469501 T[9]=698098D8 T[10]=8B44F7AF T[11]=FFFF5BB1 T[12]=895CD7BE T[13]=6B901122 T[14]=FD987193 T[15]=A679438E T[16]=49B40821 T[17]=F61E2562 T[18]=C040B340 T[19]=265E5A51 T[20]=E9B6C7AA T[21]=D62F105D T[22]=02441453 T[23]=D8A1E681 T[24]=E7D3FBC8 T[25]=21E1CDE6 T[26]=C33707D6 T[27]=F4D50D87 T[28]=455A14ED T[29]=A9E3E905 T[30]=FCEFA3F8 T[31]=676F02D9 T[32]=8D2A4C8A T[33]=FFFA3942 T[34]=8771F681 T[35]=699D6122 T[36]=FDE5380C T[37]=A4BEEA44 T[38]=4BDECFA9 T[39]=F6BB4B60 T[40]=BEBFBC70 T[41]=289B7EC6 T[42]=EAA127FA T[43]=D4EF3085 T[44]=04881D05 T[45]=D9D4D039 T[46]=E6DB99E5 T[47]=1FA27CF8 T[48]=C4AC5665 T[49]=F4292244 T[50]=432AFF97 T[51]=AB9423A7 T[52]=FC93A039 T[53]=655B59C3 T[54]=8F0CCC92 T[55]=FFEFF47D T[56]=85845DD1 T[57]=6FA87E4F T[58]=FE2CE6E0 T[59]=A3014314 T[60]=4E0811A1 T[61]=F7537E82 T[62]=BD3AF235 T[63]=2AD7D2BB T[64]=EB86D391
压缩函数 ·压缩函数HMD5 ■共有4轮处理过程,每轮又对缓冲区ABCD进行16步迭代运算。 。迭代形式 A-B+CLSs(A+g(B,C,D)+Xk+Ti)
压缩函数 压缩函数HMD5 共有4轮处理过程,每轮又对缓冲区ABCD进行16步迭代运算。 迭代形式 A←B+CLSs(A+g(B,C,D)+X[k]+T[i])