发生数字签名,您可以将私钥应用于特定消息(或大多数情况下该消息的散列).
然后,收件人会将您的公钥 – 不出意外公开 – 然后通过将其应用于签名邮件来验证您的身份.
加密
另一方面,加密会使您获取消息所针对的人的公钥,并将其应用于消息.完成此操作后,您实际上已将其锁定在所有人(包括您自己)之外,解锁该消息的唯一方法是让收件人将其私钥应用于加密邮件.
“应用”
在上述两种情况中,我都使用了“应用”这个术语,这是因为这是我接下来提出最后一个问题的重点.
数字加密和签名基本上是数学上合适的消息表示的数学乘法,通过非常大的数量(公钥/私钥).当私钥被公钥“倍增”时,它们相互抵消(略微简化的描述).
我用Diffie-Helman here编写了一个简化的例子.
问题/安全问题
现在考虑到这一点,这是我正在考虑的情景……
想象一下,您使用标准的非对称加密(pri / pub密钥)来获取秘密消息,并为某人加密.然后,您通过不安全的渠道将该邮件发送给收件人.
窃听者点击该行并捕获您的消息.
然而,对他们的消息是加密的 – 他们猜测消息的真正接收者(具有相应私钥的人)使用相同的公钥/私钥对进行签名,就像她对加密一样.
他们以某种方式操纵/说服信息的真实接收者签署“某些文件”,并且让我们说她做了.文档当然是捕获的消息,但收件人不知道这一点.
刚刚发生了什么?收件人已将其私钥应用于已由其公钥签名的邮件.
然后,她会将消息传回攻击者(让我们假设这是一个盲目签名请求).
袭击者现在有解密的消息?
澄清问题
谢谢所有回应的人 – 似乎我没有说出我的问题,因为每个人都误解了它 – 这是我的错,对此感到抱歉.
澄清:假设对整个消息执行“签名”操作(此处用于学术目的),而不是该消息的散列.是的我知道这不是实际完成的,并且由于原因(包括性能和大小),签名是在消息的固定长度加密哈希上完成的,而不是消息本身,但对于这个问题,请假装这个事实并非如此.
解决方法
你写了:
Digital encryption and signing is
basically the mathematical
multiplication of a
mathematically-suitable representation
of a message,by a very large number
(the public/private keys). When the
private key is “multiplied” by the
public key,they cancel each other out
(somewhat simplified description).
这是不正确的.签名是在明文的加密哈希上执行的,而不是在明文本身上.