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