Java的RSA实现,BC的替代

Tom*_*ito 1 java rsa bouncycastle

Bouncy Castle附带的RSA实现仅允许加密单个数据块.RSA算法不适合流数据,不应该以这种方式使用.在这种情况下,您应该使用随机生成的密钥和对称密码加密数据,之后您应该使用RSA加密随机生成的密钥,然后将加密数据和加密随机密钥发送到另一端,他们​​可以反转过程(即,使用他们的RSA私钥解密随机密钥,然后解密数据).

我不能使用使用对称密钥的解决方法.那么,除了Bouncy Castle之外,还有RSA的其他实现吗?

Nei*_*fey 5

这种限制不仅仅是Bouncy Castle随机发明的东西,使用对称密钥并不是"解决方法":这是正确的做法.

RSA算法本质上不适合加密大量数据.如果你真的真的非常想在大量数据上使用它,那么你可以将数据分成足够小的块,并对每个块进行加密.但这不是标准做法,你可能会遇到你没有想到的安全问题,而像AES这样的分组密码有处理你可能遇到的问题的标准方法(看看块模式 - 基本上存在安全问题例如,用相同的密钥多次加密相同的数据,并且块模式是内置的处理方式).

我真的只是坚持使用对称加密进行流式传输的标准做法,并使用RSA加密对称密钥(基本上没有别的).