什么是数字签名?
消息和消息摘要
- 该文档称为消息。
- 指纹称为消息摘要。
- 为了保持完整性,散列函数应用于消息以创建消息摘要或指纹。
消息验证码 (MAC)
- 使用散列函数创建的摘要也称为修改检测代码 (MDC)。
- MDC 使用无密钥散列函数。
- 要提供身份验证,请使用消息身份验证代码 (MAC)。
- MAC 使用密钥散列函数,即在发送方和接收方站点之间使用对称密钥。
电子签名
MAC(消息验证码)用于提供消息完整性和消息验证,但它需要在发送方和接收方之间建立对称密钥。另一方面,数字签名使用一对非对称密钥。
有效的数字签名可帮助接收者知道消息来自真实的发送者,并且不会在两者之间进行更改。
什么是签名?
我们签署一份文件以表明该文件由我们批准或由我们创建。签名是向收件人证明此文档来自正确来源的证明。文件上的签名仅仅意味着文件是真实的。
当 A 向 B 发送消息时,B 需要检查消息的真实性并确认消息来自 A 而不是 C。因此 B 可以要求 A 对消息进行电子签名。证明A身份的电子签名也称为数字签名。
传统签名与数字签名
Conventional Signature | Digital 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 中使用接收者的私钥和公钥。
- 在数字签名中使用发件人的私钥和公钥。
数字签名过程
- 签署文件
- 签署摘要
签署文件
- 使用发件人的私钥加密文档。
- 使用发件人的公钥解密文档。
签署摘要
- 如果我们处理长消息,使用公钥是非常低效的。解决方案是签署消息摘要。
- 消息摘要与消息具有一对一的关系。
- 摘要可以由发件人站点上的消息组成。
- Digest 然后使用发件人的私钥完成签名过程。
- 然后,发送者向接收者发送消息和签名。
- 在使用公共散列函数的接收方站点,根据接收到的消息创建摘要。
- 使用验证过程确定签名的认证。
数字签名的特点
消息完整性
它是通过在签名和验证算法中使用散列函数来保存的。
消息认证
使用发件人的公钥验证消息。当 A 向 B 发送消息时。 B 使用 A 的公钥进行验证,A 的公钥不能创建与 C 的私钥相同的签名。
消息不可否认性
为了提供消息不可否认性,需要受信任的第三方。
- A 从消息中创建一个签名,然后将消息发送给 B,并将签名发送给可信中心。
- 该中心验证 A 公钥并验证来自 A 的消息。
- 中心保存带有发送者身份、接收者身份和时间戳的消息副本。
- 该中心使用私钥创建新签名。
- 中心向B发送一条消息,一个新的签名,A的身份,B的身份。
- B 使用可信中心的公钥验证消息。
将来,如果 A 否认其站点没有发送任何消息,则中心可以显示已保存消息的副本。