不同软件包生成的私钥是否兼容?

信息安全 加密 pgp openssl gnupg
2021-08-13 18:09:29

我知道 GnuPG 遵循OpenPGP 标准,但是如果我使用 GnuPG 生成公钥/私钥对并将公钥上传到密钥服务器,即 MIT 的服务器,或者使用它来签署文件、包等,其他的使用 OpenSSL、GnuPG、Putty 等的用户可以使用它或解密已签名的包吗?还是我需要在所有这些包中生成单独的公钥/私钥对并分别上传公钥?

3个回答

通常,您不会在密钥服务器上上传私钥,而只是将公钥...私钥应该是私有的大喊大叫毫无意义。

OpenPGP是消息和密钥的标准格式。作为 RSA 公钥数学对象(技术上是私钥的八个整数的列表,公钥的两个整数)可以用多种方式编码,OpenPGP 就是其中之一。GnuPG遵循这种格式。

OpenSSL是一个库(和一些命令行工具),主要关注SSL/TLS并包括加密算法的实现。SSL 在X.509 证书中使用公钥,这是另一种格式,与 OpenPGP 截然不同。相同类型的数学对象(RSA 密钥...),但编码不同。GnuPG 在内部将 OpenSSL 用于加密算法本身,但应用了自己的编码。

PuTTY是一个SSH 客户端,它再次使用具有另一种编码格式的密钥(RSA、DSA...)。同样,相同的数学对象表示为不同的字节序列。

有些人正在研究这些竞争格式之间的桥梁这仍然是一个很大的不便之处。

所有这些都使用相同的格式标准,所以是的。在使用不同格式的情况下,您通常可以从保存的非对称密钥对生成不同类型的新密钥容器,只要您的目标应用程序支持您正在使用的算法和密钥大小。

由于所有这些都遵循相同的标准,是的!