浅析散列函数MD5算法的原理及其碰撞攻击.docVIP

浅析散列函数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文档。上传文档
查看更多
浅析散列函数MD5算法的原理及其碰撞攻击

浅析散列函数MD5算法的原理及其碰撞攻击 摘要 随着网络技术的广泛应用,网络信息安全越来越引起人们的重视。针对数据在存储时存在大量的安全问题,目前通常将需要存储的数据进行加密然后再存储,应用MD5算法是一个不错的选择。本文详细介绍了MD5算法的概念,对MD5算法的原理、碰撞攻击以及MD5算法破解的重要意义进行探讨。 关键字:MD5 原理 碰撞攻击 一、引言 现阶段,信息安全性已成为全社会关心问题,密码学研究也越来越被人们所关注。密码学主要研究的是通讯保密。近年来,密码学研究之所以十分活跃,主要原因是它与计算机科学的蓬勃发展息息相关。由于公共和私人的一些机构越来越多的应用电子数据处理,将数据存储在数据库中,因此防止非法泄露删除修改等是必须重视的问题。对数据进行加密能够防止他人盗取需要保密的信息,但这只解决了一方面的问题,至于如何防止他人对重要数据进行破坏,如何确定交易者的身份,以及如何防止日后发生纠纷时交易者抵赖,还需要采取其它的手段,这一手段就是数字签名。数字签名技术实际上是在数据加密技术基础上的一种延伸应用。数字签名经常和单向散列 Hash 函数一起使用,而单向散列 Hash 函数是现代密码学的核心。最常见的散列算法有MD5SHA和SnefruMD5是当今非常流行的Hash加密技术A 座机电话号码,B EFCDAB89,C 98BADCFE,D 寄存器内容如下: 字 A: 01 23 45 67 字 B: 89 AB CD EF 字 C: FE DC BA 98 字D: 76 54 32 10 (4)步骤4: 以512位的分组 16个字 为单位处理消息。算法的核心是压缩函数 HMD5 ,它包括4轮处理。4轮处理具有相似的结构,但每次使用不同的基本逻辑函数, 记为F、G、H、I, 如表1所示。每一轮以当前的512位分组 Yq 和128位缓冲区ABCD作为输入,并修改缓冲区的内容。每次使用64元素表T[1L 64]中的1/4。该T表有sin函数构造而成。T的第i个元素表示为T[i],其值等于232×abs sin i 的整数部分,其中i是弧度。由于abs sin i 是一个0到1之间的数, T的每一个元素是一个可以表示成32位的整数。T表提供了随机化的32位模板,消除了在输入数据中的任何规律性的特征,如表2所示。 第4轮的输出与第1轮的输入 CVq 相加得到CVq+1, 这里的加法是指缓冲区中的4个字与CVq中对应的4个字分别232模相加。 5 步骤5: 输出。所有L个512位分组处理完毕, 最后的结果就是128位消息摘表1基本逻辑函数的真值表要。每一轮包含对缓冲区ABCD进行16步迭代, 每步迭代形为:a←b a+g b,c,d, +X k +T i s 其中a,b,c,d 缓冲区的4个字, 它按一定次序随迭代步变化。g 基本逻辑函数F,G,H,I之一 s 32位的变量循环左移s位X[k] M[q×16+k] 消息第q个512位分组的第k个32位字T [i] 矩阵T中的第i个32位字+ 模232加法每次循环进行16步操作,其中S的值在4次循环中都有不同的定义, 并且在每一步的值也不同。 四、MD5算法的碰撞攻击 MD5的创始人Rivest猜测,MD5可能是128位的Hash码中最强的算法, 即Hash码相同的两条消息所需的代价为264数量级, 找到给定摘要的消息所需的代价为2128数量级。虽然如此, 但是现有的一些攻击对MD5算法非常不利: (1)Berson已经证明, 对单轮的MD5算法, 利用差分密码分析,可以在合理的时间内找出摘要相同的两条消息,这一结果对MD5的4轮运算中的每一轮都成立。但是Berson尚不能说明如何将这种攻击推广到具有4轮运算的MD5之上。 (2)Boer和Bosselaers说明了如何找到消息分组X和两个有关的链接变量使得它们产生相同的输出,也就是说,对一个512位的分组,MD5压缩函数对缓 冲区ABCD的不同值产生相同的输出,称之为伪碰撞。目前尚无法用上述方法成功地攻击MD5算法。 (3)Dobbertin提出的攻击对MD5最具威胁,它可使MD5压缩函数产生碰撞。但到目前为止,尚不能用Dobbertin提出的方法对使用初值 IV 的整个消息进行攻击。 (4)Xiaoyun Wang的算法在预定的时间内找到了MD5的一个碰撞。 五、MD5算法的破解及其意义 一种Hash函数被破解,通常有3种情况: 第1种是函数的单向性被攻破,即最彻底的攻破,也就是对于给定的明文及摘要,能够用数学计算的方法,求出另一个也能产生出此摘要的等价的明文; 第2种是对于给定的明文及摘要,能够用随机碰撞的方法找到另一个等价的明文; 第3种也是用随机碰撞的方法,找到两个具有相同摘要的

文档评论(0)

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

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

1亿VIP精品文档

相关文档