MD5描述 ·I989年,Merkle提出Hash function模型 ·1990年,Ron Rivesta提出MD4 ·1992年,Ron Rivest完成MD5(RFC1321) http://www.fags.org/rfcs/rfc1321.html ·在最近数年之前,MD5是最主要的Hash算法 ● 现行美国标准SHA-1以MD5的前身MD4为基础 ·MD5(Message Digest) 一输入:任意长度的消息 长度不超过2Λ64 一 输入分组长度:512bit -输出:128bit消息 12
MD5 描述 • 1989年,Merkle提出Hash function Hash function模型 • 1990年,Ron Rivest提出MD4 • 1992年, Ron Rivest Ron Rivest 完成MD5 (RFC 1321) MD5 (RFC 1321) – http://www.faqs.org/rfcs/rfc1321.html • 在最近数年之前 在最近数年之前,MD5是最主要的Hash算法 • 现行美国标准SHA-1以MD5的前身MD4为基础 • MD5(Message Digest) – 输入:任意长度的消息 – 输入分组长度:512 bit – 输出:128 bit 消息 12 长度不超过2^64
MD5:示意图 Padding Message length {1to52bits) (K mod 264) L 512 bits=N 32 bits K bits- Message 100.0 (4) -5l2 bits4—512 bity -512 bity -512 bits Yo Y YL-I 512 512 512 ,512 3) 128 128 128 128 IV HMD5 HMDs HMD5 HMD5 CVI CVLI 128-bit digest 13
(4) (3) 13
MD5描述-(1) ·消息填充 ·对消息进行填充,使其比特数与448模512同余, 即填充长度为512的整数倍减去64,留出64比特在 (2)中使用: |M,=448mod512 if M=448mod512,then|MM+512 ·填充方法:填充比特串的最高位为1,其余各位均 为0。最少要补1比特,最多补512比特(补一个 组)。 消息长度正好是512的整数倍 M=M Padding 14
MD5 描述-(1) • 消息填充 • 对消息进行填充,使其比特数与448模512同余, 即填充长度为512的整数倍减去64,留出64比特在 (2)中使用: 1 1 | | 448mod512 | | 448mod512, | || | 512 M if M then M M ≡ = = + • 填充方法:填充比特串的最高位为1,其余各位均 为0。最少要补1比特,最多补512比特(补一个 1 f | | , | || | 为0。最少要补1比特,最多补512比特(补一个 组)。 1 M =M Padding || 14 1 消息长度正好是512的整数倍