具有特定填充的 RSA 最大消息长度
RSA maximum message length with specific padding
我正在尝试在我的 Java 应用程序中实施一些加密。
加密应按如下方式工作:
- 生成随机 n 位 AES 密钥
- 使用 RSA public 密钥加密 AES 密钥
- 将加密的 AES 密钥发送到服务器
- 使用 AES 密钥加密数据 + 发送到服务器
我无法决定使用哪种填充算法。我读到 OAEPWithSHA-1AndMGF1Padding
是一个不错的选择,但是我可以用它加密的最大消息长度是多少?
我需要知道我的 AES 密钥可以使用 OAEPWithSHA-1AndMGF1Padding
的 RSA 加密的确切最大字节数。
RSA 密钥的长度也有所不同。我可能会选择 2048 位。
TL;DR:我可以使用 2048 位 RSA 密钥和 OAEPWithSHA-1AndMGF1Padding
加密多少字节?
您所描述的被称为 Hybrid Encryption,它是获得对称密钥加密系统速度并结合 RSA 两个密钥优势的常用方法。
具体情况:
一个 2048 位的 RSA 密钥允许 256 个字节,其中 OAEP 填充占用 42 个字节,剩下大约 214 个字节用于加密数据。 AES-256 密钥的长度为 256 位(32 字节),因此有很多 space。
我正在尝试在我的 Java 应用程序中实施一些加密。 加密应按如下方式工作:
- 生成随机 n 位 AES 密钥
- 使用 RSA public 密钥加密 AES 密钥
- 将加密的 AES 密钥发送到服务器
- 使用 AES 密钥加密数据 + 发送到服务器
我无法决定使用哪种填充算法。我读到 OAEPWithSHA-1AndMGF1Padding
是一个不错的选择,但是我可以用它加密的最大消息长度是多少?
我需要知道我的 AES 密钥可以使用 OAEPWithSHA-1AndMGF1Padding
的 RSA 加密的确切最大字节数。
RSA 密钥的长度也有所不同。我可能会选择 2048 位。
TL;DR:我可以使用 2048 位 RSA 密钥和 OAEPWithSHA-1AndMGF1Padding
加密多少字节?
您所描述的被称为 Hybrid Encryption,它是获得对称密钥加密系统速度并结合 RSA 两个密钥优势的常用方法。
具体情况:
一个 2048 位的 RSA 密钥允许 256 个字节,其中 OAEP 填充占用 42 个字节,剩下大约 214 个字节用于加密数据。 AES-256 密钥的长度为 256 位(32 字节),因此有很多 space。