《SHA1与MD5网络安全与技术第五次试验》.docVIP

《SHA1与MD5网络安全与技术第五次试验》.doc

  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文档。上传文档
查看更多
《SHA1与MD5网络安全与技术第五次试验》.doc

实验原理 ? 一.SHA1与MD5差异 ??? SHA1对任意长度明文的预处理和MD5的过程是一样的,即预处理完后的明文长度是512位的整数倍,但是有一点不同,那就是SHA1的原始报文长度不能超过2的64次方,然后SHA1生成160位的报文摘要。SHA1算法简单而且紧凑,容易在计算机上实现。 ??? 表8-2-1列出了对MD5及SHA1的比较差异之处。让我们根据各项特性,简要说明其间的不同。 表8-2-1? MD5与SHA1的比较 MD5 SHA1 摘要长度 128位 160位 运算步骤数 64 80 基本逻辑函数数目 4 4 常数数目 64 4 ? ??? ● 安全性:SHA1所产生的摘要比MD5长32位。若两种散列函数在结构上没有任何问题的话,SHA1比MD5更安全。 ??? ● 速度:两种方法都是主要考虑以32位处理器为基础的系统结构。但SHA1的运算步骤比MD5多了16步,而且SHA1记录单元的长度比MD5多了32位。因此若是以硬件来实现SHA1,其速度大约比MD5慢了25%。 ??? ● 简易性:两种方法都是相当的简单,在实现上不需要很复杂的程序或是大量存储空间。然而总体上来讲,SHA1对每一步骤的操作描述比MD5简单。 二.SHA1哈希算法流程动画演示 ??? 对于任意长度的明文,SHA1首先对其进行分组,使得每一组的长度为512位,然后对这些明文分组反复重复处理。 ??? 对于每个明文分组的摘要生成过程如下: ??? (1)将512位的明文分组划分为16个子明文分组,每个子明文分组为32位。 ??? (2)申请5个32位的链接变量,记为A、B、C、D、E。 ??? (3)16份子明文分组扩展为80份。 ??? (4)80份子明文分组进行4轮运算。 ??? (5)链接变量与初始链接变量进行求和运算。 ??? (6)链接变量作为下一个明文分组的输入重复进行以上操作。 ??? (7)最后,5个链接变量里面的数据就是SHA1摘要。 三.SHA1的分组过程 ??? 对于任意长度的明文,SHA1的明文分组过程与MD5相类似,首先需要对明文添加位数,使明文总长度为448(mod512)位。在明文后添加位的方法是第一个添加位是l,其余都是0。然后将真正明文的长度(没有添加位以前的明文长度)以64位表示,附加于前面已添加过位的明文后,此时的明文长度正好是512位的倍数。与MD5不同的是SHA1的原始报文长度不能超过2的64次方,另外SHA1的明文长度从低位开始填充。 ??? 经过添加位数处理的明文,其长度正好为512位的整数倍,然后按512位的长度进行分组(block),可以划分成L份明文分组,我们用表示这些明文分组。对于每一个明文分组,都要重复反复的处理,这些与MD5是相同的。 ??? 对于512位的明文分组,SHA1将其再分成16份子明文分组(sub-block),每份子明文分组为32位,我们使用M[k](k= 0, 1,……15)来表示这16份子明文分组。之后还要将这16份子明文分组扩充到80份子明文分组,我们记为W[k](k= 0, 1,……79),扩充的方法如下。 ??? , 当0≤t≤15 ??? ) 1, 当16≤t≤79 ??? SHA1有4轮运算,每一轮包括20个步骤(一共80步),最后产生160位摘要,这160位摘要存放在5个32位的链接变量中,分别标记为A、B、C、D、E。这5个链接变量的初始值以16进制位表示如下。 ??? A=0??? B=0xEFCDAB89 ??? C=0x98BADCFE ??? D=0??? E=0xC3D2E1F0 四.SHA1的4轮运算 ??? SHA1有4轮运算,每一轮包括20个步骤,一共80步,当第1轮运算中的第1步骤开始处理时,A、B、C、D、E五个链接变量中的值先赋值到另外5个记录单元A′,B′,C′,D′,E′中。这5个值将保留,用于在第4轮的最后一个步骤完成之后与链接变量A,B,C,D,E进行求和操作。 ??? SHA1的4轮运算,共80个步骤使用同一个操作程序,如下: ??? ??? 其中(B,D,C)为逻辑函数,Wt为子明文分组W[t],Kt为固定常数。这个操作程序的意义为: ??? ●? 将[(A5)+D,C)+E+Wt+Kt]的结果赋值给链接变量A; ??? ●? 将链接变量A初始值赋值给链接变量B; ??? ●? 将链接变量B初始值循环左移30位赋值给链接变量C; ??? ●? 将链接变量C初始值赋值给链接变量D; ??? ●? 将链接变量D初始值赋值给链接变量E。 ??? SHA1规定4轮运算的逻辑函数如表8-2-2所示。 表8-2-2? SHA1的逻辑函数 步骤 函数定义 轮 步骤 函数定义 1

文档评论(0)

wyth + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档