为什么SHA-224和SHA-256使用不同的初始值?


9

维基百科-SHA-2

SHA-224与SHA-256相同,除了:

  • 初始变量值h0到h7不同,并且
  • 通过省略h7来构建输出。

RFC3874-224位单向哈希函数:SHA-224

使用不同的初始值可确保将截断的SHA-256消息摘要值误认为是对相同数据计算的SHA-224消息摘要值。

我的问题:

  1. 以上引用的原因是SHA​​-224和SHA-256使用不同初始值的唯一原因吗?

  2. 为什么确保SHA-256消息摘要值不能被误认为SHA-224消息摘要值很重要?

  3. 如果我们对两个哈希函数使用相同的初始值,那么两个哈希函数的安全性是否会恶化?如果是,怎么办?


7
几乎可以肯定,这更适合crypto.SE
彼得·泰勒

1
至少问题2在这里似乎是题外话。毕竟,这与人们如何使用计算机以及对计算机的便利性有关。不是真正的TCS问题。
Jukka Suomela 2011年

Answers:


4
  1. 当我们对不同的输出大小使用相同的算法时,这称为域分离。
  2. 分隔是必要的,因为如果我发现两个具有哈希值(SH256)的消息,仅在最后一个八位位组不同,那么我可以将哈希值作为显示我使用SHA224的前7个八位位组发布。因为我已经在SHA224上碰撞了两条消息,以后可以将其用于伪造攻击。使用域分离,我们可以避免这种情况
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.