我想知道 PGP 如何与 CC 一起工作。据我了解,如果我向foo@example.com发送电子邮件并在 CC 中使用baz@example.org,Enigmail 将不得不为每个用户加密一次电子邮件并发送两封电子邮件。
但实际上,如果baz@example.org检查他的电子邮件,他仍然被列为抄送而不是主要收件人(如果电子邮件为每个人加密一次,就会出现这种情况)。
那么它究竟是如何工作的呢?
我想知道 PGP 如何与 CC 一起工作。据我了解,如果我向foo@example.com发送电子邮件并在 CC 中使用baz@example.org,Enigmail 将不得不为每个用户加密一次电子邮件并发送两封电子邮件。
但实际上,如果baz@example.org检查他的电子邮件,他仍然被列为抄送而不是主要收件人(如果电子邮件为每个人加密一次,就会出现这种情况)。
那么它究竟是如何工作的呢?
在OpenPGP 格式(PGP 实现)中,可以为多个收件人加密给定的电子邮件,而每个收件人的大小开销只需几分钟。这是因为电子邮件加密实际上使用混合加密:
这样做是因为非对称加密(RSA、ElGamal)的可处理大小非常有限,而且计算量也很大,而对称加密算法在处理兆字节数据时没有问题。
在该设置中,如果您将同一封电子邮件发送给两个收件人,则使用K的对称加密只执行一次;但是密钥K将被加密两次,一次使用第一个接收者的公钥,一次使用第二个接收者的公钥。因此,每个收件人只向加密的电子邮件添加几百个字节。这就是“抄送:”的工作方式。请注意,它会向每个也收到电子邮件的收件人显示。
当只有一个明显的收件人时,也会使用此“抄送:”机制,因为 PGP 会注意为预期收件人和您自己加密电子邮件 - 以便您以后可以从您的“已发送”文件夹。所以一个基本的 PGP 电子邮件已经有两个收件人。
要为 Tom 的出色解释添加一些信息,如果您真的想确保 BCC 实际上是 BCC,您应该小心 BCC,因为您可以从加密会话密钥列表中检测到消息已被加密其他一些 PGP 密钥。准确地说,是 PGP 密钥的密钥 ID,但由于大多数密钥都存储在 PGP 密钥服务器上,因此不难检测到谁拥有该密钥。