比特币网络使用 SHA256 作为其设计的核心组件。我不是密码学专家,但在我看来,发现安全漏洞通常只是时间问题(例如 MD5 以及许多其他漏洞)。
在某个阶段在 SHA256 中发现类似漏洞的可能性有多大,它对比特币网络的破坏程度有多大?
比特币网络使用 SHA256 作为其设计的核心组件。我不是密码学专家,但在我看来,发现安全漏洞通常只是时间问题(例如 MD5 以及许多其他漏洞)。
在某个阶段在 SHA256 中发现类似漏洞的可能性有多大,它对比特币网络的破坏程度有多大?
确定密码算法安全性的唯一已知方法是将其置于数百名密码学家的密切审查之下数年,然后看看结果如何。所以这里的正确观点是历史的。
MD5发表于 1992 年;它实际上是在前一年(1991 年)设计的。1993 年,首先发现了弱点,然后在 1996 年发现了更大的弱点(压缩函数的碰撞,由 Dobbertin 发现)。2004 年,Wang 花了 8 年时间才将这些弱点转化为实际碰撞。 7 年后,在 2011 年,我们可以随意创建 MD5 碰撞(并且比使用 Wang 的原始方法更有效),但是原像和秒- MD5 的原像电阻仍然和以往一样好。
由此我们可以推断,当哈希函数中发现弱点时,它们不会在一夜之间出现:我们有相当长的时间做出反应。此外,第一个 MD5 弱点在其发布仅一年后被发现,那是在 1990 年代初期,当时密码学的公共研究涉及的人数比现在少得多。
让我们看看这对 SHA-256 有什么影响:2001 年首次发布;十年后(2011 年),我们仍然不知道丝毫的弱点迹象。这表明 SHA-256 确实是健壮的,并且 SHA-256 的冲突并非指日可待。此外,我还没有详细了解比特币协议,但似乎冲突对比特币来说并不是真正的危险——它依赖于原像抗性,为此不仅 SHA-256 坚如磐石,甚至 MD5 也会还是可靠的。
但是,对单一度量进行统计是危险的。在 2007 年,估计 MD5 的攻击可以传输到 SHA-1 再传输到 SHA-256/512 的风险相对较高——这促使 NIST 组织了SHA-3 竞赛。事实证明,对 SHA-1 的攻击不知何故停止了进展,并且没有对 SHA-2 的攻击。这是因为 SHA-2 真的很健壮,还是因为所有的密码学家都忙于破解 SHA-3 候选者,目前尚不得而知(但我的观点是前者:SHA-2 是一种安全的哈希算法)。
漏洞可能发生在不同级别。
1) 可能会发现一种理论上的攻击,它降低了成功攻击所需的复杂性,但还不足以低到实用。即从技术 POV 来看,该算法被认为是损坏的,但对于任何实际使用来说它仍然是安全的。
2)发现一种攻击,将复杂性降低到可以在可行时间内由大型分布式攻击实际执行的水平。该算法对于特定目的可能仍然有用(例如 MD5 来识别文件的下载错误),但对于需要长期安全性的任何事物,如数字签名,它是不可行的。
3)算法完全崩溃,任何人都可以在他的家用电脑上完成。忘记它以及任何使用它作为中心组件的东西。下载验证可能仍然可以,但仅此而已。
这里应该考虑一些基本规律。首先,你不能证明一个算法是安全的,你只能通过实际破解它来证明它是不安全的。其次,攻击总是变得更好,它们永远不会变得更糟。即不会忘记先前攻击的研究知识。
如果有机会,明天可能会进行发现。或者两年后。或者二十年后。SHA-1 已损坏 (http://en.wikipedia.org/wiki/SHA-1),介于 1 和 2 之间,SHA256 使用类似的基本结构。但是目前还没有针对 SHA256、AFAIK 的攻击。
看起来比特币的内部工作原理是它使用 ECDSA 算法对交易的双重应用(第一个哈希再次哈希)SHA256 哈希进行签名。
发现安全漏洞始终只是时间问题。但是,最好算法的糟糕实现往往比可接受算法的良好实现带来更多的安全漏洞。
或者,两全其美,一个糟糕的算法的糟糕实现。使用 SQL 注入攻击来获取 Mt. Gox 比特币交易所的帐户详细信息,他们将密码的 MD5 哈希值存储在他们的数据库中,包括交易所管理员的密码。
这与 SHA256 的加密安全性完全无关,但对比特币网络造成了一定程度的破坏。
有几件事要理解。
首先是了解散列算法的强度。要复制散列,难度级别是散列键的完整大小。因此,如果您已经有一个 MD5 哈希,并且想要找到一个匹配它的模式,那么困难是一个完整的 128 位。但是由于发现了问题,我们可能只需要 100 位的难度就可以做到这一点。但是,我们能做的最大难度是 60 位。因此,以今天的知识/硬件,以这种方式破解 MD5 仍然是不可能的。
但是哈希算法还有第二个问题:创建两个哈希到一个新值的东西。这是一种中间相遇攻击。它是难度位数的一半,因此对于 128 位算法,它只有 64 位难度。由于 MD5 中的已知错误,该难度变得更像 50 位,完全在现代计算机的能力范围内。
这个中间相遇问题意味着 SHA-256 只有 128 位的难度。这对比特币来说意味着创建两个哈希值相同的交易。
像 MD5 一样,我们不会一下子破坏它。相反,人们会一次减少一些难度,就像他们最近为 AES 减少了 2 位难度一样。因此,它的难度将从 128 位上升到 125、120、115 等等。
随着摩尔定律增加了一点破解能力(今天是 60 位,明年是 61 位,后年是 62 位),并且 SHA-256 每年都会失去一点中间相遇的力量,这意味着在伪造比特币交易变得切实可行之前,我们还有大约 30 年的时间。
比特币确实做了一些事情让这变得更难了,但可能在接下来的 30 年里,有人会想办法解决这些问题。因此,我随便猜测比特币有 30 年的寿命。
对于许多管理不善的国家来说,这不仅仅是货币。