CN109617699A - 一种密钥生成方法、区块链网络服务平台及存储介质 - Google Patents

一种密钥生成方法、区块链网络服务平台及存储介质 Download PDF

Info

Publication number
CN109617699A
CN109617699A CN201910039102.7A CN201910039102A CN109617699A CN 109617699 A CN109617699 A CN 109617699A CN 201910039102 A CN201910039102 A CN 201910039102A CN 109617699 A CN109617699 A CN 109617699A
Authority
CN
China
Prior art keywords
node
group
key
signature result
public key
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
CN201910039102.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.)
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Wodong Tianjun Information Technology 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 Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Wodong Tianjun Information Technology Co Ltd
Priority to CN201910039102.7A priority Critical patent/CN109617699A/zh
Publication of CN109617699A publication Critical patent/CN109617699A/zh
Pending legal-status Critical Current

Links

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/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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供一种密钥生成方法、区块链网络服务平台及存储介质,该方法应用于区块链网络服务平台,区块链网络服务平台包括群组,群组包括区块链网络平台中参与交易的至少三个节点,该方法包括:若至少三个节点参与的交易完成,获取群组对应的上链签名结果;其中,上链签名结果包括至少三个节点中每一节点的签名结果;通过第一节点基于上链签名结果计算群组的群组密钥;其中,群组的群组密钥用于传输数据时对数据进行加密,第一节点是至少三个节点中的任一节点。

Description

一种密钥生成方法、区块链网络服务平台及存储介质
技术领域
本发明涉及通信技术,尤其涉及一种密钥生成方法、区块链网络服务平台及存储介质。
背景技术
区块链技术及其应用正在颠覆现有的业务模式。各行各业都在积极探索将自身业务在区块链网络中实现,其中包括金融机构,政府部门,传统企业,互联网公司等等。区块链***具有公开可见、不可篡改、不可伪造等性质,在数字货币、供应链等领域中具有广泛应用,能够防止中心节点的恶意行为,增加交易的透明度、可信度,促进数字资产流通、数据信息安全。
密码算法和安全协议作为区块链的重要功能模块,有效地保证了区块链***的正常运行和安全性。此外,交易完成后的通信安全性的保护也值得研究人员和设计者的关注。交易结束后,付款人、收款人以及其他相关方往往需要进行进一步地信息交流或沟通,完成私密数据如付费音乐、付费影视剧等的传输和交易确认等。现有的交易结束后的通信方式通常借助区块链以外的***完成,例如使用即时聊天工具、电子邮件、移动通讯等通信方式。然而这些通信方式无法保证沟通方确实是区块链***中的交易参与者;同时,部分上述方式缺少加密机制,容易泄露相关数据内容,并且数据接收方无法发现数据是否在传输过程中被篡改;因此,相关技术中存在交易完成后私密数据的传输和交易确认存在安全性差的问题。
发明内容
本发明实施例提供一种密钥生成方法、区块链网络服务平台及存储介质,以解决相关技术中存在交易完成后私密数据的传输和交易确认存在安全性差的问题。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种密钥生成方法,所述方法应用于区块链网络服务平台,所述区块链网络服务平台包括群组,所述群组包括所述区块链网络平台中参与交易的至少三个节点,所述方法包括:
若所述至少三个节点参与的交易完成,获取所述群组对应的上链签名结果;其中,所述上链签名结果包括所述至少三个节点中每一节点的签名结果;
通过第一节点基于所述上链签名结果计算所述群组的群组密钥;其中,所述群组的群组密钥用于传输数据时对数据进行加密,所述第一节点是所述至少三个节点中的任一节点。
可选的,所述通过第一节点基于所述上链签名结果计算所述群组的群组密钥之前,所述方法包括:
从所述上链签名结果中获取所述第一节点对应的第一签名结果;
基于所述第一签名结果计算所述第一节点的临时私钥;
从所述上链签名结果中获取第二节点对应的第二签名结果和第三节点对应的第三签名结果;其中,所述第二节点和所述第三节点不同,且所述第二节点和所述第三节点均与所述第一节点相邻;
基于所述第二签名结果计算所述第二节点的第一临时公钥,并基于所述第三签名结果计算所述第三节点的第二临时公钥;
相应的,所述通过第一节点基于所述上链签名结果计算所述群组的群组密钥,包括:
通过所述第一节点基于所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述群组的群组密钥。
可选的,所述通过所述第一节点基于所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述群组的群组密钥,包括:
通过所述第一节点基于群组密钥交换协议、所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述群组的群组密钥。
可选的,所述通过所述第一节点基于群组密钥交换协议、所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述群组的群组密钥,包括:
通过所述第一节点基于所述群组密钥交换协议、所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述第一节点的密钥材料;其中,所述密钥材料用于生成所述群组的群组密钥;
通过所述第一节点广播所述第一节点的密钥材料至所述至少三个节点中除了所述第一节点以外的节点;
通过所述第一节点获取所述至少三个节点中每一节点的密钥材料;
通过所述第一节点基于所述群组密钥交换协议和所述每一节点的密钥材料,计算所述群组的群组密钥。
可选的,所述基于所述第一签名结果计算所述第一节点的临时私钥,包括:
基于所述第一签名结果计算所述第一节点签名时的第一随机数,并确定所述第一随机数为所述第一节点的临时私钥。
可选的,所述基于所述第二签名结果计算所述第二节点的第一临时公钥,并基于所述第三签名结果计算所述第三节点的第二临时公钥,包括:
基于所述第二签名结果计算所述第二节点签名时所需的第二随机数;
基于所述第二随机数和基点计算所述第一临时公钥;其中,所述基点是所述至少三个节点生成的密钥对所关联的椭圆曲线的基点;
基于所述第三签名结果计算所述第三节点签名时所需的第三随机数;
基于所述第三随机数和所述基点计算所述第二临时公钥。
可选的,所述基于所述第二签名结果计算所述第二节点的第一临时公钥,并基于所述第三签名结果计算所述第三节点的第二临时公钥,包括:
基于所述第二签名结果计算所述第二节点签名时所需的第二随机数;
基于所述第二随机数和所述群组的生成元计算所述第一临时公钥;
基于所述第三签名结果计算所述第三节点签名时所需的第三随机数;
基于所述第三随机数和所述生成元计算所述第二临时公钥。
可选的,所述通过所述第一节点基于所述群组密钥交换协议和所述每一节点的密钥材料,计算所述群组的群组密钥,包括:
通过所述第一节点基于所述群组密钥交换协议和所述每一节点的密钥材料,计算所述群组的共享秘密;其中,所述共享秘密用于生成所述群组的群组密钥;
通过所述第一节点基于密钥派生函数和所述群组的共享秘密,计算所述群组的群组密钥。
第二方面,本发明实施例提供一种区块链网络服务平台,所述区块链网络服务平台包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现上述密钥生成方法的步骤。
第三方面,本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述密钥生成方法的步骤。
应用本发明实施例实现以下有益效果:在无需认证授权(Certificate Authority,CA)节点或相关管理节点的情况下,能够为区块链网络服务平台的多个节点提供安全的数据传输通道。并且通道构建过程中无需使用其他外部网络或可信第三方,仅仅依靠区块链网络服务平台原有网络信道和区块链中的数据;避免了证书查询、验证以及额外的数据存储。本发明实施例中的几种群组密钥交换协议具有认证性,能够将交易身份和通信身份进行绑定。本发明实施例中,使用布尔梅斯特-德梅特(Burmester-Desmedt,BD)协议,只需进行一轮交互,各参与者就可以完成密钥交换的目的,而且,本发明实施例提供的密钥生成方法,能够兼容相关技术中支持椭圆曲线数字签名算法ECDSA、椭圆曲线公钥密码算法SM2和基于素数循环群的签名算法Schnorr的区块链***。
因为采用若至少三个节点参与的交易完成,获取群组对应的上链签名结果;其中,上链签名结果包括至少三个节点中每一节点的签名结果;通过第一节点基于上链签名结果计算群组的群组密钥;其中,群组的群组密钥用于传输数据时对数据进行加密,第一节点是至少三个节点中的任一节点;也就是说,本发明实施例中在获取到上述群组对应的上链签名结果之后,能够通过群组中的任一节点基于上链签名结果计算上述群组的群组密钥,使得交易完成后利用上述群组的群组密钥在私密数据的传输和交易确认的过程中进行数据加密,如此,为区块链***的多个节点构建了安全的数据传输通道。需要说明的是,本发明实施例中,在通道构建过程中并未涉及区块链网络服务平台以外的其他外部网络或可信第三方,仅仅依靠区块链网络服务平台的原有网络信道和区块链中的数据生成了群组的群组密钥即对称密钥,避免了证书查询、验证以及额外的数据存储,这样,确保了交易结束后的通信方式仅仅基于区块链网络服务平台的原有资源来实现,进而保证沟通方都是区块链***中的交易参与者,不仅避免了相关数据的泄露,而且确保了数据在传输过程中不会被篡改,解决了相关技术中存在交易完成后私密数据的传输和交易确认存在安全性差的问题,提升了交易完成后私密数据的传输和交易确认的安全性。
附图说明
图1本发明实施例提供的区块链网络服务平台的功能架构示意图;
图2本发明实施例提供的一种密钥生成方法的流程示意图;
图3本发明实施例提供的另一种密钥生成方法的流程示意图;
图4本发明实施例提供的基于DB协议生成群组密钥的示意图;
图5本发明实施例提供的一种区块链网络服务平台的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)交易(Transaction),等同于计算机术语“实务”,包括三种不同的交易类型:部署(Deploy),调用(Invoke)和查询(Query)。部署交易用于向区块链网络的节点安装指定的链码,调用和查询类型的交易用于调用部署号的链码,以实现对账本中的目标账户的相关数据的操作,包括增、删、查、改的操作修改账户中的键值(Key-Value)对形式的数据,或者在账本中增加新的账户,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
2)区块(Block),记录一段时间内交易所更新的账本数据的数据结构,被标记上时间戳和之前一个区块的独特标记(例如数字指纹),区块经过区块链网络中节点的共识验证后,会被追加到区块链的末尾成为新区块。
3)区块链(Blockchain),区块以顺序相连的方式组合成的一种链式数据结构,在每个区块中引用前一个区块或者其子集的哈希值,从而以密码学的方式保证所记录交易的不可篡改和不可伪造。
4)区块链网络,通过共识的方式将新区块纳入区块链的一系列的、无中心的节点的集合。
5)账本(Ledger),区块链网络中以账户为维度所记录的数据的总和,包括账本数据、账本状态、账本状态证明和区块索引等元素。
6)账本数据,实际区块数据存储,即区块链中记录的一系列有序的、不可篡改的交易的记录,可以表现为文件***的文件的形式,交易中调用的智能合约被执行时,实现对账户/账户中数据的更新。
7)账本状态,也称为状态数据,即账本数据的状态,可以表现为数据库中的键值对的形式,其中实时账本状态用于表示共识的交易所更新的键值对的最新记录,历史账本状态用于表示键值对的历史记录。
8)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对交易结果达成一致,实现共识的机制包括工作量证明(PoW)、权益证明(PoS,Proof ofStake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proofof Elapsed Time)等。
9)智能合约(Smart Contracts),也称为链码(Chaincode),部署在区块链网络中的根据条件而触发执行的程序,用于通过查询、增加、修改来操作账本,以实现对账本的查询或更新。
10)公钥基础设施(Public Key Infrastructure),用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。
11)认证授权(Certificate Authority,CA)节点,即区块链中数字证书认证节点,负责发放和管理数字证书的特殊节点。
12)椭圆曲线数字签名算法(ECDSA)。
13)椭圆曲线公钥密码算法(SM2):国家密码行业标准推荐使用的签名算法,同样是基于椭圆曲线。
14)基于素数循环群的签名算法(Schnorr):基于素数循环群的签名算法,目前最高效的签名算法之一。
下面说明实现本发明实施例的区块链网络服务平台的示例性的功能架构,参见图1,图1本发明实施例提供的区块链网络服务平台的功能架构示意图,区块链网络服务平台100包括资源层110、区块层120、服务层130、接口层140和应用层150,下面分别进行说明。
资源层110封装机器上的计算资源、存储资源和网络资源等各种形式的资源,用于开发者根据业务需求而部署的区块链网络,资源的类型可以包括各种机器,例如物理主机、服务器或集群等物理机,或者包括公有云或私有云等虚拟机,又或者包括以上的两种。
计算资源包括各种形式的处理器,例如中央处理器(CPU)、应用专用集成电路(ASIC,Application Specific Integrated Circuit)、专用集成电路和现场可编程门阵列(FPGA,Field-Programmable Gate Array)的各种形式的处理器。
存储资源包括各种易失性存储器和非易失性存储器等各种类型的存储介质。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。
网络资源包括用于实现有线/无线网络通信的各种芯片,如有线通信处理器、无线通信处理器等。
资源层110通过部署有容器集群的管理***(例如,Kubernetes)而被构建为由一系列的运行有容器的节点构成的集群,屏蔽资源层110中底层资源的差异而对外提供统一的接口,从而无须进行各种复杂的调用;区块链网络的应用(包括实现区块链网络的各种代码)在容器中以隔离的方式运行,容器中封装了应用运行的依赖关系从而能够容易地被调度(例如,当节点发生故障时,或者当需要将应用迁移到新的机器上运行时)到集群的任一节点上运行。
区块层120封装了实现区块链网络的不同解决方案,例如超级账本(Fabric)、Stellar、Ethereum、自研的JD Chain等;这些解决方案规范了实现区块链网络的架构以及实现共识的机制,在区块链网络服务平台100中可以提供为应用商店中的应用的方式,以支持开发者根据需求快速部署。
服务层130封装了区块链网络服务平台的各种服务,特色服务包括快速部署区块链网络、账户认证、企业及部署、统一鉴权、微服务和开发接口;合约管理包括上传校验、合约部署、合约升级、合约列表、合约库和合约模板;监控运维包括节点管理、服务升级、交易管理、区块浏览、账户审计和账户管理。
接口层140提供了向开发者提供了接入区块链网络服务平台100以进行区块链网络的部署和管理的方式,包括开发者浏览器的网络(Web)方位方式、在客户端中内置软件开发套件(SDK,Software Development Kit)/应用程序接口(API,Application ProgramInterface)的方式。
应用层150封装了支撑不同业务(包括溯源、公益、存证、电子***、动产评估、交易计算和数字版权等)的应用,在应用商店中提供模块化、可复用的应用,支持开发者根据需求选择并部署于区块链网络中,以记录不同业务过程中所生产的各种数据。本发明实施例所提供的密钥生成方法可以基于区块链网络服务平台100中的应用层150实现。
结合上文可知,实现本发明实施例的区块链网络服务平台通过在资源层部署容器集群、并运行封装有区块链网络应用的容器而实现,由此,实现本发明实施例的区块链网络可以提供为存储器和处理器的形式,在存储器中存储有可执行指令,当可执行指令被处理器执行时,在运行处理器和存储器的多个物理机上建立了容器集群,通过在容器中运行封装的应用,来实现本发明实施例的区块链网络服务平台中的密钥生成方法。
本发明实施例提供一种密钥生成方法,该方法应用于区块链网络服务平台100,该区块链网络服务平台100包括群组,该群组包括区块链网络平台中参与交易的至少三个节点,本发明实施例中,参与交易的节点又称为参与者,参见图2所示,该方法包括:
步骤101、若至少三个节点参与的交易完成,获取群组对应的上链签名结果。
其中,上链签名结果包括至少三个节点中每一节点的签名结果。
本发明实施例中,区块链网络服务平台100在上述至少三个节点参与的交易完成后,可以获取到包括上述至少三个节点的群组对应的上链签名结果。
步骤102、通过第一节点基于上链签名结果计算群组的群组密钥。
其中,群组的群组密钥用于传输数据时对数据进行加密,第一节点是至少三个节点中的任一节点。这里,群组的群组密钥又称为对称密钥。
本发明实施例中,区块链网络服务平台100在获取到上述群组对应的上链签名结果之后,能够通过第一节点基于上链签名结果计算上述群组的群组密钥,使得交易完成后利用上述群组的群组密钥在私密数据的传输和交易确认的过程中进行数据加密,如此,为区块链***的多个节点构建了安全的数据传输通道。需要说明的是,本发明实施例中,在通道构建过程中并未涉及区块链网络服务平台100以外的其他外部网络或可信第三方,仅仅依靠区块链网络服务平台100的原有网络信道和区块链中的数据生成了群组的群组密钥即对称密钥,避免了证书查询、验证以及额外的数据存储,如此,确保了交易结束后的通信方式仅仅基于区块链网络服务平台100的原有资源来实现,进而保证沟通方都是区块链***中的交易参与者,这样,不仅避免了相关数据的泄露,而且确保了数据在传输过程中不会被篡改,解决了相关技术中存在交易完成后私密数据的传输和交易确认存在安全性差的问题,提升了交易完成后私密数据的传输和交易确认的安全性。
根据前述实施例,本发明实施例提供一种密钥生成方法,该方法应用于区块链网络服务平台100,该区块链网络服务平台100包括群组,该群组包括区块链网络平台中参与交易的至少三个节点,本发明实施例中,参与交易的节点又称为参与者,参见图3所示,该方法包括:
步骤201、若至少三个节点参与的交易完成,获取群组对应的上链签名结果。
其中,上链签名结果包括至少三个节点中每一节点的签名结果。
步骤202、从上链签名结果中获取第一节点对应的第一签名结果。
本发明实施例中,区块链网络服务平台100获取到上述群组对应的上链签名结果之后,可以从上链签名结果中获取第一节点对应的第一签名结果,第一签名结果用于恢复第一节点的临时私钥。
步骤203、基于第一签名结果计算第一节点的临时私钥。
本发明实施例中,步骤203基于第一签名结果计算第一节点的临时私钥可以通过如下步骤实现:
基于第一签名结果计算第一节点签名时的第一随机数,并确定第一随机数为第一节点的临时私钥。
本发明实施例中,区块链网络服务平台100提取出第一签名结果之后,计算数字签名时所需的第一随机数,并确定第一随机数为第一节点的临时私钥。
需要说明的是,在安全性方面,根据上述底层签名算法的安全性,攻击者或者是群组以外的实体无法通过区块链中的签名值得到对应的随机数,即BD协议中所需的临时私钥,从而保证了最终对称密钥的安全性。而且,由于上链的签名值只有私钥的拥有者才能恢复出来,因此保证了协议的认证性。
步骤204、从上链签名结果中获取第二节点对应的第二签名结果和第三节点对应的第三签名结果。
其中,第二节点和第三节点不同,且第二节点和第三节点均与第一节点相邻。
本发明实施例中,每一节点即每一参与者都有唯一的ID;示例性的,可以根据各个节点加入区块链网络的先后顺序为其生成ID,那么,根据这些ID就可以确定每一节点的相邻节点。
步骤205、基于第二签名结果计算第二节点的第一临时公钥,并基于第三签名结果计算第三节点的第二临时公钥。
本发明实施例中,步骤205、基于第二签名结果计算第二节点的第一临时公钥,并基于第三签名结果计算第三节点的第二临时公钥可以通过如下步骤实现:
步骤205a1、基于第二签名结果计算第二节点签名时所需的第二随机数。
本发明实施例中,区块链网络服务平台100提取出第二签名结果之后,计算第二节点数字签名时所需的第二随机数,并确定第二随机数为第二节点的临时私钥。
步骤205a2、基于第二随机数和基点计算第一临时公钥。
本发明实施例中,区块链网络服务平台100获取到第二节点对应的第二随机数之后,可以基于第二随机数和基点的运算结果得到第一临时公钥。
其中,基点是至少三个节点生成的密钥对所关联的椭圆曲线的基点。
本发明实施例中,区块链网络服务平台100可以根据签名者产生密钥对时的相关参数,确定计算临时公钥所需的目标参数。示例性的,当签名者产生密钥对时的相关参数是椭圆曲线的基点,那么,确定计算临时公钥所需的目标参数包括椭圆曲线的基点和随机数。
需要说明的是,签名者产生密钥对时的相关参数与由其采用的签名算法有关;示例性的,当采用的签名算法为ECDSA或SM2时,相关参数就是椭圆曲线的基点。
步骤205a3、基于第三签名结果计算第三节点签名时所需的第三随机数。
本发明实施例中,区块链网络服务平台100提取出第三签名结果之后,计算第三节点数字签名时所需的第三随机数,并确定第三随机数为第三节点的临时私钥。
步骤205a4、基于第三随机数和上述基点计算第二临时公钥。
本发明实施例中,区块链网络服务平台100获取到节点对应的第三随机数之后,可以基于第三随机数和基点的运算结果得到第二临时公钥。
本发明另一实施例中,步骤205、基于第二签名结果计算第二节点的第一临时公钥,并基于第三签名结果计算第三节点的第二临时公钥可以通过如下步骤实现:
步骤205b1、基于第二签名结果计算第二节点签名时所需的第二随机数。
需要说明的是,本实施例中步骤205b1与其它实施例中步骤205a1所执行的操作相同,可以参照其它实施例中的描述,此处不再赘述。
步骤205b2、基于第二随机数和群组的生成元计算第一临时公钥。
本发明实施例中,区块链网络服务平台100获取到第二节点对应的第二随机数之后,可以基于第二随机数和群组的生成元的运算结果得到第一临时公钥。
本发明实施例中,根据签名者产生密钥对时的相关参数,确定计算临时公钥所需的目标参数。示例性的,当签名者产生密钥对时的相关参数是群组的生成元,那么,确定计算临时公钥所需的目标参数包括群组的生成元和随机数。
需要说明的是,签名者产生密钥对时的相关参数与由其采用的签名算法有关;示例性的,当采用的签名算法为Schnorr时,相关参数就是群组的生成元。
步骤205b3、基于第三签名结果计算第三节点签名时所需的第三随机数。
需要说明的是,本实施例中步骤步骤205b3与其它实施例中步骤步骤205a3所执行的操作相同,可以参照其它实施例中的描述,此处不再赘述。
步骤205b4、基于第三随机数和生成元计算第二临时公钥。
本发明实施例中,区块链网络服务平台100获取到节点对应的第三随机数之后,可以基于第三随机数和生成元的运算结果得到第二临时公钥。
步骤206、通过第一节点基于第一节点的临时私钥、第一临时公钥和第二临时公钥,计算群组的群组密钥。
本发明实施例中,步骤206通过第一节点基于第一节点的临时私钥、第一临时公钥和第二临时公钥,计算群组的群组密钥可以通过如下步骤实现:
步骤206A、通过第一节点基于群组密钥交换协议、第一节点的临时私钥、第一临时公钥和第二临时公钥,计算群组的群组密钥。
这里,群组密钥交换协议包括BD协议。区块链网络服务平台100通过第一节点基于BD协议、第一节点的临时私钥、第一临时公钥和第二临时公钥,计算群组的群组密钥。
这里,对BD协议进行简要说明:BD协议是以两位密码学家Burmester和Desmedt命名的群组密钥交换协议。协议使得群组内的n个平等的参与者通过两轮交互即可以生成共享会话密钥。由于n个参与者之间关系是平等的,这里以群组内的一个参与者Ui(Ui表示群组内任一参与者)的操作流程为例,对BD协议进行简要说明。假设n个参与者根据身份标识(identification,ID)的顺序排序,并且令U1=Un+1,参见图4所示,BD协议的详细步骤可以包括如下三个阶段:
第一阶段:从Zq中随机选取正整数ki作为临时私钥;计算作为临时公钥,其中,Zq表示小于素数q的非负整数,g是循环群的生成元,i是大于0的自然数。将临时公钥Qi发送给左右相邻的两个参与者Ui-1和Ui+1,并收到来自两个参与者的临时公钥Qi-1和Qi+1,然后计算密钥材料
第二阶段:将密钥材料广播给其他参与者,并收到来自其他参与者的密钥材料。
第二阶段:根据其他参与者发送给Ui的密钥材料,参与者Ui计算出共享秘密K,K用如下表达式表示如下:
需要说明的是,本发明实施例中区块链网络服务平台100以BD协议作为基础组件,并借助ECDSA、SM2和Schnorr等签名算法的特点,构建出基于区块链的群组密钥生成方法。
本发明实施例中,步骤206A通过第一节点基于群组密钥交换协议、第一节点的临时私钥、第一临时公钥和第二临时公钥,计算群组的群组密钥可以通过如下步骤实现:
步骤206a1、通过第一节点基于群组密钥交换协议、第一节点的临时私钥、第一临时公钥和第二临时公钥,计算第一节点的密钥材料。
其中,密钥材料用于生成群组的群组密钥。
本发明实施例中,区块链网络服务平台100通过第一节点将第一节点的临时私钥、第一临时公钥和第二临时公钥代入到BD协议中,得到第一节点的密钥材料。
步骤206a2、通过第一节点广播第一节点的密钥材料给至少三个节点中除了第一节点以外的节点。
本发明实施例中,区块链网络服务平台100通过第一节点获取到第一节点的密钥材料之后,通过第一节点广播第一节点的密钥材料给至少三个节点中除了第一节点以外的节点,以使得其他参与者接收到第一节点的密钥材料。
步骤206a3、通过第一节点获取至少三个节点中每一节点的密钥材料。
本发明实施例中,区块链网络服务平台100通过第一节点广播自己的密钥材料,即通过群组中的任一节点广播自身的密钥材料,这样,仅通过一轮并发交互,各个节点即各个参与者就可以得到所有的参与者的密钥材料。
步骤206a4、通过第一节点基于群组密钥交换协议和每一节点的密钥材料,计算群组的群组密钥。
本发明实施例中,步骤206a4、通过第一节点基于群组密钥交换协议和每一节点的密钥材料,计算群组的群组密钥可以通过如下步骤实现:
第一步,通过第一节点基于群组密钥交换协议和每一节点的密钥材料,计算群组的共享秘密。
其中,共享秘密用于生成群组的群组密钥。
本发明实施例中,区块链网络服务平台100通过第一节点得到每一节点的密钥材料之后,通过第一节点基于群组密钥交换协议和每一节点的密钥材料,计算群组的共享秘密。
第二步,通过第一节点基于密钥派生函数和群组的共享秘密,计算群组的群组密钥。
这里需要说明的是,在区块链***中,可以使用群组密钥交换技术,多方参与者建立群组传输信道,使信息可以在群组内交互,并提供实体之间的认证性、交易数据的机密性和完整性等安全性保障。然而,某些区块链***缺少能够提供公钥基础设施、存储共享口令、签署证书等的特殊节点,因此无法使用既有的算法如ECDSA、SM2和Schnorr来完成安全信道建立。然而,在本发明实施例所提供的密钥生成方法,可以基于BD协议和既有算法ECDSA、SM2和Schnorr中的任一算法,来满足多方交易后群组数据安全传输的功能需求,进而实现兼容现今支持ECDSA、SM2和Schnorr的签名方案。为了便于理解本发明实施例所提供的密钥生成方法,以如下三个示例对本发明所提供的密钥生成方法作进一步地说明。
示例一,以基于ECDSA和BD协议实现本发明实施例所提供的密钥生成方法为例,对本发明实施例所提供的密钥生成方法进行详细的说明:
简要介绍ECDSA签名算法:(1)签名者A生成公私钥对(dA,PA=dAG),其中,G是椭圆曲线的基点。
(2)签名者A生成消息MA的签名值(rA,sA):计算eA=H(MA),H表示对消息MA进行哈希运算;生成随机数kA,计算(xA,yA)=[kA]G;令rA=xA;计算
(3)验证者B验证消息MA的签名值(rA,sA):计算eA=H(MA);计算验证是否满足rA=xA,来判断签名是否有效,其中,r表征签名结果中的承诺值,s表征签名结果中的证明值。
基于BD协议和ECDSA的群组密钥生成方法包括:(1)参与者Ui对应的签名结果为(ri,si),首先,计算得到自己的临时私钥,
(2)根据其他参与者的上链签名结果,提取出群组中左右相邻的两位参与者的临时公钥,即签名结果(ri-1,si-1)和(ri+1,si+1),可以恢复出对应的临时公钥,即椭圆曲线点Qi-1=(xi-1,±yi-1)和Qi+1=(xi+1,±yi+1),其中xi-1=ri-1和xi+1=ri+1,并且纵坐标由横坐标带入到椭圆曲线方程y2=x3+ax+b得到(a和b是相关参数),因此存在正负两个值。
(3)以ki和Qi-1和Qi+1作为输入,带入到BD协议中,得到Xi=ki(Qi+1-Qi-1),在第2阶段时,广播xi,并得到其他参与者的密钥材料值,计算出共享秘密K=nki(Qi-1)+(n-1)Xi+…+Xi-2,得到的K是椭圆曲线上的点,记作(xK,±yK);最后计算sK=KDF(xK),其中KDF是国密标准《SM2椭圆曲线公钥密码算法》中第3部分定义的密钥衍生函数,可以使用安全的哈希函数进行实现,其中,sK表征群组密钥。
示例二,以基于SM2和BD协议实现本发明实施例所提供的密钥生成方法为例,对本发明实施例所提供的密钥生成方法进行详细的说明:
简要介绍SM2签名算法:(SM2算法中具体参数值可以借鉴国密标准《SM2椭圆曲线公钥密码算法》中第2部分和第5部分的算法流程、推荐曲线和参数):
(1)签名者A生成公私钥对(dA,PA=dAG),其中G是该椭圆曲线的基点。
(2)签名者A生成消息MA的签名值(rA,sA):令其中ZA是身份标识、曲线参数、基点参数和签名者公钥等信息的SM3哈希值,||表示左右两个数据的连接;计算生成随机数kA,计算(xA,yA)=[kA]G。计算rA=(eA+xA);计算sA=((1+dA)-1·(kA-rAdA))。
(3)验证者B验证消息MA的签名(rA,sA):令计算计算tA=rA+sA;计算(xA+yA)=[sA]G+[tA]PA;计算RA=eA+xA,检验RA=rA是否成立,来判断签名是否有效。
基于BD协议和SM2的群组密钥生成方法包括:(1)参与者Ui对应的签名结果为(ri,si),首先计算得到自己的临时私钥,ki=si·(1+di)+ridi
(2)根据其他参与者的上链签名结果(ri-1,si-1)和(ri+1,si+1),可以恢复出对应的临时公钥,Qi-1=(xi-1,±yi-1)和Qi+1=(xi+1,±yi+1),其中xi-1=ri-1-ei-1,xi+1=ri+1-ei+1
(3)以ki和Qi-1和Qi+1作为输入,带入到BD协议中,得到Xi=ki(Qi+1-Qi-1),在第2阶段时,广播Xi,并得到其他参与者的密钥材料值,在第3阶段计算出共享秘密K=nki(Qi-1)+(n-1)Xi+…+Xi-2,得到的K是椭圆曲线点,记作(xK,±yK);最后计算sK=KDF(xK),其中,sK表征群组密钥,KDF是国密标准《SM2椭圆曲线公钥密码算法》中第3部分定义的密钥衍生函数。
示例三,以Schnorr和BD协议实现本发明实施例所提供的密钥生成方法为例,对本发明实施例所提供的密钥生成方法进行详细的说明:
简要介绍Schnorr签名算法:(1)签名者A产生公私钥对其中g是群生成元。
(2)签名者A以私钥xA和消息mA作为输入,产生签名值(sA,eA),其中eA=H(rA||mA),sA=kA-eAxAkA是签名者选择的随机值,H是哈希函数。
(3)验证者B以签名值(sA,eA)和签名者A的公钥yA为输入,验证是否满足来判断签名是否有效。
基于BD协议和Schnorr的群组密钥生成方法包括:(1)参与者Ui对应的签名结果为(si,ei),首先计算得到自己的临时私钥,ki=si+eixi
(2)根据其他参与者的上链签名结果(si-1,ei-1)和(si+1,ei+1),可以恢复出对应的临时公钥,
(3)以ki和Qi-1和Qi+1作为输入,带入到BD协议中,得到在第2阶段时,广播Xi,并得到其他参与者的密钥材料值,在第3阶段计算出共享秘密最后计算sK=KDF(xK),其中KDF是可以通过哈希函数实现的密钥衍生函数。
由上述内容可知,本发明实施例中将计算数字签名时所需的随机数作为临时私钥,随机数与基点(或生成元)的运算结果作为临时公钥,借助BD协议,使得每个参与者都可以生成群组会话密钥即对称密钥。
本发明实施例中,在安全性方面,根据上述底层签名算法的安全性,攻击者(或者是群组以外的实体)无法通过区块链中的签名值得到对应的随机数,即BD协议中所需的临时私钥,从而保证了最终会话密钥的安全性;由于上链的签名值只有私钥的拥有者才能恢复出来,因此保证了协议的认证性。
本发明实施例中,在通信效率方面,参与双方在会话密钥生成之前,只需要进行彼此之间的广播一轮信息,不受群组成员个数的影响;在计算效率方面,参与者的数量越多,计算时长相应增加。
本发明充分利用ECDSA、SM2和Schnorr等数字签名算法的结构特点,使得多方交易参与者能够在交易后,通过查询区块链账本中的签名记录来恢复自己的临时私钥和其他方的临时公钥,使用BD协议,只需进行一轮交互,各参与者就可以生成群组密钥。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
基于前述实施例,本发明的实施例提供一种区块链网络服务平台,区块链网络服务平台包括群组,群组包括区块链网络平台中参与交易的至少三个节点,该区块链网络服务平台可以应用于图2~3对应的实施例提供的一种密钥生成方法中,参照图5示,该区块链网络服务平台5(区块链网络服务平台5与区块链网络服务平台100相对应)包括:处理器51、存储器52和通信总线53,其中:
通信总线53用于实现处理器51和存储器52之间的通信连接。
处理器51用于执行存储器52中存储的密钥生成程序,以实现以下步骤:
若所述至少三个节点参与的交易完成,获取所述群组的上链签名结果;其中,所述上链签名结果包括所述至少三个节点中每一节点的签名结果;
通过第一节点基于所述上链签名结果计算所述群组的群组密钥;其中,所述群组的群组密钥用于传输数据时对数据进行加密,所述第一节点是所述至少三个节点中的任一节点。
在本发明的其他实施例中,处理器51用于执行存储器52中存储的密钥生成程序,以实现以下步骤:
从所述上链签名结果中获取所述第一节点对应的第一签名结果;
基于所述第一签名结果计算所述第一节点的临时私钥;
从所述上链签名结果中获取第二节点对应的第二签名结果和第三节点对应的第三签名结果;其中,所述第二节点和所述第三节点不同,且所述第二节点和所述第三节点均与所述第一节点相邻;
基于所述第二签名结果计算所述第二节点的第一临时公钥,并基于所述第三签名结果计算所述第三节点的第二临时公钥;
相应的,所述通过第一节点基于所述上链签名结果计算所述群组的群组密钥,包括:
通过所述第一节点基于所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述群组的群组密钥。
在本发明的其他实施例中,处理器51用于执行存储器52中存储的密钥生成程序,以实现以下步骤:
通过所述第一节点基于群组密钥交换协议、所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述群组的群组密钥。
在本发明的其他实施例中,处理器51用于执行存储器52中存储的密钥生成程序,以实现以下步骤:
通过所述第一节点基于所述群组密钥交换协议、所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述第一节点的密钥材料;其中,所述密钥材料用于生成所述群组的群组密钥;
通过所述第一节点广播所述第一节点的密钥材料至所述至少三个节点中除了所述第一节点以外的参与值;
通过所述第一节点获取所述至少三个节点中每一节点的密钥材料;
通过所述第一节点基于所述群组密钥交换协议和所述每一节点的密钥材料,计算所述群组的群组密钥。
在本发明的其他实施例中,处理器51用于执行存储器52中存储的密钥生成程序,以实现以下步骤:
基于所述第一签名结果计算所述第一节点签名时的第一随机数,并确定所述第一随机数为所述第一节点的临时私钥。
在本发明的其他实施例中,处理器51用于执行存储器52中存储的密钥生成程序,以实现以下步骤:
基于所述第二签名结果计算所述第二节点签名时所需的第二随机数;
基于所述第二随机数和基点计算所述第一临时公钥;其中,所述基点是所述至少三个节点生成的密钥对所关联的椭圆曲线的基点;
基于所述第三签名结果计算所述第三节点签名时所需的第三随机数;
基于所述第三随机数和所述基点计算所述第二临时公钥。
在本发明的其他实施例中,处理器51用于执行存储器52中存储的密钥生成程序,以实现以下步骤:
基于所述第二签名结果计算所述第二节点签名时所需的第二随机数;
基于所述第二随机数和所述群组的生成元计算所述第一临时公钥;
基于所述第三签名结果计算所述第三节点签名时所需的第三随机数;
基于所述第三随机数和所述生成元计算所述第二临时公钥。
在本发明的其他实施例中,处理器51用于执行存储器52中存储的密钥生成程序,以实现以下步骤:
通过所述第一节点基于所述群组密钥交换协议和所述每一节点的密钥材料,计算所述群组的共享秘密;其中,所述共享秘密用于生成所述群组的群组密钥;
通过所述第一节点基于密钥派生函数和所述群组的共享秘密,计算所述群组的群组密钥。
需要说明的是,本实施例中处理器所执行的步骤的具体实现过程,可以参照图2~3对应的实施例提供的密钥生成方法中的实现过程,此处不再赘述。
基于前述实施例,本发明的实施例提供一种存储介质,该存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如下步骤:
若所述至少三个节点参与的交易完成,获取所述群组的上链签名结果;其中,所述上链签名结果包括所述至少三个节点中每一节点的签名结果;
通过第一节点基于所述上链签名结果计算所述群组的群组密钥;其中,所述群组的群组密钥用于传输数据时对数据进行加密,所述第一节点是所述至少三个节点中的任一节点。
在本发明的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,以实现以下步骤:
从所述上链签名结果中获取所述第一节点对应的第一签名结果;
基于所述第一签名结果计算所述第一节点的临时私钥;
从所述上链签名结果中获取第二节点对应的第二签名结果和第三节点对应的第三签名结果;其中,所述第二节点和所述第三节点不同,且所述第二节点和所述第三节点均与所述第一节点相邻;
基于所述第二签名结果计算所述第二节点的第一临时公钥,并基于所述第三签名结果计算所述第三节点的第二临时公钥;
相应的,所述通过第一节点基于所述上链签名结果计算所述群组的群组密钥,包括:
通过所述第一节点基于所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述群组的群组密钥。
在本发明的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,以实现以下步骤:
通过所述第一节点基于群组密钥交换协议、所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述群组的群组密钥。
在本发明的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,以实现以下步骤:
通过所述第一节点基于所述群组密钥交换协议、所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述第一节点的密钥材料;其中,所述密钥材料用于生成所述群组的群组密钥;
通过所述第一节点广播所述第一节点的密钥材料至所述至少三个节点中除了所述第一节点以外的参与值;
通过所述第一节点获取所述至少三个节点中每一节点的密钥材料;
通过所述第一节点基于所述群组密钥交换协议和所述每一节点的密钥材料,计算所述群组的群组密钥。
在本发明的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,以实现以下步骤:
基于所述第一签名结果计算所述第一节点签名时的第一随机数,并确定所述第一随机数为所述第一节点的临时私钥。
在本发明的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,以实现以下步骤:
基于所述第二签名结果计算所述第二节点签名时所需的第二随机数;
基于所述第二随机数和基点计算所述第一临时公钥;其中,所述基点是所述至少三个节点生成的密钥对所关联的椭圆曲线的基点;
基于所述第三签名结果计算所述第三节点签名时所需的第三随机数;
基于所述第三随机数和所述基点计算所述第二临时公钥。
在本发明的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,以实现以下步骤:
基于所述第二签名结果计算所述第二节点签名时所需的第二随机数;
基于所述第二随机数和所述群组的生成元计算所述第一临时公钥;
基于所述第三签名结果计算所述第三节点签名时所需的第三随机数;
基于所述第三随机数和所述生成元计算所述第二临时公钥。
在本发明的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,以实现以下步骤:
通过所述第一节点基于所述群组密钥交换协议和所述每一节点的密钥材料,计算所述群组的共享秘密;其中,所述共享秘密用于生成所述群组的群组密钥;
通过所述第一节点基于密钥派生函数和所述群组的共享秘密,计算所述群组的群组密钥。
需要说明的是,本实施例中处理器所执行的步骤的具体实现过程,可以参照图2~3对应的实施例提供的密钥生成方法中的实现过程,此处不再赘述。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

Claims (10)

1.一种密钥生成方法,其特征在于,所述方法应用于区块链网络服务平台,所述区块链网络服务平台包括群组,所述群组包括所述区块链网络平台中参与交易的至少三个节点,所述方法包括:
若所述至少三个节点参与的交易完成,获取所述群组对应的上链签名结果;其中,所述上链签名结果包括所述至少三个节点中每一节点的签名结果;
通过第一节点基于所述上链签名结果计算所述群组的群组密钥;其中,所述群组的群组密钥用于传输数据时对数据进行加密,所述第一节点是所述至少三个节点中的任一节点。
2.根据权利要求1所述的方法,其特征在于,所述通过第一节点基于所述上链签名结果计算所述群组的群组密钥之前,所述方法包括:
从所述上链签名结果中获取所述第一节点对应的第一签名结果;
基于所述第一签名结果计算所述第一节点的临时私钥;
从所述上链签名结果中获取第二节点对应的第二签名结果和第三节点对应的第三签名结果;其中,所述第二节点和所述第三节点不同,且所述第二节点和所述第三节点均与所述第一节点相邻;
基于所述第二签名结果计算所述第二节点的第一临时公钥,并基于所述第三签名结果计算所述第三节点的第二临时公钥;
相应的,所述通过第一节点基于所述上链签名结果计算所述群组的群组密钥,包括:
通过所述第一节点基于所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述群组的群组密钥。
3.根据权利要求2所述的方法,其特征在于,所述通过所述第一节点基于所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述群组的群组密钥,包括:
通过所述第一节点基于群组密钥交换协议、所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述群组的群组密钥。
4.根据权利要求3所述的方法,其特征在于,所述通过所述第一节点基于群组密钥交换协议、所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述群组的群组密钥,包括:
通过所述第一节点基于所述群组密钥交换协议、所述第一节点的临时私钥、所述第一临时公钥和所述第二临时公钥,计算所述第一节点的密钥材料;其中,所述密钥材料用于生成所述群组的群组密钥;
通过所述第一节点广播所述第一节点的密钥材料至所述至少三个节点中除了所述第一节点以外的节点;
通过所述第一节点获取所述至少三个节点中每一节点的密钥材料;
通过所述第一节点基于所述群组密钥交换协议和所述每一节点的密钥材料,计算所述群组的群组密钥。
5.根据权利要求4所述的方法,其特征在于,所述通过所述第一节点基于所述群组密钥交换协议和所述每一节点的密钥材料,计算所述群组的群组密钥,包括:
通过所述第一节点基于所述群组密钥交换协议和所述每一节点的密钥材料,计算所述群组的共享秘密;其中,所述共享秘密用于生成所述群组的群组密钥;
通过所述第一节点基于密钥派生函数和所述群组的共享秘密,计算所述群组的群组密钥。
6.根据权利要求2至5中任一所述的方法,其特征在于,所述基于所述第一签名结果计算所述第一节点的临时私钥,包括:
基于所述第一签名结果计算所述第一节点签名时的第一随机数,并确定所述第一随机数为所述第一节点的临时私钥。
7.根据权利要求2至5中任一所述的方法,其特征在于,所述基于所述第二签名结果计算所述第二节点的第一临时公钥,并基于所述第三签名结果计算所述第三节点的第二临时公钥,包括:
基于所述第二签名结果计算所述第二节点签名时所需的第二随机数;
基于所述第二随机数和基点计算所述第一临时公钥;其中,所述基点是所述至少三个节点生成的密钥对所关联的椭圆曲线的基点;
基于所述第三签名结果计算所述第三节点签名时所需的第三随机数;
基于所述第三随机数和所述基点计算所述第二临时公钥。
8.根据权利要求2至5中任一所述的方法,其特征在于,所述基于所述第二签名结果计算所述第二节点的第一临时公钥,并基于所述第三签名结果计算所述第三节点的第二临时公钥,包括:
基于所述第二签名结果计算所述第二节点签名时所需的第二随机数;
基于所述第二随机数和所述群组的生成元计算所述第一临时公钥;
基于所述第三签名结果计算所述第三节点签名时所需的第三随机数;
基于所述第三随机数和所述生成元计算所述第二临时公钥。
9.一种区块链网络服务平台,其特征在于,所述区块链网络服务平台包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现如权利要求1至8中任一项所述的密钥生成方法。
10.一种存储介质,其特征在于,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行权利要求1至8中任一项所述的密钥生成方法。
CN201910039102.7A 2019-01-16 2019-01-16 一种密钥生成方法、区块链网络服务平台及存储介质 Pending CN109617699A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910039102.7A CN109617699A (zh) 2019-01-16 2019-01-16 一种密钥生成方法、区块链网络服务平台及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910039102.7A CN109617699A (zh) 2019-01-16 2019-01-16 一种密钥生成方法、区块链网络服务平台及存储介质

Publications (1)

Publication Number Publication Date
CN109617699A true CN109617699A (zh) 2019-04-12

Family

ID=66017584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910039102.7A Pending CN109617699A (zh) 2019-01-16 2019-01-16 一种密钥生成方法、区块链网络服务平台及存储介质

Country Status (1)

Country Link
CN (1) CN109617699A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110048855A (zh) * 2019-04-23 2019-07-23 东软集团股份有限公司 国密算法的引入方法及调用方法、及装置、设备、Fabric平台
CN110049067A (zh) * 2019-05-30 2019-07-23 全链通有限公司 会话密钥的传输方法、设备及计算机可读存储介质
CN110070362A (zh) * 2019-05-05 2019-07-30 北京共识数信科技有限公司 一种使用国密算法的金融行业区块链交易***
CN110213059A (zh) * 2019-06-20 2019-09-06 腾讯科技(深圳)有限公司 一种随机数的生成方法、生成装置及存储介质
CN110602083A (zh) * 2019-09-10 2019-12-20 上海黔易数据科技有限公司 一种数字身份认证数据的安全传输与存储方法
WO2019170168A3 (en) * 2019-05-31 2020-03-12 Alibaba Group Holding Limited Method for restoring public key based on sm2 signature
CN111131336A (zh) * 2020-03-30 2020-05-08 腾讯科技(深圳)有限公司 多方授权场景下的资源访问方法、装置、设备及存储介质
CN111431728A (zh) * 2020-03-30 2020-07-17 腾讯科技(深圳)有限公司 一种分布式应用程序的用户群组管理方法
CN111447070A (zh) * 2020-03-26 2020-07-24 丁莉萍 区块链签名验证方法、装置及存储介质
CN111835774A (zh) * 2020-07-15 2020-10-27 中国建设银行股份有限公司 数据处理方法、装置、设备及存储介质
CN111865972A (zh) * 2020-07-17 2020-10-30 西安工业大学 一种匿名通信方法与***
CN111934889A (zh) * 2020-10-13 2020-11-13 百度在线网络技术(北京)有限公司 密钥生成方法、签名和验签方法、装置、设备和介质
CN112132579A (zh) * 2020-09-30 2020-12-25 深圳前海微众银行股份有限公司 一种区块链共识节点更新方法及装置
CN112419021A (zh) * 2020-10-21 2021-02-26 西安电子科技大学 电子***验证方法、***、存储介质、计算机设备、终端
CN113193960A (zh) * 2021-04-01 2021-07-30 西安电子科技大学 一种可问责的共有云数据所有权迁移与审计方法及***
CN115499223A (zh) * 2022-09-20 2022-12-20 贵州电网有限责任公司 一种密钥交换方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201711878D0 (en) * 2017-07-24 2017-09-06 Nchain Holdings Ltd Computer - implemented system and method
CN107171806A (zh) * 2017-05-18 2017-09-15 北京航空航天大学 基于区块链的移动终端网络密钥协商方法
CN108712261A (zh) * 2018-05-10 2018-10-26 杭州智块网络科技有限公司 一种基于区块链的密钥生成方法、装置及介质
CN108737430A (zh) * 2018-05-25 2018-11-02 全链通有限公司 区块链节点的加密通信方法和***
CN108833115A (zh) * 2018-06-15 2018-11-16 中山大学 一种基于区块链的多方公平pdf合同签署方法
CN109104311A (zh) * 2018-08-06 2018-12-28 腾讯科技(深圳)有限公司 基于区块链的设备管理方法、装置、介质及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107171806A (zh) * 2017-05-18 2017-09-15 北京航空航天大学 基于区块链的移动终端网络密钥协商方法
GB201711878D0 (en) * 2017-07-24 2017-09-06 Nchain Holdings Ltd Computer - implemented system and method
CN108712261A (zh) * 2018-05-10 2018-10-26 杭州智块网络科技有限公司 一种基于区块链的密钥生成方法、装置及介质
CN108737430A (zh) * 2018-05-25 2018-11-02 全链通有限公司 区块链节点的加密通信方法和***
CN108833115A (zh) * 2018-06-15 2018-11-16 中山大学 一种基于区块链的多方公平pdf合同签署方法
CN109104311A (zh) * 2018-08-06 2018-12-28 腾讯科技(深圳)有限公司 基于区块链的设备管理方法、装置、介质及电子设备

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110048855A (zh) * 2019-04-23 2019-07-23 东软集团股份有限公司 国密算法的引入方法及调用方法、及装置、设备、Fabric平台
CN110048855B (zh) * 2019-04-23 2022-03-15 东软集团股份有限公司 国密算法的引入方法及调用方法、及装置、设备、Fabric平台
CN110070362A (zh) * 2019-05-05 2019-07-30 北京共识数信科技有限公司 一种使用国密算法的金融行业区块链交易***
CN110049067A (zh) * 2019-05-30 2019-07-23 全链通有限公司 会话密钥的传输方法、设备及计算机可读存储介质
CN110049067B (zh) * 2019-05-30 2021-06-01 全链通有限公司 会话密钥的传输方法、设备及计算机可读存储介质
US10911231B2 (en) 2019-05-31 2021-02-02 Advanced New Technologies Co., Ltd. Method for restoring public key based on SM2 signature
WO2019170168A3 (en) * 2019-05-31 2020-03-12 Alibaba Group Holding Limited Method for restoring public key based on sm2 signature
US10778428B1 (en) 2019-05-31 2020-09-15 Allibaba Group Holding Limited Method for restoring public key based on SM2 signature
US11196556B2 (en) 2019-05-31 2021-12-07 Advanced New Technologies Co., Ltd. Method for restoring public key based on SM2 signature
CN110213059B (zh) * 2019-06-20 2021-07-06 腾讯科技(深圳)有限公司 一种随机数的生成方法、生成装置及存储介质
CN110213059A (zh) * 2019-06-20 2019-09-06 腾讯科技(深圳)有限公司 一种随机数的生成方法、生成装置及存储介质
CN110602083B (zh) * 2019-09-10 2022-04-29 上海黔易数据科技有限公司 一种数字身份认证数据的安全传输与存储方法
CN110602083A (zh) * 2019-09-10 2019-12-20 上海黔易数据科技有限公司 一种数字身份认证数据的安全传输与存储方法
CN111447070B (zh) * 2020-03-26 2023-04-07 丁莉萍 区块链签名验证方法、装置及存储介质
CN111447070A (zh) * 2020-03-26 2020-07-24 丁莉萍 区块链签名验证方法、装置及存储介质
CN111431728A (zh) * 2020-03-30 2020-07-17 腾讯科技(深圳)有限公司 一种分布式应用程序的用户群组管理方法
CN111131336B (zh) * 2020-03-30 2020-07-17 腾讯科技(深圳)有限公司 多方授权场景下的资源访问方法、装置、设备及存储介质
CN111431728B (zh) * 2020-03-30 2024-02-09 腾讯科技(深圳)有限公司 一种分布式应用程序的用户群组管理方法
CN111131336A (zh) * 2020-03-30 2020-05-08 腾讯科技(深圳)有限公司 多方授权场景下的资源访问方法、装置、设备及存储介质
CN111835774B (zh) * 2020-07-15 2022-09-30 建信金融科技有限责任公司 数据处理方法、装置、设备及存储介质
CN111835774A (zh) * 2020-07-15 2020-10-27 中国建设银行股份有限公司 数据处理方法、装置、设备及存储介质
CN111865972A (zh) * 2020-07-17 2020-10-30 西安工业大学 一种匿名通信方法与***
CN112132579A (zh) * 2020-09-30 2020-12-25 深圳前海微众银行股份有限公司 一种区块链共识节点更新方法及装置
CN111934889A (zh) * 2020-10-13 2020-11-13 百度在线网络技术(北京)有限公司 密钥生成方法、签名和验签方法、装置、设备和介质
CN111934889B (zh) * 2020-10-13 2021-02-26 百度在线网络技术(北京)有限公司 密钥生成方法、签名和验签方法、装置、设备和介质
CN112419021B (zh) * 2020-10-21 2023-11-03 西安电子科技大学 电子***验证方法、***、存储介质、计算机设备、终端
CN112419021A (zh) * 2020-10-21 2021-02-26 西安电子科技大学 电子***验证方法、***、存储介质、计算机设备、终端
CN113193960A (zh) * 2021-04-01 2021-07-30 西安电子科技大学 一种可问责的共有云数据所有权迁移与审计方法及***
CN115499223A (zh) * 2022-09-20 2022-12-20 贵州电网有限责任公司 一种密钥交换方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109617699A (zh) 一种密钥生成方法、区块链网络服务平台及存储介质
US11038670B2 (en) System and method for blockchain-based cross-entity authentication
CN110147994B (zh) 一种基于同态加密的区块链的即时执行方法
US10917246B2 (en) System and method for blockchain-based cross-entity authentication
US10824701B2 (en) System and method for mapping decentralized identifiers to real-world entities
EP3788522B1 (en) System and method for mapping decentralized identifiers to real-world entities
De Oliveira et al. Towards a blockchain-based secure electronic medical record for healthcare applications
Fernández-Caramés et al. A Review on the Use of Blockchain for the Internet of Things
US20230023857A1 (en) Data processing method and apparatus, intelligent device, and storage medium
CN110933108B (zh) 基于区块链网络的数据处理方法、装置、电子设备及存储介质
CN108600272B (zh) 一种区块链数据处理方法、装置、处理设备及***
Lu et al. A secure and scalable data integrity auditing scheme based on hyperledger fabric
CN106559211B (zh) 一种区块链中隐私保护智能合约方法
CN109314636B (zh) 用于从区块链中安全提取数据的密码方法和***
US9635000B1 (en) Blockchain identity management system based on public identities ledger
CN112804064B (zh) 基于区块链的属性加密访问控制***及方法
CN108737403A (zh) 一种区块链数据处理方法、装置、处理设备及***
CN108898475A (zh) 基于属性加密的联盟区块链实现信贷方法及***
CN110111102A (zh) 一种基于区块链技术的虚拟交通卡***及发行交易方法
CN108876669A (zh) 应用于多平台教育资源共享的课程公证***及方法
CN109741068A (zh) 网银跨行签约方法、装置及***
CN114760071B (zh) 基于零知识证明的跨域数字证书管理方法、***和介质
Huynh et al. A reliability guaranteed solution for data storing and sharing
Huang et al. zkChain: A privacy‐preserving model based on zk‐SNARKs and hash chain for efficient transfer of assets
Hong et al. Blockchain-based fair payment for ABE with outsourced decryption

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