密码学基础:搞懂Hash函数SHA1、SHA-2、SHA3(2)

目录

1.引入

2. SHA512-224\256

3.SHA-3

4.MD5

5.SM3


1.引入

上篇密码学基础:搞懂Hash函数SHA1、SHA-2、SHA3(1)-CSDN博客,我们先就将基础的SHA1\2讲解了,接下来我们继续聊SHA-3、SHA2变体SHA512_224\256等

2. SHA512-224\256

SHA512生成512位消息摘要,初始IV为:

    (0x6A09E667F3BCC908), (0xBB67AE8584CAA73B),

    (0x3C6EF372FE94F82B), (0xA54FF53A5F1D36F1),

    (0x510E527FADE682D1), (0x9B05688C2B3E6C1F),

    (0x1F83D9ABFB41BD6B), (0x5BE0CD19137E2179)

SHA512_224生成224位消息摘要,初始IV为:

(8C3D37C819544DA2),(73E1996689DCD4D6),

(1DFAB7AE32FF9C82),(679DD514582F9FCF),

(0F6D2B697BD44DA8),(77E36F7304C48942),

(3F9D85A86A1D36C8),(1112E6AD91D692A1)

SHA512_256生成256bit消息摘要,初始IV为:

(22312194FC2BF72C),(9F555FA3C84C64C2),

(2393B86B6F53B151),(963877195940EABD),

(96283EE2A88EFFE3),(BE5E1E2553863992),

(2B0199FC2C85B8AA),(0EB72DDC81C52CA2)

以明文0x112233为例,SHA512、SHA512_224、SHA512_256的hash值分别为:

图 2 基于SHA512 消息摘要

图 3  基于SHA512_224 消息摘要

图 4  基于SHA512_256 消息摘要

从上图可以看到,即使相同的数据,虽然同样是基于SHA512,但由于IV的不同,从而影响到了消息摘的生成。

3.SHA-3

SHA-3是NIST在2015年新发布的Hash函数标准,目标是为了从设计原理上与SHA2进行区分,从而提升安全性。

该算法是有Keccak团队提出,具备与MD、SHA-1/2等迭代结构不一样的海绵结构,抵抗传统的碰撞攻击和第二原像攻击,如下:

图 5 碰撞攻击和第二原象攻击

根据NIST.FIPS.202中描述,海绵结构如下所示:

图 6 SHA-3海绵结构

同样的,SHA3也是一系列hash函数的统称,支持的算法包括:SHA3-224\256\384\512。

​​​​​​​4.MD5

MD5全称MD5 Message-Digest算法,发布于1992年,作用是将任意长度的消息作为输入,并产生输入的128位“指纹”或“消息摘要”作为输出。

与SHA-1类似,它也已经被碰撞攻击攻破,现目前基本已经弃用。

​​​​​​​5.SM3

SM3全称ShangMi 3,是我们国家关于Hash函数的标准,可以将任意有限长度的数据,输出为消息摘要长度为256位的比特串,广泛用于数字签名、MAC生成等等。

其初始向量为:

(7380166f),(4914b2b9),(1724422d7),(da8a0600),

(a96f30bc),(163138aa),(e38dee4d),(b0fb0e4e)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CyberSecurity_zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值