sha256 摘要循环到达原始哈希或开始循环需要多长时间?

How long would it take for a sha256 digest loop to reach the original hash or start cycling?

如果我从 sha256 哈希开始,例如

3f46fdad8e5d6e04e0612d262b3c03649f4224e04d209295ef7de7dc3ffd78a7

并不断重新散列(不加盐):

i) 在它开始循环或回到相同值(如果有的话)之前需要的最短时间是多少?

ii) 如果它自己循环回来,我们可以假设它已经被破解了吗?

iii) 使用现代 GPU 破解技术需要多长时间?

iv) 如果所有中间散列都记录在某种彩虹表中 - 大概该循环中的所有散列都会受到损害?

v) 什么是阻止某人计算这些周期并向 sha256 散列提供破解 - 同样适用于其他散列协议...

加分 - 这个问题在600亿年前这个论坛被问到的概率是多少?

  1. 如果假设sha256生成的值是均匀随机分布的,则存在概率为1−1/e(约63%)一个 256 位序列,其 sha256 散列值等于其自身。如果是,则最小序列长度为1。

  2. 另一方面,根据pigeonhole principle,我们知道序列必须重复不超过2256 次迭代。这并没有说明 sha256 的缺陷。

  3. 最大循环长度为2256≈1.16×1077次迭代。如果您每秒可以评估 1012 个哈希值,那么通过所有可能的哈希值您将花费大约 1065 秒(大约五分之一倍地球的年龄)。即使您足够幸运,只用了一小部分时间就找到了循环,您仍然可能要等待数万亿年。

  4. 祝你好运。如果我们银河系中的每个原子都被用来存储一个单独的哈希值,那么在存储不到哈希总数的十亿分之一之后,您将 运行 out of space 。 (来源:银河系原子数≈1068

  5. 见3和4

  6. A similar question was asked about 9 years ago.