链子如何在彩虹桌上工作?

时间:2010-04-02 21:42:00

标签: cryptography rainbowtable

我想知道是否有人可以详细解释,链条如何在彩虹表中工作,就像你对一个完整的新手一样,但与编程有关。

我知道链是16个字节长。 8个字节标记起始点,8个标记结束。我也明白在文件名中我们有链长,即2400.这意味着在我们的起点和终点之间只有16个字节,我们有2400个可能的明文,什么?这是如何运作的?在那16个字节中,如何获得2400个哈希值和明文,或者我是否误解了这个?

非常感谢您的帮助。

感谢。

P.S。:我已经阅读了相关的论文,并且搜索了这个主题。我想我只是缺少一些重要的东西来使这些齿轮转动。

1 个答案:

答案 0 :(得分:3)

了解哈希链的起点,您可以通过重复应用哈希 - 减少函数来计算所有中间词和终点。

当您想要在链中搜索哈希密码时,会出现结束点。将hash-and-reduce应用到链长的次数;在每个阶段,查看您的中间体是否与您计算的任何链的端点匹配。如果是这样,那么您已经找到了包含密码的链。然后你就知道了链的起始位置,因为你已经存储了它的起始点,所以你可以从那里轻松地向前走链,找到密码,当经过一次哈希处理时,产生哈希值。

完整的彩虹表过程适用于这种搜索,但具有一系列不同的缩减函数以避免散列冲突;我不太了解细节。