哈希算法的前世,今生和未来

巴比特 中字

进入SHA3时代

在2006年,国家标准和技术研究院提出了一个比赛,来找到SHA2的替代,这在本质上九不同,从而形成了标准。因此,SHA3作为现在所知的KECCAK哈希算法一部分,就这样诞生了。

尽管表面看起来是相同的,SHA3通过一个被称为海绵结构的机制,让内部变得非常不同,这使用了随机的排列来输入和输出数据,同时也为未来的输入提供了随机的来源,这会进入到哈希算法中。

SHA3维持了内部的状态并且有和输出相关的更多信息,这可以防止之前算法的限制。在2015年,通过NIST成为了标准。

哈希算法和工作量证明

当考虑到整合哈希算法到区块链协议中的时候,比特币使用了比较旧的SHA256算法,但是以太坊使用了修改后的SHA3算法,作为工作量证明的算法。选择工作量证明区块链的哈希功能是很重要的部分,但是计算的效率称为哈希。

比特币SHA256算法通过特定的硬件ASIC,进行有效计算。在矿池中,很多都是在ASIC上写入的算法,但是这也会使得整个协议往中心化计算发展。也就是说,工作量证明激励了有效计算机器来聚集成矿池,同时也增加了哈希力。或者一种机器可以计算每个时间间隔的哈希数量。

以太坊,使用的是被称为KECCAK256的改进SHA3。而且,以太坊的工作量证明算法,Dagger-Hashimoto意味着意味着内存难以计算硬件。

为什么比特币使用双重SHA256算法?

比特币通过SHA256算法,会有很有趣的方式来获得哈希数据,因为它会在协议中运行算法的2次迭代。需要注意地是,这并不是生日攻击的对策,因为很明显如果hash(x) = hash(y),那么hash(hash(x)) = hash(hash(y))。但是,双重SHA256算法是被使用来减轻长度扩展攻击。

本质上来说,这类攻击包括,恶意欺诈的人知道哈希输入的长度,可以用来欺骗哈希来开始内部状态的某个部分,通过附加一个私密字符串到哈希值。SHA256,是SHA2算法大家庭中的一个,逃离这个陷阱,比特币通过计算哈希两次来减轻它。

以太坊2.0和BLAKE算法

SHA3并不是来自2006年NIST哈希比赛的唯一突破。尽管SHA3获得胜利,称为BLAKE的算法获得第二。对于以太坊2.0分片技术的部署,更有效的哈希几乎是个特性要求,研究团队非常重视。BLAKE2b哈希算法,这是BLAKE的更新版本,在和KECCAK256算法相比的时候,它由于效率很高正在被广泛使用,同时也保证了很高的安全性。

BLAKE2b的计算速率实际上是比KECCAK在现代CPU上要快3倍。

哈希算法的未来

不论我们怎么做,我们只能(1)提高内部哈希操作的复杂性,或者(2)提高哈希输出的长度,希望攻击者的计算机不会足够快到能够有效地计算collision。

我们依赖于网络安全单向操作前图像的模糊性。也就是说,哈希算法的安全目标是让所有人尽可能困难地找到能够获得同样哈希输出的数值,尽管对于可能的collision,其数值是有限的。

未来有量子计算机了?哈希算法还安全吗?

根据现在的理解,答案是肯定的。哈希算法将经受量子计算机的考验。量子计算能够打破的东西,是严密的,用巧妙的技巧和理论建立的底层数学架构,例如RSA加密。另个方面来看,哈希算法在内部的框架中,有更少的形式结构。

量子计算机确实加快了计算的速度,例如哈希算法,但是最后,它们也会被利用来进行如同现在计算机的攻击。

不论我们为协议选择了什么算法,很清楚地是我们都处于有效计算的未来,而且我们必须要使用最好的方式来获得正确的工具,以及那些希望能经受时间考验的人。

声明: 本文系OFweek根据授权转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存