介绍哈希算法及其在数字签名中的应用

已完成

到目前为止,你已经了解如何使用加密来防止消息被窥探。 加密还用于验证数据(如文档和图像)是否被篡改。 通过称为哈希的过程完成此操作。

什么是哈希?

哈希使用算法(也称为哈希函数)将原始文本转换为固定长度的唯一值。 这称为哈希值。 每次使用同一算法对相同的文本进行哈希处理时,都会生成相同的哈希值。 该哈希值随后可用作其关联数据的唯一标识符。

Diagram showing an example of a hashing function accepting a plaintext message and generating a hash value.

哈希不同于加密,因为它不使用密钥,而且哈希值无法解密变回原始值。

存在多种不同类型的哈希函数。 一种常用的(可能会在与安全专家进行讨论时听到)是安全哈希算法 (SHA)。 SHA 是一系列哈希算法,其中每个算法的工作原理都不同。 详细信息超出了本内容的范围,但更常用的 SHA 之一是 SHA-256,它生成 256 位长的哈希值。

什么是数字签名?

哈希通常应用于数字签名中。 就像一张纸上的签名一样,数字签名可以验证文档上是否带有实际上来自签名者的签名。 此外,数字签名用于验证文档是否被篡改。

数字签名是如何工作的?

对于对文档进行签名的每个人来说,数字签名始终是唯一的,就像手写的签名一样。 所有数字签名都使用非对称密钥对:私钥和公钥。

通过使用数字签名服务,Monica 可以为文档分配数字签名以证明它未发生更改。 如果对文档进行签名,将为该文档创建一个带时间戳的哈希。 然后使用 Monica 的私钥对该哈希进行加密。 接下来,签名服务将哈希追加到未加密的原始文档。 最后,数字签名的文件和 Monica 的公钥都将发送给 Victoria。

当 Victoria 收到数字签名的文档时,她使用相同的数字签名服务从文档中提取 Monica 的哈希,并为原始纯文本文档生成一个新的哈希。 然后,使用 Monica 的公钥,对加密的哈希进行解密。 如果 Monica 的解密哈希与 Victoria 创建的文档匹配,则数字签名有效。 Victoria 随后知道该文档没有被篡改。

以下两分钟的视频演示了数字签名的工作原理及其如何显示文档是否已被篡改。

数字签名需要使用数字签名服务。 许多公司都提供此功能。 最常用的两种是 DocuSign 和 Adobe Sign。