『区块链』密码学原语如何应用?解析单向哈希的妙用
隐私数据如何验明真伪?区块链数据何以可信?如何快速检验海量数据是否被篡改?单向哈希在其中起到了什么作用?
隐私数据的价值很大程度上源自其真实性 , 如何防止数据被恶意篡改 , 是隐私保护方案设计中不可忽视的关键目标之一 。 为此 , 密码学领域提出了一系列基本组件 , 即密码学原语(Cryptographic Primitive)来实现这一目标 , 其中最常用的便是单向哈希 。
在区块链中 , 单向哈希能够链接多个区块数据 , 形成可信的链式数据结构 , 在弱信任环境下 , 提供防篡改且经过多方共识的可信数据源 。
这一特性对隐私保护方案的设计意义重大 。 隐私数据往往以密文形式表达 , 需要快速检验海量隐私数据的真伪 , 查验是否被恶意篡改 。 此时 , 单向哈希作为一项关键技术 , 大有用武之地 。
为何单向哈希如此神奇?其常见的用法有哪些?又能具体解决哪些问题?以下将据此一一展开 。
单向的哈希算法 哈希算法是信息科学中的基础算法组件 , “快速实现数据比较和效验”是其设计初衷之一 。
现实业务场景中 , 可能会涉及海量隐私数据 , 逐一比对数据原文 , 在很多场景中非常不现实 , 尤其是需要通过网络传输的数据 , 会大大增加网络带宽的负担 。
哈希算法的出现 , 使得高效的数据验证成为了可能 。
哈希算法的核心功能为 , 将任意长度的输入m映射为固定长度的输出H(m) , H(m)常称为哈希值、散列值或消息摘要 。
一个精心设计的哈希算法具有以下特征:
- 输出确定性:同一种哈希算法 , 相同的输入 , 其输出固定不变 。
- 输出长度不变性:同一种哈希算法 , 针对任意长度的输入 , 其输出长度不变 。
- 输入敏感性:同一种哈希算法 , 即便输入数据有微小的改变 , 其输出哈希值也会发生巨大变化 。
【『区块链』密码学原语如何应用?解析单向哈希的妙用】然而 , 只是大概率 , 在密码学协议中是不够的 。 我们需要更强的哈希算法 , 将实际的检验概率提升至接近100% 。
与之对应的一个重要概念是『哈希碰撞』 。 哈希碰撞是指 , 存在两个不同的数据原文m1和m2 , 其哈希值完全相同 , 即H(m1) = H(m2) 。
容易出现哈希碰撞的哈希算法在密码学协议中不安全 , 同时 , 密码学还进一步引入了单向性的要求 。
一个密码学安全的哈希算法 , 在传统哈希算法的基础上 , 还需满足以下特性:
- 单向性:根据数据原文计算哈希值很容易 , 但要求难以根据哈希值计算数据原文 , 提供计算上的不对称性 , 以此防止攻击者轻易地从哈希值反推出可能的隐私数据原文 , 保护哈希值的机密性 。
- 抗碰撞性:给定任意两个不同的数据原文 , 要求它们经哈希算法计算后得到相同哈希值的概率极低 , 以此防止攻击者轻易地为篡改之后的隐私数据原文构造出合法的哈希值 , 确保数据检验的有效性 。
在隐私保护方案设计中 , 哈希算法的单向性是最常用的特性之一 。 相应地 , 密码学安全的哈希算法也常被称之为单向哈希 。
目前主流的单向哈希有如下算法标准:
- NIST标准:SHA(Secure Hash Algorithm)系列是由美国国家标准技术研究院(NIST)制定的SHA哈希算法系列 , 主要包括SHA-1、SHA-2和SHA-3三个系列 。 SHA-1由于安全问题已不再使用 。 SHA-2系列包括SHA-224(表示哈希值长度为224位)、SHA-256、SHA-384、SHA-512等算法 , 其中SHA-256是目前使用最广泛的单向哈希 。 SHA-3是最新算法标准 , 源自参与SHA-3竞赛的keccak算法 。 2015年 , NIST在完成SHA-3的标准化时 , 调整了keccak的填充流程 , 因此 , 标准的SHA-3算法与原始的keccak算法并不兼容 。
推荐阅读
- 科技小灵区块链的新大陆正在被发现,大航海时代
- STD盛大公链数字内容+区块链,是否能带来新体验?
- 区块链领航USDT跑分能赚到钱吗?每天需要用多长时间?
- 阑夕区块链追光史:从泡沫走向重生
- 何鸿飞聊区块链资产币团创新理念争做后浪,交易所面临重新洗牌
- 春花开烂漫关于SETL区块链的交易后业务案例的几句话
- 火币区块链你在哪道门之内?,交易的四道门
- 居委会大爷区块链子公司负责人发行空气币?智度股份回应“正在核实”
- Top10World区块链竟是给文档加盖时间戳——不为所知的10项现代发明(上)
- 区块律动不让其他500家矿机商活了?,Filecoin推出官方硬盘