现代密码学-杨波-6.3MD5哈希函数算法.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

现代密码学

第六章消息认证和哈希函数 6.1消息认证码 6.2哈希函数 6.3MD5哈希算法 6.4安全哈希算法 6.5HMAC 6.6SM3哈希算法 第六章

6.3MD5哈希算法6.3.1算法描述6.3.2MD5的压缩函数6.3.3MD5的安全性第六章

6.3.1算法描述第六章MD5算法采用图6-5描述的迭代型哈希函数的一般结构,如图6-6所示。算法的输入为任意长的消息(图中为K比特),分为512比特长的分组,输出为128比特的消息摘要。图6-6MD5的算法框图

6.3.1算法描述第六章处理过程有以下几步:(2)对消息填充,使得其比特长在模512下为448,即填充后消息的长度为512的某一倍数减64,留出的64比特备第2步使用。步骤1是必需的,即使消息长度已满足要求,仍需填充。例如,消息长为448比特,则需填充512比特,使其长度变为960,因此填充的比特数大于等于1而小于等于512。填充方式是固定的:第1位为1,其后各位皆为0。小端方式是指按数据的最低有效字节(byte)(或最低有效位)优先的顺序存储数据,即将最低有效字节(或最低有效位)存于低地址字节(或位)。相反的存储方式称为大端(big-endian)方式。

6.3.1算法描述第六章前两步执行完后,消息的长度为512的倍数(设为L倍),则可将消息表示为分组长为512的一系列分组。而每一分组又可表示为16个32比特长的字,则消息中的总字数为,因此消息又可按字表示为。(3)对MD缓冲区初始化算法使用128比特长的缓冲区以存储中间结果和最终哈希值,缓冲区可表示为四个32比特长的寄存器(A,B,C,D),每个寄存器都以小端方式存储数据,其初值取为(以存储方式)AB=89ABCDEF,C=FEDCBA98,D实际上EFCDAB89,98BADCFE

6.3.1算法描述第六章(4)以分组为单位对消息进行处理每一分组都经一压缩函数处理。是算法的核心,其中又有4轮处理过程,如图6-7所示。

6.3.1算法描述第六章图6-7MD5的分组处理框图

6.3.1算法描述第六章表6-3常数表T

6.3.1算法描述第六章的4轮处理过程结构一样,但所用的逻辑函数不同,分别表示为F、G、H、I。每轮的输入为当前处理的消息分组和缓冲区的当前值A、B、C、D,输出仍放在缓冲区中以产生新的A、B、C、D。每轮处理过程还需加上常数表T中四分之一个元素,分别为T[1..16],T[17..32],T[33..48],T[49..64]。表T有64个元素,见表6-3,第i个元素T[i]为的整数部分,其中sin为正弦函数,i以弧度为单位。由于大于0小于1,所以T[i]可由32比特的字表示。第4轮的输出再与第1轮的输入相加,相加时将看作4个32比持的字,每个字与第4轮输出的对应的字按模相加,相加的结果即为压缩函数的输出。

6.3.1算法描述第六章(5)输出消息的L个分组都被处理完后,最后一个的输出即为产生的消息摘要。步骤(3)到步骤(5)的处理过程可总结如下:其中IV是步骤(3)所取的缓冲区ABCD的初值,是消息的第q个512比特长的分组,L是消息经过步骤(1)和步骤(2)处理后的分组数,为处理消息的第q个分组时输入的链接变量(即前一个压缩函数的输出),为使用基本逻辑函数x的轮函数,+为对应字的模加法,MD为最终的哈希值。

6.3.2MD5的压缩函数第六章压缩函数中有4轮处理过程,每轮又对缓冲区ABCD进行16步迭代运算,每一步的运算形式为(看图6-8):图6-8压缩函数中的一步迭代示意图

第六章6.3.2MD5的压缩函数其中a、b、c、d为缓冲区的四个字,运算完成后再右循环一个字,即得这一步迭代的输出。g是基本逻辑函数F、G、H、I之一。是32位存数左循环移s位,s的取值由表6-4给出。T[i]为表T中的第i个字,+为模加法。,即消息第q个分组中的第k个字()。四轮处理过程中,每轮以不同的次序使用16个字,其中在第一轮以字的初始次序

文档评论(0)

vermonth155-2娟 + 关注
实名认证
文档贡献者

专注ppt课件

版权声明书
用户编号:8046135067000064

1亿VIP精品文档

相关文档