43 个字符的 GPG(对称)密码是否与 256 位密钥一样安全?

信息安全 加密 gnupg 密钥生成
2021-08-26 13:47:49

一个 43 个字符的安全随机生成的混合大小写字母数字密码(每个字符有 2 个额外字符以提供 64 种可能性)将构成 258 位熵 (6 * 43 = 258)。

由于 AES 对称密钥长度的黄金标准是 256 位,我的结论是否正确直接位二进制密钥(而不是从密码中派生)?

我正在寻找陷阱,例如尽管指定 gpg 命令使用 AES256,KDF 是否仍将仅从我的 258 位熵创建一个 128 位密钥?

1个回答

在 GPG 的某些版本中,默认 KDF 是 PBKDF-SHA1,这将产生一个 160 位密钥,我不确定每个版本的默认 KDF 是什么,但是他们的网站手册页显示它是 RIPEMD-160(对于我假设的当前版本)。

您可以使用命令将默认值更改为更安全的 SHA512 --s2k-digest-algo SHA512,这将导致哈希值被截断为加密算法使用的任何密钥大小,在 AES256 的情况下为 256 位。

由于您使用的是全熵随机密码,因此您不需要迭代或加盐,如果您愿意,可以只使用直接哈希(模式 0)。