bcrypt迭代的安全性/成本参数

时间:2015-05-28 14:11:53

标签: security hash passwords password-protection bcrypt

事实A.基于Pigeonhole原则,每个哈希函数都有无限多的冲突,即使还没有找到。

事实B.重新散列散列,如散列(散列(密码))并不比散列(密码)更安全,实际上散列(散列(密码))打开了哈希无法实现的碰撞攻击(密码)。

事实C.基于B,通过增加迭代,我们达到了大多数密码和盐将返回相同的常量哈希值的点。我的意思是碰撞的概率很高,甚至是100%。

事实D. bcrypt有一个迭代/成本参数,我们可以根据我们的硬件规格随时间增加。

因此,通过结合这些事实,我们可以说,通过更高的bcrypt成本值,我们通过增加碰撞的概率来降低安全性吗? 如果答案是“不”,为什么?

1 个答案:

答案 0 :(得分:2)

BCrypt不进行愚蠢的迭代,它包括每次迭代中的原始密码和salt。 PBKDF2也是如此,它在每次迭代中都使用HMAC。看看BCrypt的pseudo code

信息安全上有一个关于迭代哈希冲突影响的非常illustrative answer。在praxis中,据我所知,即使在迭代时,冲突也不是密码散列的问题。