散列(m1 xor m2)=散列(m1)xor散列(m2)在SHA1的情况下是否为真

时间:2010-11-11 00:21:09

标签: hash cryptography

任何人都可以对此有所了解吗?

我的回答是否定的,因为SHA1具有强大的抗冲击性能。

4 个答案:

答案 0 :(得分:3)

不,这不是真的。 (而且自己实际测试它只需要几秒钟。)

答案 1 :(得分:1)

不,这不是真的。一个函数必须不遗余力地拥有这个属性。 SHA1以预定义的初始值开始,在块上合并来自其流的字节。最后,它将字节流的长度合并到字节流中,并填充到块大小。

它没有试图满足有问题的财产(这是一件好事!)

答案 2 :(得分:1)

没有。致quote from Wikipedia

即使消息中的一个小变化也会以极大的可能性导致由于雪崩效应导致完全不同的散列。

这是一个反例(0xFF xor 0x00是0xFF):

$ echo -ne "\xff" > 1
$ echo -ne "\x00" > 2
$ sha1sum *
85e53271e14006f0265921d02d4d736cdc580b0b *1
5ba93c9db0cff93f52b521d7420e43f6eda2784f *2

如果你的陈述是真的,那么第二个散列必须是00000000 ......,但事实并非如此。

答案 3 :(得分:0)

我担心只有当您的哈希函数为异或时,它才会成立。