4

我正在做一个使用彩虹表破解 sha256 的项目。我正在尝试攻击 8 位字母数字序列。我完全了解彩虹表的工作原理以及链应该如何形成和存储。但是,我不明白如何获得减少函数来形成链。我已经用谷歌搜索并自己考虑了几个小时,但没有结果。那么,什么是链的良好归约函数以及如何证明它涵盖了所有 8 位字母数字序列。

4

1 回答 1

3

有 10^9 个不同的 8 位数字序列。SHA256 哈希值的前 30 位有 1073741824 个可能值。因此,一种合理的方法是提取这 30 位并将该数字模 10^9 用作您的归约函数:

R(hash) = hash[0:30] % 10^9

这实际上不太可能涵盖所有 8 位序列,但在实践中,由于假设 SHA256 的“随机性”属性,它应该足够好。由于模数的原因,对数字 <= 2^30 - 10^9 有一点偏差。

于 2014-10-31T11:50:44.777 回答