宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > USDC > 正文

科普:哈希函数的过去、现在与未来

作者:

时间:1900/1/1 0:00:00

:"\u003Cp\u003E编者按:本文来自\u003Cahref=\"https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002FFMiIX-RsFF3rEhcTz34yDw\"target=\"_blank\"\u003E以太坊爱好者\u003C\u002Fa\u003E,作者:RaulJordan,翻译&校对:闵敏&阿剑,Odaily星球日报经授权转载。\u003C\u002Fp\u003E\u003Cp\u003E哈希值和哈希函数的概念是初次入门区块链的人常听到的两个关键词,而且似乎对安全性来说特别关键。对于像比特币和以太坊这样由成千上万的节点通过P2P方法组成的去中心化网络来说,“免信任性”和验证效率无疑是关键。也就是说,这些系统需要找到方法把信息编码成紧凑的形式,同时让参与者能够安全快速地进行验证。\u003C\u002Fp\u003E\u003Cp\u003E比特币和以太坊网络所处理的主要内容叫做“区块”,指的是由交易、时间戳和其他重要元数据所组成的数据结构。比特币和以太坊网络的安全性的关键一环是:它能将表达网络全局状态的大块信息压缩成一个简短的消息。在有需要之时,我们可以高效地验证这个消息的真实性。这个过程就是用哈希函数来完成的,而得到的结果就是哈希值。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimgalt=\"科普:哈希函数的过去、现在与未来\"src=\"https:\u002F\u002Fpiccdn.0daily.com\u002F202006\u002F21133329\u002Foe8xwixcke920iqf!webp\"data-img-size-val=\"1080,507\"\u002F\\\u003E\u003C\u002Fp\u003E\u003Cpclass=\"img-desc\"style=\"\"\u003E-即使只更改输入中的一个字符,最后得出的哈希值也会完全不同-\u003C\u002Fp\u003E\u003Cp\u003E密码学哈希广泛应用于口令存储和文件验证系统。简单来说,密码学哈希函数是一种确定性的算法,不论输入什么值,都能得到一个固定长度的字符串。也就是说,同一个输入值始终对应同一个输出值。\u003C\u002Fp\u003E\u003Cp\u003E对哈希函数来说,重要的不仅是确定性:即使只更改输入中的一个比特位,也会导致最终得到的哈希值截然不同。\u003C\u002Fp\u003E\u003Cp\u003E哈希算法有一个无可回避的问题叫碰撞可能性。因为哈希值是固定长度的字符串,同一个哈希有可能对应多个输入。碰撞会造成很严重的后果。如果有人能够按需要发起碰撞攻击,他就可以用恰当的哈希值将恶意文件或数据伪装成合法的、能够通过验证的文件。好的哈希函数的设计目标是让攻击者极难找到方法来找出对应同一个哈希的不同输入。\u003C\u002Fp\u003E\u003Cp\u003E哈希计算的效率不应过高,以免让攻击者可以更简单地人为计算出碰撞。哈希算法必须能够抵御“原像攻击”。也就是说,对于特定哈希值,攻击者很难通过确定性计算步骤倒推出输入值。\u003C\u002Fp\u003E\u003Cp\u003E假设s=hash(x),倒推x应该是近乎不可能的。\u003C\u002Fp\u003E\u003Cp\u003E总的来说,“好的”哈希算法需要具备以下3个特性:\u003C\u002Fp\u003E\u003Culstyle=\"list-style-type:disc;\"class=\"list-paddingleft-2\"\u003E\u003Cli\u003E\u003Csection\u003E更改输入中的一个比特位会产生雪崩效应,导致最后得出的哈希值截然不同\u003C\u002Fsection\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Csection\u003E出现哈希碰撞的概率非常低\u003C\u002Fsection\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Csection\u003E在无需牺牲抗碰撞性的前提下计算效率过得去\u003C\u002Fsection\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Ch2\u003E破解哈希算法\u003C\u002Fh2\u003E\u003Csection\u003E哈希算法的初始标准之一是MD5哈希。MD5哈希广泛应用于文件完整性验证,以及在网络应用数据库中存储经过哈希计算的账号口令。MD5的功能非常简单,因为它会将每个输入转换成一个固定的128位字符串输出,并通过多轮简单的单向操作来计算确定性输出。由于输出值长度较短,操作又较为简单,MD5很容易被破解,一种常见的攻击方法叫生日攻击。\u003C\u002Fsection\u003E\u003Ch3\u003E“生日攻击”是啥玩意?\u003C\u002Fh3\u003E\u003Csection\u003E你有没有听说过这样一个事实?如果你将23个人放到一个房间里,其中两个人生日相同的概率为50%。如果将70个人放到一个房间里,其中两个人生日相同的概率高达99.9%。这就是我们所说的鸽笼原理,即,将100只鸽子装进99个鸽笼,必然有两只鸽子分享同一个鸽笼。也就是说,固定长度的输出意味着所有输入输出组合中一定存在碰撞。\u003C\u002Fsection\u003E\u003Csection\u003E\u003Cimgalt=\"科普:哈希函数的过去、现在与未来\"src=\"https:\u002F\u002Fpiccdn.0daily.com\u002F202006\u002F21133329\u002F59irgn1u5kfsq269!webp\"data-img-size-val=\"1080,876\"\u002F\\\u003E\u003C\u002Fsection\u003E\u003Cpclass=\"img-desc\"style=\"\"\u003E-笼子不够时,鸽子就会凑对-\u003C\u002Fp\u003E\u003Csection\u003E事实上,MD5的抗碰撞性太差,以至于一台家用2.4GHz奔腾处理器都能在几秒内计算出哈希碰撞。此外,由于MD5在互联网早期阶段得到了广泛应用,网络上有大量MD5原像遭到泄漏,通过谷歌搜索它们的哈希值就能找到。\u003C\u002Fsection\u003E\u003Ch2\u003E哈希算法的多样性发展\u003C\u002Fh2\u003E\u003Ch3style=\"\"\u003E源起:SHA1和SHA2\u003C\u002Fh3\u003E\u003Cp\u003ENSA是哈希算法标准的先驱。安全哈希算法是最早提出的标准,将输出值的长度固定在160位。遗憾的是,SHA1只是在MD5的基础上增加了输出值长度、单向操作的次数和复杂度,但是并没有作出能够抵御更强大机器攻击的根本性改进。\u003C\u002Fp\u003E\u003Cp\u003E我们如何才能做得更好?\u003C\u002Fp\u003E\u003Ch3style=\"\"\u003ESHA3兴起\u003C\u002Fh3\u003E\u003Cp\u003E在2006年,美国国家标准技术研究所举办了一场竞赛,旨在找到一个本质上不同于SHA2的替代标准。因此,SHA3应运而生,它是KECCAK哈希算法的一种方案。\u003C\u002Fp\u003E\u003Cp\u003E虽然SHA3在名称上与SHA1和SHA2一脉相承,但是在本质上差异很大,因为它采用了一种名为海绵结构的机制。该机制使用随机排列来吸收并输出数据,同时为将来用于哈希算法的输入值提供随机性。\u003C\u002Fp\u003E\u003Cimgalt=\"科普:哈希函数的过去、现在与未来\"src=\"https:\u002F\u002Fpiccdn.0daily.com\u002F202006\u002F21133328\u002Fdo8hb6vch1hulmjh!webp\"data-img-size-val=\"768,344\"\u002F\\\u003E\u003Cpclass=\"img-desc\"style=\"\"\u003E-KECCAK256海绵结构是如何进行输入操作的-\u003C\u002Fp\u003E\u003Csection\u003ESHA3的内部状态相较于输出值拥有更多信息,突破了以往算法的局限性。NIST于2015年正式认可了SHA3标准。\u003C\u002Fsection\u003E\u003Ch2\u003E哈希计算和工作量证明\u003C\u002Fh2\u003E\u003Cp\u003E就整合进区块链协议的哈希算法而言,比较早的比特币选择了SHA256,而以太坊采用了改进后的SHA3作为工作量证明算法。对于采用工作量证明的区块链来说,选择哈希函数的一大重要标准是哈希运算效率。\u003C\u002Fp\u003E\u003Cp\u003E使用一类名为专用集成电路的硬件,我们可以大幅提高比特币SHA256算法的哈希运算的效率。有很多文章已经阐述了矿池是如何利用ASIC的,以及ASIC是如何让协议趋向于计算中心化的。也就是说,工作量证明会激励计算效率较高的机器聚集成矿池,从而形成较大的哈希算力。\u003C\u002Fp\u003E\u003Cp\u003E以太坊选择的是改进后的SHA3算法。此外,以太坊的工作量证明算法Dagger-Hashimoto被设计成了内存密集型模式,计算硬件需要加大内存才能提高计算效率。\u003C\u002Fp\u003E\u003Csection\u003E\u003Cimgalt=\"科普:哈希函数的过去、现在与未来\"src=\"https:\u002F\u002Fpiccdn.0daily.com\u002F202006\u002F21133328\u002Fn80neuxgvygv2ifj!webp\"data-img-size-val=\"852,480\"\u002F\\\u003E\u003C\u002Fsection\u003E\u003Ch3style=\"\"\u003E为什么比特币采用双重SHA256?\u003C\u002Fh3\u003E\u003Cp\u003E有趣的是,比特币协议需要重复运行两遍SHA256算法。请注意,这不是为了抵御生日攻击,毕竟在hash(x)=hash(y)的情况下,hash(hash(x))=hash(hash(y))。双重SHA256旨在抵御长度扩展攻击。\u003C\u002Fp\u003E\u003Cp\u003E从本质上来说,所谓的长度扩展攻击,指的是如果恶意攻击者知道了某个哈希输入的长度,就可以在哈希值上添加一个秘密的字符串、哈希函数从其内部状态的一个特定部分开始计算。作为SHA2算法家族的一员,SHA256也存在这一缺陷。因此,比特币采取执行两遍哈希计算的方式来解决这一缺陷。\u003C\u002Fp\u003E\u003Ch3style=\"\"\u003EEthereum2.0和BLAKE\u003C\u002Fh3\u003E\u003Cp\u003ESHA3并非哈希算法竞赛取得的唯一突破。虽然最终胜出的是SHA3,但是BLAKE算法紧随其后,位居第二。对于以太坊2.0的分片实现来说,更高效的哈希算法可以说是一项功能性要求,研究团队对此非常重视。BLAKE2b哈希算法是BLAKE算法的高度升级版本。与KECCAK256相比,BLAKE2b哈希算法在保持高度安全性的同时,在提升效率方面也进行了深入探索。\u003C\u002Fp\u003E\u003Cp\u003E使用一台现代CPU计算BLAKE2b的速度比计算KECCAK快了3倍。\u003C\u002Fp\u003E\u003Ch2\u003E哈希算法的前景展望\u003C\u002Fh2\u003E\u003Cp\u003E这么看来,无论我们做了什么,无非就是增加内部哈希操作的复杂度,或者增加哈希输出值的长度,让攻击者的计算机无法足够快地有效计算出碰撞。\u003C\u002Fp\u003E\u003Cp\u003E我们依靠单向操作的原像模糊性来保护网络的安全性。也就是说,哈希算法的安全性目标是在有无限多可能的冲突的情况下,让找出哈希碰撞的难度尽可能高。\u003C\u002Fp\u003E\u003Cp\u003E如果量子计算时代到来,哈希算法依然安全吗?\u003C\u002Fp\u003E\u003Cp\u003E就目前来看,答案是肯定的,哈希算法将经受时间的考验,抵御量子计算。量子计算能够解决的是那些严格按照某些小技巧或RSA加密理论打造底层结构的数学问题。另一方面,哈希算法的内部构造没那么形式化。\u003C\u002Fp\u003E\u003Cp\u003E量子计算机确实能够提高哈希等非结构化问题的计算速度,但它们最终还是会像如今的计算机一样采取暴力破解手段。\u003C\u002Fp\u003E\u003Cp\u003E无论我们为协议选择了哪种算法,我们显然都在迈向计算高效化的未来。为此,我们必须慎重选择最合适的工具,使之经受住时间的检验。\u003C\u002Fp\u003E\u003Ch2\u003E参考文献\u003C\u002Fh2\u003E\u003Cp\u003E:\u003Cahref=\"https:\u002F\u002Fbitcoin.stackexchange.com\u002Fquestions\u002F6037\u002Fwhy-are-hashes-in-the-bitcoin-protocol-typically-computed-twice-double-computed\"_src=\"https:\u002F\u002Fbitcoin.stackexchange.com\u002Fquestions\u002F6037\u002Fwhy-are-hashes-in-the-bitcoin-protocol-typically-computed-twice-double-computed\"\u003Ehttps:\u002F\u002Fbitcoin.stackexchange.com\u002F\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E:\u003Cahref=\"https:\u002F\u002Fen.wikibooks.org\u002Fwiki\u002FCryptography\u002FBreaking_Hash_Algorithms\"_src=\"https:\u002F\u002Fen.wikibooks.org\u002Fwiki\u002FCryptography\u002FBreaking_Hash_Algorithms\"\u003Ehttps:\u002F\u002Fen.wikibooks.org\u002F\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E:\u003Cahref=\"https:\u002F\u002Flearncryptography.com\u002Fhash-functions\u002Fhash-collision-attack\"_src=\"https:\u002F\u002Flearncryptography.com\u002Fhash-functions\u002Fhash-collision-attack\"\u003Ehttps:\u002F\u002Flearncryptography.com\u002F\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E:\u003Cahref=\"https:\u002F\u002Fgithub.com\u002Fzcash\u002Fzcash\u002Fissues\u002F2233\"_src=\"https:\u002F\u002Fgithub.com\u002Fzcash\u002Fzcash\u002Fissues\u002F2233\"\u003Ehttps:\u002F\u002Fgithub.com\u002Fzcash\u002Fzcash\u002Fissues\u002F2233\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E:\u003Cahref=\"https:\u002F\u002Fcrypto.stackexchange.com\u002Fquestions\u002F18612\u002Fhow-is-sha1-different-from-md5\"_src=\"https:\u002F\u002Fcrypto.stackexchange.com\u002Fquestions\u002F18612\u002Fhow-is-sha1-different-from-md5\"\u003Ehttps:\u002F\u002Fcrypto.stackexchange.com\u002F\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E:\u003Cahref=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBirthday_attack\"_src=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBirthday_attack\"\u003Ehttps:\u002F\u002Fen.wikipedia.org\u002F\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E:\u003Cahref=\"https:\u002F\u002Fkeccak.team\u002F\"_src=\"https:\u002F\u002Fkeccak.team\u002F\"\u003Ehttps:\u002F\u002Fkeccak.team\u002F\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E:\u003Cahref=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCryptographic_hash_function\"_src=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCryptographic_hash_function\"\u003Ehttps:\u002F\u002Fen.wikipedia.org\u002F\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E:\u003Cahref=\"https:\u002F\u002Fcrypto.stackexchange.com\u002Fquestions\u002F44386\u002Fare-cryptographic-hash-functions-quantum-secure\"_src=\"https:\u002F\u002Fcrypto.stackexchange.com\u002Fquestions\u002F44386\u002Fare-cryptographic-hash-functions-quantum-secure\"\u003Ehttps:\u002F\u002Fcrypto.stackexchange.com\u002F\u003C\u002Fa\u003E\u003C\u002Fp\u003E

欧科云链集团正式启动区块链科普行动“星途计划”:欧科云链集团于4月26日,正式宣布启动了区块链科普行动——“星途计划”,行动包括将在全国范围展开系列沙龙,加大力度推进区块链科普进机关、进国企、进校园等,联合政府部门、行业协会等共同构建起更加完善和有效的区块链科普教育生态,与此同时,直击区块链科普现存痛点,推出简单易懂的“秒懂区块链”公益短视频课。

该计划旨在全维度推动社会建立对产业更清晰的认知,与“鲲鹏计划”一道助力数字经济及区块链产业本身健康发展夯实“人才”和“产业认知”两大基础。[2021/4/26 20:59:37]

动态 | 报告:区块链等热点词促使童书科普百科类成交额同比增速最高:近日,京东图书与艾瑞咨询联合发布了《2019中国图书市场报告》。报告指出,AI、5G、区块链、机器人、VR、智能家居、AR这些热点词,不断点燃科技热潮,科技在改变大众生活的同时,也吸引了越来越多家长的关注,从小培养孩子对科技的兴趣和热爱。因此童书中科普百科类成交额同比增速最高,占比将近40%。[2020/1/8]

声音 | 上海股交所总经理:区块链想要大规模发展要做好社会科普工作:金色财经报道,上海股交所总经理张云峰表示,区块链当前还处于一个“概念”的阶段,距离成熟应用,影响到百姓的日常生活还有很长的路要走。对于“区块链”和其会带来的社会和经济效果,沈阳应当持审慎的态度。区块链想要大规模发展,一方面要做好这项复杂技术的社会科普工作,加快社会大众对区块链的了解。另一方面,要充分发挥市场的作用,让企业用实实在在的技术创新,赋能实体经济的发展。[2019/11/17]

声音 | 浪潮集团云南分公司总经理:云南区块链产业发展需从“科普”到“专精”不断深化:据昆明日报消息,浪潮集团云南分公司总经理郑昕表示,云南区块链产业发展需从“科普”到“专精”不断深化。下一步,浪潮将继续加大云南农业产业高质量发展体系建设力度,重点以普洱茶等云南优势产业为切入点,打造云南“绿色、有机农产品高地”的品牌形象,并在此基础上,开展基于区块链的供应链金融服务,解决中小企业贷款难、贷款贵问题。[2019/11/11]

动态 | 区块链技术入选科普杂志《科学美国人》2019十大突破性技术榜单:据新浪网今日新闻报道,美国科普杂志《科学美国人》公布 2019 十大突破性技术榜单。区块链技术因在保障食品安全中的作用而上榜。 入选榜单具体原因:区块链技术的发展应用将显著改善食品污染源数据追踪的困境。利用区块链云端系统,食品制造商可以依次在计算机储存各类过程的信息。[2019/9/29]

标签:TPSIONHTTASHhttps://etherscan.ioDIONEhtt币价格今日行情Bitcoin Cash ABC

USDC热门资讯
行情分析:美股稳住,大盘反弹继续

本文来自:哈希派,作者:哈希派分析团队,星球日报经授权转发。金色财经合约行情分析丨BTC再次出现下跌后 部分主流币出现反弹:据火币BTC永续合约行情显示,截至今日18:00(GMT+8),BTC价格暂报9152美元(-1.41%),2.

1900/1/1 0:00:00
区块链:航运业变革的催化剂

编者按:本文来自01区块链,文:雨林,Odaily星球日报经授权转载。15世纪到17世纪的世界地理大发现在极大地扩展已知世界范围的同时,使得国际贸易也得到了快速发展,在此基础上,国际航运业应运而生.

1900/1/1 0:00:00
DeFi流动性挖矿大热,参与Balancer前你应该知道这些概念

编者按:本文来自巴比特资讯,作者:FernandoMartinelli,译者:洒脱喜,星球日报经授权发布.

1900/1/1 0:00:00
DeFi狂热背后:是真实需求还是投机泡沫?

编者按:本文来自链闻ChainNews,撰文:日曜,星球日报经授权发布。DeFi市场热度持续攀升,大量用户和资本进场DeFi市场堪称当前加密领域最热的市场.

1900/1/1 0:00:00
以太坊之外第二世界的DEX

DEXDEX全称Decentralizedexchange,简单来说就无许可非托管的交易所。主要特点就是大部分无KYC、无需注册登录,即用即走提供交易兑换服务的交易所.

1900/1/1 0:00:00
星球前线 | 德勤2020全球区块链调查:区块链采用率大幅上升

Odaily星球日报译者|念银思唐 摘要 -今年,德勤调查中整合区块链解决方案的公司数量几乎是2019年的两倍。-超过半数的受访者将区块链列为自己所在公司的五大战略重点之一。-事实证明,中国是区块链和数字资产的最大支持者之一.

1900/1/1 0:00:00