我对非对称公钥密码术的理解(尽管有限)是公钥旨在与所有人共享,而私钥则是保密的。
假设我将本地机器的公钥存储在远程 Web 服务器上,并且我发送到该服务器的加密信息(通过我的私钥)被另一方截获,该信息也拥有我的公钥。这不是说他们也可以解密我的加密信息吗?
如果是,这是否意味着我应该只与一方共享公钥 - 在这种情况下是服务器 - 这违背了我对公钥用途的理解?我可以在本地机器上为不同的应用程序设置不同的密钥对吗?
您不会将信息发送到使用您的私钥加密的服务器。当您打开与服务器的安全连接时,服务器上的软件会生成一个新的对称加密密钥,使用您的公钥对其进行加密,然后将其发送给您。然后,您使用您的私钥对其进行解密,并将该对称加密密钥用于您发送到服务器的数据。除了安全方面,公钥/私钥加密过于占用 CPU,无法在所有数据传输中使用它——它通常仅用于加密其他加密密钥或数字签名。