CN111371562A - 超级账本Fabric-SDK国密算法扩展改造方法 - Google Patents

超级账本Fabric-SDK国密算法扩展改造方法 Download PDF

Info

Publication number
CN111371562A
CN111371562A CN202010126426.7A CN202010126426A CN111371562A CN 111371562 A CN111371562 A CN 111371562A CN 202010126426 A CN202010126426 A CN 202010126426A CN 111371562 A CN111371562 A CN 111371562A
Authority
CN
China
Prior art keywords
fabric
sdk
source code
national secret
digital signature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010126426.7A
Other languages
English (en)
Inventor
章建聪
金泓键
张红霞
邱云翔
许文英
曹琪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huaxin Consulting Co Ltd
Original Assignee
Huaxin Consulting Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huaxin Consulting Co Ltd filed Critical Huaxin Consulting Co Ltd
Priority to CN202010126426.7A priority Critical patent/CN111371562A/zh
Publication of CN111371562A publication Critical patent/CN111371562A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

本发明公开了一种超级账本Fabric‑SDK国密算法扩展改造方法,包括步骤:引入基于Fabric‑SDK编程语言实现的国密源代码包到超级账本Fabric‑SDK的项目源码中;使用Fabric‑SDK集成的Fabric‑CA客户端,与Fabric‑CA服务端交互注册的新用户;使用Fabric‑CA客户端与Fabric区块链网络进行账本查询的过程。本发明实现了向国密Fabric‑CA注册新用户,使用国密证书与国密Fabric区块链网络交互的功能,解决了支持国密的业务系统无法与支持国密的Fabric区块链网络交互的问题。

Description

超级账本Fabric-SDK国密算法扩展改造方法
技术领域
本发明涉及区块链开源项目超级账本中程序开发工具包Fabric-SDK的国密扩展改造方法,具体是一种对多种编程语言SDK通用的Fabric-SDK的国密扩展改造方法。
背景技术
超级账本Fabric系列组件:超级账本(Hyperledger)是由Linux基金会托管的区块链开发平台项目,Fabric系列子项目超级账本中的核心项目,提供了一个完整的联盟链应用开发平台。Fabric系列项目(组件)中包含Fabric、Fabric-CA、Fabric-SDK等,其中Fabric是该联盟链平台的核心和基础组件,提供了区块链网络节点部署,智能合约运行环境搭建,交易发起和共识、分布式账本维护等区块链网络核心功能。
Fabric-CA为Fabric项目的附属项目,用于替代cryptogen工具,为已经部署运行的Fabric联盟区块链网络动态生成新的组织和用户证书,实现Fabric网络的动态扩容,提升扩展性。Fabric-CA项目由两部分组成,分别是Fabric-CA服务端和Fabric-CA客户端。当Fabric网络中某组织有新用户加入时,该组织管理员可通过Fabric-CA客户端向服务端发起请求登记、注册新用户并获取到相应的用户证书。
国密SM系列算法:国密SM算法即国家密码局认定的国产商用系列密码算法,可以用于完成对称和非对称的加密、解密,数字签名的生成和验证,密钥协商,数字摘要等操作。
在原有的Fabric系列组件中,默认情况下,区块链网络中的散列算法使用SHA256,数字签名使用ECDSA算法,数字证书采用X509格式,并未提供国密算法的支持,不符合区块链平台在监管和可控方面的政策需求。基于此,已有支持国密算法的Fabric组件和Fabric-CA被开发并公布,但不存在支持国密算法的Fabric-SDK组件。这使得支持国密算法的政府或企业业务系统无法基于国密算法实现与Fabric联盟区块链网络的交互,严重阻碍了区块链平台的大规模可控的商用进程。
发明内容
本发明的发明目的是为了克服现有技术中的政府或企业业务系统无法基于国密算法实现与Fabric联盟区块链网络的交互,严重阻碍了区块链平台的大规模可控商用进程的不足,提供了一种对多种编程语言SDK通用的Fabric-SDK的国密扩展改造方法。
为了实现上述目的,本发明采用以下技术方案:
一种超级账本Fabric-SDK国密算法扩展改造方法,包括以下步骤:
(1)引入基于Fabric-SDK编程语言实现的国密源代码包到超级账本Fabric-SDK的项目源码中;
(2)使用Fabric-SDK集成的Fabric-CA客户端,与Fabric-CA服务端交互注册的新用户:
在新用户注册后,使用国密源代码包生成国密SM2非对称密钥对,用国密SM2非对称密钥对代替项目源码的ECDSA密钥对;
利用国密SM2非对称密钥对,发起PKCS10格式的证书请求,用证书请求代替项目源码中的基于ECDSA的证书请求;
Fabric-CA客户端发送PKCS10格式证书请求至Fabric-CA服务端,Fabric-CA客户端收到的Fabric-CA服务端返回的证书即为基于SM2算法的X509数字证书。
本发明引入Fabric-SDK对应编程语言的国密实现到其源码目录中,并替换原有的SHA256和ECDSA算法调用,实现了向国密Fabric-CA注册新用户,使用国密证书与国密Fabric区块链网络交互的功能,解决了支持国密的业务系统无法与支持国密的Fabric区块链网络交互的问题。
作为优选,还包括使用Fabric-CA客户端与Fabric区块链网络进行账本查询的过程,账本查询的过程包括如下步骤:
生成交易Proposal后,使用国密源代码包和SM3算法计算Proposal的摘要值A1,用摘要值A1代替项目源码中的用SHA256计算的摘要值;同时使用国密源代码包中的国密证书和SM2算法生成Proposal的摘要值A2,利用摘要值A2生成Proposal的数字签名C1,利用数字签名代替项目源码中的使用ECDSA计算数字签名;
Fabric-CA客户端将数字签名C1和Proposal一起封装成SignedProposal结构的消息,将SignedProposal结构的消息发送至区块链网络的各背书节点;
Fabric-CA客户端收到各背书节点返回的背书响应后,Fabric-CA客户端将所有背书响应组装为一个交易结构,并使用SM3算法计算Proposal的摘要值A3,利用摘要值A3代替项目源码的使用SHA256计算的摘要值,使用SM2算法和国密源代码包的国密证书计算摘要值A3的数字签名C2,用数字签名C2代替项目源码中的使用ECDSA计算的数字签名;
Fabric-CA客户端将组装好的交易结构和数字签名C2一起封装成Envelope结构的消息,将Envelope结构的消息发送至区块链网络的各个排序节点。
作为优选,所述项目源码具有功能:
随机生成国密SM2非对称密钥对;
使用SM3对任意数据计算数字摘要;
使用给定国密SM2密钥对,生成PKCS10格式的证书请求;
使用给定国密SM2私钥,对任意数据生成数字签名。
作为优选,Fabric-SDK编程语言为Fabric-SDK-Java、Fabric-SDK-Go、Fabric-SDK-Node或Fabric-SDK-Python。
因此,本发明具有如下有益效果:引入Fabric-SDK对应编程语言的国密实现到其源码目录中,并替换原有的SHA256和ECDSA算法调用,实现了向国密Fabric-CA注册新用户,使用国密证书与国密Fabric区块链网络交互的功能,解决了支持国密的业务系统无法与支持国密的Fabric区块链网络交互的问题。
附图说明
图1是原始的Fabric-SDK与原始的Fabric-CA服务端交互注册新用户的一种流程图;
图2是本发明的Fabric-SDK与支持国密的Fabric-CA服务端交互注册新用户的一种流程图;
图3是原始的Fabric-SDK与原始的Fabric区块链网络交互发起交易或查询账本的一种流程图;
图4是本发明的Fabric-SDK与支持国密的Fabric区块链网络交互发起交易或查询账本的一种流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
一种超级账本Fabric-SDK国密算法扩展改造方法,对Fabric-SDK进行国密算法扩展改造首先需要实现对应编程语言的国密算法,并将该国密源码导入到Fabric-SDK源代码目录中。如图1和图3所示,根据Fabric-SDK对密码学算法的使用需求,项目源码需要具有如下功能:
1.随机生成国密SM2非对称密钥对;
2.使用SM3对任意数据计算数字摘要;
3.使用给定国密SM2密钥对生成PKCS10格式的证书请求;
4.使用给定国密SM2私钥对任意数据生成数字签名。
另外,通过国密扩展Fabric-SDK使用国密算法与Fabric-CA服务端和Fabric区块链网络进行交互,要求Fabric-CA组件和Fabric组件均支持国密。包括以下步骤:
(1)引入基于Fabric-SDK编程语言实现的国密源代码包到超级账本Fabric-SDK的项目源码中;例如需要改造Fabric-SDK-Java时,可引入bouncycastle的SecurityProvider实现对国密SM系列算法的支持。需要改造Fabric-SDK-Go时,可引入同济区块链研究院开源的国密算法的Go语言实现到Fabric-SDK-Go项目源代码中。其他语言版本的Fabric-SDK同理。具体实施时,也可参照相应国家标准,自己实现国密算法并引入到Fabric-SDK源代码目录中。
如图2所示,(2)使用Fabric-SDK集成的Fabric-CA客户端,与Fabric-CA服务端交互注册的新用户:
在新用户注册后,使用国密源代码包生成国密SM2非对称密钥对,用国密SM2非对称密钥对代替项目源码的ECDSA密钥对;
利用国密SM2非对称密钥对,发起PKCS10格式的证书请求,用证书请求代替项目源码中的基于ECDSA的证书请求;
Fabric-CA客户端发送PKCS10格式证书请求至Fabric-CA服务端,Fabric-CA客户端收到的Fabric-CA服务端返回的证书即为基于SM2算法的X509数字证书。
如图4所示,(3)使用Fabric-CA客户端与Fabric区块链网络进行账本查询的过程,账本查询的过程包括如下步骤:
生成交易Proposal后,使用国密源代码包和SM3算法计算Proposal的摘要值A1,用摘要值A1代替项目源码中的用SHA256计算的摘要值;同时使用国密源代码包中的国密证书和SM2算法生成Proposal的摘要值A2,利用摘要值A2生成Proposal的数字签名C1,利用数字签名代替项目源码中的使用ECDSA计算数字签名;
Fabric-CA客户端将数字签名C1和Proposal一起封装成SignedProposal结构的消息,将SignedProposal结构的消息发送至区块链网络的各背书节点;
Fabric-CA客户端收到各背书节点返回的背书响应后,Fabric-CA客户端将所有背书响应组装为一个交易结构,并使用SM3算法计算Proposal的摘要值A3,利用摘要值A3代替项目源码的使用SHA256计算的摘要值,使用SM2算法和国密源代码包的国密证书计算摘要值A3的数字签名C2,用数字签名C2代替项目源码中的使用ECDSA计算的数字签名;
Fabric-CA客户端将组装好的交易结构和数字签名C2一起封装成Envelope结构的消息,将Envelope结构的消息发送至区块链网络的各个排序节点。
应理解,本实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

Claims (4)

1.一种超级账本Fabric-SDK国密算法扩展改造方法,其特征是,包括以下步骤:
(1)引入基于Fabric-SDK编程语言实现的国密源代码包到超级账本Fabric-SDK的项目源码中;
(2)使用Fabric-SDK集成的Fabric-CA客户端,与Fabric-CA服务端交互注册的新用户:
在新用户注册后,使用国密源代码包生成国密SM2非对称密钥对,用国密SM2非对称密钥对代替项目源码的ECDSA密钥对;
利用国密SM2非对称密钥对,发起PKCS10格式的证书请求,用证书请求代替项目源码中的基于ECDSA的证书请求;
Fabric-CA客户端发送PKCS10格式证书请求至Fabric-CA服务端,Fabric-CA客户端收到的Fabric-CA服务端返回的证书即为基于SM2算法的X509数字证书。
2.根据权利要求1所述的超级账本Fabric-SDK国密算法扩展改造方法,其特征是,还包括使用Fabric-CA客户端与Fabric区块链网络进行账本查询的过程,账本查询的过程包括如下步骤:
生成交易Proposal后,使用国密源代码包和SM3算法计算Proposal的摘要值A1,用摘要值A1代替项目源码中的用SHA256计算的摘要值;同时使用国密源代码包中的国密证书和SM2算法生成Proposal的摘要值A2,利用摘要值A2生成Proposal的数字签名C1,利用数字签名代替项目源码中的使用ECDSA计算数字签名;
Fabric-CA客户端将数字签名C1和Proposal一起封装成SignedProposal结构的消息,将SignedProposal结构的消息发送至区块链网络的各背书节点;
Fabric-CA客户端收到各背书节点返回的背书响应后,Fabric-CA客户端将所有背书响应组装为一个交易结构,并使用SM3算法计算Proposal的摘要值A3,利用摘要值A3代替项目源码的使用SHA256计算的摘要值,使用SM2算法和国密源代码包的国密证书计算摘要值A3的数字签名C2,用数字签名C2代替项目源码中的使用ECDSA计算的数字签名;
Fabric-CA客户端将组装好的交易结构和数字签名C2一起封装成Envelope结构的消息,将Envelope结构的消息发送至区块链网络的各个排序节点。
3.根据权利要求1所述的超级账本Fabric-SDK国密算法扩展改造方法,其特征是,所述项目源码具有功能:
随机生成国密SM2非对称密钥对;
使用SM3对任意数据计算数字摘要;
使用给定国密SM2密钥对,生成PKCS10格式的证书请求;
使用给定国密SM2私钥,对任意数据生成数字签名。
4.根据权利要求1或2或3所述的超级账本Fabric-SDK国密算法扩展改造方法,其特征是,Fabric-SDK编程语言为Fabric-SDK-Java、Fabric-SDK-Go、Fabric-SDK-Node或Fabric-SDK-Python。
CN202010126426.7A 2020-02-27 2020-02-27 超级账本Fabric-SDK国密算法扩展改造方法 Pending CN111371562A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010126426.7A CN111371562A (zh) 2020-02-27 2020-02-27 超级账本Fabric-SDK国密算法扩展改造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010126426.7A CN111371562A (zh) 2020-02-27 2020-02-27 超级账本Fabric-SDK国密算法扩展改造方法

Publications (1)

Publication Number Publication Date
CN111371562A true CN111371562A (zh) 2020-07-03

Family

ID=71210051

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010126426.7A Pending CN111371562A (zh) 2020-02-27 2020-02-27 超级账本Fabric-SDK国密算法扩展改造方法

Country Status (1)

Country Link
CN (1) CN111371562A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901335A (zh) * 2020-07-27 2020-11-06 浙江永旗区块链科技有限公司 基于中台的区块链数据传输管理方法及系统
CN112737779A (zh) * 2020-12-30 2021-04-30 深圳市宝能投资集团有限公司 一种密码机服务方法、装置、密码机及存储介质
CN113037827A (zh) * 2021-03-02 2021-06-25 上海旺链信息科技有限公司 基于区块链的投票方法、自组织管理方法及计算机设备
CN114205085A (zh) * 2021-12-03 2022-03-18 东北大学 一种国密SM2的优化处理方法及超级账本fabric平台的改造方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080130895A1 (en) * 2006-10-25 2008-06-05 Spyrus, Inc. Method and System for Deploying Advanced Cryptographic Algorithms
CN110048855A (zh) * 2019-04-23 2019-07-23 东软集团股份有限公司 国密算法的引入方法及调用方法、及装置、设备、Fabric平台
CN110070362A (zh) * 2019-05-05 2019-07-30 北京共识数信科技有限公司 一种使用国密算法的金融行业区块链交易系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080130895A1 (en) * 2006-10-25 2008-06-05 Spyrus, Inc. Method and System for Deploying Advanced Cryptographic Algorithms
CN110048855A (zh) * 2019-04-23 2019-07-23 东软集团股份有限公司 国密算法的引入方法及调用方法、及装置、设备、Fabric平台
CN110070362A (zh) * 2019-05-05 2019-07-30 北京共识数信科技有限公司 一种使用国密算法的金融行业区块链交易系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张青禾: "区块链中的身份识别和访问控制技术研究" *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901335A (zh) * 2020-07-27 2020-11-06 浙江永旗区块链科技有限公司 基于中台的区块链数据传输管理方法及系统
CN111901335B (zh) * 2020-07-27 2022-08-30 浙江永旗区块链科技有限公司 基于中台的区块链数据传输管理方法及系统
CN112737779A (zh) * 2020-12-30 2021-04-30 深圳市宝能投资集团有限公司 一种密码机服务方法、装置、密码机及存储介质
CN113037827A (zh) * 2021-03-02 2021-06-25 上海旺链信息科技有限公司 基于区块链的投票方法、自组织管理方法及计算机设备
CN113037827B (zh) * 2021-03-02 2023-04-07 上海旺链信息科技有限公司 基于区块链的投票方法、自组织管理方法及计算机设备
CN114205085A (zh) * 2021-12-03 2022-03-18 东北大学 一种国密SM2的优化处理方法及超级账本fabric平台的改造方法

Similar Documents

Publication Publication Date Title
CN111371562A (zh) 超级账本Fabric-SDK国密算法扩展改造方法
EP3688634B1 (en) System and method for implementing a resolver service for decentralized identifiers
CN110602138B (zh) 区块链网络的数据处理方法、装置、电子设备及存储介质
AU2007240567B2 (en) Peer-to-peer contact exchange
CN111447073B (zh) 基于区块链与零知识证明的身份管理与认证系统及方法
Kohl et al. The evolution of the Kerberos authentication service
CN111277549B (zh) 一种采用区块链的安全服务方法与系统
CN110912706A (zh) 一种基于身份的动态数据完整性审计方法
CN112737779B (zh) 一种密码机服务方法、装置、密码机及存储介质
CN107251518B (zh) 用于中立应用程序编程接口的系统和方法
CN112686668A (zh) 联盟链跨链系统及方法
CN113541970B (zh) 分布式标识符的使用方法和分布式标识符使用系统
CN108900309B (zh) 一种鉴权方法及鉴权系统
CN111464315A (zh) 数字签名处理方法、装置、计算机设备以及存储介质
CN115442047A (zh) 一种业务管理文件的电子签章方法及系统
CN112804356A (zh) 一种基于区块链的联网设备监管认证方法及系统
CN103425939A (zh) 一种sm3算法在java环境中的实现方法及系统
CN110266478B (zh) 一种信息处理方法、电子设备
CN111553686A (zh) 数据处理方法、装置、计算机设备及存储介质
CN113472783B (zh) 区块链密码证书服务方法、系统、存储介质及装置
CN115134091A (zh) 一种分布式数字身份标识符的管理方法
CN114978698A (zh) 网络接入方法、目标终端、凭证管理网元及验证网元
JP2019102959A (ja) サーバ装置、通信装置、鍵共有システム、鍵共有方法、及びプログラム
CN112184440A (zh) 数据处理方法、装置、节点设备及存储介质
US20120164983A1 (en) Establishment of secure communication

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200703

RJ01 Rejection of invention patent application after publication