首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HKDF位安全性

HKDF位安全性
EN

Cryptography用户
提问于 2021-02-15 10:47:19
回答 1查看 281关注 0票数 1

我一直理解散列函数的位安全性与它们的输出大小有关(例如。(防撞)。然而,我最近从一个Wickr博客帖子上看到一个表,其中列出HKDF 256具有256位安全性。这张桌子:

  1. 当HMAC- this 256提供128位安全时,这是如何工作的?这是由于输入键的材料大小正在使用吗?
  2. 键控BLAKE2b的安全性是什么--与HMAC应用相同的规则吗?
  3. BLAKE2b作为KDF的安全性是什么(例如。带有salt和个性化的利伯钠实现)?

例如,即使标签只有256位(通常是128位的抗碰撞能力),256位密钥也能提供256位的安全性吗?

对于键控BLAKE2,我找不到任何提及这些细节的内容,但根据RFC,未键的256位输出具有128位的碰撞阻力:

代码语言:javascript
复制
        Algorithm     | Target | Collision | Hash | Hash ASN.1 |
           Identifier |  Arch  |  Security |  nn  | OID Suffix |
       ---------------+--------+-----------+------+------------+
        id-blake2b160 | 64-bit |   2**80   |  20  |   x.1.5    |
        id-blake2b256 | 64-bit |   2**128  |  32  |   x.1.8    |
        id-blake2b384 | 64-bit |   2**192  |  48  |   x.1.12   |
        id-blake2b512 | 64-bit |   2**256  |  64  |   x.1.16   |

请不要用一堆数学来回答。我不擅长数学。我是个开发人员,不是数学家。

EN

回答 1

Cryptography用户

发布于 2021-02-15 11:59:26

为了防止碰撞,哈希函数的比特安全性是其输出长度的一半。这是因为在时间n中,可以在输出长度为2^{n/2}的任何哈希函数中找到冲突。这就是为什么SHA256的位安全性相对于其主要的抗碰撞安全性而言是128。但是,这并不意味着SHA256不能用于其他目的并实现更高的比特安全性。特别是对于HKDF,输出的比特安全性基本上是输入的安全性(最多为256位,即输出长度)。因此,如果在大小为128位(或熵128的字符串)的输入键上使用HKDF,则会收到具有128位安全性的输出密钥。如果在大小为256位(或熵256的字符串)的输入键上使用HKDF,则会收到具有256位安全性的输出密钥。注意,在所有情况下,SHA256的输出都是256位,所以如果需要更短的结果(例如,当使用128位键时),则需要按照HKDF中指定的那样截断结果。

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

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

复制
相关文章

相似问题

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