安全问题是共享密钥泄露了私钥

时间:2018-10-26 06:34:34

标签: cryptography

在以下情况下,如果privateKeyOfA被泄漏,安全问题是什么?有人可以在没有privateKeyOfB的情况下解密邮件吗?

Aes.encrypt(privateKeyOfA,publicKeyOfB,消息) Aes.decrypt(publicKeyOfA,privateKeyOfB)

如果没有,我想为什么我们这里需要privateKeyOfA来获得A的签名?

2 个答案:

答案 0 :(得分:0)

需要签名,因为接收者必须知道消息来自他可以识别的人。如果他无法验证签名,则意味着他不认识该人。

如果A的私钥被黑客攻破,则他可以向所有人发送消息,并带有模拟A的签名。

答案 1 :(得分:0)

A将使用密钥交换(例如,使用DHECDH)将privateKeyOfA + publicKeyOfB转换为AES密钥。相同的AES密钥也可以由B使用privateKeyOfB + publicKeyOfA相同地生成。 A和B之间的所有流量都将使用相同的AES密钥进行加密。

假设所有公钥都是已知的(毕竟它们都是公钥),那么有权访问privateKeyOfA的任何人都可以重新生成A生成的所有AES密钥,以便与任何人进行通信。这意味着所有涉及此密钥的流量(A与B或其他任何人发送或接收的消息)都会受到损害。

但是,如果使用了临时版本(例如在TLS的某些模式下),则会为每个会话生成一个新密钥,因此,如果曾经泄露1个密钥,则只会破坏此会话。您可以阅读有关forward secrecy的更多信息。

如果密钥以您描述的方式使用,则它们不用于签名。