Dan Boneh,Henry Corrigan-Gibbs和Stuart Schechter提出了“气球散列”:一种可提供针对序贯攻击的有效保护的记忆硬功能(在AsiaCrypt 2016中进行)。从摘要的表面上看,这对(首次)密码哈希竞赛的获胜者Argon2是个打击(双关语),特别是因为Balloon哈希拥有首个实用的方法。
密码散列函数:
(i)在随机Oracle模型中具有经过验证的内存硬度属性,
(ii)使用与密码无关的访问模式,并且
(iii)满足或超出了最佳的启发式安全密码哈希算法的性能。
并进一步声称
对Argon2i的实际攻击成功地评估了该功能小于以前声称的可能的空间
是Balloon哈希,还是具有属性(i)和(ii)的任何竞争者,可以实际使用(可能包括一些Argon2变体)?与尚无处不在的PBKDF2-HMAC之类的竞争对手相比,采用什么参数化(在基础哈希等基础上)?
我们能否粗略地评价安全性的提高(在相同的计算努力下,对于某种定义) -SHAX? Bcrypt,这在服务器方面有什么吸引力? Scrypt可以更好地利用多个CPU和充足的内存,但不具有属性(ii)并且很少使用?
注意:在Luis Casillas发表评论之后,我将这个问题的范围扩展到了气球哈希之外。
评论
@Elias:Scrypt很好,但不具有属性(ii),这是与缓存相关的边信道泄漏(例如定时)的一个严重问题。请注意,已对Argon2i进行了调整,以响应Balloon哈希纸(现在是1.3版,以前是1.2版),但是我不知道(至今)它与Balloon Hash相比如何。
iMHF方面有很多活动,不仅来自气球散列文件,而且来自Alwen和Blocki的论文都攻击了Argon2i和气球散列。为了解决这个问题,对Argon2 RFC进行了很多讨论和实质性修订。 RFC的最新草案是Argon2id,它是原始Argon2i和Argon2d的混合体,是该算法的主要变体,因为它可以抵抗A&B攻击。我认为,对这个问题的最佳答案将对此进行详细概括。
这两篇论文是相关的。一个显示Argon2i比Balloon哈希“更好”,另一个显示一个最优图,在累积成本方面,它比所有其他选择都好。
不确定我是否同意很少使用scrypt。一方面,它在加密货币中的使用,就其运行时间或计算时间而言,可能比替代方法要高出几个数量级。即使将其用作密码哈希,也可以在各种“大脑钱包”系统中使用。