gpg --完美代码

信息安全 pgp
2021-08-26 17:47:30

默认情况下,gpg 使用 CAST5 和 SHA1(不太好),因为它有 AES256 和 hash512!

现在我想使用完美的代码来加密我的对称和非对称文件

对于对称加密,我使用以下代码:

gpg -c --s2k-cipher-algo AES256 --s2k-digest-algo SHA512 File

这是我可以从 gpg 获得的最大对称加密还是更多?

对于非对称加密,我使用以下代码:

gpg -er Key --s2k-cipher-algo AES256 --s2k-digest-algo SHA512 --cert-digest-algo SHA512 File

我可以添加任何其他代码以使加密更安全吗?

z(n),--s2k-mode n--s2k-count n.

这些开关有什么作用?我应该使用哪一个以及使用哪些参数?

2个回答

你能得到的“最多”就是“不会坏”,除此之外没有别的层次。CAST5(又名“CAST-128”)可以说已经在很大程度上实现了这一点,因为尽管长期以来进行了一些积极的研究,但对完整算法没有已知的攻击(最著名的攻击似乎是由于Wang、Wang 和 Hu 在2009 年和“休息”,以学术的方式,CAST5 减少到仅 6 轮,而完整版有 12 或 16 轮)。同样,SHA-1 在冲突方面也有已知的弱点(这些也是“学术性的”,即仍然是理论上的),但冲突与将密码转换为密钥的算法无关。

因此,切换到 AES-256、SHA-512 或任何具有大而平均数字的算法不会给你“更多的安全性”。它会给你一种安全感,就像人们通常认为红色汽车更快一样。如果那是你的事,那么一定要使用 AES——毕竟,安全的一点是减少焦虑。但是,从科学上讲,算法切换是没有必要的。GnuPG 默认使用 CAST5 和 SHA-1,因为这最大限度地提高了与旧版OpenPGP实现的互操作性。

不过,关于算法块大小,可以提出一个小问题。CAST5 使用 64 位块,这意味着如果您加密长度超过几 GB 的单个文件,或多或少会存在一些理论上的弱点。这是一个边缘案例。如果您有加密大文件的习惯,您可能想要切换到 AES(AES-128 就可以了)。

至于“s2k”参数: “迭代计数”(带有)旨在通过使密码处理固有地变慢--s2k-count来减慢字典攻击。计数越高,它变得越慢。因此,为了安全,您希望计数尽可能高,但为了可用性,您不希望它太高:较高的计数会使每个人(您和攻击者)的密码处理速度变慢。因此,您应该将计数提高到您的机器可以容忍的最高值。

当然,这种减速因素是容忍相对较弱的密码的一种方式。在所有其他条件相同的情况下,最好有一个高熵密码,无论如何都能抵抗字典攻击。

从手册页:

-s2k-mode n

选择如何修改密码短语。如果 n 为 0,将使用普通密码(不推荐),1 为密码添加盐,3(默认值)迭代整个过程多次(参见 –s2k-count)。除非使用--rfc1991,否则此模式也用于常规加密。

--s2k-count n

指定重复密码短语修改的次数。此值的范围可能在 1024 和 65011712 之间(包括 1024 和 65011712)。默认值是从 gpg-agent 查询的。请注意,并非 1024-65011712 范围内的所有值都是合法的,如果选择了非法值,GnuPG 将四舍五入到最接近的合法值。此选项仅在 --s2k-mode 为 3 时才有意义。

在我看来,这很好地解释了这一点。默认情况下,s2k-mode 设置为可用的“最安全”方法。使用 s2k-count,您可以增加密码被破坏的次数。老实说,为了兼容性,我会默认保留它。考虑到您使用的算法(AES-256),只要您使用强密码,您就应该非常安全。