关于GnuPG对称加密字典攻击的问题

信息安全 密码学 加密
2021-08-16 12:49:08

他们说,如果密钥长度足够长(> 128 位),像 AES 这样的算法实际上不会被破坏。如果我使用 GnuPG 使用 AES 加密文件:

gpg -c --cipher-algo AES secretfile

它要求我输入密码。我知道,除了我的密码,盐和密钥派生函数用于生成 128 位密钥用于加密。我的问题是,不能在密码短语上使用字典攻击来破解加密吗?那样的话,我会认为加密不是很强,对美国政府的“机密信息”来说还不够好。我在这里错过了什么吗?

编辑:回答者似乎同意密码是“最薄弱的环节”。我对这个论点的回答是:那为什么要使用长密钥长度呢?这些不应该使加密更难破解吗?换句话说,使用特定密码的 192 位 AES 加密应该比使用相同密码的 128 位 AES 加密更强(如果我错了,请纠正我)。但是如果破解加密的方法是使用字典攻击,那么密钥长度应该是无关紧要的。这个推理不正确吗?

3个回答

是的,当使用从密码派生的密钥进行对称加密时,结果本身就会对可能的密码进行详尽的搜索,也称为“字典攻击”。GnuPG 包括通常的威慑,即(因此攻击无法通过预先计算的表进行优化)和缓慢的密钥派生函数(具有数千次内部迭代)。安全性仍然依赖于密码熵。GnuPG 文档使用术语“密码短语”来强调对高密码熵的需求(非常长的密码——特别是由几个“单词”组成的密码——往往具有高熵)。

给定的加密系统是否被认为对美国机密文件足够强大是由一些神秘的联邦法规定义的,这些法规在任何情况下都不会对单纯的算法描述给予一般性的祝福。AES 本身是一种“已批准”的算法,但实际的加密系统只有在它是“已批准”算法的“已批准”实现时才可能被“批准”。据我所知,GnuPG 不太可能得到如此认可,尤其是因为它主要是在德国编写的(但是,对于开源项目,你无法真正知道代码来自哪里——这对于那些“认可”的人来说是个大问题”实施)。

任何只需要密码才能解密的加密只能与密码本身一样强大。这就是为什么 gnupg 包含公钥和私钥的原因。

如果您使用猫的名字作为密码,那么它可能会被猜到;但如果密码是 512 字节的/dev/random. 这就是为什么一些前端尝试检查密码的“强度”。KCryptography 就像一个链条——只有最薄弱的环节一样坚固。

对于您更新的问题:192 位 AES 在有或没有密码的情况下并不比 128 位 AES 强 - 即使考虑到摩尔定律,在可预见的未来,两者的 AES 方面都是遥不可及的,除非您担心可能量子计算攻击。有人在外面声称它是吗?不要上当。

只要您使用 AES-192,请勿将美国要求解释为批准弱密码短语。密码系统的每个部分都很重要,而密钥管理(密码)是最困难的部分之一。

先前的答案已经解决了密码短语通常是最薄弱的环节这一事实,并且还有其他替代方案。