【问题标题】:SHA-256 does bit append still required if input is already N x 512 bit?如果输入已经是 N x 512 位,SHA-256 是否仍然需要附加位?
【发布时间】:2021-11-08 05:45:13
【问题描述】:

如果我的输入小于 512 位的倍数,我需要将位和长度位附加到我的输入,使其成为 512 位的倍数。
https://infosecwriteups.com/breaking-down-sha-256-algorithm-2ce61d86f7a3

但是如果我的输入已经是 512 位的倍数呢?是否仍然需要进行位追加?例如,如果我的消息已经是 512 位长,我是否需要将其附加到 1024 位长?

如果我的输入小于 512 位的倍数,但长度足以不允许追加长度位怎么办?例如,我的输入是 504 位长。

【问题讨论】:

  • 它似乎解释得很清楚:“我们添加的位数是这样计算的,因此在添加这些位之后,消息的长度应该正好比 512 的倍数小 64 位。”如果有 512 位,则必须将其填充到 960 位,然后添加 64 位作为长度,总共 1024。与 504 相同,因为 504 > 512-64。否则,您会遇到最后 64 位有时是长度位,有时不是,这似乎不对。
  • 唯一不添加任何填充的情况是数据已经是 512*n-64,例如如果是 448 位。然后你不添加填充,但仍然添加长度位,并以 512 结束。
  • 好的,谢谢,现在我明白了,让它成为答案,我接受它
  • 等待最后澄清,所以如果我的输入是 512 位,我将它填充到 960,然后 1024 对吗?
  • 是的,我就是这么说的。

标签: hash sha256


【解决方案1】:

好像解释的比较清楚:

我们添加的位数是这样计算的,这样在添加这些位后,消息的长度应该正好是 64 位,小于 512 的倍数。

如果有 512 位,则必须将其填充到 960 位,然后添加 64 位作为长度,总共 1024。与 504 相同,因为 504 > 512-64。否则你会遇到最后 64 位有时是长度位有时不是的情况,这似乎不对。

您不会添加任何填充的唯一情况是数据已经是 512*n-64,例如如果是 448 位。然后你不添加填充,但仍然添加长度位,并以 512 结束。

【讨论】:

    猜你喜欢
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 2018-04-18
    • 2014-01-08
    • 2015-11-25
    • 2011-05-24
    相关资源
    最近更新 更多