实验九散列函数实验.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验九 散列函数实验 【实验思考】 参照实验原理,根据算法跟踪实验画出各个算法函数的主要流程图 思考各个散列算法的安全性和优缺点 【实验原理】 散列函数是一种单向密码,即是一个从明文到密文的不可逆映射,只有加密过程,不可解密;同时散列函数可以将任意长度的输入经过变换以后得到固定长度的输出。散列函数在完整性认证和数字签名等领域有广泛应用。 散列函数应满足以下要求: 算法公开,不需要密钥。 具有数据压缩功能,可将任意长度的输入转换为固定长度的输出。 已知m,容易计算出H(m)。 给定消息散列值H(m),要计算出m在计算上是不可行的。 对任意不同的输入m和n,它们的散列值是不能相同的。 MD5算法 MD5(Message-Digest Algorithm 5)即信息-摘要算法,是MD4算法的改进;算法的输入为任意长度的消息,分为512比特长的分组,输出为128比特的消息摘要。处理过程如下: 对消息进行填充,使其比特长度为n512+448(n为正整数),填充方式是固定的:第一位为1,其后各位为0。 附加消息长度,使用上一步骤留出的64比特以小端(最低有效字节/位存储于低地址字节/位)方式来表示消息被填充前的长度,若消息长度大于264,则以264为模数取模。 对消息摘要缓冲区初始化,算法使用128比特长的缓冲区来存储中间结果和最终散列值,将缓冲区表示成4个32比特长的寄存器A、B、C、D,每个寄存器以小端方式存储数据,初始值为(十六进制,低位字节在前)AB=89ABCDEF,C=FEDCBA98,D 以分组为单位对消息进行处理,每一个分组都经过压缩函数HMD5处理;HMD5有4轮处理过程,每轮有16步迭代,4轮处理过程的处理结构一样,所用逻辑函数不同,分别表示为F、G、H、I;每轮的输入为当前处理的消息分组和缓冲区当前的值,输出仍存放在缓冲区中。最后第四轮的输出与第一轮输入的缓冲区值V相加,相加时将V看做4个32比特的字,每个字与第四轮输出的对应的字按模232相加,相加结果为HMD5的输出。 消息的所有分组均被处理完后,最后一个HMD5的输出即为产生的128位消息摘要。 SHA-1/256算法 SHA的全称为Secure Hash Algorithm(安全杂凑算法),SHA 家族的五个算法分别是SHA-1、SHA-224、SHA-256、SHA-384和SHA-512,由美国国家安全局 (NSA) 所设计,并由美国国家标准与技术研究院(NIST)发布,后四者有时并称为SHA-2。 SHA-1基于MD4算法,算法的输入最大长度为264-1比特,分为512比特长的分组,输出为160比特的消息摘要。处理过程如下: 对消息进行填充,与MD5第一步相同。 附加消息长度,与MD5第二步类似,不同的是以大端(最高有效字节/位存储于低地址字节/位)方式来表示消息被填充前的长度。 对消息摘要缓冲区初始化,算法使用160比特长的缓冲区来存储中间结果和最终散列值,将缓冲区表示成5个32比特长的寄存器A、B、C、D、E,每个寄存器以大端方式存储数据,初始值为(十六进制,高位字节在前)AB=EFCDAB89,C=98BADCFE,DE=C3D2E1F0。 以分组为单位对消息进行处理,每一个分组都经过压缩函数HSHA处理;HSHA有4轮处理过程,每一轮又有20步迭代;4轮处理过程的处理结构一样,所用逻辑函数不同,分别表示为f1、f2、f3、f4;每轮的输入为当前处理的消息分组和缓冲区当前的值,输出仍存放在缓冲区中。最后第四轮的输出与第一轮输入的缓冲区值V相加,相加时将V看做5个32比特的字,每个字与第四轮输出的对应的字按模232相加,相加结果为HMD5的输出。 消息的所有分组均被处理完后,最后一个HSHA的输出即为产生的160位消息摘要。 SHA-256使用6个逻辑函数,均基于32位的字进行操作,算法输出的消息摘要为256位。 SHA与MD5处理过程类似,主要区别在于所使用的压缩函数不同。 HMAC算法 HMAC的全称为Hash-based Message Authentication Code(基于散列的消息认证码),HMAC将散列函数作为一个黑盒使用,,散列函数的实现可作为实现HMAC的一个模块,并可使用新模块代替旧模块。 设H为嵌入的散列函数,M为HMAC的输入消息(包括散列函数所要求的填充位),Yi(0≤i≤L-1)是M的第i个分组,L为M的分组数,b为一个分组中的比特数,n为嵌入的散列函数所产生的散列值的长度,K为密钥,若密钥长度大于b,则将密钥输入到散列函数中产生一个n比特长的密钥,K+是左边将填充0后的K,K+的长度为b比特,ipad为b/8opad为

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档