- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 hash函数
主讲人:侯红霞 通信与信息工程学院 2004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做了破译MD5、HAVAL-128、MD4和RIPEMD算法的报告,公布了MD系列算法的破解结果。宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然大波。令世界顶尖密码学家想象不到的是,破解MD5之后,2005年2月,王小云教授又破解了另一国际密码SHA-1。因为SHA-1在美国等国际社会有更加广泛的应用,密码被破的消息一出,在国际社会的反响可谓石破天惊。换句话说,王小云的研究成果表明了从理论上讲电子签名可以伪造,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。 图4-4 基本MD5操作(单步) 回合數 運算函數g 1 2 3 4 4个非线性函数分别为: 一轮具体操作 Mi 常数 b)常数tj: 常数表T[i]共有64个元素,每个元素32位长,tj=232?abs(sin(i))的整数部分 ,其中j是弧度。 处理每一个消息块Yi时,每一轮使用常数表T[i]中的16个,正好用4轮。 c) 循环左移数: 每轮中每步左循环移位的位数按下表执行。 步数 轮数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 7 5 4 6 12 9 11 10 17 14 16 15 22 20 23 21 7 5 4 6 12 9 11 10 17 14 16 15 22 20 23 21 7 5 4 6 12 9 11 10 17 14 16 15 22 20 23 21 7 5 4 6 12 9 11 10 17 14 16 15 22 20 23 21 每一轮不断地更新缓冲区A,B,C,D中的内容 4轮之后进入下一个主循环,直到处理完所有消息块为止。 输出 得到128位的消息摘要 MD5相对MD4进行了以下一些改进: 增加了主循环中的操作次数,由三轮操作改进为四轮操作; 操作的每一步均有惟一的加法常数; 减弱函数的对称性; 改变了第二轮和第三轮中访问消息子分组的次序,使得其形式更加不相似; 近似优化了每一轮中循环移位的位移量,各轮的位移量各不相同。 ? MD5算法有以下性质: Hash函数的每一位均是输入消息序列中每一位的函数。 保证了在Hash函数计算过程中产生基于消息 x 的混合重复,从而使得生成的Hash函数结果混合得非常理想。 也就是说,随机选取两个有着相似规律性的两组消息序列,也很难产生相同的Hash函数值。 4.3.2 MD4 MD4算法的具体过程如下: 首先输入任意长度的消息x ,由x构造一个数组序列 给定4个寄存器 A,B,C,D对其赋初值: 计算 将已有的4个寄存器 中的数组分别存放到另外4个寄存器 中 执行第一轮操作。 “与”运算 “或”运算 “补”运算 “左移”运算 与第一轮类似进行第二轮第三轮操作 计算 目前,MD5算法被广泛应用于各种领域,从密码分析的角度上看,MD5仍然被认为是一种易受到攻击的算法,而且,近年来对MD5攻击的相关研究已取得了很大的进展。2004年,我国学者王小云给出了一种解决MD5碰撞问题的算法。因此,有必要用一个具有更长消息摘要和更能抵御已知密码分析攻击的Hash函数来代替目前被广泛使用的MD5算法。下面介绍的安全Hash算法(Security Hash algorithm)――SHA-1就是这样一个算法。 4.4 SHA-1 SHA-1 (SHA:Security Hash Algorithm,安全Hash算法) 是一个产生160位消息摘要的迭代Hash函数。 由美国国家标准和技术协会(NIST)提出,并作为联邦信息处理标准在1993年公布。 SHA-1的设计基于MD4算法,并且它在设计方面也很大程度上是模仿MD5算法的。 2002年,NIST在SHA-1的基础上,进一步推出了SHA-256、SHA-394、SHA-512三个版本的安全Hash算法,它们的消息摘要长度分别为256位、394位和512位。这些改进算法不仅增强了Hash算法的安全性能,而且便于与AES算法相结合。 SHA-1算法算法输入消息的最大长度不超过264位,输入的消息按照512位的分组进行处理。 图4-5 SHA-1产生报文摘要的过程 具体过程 (1) 填充消息 首先将消息填充为512的整数倍,填充方法与MD5相同。 与MD5不同的是SHA-1的输入为长度小于264比特的消息。 64bit 消息长度为704位 M0 M1 M2 … M13 M14 M15 例 消息704 填充256位 消息长度64位 1000000……00 000…… 1011000
文档评论(0)