一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种超级账本Fabric的SM2国密适配方法与流程

2021-11-15 19:01:00 来源:中国专利 TAG:

一种超级账本fabric的sm2国密适配方法
技术领域
1.本发明属于区块链领域,具体涉及一种超级账本fabric的sm2国密适配方法。


背景技术:

2.超级账本(hyperledger)是由linux基金会托管的区块链开发平台项目,fabric系列子项目超级账本中的核心项目,提供了一个完整的联盟链应用开发平台。fabric系列项目中包含fabric、fabric

ca、fabric

sdk等,其中fabric是该联盟链平台的核心和基础组件,提供了区块链网络节点部署,智能合约运行环境搭建,交易发起和共识、分布式账本维护等区块链网络核心功能。
3.密码是解决网络与信息安全最有效、最可靠、最经济的方式,是维护网络与信息安全的核心技术和基础支撑。
4.国密算法是国家通用密码算法的简称,是国家密码管理局制定的自主可控的国产算法,包括sm1、sm2、sm3、sm4、sm7、sm9等。国密算法可以用于完成对称和非对称的加密、解密,数字签名的生成和验证,密钥协商,数字摘要等操作。
5.密码算法在区块链系统中起着举足轻重的作用,这对于hyperledger fabric来说也不例外。hyperledger fabric是具有国际影响力的企业级区块链平台,其默认密码算法为国际标准密码算法,但是对世界各国企业而言,区块链项目存在根据行业规范或当地法律法规调整加密算法或实施细节的需要。
6.目前,越来越多的国际通用密码算法屡屡传出被破解、被攻击的传闻,存在较高的安全风险。而且当前我国金融系统大多采用国外制定的加密算法,这就存在着大量的不可控因素,一旦被不法分子利用攻击,所产生的损失将不可估量,而国密算法由我国自主研发,已是一些领域的准入门槛,所以在结构中引入国密算法标准,对超级账本项目在国内的商业推广也有着很重要的作用。


技术实现要素:

7.本发明的目的是提供一种超级账本fabric的sm2国密适配方法,更好地推进hyperlegder fabric项目对不同加密算法实现的支持,降低企业使用其作为区块链解决方案时对于密码套件改造可能的二次开发成本,提高企业hyperlegder fabric项目的国际化友好性。
8.本发明所采用的技术方案是,一种超级账本fabric的sm2国密适配方法,具体按照以下步骤实施:
9.步骤1,在ubuntu18.04上部署搭建hyperledge fabric;
10.步骤2,将经步骤1后得到的fabric源码进行sm2国密适配;
11.步骤3,将经步骤2后得到的sm2国密适配后的fabric代码进行编译,生成二进制文件和镜像文件;
12.步骤4,测试国密修改后的fabric联盟链网络是否可以正常启动。
13.本发明的特点还在于,
14.步骤1中,在ubuntu18.04上部署搭建的是hyperledge fabric1.4版本。
15.步骤2中,将经步骤1后得到的fabric源码进行sm2国密适配,具体按照以下步骤实施:
16.步骤2.1,基于go标准的底层国密算法嵌入:将sm2/sm3/sm4算法代码库和国密算法的tls/ssl代码库下载到本地开发环境;
17.步骤2.2,bccsp模块的国密算法接口嵌入:
18.bccsp模块为上层模块抽象出了区块链密码服务,包含非对称加密、对称加密、数字签名算法、摘要计算,以及各种算法对于密钥的生成和导入。不同的加密算法需要实现bccsp中定义的不同接口,以向上层提供加密服务。国密算法服务就需要用国密算法来实现bccsp模块中定义的接口。所以首先需要设计gm接口实现国密库的可插拔,实现使用不同的国密库的目的,利用gm接口实现bccsp中的国密插件。
19.步骤2.3,上层应用的国密算法接口嵌入:
20.在上层应用中,添加相关的国密算法接口调用,将原签名验签等密码算法接口与sm2算法接口关联,以实现上层应用对国密算法调用的支持。
21.步骤3中,将经步骤2后得到的sm2国密适配后的fabric代码进行编译,形成支持国密算法的可执行文件,并打包成镜像文件,从而部署支持国密算法的fabric平台。
22.步骤4中,通过命令./byfn.sh up依次执行sm2国密适配后的fabric联盟链测试网络启动时的节点容器创建、节点密钥证书生成验证、链码实例化及一次完整的交易等过程。
23.本发明的有益效果是:
24.官方开源实现的fabric平台不支持国密sm系列算法,这很可能成为该平台在未来区块链应用的主要阻碍之一,因为国外密码算法不符合我国政府在技术监管和自主可控方面的需求。一种超级账本fabric的sm2国密适配方法,可以有效解决这一问题。另一方面,该方法也可以更好地推进hyperlegder fabric项目对不同加密算法实现的支持,降低企业使用其作为区块链解决方案时对于密码套件改造可能的二次开发成本,提高国际化友好性。
附图说明
25.图1是本发明一种超级账本fabric的sm2国密适配方法的改造思路图;
26.图2是采用本发明方法对bccsp模块的接口进行修改后的实现示意图;
27.图3是采用本发明方法对超级账本fabric国密修改后测试网络能否正常启动的结果图。
具体实施方式
28.下面结合附图和具体实施方式对本发明进行详细说明。
29.本发明一种超级账本fabric的sm2国密适配方法,改造思路如图1所示,具体按照以下步骤实施:
30.步骤1,在ubuntu18.04上部署搭建hyperledge fabric;
31.步骤2中,将经步骤1后得到的fabric源码进行sm2国密适配,具体按照以下步骤实施:
32.步骤2.1,基于go标准的底层国密算法嵌入:将sm2/sm3/sm4算法代码库和国密算法的tls/ssl代码库下载到本地开发环境;
33.步骤2.2,bccsp模块的国密算法接口嵌入:
34.bccsp模块国密算法相关接口实现如图2所示。将底层国密算法代码封装成支持国密算法的bccsp实例,即在csp选项添加gm软件实现选项并在该选项下添加bccsp

gm实例,提供sm2非对称加密算法选项用于数字签名及验证以及与x509证书相关的各类国密算法与服务支持的接口,如图2所示。特别地,国密证书生成和国密证书与密钥转换接口,不仅提供了已封装的国密证书生成接口,还提供了将x 509证书和密钥转换成sm2国密证书和密钥的接口。
35.步骤2.3,上层应用的国密算法接口嵌入:
36.在上层程序与应用中,添加相关的国密算法接口调用,将原签名验签等密码算法接口与sm2算法接口关联,以实现上层应用对国密算法调用的支持。相关的国密修改主要包括以下内容:
37.1)common模块:在csp.go中添加sm2的密钥获取方法,保证默认密钥加载选项指向国密sm2接口。
38.2)core模块:在server.go中添加国密x 509格式的证书解析方法。
39.3)msp模块:在cert.go中添加国密x509格式的证书反序列化方法。
40.4)common、core、msp、peer、orderer、gossip等模块:把部分密码算法进行修改,让其可以指向bccsp

gm提供的国密接口,从而实现各上层应用的国密算法调用支持。
41.步骤3中,将经步骤2后得到的sm2国密适配后的fabric代码进行编译,形成支持国密算法的可执行文件,并打包成镜像文件,从而部署支持国密算法的fabric平台。
42.步骤4中,通过命令./byfn.sh up依次执行sm2国密适配后的fabric联盟链测试网络启动时的节点容器创建、节点密钥证书生成验证、链码实例化及一次完整的交易等过程。执行结果如图3所示,表明sm2国密适配后的fabric联盟链测试网络能够正常启动。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献