是否可以将收件人添加到 GPG 中已加密的文件?

13 gnupg

假设我已经使用 GPG 加密了一个(可能很大)的文件;例如

gpg --recipient "Some Name" -o this_file.gpg --encrypt this_file.txt
Run Code Online (Sandbox Code Playgroud)

是否可以在不先解密文件然后再加密的情况下添加另一个收件人?

Nat*_*igg 9

简短回答:没有

首先要注意,如果你不是收件人之一,这是完全不可能的。您甚至无法解密文件,更不用说添加收件人了。即使你在两秒钟前加密了它。

假设您是收件人,这在技术上是可行的。该文件实际上是用会话密钥加密的,会话密钥是用您的公钥加密的,因此理论上您可以解密会话密钥并将其重新加密为其他人的密钥,然后将所有内容打包在一个文件中,就像您一样最初将文件加密给两个人。

但是,gpg 没有这种能力。您可以使用 gpg 获得的最接近的是

  1. 使用--show-session-key选项获取会话密钥(这似乎也解密了文件,在这种情况下错过了这一点)
  2. 将该会话密钥加密为其他人的公钥(实际上,这会创建一个新的会话密钥并使用该会话密钥来加密原始会话密钥)
  3. 发送这两个文件。
  4. 接收者可以解密会话密钥并用于--override-session-key解密原始消息。