TrueCrypt 哈希可以减慢吗?

信息安全 真加密
2021-09-01 22:43:51

已阅读TrueCrypt的用途〜在2K密码SHA-1散列

迭代计数是 TrueCrypt 规范的一部分,SHA1 为 2000,RIPEMD-160 为 2000,Whirlpool 为 1000(因为 Whirlpool 比其他两个更先进且计算量更大)。

我记得在之前的测试中,我的计算机每秒可以运行超过约 400k。对于蛮力,每个密码需要 5 毫秒。(问题可能更严重,因为 SHA1 只是我正在处理的 Java 程序的一部分。)

因此,对于即将安装的 TrueCrypt,我可以延长哈希函数吗?如果是这样,我可以将蛮力成本增加 50 倍,而最终用户的等待时间只需增加四分之一秒。

如果你能指出我正确的方向,那就太好了!

1个回答

首先,TrueCrypt 是开源的,所以只要你知道如何编程,你就可以获得源代码并做任何你想做的事情。但是 TrueCrypt 容器(或分区等)将与未修改的 TrueCrypt 程序不兼容。

继续前进,没有编程就无法调整“迭代次数”。它不是您可以在 TrueCrypt 中的任何位置设置的参数。因此,您无法在即将安装的 TrueCrypt 中更改它你提到的那些文件已经过时了,因为TrueCrypt 文档说:

必须执行密钥派生函数的 1000 次迭代(或当 HMAC-RIPEMD-160 用作底层散列函数时为 2000 次迭代)以派生头密钥,这增加了执行详尽搜索密码所需的时间(即,蛮力攻击)[7]。

因此,SHA-512 或 Whirlpool 为 1000,RIPEMD-160 为 2000。它不再使用 SHA-1。

还有一点是迭代计数可能看起来很低,但是密码中有一个 512 位的盐。(来源:truecrypt 页面)。这是一种非常大的盐,它可以防止彩虹表(因为任何预先计算的表都必须以 512 位(64 字节)密码开头)。

当然,盐并不能防止暴力破解,因为它不是隐藏的价值。剩下的只是你的密码,也许还有一个密钥文件。

--- 编辑:关于蛮力的现实。

维基百科对暴力攻击的物理限制有所了解。如果您选择一个具有 128 位熵的密码(即远远超过 16 个字节,因为可打印字符 + 数字 + 符号不使用 256 个可能的字节值),可能在第四次世界大战之前它不会被破解.

关于这个主题, XKCD 笑话也是强制性的。