要编码的RSA最大块大小是多少?

时间:2012-08-06 04:35:34

标签: encryption rsa

我可以在一个周期内加密哪个RSA最大块大小?

具有4096位密钥大小的RSA算法的最大速度是多少?

1 个答案:

答案 0 :(得分:14)

根据Lenstra更新的等式on this site,4096位RSA密钥的安全级别与加密散列相匹配,加密散列至少为248位长,例如SHA-256。

如果你使用RSA OAEP(你应该),那么你最多可以加密的数据量是modulus size - 2 - 2*hash size,即446字节。

使用RSA PKCS#1 v1.5,您可以加密最多modulus size - 11个字节,但RSA PKCS#1 v1.5提供的安全性较低(它不可证明是安全的,并且随机填充字节的最小数量应该是被扩展到至少16个字节)。

如果您需要加密更多数据,则不应简单地将其砍掉并在每个块上多次使用RSA。这是一个安全漏洞。你必须采取不同的方法,更确切地说:

  1. 选择随机的128位对称密钥。
  2. 使用经过身份验证的操作模式来加密您的数据(例如AES-128 GCM)。
  3. 使用RSA OAEP加密对称密钥。
  4. RSA加密(与解密不同)非常快,但时间实际上取决于库和您使用的平台。有关参考,请参阅cryptopp library's website