数字签名
数字签名是指您应用您的私钥针对特定消息(或大多数情况下是该消息的哈希值)。
然后收件人会拿走你的公钥- 毫不奇怪,它是公开的 - 然后通过将其应用到签名的消息来验证您的身份。
加密
另一方面,加密是通过公钥收件人的权限,并将其应用于该消息。完成此操作后,您实际上已将其锁定,无法让任何人(包括您自己)访问,而解锁该消息的唯一方法是收件人将他们的私钥加密信息。
“申请”
在上述两种情况下,我都使用了“应用”一词,因为这是我提出最后一个问题的下一个要点。
数字加密和签名基本上是将一个数学上合适的消息表示与一个非常大的数字(公钥/私钥)进行数学乘法。当私钥与公钥“相乘”时,它们会相互抵消(稍微简化的描述)。
我使用 Diffie-Helman 编写了一个简化的示例这里。
问题/安全顾虑
现在考虑到这一点,这是我正在考虑的情景......
想象一下,您获取一条秘密消息,并使用标准非对称加密技术(公钥/私钥)为某人加密。然后通过不安全的渠道将该消息发送给收件人。
窃听者会窃听线路并获取您的消息。
然而,发送给他们的消息是加密的,但是,他们猜测消息的真正接收者(拥有相应私钥的人)使用相同的公钥/私钥对进行签名,就像她加密时一样。
他们以某种方式操纵/说服消息的真正接收者签署“某份文件”,假设她确实签署了。该文件当然是捕获的消息,但接收者并不知道这一点。
刚刚发生了什么?收件人已将她的私钥应用于已用她的公钥签名的消息。
然后,她会将信息交还给攻击者(为了论证的目的,我们假设这是一个盲签请求)。
攻击者现在有解密的消息了吗?
问题澄清
感谢所有回复的人 - 似乎我没有正确表述我的问题,因为每个人都误解了它 - 这是我的错,对此我很抱歉。
澄清:假设“签名”操作(此处出于学术目的)是针对整个消息而不是该消息的哈希值执行的。是的,我知道这并非实际执行的操作,出于某些原因(包括性能和大小),签名是在消息的固定长度加密哈希值上进行的,而不是在消息本身上进行的,但对于这个问题,请假装情况并非如此。
答案1
您基本上是在问应用签名和运行解密是否以相同的方式执行 - 答案是否定的。
你写了:
数字加密和签名基本上是将一个数学上合适的消息表示与一个非常大的数字(公钥/私钥)进行数学乘法。当私钥与公钥“相乘”时,它们会相互抵消(稍微简化的描述)。
这不对。签名是针对明文的加密哈希值执行的,而不是针对明文本身。
答案2
假设错误;加密的反面是解密,而签名对两者都不具有传递性。对消息进行签名对加密没有任何影响。
答案3
原则上,签名仅对消息的哈希值进行,而不是对消息本身进行。
除此之外,你的情况目前听起来不太可能发生。没有人提供自动签名服务。在什么实际情况下这种情况真的会发生?难道有人在签名之前不会看一看吗?他们为什么要签署(显然)垃圾文件?