散列函数的应用及其安全性

散列函数的应用及其安全性

  1. 散列函数的具体应用

    MD5 hash算法用于文件校验

    单向hash函数对数字摘要进行数字签名

    可运用到随机数的生成和密码、salt值的衍生中

  2.散列函数的安全性以及目前散列函数安全性的发展

    一.生日攻击:

      生日攻击是利用生日问题,找到冲突的hash值,使得身份验证算法失效

    二.MD5安全性:

      MD5是一种用于确保信息传输完整一致的杂凑算法,具有压缩性(任意长度的数据,算出的MD5值长度都是固定的),容易计算性(从原数据计算出MD5很容易)、抗修改性(对原数据进行任何      改动都使得值有很大区别)、强抗碰撞性。王小云教授的突破在于加速了碰撞对的构造,在此算法基础上衍生出来一系列MD5算法能在部分场景下构造出一个有意义的伪造信息,并保持MD5值不      变

    三.SHA-1安全性

      2017年,Google公司宣布实现了对SHA-1算法的攻击。在实际中,安全散列函数永远不应该发生碰撞。然而,如果散列算法有一定的缺陷,如SHA-1,一个资金雄厚的攻击者就可以制造出碰        撞。攻击者可以利用碰撞欺骗系统,这些系统根据HASH来接收一个恶意文件,从而代替了它的良性副本。

    四.散列函数的安全性

      满足抗原性、看第二原像、抗碰撞三个条件的函数一般来说是安全的

  3.Md5算法在验证软件完整性时可能出现的问题

      对于两个不同的程序来讲,MD5值可能是相同的

      不能保证文件的完整性和正确性,文件可能已经被损坏

      文件过大时,验证时间会增加,同时被攻击的可能性也提高了

原文地址:https://www.cnblogs.com/AJLee/p/9033115.html