散列函数的应用及其安全性
散列函数的应用及其安全性
- 散列函数的具体应用
MD5 hash算法用于文件校验
单向hash函数对数字摘要进行数字签名
可运用到随机数的生成和密码、salt值的衍生中
2.散列函数的安全性以及目前散列函数安全性的发展
一.生日攻击:
生日攻击是利用生日问题,找到冲突的hash值,使得身份验证算法失效
二.MD5安全性:
MD5是一种用于确保信息传输完整一致的杂凑算法,具有压缩性(任意长度的数据,算出的MD5值长度都是固定的),容易计算性(从原数据计算出MD5很容易)、抗修改性(对原数据进行任何 改动都使得值有很大区别)、强抗碰撞性。王小云教授的突破在于加速了碰撞对的构造,在此算法基础上衍生出来一系列MD5算法能在部分场景下构造出一个有意义的伪造信息,并保持MD5值不 变
三.SHA-1安全性
2017年,Google公司宣布实现了对SHA-1算法的攻击。在实际中,安全散列函数永远不应该发生碰撞。然而,如果散列算法有一定的缺陷,如SHA-1,一个资金雄厚的攻击者就可以制造出碰 撞。攻击者可以利用碰撞欺骗系统,这些系统根据HASH来接收一个恶意文件,从而代替了它的良性副本。
四.散列函数的安全性
满足抗原性、看第二原像、抗碰撞三个条件的函数一般来说是安全的
3.Md5算法在验证软件完整性时可能出现的问题
对于两个不同的程序来讲,MD5值可能是相同的
不能保证文件的完整性和正确性,文件可能已经被损坏
文件过大时,验证时间会增加,同时被攻击的可能性也提高了