在 PKI 中,如果每个人都知道 public 密钥,是否意味着任何人都可以解密……?

In PKI if everyone knows the public key does it mean anyone can decrypt ....?

在 PKI 中,如果每个人都知道服务器的 public 密钥,这是否意味着任何人都可以解密服务器对客户端的响应,该响应由私钥加密,而私钥又可以由服务器解密 public 关键只要有人可以通过在中间嗅探其他人的流量?

在最简单的形式中,public密钥加密用于单向通信。

如果 Alice 有一个 public/private 密钥对,并且她将 public 密钥发给每个人,那么任何人都可以使用 Alice 的 public 密钥加密只有 Alice 可以解密的消息使用她的私钥。 Alice 没有使用她的私钥加密消息以供其他人阅读。

对于双向安全通信,public 密钥加密通常用于传输双方可用于安全通信的会话密钥。

假设 Bob 想与 Alice 交谈。有了 Alice 的 public 密钥,Bob 使用它来加密密钥并将其发送给 Alice。然后爱丽丝使用她的私钥来解密私钥。现在密钥只有 Alice 和 Bob 知道。所以他们都可以使用密钥和 AES 等对称加密算法在他们两个之间来回发送消息。

爱丽丝可以用她的私钥做的一件事是创建一个数字签名。爱丽丝可以编写一条消息,对消息进行哈希处理,然后用她的私钥对哈希进行编码。然后 Alice 将消息连同加密的哈希一起发送 publicly。任何拥有 Alice 的 public 密钥的人都可以解码哈希并确保消息的哈希与编码的哈希相匹配。因为只有 Alice 可以创建编码哈希,reader 知道 Alice 实际上发送了该消息。

不能,只有私钥才能解密数据

在客户端服务器通信中,通常使用在通信开始(握手过程)时启动的随机对称密钥对数据进行加密。所有进一步的沟通都是通过它完成的。 PKI 的作用是客户端生成随机对称密钥,用服务器 public 密钥加密,服务器解密它以继续会话。