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

问题描述 投票:0回答:1

我正在尝试在我的 Java 应用程序中实现一些加密。 加密应按如下方式进行:

  1. 生成随机n位AES密钥
  2. 使用 RSA 公钥加密 AES 密钥
  3. 将加密的 AES 密钥发送到服务器
  4. 使用 AES 密钥加密数据+发送到服务器

我无法决定使用哪种填充算法。我读到

OAEPWithSHA-1AndMGF1Padding
是一个不错的选择,但是我可以用它加密的最大消息长度是多少?

我需要知道使用 RSA 和

OAEPWithSHA-1AndMGF1Padding
可以对我的 AES 密钥进行加密的确切最大字节数。

RSA 密钥的长度也有影响。我可能会选择 2048 位。

TL;DR:使用带有

OAEPWithSHA-1AndMGF1Padding
的 2048 位 RSA 密钥可以加密多少字节?

java encryption cryptography aes rsa
1个回答
10
投票

您所描述的被称为“混合加密”,是一种获得对称密钥加密系统速度并结合 RSA 两个密钥优点的常用方法。

具体情况:

2048 位 RSA 密钥允许使用 256 字节,其中 OAEP 填充占用

42

 字节,剩下大约 214 字节用于加密数据。 AES-256 密钥的长度为 256 位(32 字节),因此有足够的空间。

© www.soinside.com 2019 - 2024. All rights reserved.