首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于具有截断输出的SHA-2,哪些攻击是通过不同的初始哈希值来防止的?

对于具有截断输出的SHA-2,哪些攻击是通过不同的初始哈希值来防止的?
EN

Cryptography用户
提问于 2018-07-20 12:58:33
回答 1查看 793关注 0票数 10

NIST指定具有截断输出的SHA-2散列函数.这些散列使用与SHA-256或SHA-512不同的初始化值。沙224是基于SHA-256。SHA-384、SHA-512/224和SHA-512/256都是基于SHA-512的。

虽然我看到了关于截断的SHA-2函数为什么使用不同的初始值的松散评论,但我没有看到任何强有力的推理。我唯一能正式找到的就是引用RFC 3874:“A 224位单向散列函数: SHA-224”,第1.1节.使用考虑的话:

使用不同的初始值可以确保截断的SHA-256消息摘要值不会被误认为是在同一数据上计算的SHA-224消息摘要值。

但这句话并没有列出任何具体的攻击,也不是SHA-2安全审查的一部分。

有人能解释通过为SHA-2变体选择不同的初始值来防止哪些攻击吗?

我特别寻找的答案表明初始值如何帮助减轻攻击。更重要的是,我正在寻找<#>authoritative答案,即:可以指向安全性评估或有关此主题的SHA-2证明的答案。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-07-20 16:45:16

这个问题的引用很可能是为什么对相同内部块大小的SHA-2变量选择不同的初始起始值的原因。不同的哈希函数产生独立的结果,只知道它们的共同输入,这本身就是一个有效的目标。为了做出保守的选择,没有必要考虑具体的攻击。

否则说明:对于知道某些秘密的SHA-1的攻击者来说,找到该秘密的SHA-256的最佳选择是找到该秘密。如果攻击者知道SHA-224哈希而不是SHA-1哈希,则使用不同的初始值使其保持不变。这可以称为(域)散列函数分离。

在这种预防措施可以节省时间的情况下,构建人工协议是容易的。例如: Alice绘制一个80字节的随机字符串$S$,显示它的SHA-224 (例如,作为承诺或键检查值),然后使用$S$作为HMAC键,SHA-256作为底层散列。HMAC将从使用SHA-256散列$S$开始,然后使用它作为其内部密钥。使用SHA-224和SHA-256中不同的初始化值,Alice是安全的.如果没有,她将走向灾难,因为除了32位的HMAC密钥与泄露的SHA-224相吻合。

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

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

复制
相关文章

相似问题

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