📜  什么是数字签名?

📅  最后修改于: 2022-05-13 01:57:01.944000             🧑  作者: Mango

什么是数字签名?

消息和消息摘要

  • 该文档称为消息。
  • 指纹称为消息摘要。
  • 为了保持完整性,散列函数应用于消息以创建消息摘要或指纹。

消息验证码 (MAC)

  • 使用散列函数创建的摘要也称为修改检测代码 (MDC)。
  • MDC 使用无密钥散列函数。
  • 要提供身份验证,请使用消息身份验证代码 (MAC)。
  • MAC 使用密钥散列函数,即在发送方和接收方站点之间使用对称密钥。

电子签名

MAC(消息验证码)用于提供消息完整性和消息验证,但它需要在发送方和接收方之间建立对称密钥。另一方面,数字签名使用一对非对称密钥。

有效的数字签名可帮助接收者知道消息来自真实的发送者,并且不会在两者之间进行更改。

什么是签名?

我们签署一份文件以表明该文件由我们批准或由我们创建。签名是向收件人证明此文档来自正确来源的证明。文件上的签名仅仅意味着文件是真实的。

当 A 向 B 发送消息时,B 需要检查消息的真实性并确认消息来自 A 而不是 C。因此 B 可以要求 A 对消息进行电子签名。证明A身份的电子签名也称为数字签名。

传统签名与数字签名

Conventional SignatureDigital Signature
A conventional Signature is part of a document. For example, when we sign a cheque the signature is present on the cheque not on a separate document.A digital signature is not part of a document. This means the sender sends two documents message and signature.
To verify conventional signatures the recipient compares the signature on the document with the signature on file. So recipient needs to have a copy of this signature on file for comparison.To verify digital signatures the recipient applies verification technique to a combination of message and the signature to verify authenticity. So here a copy of the signature is not stored anywhere.
the One to Many relationships between document and signature.One to One relationship between message and signature. Every message has its own signature.
Copy of signed document can be distinguished from the original signature on file.No distinction can be made unless there is a factor of time(timestamp) on the document.
  • 数字签名需要一个公钥系统。发送者使用私钥签署文件,验证者使用公钥验证文件。

密码学与数字签名

  • 在 Cryptosystem 中使用接收者的私钥和公钥。
  • 在数字签名中使用发件人的私钥和公钥。

数字签名过程

  1. 签署文件
  2. 签署摘要

签署文件

  • 使用发件人的私钥加密文档。
  • 使用发件人的公钥解密文档。

签署摘要

  • 如果我们处理长消息,使用公钥是非常低效的。解决方案是签署消息摘要。
  • 消息摘要与消息具有一对一的关系。
  • 摘要可以由发件人站点上的消息组成。
  • Digest 然后使用发件人的私钥完成签名过程。
  • 然后,发送者向接收者发送消息和签名。
  • 在使用公共散列函数的接收方站点,根据接收到的消息创建摘要。
  • 使用验证过程确定签名的认证。

数字签名的特点

消息完整性

它是通过在签名和验证算法中使用散列函数来保存的。

消息认证

使用发件人的公钥验证消息。当 A 向 B 发送消息时。 B 使用 A 的公钥进行验证,A 的公钥不能创建与 C 的私钥相同的签名。

消息不可否认性

为了提供消息不可否认性,需要受信任的第三方。

  • A 从消息中创建一个签名,然后将消息发送给 B,并将签名发送给可信中心。
  • 该中心验证 A 公钥并验证来自 A 的消息。
  • 中心保存带有发送者身份、接收者身份和时间戳的消息副本。
  • 该中心使用私钥创建新签名。
  • 中心向B发送一条消息,一个新的签名,A的身份,B的身份。
  • B 使用可信中心的公钥验证消息。

将来,如果 A 否认其站点没有发送任何消息,则中心可以显示已保存消息的副本。