gpg 密钥大小为 4096 和“未来是 ECC”

信息安全 gnupg 电子抄送 代码签名
2021-08-21 02:54:50

我的老板想签署我们的二进制文件。我需要告诉他如何创建签名密钥。

我见过的大多数(如果不是全部)关于签署二进制文件的网站都说“使用 gpg”。

好的,所以 gpg 默认有 2048。他们的常见问题解答https://www.gnupg.org/faq/gnupg-faq.html#sec-11-4有几个论点,为什么 3072 甚至 4096 不提供更高的安全性而是“成本”很多”(我假设它们指的是计算资源)。

这仍然适用于 2020 年吗?我可以安全地向我的老板推荐使用 2048 密钥大小吗?

更让我困惑的是,在他们的常见问题解答中,他们说:

可能不是。未来是椭圆曲线密码学,它将带来与 RSA-16384 相当的安全水平。我们花在争论是否应该将默认值更改为 RSA-3072 或更多的争论上花费的每一分钟,都会延迟向 ECC 的转换。坦率地说,我们认为 ECC 是一个非常好的主意,我们希望看到它尽快部署。

是否可以使用 ECC 来签署二进制文件?有没有这方面的教程?还是当前最先进的仍然使用具有 2048 密钥大小的 gpg?

1个回答

这仍然适用于 2020 年吗?我可以安全地向我的老板推荐使用 2048 密钥大小吗?

这在一定程度上是一个见仁见智的问题,因此可能不适合在 StackExchange 上讨论。出于任何实际目的,未来几年使用 2048 位 RSA 应该是安全的。但是,在用于签署二进制文件时,使用 4096 位 RSA 的成本实际上并不明显。

ECC 似乎在更小的密钥和更快的签名和验证计算方面提供了更多的力量。例如,比特币使用具有 256 位密钥的 ECDSA。

是否可以使用 ECC 来签署二进制文件?有没有这方面的教程?

目前,至少从 GPG v2.1 开始,可以在 GPG 中创建 ECC 密钥对。要检查您系统中的 GPG 版本并列出您可以调用的可用算法gpg2 --version如果您可以看到ECDSAEDDSA,您还可以使用gpg2 --full-gen-key --expert并选择适当的算法来生成 ECC 密钥对。至于两者的区别,请看这个问题。