如何推动国密技术应用,夯实区块链安全基础? – 作者:中孚信息

引言

区块链是近年来技术创新的热点之一,其应用已从最初的金融领域向医疗健康、物流、工业互联网等经济社会诸多领域逐渐扩展延伸,得到了普遍的关注和全球性的探索[1]。特别是今年疫情期间,在多地的冷链系统中陆续检测到新冠病毒。由此,业界人士再一次提到了建立统一的“责任主体有备案、生产过程有记录、主体责任可追溯、产品流向可追踪、危害程度可评估、监督信息可共享”[2]的食品溯源区块链,以加强食品的溯源和检疫,保障人民生命安全和国民经济稳定发展。作为一种全新的信息存储、传播和管理机制,区块链实现了数据和价值的可靠转移。世界主要发达国家纷纷加快该领域的技术研发、战略部署和推广应用。早在4月,中共中央国务院已经发布了《关于构建更加完善的要素市场化配置体制的意见》,提出要“加快培育数据要素市场”[3],包括:

  • 推进政府数据开放共享。优化经济治理基础数据库,加快推动各地区各部门间数据共享交换,制定出台新一批数据共享责任清单。研究建立促进企业登记、交通运输、气象等公共数据开放和数据资源有效流动的制度规范。

  • 提升社会数据资源价值。培育数字经济新产业、新业态和新模式,支持构建农业、工业、交通、教育、安防、城市管理、公共资源交易等领域规范化数据开发利用的场景。发挥行业协会商会作用,推动人工智能、可穿戴设备、车联网、物联网等领域数据采集标准化。

  • 加强数据资源整合和安全保护。探索建立统一规范的数据管理制度,提高数据质量和规范性,丰富数据产品。研究根据数据性质完善产权性质。制定数据隐私保护制度和安全审查制度。推动完善适用于大数据环境下的数据分类分级安全保护制度,加强对政务数据、企业商业秘密和个人数据的保护。

构建数据要素市场需要解决三大问题:数据确权、隐私安全、权益保护。区块链技术融合了分布式架构、P2P网络协议、加密算法、数据验证、共识算法、身份认证、智能合约等技术,利用基于时间顺序的区块形成链进行数据存储,利用共识机制实现各节点之间数据的一致性,利用密码学体制保证数据的存储和传输安全,利用自动化脚本建立智能合约[4]。由于区块链具备上述特性,使其成为了解决数据确权、隐私安全、权益保护问题的基础技术,必将在促进数据共享、优化业务流程、降低运营成本、提高协同效率、建立可信体系等方面发挥作用[5]。

图片[1]-如何推动国密技术应用,夯实区块链安全基础? – 作者:中孚信息-安全小百科

基于区块链的数据要素应用可信体系[5]

区块链系统框架

区块链系统框架如下图所示,包括数据层、协议层(网络层、共识层、激励层、 合约层)和应用层(软/硬件应用)。

图片[2]-如何推动国密技术应用,夯实区块链安全基础? – 作者:中孚信息-安全小百科

区块链系统框架[6]

其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等技术;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层封装了区块链的各种应用场景和案例。[6]

密码技术在区块链中的应用

在存储层,交易数据以区块形式封装起来并通过哈希加密将区块连接起来,每个区块都包含一个区块头以及交易集。其基本结构如下图。

图片[3]-如何推动国密技术应用,夯实区块链安全基础? – 作者:中孚信息-安全小百科

区块链结构[7]

从上图不难看出,数字加密技术是其中的关键。一旦加密方法遭到破解,区块链的数据安全将受到挑战,区块链的不可篡改性将不复存在。区块链基础架构中的密码算法整体上分为哈希算法和非对称加密算法。哈希算法是区块链中用的最多的一种算法,它被广泛的使用在构建区块和确认交易的完整性上。在比特币中使用的是SHA-256生成交易的摘要数据,当前区块里面包含上一个区块的哈希值,后面一个区块又包含当前区块的哈希值,就这样一个接一个的连接起来,形成一个哈希指针链表。SHA(Secure Hash Algorithm)是密码散列函数的一个系列,由美国国家安全局设计,经由美国国家标准与技术研究院(NIST)发布。SHA算法家族目前有SHA-1、SHA-2、SHA-3三个分支。其中,SHA-2和SHA-3各自包括SHA-224、SHA-256、SHA-384和SHA-512四种算法。SHA是从MD4算法的基础上演进而来,但对MD4进行了优化,生成摘要信息的差异概率会更高。目前,SHA-1算法已被王小云院士团队于2005年利用差分路径攻击方法完成了循环碰撞。SHA-2尚未被攻破,但鉴于攻击技术的发展,NIST于2015年发布了SHA-3。SHA系列算法支持的摘要长度如下表所示:

图片[4]-如何推动国密技术应用,夯实区块链安全基础? – 作者:中孚信息-安全小百科

SHA系列算法支持表每个区块中不仅包含了父区块的哈希值,实际上每个区块都包含了一棵被称为Merkle Tree的哈希树。其结构如下图。

图片[5]-如何推动国密技术应用,夯实区块链安全基础? – 作者:中孚信息-安全小百科

Merkle Tree结构示意图

树上每一个非叶子节点的值都是由其节点的哈希值组合在一起之后,再进行哈希运算所得。若需校验两个哈希链的数据是否一致,仅需比较两棵树的根节点即可。如上图所示,从DataBlock-LL2到Datablock-RR2表示一个区块的数据,其Hash散列值作为叶子节点分别是Hash-LL1、Hash0-LR1、Hash-RL1、Hash-RR1。两两节点拼接后,再计算哈希值,分别为Hash-L0和Hash-R0节点的值。这样层层迭代上去后,得出Merkle Tree的根节点的哈希值。数据校验时,只需要比较两份数据Merkle Tree根节点的哈希值即可判断其一致性:若根节点的值相同,则可以确定两份数据是相同的,即一致;若不相同,则在确定其不一致的同时也可从根节点开始自顶向下进行遍历与比较,找出不一致的节点和数据。以上功能实现有赖于哈希函数的下述三个特性:

  • 单向性:根据哈希运算的结果(即摘要)无法推导出哈希函数的输入(即需要保密的原始内容)

  • 唯一性:两个不同的输入经过哈希运算之后,不会得到相同的输出。虽然理论上只要经过大量的计算,有可能产生碰撞,但这个计算量巨大,以现有的计算能力发生这种情况的可能性非常小,可以忽略。

  • 雪崩效应:无法根据密文的相似度推导出原始内容的相似度(即原始内容之间的语义关联)

区块链交易及验证过程如下图[8]。每一位所有者通过对前一次传输消息的Hash值和下一位拥有者的公钥签署一个随机散列的数字签名,并将这个签名附在消息的末尾,发送给下一位所有者。

图片[6]-如何推动国密技术应用,夯实区块链安全基础? – 作者:中孚信息-安全小百科

区块链交易及验证过程图[8]

(1) 首先用户U0写好交易信息:data(2) 用户U0使用哈希算法将交易信息进行计算,得出H=hash(data),然后再使用自己的私钥对H进行签名,即S(H),这一步其实是为了防止交易信息被篡改用的(3) 然后基于区块链网络,将签名S(H)和交易信息data传递给用户U1(4) 用户U1使用 用户U0的公钥来对S(H)解密,就得到了交易信息的哈希值H(5) 同时,用户U1还使用哈希算法对交易信息data进行计算,得出H2=hash(data)(6) 对比上面2个哈希值,如果H1==H2,则交易合法。说明用户U0在发起交易的时候确实拥有真实的私钥,有权发起自己账户的交易RSA数字签名算法是迄今为止应用最广泛的数字签名算法,它起源于RSA公钥密码算法的思想。有关RSA数字签名的签名细节如表所示。

图片[7]-如何推动国密技术应用,夯实区块链安全基础? – 作者:中孚信息-安全小百科

除了RSA,常见的非对称加密技术还包括ECC(椭圆曲线加密)、DSA(数字签名算法)、ECDSA。椭圆曲线签名算法ECDSA是DSA与ECC的结合,签名过程与DSA类似,区别在于ECDSA的签名算法是ECC。ECDSA于1999年成为ANSI标准,于2000年成为IEEE和NIST标准。比特币和以太坊采用的数字签名算法就是ECDSA-secp256k1。椭圆曲线加密相对于RSA的优势在于椭圆加密的密钥更短、计算更快而安全性不受损失。

推动国密算法在区块链中的应用

密码技术在区块链中的广泛应用充分凸显了其在区块链技术体系中的核心地位。国际巨头们将区块链作为核心战略进行布局,积极研究包括密码技术在内的底层核心技术。国内对区块链的研究几乎与国外同时起步,但应用研究多于基础研究,在关键技术上严重依赖国外开源项目。摆脱对国外技术和产品的过度依赖,建设自主可信的区块链应用,增强我国区块链产品的“安全可控”能力显得尤为必要和迫切。[9]

近年来,国家有关机关和监管机构从国家安全和长远战略的高度提出了推动国密算法应用实施、加强行业安全可控的要求。国家密码管理局以《中华人民共和国密码行业标准》的方式,发布了一系列的国产密码算法,并以此为核心,对涉及的国产密码硬件,安全通信协议、认证协议、密码编程接口和密码应用进行了规范,此外,对基于国产密码的设备管理、设备检测、密钥管理和可信计算也制定了相关标准。[10]在国密算法中,SM2是基于椭圆曲线密码的公钥密码算法标准,包含SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,可替换ECDSA、ECDH、RSA等国际算法;SM3是密码杂凑算法,适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可替代MD5/SHA-1/SHA-256等国际算法;SM4为分组堆成密码算法,用于实现数据加密/解密运算,可替代AES、3DES算法;SM9为身份认证密码算法,可用于私钥生成、验签、密钥封装/解封,可替代基于数字证书的PKI/CA体系。文[10]指出,目前各主流区块链公司都在尝试将国密算法应用在区块链上,包括数字证书认证服务、签名验签服务、可插拔共识协议设计、加密算法优化等。值得关注的是,在安全芯片研制方面,一批微电子企业以积淀多年的研发能力为基础,不断突破核心技术,自主研制了功能丰富、性能强劲、功耗低、安全性高的双算法体系安全芯片,既集成了多种国密算法(SM2、SM3、SM4),同时也支持国际标准RSA、AES、SHA算法,为研究国产硬件密码处理模块、形成自主可控的区块链应用提供了有力支撑。

图片[8]-如何推动国密技术应用,夯实区块链安全基础? – 作者:中孚信息-安全小百科

总结

区块链基于哈希加密的匿名性能够很好保护用户隐私和证明唯一性,依托公钥/私钥的权限控制赋予数字资产丰富的管理权限。这些技术优势都为区块链的发展应用提供了大量创新空间。密码技术作为区块链中的核心技术,必须实现自主可控。随着区块链技术在不同领域的推广,不同场景下的共识算法、签名方案、隐私保护、数据共享需求也不断变化,加强国产密码的相关应用研究与产品研制必将成为信息化安全建设的重要任务,相关成果也将在市场中体现其经济价值。

参考文献

[1] 《区块链安全白皮书-技术应用篇》,中国信息通信研究院,2018

[2]https://www.tuoluocaijing.cn/article/detail-10013007.html

[3] 《中共中央国务院关于构建更加完善的要素市场化配置体制的意见》

[4] https://cloud.tencent.com/developer/article/1170090

[5]https://www.tuoluocaijing.cn/article/detail10008452.html

[6] https://zhuanlan.zhihu.com/p/48386743

[7]DylanYaga,PeterMell,NikRoby,KarenScarfone,BlockchainTechnologyOverview,NIST.IR.8202, https://doi.org/10.6028/NIST.IR.8202

[8] https://www.cnblogs.com/jsjwk/p/9476175.html

[9]https://www.jianshu.com/p/0f475d0d2329utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

[10] 陈钟,关志,国产密码体系在区块链中的应用与挑战[J],《中国信息安全》,2019(11)

张宏宇、冯静、李玲/ 中孚信息(北京)研究院

来源:freebuf.com 2020-12-16 13:44:20 by: 中孚信息

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论