破解被操纵的哈希是多么容易

时间:2017-08-27 07:23:23

标签: security cryptography

让我们说例如我使用了一个函数,如:

If Input = "youtube" Or Input = "Youtube Then
    Sapi.speak "Opening Youtube"
    wshshell.run "www.youtube.com"
End If

为了重现相同的哈希值,推断出如何操作哈希是多么容易?

1 个答案:

答案 0 :(得分:2)

这取决于转型。对于someHash函数,这非常简单。请注意,您正在应用的变换是一个简单的线性函数。您的转换可以表示为:

其中 h'是新哈希, h 是原始哈希。如果您有一个哈希值及其更改的哈希值,则可以求解 c 的等式。 (c = h' - h = -90)。

这个例子很多,为什么我们经常说rolling your own crypto通常不是一个好主意。该计划实际上需要两个属性:

  1. 该方案必须生成看起来random的输出。
  2. 该计划不容易被猜到。
  3. 上面提到的攻击 为什么 1。很重要。在这种情况下,转换具有非常清晰的结构,我们可以很容易地利用它。

    需要

    2。,因为即使我们没有具有此结构的方案,我们仍然可以枚举c。在尝试了非常少量的数字之后,我们仍然找到常量c = -90

    这并不意味着这是不可能的。恰恰相反:我们使用分组密码重新加密哈希。这是有效的,因为块密码产生的输出看起来是随机的,它需要随机生成的≥128位密钥(这足够大,以至于无法轻易猜到)。