Hash算法

    在开始接触区块链开始就一定会提到Hash算法,在之前我认为通过这种计算方式,输入不同的输入值可以快速的得到长度一致但是值完全不同的输出值,而且这个计算不可逆。这个应用理解没有问题,只是不够明确及全面。

    一个好的Hash算法的四大特质为:

一、正向快捷:给定明文及算法前提下,在规定时间、规定资源能够计算初HASH值。

二、逆向困难:给定HASH值和算法前提下,在规定时间内很难或者说基本上不可能获取明文

三、输入敏感:原始输入信息在变化很小的情况下,输出的HASH值会有很大的变化

四、抗碰撞性:很难找到两端不同的明文,对应的的HASH值是一致的;

    虽然应用理解的八九不离十,但以前对Hash算法的概念却是错的离谱,我认为Hash就是一种明确的算法,类比理解为加法、减法或者一个公式运算。而实际上Hash算法不单单是指某一种算法,而是一个统一的称呼,可以类比为几何,代数等大学课,而类似比特币使用的SHA-256算法则是Hash算法大家子中的一分子。

    理解了这一点,对于各种白皮书中提供的各种算法类型就有了一个底。

    非对称加密就得用上Hash,而Hash分很多种,比如前面提过的比特币用的SHA-256,而莱特币用的Scrypt等等

流行算法

    可是这些算法为什么还分流行不流行呢,又不是搞时尚的。究其原因在于抗碰撞性。

抗碰撞性分为“弱抗碰撞性”和“强抗碰撞性”。如果给定明文前提下,无法找到与之碰撞的其它明文,则算法具有“弱抗碰撞性”;如果无法找到任意两个发生 Hash 碰撞的明文,则称算法具有“强抗碰撞性”。

    一个算法流行不流行了即可以理解为这个算法有没有被证明是否具备“强抗碰撞性”或/和"弱抗碰撞性"。或者可以说这个算法有没有被破解。

    据我查到的资料,2017年2月CWI和Google的研究人员们成功找到了一例SHA1碰撞,而且很厉害的是,发生碰撞的是两个真实的、可阅读的PDF文件。这两个PDF文件内容不相同,但SHA1值完全一样。

    所以,对于一些大的商业机构来说, MD5 和 SHA1 已经不够安全,推荐至少使用 SHA2-256 算法(也就是比特币用的那个)。

    有理由相信,在未来的某一天,SHA2-256会被破解,而比特币挖矿算法的更换在未来是必然要到来的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 区块链是基于加密算法,共识算法,p2p网络和经济激励的一个系统,加密算法在里面起到了非常关键的作用,总结一下Neo...
    转角遇见一直熊阅读 1,776评论 0 1
  • 散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表...
    yeying12321阅读 3,706评论 0 6
  • 前言 哈希函数又称哈希算法,它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示...
    YBshone阅读 968评论 0 0
  • 家庭教育分享20180707 有些孩子表现出来让家长不悦的情绪,背后都有孩子的秘密心事。顶嘴,是想要告诉家长“我长...
    左叶右李阅读 118评论 0 0
  • 上周周一完美做错,周二补给自己一刀。周三接一刀,周四躺着,周五再给自己一刀。 以上分别对应新光,爱婴室,双向股份,...
    南阳说阅读 324评论 3 3