加密算法偏好的安全性排序:对于 GPG

加密算法偏好的安全性排序:对于 GPG

GPG 和 PGP 根据接收方密钥的支持算法的优先级列表协商要使用的加密和哈希算法。问题是,如果尚未包含 DES/MD5,则由于 OpenPGP 标准,必须将其作为最后的选择。

是的,当然它们都非常安全,甚至可能比实际需要的更安全(除了量子问题或重大数学发现)。

但是,为了最大限度地提高安全性,您会选择 gpg 支持的对称加密上的什么有序排名,为什么?

GPG 支持的对称和散列算法:

密码:IDEA(S1)、3DES(S2)、CAST5(S3)、BLOWFISH(S4)、AES(S7)、AES192(S8)、AES256(S9)、TWOFISH(S10)、CAMELLIA128(S11)、CAMELLIA192(S12)、CAMELLIA256(S13)

哈希:MD5(H1)、SHA1(H2)、RIPEMD160(H3)、SHA256(H8)、SHA384(H9)、SHA512(H10)、SHA224(H11)

哈希算法很容易排序,因为 SHAxxx 系列被认为是 GPG 中最好的,目前其次是 RIPEMD160 SHA1 和 MD5。除了 SHA-2 版本之外,禁止使用其他版本会很好。

Riseup 指南建议:

personal-cipher-preferences AES256 AES192 AES CAST5

这似乎不对,因为您想尽可能避免 DES 回退,对吗?为什么不这样做或采用合理的变体?

AES256 AES192 AES TWOFISH CAMELLIA256 CAMELLIA192 CAMELLIA128 CAST5 BLOWFISH 

[然后由支持 OpenPGP 的软件添加 DES]

讨论 GPG 的答案很好,但关于对称算法的讨论不多。 顶级哈希和加密算法

答案1

出于兼容性的原因,OpenPGP 强制支持一组基本算法,并且您已经意识到无法完全禁用它们。

我们的想法是提供尽可能多的更好的尽可能使用与 DES 和 MD5 相比的算法,以增加发送方和接收方之间的匹配机会。省略任何更好的DES 和 MD5 总是会丢失,因此没有理由这样做,因为这些是支持的最差算法。不要只局限于“最新和最佳算法”,否则当其他人使用较旧的实现时,您可能会使用已知弱点的最差算法。

另外,不要忘记有两个地方可以配置这些选项:你自己的偏好设置(在gpg.conf),以及存储在你的密钥中的选项,用于告诉其他人使用该密钥你的偏好是(gpg --edit-keysetpref ...)。对于后者,请确保列出所有三个类别的偏好,否则您将限制自己使用标准强制执行的最小算法集。

对称加密算法

OpenPGP 支持的任何算法(DES 除外)都被认为是强大的,并且没有已知的弱点。Blowfish 在弱密钥方面存在一些问题,可能比其他算法更糟糕,因为实现可能无法选择好的密钥。

只要你把 blowfish 放在最后,为所有算法提供总顺序就很困难。将 AES 放在前面似乎是合理的,因为它可能是所有算法中使用最多、分析最多的算法。

哈希算法

这里的选择比较简单。MD5 不好;SHA-1 比 MD5 好,但仍存在已知问题。其他的都算强的。

压缩算法

压缩很重要,有一些通过压缩阻止对 OpenPGP CFB 模式的神秘攻击

其中的选择完全取决于你。

相关内容