信息安全作业5 有关散列函数安全性的知识扩展

 

1、散列函数的具体应用

Hash算法在信息安全方面的应用主要体现在以下的5个方面:

(1)消息认证
      可以用来验证信息的来源是真实的,而不是伪造的,此为消息源认证。也可以验证消息的完整性,即验证信息在传送或存储过程中是否被篡改。

(2)数字签名
      Hash 算法也是现代密码体系中的一个重要组成部分。由于非对称算法的运算速度较慢,所以在数字签名协议中,单向散列函数扮演了一个重要的角色。对Hash 值,又称"数字摘要"进行数字签名,在统计上可以认为与对文件本身进行数字签名是等效的。而且这样的协议还有其他的优点。

(3)口令的安全性

(4)文件的完整性

      譬如可信计算、文件病毒的检验、网页防篡改、黑白名单等许多应用。

(5)密码协议的应用

      譬如零知识证明、比特承诺、投掷硬币、电子商务的安全协议等许多应用。

 


 

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

hash函数安全要满足三条性质:
1.单向性(原像稳固性):给定一个消息摘要y,很难找到符合h(x)=y的消息x。
2.第二原像稳固性:给定x,很难找到一个x’,满足h(x)=h(x’)。
3.碰撞稳固性:很难找到满足h(x)=h(x’)的二元组(x,x’)。
这其中解决第三个问题碰撞问题的难度是最小的,目前对md5、sha1的攻击也已经成功。

 

生日悖论:

      如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。对于60人以上,这种概率要大于99%。

      散列算法都是把数量为无限的数据、字符串、文件映射成有限长的hash,因此这个映射一定不是单射,这样的hash函数肯定存在两个数据M1,M2,使得HASH(M1) = HASH(M2)。根据生日悖论,如果哈希值的位数过短,很容易可以找到一组(两个)哈希值相同的输入,这就是一种最常用的生日攻击的应用。

 

主动碰撞:

      王小云实现MD5碰撞:根据MD5这种Hash算法的特点,他们是任意长度的字符串变成固定长度的摘要信息,所以就有可能发生一个问题:不同的字符串在理论上是有可能产生相同的摘要信息。

      王小云所谓的碰撞法,碰撞的就是不同的字符串所产生的摘要信息是一样的那些字符串。王教授证明了MD5等Hash算法产生的摘要信息规则是可以在比较短时间内被破解的。

      2017年google宣布实现SHA-1碰撞:在实际中,可以构造两个SHA-1结果相同的PDF文件。这使得第二个文件SHA-1后的数字签名可以通过第一个文件SHA-1后数字签名的验证。

 

安全散列函数的发展:

1、MD4

      1990年Ronald L. Rivest设计,通过三圈的操作将任意长度的消息变换成128位的哈希值

2、MD5

      Rivest于1991年对MD4的改进版本。运用了四轮变换,并且每轮加上前一轮的结果

3、HAVAL

      为MD5的改进版本。轮数可以为3、4或5,输出长度分别为128、160、192或224位

4、SHA-1

      由NIST开发,1993年发表。输入最大长度为2^64位的数据,输出160位的消息摘要

5、SHA-256

      输出由160位扩大到256位,迭代次数由80次增加到128次

6、SHA-384

      输出扩大到384位,迭代次数增加到192次

7、SHA-512

      输出扩大到512位,迭代次数增加到256次

 

 


 

3、MD5算法验证软件完整性时可能出现的问题

      MD5算法是一种摘要算法,它可以从多个字节组成的串中计算出由32个字节构成的“特征串”。对于超过32字节的串来说,MD5计算得出的值必然是其一个子集,所以必然存在两个(或更多)不同的串能够得出相同MD5值的情况,这种情况就叫做MD5碰撞。

      几位密码学家使用 “构造前缀碰撞法”(chosen-prefix collisions)来进行攻击(是王小云所使用的攻击方法的改进版本),他们所使用的计算机是一台Sony PS3,且仅用了不到两天。如果仅仅是想要生成MD5 相同而内容不同的文件的话,在任何主流配置的电脑上用几秒钟就可以完成。

      他们的结论:MD5 算法不应再被用于任何软件完整性检查或代码签名的用途。

 

      不仅仅是老师给出链接中的例子,这两张截然不同的图片却有相同的MD5:

 

MD5算法验证软件完整性时可能出现的问题:

1、文件篡改

2、木马病毒植入

3、传输错误、中断

转载于:https://www.cnblogs.com/huyifeng/p/9015263.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值