通过线路发送密码,更安全:Diffie-Helman/AES或RSA?(令我困扰的是,AES不会掩盖密码长度)

Cor*_*ger 5 security encryption rsa aes

我得到了一些建议,我怀疑,所以我在这里寻求支持,回去挑战建议.

我被建议使用Diffie-Helman让双方就密钥达成一致,使用密钥生成AES密钥,然后使用AES加密/解密正在传输的密码.非常类似于此处的示例代码

使用此方案时,加密密码的长度与未加密密码的长度相同.我应该担心吗?

以前,我使用RSA,用接收者的公钥加密密码.无论密码长度如何,都会导致加密长度为256.那不是更好吗?

Dea*_*vey 3

您可以用任何数据填充到任何长度。它不一定是随机的。只要全部加密就可以了。我认为这是你最不用担心的。

请注意,如果您使用 Diffie-Hellman,您仍然需要对发送的参数进行身份验证,这可能需要使用 RSA 来完成。

替代方案是:

  1. 使用 RSA 交换加密的密钥,然后使用该密钥来加密数据。
  2. 使用 Diffie-Hellman 交换密钥,然后使用 RSA 对发送的值进行签名以验证交易。

如果您执行了所有这些操作,那么您还必须担心交换是否已重播以使您重复使用密钥等。

老实说,如果您需要问这个问题,那么您可能没有资格编写加密协议。它们极难做到正确,而且不适合胆小的人。

如果您需要传输大量数据,建议您使用 SSL/TLS 进行交换。PGP/PKCS#7 如果您只需要发送一条消息。