最近我一直在处理数字签名。在通信中应用数字签名的一些常见原因是真实性、完整性和不可否认性。
数字签名也提供保密性吗?
最近我一直在处理数字签名。在通信中应用数字签名的一些常见原因是真实性、完整性和不可否认性。
数字签名也提供保密性吗?
不,不是的。你可以参考维基百科:
https://en.wikipedia.org/wiki/Digital_signature
“数字签名是用于证明数字消息或文档真实性的数学方案。有效的数字签名使接收者有理由相信该消息是由已知发件人创建的,发件人不能否认已发送该消息(身份验证和不可否认性),并且消息在传输过程中没有改变(完整性)。”
单独的数字签名并不能提供机密性,因为它不会阻止您想要保密的信息的泄露。加密将是提供机密性的机制的一个示例。
数字签名确保了机密性。也就是说,一旦浏览器验证了签名,它就会信任服务器并使用服务器的公钥加密发送给它的消息,从而确保机密性。
如果您在数字签名中使用非对称加密
非对称加密提供了一种通过使用一对密钥来加密和解密信息的方法(与只使用一个密钥的对称加密相反)。在非对称加密中,使用一对中的一个密钥加密的消息只能由该对中的另一个密钥解密。
例如,让我们创建一对密钥(称为密钥对)并命名密钥 A 和 B。任何使用密钥 A 加密的消息都只能由密钥 B 解密(甚至密钥 A 都不能用于解密消息)。同样,使用密钥 B 加密的任何消息只能由拥有密钥 A 的人解密。任一密钥都可用于加密消息,但要解密则需要配对中的另一个密钥。
实际上,密钥对中的密钥被命名为私钥和公钥。公钥可以自由分发,但私钥必须由所有者严密保护。
非对称加密可以提供机密性或签名者验证,但不能同时提供两者。为了证明这一点,让我举一个例子。
爱丽丝用她的私钥加密一条消息并将其发送给鲍勃。任何拥有 Alice 公钥的人都可以解密和阅读该消息(她的公钥被广泛分发)。由于任何人都可以阅读该消息,因此它不是机密的。然而,由于 Bob 可以使用 Alice 的公钥解密该消息,他知道它一定是使用 Alice 的私钥加密的。由于 Alice 是唯一拥有私钥的人,Bob 可以确信 Alice 是消息的发起者。使用私钥加密消息提供签名者验证,但不提供机密性。
Bob 使用 Alice 的公钥加密响应并将其发送给 Alice。只有 Alice 可以读取 Bob 的消息,因为只有私钥可以用来解密消息(并且 Alice 是唯一拥有私钥的人)。由于 Bob 加密的消息只有 Alice 可以读取,所以它是机密消息。但是,任何人都可以加密发送给 Alice 的消息(使用她的公钥)并声称自己是 Bob。使用公钥加密消息可提供机密性,但不能提供签名者验证。