首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么bcrypt的作者选择了河豚而不是像SHA-1这样的散列函数?

为什么bcrypt的作者选择了河豚而不是像SHA-1这样的散列函数?
EN

Cryptography用户
提问于 2019-07-03 12:48:17
回答 2查看 394关注 0票数 1

我想知道使用bcrypt比基于一些加密哈希函数(如SHA-1 (或SHA-3) )的迭代和盐渍KDF的优点是什么?我想bcrypt的作者选择Blowfish (一种分组密码)是出于一个严重的原因,但我们几乎无法用SHA-1/SHA-3 (一个哈希函数)代替它。这种做法有什么问题呢?非哈希函数所带来的分组密码带来的安全属性是什么?

EN

回答 2

Cryptography用户

回答已采纳

发布于 2019-07-07 00:07:17

bcrypt KDF不按原样使用整个块密码。它依赖于其密钥计划的修改版本。这是很重要的,因为河豚,不像其他许多密码,有一个非常昂贵的密钥时间表。它需要大约四千字节的快速内存,与SHA-1相比,SHA-1非常轻,几乎可以在x86寄存器中完全计算。尽管bcrypt不像其他像Argon2这样的现代KDF那样内存困难,但它在当时还是相当不错的,而且在许多方面仍然比PBKDF2好,后者在内部使用像SHA-1或SHA-2家族的散列函数。

有关内存硬度好的更多信息,请参见为什么一个人不能在库达实现bcrypt?。这就解释了为什么你不能从具有bcrypt的GPU的大规模并行中获得如此多的信息。另外还有Thomas在其他地方发布的精彩的答案,它更详细地介绍了bcrypt的安全性。

票数 2
EN

Cryptography用户

发布于 2019-07-04 13:33:22

要了解作者的意思,最好的办法可能是阅读他们介绍bcrypthttps://www.usenix.org/legacy/event/usenix99/provos/provos.pdf的原始论文。

我认为比较bcrypt和例如pbkdf2对bcrypt不太公平,因为它是一个早期的构造,并且像可调整的迭代次数这样的想法实际上是受到bcrypt的启发。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/71727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档