【文章】7.4 对单向Hash函数的生日攻击破译

admin 2021年4月3日18:55:01评论104 views字数 862阅读2分52秒阅读模式

7.4 对单向Hash函数的生日攻击

    对单向Hash函数有两种穷举攻击的方法。 第一种是最明显的:给定消息的Hash函数H(M),破译者逐个生成其他文件M,以使H(M)= H(M)。第二种攻击方法更巧妙:攻击者寻找两个随机的消息:M,M,并使H(M)=H(M)。这就是所谓的冲突攻击法(Collision Attack)。这比第一种方法来得容易。

    生日悖论是一个标准的统计问题。房子里面应有多少人才有可能使至少一人与你生日相同?答案是253。既然这样,那么应该有多少人才能使他们中至少两个人的生日相同呢?答案出人意料地低:23人。对于仅有23个人的屋里,在屋里仍有253个不同对的人。

    寻找特定生日的某人类似于第一种方法;而寻找两个随机的具有相同生日的两个人则是第二种攻击。第二种方法通常被称为生日攻击(Birthday Attack)。

    假设一个单向Hash函数是安全的,并且攻击它最好的方法是穷举攻击。假定其输出为m比特,那么寻找一个消息,使其单向函数值与给定函数值相同则需要计算2m次;而寻找两个消息具有相同的hash值仅需要试验2m/2个随机的消息。每秒能hash运算一百万次的计算机得花600,000年才能找到第二个消息与给定的64-比特hash值相匹配。同样的机器可以在大约一个小时里找到一对有相同的hash值的消息。

    这就意味着如果你对生日攻击非常担心,那么你所选择的hash函数值其长度应该是你本以为可以的两倍。例如,如果你想让他们成功破译你的系统的可能低于1/280,那么应该使用160-比特的单向Hash函数。

文章来源于lcx.cc:【文章】7.4 对单向Hash函数的生日攻击破译

相关推荐: 【文章】9.9 计数器模式 分组密码算法 加密

9.9 计数器模式     计数模式下的分组密码算法使用序列号作为算法的输入[824,498,715]。不是用加密算法的输出填充寄存器,而是将一个计数器输入到寄存器中。每一个分组完成加密后,计数器都要增加某个常数,典型值是1。该模式的同步和错误扩散特性同OFB…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月3日18:55:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【文章】7.4 对单向Hash函数的生日攻击破译http://cn-sec.com/archives/319200.html

发表评论

匿名网友 填写信息