当前位置: 首页 > news >正文

密码学基础:搞懂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)

http://www.lryc.cn/news/415411.html

相关文章:

  • C++ 异步编程:std::async、std::future、std::packaged_task 和 std::promise
  • OD C卷 - 石头剪刀布游戏
  • 关于k8s集群中kubectl的陈述式资源管理
  • XML 学习笔记
  • MongoDB未授权访问漏洞
  • 数据安全、信息安全、网络安全区别与联系
  • Jenkins未授权访问漏洞 *
  • 【爬虫原理】
  • 计算机组成原理 —— 指令流水线的基本概念
  • Python爬虫技术 第31节 持续集成和自动化部署
  • 数据结构(C语言版)(第2版)课后习题答案
  • 打开轮盘锁问题(LeetCode)的分析总结及进一步提问
  • python——joblib进行缓存记忆化-对计算结果缓存
  • Linux文件管理
  • 《Unity3D网络游戏实战》学习与实践--制作一款大乱斗游戏
  • 文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑源-荷不确定性的省间电力现货市场潮流风险概率评估》
  • Pinterest 选择采用 TiDB
  • 【Python】 如何用 Docker 打包一个 Python 脚本
  • 从“幕后”到“台前”:一文读懂API经济如何促进企业的创新与增长
  • 解锁PDF新姿势:2024年PDF转图片工具精选
  • Node.js(8)——Express的基本使用
  • Linux--应用层协议HTTP
  • Flux:Midjourney的新图像模型挑战者
  • RabbitMQ高级特性 - 消费者消息确认机制
  • PermX-htb
  • 解密RCE漏洞:原理剖析、复现与代码审计实战
  • 打造智能家居:用React、Node.js和WebSocket构建ESP32设备控制面板(代码说明)
  • 计网:从输入URL到网页显示期间发生了什么
  • 龚宇引以为傲的“爆款制造营”,爱奇艺怕是要爽约了
  • org.springframework.web.client.HttpClientErrorException$NotFound异常