Hashing算法简介

197 阅读5分钟

Hashing Algorithms main

哈希算法简介

哈希算法是一种使用哈希函数来映射数据的算法。散列函数是一种数学比较,从原始数据中给出数据的摘要。用他们的话说,散列函数将一个值的大小转换为一个特定的大小。在网络攻击的世界里,各种散列算法被用来保护我们的数据。
由于其安全功能,散列算法被用于数字签名、认证、消息认证码、指纹、人脸锁、检测损坏的文件、校验等领域。
在这篇文章中,我们将讨论两个最重要的散列算法 - 消息摘要和安全散列函数。

信息摘要

消息摘要是一个原始消息的摘要。消息摘要用于验证数据的完整性。完整性意味着它确保从用户发送的数据和在接收方收到的数据是相同的。任何第三方都不会改变它们。消息摘要有不同的版本。第一个是MD,这是Ron Rivest开发的消息摘要。之后,他又提出了另一个具有新功能的版本,这就是所谓的MD2。但MD2看起来相当弱,所以Rivest开始研究MD3。MD3也是一个失败的版本。这就是为什么它没有被发布。在那之后,Rivest开发了MD4。很快,他又开发了MD5。MD5的速度相当快,而且符合要求。因此,它在数据完整性方面非常受欢迎。在本节中,我们将看到消息摘要5,即MD5算法
MD5产生一个128位的消息摘要。它的输入是512个块,这些块被分成16个(每个32位)子块。它产生的输出是四个32位块的集合,即它产生了128位的信息摘要。

MD5的工作原理

1步:填充 - 在第一步中,在原始信息中添加填充位,使原始信息的长度等于512的64位的倍数。
第2步:添加长度 - 一旦填充位被添加,原始信息的长度被计算并添加到信息的末端。
3
步:将输入分成512位的块--输入信息被分成块,每个块的长度为512位。
第4步: 初始化链式变量--在这一步中,四个变量A、B、C、D被初始化。每个变量都是32位数。
第5步: 处理块--一旦变量被初始化,算法的主要工作就开始了。
- 将所有变量A、B、C、D复制到a、b、c、d中
- 将512位的当前块分成16个子块(每个32位)。
- 在这一步进行7轮运算。这些轮回的迭代过程如下
1.该过程在b、c和d上执行。该过程p在所有四轮中都会不同。
2. 变量a到过程p的输出。
3.消息子块M[i]到步骤2
4. 常数t[k]到步骤3的输出。
5.第4步的输出被左移s位
6.在第5步的输出中加入变量b。
7.接下来,abcd将是第6步的输出。

在下图的帮助下,你可以更容易理解MD5的工作。

Working of MD5

SHA (安全哈希算法)

SHA是安全哈希算法的缩写。它是由美国国家标准和技术研究所(NIST)开发的。SHA是在MD5之后开发的。SHA被设计用来获取原始信息并生成原始信息的信息摘要。这个算法背后的主要目标是识别产生相同信息摘要的信息。

SHA算法的工作原理

第1步: 填充 - 在这一步中,在原始信息的末尾添加传递,这样。消息的长度比512的倍数少64位。
第2步: 附加长度--计算除填充长度以外的消息的长度,并在填充的最后添加一个64位块。
第3步: 将输入分为512位块。输入被分为子块,每个子块的长度为512位。
第4步: 初始化链式变量--五个变量,即A、B、C和E,被初始化。
第5步: 变量被初始化后,算法的主要工作将开始。
-
- 将512位的当前块分成16个子块,每个子块32位。
- SHA执行四轮,每轮20步。每一轮需要一个521位的当前块,寄存器a、b、c、d和E以及常数k[t]作为三个输入。

你将了解SHA是如何在给定的图表的帮助下工作的。

Working of SHA algorithm

在SHA家族中,SHA-512是最广泛使用的。这里我们将讨论SHA-512算法。

SHA-512

SHA-512算法的输入是2到128位的信息长度,并生成512位的信息摘要。

SHA-512的工作原理

第1步: 填充--在信息的末尾添加位置,这样信息的长度将是128位的1024倍。
第2步: 添加长度--计算除填充以外的信息长度,并在填充的末尾添加一个128位的块
第3步: 将输入分成1024位的块--将输入块分成1024位的子块。
第4 步:初始化链式变量--初始化A到H的变量。
第5步: 处理区块--区块的处理过程如下
- 将所有链式变量A到H复制到a到h中。
- 将1024位的当前区块分成16个子区块,每个64位。
- 在SHa-512中,执行80轮。

Working of SHA-512

结论--哈希算法

所以,我们已经看到了一些流行的散列算法,如MD5、SHA、SHA-512,以及它们的工作原理。我希望你会发现这篇文章对你有帮助。