具有特定填充的RSA最大消息长度

时间:2016-09-25 12:58:51

标签: java encryption cryptography aes rsa

我正在尝试在我的Java应用程序中实现一些加密。 加密应该如下工作:

  1. 生成随机n位AES密钥
  2. 使用RSA公钥加密AES密钥
  3. 将加密的AES密钥发送到服务器
  4. 使用AES密钥加密数据+发送到服务器
  5. 我无法确定要使用的填充算法。我读OAEPWithSHA-1AndMGF1Padding是一个不错的选择,但是我可以加密的最大消息长度是多少?

    我需要知道使用带有OAEPWithSHA-1AndMGF1Padding的RSA加密我的AES密钥的确切最大字节数。

    RSA密钥的长度也有所不同。我可能会去2048位。

    TL; DR:我可以使用带有OAEPWithSHA-1AndMGF1Padding的2048位RSA密钥加密多少字节?

1 个答案:

答案 0 :(得分:6)

您所描述的内容称为Hybrid Encryption,是获得对称密钥加密系统速度的常用方法,并结合RSA的两个密钥的优势。

至于细节:

2048位RSA密钥允许256个字节的OAEP填充占用42个字节,大约214个字节用于加密数据。 AES-256密钥长度为256位(32字节),因此有足够的空间。