事实A.根据鸽子洞原理,每个哈希函数都有无限次碰撞,即使还没有发现。
事实b:重新哈希,比如hash(hash(password))并不比hash(password)更安全,实际上hash(hash(password))会导致碰撞攻击,这是hash(password)所不可能实现的。
事实c基于B,通过增加迭代,我们达到了大多数密码和盐将返回相同的常量哈希值的点。我的意思是碰撞的可能性会很高,甚至是100%。
事实D. bcrypt有一个迭代/成本参数,我们可以根据硬件规格随着时间的推移而增加。
那么,通过结合这些事实,我们是否可以说,随着更高的比特币成本值,我们通过增加碰撞概率来降低安全性?如果答案是否定的,为什么?
BCrypt不做愚蠢的迭代,它在每次迭代中都包含原始密码和盐。PBKDF2也是如此,它在每次迭代中都使用HMAC。看一下BCrypt的伪代码
在信息安全中有一个非常说明性的答案,关于迭代哈希碰撞的影响。在实践中,据我所知,对于密码哈希,即使是迭代,碰撞也不是真正的问题。