第7章HASH函数.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文档。上传文档
查看更多
HASH函数和消息认证 杂凑函数 1. 概述 2. MD5杂凑函数 3. SHA-1杂凑函数 4. SHA-256 5. SHA-384 6. SHA-512 基于分组密码设计的杂凑函数 HASH函数 1. 概述 密码学上的杂凑函数也称Hash函数、哈希函数、哈什函数或单向散列函数。 是将任意长度的消息压缩(或映射)到某一固定长度的消息摘要(或称杂凑值)的函数。 杂凑函数的目的:要生成文件、消息或其他数据块的“指纹”,以实现对消息的完整性认证。 杂凑函数H必须满足以下特性: (1) H能够应用到任何大小的数据块上,能生成大小固定的输出;(应用要求) (2) 对于任意的h,要发现满足H(x)=h的x是计算上不可行的;(单向性) (3) 对于任意给定的x,要发现满足H(y)=H(x)而y≠x的y是计算上不可行的;(防止伪造) (4) 要发现满足H(y)=H(x)而y≠x的对(x,y)是计算上不可行的。(防止生日攻击) 满足以上前3个特性的杂凑函数叫弱Hash函数,或称杂凑函数H(x)为弱碰撞自由的; 如果还满足第4个特性,就叫做强Hash函数,或称凑函数H(x)为强碰撞自由的。 HASH函数 由于抵抗生日攻击的原因,杂凑函数的杂凑值不小于128比特。 杂凑函数的设计要求:要考虑到32位系统软件的快速实现。 有名的杂凑函数:MD5、SHA-1、SHA-256等。 国家标准杂凑函数。 目前多数杂凑函数是迭代结构,与分组密码算法设计相比,环节选择少,设计和分析理论不十分成熟。 HASH函数 1.1 自由起始碰撞攻击 Step1:随机选取N个报文m1,m2,?, mN; Step2:以这N个报文作为杂凑函数的输入,计算出相应的杂凑值,得到集合 S={(mk,H(mk)):k=1,2,?, N} Step3:根据H(mk)的大小对集合S进行快速排序,并利用该算法,寻找中使H(mk)=H(mt)成立的不同元mk和mt;如果找到,就将(mk,mt)作为结果输出,算法终止;如果找不到,就报告碰撞攻击失败,算法终止. HASH函数 存储复杂性 该算法需要存储表S,以便进行快速排序,故存储复杂性是表S的规模O(N). 计算复杂性 (1) 该算法生成集合S的计算量是计算N次杂凑函数; (2) 对集合S快速排序并找出全部碰撞的计算量为|S|log2|S|次比较;这里|S|是集合S中点的个数. 故总的计算量为 N+|S|log2|S|≤N+Nlog2N = O(N) HASH函数 成功率分析 定理 设杂凑值为n比特且N远小于2n,则碰撞攻击的成功率近似为 HASH函数 碰撞攻击说明杂凑值的比特数应不小于128比特 1.2 杂凑函数的消息填充 消息填充也称为MD强化,目的是使得填充后的消息比特长度成为512比特的整数倍。 该方法已成为事实上的填充标准。 具体做法是在要处理的消息x的二进制表示之后先填入一个1,然后再填加若干个0,使得消息的比特长度是512的整数倍少64比特,最后在最低的64比特位填入消息x的比特长度的二进制表示。 即M=x||1||0d||L。其中L是扩充前报文x的比特长度的二进制表示。因此,MD5限定报文的长度?264-1。 若报文长度超过264-1,则L是报文比特长度取模264后的比特长度的二进制表示。 HASH函数 例如,设x是长度具有20768比特的消息,由于20768÷512=40.5625,故大于或等于512的倍数的最小整数为 512?41=20992。 由于20992–64=20928,且 20928–20768=160 故应在x后面添加一个1和159个0,最后再在最低的64位添加20768的二进制表示。 HASH函数 2. MD5杂凑函数 MD5杂凑函数也称MD5杂凑算法。Ron Rivest于1990年提出了MD4杂凑算法,MD5是其改进形式,其设计思想与MD4相似,比MD4增加了一轮循环,输入消息可任意长,每次主循环可处理512比特数据,输出的杂凑值为128比特,适合软、硬件实现。 该算法为国际商用密码的标准算法,被王小云教授攻破。 MD5系列和SHA系列的杂凑函数模型是目前最流行的杂凑迭代模型,SHA、SHA-1和SHA-256是面向32位系统设计的,要求扩散速度快,大量使用了模232加法运算和循环移位。 HASH函数 SHA-1也存在弱点,找到其碰撞的计算量为269。根据王小云的攻击方法,MD5和SHA-1的主要问题存在于其消息扩展算法有些“随意”。 MD5的一个主循环一次处理512比特数据分组,全部分组处理后得到最终的128比特的杂凑值。 记待处理消息的一个512比特分组为M=M0M1…M15,其中|Mi|=32(比

文档评论(0)

38号店铺 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档