发布于 2023-03-15 16:53:36
HKDF能代替密码散列函数吗?
是。
HKDF是从HMAC和散列定义的(那里)。对于固定的小(可能是空的)常量字节字符串,H(M)计算为\operatorname{HKDF-Expand}(\operatorname{HKDF-Extract}(\mathrm{salt},M),\mathrm{info},512) (可能是空的),而SHA-512作为HMAC的基础散列,在本质上将表现为4096位哈希,与SHA-512一样强。
可以说,在可能的输出数量和每个512位输出段的可能值数量上有一点损失,但在计算上是不可能观察到的,而且可以说是在这中的参数中的2位之内。
问题是每个产生8×512位的HKDF需要花费20‡SHA-512压缩函数(对于小型M)。在Balloon (或其他内存硬功能)上下文中,恐怕这种相对较高的成本会将平衡转移到那些能够以惊人的速度实现SHA-512的对手身上。我宁愿在哈希的加密安全性上节省很多,而倾向于使用更快的哈希,以便更多的计算能力用于内存访问。
‡假设在可能的情况下对HMAC中的第一个块进行仔细的实现缓存;否则我将得到36个。这两项数字都需要反复核对。
https://crypto.stackexchange.com/questions/105679
复制相似问题