2013-04-03 30 views
1

密钥大小为1024的RSA加密系统的大小限制为117字节,可用于加密。这是为了加密对象。任何人都可以建议一种替代解决方案在java中替代RSA加密

+0

[AES](http://en.wikipedia.org/wiki/Advanced_Encryption_Standard) –

回答

1

使用像AES这样的对称算法对对象进行加密,然后使用RSA对用于加密对象的密钥进行加密。这将为您提供RSA /公钥加密的好处,但是可以自由加密比RSA密钥的大小更多的数据。

什么它的价值,这是这类计划的大多数公共密钥加密协议使用(如PGP/GPG)

1

通常一个加密和认证使用对称密码,如TripleDes的,AES,或批量数据茶花。既然你想确保数据没有被篡改,如果可能的话,选择一种像GCM或EAX等模式的模式,如CBC(与单独的认证原语配对)。然后使用公钥/私钥对加密对称密钥。

您可以将较大的消息分解为较小的消息,然后加密较小的消息。在这种情况下,您在ECB模式下操作非对称密码(RSA)(如果我正确记得)。 Handbook of Applied Cryptography (HAC)警告这种做法。

此外,没有太多细节,尝试匹配安全级别。所以如果你使用AES-128,那么使用3072位的RSA模量。作为对比,许多人认为没有必要这样做。

0

由于1024是位数,所以您正在进入该限制。将它除以8,然后得到128.然后从中减去11,因为PKCS#1填充正在使用,并且您得到的编号为-117。

无论如何,正如其他人已经注意到的,通常做的是您随机加密生成对称密钥,然后使用它来加密/解密内容。