1.2. 数字签名


篡改检测依赖于称为 单向哈希 (也称为 消息摘要)的数学函数。单向哈希是固定长度的多个固定长度,具有以下特征:

  • 哈希的值对于散列数据是唯一的。对数据的任何更改(甚至删除或更改单个字符)都会生成不同的值。
  • 散列数据的内容无法从哈希中推断出来。

第 1.1.2 节 “公钥加密” 所述,可以使用私钥进行加密,以及相应的公钥进行解密。虽然在加密敏感信息时不建议使用,但它是数字签名任何数据的关键部分。签名软件不加密数据本身,而是创建数据的单向哈希,然后使用私钥加密哈希。加密的哈希以及其他信息(如哈希算法)被称为数字签名。

图 1.3 “使用数字签名来验证数据完整性” 演示了可以使用数字签名来验证已签名数据的完整性的方式。

图 1.3. 使用数字签名来验证数据完整性

04digsgn

图 1.3 “使用数字签名来验证数据完整性” 显示转移到某些签名数据的接收方的两个项目:原始数据和数字签名,它是使用签名者的私钥加密的原始数据的单向哈希。要验证数据的完整性,接收软件首先使用公钥解密哈希。然后,它使用生成原始哈希的同一哈希算法来生成同一数据的新单向哈希。(有关使用的哈希算法的信息与数字签名一起发送。)最后,接收软件将新哈希与原始哈希进行比较。如果两个哈希匹配,则数据自签名以来没有改变。如果不匹配,则数据可能是因为签名以来已被篡改,或者可能会使用与签名者提供的公钥不匹配的私钥创建签名。

如果两个哈希匹配,则接收方可以确定用于解密数字签名的公钥与用于创建数字签名的私钥对应。确认签名人的身份还需要某种方式确认公钥属于特定实体。有关验证用户的更多信息,请参阅 第 1.3 节 “证书和身份验证”

数字签名与手写签名类似。在数据签名后,以后很难拒绝这样做,假设私钥没有被破坏。这种数字签名的质量提供了高度的非缓解;数字签名使签名人难以拒绝对数据进行签名。在某些情况下,数字签名是作为手写签名的法律绑定。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.