RSA 密钥的大小对 CPU 负载有什么影响?

信息安全 加密 SSH RSA 文件加密
2021-08-13 19:54:23

我使用加密和压缩的 ssh 连接。

如果我使用小的 RSA 密钥或非常大的 RSA 密钥,对压缩、解压缩和带宽(加密文件大小)的 CPU 负载有什么影响?

1个回答

在 SSH 中,RSA 密钥仅在初始连接设置期间使用。连接后,RSA 密钥的大小对传输文件的 CPU 和带宽使用没有任何影响。初始握手使用非对称算法(RSA,Diffie-Hellman)来处理共享秘密的身份验证和设置,然后与对称加密算法一起使用以加密和保护剩余的数据交换。

在初始连接设置期间,服务器将其公钥发送给客户端并计算签名,客户端将验证该签名。如果客户端想要使用自己的 RSA 密钥对进行身份验证,它还将计算签名(由服务器验证)并通过网络发送公钥。4096 位 RSA 密钥比 2048 位 RSA 密钥大两倍,并且签名与密钥大小相同,因此如果您有 2048 位 RSA 密钥并将其更改为 4096 位 RSA 密钥,那么初始握手中的相关消息将总共放大 512 字节(+256 字节用于密钥本身,+256 字节用于签名)。我再说一遍,这仅适用于最初的握手;对于您随后在连接中发送的千兆字节文件,它没有任何改变。

至于 CPU 消耗:将密钥大小加倍或多或少会使生成签名的成本乘以 8。然而,同样的,这个成本仅用于初始连接,一台小型 PC 已经可以每秒计算数百个 2048 位 RSA 签名。

压缩是在加密之前对数据进行的,不受任何加密元素的影响。