为什么在多次编辑我的 GPG 密钥后,它仍然可以用于文件解密?

为什么在多次编辑我的 GPG 密钥后,它仍然可以用于文件解密?

这是我的 GPG 密钥,我在阅读时可能拍过一张不幸的照片:

旧的 GPG 照片

我仍不确定要放什么图片(如果有的话),可能是这张:

新的 GPG 照片

无论我最终选择哪一个,我都想问一下,为什么在编辑我的 GPG 密钥(甚至更改名称)后,它仍然可以用于加密/解密我的文件。

我原本以为通过编辑所述 GPG 密钥我会毁了它。

我真的可以编辑所有内容(包括电子邮件地址)并使其仍然有效吗?如果在所有情况下都不起作用,在什么情况下它会妨碍某些事情?

如果是这样,那怎么可能呢?

非常感谢你的澄清

答案1

您的实际加密密钥不会改变,只有附加的元数据会改变。姓名和电子邮件地址与加密无关——它们仅供邮件应用用来寻找发送者密钥环中的正确密钥。

请参阅gpg --export yourkey | sq inspect| sq packet dump| pgpdump。您会发现,您所说的“钥匙”并不是钥匙本身,而是一捆各种包裹(里面不止一把真正的钥匙)。

$ gpg --export 0x4311D0FB042CB88F | sq packet dump

Public-Key Packet, old CTB, 525 bytes              <-- The RSA keypair used
    Version: 4                                         for signing.
    Pk algo: RSA
    Pk size: 4096 bits
    Fingerprint: 055667909AA5B877B2A47BC34311D0FB042CB88F
    KeyID: 4311D0FB042CB88F
  
User ID Packet, old CTB, 55 bytes                  <-- A name & email (there can
                                                       can be multiple of those).
    Value: Vlastimil Burian (ProtonMail) <[email protected]>
  
Signature Packet, old CTB, 590 bytes               <-- Self-signature that binds
    Version: 4                                         the user ID to the main key.
    Type: PositiveCertification
    [...]
  
User Attribute Packet, new CTB, 10507 bytes        <-- The attached photo.
    JPEG: 10485 bytes
  
Signature Packet, old CTB, 613 bytes               <-- Self-signature that binds
    Version: 4                                         the photo to the main key.
    Type: PositiveCertification
    [...]
  
Public-Subkey Packet, old CTB, 525 bytes           <-- Another RSA keypair,
    Version: 4                                         used for encryption.
    Creation time: 2019-02-27 07:17:09 UTC
    Pk algo: RSA
    Pk size: 4096 bits
    Fingerprint: 9CE63B2147B377C9A91EC2B7FB1A4AE6E362917B
    KeyID: FB1A4AE6E362917B
  
Signature Packet, old CTB, 543 bytes               <-- Self-signature that binds
    Version: 4                                         the subkey to the main key.
    Type: SubkeyBinding
    [...]

相关内容