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亿年前这个论坛被问到的概率是多少?
如果假设sha256生成的值是均匀随机分布的,则存在概率为1−1/e(约63%)一个 256 位序列,其 sha256 散列值等于其自身。如果是,则最小序列长度为1。
另一方面,根据pigeonhole principle,我们知道序列必须重复不超过2256 次迭代。这并没有说明 sha256 的缺陷。
最大循环长度为2256≈1.16×1077次迭代。如果您每秒可以评估 1012 个哈希值,那么通过所有可能的哈希值您将花费大约 1065 秒(大约五分之一倍地球的年龄)。即使您足够幸运,只用了一小部分时间就找到了循环,您仍然可能要等待数万亿年。
祝你好运。如果我们银河系中的每个原子都被用来存储一个单独的哈希值,那么在存储不到哈希总数的十亿分之一之后,您将 运行 out of space 。 (来源:银河系原子数≈1068)
见3和4
A similar question was asked about 9 years ago.
如果我从 sha256 哈希开始,例如
3f46fdad8e5d6e04e0612d262b3c03649f4224e04d209295ef7de7dc3ffd78a7
并不断重新散列(不加盐):
i) 在它开始循环或回到相同值(如果有的话)之前需要的最短时间是多少?
ii) 如果它自己循环回来,我们可以假设它已经被破解了吗?
iii) 使用现代 GPU 破解技术需要多长时间?
iv) 如果所有中间散列都记录在某种彩虹表中 - 大概该循环中的所有散列都会受到损害?
v) 什么是阻止某人计算这些周期并向 sha256 散列提供破解 - 同样适用于其他散列协议...
加分 - 这个问题在600亿年前这个论坛被问到的概率是多少?
如果假设sha256生成的值是均匀随机分布的,则存在概率为1−1/e(约63%)一个 256 位序列,其 sha256 散列值等于其自身。如果是,则最小序列长度为1。
另一方面,根据pigeonhole principle,我们知道序列必须重复不超过2256 次迭代。这并没有说明 sha256 的缺陷。
最大循环长度为2256≈1.16×1077次迭代。如果您每秒可以评估 1012 个哈希值,那么通过所有可能的哈希值您将花费大约 1065 秒(大约五分之一倍地球的年龄)。即使您足够幸运,只用了一小部分时间就找到了循环,您仍然可能要等待数万亿年。
祝你好运。如果我们银河系中的每个原子都被用来存储一个单独的哈希值,那么在存储不到哈希总数的十亿分之一之后,您将 运行 out of space 。 (来源:银河系原子数≈1068)
见3和4
A similar question was asked about 9 years ago.