scrypt终于被破解了吗?

信息安全 加密
2021-08-11 01:14:02

如果我理解正确,根据这个:http : //blog.ircmaxell.com/2014/03/why-i-dont-recommend-scrypt.html,看起来攻击者可以创建一个优化的 scrypt 版本来产生具有极高效率的相同输出(例如,N= 2^14, p = 8, r = 1,只需要 1KB 而不是 16MB 即可运行,而 CPU 工作因子仅增加 N/2)。

2个回答

简短的回答是:这不是我说的,也不是我暗示的。

使用我确定并谈到的权衡,您可以用内存换取 CPU 时间。所以是的,您可以将特定的推导从 16MiB 减少到 8KiB(大约)。但是,这样做需要 CPU 执行几个数量级的逻辑。缓存局部性提高了一些效率,但一般来说,它应该慢得多。(平均而言,比 16MiB 版本慢约 8,000 倍,但要慢 16,000 倍,具体取决于算法的确切随机分布)。

不过还有一个更有趣的选择。我的攻击是孤注一掷。基本上,完全消除了 V 阵列,但代价是增加了复杂性。但是您可以做出更细微的权衡。您可以将数组切成两半,然后重新计算所有其他值。或者将其削减到每三个值。用存储空间换取 CPU 空间。但程度不同。这通常被称为 TMTO 失败者(Time-Memory-TradeOff Defeater)。

我进行了更彻底的分析,包括对此线程的建议修复值得注意的是,密码哈希竞赛的至少一项提案使用了我的增强算法。

所以不,scrypt 仍然非常强大。对于它的主要用例(作为 KDF),它比替代品要好得多。,

我试图在我的帖子中说明的一点是,当没有进行最佳调整(使用不正确的设置)使用非常快的设置时,它可能比现有算法弱得多。专门用于密码存储您在哪里知道结果,并且正在寻找源材料(密码)。

请注意,scrypt 容易受到定时攻击:问题 #18 · pbhogan/scrypt,这意味着对您正在散列密码的主机具有一定访问权限的攻击者有一些额外的方法来计算密码。所以它没有被破坏,但与例如 bcrypt 相比有缺点。