国产加密算法实战政务联盟链!它们能替代主流公有链算法吗?基于商密体系的政务链建设主要包括以下方面的内容:①基于商密体系的身份认证机制;②基于商密体系的密钥安全措施;③基于商密体系的信息安全指南;④基于商密体系的数据验证方法;⑤基于商密体系的隐私保护等级;⑥基于商密体系的数据存储规范;⑦基于商密体系的硬件支持系统。
作为面向广泛国内政务领域服务的政务链的重点是在安全性层面需要确保对商密系列算法的支持。目前 Hash 算法广泛应用于区块链工作量证明中,每个具有创新性的区块链项目中均有各自不同的实现,属于区块链中比较核心和基础的技术。主流公有链中的主要非对称加密算法主要采用 RSA 算法,下面主要论证这两种算法的商密替代性。
为了保障商用密码的安全性,国家密码管理局商用密码管理办公室制定了一系列密码标准, 包 括 SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC) 等等。其中,SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9 是非对称算法;SM3 是哈希算法。
目前,这些算法已广泛应用于各个领域中,期待有一天会有采用商密算法的区块链应用出现。其中 SM1、SM7 算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
采用商密体系中 SM3 作为政务链的摘要算法
区块链可以用于登记和发行数字化资产、积分等,并以点对点的方式进行转账、支付和交易。由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致。因此区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行共识,这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。
现有的共识机制包括 Pow、Pos 和 DPos 等,其中 Pow 是相对安全最高的公链共识算法。现有的比特币即采用 Pow 共识算法芯片,在比特币系统中,矿工为了挖掘新的 Block( 数据区块 )必须进行并完成工作量证明过程。
矿工计算每个数据区块头部信息的 SHA256 值 (HASH 值的一种 ),如果比前一个数据区块的 SHA256 值小,那么 P2P 网络便接受这个新的数据区块。目前比特币已经吸引了全球大部分的算力,其它再用 Pow 共识机制的区块链应用很难获得相同的算力来保障安全。
在对国内外各类共识机制和共识算法芯片进行调研的基础上,研究了 SM3 共识算法,算法流程如图 1 所示。SM3 密码摘要算法是国家密码管理局商用密码管理办公室 2010 年公布的中国商用密码杂凑算法标准,SM3 算法是在SHA256 基础上改进实现的算法,采用 MerkleDamgard 结构,消息分组长度为 512 位,摘要值长度为 256 位。
此算法对输入长度小于 2 的 64次方的比特消息,经过填充和迭代压缩,生成长度为 256 比特的杂凑值,其中使用了异或,模,模加,移位,与,或,非运算,由填充,迭代过程,消息扩展和压缩函数所构成。SM3 密码杂凑算法的压缩函数与 SHA256 的压缩函数具有相似的结构,但是 SM3 算法的压缩函数的结构和消息拓展过程的设计都更加复杂,压缩函数的每一轮都使用 2 个消息字,消息拓展过程的每一轮都使用 5 个消息字等。基于 SM3 共识算法芯片保证更高的安全性,与此同时,由于 SM3 算法与 SHA256 算法结构相似,可以与 HASH256芯片使用统一的处理模型,只是针对各运算单元分别进行重构设计,有效地节约资源。SM3密码杂凑(哈希、散列)算法适用于商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
政务链使用 SM3 杂凑算法进行摘要计算,由于 SM3 是在 SHA-256 基础上改进实现的一种算法,因此虽然 SM3 算法的压缩函数与 SHA-256 的压缩函数具有相似的结构 , 但是 SM3 算法的设计更加复杂,安全性也相对较高。
采用商密体系中 SM2 作为政务链的数字签名算法
传统区块链采用多重签名技术,这是为了更好的保障交易双方的权益,多重签名交易的地址可以有多个相关联的私钥,最常见的是2/3 的组合,所谓 2/3 指的是多重签名交易的地址可以有三个相关联的私钥,交易者需要其中的两个才能完成一笔转账。
多重签名技术所能带来的最大好处即保证了交易的安全性,交易的多方均可以看到资金的安全存储,只有双方均同意才可以转移资金,保证了交易各方的权益。但现有的多重签名交易不一定安全,当前多数情况下多重签名钱包以客户端网页应用出现,如果攻击者控制了交易平台的服务器,他们就有能力向用户输送错误的网页应用,这种多重签名方案并没有提供多重签名应有的安全保证,方案提供者在协议中扮演了客户端和服务器两个角色。
在对国内外区块链技术和区块链交易方法进行调研的基础上,研究确定了基于商密体系中 SM2 的多重签名交易方法。SM2 算法由国家密码管理局 2010 年 12 月 17 日发布,称为椭圆曲线算法,算法加解密流程如图 2 所示。
SM2算法的安全性基于数学难题“离散对数问题”,使用 SM2 算法进行数字签名时,所要求的密钥长度比以往 RSA 要短。基于 SM2 算法的多重签名交易方法不仅使得用户和交易平台需要记忆和存储密钥更加便捷,验证速率加快,同时保证交易不受单方影响,即保证买卖双方的权益的同时使得平台也无法挪用交易资金,且外部不能通过攻击服务器来危险公链中经济安全。
政务链使用 SM2 椭圆曲线算法进行区块链公私钥密钥对的生成与签名验证,使得本身的计算复杂度达到了完全指数级,并且与传统区块链中所使用的 RSA 相比,同样的安全性能下所需的公钥位数更少,密钥的生成速度与加解密速度相较于 RSA 算法也快百倍以上。SM2 算法在很多方面都优于 RSA 算法(RSA 发展得早,应用普遍,SM2 领先也很自然),与 RSA 安全性对比如表 1 所示。
链上公私钥密钥对所使用的椭圆曲线非对称加密算法为 SM2.区块链分布式账本记账中所使用的哈希杂凑算法则为 SM3.通过我国自主知识产权的加密手段,实现了链上数据安全的有效保障。因此,政务链可以作为数据交换系统内置的安全保障机制,作为第三方安全认证平台的重要功能,在提供数据信息交换传输加密保障的同时,对数据本身进行提供认证、授权、防篡改、可溯源等高安全保障。
基于商密体系的政务链整合共享交换应用中提供标记上链,通过数据标记的存证保全,就能够对各个节点的数据交换总量、当前运行状态、传输线路状态、数据交换进程状态、交换服务状态等进行有效监控溯源,并且还能在指定时间内按照进入 / 转出、目的地 / 来源地、数据量大小等项目对具体数据交换包进行查询和统计;通过对数据状态(例如等待交换、正在交换、交换完毕、回执收到、处理中断等)的监控,追踪某一个指定数据的状态。
结语
政务链在食品防伪溯源、金融基金审计、保险溯源、彩票认证等行业都能够发挥区块链的技术特性,可以作为一项技术构架在价值在政府与行业之间解决市场需求的重要应用。基于商密体系的政务链建设除了密码学本身,还能够对应用提供丰富的权限策略、安全秘钥管理体系和用户隐私保护解决方案,从而在整体上保障链上数据的安全。
当各级政务在区块链安全方面开展政务链的应用时,政务大数据共享交换会逐渐上链及个人身份信息上链,因此,可信的为政务服务的政务链标准就尤为迫切,是一个需要政府和行业监管部门共同研究推动的方向。
特别声明