为 PGP 加密和在不同设备上签名导出哪个密钥?

Posted

技术标签:

【中文标题】为 PGP 加密和在不同设备上签名导出哪个密钥?【英文标题】:Which key to export for PGP encryption and signing on different devices? 【发布时间】:2015-12-27 01:03:45 【问题描述】:

我最近在 mac 上使用 GnuPG 钥匙串工具创建了一个 PGP 密钥对。我可以看到它会自动创建一个主密钥和一个加密子密钥。现在我也想在我的智能手机上使用密钥进行加密和签名。

    那么最佳实践是什么? 是否为此目的为智能手机创建新子密钥或使用生成的子密钥? 能否提供一个相同的示例?

【问题讨论】:

我对一个问题的否决没有问题,但请说明原因,以便我知道其中有什么问题。如果您无缘无故地投反对票,那就是滥用权利。 【参考方案1】:

创建一个额外的签名子密钥(gpg --edit-key [key-id]addkey),然后只导出子密钥。如果您智能手机上的密钥被泄露,您只需交换子密钥,无需再次分发密钥。

您可以为每个设备创建一个额外的签名子密钥。对于加密子密钥,这有点复杂,因为 OpenPGP 协议不知道将密钥绑定到某些用途或设备的方法;对方的客户端通常只会选择最新的可用加密子密钥,因此您必须在所有设备上使用相同的加密子密钥。

【讨论】:

感谢@Jens 的回答。那么我可以说一旦我们制作了初始子密钥(比如多个签名子密钥和一个加密子密钥),那么我们在日常使用中就不需要主私钥了吗?如果是这样,那么我可以从笔记本电脑中删除私钥并存储在安全的闪存驱动器中,然后将加密子密钥和签名子密钥保留在笔记本电脑上吗?我只是担心如果我把它放在我的笔记本电脑上,我可能会丢失我的主私钥。人们通常会为此做什么? 是的,这称为“离线主键”。仅导出子密钥时,GnuPG 会出于技术原因创建一些“私有主密钥存根”,其中不包括实际的私有密钥。 感谢 Jens 的澄清。

以上是关于为 PGP 加密和在不同设备上签名导出哪个密钥?的主要内容,如果未能解决你的问题,请参考以下文章

加密算法的应用

GPG入门指南(加密/签名)

浅析加密算法七RSA密码

RSA详解

Bouncy Castle 从公钥加密会话数据包中提取 PGP 会话密钥

使用GnuPG(PGP)加密信息及数字签名教程_转