Eli*_*ins 22
简答:
不,也许永远不会.对于密码散列,BCrypt和PBKDF2-HMAC- XXX比任何简单的SHA-更好的选择1/2/3算法.在SHA-1/2实际发布可行的preimage攻击之前,SHA-3实际上是最糟糕的选择,特别是因为它的速度和缓存占用率低.
更长的答案:
不同密码哈希算法的相对安全性的一个主要因素是:专用攻击者哈希密码与您相比可以多快多少?也就是说,他们的软件/硬件组合(为密码散列的明确目的而购买)与服务器上的软件(软件的现成C实现,为应用程序的需求而购买的硬件)的速度要快得多.
SHA-3的主要标准之一是应该在嵌入式架构上高效运行,这些架构以少量的片上高速缓存,寄存器等为代表.但这也描述了现代GPU:更少的寄存器/累加器,更小的片上高速缓存; 但另一方面,他们的芯片经过优化,可以在大量数据上并行执行相同的任务.这对于攻击者的蛮力尝试来说是完美的:因为通过购买另一个GPU,攻击者可以通过购买更好的CPU来获得更多SHA3哈希/秒.
由于这个特定的原因,BCrypt被设计为对内存表进行大量的读/写操作,当前表大于大多数GPU的缓存.这意味着当前基于GPU的BCrypt实现甚至无法与其CPU对应的速度相提并论.因此,只要选择BCrypt,就可以通过强迫他购买与你相同的CPU来减慢攻击者对他花费的每一美元的优势.
这就是为什么原始速度是密码散列的敌人.您希望选择最快的软件/硬件组合为您的攻击者提供的算法,与您将使用的商品软件/硬件相比,每美元的利益最小.现在,这是BCrypt,或PBKDF2-HMAC- xxx的稍微选择.由于GPU可能只会更好地做SHA3,我怀疑它永远是正确的选择.我没有关于SHA3的数字,但"哪个更安全"并不是一个模糊的相对术语 - 上述规则可用于精确量化它.
| 归档时间: |
|
| 查看次数: |
2579 次 |
| 最近记录: |