使用公钥加密大文件

时间:2010-08-16 08:02:00

标签: public-key-encryption encryption-asymmetric

我需要使用公钥加密100KB文件。我一直在阅读一些帖子声称使用公钥直接加密大文件是不切实际的,并且首选方法是使用对称密钥加密文件,然后使用公钥加密此对称密钥。 似乎一个天真的解决方案是将大文件分解成碎片并使用相同的公钥加密它们中的每一个。我的问题是这个解决方案是否以及为什么是错误的?

5 个答案:

答案 0 :(得分:4)

您提到的混合方法(生成随机对称密钥,使用它来加密数据,并且只对密钥进行非对称加密)具有巨大的性能优势。

你可以“将大文件分解成碎片并使用相同的公钥加密它们”,这没有任何问题,但速度要慢得多。

答案 1 :(得分:2)

如果我理解正确,您希望使用其他人的公钥加密文件,并通过他们的私钥进行解密?

使用对称加密并仅对(对称)密钥使用公钥加密的优点是性能:对称加密在计算上更少资源密集(权衡:你必须保守密钥 - 这就是什么第二个是非对称步骤。)

分解文件会增加管理开销(你怎么能确定会有多少块?你已经将它们全部传输了?)并且没有添加任何安全性。相反。

答案 2 :(得分:1)

将文件拆分成较小的片段然后使用某些非对称密码加密它们与加密过程的运行时成本无关。最佳做法是使用相对较强的密钥使用良好的对称密码加密数据,并使用非对称密码(使用公钥)加密对称加密中使用的密钥。

答案 3 :(得分:1)

非对称加密过于缓慢,最常用的方法是使用非对称加密随机对称密钥,并使用该对称密钥加密数据。 而且,最好的方法是为此目的使用众所周知的协议/标准(例如OpenPGP)。

答案 4 :(得分:1)

除了对称密钥加密的速度提升之外,还有另一个可能的好处:首先使用随机安全生成的对称密钥加密消息,然后可以为每个接收者自己的公众加密多个接收者的对称密钥非对称密钥,无需重新加密整个消息。