PGP - 为什么有单独的加密子密钥

信息安全 pgp gnupg
2021-08-26 23:37:08

这就是我的密钥的设置方式:

pub  4096R/AAAAAAAA  created: 2012-11-14  expires: 2013-11-14  usage: SC  
                     trust: ultimate      validity: ultimate
sub  4096R/BBBBBBBB  created: 2012-11-14  expires: 2013-11-14  usage: E   
[ultimate] (1). xxxx <xxxx@xxxx.com>

我知道这是标准的,让子密钥处理解密。这是为什么?这与我只有一个可以做所有事情的钥匙有什么不同?

1个回答

您可能需要单独的密钥的三个主要原因:

  1. 并非所有密钥类型都可用于加密和签名。OpenPGP(GnuPG 实现的格式)主要支持 RSA、ElGamal 和 DSA;ElGamal 仅加密,而 DSA 仅签名。RSA 两者都可以;但是,曾经有一段时间 RSA 仍然是专利,从那时起,一些 PGP 实现习惯了默认为 ElGamal+DSA,因此必然有两个密钥对。

  2. 加密密钥应该被托管(即在某处有备份),而签名密钥不应该。有关此主题的讨论,请参阅此答案由于给定的密钥不能同时托管和不托管,因此您应该需要两个密钥。

  3. 理想情况下,您应该拥有一个主密钥,将其保存在一个受到特别保护的密钥环中,以及用于日常任务的子密钥。主密钥应该是您的“根”密钥,没有到期日期;它又大又笨重,而且可能效率低下,但你不经常使用它。子键可能更短(因此更有效),因为您将它们定义为具有较短的生命周期(例如一到两年):您不必使它们足够胖以在未来一到二十年的技术进步中生存下来。万一您的子密钥之一被盗,主密钥兼作“撤销密钥”。