📜  计算机网络网络|数字签名

📅  最后修改于: 2020-11-10 04:39:28             🧑  作者: Mango

电子签名

数字签名是一种用于验证消息的真实性和完整性的技术。我们知道安全性有四个方面:隐私,身份验证,完整性和不可否认性。我们已经讨论了安全性的第一方面,其他三个方面可以通过使用数字签名来实现。

数字签名的基本思想是对文档进行签名。当我们以电子方式发送文档时,我们也可以对其进行签名。我们可以通过两种方式对文档进行签名:对整个文档进行签名和对摘要进行签名。

签署整个文件

  • 在数字签名中,公钥加密技术用于对文档进行签名。但是,此处的公用密钥和专用密钥的角色不同。发送者使用私钥来加密消息,而接收者使用发送者的公钥来解密消息。
  • 在数字签名中,私钥用于加密,而公钥用于解密。
  • 通过使用密钥加密无法获得数字签名。

数字签名用于实现以下三个方面:

  • 完整性:数字签名保留消息的完整性,因为如果任何恶意攻击截获了一条消息并对其进行了部分或全部更改,则解密后的消息将是不可能的。
  • 身份验证:我们可以使用以下推理来说明如何对消息进行身份验证。如果入侵者(用户X)发送假装来自其他人(用户A)的消息,则用户X使用自己的私钥对消息进行加密。通过使用用户A的公钥解密该消息。因此,这使该消息不可读。用X的私钥加密和用A的公钥解密会导致垃圾值。
  • 不可否认性: Digital Signature还提供不可否认性。如果发件人拒绝发送消息,则将在明文上测试其对应于其公共密钥的私有密钥。如果解密后的消息与原始消息相同,则我们知道发件人已发送了该消息。

注意:Digital Signature不提供隐私。如果需要隐私,则可以应用另一层加密/解密。

签署文摘

  • 如果消息简短,则公共密钥加密是有效的。如果消息很长,则公钥加密使用效率低下。解决此问题的方法是让发件人签署文档的摘要,而不是整个文档。
  • 发送者创建文档的微型版本(摘要),然后对其进行签名,接收者检查该微型版本的签名。
  • 哈希函数用于创建消息的摘要。哈希函数从可变长度消息中创建一个固定大小的摘要。
  • 使用的两个最常见的哈希函数:MD5(消息摘要5)和SHA-1(安全哈希算法1)。第一个产生120位摘要,而第二个产生160位摘要。
  • 哈希函数必须具有两个属性才能确保成功:
    • 首先,摘要必须是一种方式,即摘要只能从消息中创建,反之亦然。
    • 其次,哈希是一对一的函数,即两个消息不应创建相同的摘要。

以下是确保安全性的步骤:

  • 消息的微型版本(摘要)是通过使用哈希函数创建的。
  • 摘要使用发件人的私钥进行加密。
  • 对摘要进行加密后,加密的摘要将附加到原始消息中并发送给接收者。
  • 接收者接收原始消息和加密摘要,然后将两者分开。接收者在原始消息上实现哈希函数以创建第二个摘要,并且它还使用发送者的公钥对接收到的摘要进行解密。如果两个摘要相同,那么将保留所有安全方面。

在发件人站点

在接收方站点