哈希函数的进一步理解

之前只简单了解了一点哈希的过程,突然看到一些相关内容,再加上数字签名中再次有了新的认识,便忍不住先来再次深入学习一下哈希。

 哈希函数(散列函数)的应用

Hash函数(杂凑函数):将任意长度的消息x压缩固定为固定长度的值y

功能:保证数据完整性:在电子签名(eg:DSS、RSA数字签名)方面应用较广

应用:检测消息完整,提高数字签名速度

比特币(密码学中使用到了哈希和签名):账本使用区块链,交易根据Proof of Work推算出哈希的更适合

哈希函数的属性

基本属性:

压缩性:产生定长输出

有效性:对任意给定消息进行很快

安全属性(一般可认为抗碰撞就一定抗原像):抗原像(单向性)——导致只能穷举,但是穷举需要实现穷举2^{n}次,很困难故安全性能强   ——复杂度2^{n}

                 抗第二原像性:由于输入远比输出多,那么会有两个字符串对应同一输出{非常难找,认为没有})——复杂度2^{n}

                  抗碰撞性(生日攻击):难以找到另一与之相等字符串——复杂度2^{n/2}

攻击方法

碰撞攻击:如果输入不同,输出相同,即意味着两个不同文件可产生相同指纹,从而伪造签名

特殊攻击方法,针对不同杂凑算法有不同攻击方法

生日攻击(可用于各种哈希函数,是一种通用攻击方式):

生日问题涉及的重要概念: 

  1. 1/2:只要攻击的成功概率超过1/2就足以证明该攻击模式是具有威胁的(一般来说,只要复杂度低于穷举的复杂度,或者破解概率高于穷举,那么都算攻击成功)
  2. 为什么会出现这种状况:此例子中,选择的两个人都是随机的,而不是固定一个再去找另一个(这样的话概率会很低:1/364)

定理:设Hash函数h的输出值长为n比特,则经过约2^{n/2}次杂凑运算,找到一对碰撞的概率大于1/2 

长度扩展

可能刚好知道某一部分的结果,在后面进行一些填充,得到哈希值刚好一样

多碰撞攻击

构造n种消息

 注 :“我国王小云院士目前已攻破了美国诸多算法,例如这里的MD5,SHA-1,SHA-0等”(真的好厉害),美国不得不提出新的算法

 标准算法的设计

中国标准SM等一系列算法

eg:SM3
                 填充
                 迭代压缩
                         迭代过程
                         消息扩展
                         压缩函数

MD5,SHA-1,SHA-2

哈希爆破用到的一些:

872d68e16b3f482d81f7a4012ccf9643.png

MD5输出128bit、SHA1输出160bit、SHA256输出256bit
SHA-1是160位的哈希值,而SHA-2是组合值,有不同的位数,其中最受欢迎的是256位。

因为SHA-2有多种不同的位数,导致这个名词有一些混乱。但是无论是“SHA-2”,“SHA-256”或“SHA-256位”,其实都是指同一种加密算法。但是SHA-224,“SHA-384”或“SHA-512”,表示SHA-2的二进制长度。还要另一种就是会把算法和二进制长度都写上,如“SHA-2 384”。

SHA3

运用了海绵结构

他的输入,输出次数不定  

 因此结构,输入和输出长度不定                     

 每一块都要经历此过程

再分别从侧面正面切片行列旋转,交叉各种变换(这个过程目前只进行了了解) 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值