RSA双向解密?

RSA two-way decryption?

我一直在 python (cryptography.hazmat.primitives.asymmetric) 中试验 RSA 加密。我有以下设置:一端是带有 public 密钥的客户端将加密数据发送回服务器,服务器持有私钥。现在我已经有了单向加密工作,但我想知道你将如何(或者如果你应该)安全地 解密消息客户端。我考虑过只加密私钥并存储它,但密码会出现在代码中并使密钥暴露。有没有办法通过密钥交换安全地实现这一点?或者——最有可能的选择——这是对协议的滥用吗?

编辑:想要澄清的是,这里可能存在的问题是,以这种方式使用 RSA 可能会暴露文件系统上或服务器与客户端之间的私钥。

正常的方式是服务器用客户端的public密钥加密回复,客户端用私钥解密。这需要两个 RSA 密钥对——一个用于客户端,一个用于服务器,并且要求每一端都知道对方的 public 密钥。

这种需求(以及与对称加密相比 PKE 的高成本)是为什么 PKE 通常仅用于身份验证 and/or 密钥交换,而对称密码用于实际加密流量的原因。