区块链国密适配方法、国密适配器、系统和装置转让专利

申请号 : CN202110719359.4

文献号 : CN113452521B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄步添方航苑振霞刘成永罗春凤何钦铭

申请人 : 杭州云象网络技术有限公司

摘要 :

本发明公开了区块链国密适配方法、国密适配器和存储介质,其中方法包括:响应于区块链密码服务模块初始化请求;国密适配器组件准备初始化服务,启动所述区块链密码服务模块的配置文件,以配置文件的配置内容通过国密适配器插件初始化国密适配器组件;初始化后的国密适配器组件根据不同的配置适配多种底层国密算法,为区块链网络中的节点提供定义密码接口端以支持各种密码算法适配加密机其中的区块链服务端。基于本发明的国密适配方法,能够实现国密库的可拔插,实现使用不同国密库的目的。

权利要求 :

1.一种区块链国密适配方法,其特征在于,具体实现步骤包括:响应于区块链密码服务模块初始化请求;

国密适配器组件准备初始化服务,启动所述区块链密码服务模块的配置文件,以配置文件的配置内容通过国密适配器插件初始化国密适配器组件;

其中,所述初始化国密适配器组件的具体实现步骤包括:

获取区块链服务端初始化请求,区块链密码服务模块基于国密适配器组件启动配置文件;

所述国密适配器组件根据所述区块链密码服务模块的配置内容进行初始化操作;

设置国密适配器组件选项以支持不同的国密插件,配置对应的标准接口适配接入的加密机厂商软件和硬件加密;

其中,所述国密适配器组件支持区块链服务端的具体实现步骤包括:获取提案请求,用户节点对所述提案请求进行背书交易,所述用户节点位于区块链服务端内通过调用链码进行模拟执行;

接收模拟执行结果,国密适配器组件对所述结果进行签名并发送到区块链服务端;

所述区块链服务端将所述背书的结果发送到排序验证节点进行验证、排序和切块,并将结果发送到所述用户节点,所述用户节点进行验证并落盘;

初始化后的国密适配器组件根据不同的配置适配多种底层国密算法,为区块链网络中的节点提供定义密码接口端以支持各种密码算法适配加密机其中的区块链服务端。

2.根据权利要求1所述的区块链国密适配方法,其特征在于,其中所述签名通过所述国密适配器组件与国密算法、硬件设备加密算法交叉进行签名或签名后的验证其中的一种或两种。

3.根据权利要求1所述的区块链国密适配方法,其特征在于,所述定义密码接口端包括非对称加密算法SM2接口端、散列函数SM3接口端、对称加密算法SM4接口端,其中,非对称加密算法SM2接口端包括密钥生成接口、签名接口、验签接口、加密接口、解密接口,散列函数SM3接口端包括哈希计算接口,对称加密算法SM4接口端包括加密接口和解密接口。

4.一种实现权利要求1所述的区块链国密适配方法的区块链国密适配器,其特征在于,具体组成包括:国密适配器插件:用于根据配置文件的配置内容初始化国密适配器组件;

国密适配器组件:用于根据不同的配置适配多种底层国密算法,为区块链网络中的节点提供定义密码接口端;

定义密码接口端:用于支持各种密码算法适配加密机其中的区块链服务端。

5.一种基于权利要求4所述区块链国密适配器的区块链国密适配系统,其特征在于,具体组成包括:区块链密码服务模块:提供配置文件和配置内容,用于国密适配器初始化;

国密适配器:用于启动所述区块链密码服务模块的配置文件进行初始化;用于根据不同的配置适配多种底层国密算法,为区块链网络中的节点提供定义密码接口端;

区块链服务端:用于提供所述国密适配器适配后的各种国密算法服务;

加密机:用于响应区块链服务端,提供各种密码算法。

6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任意一项所述的方法步骤。

7.一种国密适配装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任意一项所述的方法步骤。

说明书 :

区块链国密适配方法、国密适配器、系统和装置

技术领域

[0001] 本发明属于区块链密码技术领域,具体涉及区块链国密适配方法、国密适配器、系统和装置。

背景技术

[0002] 目前各主流区块链公司尝试将国密应用在区块链上,主要集中在:(1)用SM3代替SHA‑256等作为默认的密码杂凑算法;(2)用SM2替代椭圆曲线签名算法作为非对称加密算法;(3)用SM2证书代替RSA、椭圆曲线算法证书等。对于上层的协议如SSL则涉及较少,与区块链相关的硬件设施,如硬件钱包也很少采用国密标准进行设计。此外因为国密算法并没有针对性的标准,很难将应用于区块链中各种密码算法的国密化,即无法打通多种加密算法适配国密算法。
[0003] 市面上存在多种加密机或加密算法,每种加密机或加密算法具体实现细节略有不同,如果每次针对不同加密算法实现来进行适配,需要对代码进行大量的改动,不利于研发效率和系统的稳定性。
[0004] 因此亟需区块链国密适配方法和国密适配器,实现不同加密算法适配的灵活可配置。

发明内容

[0005] 本发明基于上述背景和现有技术所存在的问题,拟设计区块链国密适配方法、国密适配器、系统、存储介质和装置,其能够实现不同加密算法适配的灵活可配置,在不需要对代码进行大量改动的情况下,对不同加密算法实现适配,有利于研发效率和系统的稳定性。
[0006] 为了实现本发明的这些目的和其它优点,提供了一种区块链国密适配方法,具体实现步骤包括:
[0007] 响应于区块链密码服务模块(BCCSP模块)初始化请求;
[0008] 国密适配器(GMAdaptor)组件准备初始化服务,启动所述区块链密码服务模块的配置文件,以配置文件的配置内容通过国密适配器插件初始化国密适配器组件;
[0009] 初始化后的国密适配器组件根据不同的配置适配多种底层国密算法,为区块链网络中的节点,即为Peer节点或Orderer节点提供定义密码接口端以支持各种密码算法适配加密机其中的区块链服务端。
[0010] 进一步地,所述初始化国密适配器组件的具体实现步骤包括:
[0011] 获取区块链服务端初始化请求,区块链密码服务模块基于国密适配器组件启动配置文件;
[0012] 所述国密适配器组件根据所述区块链密码服务模块的配置内容进行初始化操作;
[0013] 设置国密适配器组件选项以支持不同的国密插件,配置对应的标准接口适配接入的加密机厂商软件和硬件加密。
[0014] 进一步地,所述国密适配器组件支持区块链服务端的具体实现步骤包括:
[0015] 获取提案请求,用户节点(即Peer节点)对所述提案请求进行背书交易,所述用户节点位于区块链服务端内通过调用链码进行模拟执行;
[0016] 接收模拟执行结果,国密适配器组件对所述结果进行签名并发送到区块链服务端;其中,所述签名通过所述国密适配器组件与国密算法、硬件设备加密算法交叉进行签名或签名后的验证其中的一种或两种;
[0017] 所述区块链服务端将所述背书的结果发送到排序验证节点(即Orderer节点)进行验证、排序和切块,并将结果发送到所述用户节点,所述用户节点进行验证并落盘。
[0018] 进一步地,所述定义密码接口端包括非对称加密算法SM2接口端、散列函数SM3接口端、对称加密算法SM4接口端,其中,非对称加密算法SM2接口端包括密钥生成(GenerateKey)接口、签名(Sign)接口、验签(Verify)接口、加密(Encrypt)接口、解密(Decrypt)接口,散列函数SM3接口端包括哈希计算(Hash)接口,对称加密算法SM4接口端包括加密(Encrypt)接口和解密(Decrypt)接口。
[0019] 另一方面,本发明提出了一种区块链国密适配器,具体组成包括:
[0020] 国密适配器(GMAdaptor)插件:用于根据配置文件的配置内容初始化国密适配器组件;
[0021] 国密适配器组件:用于根据不同的配置适配多种底层国密算法,为区块链网络中的节点,即为Peer节点或Orderer节点提供定义密码接口端;
[0022] 定义密码接口端:用于支持各种密码算法适配加密机其中的区块链服务端。
[0023] 第三方面,本发明提出了一种区块链国密适配系统,具体组成包括:
[0024] 区块链密码服务模块(BCCSP模块):提供配置文件和配置内容,用于国密适配器初始化;
[0025] 国密适配器(GMAdaptor):用于启动所述区块链密码服务模块的配置文件进行初始化;用于根据不同的配置适配多种底层国密算法,为区块链网络中的节点,即为Peer节点或Orderer节点提供定义密码接口端;
[0026] 区块链服务端:用于提供所述国密适配器适配后的各种国密算法服务;
[0027] 加密机:用于响应区块链服务端,提供各种密码算法。
[0028] 第四方面,本发明提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现以上任意一项的方法和步骤。
[0029] 第五方面,本发明提出了一种国密适配装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时可实现以上任意一项的方法和步骤。
[0030] 本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。本发明至少的有益效果主要包括:本发明提出一种可以适配多种加密算法的国密适配方法和国密适配器,通过初始化后的国密适配器(GMAdaptor)组件根据不同的配置适配多种底层国密算法实现不同加密算法适配的灵活可配置,在不需要对代码进行大量改动的情况下,对不同加密算法实现适配,有利于研发效率和系统的稳定性。

附图说明

[0031] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,图中显而易见可以的具体实现流程作为本发明进一步的具体实施例,落入本发明的保护范围。
[0032] 图1为本发明GMAdaptor的初始化流程;
[0033] 图2本发明为客户端在区块链服务端发起交易后GMAdaptor的应用流程图;
[0034] 图3为GMAdaptor定义的密码学接口端结构图。

具体实施方式

[0035] 为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合了本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施。下面将附图结合具体实施方式对本发明的技术加以详细说明。
[0036] 国密算法是我国自主研发创新的一套数据加密处理系列算法。从SM1‑SM4分别实现了对称、非对称、摘要等算法功能,特别适合应用于嵌入式物联网等相关领域,完成身份认证和数据加解密等功能。
[0037] 本发明通过设计国密接口(GM接口)实现国密库的可插拔,即国密适配器(GMAdaptor)实现使用不同的国密库的目的,利用GM接口实现BCCSP中的国密插件,在底层国密库更换时,国密插件和联盟链上层模块无需修改。
[0038] 实施例1:
[0039] 本发明提出一种区块链国密适配方法,具体实现步骤包括:
[0040] Step1:响应于区块链密码服务模块(BCCSP模块)初始化请求;
[0041] Step2:GMAdaptor组件准备初始化服务,启动所述区块链密码服务模块(BCCSP模块)的配置文件,通过GMAdaptor插件,以配置文件的配置内容初始化GMAdaptor组件,如图1所示;其中,
[0042] 所述初始化GMAdaptor组件的具体实现步骤包括:
[0043] S21:获取区块链服务端初始化请求,BCCSP模块基于GMAdaptor组件启动配置文件;
[0044] S22:所述GMAdaptor组件根据所述BCCSP模块的配置内容进行初始化操作;
[0045] S23:设置GMAdaptor组件选项以支持不同的国密插件,配置对应的标准接口适配接入的加密机厂商软件和硬件加密。
[0046] Step3:如图2所示,初始化后的GMAdaptor组件根据不同的配置适配多种底层国密算法,例如SM2、SM3或SM4,为区块链网络中的节点,即为Peer节点或Orderer节点提供定义密码接口端以支持各种密码算法适配加密机其中的区块链服务端,进而为客户端提供各种密码服务,其中加密机采用同济加密机实现硬件加密、信安加密机实现软件加密。其中,所述定义密码接口端包括非对称加密算法SM2接口端、散列函数SM3接口端、对称加密算法SM4接口端,如图3所示,其中,非对称加密算法SM2接口端包括密钥生成(GenerateKey)接口、签名(Sign)接口、验签(Verify)接口、加密(Encrypt)接口、解密(Decrypt)接口,散列函数SM3接口端包括哈希计算(Hash)接口,对称加密算法SM4接口端包括加密(Encrypt)接口和解密(Decrypt)接口。
[0047] 在上述方案中,所述GMAdaptor组件支持区块链服务端的具体实现步骤包括:
[0048] S31:获取提案请求,用户节点,即Peer节点,对所述提案请求进行背书交易,所述Peer节点位于区块链服务端内通过调用链码进行模拟执行;
[0049] S32:接收模拟执行结果,GMAdaptor组件对所述结果进行签名并发送到区块链服务端;其中,所述签名通过所述国密适配器(GMAdaptor)组件与国密算法、硬件设备加密算法交叉进行签名或签名后的验证其中的一种或两种。
[0050] S33:所述区块链服务端将所述背书的结果发送到排序验证节点,即Orderer节点,进行验证、排序和切块,并将结果发送到所述Peer节点,所述Peer节点进行验证并落盘。
[0051] 实施例2:
[0052] 一种区块链国密适配器,具体组成包括:
[0053] 国密适配器(GMAdaptor)插件:用于根据配置文件的配置内容初始化国密适配器(GMAdaptor)组件;
[0054] 国密适配器组件:用于根据不同的配置适配多种底层国密算法,例如SM2、SM3或SM4,为区块链网络中的节点(Peer节点或Orderer节点)提供定义密码接口端;
[0055] 定义密码接口端:用于支持各种密码算法适配加密机(硬件实现通过同济加密机、软件实现通过信安加密机或还可以采用其他实现)其中的区块链服务端。
[0056] 这里说明的模块数量和处理规模是用来简化本发明的说明的。对本发明的国密适配器及其实现方法的应用、修改和变化对本领域的技术人员来说是显而易见的。
[0057] 实施例3:
[0058] 一种包含区块链国密适配器的区块链国密适配系统,具体组成包括:
[0059] 区块链密码服务模块(BCCSP模块):提供配置文件和配置内容,用于国密适配器初始化;
[0060] 国密适配器(GMAdaptor):用于启动所述BCCSP模块的配置文件进行初始化;用于根据不同的配置适配多种底层国密算法,例如SM2、SM3或SM4,为区块链网络中的节点(Peer节点或Orderer节点)提供定义密码接口端;
[0061] 区块链服务端:用于提供所述国密适配器适配后的各种国密算法服务。
[0062] 其中,国密适配器(GMAdaptor)的组成包括:
[0063] GMAdaptor插件:位于BCCSP模块中,用于根据配置文件的配置内容初始化GMAdaptor组件;
[0064] GMAdaptor组件:用于根据不同的配置适配多种底层国密算法,例如SM2、SM3或SM4,为区块链网络中的节点(Peer节点或Orderer节点)提供定义密码接口端;
[0065] 定义密码接口端:用于支持各种密码算法适配加密机(例如硬件实现通过同济加密机、软件实现通过信安加密机)其中的区块链服务端。
[0066] 这里说明的模块数量和处理规模是用来简化本发明的说明的。对本发明的国密适配器及其实现方法、包含国密适配器的区块链系统及其实现方法的应用、修改和变化对本领域的技术人员来说是显而易见的。
[0067] 实施例4:
[0068] 一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以上所述的任意一项的方法步骤。对于存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0069] 实施例5:
[0070] 一种国密适配装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以上所述的任意一项的方法步骤
[0071] 对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0072] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0073] 本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0074] 本发明是参照根据本发明的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0075] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0076] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0077] 上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。