bcrypt 是 10 多年前设计的。
根据固执己见的互联网声音,bcrypt 比 PBKDF2 等替代方案更好,因为它具有 GPGPU 攻击缓解功能(高内存、变异表),尽管这两种算法都有可修改的工作因素,会减慢暴力破解尝试的速度。
我读到,bcrypt 实际上只需要 4k 的可变内存,对于现代 GPU 或 FPGA,它并不比替代方案更好。
这有多真实? bcrypt 相对于此类攻击是否还有优势?
最佳答案
bcrypt 比 PBKDF2 更强
- 尽管现代 GPU 和 FPGA 可能有足够的内存来处理 bcrypt,但与 SHA 哈希系列(大多数 PBKDF2 实现的基础)相比,较高的内存要求仍然会减慢它们的速度。
- 与 SHA 系列不同,Blowfish 是一种非常难以矢量化的算法。矢量化 SHA 对 GPU 非常友好,并且允许更多并行性。
但这可能并不重要
bcrypt 充其量比 PBKDF2 具有线性优势。也就是说,如果敌人可以在 X 时间内破解 PBKDF2 系统,那么他们可以在 n*X 时间内破解 bcrypt 系统,对于某个常数 n>1。而且 n 可能还不够大,不足以产生改变游戏规则的差异。
我的看法是,如果我的密码足够弱,可以在任何合理的时间内被破解,那么将该时间乘以 n(通过更改算法)不会改变太多。
关于algorithm - bcrypt 真的比其他 key 派生算法更能缓解 GPU 攻击吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18391066/