代码之家  ›  专栏  ›  技术社区  ›  alias_neo92

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

  •  1
  • alias_neo92  · 技术社区  · 9 年前

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

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

    1 回复  |  直到 9 年前
        1
  •  3
  •   David Schwartz    9 年前

    假设输入中有10个字节。要破解整个输入,我们必须尝试2^(10*8)个输入。在80%的情况下,我们只需要尝试2^(2*8)个输入。这大约少了五倍。如果输入大小增大,则比率会更大。

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

    事实上,未知的部分是在开始还是结束都很重要。开始时,每32位已知数据将减少所需操作的数量,这比您预期的要多,因为某些计算可以重复使用。