gpt4 book ai didi

sha1 - SHA-1哈希可以全零吗?

转载 作者:行者123 更新时间:2023-12-03 09:06:26 27 4
gpt4 key购买 nike

SHA-1是否有任何输入可以计算为十六进制值四十,即“0000000000000000000000000000000000000000000000”?

最佳答案

我不这么认为。

没有简单的方法来显示为什么不可能。如果存在,那么它本身就是查找冲突的算法的基础。

更长的分析时间:

预处理可确保输入中始终至少有一个1位。
w[i]上的循环将保留原始流,因此输入中至少有一个1位(字0到15)。即使对位模式进行了巧妙的设计,从0到15的至少某些值也必须为非零值,因为循环不会影响它们。

注意:leftrotate是循环的,因此不会丢失1位。

在主循环中,很容易看到k因子从不为零,因此temp不能为零,原因是右侧的所有操作数都为零(k从未为零)。

这给我们留下了一个问题,即是否可以通过使总和溢出来创建(a leftrotate 5) + f + e + k + w[i]返回0的位模式。为此,我们需要找到w[i]的值,以便w[i] = 0 - ((a leftrotate 5) + f + e + k)
因为您可以完全控制w[i]的前16个值,所以这是可能的。但是通过xor编码前16个值来再次创建字16到79。

因此,下一步可能是展开循环并创建线性方程组。我将其留给读者练习;-)该系统很有趣,因为我们有一个循环,该循环可创建其他方程式,直到最终得到稳定的结果。

基本上,选择算法的方式是,您可以通过选择输入模式来创建单个0字,但是这些效果可以通过xor编码输入模式以创建其他64个输入来抵消。

只是一个例子:为了使temp 0,我们有

a = h0 = 0x67452301
f = (b and c) or ((not b) and d)
= (h1 and h2) or ((not h1) and h3)
= (0xEFCDAB89 & 0x98BADCFE) | (~0x98BADCFE & 0x10325476)
= 0x98badcfe
e = 0xC3D2E1F0
k = 0x5A827999

这将给我们 w[0] = 0x9fb498b3等。然后在单词16、19、22、24-25、27-28、30-79中使用此值。

同样,单词1、17、20、23、25-26、28-29、31-79中使用了单词1。

如您所见,存在很多重叠。如果计算得出的结果为0的输入值,则该值会影响其他32个其他输入值。

关于sha1 - SHA-1哈希可以全零吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1902340/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com