打破RSA加密的大数据

时间:2011-03-11 19:31:47

标签: c security encryption openssl

最近我们一直在使用OpenSSL来帮助加密/解密我们拥有的一些数据。每个“客户端”将具有本地证书颁发机构为其提供的公钥/私钥对和X509证书。我现在正在考虑使用该密钥对加密/解密数据。

我查看的所有内容都使用RSA_public_encryptRSA_private_decrypt方法进行RSA加密。但是,对于填充类型RSA_PKCS1_OAEP_PADDING,我可以一次加密的数据量受RSA_size(rsa) - 41的限制。所以我的问题是如何在坚持我们的RSA方案(没有静态关键短语等)的同时加密大量数据。我正在考虑将数据分解成块然后加密它,但这似乎正在打败填充点。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:6)

即使您破坏了数据,您也会发现速度非常慢。正确的方法是

  1. 为对称算法生成随机密钥
  2. 使用对称算法和随机密钥加密数据
  3. 使用您的公钥加密随机密钥,并在数据的下一个(或之前)将其存储在加密形式中。

答案 1 :(得分:1)

您应该使用CMS之类的标准(电子邮件客户端中S / MIME支持的基础)或PGP。几乎每个平台都有适用于这两种标准的库。

您将发现它们在批量数据加密方法上非常相似,使用对称密码加密数据并使用“消息”收件人的公钥加密该密钥。这种方法安全快捷。

然而,这些标准更进一步,安全地处理您可能还没有考虑过的事情,例如为多个收件人加密数据,将元数据附加到加密内容等。您还可以获得与其他软件的互操作性。例如,如果您使用S / MIME,则可以使用任何平台上的任何电子邮件客户端进行解密。实际上,根据您的集成要求,您可能不需要自己编写任何软件。

使用其中一个完善的协议并不能解决所有安全问题,但这会使做一些非常愚蠢的事情变得更加困难。