在数字签名的上下文中, message 通常是哈希值 ,它是某些文档的摘要(常规意义上的 message )。因此,当您以适当的方式签署文档时,您正在应用由签名算法定义的单向变换 消化 该文件 不是整个文件。
当然,您可以基于对称或非对称加密技术,或者同时在两者上发明一些其他消息认证方法。但是因此你肯定会重新发明轮子,并且很有可能你的轮子会变成四倍左右。数字签名算法专为公钥基础设施内的无缝身份验证而设计。所以适当地使用它们。
它们都不起作用。
的 攻击第一个: 强> Eve在中间攻击中安装了一名男子,拦截了Alice发送的所有邮件。而不是转发 m 她转发 n 。而不是签名 m 用Alice的私钥,她转发签名 n 用她的私钥。她向Bob发送了她的公钥,而不是Alice的公钥。 Bob永远不会看到差异,因为他事先并不知道Alice公钥。
m
n
的 攻击第二个: 强> 拦截来自Alice的所有消息(并抛弃它们)并创建与Alice'相同的消息,但是 n 代替 m 。不要忘记假装是爱丽丝。
问题的根源是Bob需要有某种理解 谁 爱丽丝真的是。如果你对“比尔盖茨”的了解比他的名字更多,那么我很容易冒充他。数字签名的标准假设是Bob从安全源知道Alice的公钥,或者他们之前通过安全通道交换了它。然后,鲍勃可以检查爱丽丝的签名,反对爱丽丝的公共密钥。