NSA与SHA-2
那么NSA和SHA-2系列算法有什么关系呢? 其实,SHA-1(SHA-2的上一个版本)和SHA-2都是由美國國家安全局(NSA)所设计开发的。2012年10月2,美国国家标准技术研究院开发了SHA-3系列。
2005年二月,有团队找到了 SHA-1 系列算法被碰撞的数学模型。那时便引起了人们对SHA-2这个升级版系列算法的怀疑,但直到现在也没有发现SHA-2系列的有效碰撞算法。
破解还是碰撞其实很多新闻记者并不知道SHA-2和散列算法的实际作用。他们想当然的把SHA-2作为一种信息加密的手段,并且认为经过SHA-2加密的信息还可以被解密。其实,懂行的人都知道,SHA-2系列算法作为一种信息摘要算法根本不可能被逆向破解,也就是说,没有人能够把被SHA-2计算后的签名信息还原成未被加密的初始信息。所谓的破解也就无所谈起了。
那什么是碰撞呢?所谓碰撞就是用数学算法构造出与SHA-2函数进行签名结果一致的信息,被构造的信息和初始信息是不可能相同的。构造签名一致信息的方法非常的复杂且需要进行大量的计算, 一般人是不可能完成的。MD5和SHA-1都曾经作为数字签名的方法,但是由于找到签名碰撞方法而慢慢被人们所放弃。SHA-2家族的算法直到现在还没有被找到碰撞方法,换句话说SHA-2家族还是安全的。
关于SHA-2家族的后门问题,编者觉得完全是娱乐记者的杜撰。因为,SHA-2家族算法虽然是被NSA所开发,但是整个算法模型是透明公开的。所谓的后门一说只存在于那些未开放源代码的软件当中,比如,你可以说微软的操作系统有后门,因为微软并未开放源码供大家检查。但你决不能说一个完全公开的数学算法存在后门,除非全世界的数学家和密码学专家都被NSA所收买对此密而不宣。
SHA-256和比特币SHA-256作为SHA-2家族中的一员,在比特币的Proof Of Work系统中起到重要作用。比特币矿工在
挖矿时需要计算出新Block的SHA-256值,并保证新数据块的SHA-256数字签名值要比上一个数据块的要小。
一旦SHA-256的快速碰撞算法被找到,就有可能(注意这里是有可能,虽然可能性非常非常低),很快构造出满足要求的数据区块。那么,比特币挖矿将会变得非常容易,整个比特币的系统将会受到重大影响。
相关参考
不是世界末日就算SHA-2家族的碰撞算法被找到,也不是比特币的世界末日。为什么呢?
首先,从数学算法上来看,未必能轻而易举的构造满足条件的数据区块,要知道所谓的碰撞算法是相当复杂的,需要大量的计算才能找出满足条件的碰撞。构造碰撞的计算量可能远大于挖矿的计算量。
第二,假如满足条件的数据区块能被轻易构造出来,比特币社区也能完全避免灾难性的后果。所有节点可以进行算力投票,来决定是否升级现有的SHA-2家族算法(比如升级到SHA-3),以前被开发出的旧区块的HASH值,将被升级后的软件所记录下来并不在使用。
其实,中本聪在离开小伙伴们之前已经考虑到了SHA-256的问题。
中本聪认为SHA-256不会出问题,一旦出现问题,大家投票后升级节点算法就可以了。因此,小伙伴们悬着的心可以放下了。