首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么PBKDF2使用HMAC?

为什么PBKDF2使用HMAC?
EN

Cryptography用户
提问于 2020-09-25 08:43:36
回答 1查看 169关注 0票数 3

当我学习PBKDF2时,我发现大多数文章都说PBKDF2使用HMAC作为PRF。为什么是HMAC?我可以使用其他伪随机函数吗?对于PBKDF2来说,HMAC比任何其他功能都安全吗?

EN

回答 1

Cryptography用户

发布于 2020-09-25 09:44:03

<#>TL;DR:密码的位值是“奇怪地”分布的,哈希函数(因此HMAC)通常被认为能更好地处理它们。

为什么是HMAC?

据推测,最初的想法是改进以前的设计,这些设计都非常偏重于杂乱。人们希望以某种方式使用哈希函数来处理密码。但是PBKDF2的设计者可能认为使用PRF是明智的(从而减少了对底层函数的假设),HMAC是将散列转换为PRF的标准方法。而且,他们也可能喜欢不用跳过圈来定义处理任意长度密码的方法的想法。

我可以使用其他伪随机函数吗?

所以,如果您的密码是一个一致随机的位序列,那么是的,您绝对可以使用其他PRF,并从PBKDF2中获取一个PRF。然而,密码一般不会停留在这种模式下。在这种情况下,通常会使用哈希函数将高熵非均匀值映射为高熵一致值。

当然,上述论点提出了一个问题:“KMAC和其他基于散列的PRF怎么办?”它们应该工作得很好,因为它们倾向于继承其基础散列函数的安全优势。然而,请注意,一些这样的结构(而不是KMAC)在可变长度键方面有弱点。你的盐的长度。

至于实际使用KMAC (以及这个Keccak / SHA-3),这是一个困难的情况。原则上是可行的。但是,您通常希望使用函数进行密码推导,在这种情况下,最优的ASIC将强制执行,它本质上将是hasher的正常CPU (或者只是稍微好一点)。然而,在我们得到专门的Keccak扩展之前,专用的Keccak电路很可能比软件实现要快得多,这使得PBKDF2-KMAC成为比例如Argon2更低劣的选择。

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

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

复制
相关文章

相似问题

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