如果我开始使用sha256哈希,例如
3f46fdad8e5d6e04e0612d262b3c03649f4224e04d209295ef7de7dc3ffd78a7
并连续重新拍摄(没有腌制):
i)在循环开始循环或返回相同值之前需要的最短时间是多少?
ii)如果它确实自行循环,我们可以假设它已被破解吗?
iii)使用现代GPU破解技术需要多长时间?iv)如果所有中间散列都记录在某种彩虹表中 - 可能是该循环中的所有散列都会受到损害?
v)什么是阻止某人计算这些周期并为sha256哈希提供裂缝 - 同样适用于其他哈希协议...
对于额外分数 - 600亿年前在这个论坛上提出这个问题的概率是多少?
答案 0 :(得分:2)
如果sha256生成的值可以假设均匀随机分布,则存在概率为1 / e (约37%)的256位序列,其sha256散列为等于自己。如果是这样,最小序列长度为1。
另一方面,基于pigeonhole principle,我们知道序列必须在不超过2次 256 次迭代后重复。这并没有说明sha256的破碎情况。
最大循环长度为2 256 ≈1.16×10 77 次迭代。如果你可以每秒评估10次 12 哈希值,那么在所有可能的哈希值上进行操作将需要大约10 65 秒(大约是地球年龄的十亿亿次) 。即使你有幸在一段时间内找到一个循环,你仍然有可能等待数万亿年。
祝你好运。如果我们银河系中的每个原子都用于存储一个单独的哈希值,那么在存储的哈希值总数不到十亿分之一之后就会耗尽空间。 (来源:银河系中的原子数≈10 68 )
见3和4