我使用 GPG 已有一段时间了,对其内部工作原理有所了解。例如,我知道如何用公钥加密文件,这样只有你才能用私钥打开它,太棒了。
但实际上发生的事情是(据我理解):
- 生成一个随机密码。
- 文件使用此密码对称加密。
密码短语使用接收者的公钥进行非对称加密并存储在文件中。
接收者使用私钥解密密码。
- 接收方使用密码解密文件。
据我所知,这样做是为了大幅提高速度,而且每次都有一个新的秘密,理论上会使密码更难猜测。
所以我真正的问题是,是否可以有多个收件人?
例如..我有一个 10GB 的文件,想与 5 个朋友或同事共享,我真的需要重新加密 5 次,存储 50GB 吗?或者是否可以使用 5 个公钥对随机选择的密码(用于对称加密)进行 5 次加密并将其放在文件头中?
或者我只是向世界分享了一个我应该申请专利的想法?=)
答案1
抱歉,我搜索了一下但没有找到,下次会进一步深入研究。我根据评论找到了答案:
https://stackoverflow.com/questions/597188/encryption-with-multiple-different-keys
答案2
您可以使用生成的对称密钥对其进行一次加密。
然后,您还需要使用 5 个预期接收者的公钥对该对称密钥加密 5 次。
每个收件人将收到 2 个包裹:
- 一个小的加密对称密钥,用他们的私钥解密,以及
- 他们使用在步骤 1 中刚刚发现的对称密钥解密一个大块。
我不是安全专家,因此我的建议仅供参考。