rsa算法的加密/解密时间是否会随着密钥长度的变化而显着变化?例如,512 位和 2048 位之间的加密/解密时间是否存在明显差异?
加密解密时间
信息安全
密码学
加密
2021-08-31 02:38:18
2个回答
在通常的实现中,将 RSA 密钥长度加倍意味着加密速度会慢四倍,而解密速度会慢八倍。RSA 加密比 RSA 解密快得多(在 RSA 签名的上下文中,验证类似于加密,生成类似于解密)。该理论认为,对于n位密钥,加密的计算量与n 2成正比,而解密的量与n 3成正比。在实践中,RSA 不仅仅是模幂运算,而且开销不会以相同的二次/三次方式扩展,因此,对于特定的实现,您不会得到准确的 8 倍系数。
另外,请注意,快速加密(及其二次行为)依赖于使用短的公共指数。这是RSA常用的方式;可能有一个具有长公共指数的 RSA 公钥,这将使加密和解密一样慢。长的公共指数似乎不会提高安全性,所以短的公共指数是规则。一些广泛使用的 RSA 实现无论如何都不支持长公共指数。
OpenSSL带有一个命令行工具,可以执行一些基准测试。尝试运行这个:
openssl speed rsa1024 rsa2048
在我的 PC 上,这会导致以下结果:
sign verify sign/s verify/s
rsa 1024 bits 0.000646s 0.000035s 1549.1 28408.6
rsa 2048 bits 0.004097s 0.000120s 244.1 8331.1
因此,当密钥大小从 1024 位增加到 2048 位时,我们分别得到 6.3 倍和 3.4 倍的解密和加密系数。
