数字签名:为什么需要它?

时间:2018-11-03 23:05:28

标签: encryption hash cryptography digital-signature

我不明白一些可能很琐碎但对我来说仍然没有意义的东西,为什么如果可以使用公共密钥解密它们,我们为什么需要数字签名。根据本文https://www.instantssl.com/https-tutorials/digital-signature.html,Alice编写了一条消息,然后使用pk对消息进行哈希处理和加密。加密的消息被发送出去,而Bob仅使用公共密钥形式Alice对其进行解密。他们的哈希值比较等等... 我知道除了第一步之外,如果bob可以仅使用公共密钥解密消息,那又如何防止消息被其他人解密?如果这不是数字签名(加密)的目的,为什么?我们还要费心加密消息的哈希值吗?鲍勃不能简单地运行接收到的消息的哈希值并将其与爱丽丝发送给他的哈希值进行比较吗?

4 个答案:

答案 0 :(得分:2)

加密和数字签名用于两个非常不同的目的。您让他们感到困惑。

我们对消息进行哈希处理,使用我们的私钥加密哈希,然后将 plaintext 消息和加密的哈希发送给我们的收件人。

我们的接收者使用我们的公钥来解密散列,自己对纯文本消息进行散列,并比较这两个散列。

如果哈希匹配,则收件人可以告诉您消息实际上确实来自我们(或者至少是具有私钥的人)。

答案 1 :(得分:1)

数字签名类似于纸签。专业人士可以通过比较您以前的签名来验证纸上的签名是否属于您。

在数字签名中,为了验证您的电子签名,第三方使用您的公开密钥,公钥来验证只能由您的私钥签名的签名。


  

Alice编写一条消息,然后使用pk对消息进行哈希处理和加密。加密的消息被发送出去,而Bob仅使用公共密钥形式Alice对其进行解密。

我认为您在这里感到困惑。

  • 如果这是爱丽丝发送给鲍勃的消息,则爱丽丝使用鲍勃的公钥。 Bob可以使用他的私钥解密此消息。

  • 如果Alice想要对一条消息使用Alice的私钥进行签名,则对该消息进行签名并发送给Bob,他可以使用Alice的公钥来验证签名。

  

我理解除了第一步之外,如果bob可以仅使用公共密钥解密邮件,那么如何防止邮件被其他任何人解密呢?如果这不是数字签名的重点

  • Bob使用Alice的公钥验证签名。每个人都可以验证。签名不包含消息,包含消息的哈希。

答案 2 :(得分:0)

  

如果哈希匹配,则收件人可以告诉您消息实际上确实来自我们(或者至少是具有私钥的人)

这是不正确的。 。匹配的哈希仅确认消息没有更改,但是没有签名B则无法验证整个消息是否来自A

您可以拥有一个活跃的攻击者夏娃,他可以创建一条新的假消息,生成哈希并为鲍勃加密。鲍勃(Bob)无法确定谁发送了该邮件。

  

加密邮件的哈希值

不是真的,消息是签名的,不是加密的。

  • A使用她的私钥对消息哈希应用解密操作并将其作为签名发送
  • B使用A的公钥对签名进行加密操作,结果必须有很多散列。现在B可以确定签名来自A

    在数学上,签名与解密是相同的操作,但实际上,differences主要用于填充

答案 3 :(得分:0)

其他答案的补充:
您可能会想,“如果签名只是附件,我是否只能删除它?”是的你可以。但是它不再签名了,因此在大多数情况下,它不再是有效的文档,而只是一个普通的文件。签名仅用于验证已从该用户签名/创建了此文件/文档的确切版本。因此,每个人都应该能够验证这一点。