让我们考虑这个openssl命令:
openssl enc -aes-256-cbc -pass pass:PASSWORD
为什么拥有一个好的密钥派生函数很重要?这个对另一个问题的回答表明 GnuPG 比 Openssl 更可取,因为 Openssl 的 KDF 很弱。据我了解,为了解密加密文件,唯一重要的是 AES 使用的 256 位密钥。为什么将密码转换为 256 位密钥的方式如此重要?
让我们考虑这个openssl命令:
openssl enc -aes-256-cbc -pass pass:PASSWORD
为什么拥有一个好的密钥派生函数很重要?这个对另一个问题的回答表明 GnuPG 比 Openssl 更可取,因为 Openssl 的 KDF 很弱。据我了解,为了解密加密文件,唯一重要的是 AES 使用的 256 位密钥。为什么将密码转换为 256 位密钥的方式如此重要?
“为了解密加密文件,唯一重要的事情是”:如果我可以这么说,我认为这就是你在反思中出错的地方。
唯一重要的不是你解密你的加密文件,而是防止其他人通过猜测你的密码来解密它。
因此,一个好的密钥派生函数将使从您的密码中派生密钥的计算变得困难和缓慢,因此随着时间的推移,攻击者可以测试相对较少的不同候选密钥。您链接的答案提到GPG通过使用大量迭代来从密码中派生实际密钥来实现这一点。
如果密钥派生功能不采取这种预防措施,那么攻击者将能够非常快速地测试大量候选密码(您链接的答案指出“每秒数千万个潜在密码(数亿将是可通过 GPU 实现) ”,以这种速度,人们可以期望在不到一个小时的时间内轻松覆盖所有 8 个字母数字字符串,因此密码甚至不需要是可猜测的字典单词即可破解)。