时间:2023-07-22|浏览:234
现在,为了使事情变得更糟,我们说它不可能发现碰撞。然而,有些方法可以保证发现碰撞。考虑以下简单的方法来查找具有256位输出大小的哈希函数的碰撞:挑选2的256次方加1个不同的值,计算它们中每一个的hash值,并检查是否有两个一样的输出。由于我们选择了比可能输出更多的输入,所以当应用哈希函数时,它们中的一些必须发生碰撞。
上面的方法保证会找到碰撞。但是,如果我们选择随机输入并计算哈希值,那么在检查2的256次方加1个输入之前,我们会高概率的发现碰撞。事实上,如果我们随机选择2的130次方加1个输入,结果会有99.8%的概率至少有两个会碰撞。事实上,我们可以通过只是粗略地检查可能的输出数量的平方根来找到冲突,这现象在概率上被称为第二天悖论。在本章末尾家庭作业的问题中,我们将对此进行更详细的研究。
这种碰撞检测算法适用于每个哈希函数。但是,问题在于这需要很长很长的时间。对于具有256位输出的哈希函数,在最坏的情况下,您必须计算哈希函数2的256次方加1次,平均大约2的128次方次。这当然是一个天文数字——如果一台计算机每秒计算10,000次hash值,那么需要超过一千万(10的27次方)年的时间来计算2的128次方个hash值!以另一方式来思考这个问题,我们可以这样说,如果人类制造的每一台计算机从宇宙诞生以来都开始计算,到目前为止,他们发现冲突的几率仍然是非常渺小的。如此之小,比地球在接下来的两秒钟内被一颗巨大的流星摧毁的几率都要小得多。
用戶喜愛的交易所
已有账号登陆后会弹出下载