首页 理论教育 MD5算法详解

MD5算法详解

时间:2023-07-02 理论教育 版权反馈
【摘要】:MD5算法采用迭代型Hash函数的一般结构,算法框图如图6-4所示。算法的输出由4个32bit的块组成,将它们级联成一个128bit的消息摘要。MD5算法对任意长的消息处理过程如下:图6-4 MD5算法框图消息填充对长度为X bit的消息填充,使填充后的消息比特长度X1≡448mod 512,即填充后的消息长度为512bit的某一倍数减64bit,留出的64bit备第步使用。如果消息长度大于264,则以264为模数取模,即64bit存放的是Xmod 264的二进制表示值。,L-1)都经一压缩函数HMD5处理。

MD5算法详解

MD5算法采用迭代型Hash函数的一般结构,算法框图如图6-4所示。算法的输入为任意长的消息M,它的长度X bit,分为长512bit的块,每个块又划分为16个32bit的子块。算法的输出由4个32bit的块组成,将它们级联成一个128bit的消息摘要。

MD5算法对任意长的消息处理过程如下:

978-7-111-37285-1-Chapter06-3.jpg

图6-4 MD5算法框图

(1)消息填充

对长度为X bit的消息填充,使填充后的消息比特长度X1≡448mod 512,即填充后的消息长度为512bit的某一倍数减64bit,留出的64bit备第(2)步使用。填充方式是固定的,即第1位为1,其后各位皆为0。如果消息长度X为448bit,仍需填充512bit,使其长度变为960bit,因此填充的比特数大于或等于1而小于或等于512。

(2)附加上消息的长度值

用步骤(1)留出的64bit以Little-endian方式来表示消息被填充前的长度值。如果消息长度大于264,则以264模数取模,即64bit存放的是Xmod 264二进制表示值。

Little-endian方式是指数据的低位有效字节(或低位有效位)存于低地址字节(或位),高位有效字节(或高位有效位)存于高地址字节(或位)的存储方式。相反的存储方式称为Big-endian方式。

前两步执行完后,消息的长度为512bit的倍数(设为L倍),则可将消息划分为L个长度为512bit的块m0m1,…,mL-1,而每一块又可划分为16个32bit长的子块。

(3)缓冲区初始化

算法使用了长度为128bit的缓冲区以存储中间结果和最终的消息摘要,缓冲区可表示为长度为4个32bit的寄存器ABCD,每个寄存器都以Little-endian方式存储数据,其初值(用十六进制表示)取为(www.xing528.com)

A=01234567

B=89abcdef

C=fedcba98

D=76543210

(4)压缩函数处理

以块为单位对消息进行处理,每一消息块mjj=0,…,L-1)都经一压缩函数HMD5处理。压缩函数有4轮处理过程,每一轮由16步迭代组成,如图6-5所示。

(5)输出消息摘要

L个消息块mjj=0,…,L-1)都被处理完后,最后一个压缩函数的输出即为产生的128bit消息摘要。

978-7-111-37285-1-Chapter06-4.jpg

图6-5 HMD5的压缩函数

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈