首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blake2:截断512位哈希比Config的256位更安全?

Blake2:截断512位哈希比Config的256位更安全?
EN

Cryptography用户
提问于 2015-12-12 18:44:26
回答 1查看 1.1K关注 0票数 7

我需要使用BLAKE2在我的代码中计算256位哈希.

我知道我可以将BLAKE2设置为为任何数据生成一个256位的散列,但我很想知道什么可以更安全、更快:

1-使用Blake2Config模块创建256位;或者2-截断正常的512位结果,得到最左边的32字节(256位)。

在第一次,我想得到最左边的32个字节可能更安全,也不会比直接从Blake获得256位的速度慢。

我说错了吗?谢谢你的评论。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2015-12-12 19:31:57

您应该始终使用配置选项来选择哈希函数的输出大小.

如果您需要一个标准输出大小(例如224、256、384、512位),请使用推荐的参数集。

这主要适用于像SHA-3这样的标准,如果您使用SHA-3-256,您将得到一个与"Keccak-256“、SHA-3-512/256和SHAKE128-256不同的(更标准的输出),这些标准都使用所谓的”域分离“(即在输入中追加一个特定的字节序列以获得不同的散列)。

第一次发言的理由如下:

config选项总是与/优于手动截断。在最坏的情况下(例如,握手),它只是对无限长的密钥流的简单截断,因此显示出与手动截断相同的安全属性。在最好的情况下(例如,Skein),选定的输出大小将影响输出,也就是说,Skein-256-256将为消息m提供与Skein-256-255完全不同的输出。显然,这是更安全的(而且通常不会降低速度),因为它将保证Trunc(H_{d}(m),t)\neq H_t(m)可能是一个理想的属性(尽管很少需要)。

Blake2对应于第二种情况(即摘要大小影响输出)。所请求的摘要大小被用作初始的内部链接值(在IV之后)以及一个静态常量和MAC键(如果使用)。因此,它对哈希的影响和IV一样大,这意味着对于相同的消息,Blake2b-32将与Blake2b-64有很大的不同。这可以在RFC 7693 on 第4页(可变名称)第9页(散列大小的使用)中找到。

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

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

复制
相关文章

相似问题

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