单向散列函数下的碰撞性

本文深入探讨了单向散列函数的特性,包括固定长度输出、快速计算及抗碰撞性。重点阐述了弱抗碰撞性和强抗碰撞性的概念,并指出在有限范围内碰撞的必然性。通过SHA-1举例,解释了碰撞和抗碰撞性的重要性,同时强调了单向散列函数在信息安全中的应用。
摘要由CSDN通过智能技术生成

本文源自对《图解密码技术》第七章单向散列函数的解读

斜体部分为自己的思考。

概念

单向散列函数有一个输入和一个输出,其中输入称为消息,输出称为散列值

单向散列函数的性质

*第一条、*根据任意长度的消息计算出固定长度的散列值。
*第二条、*能够快速计算出散列值。
*第三条、*消息不同散列值也不同。

第一条和第二条好解决,但是第三条却只能在有限的范围内实现。更可以说第一条和第三条是逻辑互斥的。

以书中提到的SHA-1单向散列函数为例,计算出的散列值长度永远是160比特(20个字节)。那就只能表现 2的160次方(1.4615016373309e+48)个散列值。如果不考虑有限范围,出现相同的散列值的不同消息是必然的(如果有1.4615016373309e+48+1个文件,那这个文件必然与前面的1.4615016373309e+48中的某个文件的散列值是相同的)。

在这里插入图片描述

两个不同的消息产生同一个散列值的情况称为碰撞只要散列值的长度是固定的,那碰撞是必然的。

难以发现碰撞的性质称为抗碰撞性正是因为在有限的范围内碰撞是必然的,所才有抗碰撞性可言。

当给定某条消息的散列值时,单向散列函数必须确保要找到和该条消息具有相同散列值的另外一条消息是非常困难的。这一性质称为弱抗碰撞性。单向散列函数必须具备弱抗碰撞性。

和弱抗碰撞性相对的,还有强抗碰撞性。所谓强抗碰撞性,是指要找到散列值相同的两条不同的消息是非常困难的这一性质。密码技术中所使用的单向散列函数,不仅要具备弱抗碰撞性,还必须具备强抗碰撞性。

理解弱抗碰撞性和强抗碰撞性最好的方法是学习针对它们的攻击方式。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值