CN111490878A - 密钥生成方法、装置、设备及介质 - Google Patents
密钥生成方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111490878A CN111490878A CN202010277116.5A CN202010277116A CN111490878A CN 111490878 A CN111490878 A CN 111490878A CN 202010277116 A CN202010277116 A CN 202010277116A CN 111490878 A CN111490878 A CN 111490878A
- Authority
- CN
- China
- Prior art keywords
- key
- component
- cooperative
- negotiation
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
Abstract
本申请公开一种密钥生成方法、装置、设备及介质;方法包括:第一设备向共识节点发送密钥协商请求;若接收到共识节点返回的密钥验证参数,则与第二设备进行协同密钥对的协商,得到第一私钥分量和共享公钥;采用第一私钥分量对密钥验证参数进行签名,得到第一签名分量;根据第一签名分量和密钥验证参数生成交易数据;将交易数据发送至第二设备,使第二设备采用第二私钥分量对交易数据进行签名得到第二签名分量,根据第一签名分量和第二签名分量得到协同签名信息,将携带协同签名信息、共享公钥及密钥验证参数的协商结果数据发送至共识节点;由共识节点在协商结果数据通过共识后,将协商结果数据提交至区块链;可提高协同密钥对的可靠性和安全性。
Description
技术领域
本申请涉及互联网技术领域,具体涉及通信计算技术领域,尤其涉及一种基于区块链网络的密钥生成方法、一种密钥生成装置、一种计算机设备及一种计算机存储介质。
背景技术
随着互联网技术的发展,基于密钥对的数字签名技术受到了广泛使用。密钥对中通常可包括一个公钥和一个私钥;私钥可被用于对数据进行签名得到签名信息,而公钥则可被用于对签名信息进行验证。目前,如何提高密钥对的可靠性和安全性成为了研究热点。
发明内容
本发明实施例提供了一种密钥生成方法、装置、设备及介质,可以有效提高协同密钥对的可靠性和安全性。
一方面,本发明实施例提供了一种基于区块链网络的密钥生成方法,所述方法包括:
第一设备向区块链网络中的共识节点发送密钥协商请求,以请求所述共识节点同意所述第一设备与第二设备协商协同密钥对,并返回密钥验证参数;
若接收到所述共识节点返回的密钥验证参数,则与所述第二设备进行所述协同密钥对的协商,得到所述协同密钥对中的第一私钥分量和共享公钥;所述协同密钥中的第二私钥分量由所述第二设备持有,所述共享公钥用于校验采用所述第一私钥分量和所述第二私钥分量进行协同签名的协同签名信息的有效性;
采用所述第一私钥分量对所述密钥验证参数进行签名,得到第一签名分量;并根据所述第一签名分量和所述密钥验证参数生成交易数据;
将所述交易数据发送至所述第二设备,使得所述第二设备采用所述第二私钥分量对所述交易数据进行签名得到第二签名分量,并根据所述第一签名分量和所述第二签名分量得到协同签名信息,将携带所述协同签名信息、所述共享公钥以及所述密钥验证参数的协商结果数据发送至所述共识节点;由所述共识节点对所述协商结果数据进行共识,并在所述协商结果数据通过共识后,将所述协商结果数据提交至所述区块链网络的区块链中。
一方面,本发明实施例提供了一种基于区块链网络的密钥生成方法,所述方法包括:
第二设备与所述第一设备进行协同密钥对的协商,得到所述协同密钥对中的第二私钥分量和共享公钥;所述协同密钥对中的第一私钥分量由所述第一设备持有,所述共享公钥用于校验采用所述第一私钥分量和所述第二私钥分量进行协同签名的协同签名信息的有效性;
接收所述第一设备发送的交易数据,所述交易数据是由所述第一设备采用所述第一私钥分量对密钥验证参数进行签名得到第一签名分量后,根据所述第一签名分量和密钥验证参数生成的;所述密钥验证参数是所述第一设备向所述区块链网络中的共识节点发送密钥协商请求后,由所述共识节点返回给所述第一设备的;
采用所述第二私钥分量对所述交易数据进行签名得到第二签名分量,并根据所述第一签名分量和所述第二签名分量得到协同签名信息;
将携带所述协同签名信息、所述共享公钥以及所述密钥验证参数的协商结果数据发送至所述共识节点;由所述共识节点对所述协商结果数据进行共识,并在所述协商结果数据通过共识后,将所述协商结果数据提交至所述区块链网络的区块链中。
一方面,本发明实施例提供了一种基于区块链网络的密钥生成方法,所述方法包括:
共识节点接收第一设备发送的密钥协商请求,所述密钥协商请求用于请求所述共识节点同意所述第一设备与第二设备协商协同密钥对,并返回密钥验证参数;
向所述第一设备返回所述密钥验证参数,使得所述第一设备与所述第二设备进行协同密钥对的协商,得到第一私钥分量、第二私钥分量以及共享公钥;并使得所述第一设备采用所述第一私钥分量和所述第二设备采用所述第二私钥分量,对所述密钥验证参数进行协同签名得到协同签名信息;
接收所述第二设备发送的协商结果数据,所述协商结果数据携带所述协同签名信息、所述共享公钥以及所述密钥验证参数;
对所述协商结果数据进行共识;若共识通过,则将所述协商结果数据提交至所述区块链网络的区块链中。
一方面,本发明实施例提供了一种密钥生成装置,所述密钥生成装置运行于第一设备中;所述装置包括:
发送单元,用于向区块链网络中的共识节点发送密钥协商请求,以请求共识节点同意所述第一设备与第二设备协商协同密钥对,并返回密钥验证参数;
处理单元,用于若接收到所述共识节点返回的密钥验证参数,则与所述第二设备进行所述协同密钥对的协商,得到所述协同密钥对中的第一私钥分量和共享公钥;所述协同密钥中的第二私钥分量由所述第二设备持有,所述共享公钥用于校验采用所述第一私钥分量和所述第二私钥分量进行协同签名的协同签名信息的有效性;
所述处理单元,还用于采用所述第一私钥分量对所述密钥验证参数进行签名,得到第一签名分量;并根据所述第一签名分量和所述密钥验证参数生成交易数据;
所述发送单元,还用于将所述交易数据发送至所述第二设备,使得所述第二设备采用所述第二私钥分量对所述交易数据进行签名得到第二签名分量,并根据所述第一签名分量和所述第二签名分量得到协同签名信息,将携带所述协同签名信息、所述共享公钥以及所述密钥验证参数的协商结果数据发送至所述共识节点;由所述共识节点对所述协商结果数据进行共识,并在所述协商结果数据通过共识后,将所述协商结果数据提交至所述区块链网络的区块链中。
一方面,本发明实施例提供了一种密钥生成装置,所述密钥生成装置运行于第二设备中;所述装置包括:
处理单元,用于与所述第一设备进行协同密钥对的协商,得到所述协同密钥对中的第二私钥分量和共享公钥;所述协同密钥对中的第一私钥分量由所述第一设备持有,所述共享公钥用于校验采用所述第一私钥分量和所述第二私钥分量进行协同签名的协同签名信息的有效性;
接收单元,用于接收所述第一设备发送的交易数据,所述交易数据是由所述第一设备采用所述第一私钥分量对密钥验证参数进行签名得到第一签名分量后,根据所述第一签名分量和密钥验证参数生成的;所述密钥验证参数是所述第一设备向所述区块链网络中的共识节点发送密钥协商请求后,由所述共识节点返回给所述第一设备的;
处理单元,还用于采用所述第二私钥分量对所述交易数据进行签名得到第二签名分量,并根据所述第一签名分量和所述第二签名分量得到协同签名信息;
发送单元,用于将携带所述协同签名信息、所述共享公钥以及所述密钥验证参数的协商结果数据发送至所述共识节点;由所述共识节点对所述协商结果数据进行共识,并在所述协商结果数据通过共识后,将所述协商结果数据提交至所述区块链网络的区块链中。
一方面,本发明实施例提供了一种密钥生成装置,所述密钥生成装置运行于共识节点中;所述装置包括:
接收单元,用于接收第一设备发送的密钥协商请求,所述密钥协商请求用于请求所述共识节点同意所述第一设备与第二设备协商协同密钥对,并返回密钥验证参数;
发送单元,用于向所述第一设备返回所述密钥验证参数,使得所述第一设备与所述第二设备进行协同密钥对的协商,得到第一私钥分量、第二私钥分量以及共享公钥;并使得所述第一设备采用所述第一私钥分量和所述第二设备采用所述第二私钥分量,对所述密钥验证参数进行协同签名得到协同签名信息;
所述接收单元,还用于接收所述第二设备发送的协商结果数据,所述协商结果数据携带所述协同签名信息、所述共享公钥以及所述密钥验证参数;
共识单元,用于对所述协商结果数据进行共识;若共识通过,则将所述协商结果数据提交至所述区块链网络的区块链中。
一方面,本发明实施例提供了一种计算机设备,所述计算机设备为上述所提及的第一设备、第二设备或共识节点;所述计算机设备包括输入接口和输出接口,所述计算机设备还包括:
处理器,适于实现一条或多条指令;以及,计算机存储介质;
若所述计算机设备为第一设备,则所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由所述处理器加载并执行如下步骤:
向区块链网络中的共识节点发送密钥协商请求,以请求所述共识节点同意所述第一设备与第二设备协商协同密钥对,并返回密钥验证参数;
若接收到所述共识节点返回的密钥验证参数,则与所述第二设备进行所述协同密钥对的协商,得到所述协同密钥对中的第一私钥分量和共享公钥;所述协同密钥中的第二私钥分量由所述第二设备持有,所述共享公钥用于校验采用所述第一私钥分量和所述第二私钥分量进行协同签名的协同签名信息的有效性;
采用所述第一私钥分量对所述密钥验证参数进行签名,得到第一签名分量;并根据所述第一签名分量和所述密钥验证参数生成交易数据;
将所述交易数据发送至所述第二设备,使得所述第二设备采用所述第二私钥分量对所述交易数据进行签名得到第二签名分量,并根据所述第一签名分量和所述第二签名分量得到协同签名信息,将携带所述协同签名信息、所述共享公钥以及所述密钥验证参数的协商结果数据发送至所述共识节点;由所述共识节点对所述协商结果数据进行共识,并在所述协商结果数据通过共识后,将所述协商结果数据提交至所述区块链网络的区块链中。
若所述计算机设备为第二设备,则所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行如下步骤:
与所述第一设备进行协同密钥对的协商,得到所述协同密钥对中的第二私钥分量和共享公钥;所述协同密钥对中的第一私钥分量由所述第一设备持有,所述共享公钥用于校验采用所述第一私钥分量和所述第二私钥分量进行协同签名的协同签名信息的有效性;
接收所述第一设备发送的交易数据,所述交易数据是由所述第一设备采用所述第一私钥分量对密钥验证参数进行签名得到第一签名分量后,根据所述第一签名分量和密钥验证参数生成的;所述密钥验证参数是所述第一设备向所述区块链网络中的共识节点发送密钥协商请求后,由所述共识节点返回给所述第一设备的;
采用所述第二私钥分量对所述交易数据进行签名得到第二签名分量,并根据所述第一签名分量和所述第二签名分量得到协同签名信息;
将携带所述协同签名信息、所述共享公钥以及所述密钥验证参数的协商结果数据发送至所述共识节点;由所述共识节点对所述协商结果数据进行共识,并在所述协商结果数据通过共识后,将所述协商结果数据提交至所述区块链网络的区块链中。
若所述计算机设备为第三设备,则所述计算机存储介质存储有一条或多条第三指令,所述一条或多条第三指令适于由所述处理器加载并执行如下步骤:
接收第一设备发送的密钥协商请求,所述密钥协商请求用于请求所述共识节点同意所述第一设备与第二设备协商协同密钥对,并返回密钥验证参数;
向所述第一设备返回所述密钥验证参数,使得所述第一设备与所述第二设备进行协同密钥对的协商,得到第一私钥分量、第二私钥分量以及共享公钥;并使得所述第一设备采用所述第一私钥分量和所述第二设备采用所述第二私钥分量,对所述密钥验证参数进行协同签名得到协同签名信息;
接收所述第二设备发送的协商结果数据,所述协商结果数据携带所述协同签名信息、所述共享公钥以及所述密钥验证参数;
对所述协商结果数据进行共识;若共识通过,则将所述协商结果数据提交至所述区块链网络的区块链中。
一方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由处理器加载并执行上述第一设备所执行的密钥生成方法;或者,所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由处理器加载并执行上述第二设备所执行的密钥生成方法;或者,所述计算机存储介质存储有一条或多条第三指令,所述一条或多条第三指令适于由处理器加载并执行上述共识节点所执行的密钥生成方法。
本发明实施例中的第一设备可先向区块链网络中的共识节点发送密钥协商请求;若接收到共识节点返回的密钥验证参数,则可与第二设备进行协同密钥对的协商,得到第一私钥分量和共享公钥;第二私钥分量由第二设备持有。其次,第一设备和第二设备可分别采用第一私钥分量和第二私钥对密钥验证参数进行协同签名,得到协同签名信息。然后,第二设备可将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点,由共识节点在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中。由此可见,本发明实施例中的第一设备和第二设备分别持有一个私钥分量,可使得任一设备均无法持有完整的私钥,可有效提高协同密钥对的安全性;通过一个密钥验证参数,可实现将协同密钥对的协商过程以及协商结果的上链,可保证协商过程的公开透明以及提高协同密钥对的可靠性和安全性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的一种区块链的结构示意图;
图1b是本发明实施例提供的一种密钥生成系统的架构示意图;
图1c是本发明实施例提供的一种密钥生成系统的架构示意图;
图1d是本发明实施例提供的一种密钥生成系统的架构示意图;
图2是本发明实施例提供的一种密钥生成方法的流程示意图;
图3是本发明实施例提供的一种密钥生成方法的流程示意图;
图4a是本发明实施例提供的一种将协商结果数据打包成目标区块的示意图;
图4b是本发明实施例提供的一种将目标区块添加至区块链的流程示意图;
图5是本发明实施例提供的一种密钥生成装置的结构示意图;
图6是本发明实施例提供的一种密钥生成装置的结构示意图;
图7是本发明实施例提供的一种密钥生成装置的结构示意图;
图8是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
区块链网络是一种由点对点网络(P2P网络)和区块链所构成的网络,其内部可包括多个节点设备(简称节点);所谓的节点是指区块链网络中进行数据处理的计算机设备,其可以包括但不限于:智能终端、平板电脑以及台式计算机等终端设备、运行于终端设备中的APP(application,应用程序)、服务设备(如数据服务器、云服务器)等等。每个节点的内部均存储有一条相同的区块链,此处的区块链是一种分布式数据存储、点对点传输(P2P传输)、共识机制、加密算法等计算机技术的新型应用模式,其本质上是一个去中心化的数据库。
参见图1a所示,一条区块链可由多个区块组成;此处的区块是指用于记录输入信息的数据结构。其中,创始块(即第一个区块)中包括区块头和区块主体,区块头中存储有输入信息的哈希值、随机值、版本号、当前时间戳和当前难度值,区块主体中存储有创世块的输入信息。创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体;其区块头中存储有当前区块的输入信息的哈希值、父区块哈希值、随机值、版本号、当前时间戳和当前难度值,其区块主体中存储有当前区块的输入信息。以此类推,区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,可有效保证区块中输入信息的安全性。其中,版本号是指区块链中相关区块协议的版本信息;父区块哈希值是指上一区块的区块头部的哈希值;当前时间戳是指组成区块头部时的系统时间;当前难度值是指计算的难度值,该难度值在固定时间段内为定值,并在超出固定时间段后再次进行确定。
由上述可知,区块链网络可有效保证区块中的各数据的安全性;基于此,本发明实施例提出了一种基于区块链网络的密钥生成系统。具体的,该密钥生成系统可至少包括:第一设备11、第二设备12以及区块链网络中的共识节点13。其中,第一设备11和第二设备12均可为以下任一种:智能终端、平板电脑以及台式计算机等终端设备、运行于终端设备中的APP、服务设备(如数据服务器、云服务器)等等;共识节点13是指区块链网络中可参与共识的节点。在具体实现中,第一设备11均可与第二设备12以及共识节点13进行通信;同理,第二设备12也可与共识节点13进行通信。应理解的是,本发明实施例所提出的密钥生成系统的具体架构,可根据实际业务需求进行物理部署。在一种实施方式中,可将第一设备11和第二设备12均部署在区块链网络外;在此情况下,密钥生成系统的架构示意图可参见图1b所示。在一种实施方式中,可将第一设备11部署在区块链网络内,将第二设备12部署在区块链网络外;在此情况下,密钥生成系统的架构示意图可参见图1c所示。在一种系统架构中,可将第一设备11部署在区块链网络外,将第二设备12部署在区块链网络内;在此情况下,密钥生成系统的架构示意图可参见图1d所示。应理解的是,本发明实施所提出的密钥生成系统的具体架构并不局限于图1b-图1d所示;例如,也可将第一设备11和第二设备12均部署在区块链网络内;又如,区块链网络除了共识节点13以外,还可包括其他节点(如只提供存储服务的SPV(SimplifiedPayment Verification,简单支付验证)节点、提供业务处理服务的业务节点),等等。
基于上述的密钥生成系统,本发明实施例还提出了一种密钥生成方案。该密钥生成方案主要用于在第一设备和第二设备之间生成协同密钥对,使得第一设备和第二设备分别持有协同密钥对中的部分私钥分量,以便于后续第一设备和第二设备可采用各自的私钥分量对同一个数据进行协同签名。所谓的协同签名是指由两个或两个以上的参与者采用各自的私钥分量,协同一致地完成对某个数据进行签名的过程。其中,该密钥生成方案的大致原理如下:首先,存在协同签名需求的任一方(如第一设备或第二设备),向区块链网络中的共识节点提交一个密钥协商请求,使得共识节点为其生成一个密钥验证参数X。接着,第一设备和第二设备进行协同密钥对的协商;使得第一设备持有协同密钥对中的第一私钥分量和共享公钥,第二设备持有协同密钥对中的第二私钥分量和共享公钥。其次,第一设备和第二设备可分别采用第一私钥分量和第二私钥分量对密钥验证参数X进行一次协同签名,得到协同签名信息。然后,任一方(如第一设备或第二设备)可将协同签名信息、共享公钥和密钥验证参数一并发送给共识节点,以表示第一设备和第二设备均同意此次密钥协商的结果。相应的,共识节点可对任一方所发送的数据进行共识;并在共识通过后,将这些数据添加至区块链中进行存储。
由此可见,本发明实施例所提出的密钥生成方案可使得第一设备和第二设备分别持有一个私钥分量,任一设备均无法持有完整的私钥,可有效提高协同密钥对的安全性。通过一个密钥验证参数,可实现将协同密钥对的协商过程以及协商结果的上链,可保证协商过程的公开透明以及提高协同密钥对的可靠性和安全性。
基于上述的描述,本发明实施例提出一种基于区块链网络的密钥生成方法。请参见图2,该密钥生成方法可包括以下步骤S201-S208:
S201,第一设备向区块链网络中的共识节点发送密钥协商请求。
在具体实现中,若第一设备和第二设备之间欲进行协同密钥对的协商,则第一设备可先生成一个密钥协商请求。然后,第一设备可向区块链网络中的共识节点发送该密钥协商请求,以请求共识节点同意第一设备与第二设备协商协同密钥对,并返回密钥验证参数。相应的,共识节点在接收到该密钥协商请求后,若同意第一设备和第二设备协商协同密钥对,则可调用智能合约随机生成一个密钥验证参数,并可通过步骤S202将该密钥验证参数返回给第一设备。
S202,共识节点返回密钥验证参数。
S203,第一设备若接收到共识节点返回的密钥验证参数,则与第二设备进行协同密钥对的协商,得到协同密钥对中的第一私钥分量和共享公钥。
第一设备若接收到共识节点返回的密钥验证参数,则可确定共识节点已同意第一设备和第二设备协商协同密钥对。此时,第一设备可与第二设备进行协同密钥对的协商,得到协同密钥对中的第一私钥分量和共享公钥。应理解的是,第二设备也可与第一设备进行协同密钥对的协商,得到协同密钥对中的第二私钥分量和共享公钥;即经过协商之后,协同密钥对中的第一分量由第一设备持有,协同密钥中的第二私钥分量由第二设备持有。协同密钥对中的共享公钥可用于校验采用第一私钥分量和第二私钥分量进行协同签名的协同签名信息的有效性。
在一种实施方式中,步骤S203可包括如下步骤:首先,第一设备可获取第一设备和第二设备之间约定的随机数;该随机数是由第一设备或者第二设备采用随机算法生成的。其次,第一设备可采用密钥算法根据随机数生成一个协同密钥对,该协同密钥对包括一个私钥和一个公钥。具体的,第一设备可将随机数确定为密钥长度,采用密钥算法(如非对称加密算法)生成密钥长度的协同密钥对,即协同密钥对中的私钥的长度和公钥的长度均等于密钥长度。或者,第一设备可直接将随机数作为协同密钥对中的公钥,并采用密钥算法计算出与该公钥相对应的私钥,得到协同密钥对。然后,第一设备可将协同密钥对中的公钥作为共享公钥,并将协同密钥对中的私钥拆分成第一私钥分量和第二私钥分量;其中,第二私钥分量可被发送至第二设备。即在协商完成之后,第一设备可将第二私钥分量和共享公钥发送至第二设备。
相应的,在此实施方式下,第二设备与第一设备进行协同密钥对的协商,得到协同密钥对中的第二私钥分量和共享公钥的具体实施方式可以是:接收第一设备发送的第二私钥分量和共享公钥。其中,共享公钥是第一设备采用密钥算法根据随机数生成的协同密钥对中的公钥,第二私钥分量是由第一设备对协同密钥对中的私钥进行拆分得到的。
在一种实施方式中,步骤S203可包括如下步骤:首先,获取第一设备和第二设备之间约定的随机数;该随机数是由第一设备或者第二设备采用随机算法生成的。其次,第一设备可采用密钥算法根据随机数生成第一私钥分量和第一公钥;具体的,第一设备可将随机数确定为密钥长度,采用密钥算法生成密钥长度的第一私钥分量和第一公钥,即第一私钥分量的长度和第一公钥的长度均等于密钥长度。然后,第一设备可接收第二设备发送的第二公钥,并根据第一公钥和第二公钥生成共享公钥;其中,第二公钥是由第二设备采用密钥算法根据该随机数生成的。接着,第一设备可整合第一公钥和第二公钥,得到共享公钥。可选的,第一设备还可将共享公钥发送给第二设备;或者,第一设备可将第二公钥发送至第二设备,使得第二设备整合第一公钥和第二公钥,得到共享公钥。采用此实施方式,可使得只有第一设备知道第一私钥分量,第二设备知道第二私钥分量,可进一步提高私钥分量的安全性和私密性。
相应的,在此实施方式下,第二设备与第一设备进行协同密钥对的协商,得到协同密钥对中的第二私钥分量和共享公钥的具体实施方式可以是:获取第一设备和第二设备之间约定的随机数;采用密钥算法根据随机数生成第二私钥分量和第二公钥;将第二公钥发送至第一设备,由第一设备根据第一公钥和第二公钥生成共享公钥,第一公钥是由第一设备采用密钥算法根据随机数生成的;接收第一设备返回的共享公钥。或者,第二设备也可接收第一设备发送的第一公钥,整合第一公钥和第二公钥,得到共享公钥。
S204,第一设备采用第一私钥分量对密钥验证参数进行签名,得到第一签名分量;并根据第一签名分量和密钥验证参数生成交易数据。
S205,第一设备将交易数据发送至第二设备。
在得到交易数据后,第一设备可将交易数据发送至第二设备,使得第二设备采用第二私钥分量对交易数据进行签名得到第二签名分量,并根据第一签名分量和第二签名分量得到协同签名信息,将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点;由共识节点对协商结果数据进行共识,并在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中。需要说明的是,本发明实施例所提及的交易数据是指第一设备和第二设备之间进行交互的任意数据,其并不是指商业化的数据。
相应的,第二设备可接收第一设备发送的交易数据,并执行步骤S206-S207。其中,交易数据是由第一设备采用第一私钥分量对密钥验证参数进行签名得到第一签名分量后,根据第一签名分量和密钥验证参数生成的;该密钥验证参数是第一设备向区块链网络中的共识节点发送密钥协商请求后,由共识节点返回给第一设备的。
S206,第二设备采用第二私钥分量对交易数据进行签名得到第二签名分量,并根据第一签名分量和第二签名分量得到协同签名信息。
S207,第二设备将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点。
在步骤S206-S207中,第二设备可先采用第二私钥分量对交易数据进行签名,得到第二签名分量。具体的,第二设备可直接采用第二私钥分量对交易数据进行签名,得到第二签名分量;也可采用第二私钥分量对交易数据中的密钥验证参数进行签名,得到第二签名分量。其次,第二设备可整合第一签名分量和第二签名分量,得到协同签名信息。然后,根据协同签名信息、共享公钥以及密钥验证参数生成协商结果数据,并将该协商结果数据发送至共识节点,由共识节点对协商结果数据进行共识,并在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中。
相应的,共识节点可接收第二设备发送的协商结果数据,该协商结果数据携带协同签名信息、共享公钥以及密钥验证参数。然后,共识节点可对协商结果执行如下步骤S208:对协商结果数据进行共识;若共识通过,则将协商结果数据提交至区块链网络的区块链中。应理解的是,第二设备在得到协同签名信息后,也可将协同签名信息返回给第一设备;由第一设备将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点。
本发明实施例中的第一设备可先向区块链网络中的共识节点发送密钥协商请求;若接收到共识节点返回的密钥验证参数,则可与第二设备进行协同密钥对的协商,得到第一私钥分量和共享公钥;第二私钥分量由第二设备持有。其次,第一设备和第二设备可分别采用第一私钥分量和第二私钥对密钥验证参数进行协同签名,得到协同签名信息。然后,第二设备可将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点,由共识节点在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中。由此可见,本发明实施例中的第一设备和第二设备分别持有一个私钥分量,可使得任一设备均无法持有完整的私钥,可有效提高协同密钥对的安全性;通过一个密钥验证参数,可实现将协同密钥对的协商过程以及协商结果的上链,可保证协商过程的公开透明以及提高协同密钥对的可靠性和安全性。
请参见图3,是本发明实施例提供的一种基于区块链网络的密钥生成方法的流程示意图。请参见图3,该密钥生成方法可包括以下步骤S301-S314:
S301,第一设备生成协商信息。
S302,第一设备根据协商信息生成密钥协商通知。
S303,第一设备向第二设备发送密钥协商通知。
在步骤S301-S303中,若第一设备想要和第二设备之间进行协同密钥对的协商,则第一设备可先生成协商信息;该协商信息可用于指示:第一设备请求与所述第二设备协商协同密钥对。然后,可根据协商信息生成密钥协商通知,并向第二设备发送密钥协商通知。在一种具体实现中,根据协商信息生成密钥协商通知的具体实施方式可以是:直接将协商信息作为密钥协商通知。在一种具体实现中,根据协商信息生成密钥协商通知的具体实施方式可以是:先采用第一设备的系统私钥对协商信息进行签名,得到第一设备的系统数字签名;其中,第一设备的系统私钥可以是由第一设备采用密钥算法随机生成的。然后,采用协商信息和第一设备的系统数字签名,生成密钥协商通知。即在此实施方式下,密钥协商通知可携带协商信息,以及采用第一设备的系统私钥对协商信息进行签名的系统数字签名;通过将第一设备的系统数字签名添加至密钥协商通知中,可使得第二设备根据第一设备的系统数字签名对第一设备进行身份校验,提高安全性和可靠性。
相应的,第二设备可接收第一设备的密钥协商通知,该密钥协商通知是根据协商信息生成的。然后,第二设备可决定是否与第一设备协商协同密钥对;若第二设备同意,则第二设备可执行步骤S304。若第二设备不同意,则第二设备可向第一设备返回一个拒绝通知,并结束本流程。其中,拒绝通知用于指示:第二设备不同意和第一设备协商协同密钥对。
S304,第二设备若同意和第一设备协商协同密钥对,则向第一设备返回响应信息。
在一种具体实现中,第二设备若同意和第一设备协商协同密钥对,则第一设备可直接向第一设备返回响应信息;即响应信息可以是由第二设备同意和第一设备协商协同密钥对之后直接发送的。在一种具体实现中,若密钥协商通知携带协商信息,以及采用第一设备的系统私钥对协商信息进行签名的系统数字签名;则第二设备可先根据第一设备的系统数字签名对第一设备进行身份校验,并在第一设备通过身份校验后,向第一设备发送响应信息。具体的,若同意和第一设备协商协同密钥对,则第二设备可先获取第一设备的系统公钥,并采用第一设备的系统公钥对第一设备的系统数字签名进行验证;若验证成功,则可确定第一设备通过身份校验,此时可向第一设备发送响应信息。进一步的,若验证成功,则第二设备还可采用第二设备的系统私钥对密钥协商通知进行签名,得到第二设备的系统数字签名;然后根据密钥协商通知和第二设备的系统数字签名,生成响应信息,并向第一设备发送该响应信息。即响应信息也可以是第二设备同意和第一设备协商协同密钥对,且采用第一设备的系统公钥成功验证第一设备的系统数字签名后发送的
S305,第一设备若接收到第二设备返回的响应信息,则生成密钥协商请求。
在一种具体实现中,第一设备若接收到第二设备返回的响应信息,则可确定第二设备已同意和第一设备协商协同密钥对,此时可直接生成密钥协商通知。在一种具体实现中,若响应信息携带采用第二设备的系统私钥对密钥协商通知进行签名的系统数字签名;则步骤S305的具体实施方式可以是:第一设备若接收到第二设备返回的响应信息,则获取第二设备的系统公钥,并采用第二设备的系统公钥验证第二设备的系统数字签名;若第二设备的系统数字签名通过验证,则采用第一设备的系统数字签名、第二设备的系统数字签名以及协商信息生成密钥协商请求。第一设备通过步骤S305得到密钥协商请求后,还可将该密钥协商请求发送至区块链网络中的共识节点。
S306,共识节点接收第一设备发送的密钥协商请求。
S307,共识节点向第一设备返回密钥验证参数。
在步骤S306-S307中,由于密钥协商请求用于请求共识节点同意第一设备与第二设备协商协同密钥对,并返回密钥验证参数。因此,共识节点在接收到第一设备发送的密钥协商请求后,可调用智能合约生成一个密钥验证参数。然后,可向第一设备返回该密钥验证参数,使得第一设备与第二设备进行协同密钥对的协商,得到第一私钥分量、第二私钥分量以及共享公钥;并使得第一设备采用第一私钥分量和第二设备采用第二私钥分量,对密钥验证参数进行协同签名得到协同签名信息。
S308,第一设备若接收到共识节点返回的密钥验证参数,则与第二设备进行协同密钥对的协商,得到协同密钥对中的第一私钥分量和共享公钥。相应的,第二设备也可通过和第一设备进行协同密钥对的协商,得到协同密钥中的第二私钥分量和共享公钥。
S309,第一设备采用第一私钥分量对密钥验证参数进行签名,得到第一签名分量;并根据第一签名分量和密钥验证参数生成交易数据。
S310,第一设备将交易数据发送至第二设备;相应的,第二设备可接收第一设备发送的交易数据。
S311,第二设备采用第二私钥分量对交易数据进行签名得到第二签名分量,并根据第一签名分量和第二签名分量得到协同签名信息。
S312,第二设备将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点。相应的,共识节点可接收第二设备发送的协商结果数据,并执行步骤S313-314。
S313,共识节点对协商结果数据进行共识。
在具体实现中,共识节点可先解析协商结果数据,得到协同签名信息、所述共享公钥以及密钥验证参数。然后,共识节点可采用共享公钥对协同签名信息的有效性进行校验。若校验通过,则确定协商结果数据通过共识;否则,则确定协商结果数据未通过共识。应理解的是,若区块链网络中只包含一个共识节点,则该共识节点在确定协同签名信息通过有效性校验后,便可直接确定协商结果数据通过共识。若区块链网络中包含多个共识节点,则这多个共识节点可根据自身对协同签名信息的有效性校验结果,先对该协商结果数据是否通过共识进行投票;然后,根据各个共识节点的投票结果(如“支持此交易数据通过共识”或“反对此交易数据通过共识”)来最终确定协商结果数据是否通过共识。若大部分的共识节点(如2/3的共识节点)的投票结果均为“支持此协商结果数据通过共识”,则可确定协商结果数据通过共识。
S314,若共识通过,则共识节点将协商结果数据提交至区块链网络的区块链中。
在具体实施过程中,若协商结果数据通过共识,则可先将协商结果数据打包成目标区块。其中,将协商结果数据打包成目标区块的具体流程如下:共识节点可将协商结果数据添加至目标区块的区块主体中,如图4a所示。可选的,共识节点还可对协商结果数据进行签名,然后将共识节点的签名信息和协商结果数据一并添加至目标区块的区块主体中。其次,共识节点可采用默克尔树算法(Merkle Tree算法)对区块主体中的协商结果数据进行哈希运算,得到协商结果数据的哈希值。然后,共识节点可采用随机算法生成一个随机值值,并采用计算得到的协商结果数据的哈希值、随机值、版本号、父区块哈希值、当前时间戳以及当前难度值组成目标区块的区块头部。并可采用特征值算法(如SHA256算法)对区块头部所包含的内容进行多次哈希运算,得到目标区块的区块头部的哈希值;此处的哈希运算的次数可根据计算难度确定,计算难度越大,哈希运算的次数越多。若目标区块的区块头部的哈希值小于预设阈值,则表明目标区块的区块头部是有效的,此时便可得到有效的目标区块。若目标区块的区块头部的特征值不小于预设阈值,则表明目标区块的区块头部是无效的;此时需要跳转至“采用随机算法生成一个随机值”的步骤,直至生成有效的区块头部。在得到目标区块之后,共识节点便可将目标区块添加至区块链网络的区块链中,如图4b所示。
本发明实施例中的第一设备可先向区块链网络中的共识节点发送密钥协商请求;若接收到共识节点返回的密钥验证参数,则可与第二设备进行协同密钥对的协商,得到第一私钥分量和共享公钥;第二私钥分量由第二设备持有。其次,第一设备和第二设备可分别采用第一私钥分量和第二私钥对密钥验证参数进行协同签名,得到协同签名信息。然后,第二设备可将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点,由共识节点在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中。由此可见,本发明实施例中的第一设备和第二设备分别持有一个私钥分量,可使得任一设备均无法持有完整的私钥,可有效提高协同密钥对的安全性;通过一个密钥验证参数,可实现将协同密钥对的协商过程以及协商结果的上链,可保证协商过程的公开透明以及提高协同密钥对的可靠性和安全性。
基于上述数据处理方法实施例的描述,本发明实施例还公开了一种密钥生成装置。该密钥生成装置可以是运行于第一设备中的一个计算机程序(包括程序代码),该密钥生成装置可以执行图2和图3所示的部分方法步骤。请参见图5,所述密钥生成装置可以运行如下单元:
发送单元501,用于向区块链网络中的共识节点发送密钥协商请求,以请求共识节点同意第一设备与第二设备协商协同密钥对,并返回密钥验证参数;
处理单元502,用于若接收到共识节点返回的密钥验证参数,则与第二设备进行协同密钥对的协商,得到协同密钥对中的第一私钥分量和共享公钥;协同密钥中的第二私钥分量由第二设备持有,共享公钥用于校验采用第一私钥分量和第二私钥分量进行协同签名的协同签名信息的有效性;
处理单元502,还用于采用第一私钥分量对密钥验证参数进行签名,得到第一签名分量;并根据第一签名分量和密钥验证参数生成交易数据;
发送单元501,还用于将交易数据发送至第二设备,使得第二设备采用第二私钥分量对交易数据进行签名得到第二签名分量,并根据第一签名分量和第二签名分量得到协同签名信息,将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点;由共识节点对协商结果数据进行共识,并在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中。
在一种实施方式中,处理单元502在用于与第二设备进行协同密钥对的协商,得到协同密钥对中的第一私钥分量和共享公钥时,具体用于:获取第一设备和第二设备之间约定的随机数,随机数是由第一设备或者第二设备采用随机算法生成的;采用密钥算法根据随机数生成一个协同密钥对,协同密钥对包括一个私钥和一个公钥;将协同密钥对中的公钥作为共享公钥,将协同密钥对中的私钥拆分成第一私钥分量和第二私钥分量;第二私钥分量被发送至第二设备。
在一种实施方式中,处理单元502在用于与第二设备进行协同密钥对的协商,得到协同密钥对中的第一私钥分量和共享公钥时,可具体用于:获取第一设备和第二设备之间约定的随机数,随机数是由第一设备或者第二设备采用随机算法生成的;采用密钥算法根据随机数生成第一私钥分量和第一公钥;接收第二设备发送的第二公钥,并根据第一公钥和第二公钥生成共享公钥;其中,第二公钥是由第二设备采用密钥算法根据随机数生成的。
在一种实施方式中,处理单元502还可用于:生成协商信息,协商信息用于指示:第一设备请求与第二设备协商协同密钥对;以及根据协商信息生成密钥协商通知;发送单元501还可用于:向第二设备发送密钥协商通知;处理单元502还可用于:若接收到第二设备返回的响应信息,则生成密钥协商请求。
在一种实施方式中,处理单元502在用于根据协商信息生成密钥协商通知时,可具体用于:采用第一设备的系统私钥对协商信息进行签名,得到第一设备的系统数字签名;采用协商信息和第一设备的系统数字签名,生成密钥协商通知;其中,响应信息是第二设备同意和第一设备协商协同密钥对,且采用第一设备的系统公钥成功验证第一设备的系统数字签名后发送的。
在一种实施方式中,响应信息携带采用第二设备的系统私钥对密钥协商通知进行签名的系统数字签名;相应的,处理单元502在用于若接收到第二设备返回的响应信息,则生成密钥协商请求时,具体用于:若接收到第二设备返回的响应信息,则获取第二设备的系统公钥,并采用第二设备的系统公钥验证第二设备的系统数字签名;若第二设备的系统数字签名通过验证,则采用第一设备的系统数字签名、第二设备的系统数字签名以及协商信息生成密钥协商请求。
根据本发明的一个实施例,图2或图3所示的方法所涉及的部分步骤可以是由图5所示的密钥生成装置中的各个单元来执行的。例如,图2中所示的步骤S201和S205可由图5中所示的发送单元501来执行,步骤S203和S204可由图5中所示的处理单元502来执行;又如,图3中所示的步骤S301、S302、S305以及S308-S309均可由图5中所示的处理单元502来执行,步骤S303可由图5中所示的发送单元501来执行。
根据本发明的另一个实施例,图5所示的密钥生成装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于密钥生成装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2或图3中所示的相应方法所涉及的部分步骤的计算机程序(包括程序代码),来构造如图5中所示的密钥生成装置设备,以及来实现本发明实施例的密钥生成方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本发明实施例中的第一设备可先向区块链网络中的共识节点发送密钥协商请求;若接收到共识节点返回的密钥验证参数,则可与第二设备进行协同密钥对的协商,得到第一私钥分量和共享公钥;第二私钥分量由第二设备持有。其次,第一设备和第二设备可分别采用第一私钥分量和第二私钥对密钥验证参数进行协同签名,得到协同签名信息。然后,第二设备可将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点,由共识节点在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中。由此可见,本发明实施例中的第一设备和第二设备分别持有一个私钥分量,可使得任一设备均无法持有完整的私钥,可有效提高协同密钥对的安全性;通过一个密钥验证参数,可实现将协同密钥对的协商过程以及协商结果的上链,可保证协商过程的公开透明以及提高协同密钥对的可靠性和安全性。
基于上述数据处理方法实施例的描述,本发明实施例还公开了一种密钥生成装置。该密钥生成装置可以是运行于第二设备中的一个计算机程序(包括程序代码),该密钥生成装置可以执行图2和图3所示的部分方法步骤。请参见图6,所述密钥生成装置可以运行如下单元:
处理单元601,用于与第一设备进行协同密钥对的协商,得到协同密钥对中的第二私钥分量和共享公钥;协同密钥对中的第一私钥分量由第一设备持有,共享公钥用于校验采用第一私钥分量和第二私钥分量进行协同签名的协同签名信息的有效性;
接收单元602,用于接收第一设备发送的交易数据,交易数据是由第一设备采用第一私钥分量对密钥验证参数进行签名得到第一签名分量后,根据第一签名分量和密钥验证参数生成的;密钥验证参数是第一设备向区块链网络中的共识节点发送密钥协商请求后,由共识节点返回给第一设备的;
处理单元601,还用于采用第二私钥分量对交易数据进行签名得到第二签名分量,并根据第一签名分量和第二签名分量得到协同签名信息;
发送单元603,用于将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点;由共识节点对协商结果数据进行共识,并在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中。
在一种实施方式中,处理单元601在用于与第一设备进行协同密钥对的协商,得到协同密钥对中的第二私钥分量和共享公钥时,可具体用于:接收第一设备发送的第二私钥分量和共享公钥;其中,共享公钥是第一设备采用密钥算法根据随机数生成的协同密钥对中的公钥,第二私钥分量是由第一设备对协同密钥对中的私钥进行拆分得到的;随机数是第一设备与第二设备之间约定的,且随机数是由第一设备或者第二设备采用随机算法生成的。
在一种实施方式中,处理单元601在用于与第一设备进行协同密钥对的协商,得到协同密钥对中的第二私钥分量和共享公钥时,可具体用于:获取第一设备和第二设备之间约定的随机数,随机数是由第一设备或者第二设备采用随机算法生成的;采用密钥算法根据随机数生成第二私钥分量和第二公钥;将第二公钥发送至第一设备,由第一设备根据第一公钥和第二公钥生成共享公钥,第一公钥是由第一设备采用密钥算法根据随机数生成的;接收第一设备返回的共享公钥。
在一种实施方式中,接收单元602还可用于:接收第一设备发送的密钥协商通知,密钥协商通知是根据协商信息生成的;协商信息用于指示:第一设备请求与第二设备协商协同密钥对;发送单元603还可用于:若同意和第一设备协商协同密钥对,则向第一设备返回响应信息。
在一种实施方式中,密钥协商通知携带协商信息,以及采用第一设备的系统私钥对协商信息进行签名的系统数字签名;相应的,发送单元603在用于若同意和第一设备协商协同密钥对,则向第一设备返回响应信息时,可具体用于:若同意和第一设备协商协同密钥对,则采用第一设备的系统公钥对第一设备的系统数字签名进行验证;若验证成功,则向第一设备发送响应信息。
在一种实施方式中,发送单元603在用于若验证成功,则向第一设备发送响应信息时,可具体用于:若验证成功,则采用第二设备的系统私钥对密钥协商通知进行签名,得到第二设备的系统数字签名;根据密钥协商通知和第二设备的系统数字签名,生成响应信息;向第一设备发送响应信息。
根据本发明的一个实施例,图2或图3所示的方法所涉及的部分步骤可以是由图5所示的密钥生成装置中的各个单元来执行的。例如,图2中所示的步骤S206可由图6中所示的处理单元601来执行,步骤S207可由图6中所示的发送单元603来执行;又如,图3中所示的S311可由图6中所示的处理单元601来执行,步骤S304和步骤S312可由图6中所示的发送单元603来执行。
根据本发明的另一个实施例,图6所示的密钥生成装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于密钥生成装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2或图3中所示的相应方法所涉及的部分步骤的计算机程序(包括程序代码),来构造如图6中所示的密钥生成装置设备,以及来实现本发明实施例的密钥生成方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本发明实施例中的第一设备和第二设备分别持有一个私钥分量,可使得任一设备均无法持有完整的私钥,可有效提高协同密钥对的安全性;通过一个密钥验证参数,可实现将协同密钥对的协商过程以及协商结果的上链,可保证协商过程的公开透明以及提高协同密钥对的可靠性和安全性。
基于上述数据处理方法实施例的描述,本发明实施例还公开了一种密钥生成装置。该密钥生成装置可以是运行于区块链网络中的共识节点中的一个计算机程序(包括程序代码),该密钥生成装置可以执行图2和图3所示的部分方法步骤。请参见图7,所述密钥生成装置可以运行如下单元:
接收单元701,用于接收第一设备发送的密钥协商请求,密钥协商请求用于请求共识节点同意第一设备与第二设备协商协同密钥对,并返回密钥验证参数;
发送单元702,用于向第一设备返回密钥验证参数,使得第一设备与第二设备进行协同密钥对的协商,得到第一私钥分量、第二私钥分量以及共享公钥;并使得第一设备采用第一私钥分量和第二设备采用第二私钥分量,对密钥验证参数进行协同签名得到协同签名信息;
接收单元701,还用于接收第二设备发送的协商结果数据,协商结果数据携带协同签名信息、共享公钥以及密钥验证参数;
共识单元703,用于对协商结果数据进行共识;若共识通过,则将协商结果数据提交至区块链网络的区块链中。
根据本发明的一个实施例,图2或图3所示的方法所涉及的部分步骤可以是由图7所示的密钥生成装置中的各个单元来执行的。例如,图2中所示的步骤S202可由图7中所示的发送单元702来执行,步骤S208可由图7中所示的共识单元703来执行;又如,图3中所示的步骤S307可由图7中所示的发送单元702来执行,步骤S313-S314可由图7中所示的共识单元703来执行。
根据本发明的另一个实施例,图7所示的密钥生成装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于密钥生成装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2或图3中所示的相应方法所涉及的部分步骤的计算机程序(包括程序代码),来构造如图7中所示的密钥生成装置设备,以及来实现本发明实施例的密钥生成方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本发明实施例中的第一设备和第二设备分别持有一个私钥分量,可使得任一设备均无法持有完整的私钥,可有效提高协同密钥对的安全性;通过一个密钥验证参数,可实现将协同密钥对的协商过程以及协商结果的上链,可保证协商过程的公开透明以及提高协同密钥对的可靠性和安全性。
基于上述方法实施例以及装置实施例的描述,本发明实施例还提供一种计算机设备;该计算机设备可以是上述所提及的第一设备,第二设备或者共识节点。请参见图8,该计算机设备至少包括处理器801、输入接口802、输出接口803以及计算机存储介质804。其中,计算机设备内的处理器801、输入接口802、输出接口803以及计算机存储介质804可通过总线或其他方式连接。计算机存储介质804可以存储在计算机设备的存储器中,所述计算机存储介质804用于存储计算机程序,所述计算机程序包括程序指令,所述处理器201用于执行所述计算机存储介质804存储的程序指令。处理器801(或称CPU(Central ProcessingUnit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
在一个实施例中,若计算机设备为第一设备,则本发明实施例所述的处理器801可以用于被第一设备控制进行一系列的密钥生成处理,包括:向区块链网络中的共识节点发送密钥协商请求,以请求共识节点同意第一设备与第二设备协商协同密钥对,并返回密钥验证参数;若接收到共识节点返回的密钥验证参数,则与第二设备进行协同密钥对的协商,得到协同密钥对中的第一私钥分量和共享公钥;协同密钥中的第二私钥分量由第二设备持有,共享公钥用于校验采用第一私钥分量和第二私钥分量进行协同签名的协同签名信息的有效性;采用第一私钥分量对密钥验证参数进行签名,得到第一签名分量;并根据第一签名分量和密钥验证参数生成交易数据;将交易数据发送至第二设备,使得第二设备采用第二私钥分量对交易数据进行签名得到第二签名分量,并根据第一签名分量和第二签名分量得到协同签名信息,将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点;由共识节点对协商结果数据进行共识,并在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中,等等。
在一个实施例中,若计算机设备为第二设备,则本发明实施例所述的处理器801可以用于被第二设备控制进行一系列的密钥生成处理,包括:与第一设备进行协同密钥对的协商,得到协同密钥对中的第二私钥分量和共享公钥;协同密钥对中的第一私钥分量由第一设备持有,共享公钥用于校验采用第一私钥分量和第二私钥分量进行协同签名的协同签名信息的有效性;接收第一设备发送的交易数据,交易数据是由第一设备采用第一私钥分量对密钥验证参数进行签名得到第一签名分量后,根据第一签名分量和密钥验证参数生成的;密钥验证参数是第一设备向区块链网络中的共识节点发送密钥协商请求后,由共识节点返回给第一设备的;采用第二私钥分量对交易数据进行签名得到第二签名分量,并根据第一签名分量和第二签名分量得到协同签名信息;将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点;由共识节点对协商结果数据进行共识,并在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中,等等。
在一个实施例中,若所述计算机设备为共识节点,则本发明实施例所述的处理器801可以用于被共识节点控制进行一系列的密钥生成处理,包括:接收第一设备发送的密钥协商请求,密钥协商请求用于请求共识节点同意第一设备与第二设备协商协同密钥对,并返回密钥验证参数;向第一设备返回密钥验证参数,使得第一设备与第二设备进行协同密钥对的协商,得到第一私钥分量、第二私钥分量以及共享公钥;并使得第一设备采用第一私钥分量和第二设备采用第二私钥分量,对密钥验证参数进行协同签名得到协同签名信息;接收第二设备发送的协商结果数据,协商结果数据携带协同签名信息、共享公钥以及密钥验证参数;对协商结果数据进行共识;若共识通过,则将协商结果数据提交至区块链网络的区块链中。
本发明实施例还提供了一种计算机存储介质(Memory),该计算机存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器801加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,其还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,若计算机设备为第一设备,则该计算机存储介质中可存储有一条或多条第一指令;且可由处理器801加载并执行计算机存储介质中存放的一条或多条第一指令,以实现上述有关密钥生成方法实施例中的相应步骤;具体实现中,计算机存储介质中的一条或多第一条指令由处理器801加载并执行如下步骤:
第一设备向区块链网络中的共识节点发送密钥协商请求,以请求共识节点同意第一设备与第二设备协商协同密钥对,并返回密钥验证参数;
若接收到共识节点返回的密钥验证参数,则与第二设备进行协同密钥对的协商,得到协同密钥对中的第一私钥分量和共享公钥;协同密钥中的第二私钥分量由第二设备持有,共享公钥用于校验采用第一私钥分量和第二私钥分量进行协同签名的协同签名信息的有效性;
采用第一私钥分量对密钥验证参数进行签名,得到第一签名分量;并根据第一签名分量和密钥验证参数生成交易数据;
将交易数据发送至第二设备,使得第二设备采用第二私钥分量对交易数据进行签名得到第二签名分量,并根据第一签名分量和第二签名分量得到协同签名信息,将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点;由共识节点对协商结果数据进行共识,并在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中。
在一种实施方式中,在与第二设备进行协同密钥对的协商,得到协同密钥对中的第一私钥分量和共享公钥时,该一条或多条第一指令由处理器801加载并具体执行:获取第一设备和第二设备之间约定的随机数,随机数是由第一设备或者第二设备采用随机算法生成的;采用密钥算法根据随机数生成一个协同密钥对,协同密钥对包括一个私钥和一个公钥;将协同密钥对中的公钥作为共享公钥,并将协同密钥对中的私钥拆分成第一私钥分量和第二私钥分量;第二私钥分量被发送至第二设备。
在一种实施方式中,在与第二设备进行协同密钥对的协商,得到协同密钥对中的第一私钥分量和共享公钥时,该一条或多条第一指令由处理器801加载并具体执行:获取第一设备和第二设备之间约定的随机数,随机数是由第一设备或者第二设备采用随机算法生成的;采用密钥算法根据随机数生成第一私钥分量和第一公钥;接收第二设备发送的第二公钥,并根据第一公钥和第二公钥生成共享公钥;其中,第二公钥是由第二设备采用密钥算法根据随机数生成的。
在一种实施方式中,该一条或多条第一指令还可由处理器801加载并具体执行:生成协商信息,协商信息用于指示:第一设备请求与第二设备协商协同密钥对;以及根据协商信息生成密钥协商通知;向第二设备发送密钥协商通知;若接收到第二设备返回的响应信息,则生成密钥协商请求。
在一种实施方式中,在根据协商信息生成密钥协商通知时,该一条或多条第一指令由处理器801加载并具体执行:采用第一设备的系统私钥对协商信息进行签名,得到第一设备的系统数字签名;采用协商信息和第一设备的系统数字签名,生成密钥协商通知;其中,响应信息是第二设备同意和第一设备协商协同密钥对,且采用第一设备的系统公钥成功验证第一设备的系统数字签名后发送的。
在一种实施方式中,响应信息携带采用第二设备的系统私钥对密钥协商通知进行签名的系统数字签名;相应的,在若接收到第二设备返回的响应信息,则生成密钥协商请求时,该一条或多条第一指令由处理器801加载并具体执行:若接收到第二设备返回的响应信息,则获取第二设备的系统公钥,并采用第二设备的系统公钥验证第二设备的系统数字签名;若第二设备的系统数字签名通过验证,则采用第一设备的系统数字签名、第二设备的系统数字签名以及协商信息生成密钥协商请求。
在一个实施例中,若计算机设备为第二设备,则该计算机存储介质中可存储有一条或多条第二指令;且可由处理器801加载并执行计算机存储介质中存放的一条或多条第二指令,以实现上述有关密钥生成方法实施例中的相应步骤;具体实现中,计算机存储介质中的一条或多第二条指令由处理器801加载并执行如下步骤:
第二设备与第一设备进行协同密钥对的协商,得到协同密钥对中的第二私钥分量和共享公钥;协同密钥对中的第一私钥分量由第一设备持有,共享公钥用于校验采用第一私钥分量和第二私钥分量进行协同签名的协同签名信息的有效性;
接收第一设备发送的交易数据,交易数据是由第一设备采用第一私钥分量对密钥验证参数进行签名得到第一签名分量后,根据第一签名分量和密钥验证参数生成的;密钥验证参数是第一设备向区块链网络中的共识节点发送密钥协商请求后,由共识节点返回给第一设备的;
采用第二私钥分量对交易数据进行签名得到第二签名分量,并根据第一签名分量和第二签名分量得到协同签名信息;
将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点;由共识节点对协商结果数据进行共识,并在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中。
在一种实施方式中,在与第一设备进行协同密钥对的协商,得到协同密钥对中的第二私钥分量和共享公钥时,一条或多条第二指令由处理器801加载并具体执行:接收第一设备发送的第二私钥分量和共享公钥;其中,共享公钥是第一设备采用密钥算法根据随机数生成的协同密钥对中的公钥,第二私钥分量是由第一设备对协同密钥对中的私钥进行拆分得到的;随机数是第一设备与第二设备之间约定的,且随机数是由第一设备或者第二设备采用随机算法生成的。
在一种实施方式中,在与第一设备进行协同密钥对的协商,得到协同密钥对中的第二私钥分量和共享公钥时,该一条或多条第二指令由处理器801加载并具体执行:获取第一设备和第二设备之间约定的随机数,随机数是由第一设备或者第二设备采用随机算法生成的;采用密钥算法根据随机数生成第二私钥分量和第二公钥;将第二公钥发送至第一设备,由第一设备根据第一公钥和第二公钥生成共享公钥,第一公钥是由第一设备采用密钥算法根据随机数生成的;接收第一设备返回的共享公钥。
在一种实施方式中,该一条或多条第二指令还可由处理器801加载并具体执行:接收第一设备发送的密钥协商通知,密钥协商通知是根据协商信息生成的;协商信息用于指示:第一设备请求与第二设备协商协同密钥对;若同意和第一设备协商协同密钥对,则向第一设备返回响应信息。
在一种实施方式中,密钥协商通知携带协商信息,以及采用第一设备的系统私钥对协商信息进行签名的系统数字签名;相应的,在若同意和第一设备协商协同密钥对,则向第一设备返回响应信息时,该一条或多条第二指令由处理器801加载并具体执行:若同意和第一设备协商协同密钥对,则采用第一设备的系统公钥对第一设备的系统数字签名进行验证;若验证成功,则向第一设备发送响应信息。
在一种实施方式中,在若验证成功,则向第一设备发送响应信息时,该一条或多条第二指令由处理器801加载并具体执行:若验证成功,则采用第二设备的系统私钥对密钥协商通知进行签名,得到第二设备的系统数字签名;根据密钥协商通知和第二设备的系统数字签名,生成响应信息;向第一设备发送响应信息。
在一个实施例中,若计算机设备为共识节点,则该计算机存储介质中可存储有一条或多条第三指令;且可由处理器801加载并执行计算机存储介质中存放的一条或多条第三指令,以实现上述有关密钥生成方法实施例中的相应步骤;具体实现中,计算机存储介质中的一条或多第三条指令由处理器801加载并执行如下步骤:
共识节点接收第一设备发送的密钥协商请求,密钥协商请求用于请求共识节点同意第一设备与第二设备协商协同密钥对,并返回密钥验证参数;
向第一设备返回密钥验证参数,使得第一设备与第二设备进行协同密钥对的协商,得到第一私钥分量、第二私钥分量以及共享公钥;并使得第一设备采用第一私钥分量和第二设备采用第二私钥分量,对密钥验证参数进行协同签名得到协同签名信息;
接收第二设备发送的协商结果数据,协商结果数据携带协同签名信息、共享公钥以及密钥验证参数;
对协商结果数据进行共识;若共识通过,则将协商结果数据提交至区块链网络的区块链中。
本发明实施例中的第一设备可先向区块链网络中的共识节点发送密钥协商请求;若接收到共识节点返回的密钥验证参数,则可与第二设备进行协同密钥对的协商,得到第一私钥分量和共享公钥;第二私钥分量由第二设备持有。其次,第一设备和第二设备可分别采用第一私钥分量和第二私钥对密钥验证参数进行协同签名,得到协同签名信息。然后,第二设备可将携带协同签名信息、共享公钥以及密钥验证参数的协商结果数据发送至共识节点,由共识节点在协商结果数据通过共识后,将协商结果数据提交至区块链网络的区块链中。由此可见,本发明实施例中的第一设备和第二设备分别持有一个私钥分量,可使得任一设备均无法持有完整的私钥,可有效提高协同密钥对的安全性;通过一个密钥验证参数,可实现将协同密钥对的协商过程以及协商结果的上链,可保证协商过程的公开透明以及提高协同密钥对的可靠性和安全性。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (15)
1.一种基于区块链网络的密钥生成方法,其特征在于,包括:
第一设备向区块链网络中的共识节点发送密钥协商请求,以请求所述共识节点同意所述第一设备与第二设备协商协同密钥对,并返回密钥验证参数;
若接收到所述共识节点返回的密钥验证参数,则与所述第二设备进行所述协同密钥对的协商,得到所述协同密钥对中的第一私钥分量和共享公钥;所述协同密钥中的第二私钥分量由所述第二设备持有,所述共享公钥用于校验采用所述第一私钥分量和所述第二私钥分量进行协同签名的协同签名信息的有效性;
采用所述第一私钥分量对所述密钥验证参数进行签名,得到第一签名分量;并根据所述第一签名分量和所述密钥验证参数生成交易数据;
将所述交易数据发送至所述第二设备,使得所述第二设备采用所述第二私钥分量对所述交易数据进行签名得到第二签名分量,并根据所述第一签名分量和所述第二签名分量得到协同签名信息,将携带所述协同签名信息、所述共享公钥以及所述密钥验证参数的协商结果数据发送至所述共识节点;由所述共识节点对所述协商结果数据进行共识,并在所述协商结果数据通过共识后,将所述协商结果数据提交至所述区块链网络的区块链中。
2.如权利要求1所述的方法,其特征在于,所述与所述第二设备进行所述协同密钥对的协商,得到所述协同密钥对中的第一私钥分量和共享公钥,包括:
获取所述第一设备和所述第二设备之间约定的随机数,所述随机数是由所述第一设备或者所述第二设备采用随机算法生成的;
采用密钥算法根据所述随机数生成一个协同密钥对,所述协同密钥对包括一个私钥和一个公钥;
将所述协同密钥对中的公钥作为共享公钥,并将所述协同密钥对中的私钥拆分成第一私钥分量和所述第二私钥分量;所述第二私钥分量被发送至所述第二设备。
3.如权利要求1所述的方法,其特征在于,所述与所述第二设备进行所述协同密钥对的协商,得到所述协同密钥对中的第一私钥分量和共享公钥,包括:
获取所述第一设备和所述第二设备之间约定的随机数,所述随机数是由所述第一设备或者所述第二设备采用随机算法生成的;
采用密钥算法根据所述随机数生成第一私钥分量和第一公钥;
接收所述第二设备发送的第二公钥,并根据所述第一公钥和所述第二公钥生成共享公钥;其中,所述第二公钥是由所述第二设备采用密钥算法根据所述随机数生成的。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
生成协商信息,所述协商信息用于指示:所述第一设备请求与所述第二设备协商协同密钥对;
根据所述协商信息生成密钥协商通知,并向所述第二设备发送所述密钥协商通知;
若接收到所述第二设备返回的响应信息,则生成密钥协商请求。
5.如权利要求4所述的方法,其特征在于,所述根据所述协商信息生成密钥协商通知,包括:
采用所述第一设备的系统私钥对所述协商信息进行签名,得到所述第一设备的系统数字签名;
采用所述协商信息和所述第一设备的系统数字签名,生成密钥协商通知;
其中,所述响应信息是所述第二设备同意和所述第一设备协商所述协同密钥对,且采用所述第一设备的系统公钥成功验证所述第一设备的系统数字签名后发送的。
6.如权利要求5所述的方法,其特征在于,所述响应信息携带采用所述第二设备的系统私钥对所述密钥协商通知进行签名的系统数字签名;所述若接收到所述第二设备返回的响应信息,则生成密钥协商请求,包括:
若接收到所述第二设备返回的响应信息,则获取所述第二设备的系统公钥,并采用所述第二设备的系统公钥验证所述第二设备的系统数字签名;
若所述第二设备的系统数字签名通过验证,则采用所述第一设备的系统数字签名、所述第二设备的系统数字签名以及所述协商信息生成密钥协商请求。
7.一种基于区块链网络的密钥生成方法,其特征在于,包括:
第二设备与所述第一设备进行协同密钥对的协商,得到所述协同密钥对中的第二私钥分量和共享公钥;所述协同密钥对中的第一私钥分量由所述第一设备持有,所述共享公钥用于校验采用所述第一私钥分量和所述第二私钥分量进行协同签名的协同签名信息的有效性;
接收所述第一设备发送的交易数据,所述交易数据是由所述第一设备采用所述第一私钥分量对密钥验证参数进行签名得到第一签名分量后,根据所述第一签名分量和密钥验证参数生成的;所述密钥验证参数是所述第一设备向所述区块链网络中的共识节点发送密钥协商请求后,由所述共识节点返回给所述第一设备的;
采用所述第二私钥分量对所述交易数据进行签名得到第二签名分量,并根据所述第一签名分量和所述第二签名分量得到协同签名信息;
将携带所述协同签名信息、所述共享公钥以及所述密钥验证参数的协商结果数据发送至所述共识节点;由所述共识节点对所述协商结果数据进行共识,并在所述协商结果数据通过共识后,将所述协商结果数据提交至所述区块链网络的区块链中。
8.如权利要求7所述的方法,其特征在于,所述与所述第一设备进行协同密钥对的协商,得到所述协同密钥对中的第二私钥分量和共享公钥,包括:
接收所述第一设备发送的第二私钥分量和共享公钥;
其中,所述共享公钥是所述第一设备采用密钥算法根据随机数生成的协同密钥对中的公钥,所述第二私钥分量是由所述第一设备对所述协同密钥对中的私钥进行拆分得到的;所述随机数是第一设备与第二设备之间约定的,且所述随机数是由所述第一设备或者所述第二设备采用随机算法生成的。
9.如权利要求7所述的方法,其特征在于,所述与所述第一设备进行协同密钥对的协商,得到所述协同密钥对中的第二私钥分量和共享公钥,包括:
获取所述第一设备和所述第二设备之间约定的随机数,所述随机数是由所述第一设备或者所述第二设备采用随机算法生成的;
采用密钥算法根据所述随机数生成第二私钥分量和第二公钥;
将所述第二公钥发送至所述第一设备,由所述第一设备根据第一公钥和所述第二公钥生成共享公钥,所述第一公钥是由所述第一设备采用密钥算法根据所述随机数生成的;
接收所述第一设备返回的所述共享公钥。
10.如权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述第一设备发送的密钥协商通知,所述密钥协商通知是根据协商信息生成的;所述协商信息用于指示:所述第一设备请求与所述第二设备协商协同密钥对;
若同意和所述第一设备协商所述协同密钥对,则向所述第一设备返回响应信息。
11.如权利要求10所述的方法,其特征在于,所述密钥协商通知携带所述协商信息,以及采用所述第一设备的系统私钥对所述协商信息进行签名的系统数字签名;所述若同意和所述第一设备协商所述协同密钥对,则向所述第一设备返回响应信息,包括:
若同意和所述第一设备协商所述协同密钥对,则采用第一设备的系统公钥对所述第一设备的系统数字签名进行验证;
若验证成功,则向所述第一设备发送响应信息。
12.如权利要求11所述的方法,其特征在于,所述若验证成功,则向所述第一设备发送响应信息,包括:
若验证成功,则采用所述第二设备的系统私钥对所述密钥协商通知进行签名,得到所述第二设备的系统数字签名;
根据所述密钥协商通知和所述第二设备的系统数字签名,生成响应信息;
向所述第一设备发送响应信息。
13.一种基于区块链网络的密钥生成方法,其特征在于,包括:
共识节点接收第一设备发送的密钥协商请求,所述密钥协商请求用于请求所述共识节点同意所述第一设备与第二设备协商协同密钥对,并返回密钥验证参数;
向所述第一设备返回所述密钥验证参数,使得所述第一设备与所述第二设备进行协同密钥对的协商,得到第一私钥分量、第二私钥分量以及共享公钥;并使得所述第一设备采用所述第一私钥分量和所述第二设备采用所述第二私钥分量,对所述密钥验证参数进行协同签名得到协同签名信息;
接收所述第二设备发送的协商结果数据,所述协商结果数据携带所述协同签名信息、所述共享公钥以及所述密钥验证参数;
对所述协商结果数据进行共识;若共识通过,则将所述协商结果数据提交至所述区块链网络的区块链中。
14.一种计算机设备,包括输入接口和输出接口,其特征在于,所述计算机设备为第一设备、第二设备或者共识节点;所述计算机设备还包括:
处理器,适于实现一条或多条指令;以及,计算机存储介质;
若所述计算机设备为所述第一设备,则所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由所述处理器加载并执行如权利要求1-6任一项所述的基于区块链网络的密钥生成方法;
若所述计算机设备为所述第二设备,则所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行如权利要求7-12任一项所述的基于区块链网络的密钥生成方法;
若所述计算机设备为所述共识节点,则所述计算机存储介质存储有一条或多条第三指令,所述一条或多条第三指令适于由所述处理器加载并执行如权利要求13所述的基于区块链网络的密钥生成方法。
15.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由所述处理器加载并执行如权利要求1-6任一项所述的基于区块链网络的密钥生成方法;
或者,所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行如权利要求7-12任一项所述的基于区块链网络的密钥生成方法;
或者,所述计算机存储介质存储有一条或多条第三指令,所述一条或多条第三指令适于由所述处理器加载并执行如权利要求13所述的基于区块链网络的密钥生成方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010277116.5A CN111490878B (zh) | 2020-04-09 | 2020-04-09 | 密钥生成方法、装置、设备及介质 |
PCT/CN2021/077374 WO2021203853A1 (zh) | 2020-04-09 | 2021-02-23 | 密钥生成方法、装置、设备及介质 |
US17/720,274 US20220311607A1 (en) | 2020-04-09 | 2022-04-13 | Key generation method and apparatus, device, and medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010277116.5A CN111490878B (zh) | 2020-04-09 | 2020-04-09 | 密钥生成方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111490878A true CN111490878A (zh) | 2020-08-04 |
CN111490878B CN111490878B (zh) | 2021-07-27 |
Family
ID=71812704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010277116.5A Active CN111490878B (zh) | 2020-04-09 | 2020-04-09 | 密钥生成方法、装置、设备及介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220311607A1 (zh) |
CN (1) | CN111490878B (zh) |
WO (1) | WO2021203853A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112184441A (zh) * | 2020-09-29 | 2021-01-05 | 平安科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN112383395A (zh) * | 2020-12-11 | 2021-02-19 | 海光信息技术股份有限公司 | 密钥协商方法及装置 |
CN113206851A (zh) * | 2021-05-06 | 2021-08-03 | 杭州复杂美科技有限公司 | 平行链共识方法、计算机设备和存储介质 |
WO2021203853A1 (zh) * | 2020-04-09 | 2021-10-14 | 腾讯科技(深圳)有限公司 | 密钥生成方法、装置、设备及介质 |
CN114070640A (zh) * | 2021-11-25 | 2022-02-18 | 航天新通科技有限公司 | 一种安全通信方法及系统 |
CN114650136A (zh) * | 2022-05-18 | 2022-06-21 | 杭州天谷信息科技有限公司 | 一种基于混合云的电子签名方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688187B (zh) * | 2021-10-26 | 2022-02-08 | 杭州宇链科技有限公司 | 危化安全生产数字化区块链监管平台 |
CN114362946B (zh) * | 2022-03-10 | 2022-06-07 | 北京得瑞领新科技有限公司 | 密钥协商方法及系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105634742A (zh) * | 2015-12-28 | 2016-06-01 | 飞天诚信科技股份有限公司 | 一种协商会话密钥的方法及智能密钥设备 |
CN106533675A (zh) * | 2016-12-19 | 2017-03-22 | 北京洋浦伟业科技发展有限公司 | 数字签名方法及系统 |
CN107204846A (zh) * | 2017-05-31 | 2017-09-26 | 北京中金国信科技有限公司 | 数字签名生成方法、系统、节点模块及共同随机数协商确定方法 |
CN107959566A (zh) * | 2016-10-14 | 2018-04-24 | 阿里巴巴集团控股有限公司 | 量子数据密钥协商系统及量子数据密钥协商方法 |
CN109005028A (zh) * | 2018-11-02 | 2018-12-14 | 美的集团股份有限公司 | 密钥协商方法、云服务器、设备、存储介质以及系统 |
CN109246129A (zh) * | 2018-10-12 | 2019-01-18 | 天津赢达信科技有限公司 | 一种可验证客户端身份的sm2协同签名方法及系统 |
CN109861816A (zh) * | 2019-02-22 | 2019-06-07 | 矩阵元技术(深圳)有限公司 | 数据处理方法和装置 |
CN109872155A (zh) * | 2019-02-22 | 2019-06-11 | 矩阵元技术(深圳)有限公司 | 数据处理方法和装置 |
CN109934582A (zh) * | 2019-02-25 | 2019-06-25 | 矩阵元技术(深圳)有限公司 | 数字货币交易数据处理方法、服务器、客户端及系统 |
US10402823B1 (en) * | 2018-12-30 | 2019-09-03 | Alexander Vladimirovich Vlasov | System for exchanging private keys for mutual settlements between users of a cryptocurrency outside blockchains |
CN110278088A (zh) * | 2019-07-18 | 2019-09-24 | 广州安研信息科技有限公司 | 一种sm2协同签名方法 |
US20200074464A1 (en) * | 2017-05-15 | 2020-03-05 | nChain Holdings Limited | Secure off-chain blockchain transactions |
CN110932850A (zh) * | 2019-11-29 | 2020-03-27 | 杭州安恒信息技术股份有限公司 | 通信加密方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3032282A1 (en) * | 2016-07-29 | 2018-02-01 | Magic Leap, Inc. | Secure exchange of cryptographically signed records |
CN110546664A (zh) * | 2017-04-11 | 2019-12-06 | 区块链控股有限公司 | 区块链之间的安全转移 |
CN107623569A (zh) * | 2017-09-30 | 2018-01-23 | 矩阵元技术(深圳)有限公司 | 基于秘密共享技术的区块链密钥托管和恢复方法、装置 |
US20200082405A1 (en) * | 2018-09-12 | 2020-03-12 | NEC Laboratories Europe GmbH | Method and system for client support in a blockchain network |
DE102018122997A1 (de) * | 2018-09-19 | 2020-03-19 | Infineon Technologies Ag | Blockkettenentität, kettenexterne entität, zertifizierungsvorrichtung für blockkettenoperationen und verfahren zum durchführen einer kooperation zwischen einer blockkettenentität und einer kettenexternen entität |
US10790979B1 (en) * | 2019-08-29 | 2020-09-29 | Alibaba Group Holding Limited | Providing high availability computing service by issuing a certificate |
CN111489159B (zh) * | 2020-04-09 | 2024-03-15 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及介质 |
CN111490878B (zh) * | 2020-04-09 | 2021-07-27 | 腾讯科技(深圳)有限公司 | 密钥生成方法、装置、设备及介质 |
-
2020
- 2020-04-09 CN CN202010277116.5A patent/CN111490878B/zh active Active
-
2021
- 2021-02-23 WO PCT/CN2021/077374 patent/WO2021203853A1/zh active Application Filing
-
2022
- 2022-04-13 US US17/720,274 patent/US20220311607A1/en active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105634742A (zh) * | 2015-12-28 | 2016-06-01 | 飞天诚信科技股份有限公司 | 一种协商会话密钥的方法及智能密钥设备 |
CN107959566A (zh) * | 2016-10-14 | 2018-04-24 | 阿里巴巴集团控股有限公司 | 量子数据密钥协商系统及量子数据密钥协商方法 |
CN106533675A (zh) * | 2016-12-19 | 2017-03-22 | 北京洋浦伟业科技发展有限公司 | 数字签名方法及系统 |
US20200074464A1 (en) * | 2017-05-15 | 2020-03-05 | nChain Holdings Limited | Secure off-chain blockchain transactions |
CN107204846A (zh) * | 2017-05-31 | 2017-09-26 | 北京中金国信科技有限公司 | 数字签名生成方法、系统、节点模块及共同随机数协商确定方法 |
CN109246129A (zh) * | 2018-10-12 | 2019-01-18 | 天津赢达信科技有限公司 | 一种可验证客户端身份的sm2协同签名方法及系统 |
CN109005028A (zh) * | 2018-11-02 | 2018-12-14 | 美的集团股份有限公司 | 密钥协商方法、云服务器、设备、存储介质以及系统 |
US10402823B1 (en) * | 2018-12-30 | 2019-09-03 | Alexander Vladimirovich Vlasov | System for exchanging private keys for mutual settlements between users of a cryptocurrency outside blockchains |
CN109872155A (zh) * | 2019-02-22 | 2019-06-11 | 矩阵元技术(深圳)有限公司 | 数据处理方法和装置 |
CN109861816A (zh) * | 2019-02-22 | 2019-06-07 | 矩阵元技术(深圳)有限公司 | 数据处理方法和装置 |
CN109934582A (zh) * | 2019-02-25 | 2019-06-25 | 矩阵元技术(深圳)有限公司 | 数字货币交易数据处理方法、服务器、客户端及系统 |
CN110278088A (zh) * | 2019-07-18 | 2019-09-24 | 广州安研信息科技有限公司 | 一种sm2协同签名方法 |
CN110932850A (zh) * | 2019-11-29 | 2020-03-27 | 杭州安恒信息技术股份有限公司 | 通信加密方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021203853A1 (zh) * | 2020-04-09 | 2021-10-14 | 腾讯科技(深圳)有限公司 | 密钥生成方法、装置、设备及介质 |
CN112184441A (zh) * | 2020-09-29 | 2021-01-05 | 平安科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN112184441B (zh) * | 2020-09-29 | 2024-01-19 | 平安科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN112383395A (zh) * | 2020-12-11 | 2021-02-19 | 海光信息技术股份有限公司 | 密钥协商方法及装置 |
CN112383395B (zh) * | 2020-12-11 | 2024-01-23 | 海光信息技术股份有限公司 | 密钥协商方法及装置 |
CN113206851A (zh) * | 2021-05-06 | 2021-08-03 | 杭州复杂美科技有限公司 | 平行链共识方法、计算机设备和存储介质 |
CN114070640A (zh) * | 2021-11-25 | 2022-02-18 | 航天新通科技有限公司 | 一种安全通信方法及系统 |
CN114070640B (zh) * | 2021-11-25 | 2024-02-06 | 航天新通科技有限公司 | 一种安全通信方法及系统 |
CN114650136A (zh) * | 2022-05-18 | 2022-06-21 | 杭州天谷信息科技有限公司 | 一种基于混合云的电子签名方法及装置 |
CN114650136B (zh) * | 2022-05-18 | 2022-10-04 | 杭州天谷信息科技有限公司 | 一种基于混合云的电子签名方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111490878B (zh) | 2021-07-27 |
WO2021203853A1 (zh) | 2021-10-14 |
US20220311607A1 (en) | 2022-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111490878B (zh) | 密钥生成方法、装置、设备及介质 | |
CN111489159B (zh) | 数据处理方法、装置、计算机设备及介质 | |
US10878248B2 (en) | Media authentication using distributed ledger | |
CN112288097A (zh) | 联邦学习数据处理方法、装置、计算机设备及存储介质 | |
US20220239496A1 (en) | Blockchain consensus method, device and system | |
CN110177124B (zh) | 基于区块链的身份认证方法及相关设备 | |
CN113794694B (zh) | 一种基于可靠广播的二元共识方法及装置 | |
CN110740044B (zh) | 数据处理方法、装置、系统和存储介质 | |
CN110149323B (zh) | 一种具有千万级tps合约处理能力的处理装置 | |
CN105577602A (zh) | 基于开放的应用程序编程接口的数据推送方法和装置 | |
CN111767569A (zh) | 区块链的访问授权方法及节点 | |
CN111461799B (zh) | 数据处理方法、装置、计算机设备及介质 | |
CN110661853A (zh) | 一种数据代理方法、装置、计算机设备及可读存储介质 | |
CN113783708A (zh) | 一种基于可靠广播的可再投票二元共识方法及装置 | |
CN114679268B (zh) | 无人机间相互认证与密钥协商的方法、可存储介质 | |
JP6034368B2 (ja) | 認証情報処理 | |
CN111597537A (zh) | 基于区块链网络的证书签发方法、相关设备及介质 | |
CN113794566B (zh) | 一种可再投票的二元共识方法、装置、及存储介质 | |
CN113051622A (zh) | 索引构建方法、装置、设备和存储介质 | |
CN109587241B (zh) | 一种数据共享方法及其设备 | |
CN116561820B (zh) | 可信数据处理方法及相关装置 | |
CN116743377B (zh) | 基于区块链密钥的数据处理方法、装置、设备及存储介质 | |
CN117034370B (zh) | 基于区块链网络的数据处理方法及相关设备 | |
CN111177780B (zh) | 安全验证方法、装置、终端设备及计算机可读存储介质 | |
CN112437052B (zh) | 用于处理信息的方法、装置、电子设备和计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40027988 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |