当前位置:主页 > 查看内容

关于SHA256的心得理解(流程层面)

发布时间:2021-07-05 00:00| 位朋友查看

简介:## 关于SHA256的心得理解 1. 哈希算法的分类 2. 什么是SHA256算法 3. SHA256算法流程 4. 总结 最近在整理一些关于加密的常用算法虽然都是比较成熟的东西了但是很多的流程不是很便于理解于是整理成了一系列文档和大家一起分享希望大家理性讨论喜欢的点点赞啊……


最近在整理一些关于加密的常用算法,虽然都是比较成熟的东西了,但是很多的流程不是很便于理解,于是整理成了一系列文档,和大家一起分享,希望大家理性讨论,喜欢的点点赞啊!!!啾咪!!!

1. 哈希算法的分类

2. 什么是SHA256算法

3. SHA256算法流程

4. 总结

1. 哈希算法的分类
简单来说,哈希算法主要分为以下几类:CRC,MD,SHA,Blake
图片来源:自己做的
2.什么是哈希算法
SHA256是SHA-2下细分出的一种算法,SHA-2,名称来自于安全散列算法2(英语:Secure Hash Algorithm 2)的缩写,一种密码散列函数算法标准。对于任意长度的消息,SHA256都会产生一个256位长的哈希值,称作消息摘要
图片来源:自己做的
这样的函数是最常用于数字签名密码保护

3. 哈希算法流程
哈希算法的流程主要包括四个部分:

3.1.常量初始化
3.2. 信息预处理
3.3. 逻辑运算公式
3.4. 计算得到信息摘要

3.1.常量初始化:

常量初始化主要包括两个部分,分别是8个哈希初值H(0)—H(7),64个哈希常量K(1)—K(64)。
其中哈希初值是对自然数中前8个质数(2,3,5,7,11,13,17,19)的平方根的小数部分取前32bit而来。

如:√2的小数部分约 0.414213562373095048
0.414213562373095048 = 0x6a09e667(十六进制,取前32位)

其中哈希常量64个常量,对自然数中前64个质数(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97…)的立方根的小数部分取前32bit而来。

在这一部分,网上的其他大佬已经说的足够清晰了,在此不做赘述。

3.2. 信息预处理

在这里,话不多说,让你用一张图搞懂!
图片来源:自己做的
记住这里的M,后面会用到
3.3. 逻辑运算公式
图片来源:站内大佬
这些公式,记住他们,待会会用到的!

3.4. 计算得到信息摘要
图片来源:自己做的
SHA256的本质就是通过该算法,把输入数据变成一个亲妈都不认识的输出,其中M(i)就是信息预处理得到的结果,当i=0时,H0(0)…H0(7)即为哈希初值。
图片来源:自己做的
定义a…g八个中间变量,后面会用到的;

自己做的
这个就是计算的核心步骤了,主要是**W(j)**的构建,在程序中,这一步骤也是很容易实现的。
其中各个部分的计算是怎么来的呢?请参考3.3的逻辑运算公式。
需要注意的是:每得到一组新的a…g都要经过64轮的计算
自己做的
最后就是不断重复这一过程,直至计算出最后的信息摘要。
其中N的大小,和M(i)中,i的大小相关,即“分块”分的越多,N越大。

4. 总结
SHA256是一种常见的加密算法,安全性高,广泛应用于数字签名和密码加密

SHA256算法较为成熟,可实现性高

第一次写文章,大家多多关照!!!
评论区欢迎大家理性讨论!!!
因为鄙人和单片机啊、嵌入式啊打交道多一点,后续可能还会分享一些其他的加密。签名以及在单片机上实现的文章。
关注我!!!点点赞!!!点赞超过15个,第二天就更新!!!

;原文链接:https://blog.csdn.net/Robin_Aim/article/details/115702992
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐