一、哈希函数
1.安全性质
1)抗第一原像攻击(Preimage Resistance)
给定哈希后的值,很难找到哈希前的原消息。这很好理解,需要哈希函数具有单向性。
一个简单的例子就是密码存储系统,用户登录服务器需要密码匹配,服务器出于安全考虑不会存储用户密码,会存储用户密码的哈希值,这样,每次用户发来密码,进行哈希来看是否一致。这样的话,即使黑客获得了用户密码的哈希值,也没办法登录系统。
2)抗第二原像攻击(Second Preimage Resistance)
给定消息m和哈希后的值,很难找到另一个消息n,使得n哈希后的值和m哈希后的值一样。
一个简单的例子是软件下载时使用哈希来校验文件的integrity,用户下载软件后,使用哈希函数得到值,来和开发者提供的哈希值对比,如果一致就认为下载的文件没有被篡改。这里如果黑客可以通过开发者提供的哈希值和文件,找到一个哈希值一样的文件,那么他就可以替换掉这个文件。
3)碰撞避免(Collision Resistance)
对于一个哈希函数,对于找到两个具有相同哈希值的消息m,n是计算上不可能的。尽管哈希是理论上无限的域向固定域的映射,总会碰撞,但是要保证计算上找不到这个碰撞。
一个简单的例子是,发送信息的人本来就是黑客。例如b找到了两个相同哈希值的文件,他让a签署,文件1只需要a付出很小的代价,而文件2需要a付出很大的代价。那么b就将文件1发给a签,签完之后说a签的是文件2。
2.SHA-1
任意长比特串-->160bits哈希值
1)padding
先在后面补1,然后补0直到长度L%512=(512-64),因为sha-1每次对512bit做处理,所

本文探讨了哈希函数的安全性质,如抗原像攻击、抗第二原像攻击和碰撞避免,介绍了SHA-1的运算过程。同时,文章对比了消息摘要、MAC(消息认证码)和数字签名在保证信息完整性和防止否认方面的应用,涉及公钥技术和HMAC算法。
最低0.47元/天 解锁文章
831

被折叠的 条评论
为什么被折叠?



