如果我知道部分输入,破解 SHA1 是否会更容易?

Whether cracking SHA1 will be easier if I know part of the input?

假设我知道 80% 的 SHA1 输入。从 SHA1 哈希值中破解剩余的 20% 是否比破解整个输入更容易?如果是,百分比是多少?

例如:我知道输入 SHA1(xxxxxxxxyy)= 哈希值中的 x

假设输入有10个字节。要破解整个输入,我们必须尝试 2^(10*8) 个输入。给定 80% 后,我们只需尝试 2^(2*8) 个输入。这大约是五分之一。如果输入大小增加,比率会变得更大。

SHA1 今天是不可逆的,输入中有大约 100 个未知位(12 字节)。只有 20% 的输入未知,这意味着输入大小需要大约 500 位或大约 62 字节才能安全。

未知部分是在开头还是结尾其实很重要。开头的每 32 位已知数据减少了所需操作的数量,比您预期的要多一点,因为可以重复使用一些计算。