我一直在查看SHA256的文档,我认为每个块的最后两个单词(64位)并不用于创建消息计划。
从维基百科..。
将前16个单词扩展到消息调度数组的其余48个字w16.63中:
for i from 16 to 63
s0 := (w[i-15] rightrotate 7) xor (w[i-15] rightrotate 18) xor (w[i-15] rightshift 3)
s1 := (w[i-2] rightrotate 17) xor (w[i-2] rightrotate 19) xor (w[i-2] rightshift 10)
w[i] := w[i-16] + s0 + w[i-7] + s1注意如何不使用w一-一和w我?这两个单词将是1块散列的长度,但对于实际数据(大于512位),最后64位将被忽略。这将导致两个(或更多)消息的哈希相同。我漏掉了什么还是我说对了?
发布于 2015-12-23 18:32:16
我已经想明白了。消息调度的长度为64字,因为该块只有16字。该计划在前16个单词中包含了该块的副本,然后将块中的原始16个单词涂抹到其余的48个单词。
https://crypto.stackexchange.com/questions/31480
复制相似问题