RSA可以加密的数据量有什么限制?
通常,建议将RSA用于加密对称密钥,然后再将其用于加密“有效负载”。
可以使用RSA加密的数据量的实际(或理论)限制是多少(我使用的是2048位RSA密钥大小)。
特别是,我想知道使用(不同的)RSA公钥加密RSA公钥(256字节)是否安全?我在Java中使用Bouncy Castle加密库。
回答:
对于 n 位RSA密钥,直接加密(使用PKCS#1
“旧式”填充)适用于最大 下限(n / 8)-11
字节的任意二进制消息。换句话说,对于1024位RSA密钥(128个字节),最大为117个字节。使用OAEP(PKCS#1“新型”填充),这要少得多:OAEP使用哈希函数,其输出长度为
h 位;这意味着 floor(n / 8)-2 * ceil(h / 8)-2
的大小限制:仍然对于1024位RSA密钥,使用SHA-256作为哈希函数( h = 256 ),这意味着二进制消息最多60个字节。
用另一个RSA密钥加密RSA密钥是没有问题的(使用字节加密 任何 字节序列,无论这些字节代表什么都没有问题),但是,当然,“外部”
RSA密钥必须更大:使用旧式填充,要加密256字节的消息,您将需要一个至少2136位模数的RSA密钥。
但是,通常建议采用混合模式(使用随机对称密钥加密数据并使用RSA加密对称密钥),因为这是因为它们没有任何实际的大小限制,并且因为它们使替换RSA更容易部分使用另一种密钥交换算法(例如Diffie-
Hellman)。
以上是 RSA可以加密的数据量有什么限制? 的全部内容, 来源链接: utcz.com/qa/434502.html