安全哈希算法如何工作?

安全散列算法 (SHA) 由美国国家安全局 (NSA) 发明,并于 1993 年通过美国国家标准与技术研究院 (NIST) 作为美国联邦信息处理标准 (FIPS PUB 180) 发布。

SHA 依赖并共享与 MD4 算法相似的构建块。SHA 的设计引入了一种新流程,将输入到压缩功能的 16 字消息块发展为介于其他事物之间的 80 字块。

SHA 的处理如下:

步骤 1 -附加填充位- 原始消息被填充,其持续时间与 448 模 512 一致。尽管消息已经具有所需的长度,但会不断插入填充。填充包括单个 1,后跟必要数量的 0 位。

步骤 2 -附加长度- 将一个 64 位块视为无符号 64 位整数(首先是最基本的字节),并定义原始消息的长度(在步骤 1 中填充之前),添加到消息中。完整消息的长度是 512 的倍数。

步骤 3 -初始化缓冲区- 缓冲区包括五 (5) 个 32 位寄存器,每个寄存器由 A、B、C、D 和 E 表示。这个 160 位缓冲区可用于影响压缩功能的临时和最终结果. 这五个寄存器被初始化为以下 32 位整数(以十六进制表示)。

A = 67 45 23 01

B = ef cd ab 89

C = 98 巴直流铁

D = 10 32 54 76

E = c3 d2 e1 f0

寄存器A、B、C、D实际上和MD5算法中使用的四个寄存器是一样的。但在 SHA-1 中,这些值是以大端格式保存的,它定义了字的最重要字节位于低地址字节位置。因此初始化值(以十六进制表示)如下所示 -

字 A = 67 45 23 01

单词 B = ef cd ab 89

字 C = 98 ba dc fe

字 D = 10 32 54 76

字 E = c3 d2 e1 f0

第 4 步-以 512 位块处理消息- 压缩功能分为 20 个连续步骤,包括四轮处理,每轮由 20 个步骤组成。

这四轮在结构上彼此相同,唯一的区别是每轮需要一个不同的布尔函数,它可以定义为 f1、f2、f3、f4 和四个多重加法常数 Kt (0 ≤t ≤79) 之一,其中是基于正在考虑的步骤。

Step 5 - Output - 处理完最终的 512-bit 消息块 t(考虑到消息被分成 t 个 512-bit 块),可以得到一个 160-bit 的消息摘要。

以上是 安全哈希算法如何工作? 的全部内容, 来源链接: utcz.com/z/297431.html

回到顶部