我需要使用公钥加密一个 100KB 的文件。我一直在阅读一些帖子,声称使用公钥直接加密大文件是不切实际的,首选方法是使用对称密钥加密文件,然后使用公钥加密此对称密钥。似乎一个天真的解决方案是将大文件分解成碎片并使用相同的公钥加密它们中的每一个。我的问题是这个解决方案是否以及为什么是错误的?
问问题
13310 次
5 回答
6
您提到的混合方法(生成随机对称密钥,使用它来加密数据,并且仅非对称加密密钥)具有巨大的性能优势。
您也可以“将大文件分解并使用相同的公钥加密每个文件”,这没有任何问题,但速度要慢得多。
于 2010-08-16T08:08:51.867 回答
3
如果我理解正确,您想用别人的公钥加密文件,然后用他们的私钥解密?
使用对称加密并且仅对(对称)密钥使用公钥加密的优点是性能:对称加密在计算上的资源密集型要少得多(权衡:您必须保密密钥 - 这就是第二个,不对称步骤是为了)。
分解文件增加了管理开销(你怎么能确定会有多少块?你已经传输了它们?)并且不会增加任何安全性。相反。
于 2010-08-16T08:06:07.990 回答
2
非对称加密太慢了,最常用的方法是用非对称加密随机对称密钥,然后用那个对称密钥加密你的数据。而且,最好的方法是为此目的使用众所周知的协议/标准(例如 OpenPGP)。
于 2010-08-23T20:20:13.867 回答
1
除了对称密钥加密的速度提升之外,还有另一个可能的好处:通过首先使用随机安全生成的对称密钥加密消息,然后您可以为多个收件人加密对称密钥,一次在每个收件人自己的公共非对称密钥中,无需重新加密整个消息。
于 2011-06-12T22:37:33.297 回答
1
将文件拆分成更小的部分,然后用一些非对称密码对其进行加密与加密过程的运行时成本无关。最佳实践是使用相对强的密钥使用良好的对称密码加密数据,并使用非对称密码(使用您的公钥)加密您在对称加密中使用的密钥。
于 2010-08-16T08:13:15.930 回答