MD5的碰撞?20200807

MD5是一种杂凑算法,主要用来获取信息摘要,防篡改。

首先,杂凑算法在设计时,必须满足两个特性:
1.寻找两个输入,得到相同的输出值在计算上是不可行的,即抗碰撞;
2.寻找一个输出,能得到给定的输入在计算上是不可行的,即不可从结果推导出原文。

其次,杂凑算法的用途决定了,它只要能找到碰撞就足以让它失效,并不需要找到原文。
对于MD5的破解,即找到“碰撞”:
eg:原文A通过MD5可以生成杂凑值M,只需要找到原文B,生成同样的杂凑值M即可,并不需要把X还原成A。
若设MD5的哈希函数是F(X),那么:
F(A) = M
F(B) = M
任意一个B即为破解结果,B有可能等于A,也可能不等于A。

最后,MD5的碰撞方法有:暴力枚举法、字典法、彩虹表法、差分攻击法等。

-暴力枚举法:简单粗暴地枚举出所有原文,并计算出它们的杂凑值,寻找与给定的信息杂凑值一样的;虽然简单,但时间复杂度极高。

-字典法:存储尽可能多的原文和对应的杂凑值,每次用给定的信息杂凑值查找字典,快速找到碰撞的结果。只是生成字典需要巨大的空间,用空间换时间。

-彩虹表法:杂凑函数和衰减函数
衰减函数的定义域是杂凑函数的值域,衰减函数的值域是杂凑函数的定义域,但二者并不互为反函数。(……理解不了,弃之)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值