CN116743354A - 密钥生成方法、装置、区块链节点和计算机可读存储介质 - Google Patents
密钥生成方法、装置、区块链节点和计算机可读存储介质 Download PDFInfo
- Publication number
- CN116743354A CN116743354A CN202210209900.1A CN202210209900A CN116743354A CN 116743354 A CN116743354 A CN 116743354A CN 202210209900 A CN202210209900 A CN 202210209900A CN 116743354 A CN116743354 A CN 116743354A
- Authority
- CN
- China
- Prior art keywords
- target
- private key
- node
- blockchain
- block chain
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000004422 calculation algorithm Methods 0.000 claims description 64
- 238000012795 verification Methods 0.000 claims description 62
- 238000004590 computer program Methods 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 16
- 238000012216 screening Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 16
- 230000008520 organization Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
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
-
- 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/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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
技术领域
本申请涉及区块链技术领域,具体涉及一种密钥生成方法、装置、区块链节点和计算机可读存储介质。
背景技术
区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、公开透明等特点,所以区块链的应用越来越广泛。目前,为了保证安全,在使用区块链的过程中,会对用户的身份进行认证。
对用户的身份进行认证的方法为,通过密钥生成中心生成用户对应的私钥,然后在用户使用区块链的过程中,基于该私钥对用户的身份进行验证。然而,通过密钥生成中心生成私钥,这不符合区块链的去中心化的特点。
发明内容
本申请实施例提供一种密钥生成方法、装置、区块链节点和计算机可读存储介质,可以解决由于区块链中通过密钥生成中心生成私钥,导致不能真正去中心化的技术问题。
一种密钥生成方法,包括:
获取区块链系统的系统主私钥,上述区块链系统包括预设数量的区块链节点;
将上述系统主私钥分成与上述预设数量匹配的初始子私钥;
把各个上述初始子私钥分发至上述区块链节点中的目标区块链节点;
通过各个上述目标区块链节点及其对应的初始子私钥生成目标私钥。
相应地,本申请实施例提供一种密钥生成装置,包括:
获取模块,用于获取区块链系统的系统主私钥,上述区块链系统包括预设数量的区块链节点;
分成模块,用于将上述系统主私钥分成与上述预设数量匹配的初始子私钥;
分发模块,用于把各个上述初始子私钥分发至上述区块链节点中的目标区块链节点;
生成模块,用于通过各个上述目标区块链节点及其对应的初始子私钥生成目标私钥。
可选地,生成模块具体用于执行:
获取密钥生成请求;
确定所述区块链系统中一目标区块链节点为起始目标区块链节点,以及将所述起始目标区块链节点的下一个目标区块链节点作为当前目标区块链节点;
通过上述起始目标区块链节点,根据上述起始目标区块链节点对应的初始子私钥及上述密钥生成请求生成第一候选私钥;
通过上述起始目标区块链节点,将上述第一候选私钥发送至上述当前目标区块链节点,并通过上述当前目标区块链节点根据上述当前目标区块链节点对应的初始子私钥及上述第一候选私钥生成第二候选私钥;
若上述当前目标区块链节点为上述目标区块链节点中最后一个区块链节点,则将上述第二候选私钥作为目标私钥;
若上述当前目标区块链节点不是上述目标区块链节点中最后一个区块链节点,则将上述当前目标区块链节点作为上述起始目标区块链节点,将上述第二候选私钥作为上述第一候选私钥,将上述当前目标区块链节点的下一个目标区块链节点作为上述当前目标区块链节点,并返回执行上述通过上述起始目标区块链节点,将上述第一候选私钥发送至上述目标区块链节点中当前目标区块链节点的步骤。
可选地,上述密钥生成请求中包括身份信息。
相应地,生成模块具体用于执行:
根据预设加密签名算法确定预设私钥计算公式;
通过上述起始目标区块链节点,将上述起始目标区块链节点对应的初始子私钥及上述身份信息代入上述预设私钥计算公式中进行运算,得到第一候选私钥;
通过上述当前目标区块链节点将上述当前目标区块链节点对应的初始子私钥及上述第一候选私钥代入上述预设私钥计算公式中进行运算,得到第二候选私钥。
可选地,上述预设加密签名算法包括无证书国密算法,上述预设私钥计算公式包括第一预设公式、第二预设公式、第三预设公式以及第四预设公式。
相应地,生成模块具体用于执行:
通过上述起始目标区块链节点,将上述起始目标区块链节点对应的初始子私钥代入上述第一预设公式中进行运算,得到第一候选子私钥;
将上述起始目标区块链节点对应的初始子私钥及上述身份信息代入上述第二设公式中进行运算,得到第二候选子私钥;
根据上述第一候选子私钥和上述第二候选子私钥确定上述第一候选私钥;
通过上述当前目标区块链节点将上述当前目标区块链节点对应的初始子私钥及上述第一候选子私钥代入上述第三预设公式中进行运算,得到第三候选子私钥,将上述当前目标区块链节点对应的初始子私钥及上述第二候选子私钥代入上述第四预设公式中进行运算,得到第四候选子私钥,并根据上述第三候选子私钥和上述第四候选子私钥确定第二候选私钥。
可选地,生成模块具体用于执行:
按照预设规则对各个上述目标区块链节点进行排列,得到排列后目标区块链节点;
从上述排列后目标区块链节点中筛选出起始目标区块链节点;
将所述起始目标区块链节点,在所述排列后目标区块链节点中的下一个目标区块链节点作为当前目标区块链节点;
若上述当前目标区块链节点不是上述目标区块链节点中最后一个区块链节点,则将上述当前目标区块链节点,在上述排列后目标区块链节点中的下一个目标区块链节点,作为上述当前目标区块链节点。
可选地,生成模块还用于执行:
根据上述密钥生成请求生成目标公钥。
相应地,上述密钥生成装置还包括:
处理模块,用于执行:
获取待处理数据;
对上述待处理数据进行哈希运算,得到目标消息摘要;
利用上述目标私钥对上述目标消息摘要进行签名,得到目标签名结果;
将上述目标签名结果和上述待处理数据发送至验证区块链节点,以使上述验证区块链节点利用上述目标公钥对上述目标签名结果进行验证,并在验证通过时处理上述待处理数据。
可选地,处理模块具体用于执行:
根据上述无证书国密算法,利用上述目标私钥对上述目标消息摘要进行签名,得到目标签名结果。
将上述目标签名结果和上述待处理数据发送至验证区块链节点,以使上述验证区块链节点根据上述无证书国密算法,利用上述目标公钥对上述目标签名结果进行验证,并在验证通过时处理上述待处理数据。
此外,本申请实施例还提供一种区块链节点,包括处理器和存储器,上述存储器存储有计算机程序,上述处理器用于运行上述存储器内的计算机程序实现本申请实施例提供的密钥生成方法。
此外,本申请实施例还提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序适于处理器进行加载,以执行本申请实施例所提供的任一种密钥生成方法。
此外,本申请实施例还提供一种计算机程序产品,包括计算机程序,上述计算机程序被处理器执行时实现本申请实施例所提供的任一种密钥生成方法。
在本申请实施例中,先获取区块链系统的系统主私钥,区块链系统包括预设数量的区块链节点。然后将系统主私钥分成与预设数量匹配的初始子私钥。接着,把各个初始子私钥分发至区块链节点中的目标区块链节点。最后通过各个目标区块链节点及其对应的初始子私钥生成目标私钥。
即在本申请实施例中,由于将获取到的系统主私钥分成与预设数量匹配的初始子私钥,并把各个初始子私钥分发至区块链节点中目标区块链节点,因此,可以通过各个目标区块链节点及其对应的初始子私钥生成目标私钥,使得不需要通过密钥生成中心生成目标私钥,从而实现去中心化。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的区块链系统的结构示意图;
图2是本申请实施例提供的区块结构的示意图;
图3是本申请实施例提供的密钥生成方法的流程示意图;
图4是本申请实施例提供的另一种密钥生成方法的流程示意图;
图5是本申请实施例提供的加密算法和签名算法的示意图;
图6是本申请实施例提供的生成目标私钥的示意图;
图7是本申请实施例提供的区块链系统的示意图;
图8是本申请实施例提供的联盟链系统的示意图;
图9是本申请实施例提供的联盟链系统的生成过程的示意图;
图10是本申请实施例提供的密钥生成装置的结构示意图;
图11是本申请实施例提供的区块链节点的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种密钥生成方法、装置、区块链节点和计算机可读存储介质。其中,该密钥生成装置可以集成在区块链节点中,该区块链节点可以是服务器,也可以是终端等设备。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本发明实施例涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。
以分布式系统为区块链系统为例,参见图1,图1是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点200(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端300形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission ControlProtocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图2,图2是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
另外,本申请实施例中的“多个”指两个或两个以上。本申请实施例中的“第一”和“第二”等用于区分描述,而不能理解为暗示相对重要性。
以下分别进行详细说明。需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
在本实施例中,将从密钥生成装置的角度进行描述,该密钥生成装置集成在区块链节点中,为了方便对本申请的密钥生成方法进行说明,以下将以区块链节点中密钥目标区块链节点进行详细说明,即以密钥目标区块链节点作为执行主体进行详细说明。
请参阅图3,图3是本申请一实施例提供的密钥生成方法的流程示意图。该密钥生成方法可以包括:
S301、获取区块链系统的系统主私钥,区块链系统包括预设数量的区块链节点。
区块链系统的系统主私钥为一随机数,比如,可以从[1,N-1]中随机选取一个数作为系统主私钥,N为循环群G1,G2,...,GT的阶,循环群指若一个群G的每一个元都是G的某一个固定元a的乘方,则称G为循环群,固定元a称为G的一个生成元。
预设数量为大于1的整数,对于预设数量的具体值,用户可以根据实际情况进行选择,本实施例在此不做限定。
区块链系统可以为联盟链系统,也可以为公有链系统,也可以为私有链系统。对于区块链系统的类型,用户可以根据实际情况进行选择,本实施例在此不做限定。
密钥目标区块链节点可以在接收到区块链系统初始化指令时,获取一随机数作为系统主私钥。或者,密钥目标区块链节点也可以在接收到获取指令时,获取一随机数作为系统主私钥,此时,无需在区块链系统进行初始化时获取系统主私钥。对于获取系统主私钥的时间,用户可以根据实际情况进行选择,本实施例在此不做限定。
在一些实施例中,密钥目标区块链节点在得到系统主私钥之后,还可以根据系统主私钥生成区块链系统的系统参数,然后将系统参数存储至区块链系统的创世块中,以便后续区块链系统中区块链节点可以从创世块中获取系统参数,并根据用户的身份信息以及系统参数生成公钥。创世块指区块链中被最早构建的区块,拥有一个唯一的标识号。
其中,可以将系统主私钥代入以下公式中,得到系统参数:
Ppub=[k]P2 (1)
Ppub表示系统参数,k表示系统主私钥,P2表示G2的生成元。
S302、将系统主私钥分成与预设数量匹配的初始子私钥。
密钥目标区块链节点在得到系统主私钥之后,可以按照预设数量,随机对系统主私钥进行划分,从而得到各个初始子私钥。
与预设数量匹配指初始子私钥的个数与预设数量相同。或者,与预设数量匹配也可以指初始子私钥的个数与预设数量之间的差值在预设范围内(初始子私钥的个数小于预设数量)。
当初始子私钥的个数与预设数量相同时,初始子私钥与系统主私钥之间的关系可以为:
其中,n表示预设数量,k表示系统主私钥,kj表示第j个初始子私钥,j=1、2…n。
S303、把各个初始子私钥分发至区块链节点中目标区块链节点。
密钥目标区块链节点是目标区块链节点中的一个区块链节点。当初始子私钥的个数与预设数量相同时,区块链系统中包括的每个区块链节点均是目标区块链节点。当初始子私钥的个数小于预设数量时,区块链系统中只有一部分区块链节点是目标区块链节点。
比如,区块链系统中包括四个区块链节点,初始子私钥包括三个,则区块链系统中只有三个区块链节点是目标区块链节点。
密钥目标区块链节点在得到各个初始子私钥之后,将各个初始子私钥中的一个初始子私钥存储在本节点,然后将其他初始子私钥分发至该区块链系统中其他目标区块链节点。
比如,目标区块链节点包括A节点、B节点、C节点以及D节点,且A节点是密钥目标区块链节点,初始子私钥包括初始子私钥k1、初始子私钥k2、初始子私钥k3以及初始子私钥k4。则A节点将初始子私钥k1存储在本节点中,然后将初始子私钥k2发送至B节点进行存储,将初始子私钥k3发送至C节点进行存储,将初始子私钥k4发送至D节点进行存储。
在一些实施例中,在把各个初始子私钥分发至区块链节点中目标区块链节点之后,如果有新的区块链节点加入至该区块链系统中且新的区块链节点也是目标区块链节点,则新的区块链节点可以发送更新指令至密钥目标区块链节点,密钥目标区块链节点再重新对系统主私钥进行划分,从而使得新的区块链节点也存在对应的初始子私钥。
S304、通过各个目标区块链节点及其对应的初始子私钥生成目标私钥。
在将各个初始子私钥存储在各个目标区块链节点之后,如果每个目标区块链节点中存储有对应的用户的身份信息,则可以直接通过各个目标区块链节点及其对应的初始子私钥,生成区块链系统中各个目标区块链节点对应的目标私钥,即生成每个身份信息对应的目标私钥。
或者,也可以为:在获取到密钥生成请求之后,根据密钥生成请求,通过各个目标区块链节点及其对应的初始子私钥生成密钥生成请求对应的目标私钥,密钥生成请求中可以包括用户的身份信息。
需要说明的是,当用户需要生成本身的目标私钥时,用户可以在区块链系统中任一节点进行触发,使得该节点基于用户的触发生成密钥生成请求。用户触发的节点可以是密钥目标区块链节点;或者,用户触发的节点也可以是区块链系统中除密钥目标区块链节点之外的其他目标区块链节点;或者,当只有一部分区块链节点是目标区块链节点时,用户触发的节点还可以是区块链系统中的非目标区块链节点,然后非目标区块链节点再将密钥生成请求转发至目标区块链节点。
在一些实施例中,通过各个目标区块链节点及其对应的初始子私钥生成目标私钥的过程可以为:密钥目标区块链节点通过起始目标区块链节点对应的初始子私钥确定第一目标子私钥,通过第二目标区块链节点及其对应的初始子私钥确定各第二目标区块链节点对应的目标子私钥。其中,第二目标区块链节点为目标区块链节点中除起始目标区块链节点外的其他目标区块链节点。需要说明的是,当密钥目标区块链节点与起始目标区块链节点为同一个目标区块链节点时,第二目标区块链节点不包括密钥目标区块链节点;当密钥目标区块链节点与起始目标区块链节点不是同一个目标区块链节点时,第二目标区块链节点包括密钥目标区块链节点。
然后再通过第二目标区块链节点将目标子私钥发送至密钥目标区块链节点,密钥目标区块链节点再根据第一目标子私钥和各第二目标区块链节点对应的目标子私钥确定目标私钥。
比如,目标区块链节点包括A节点、B节点、C节点以及D节点,A节点同时是密钥目标区块链节点和起始目标区块链节点,则B节点、C节点以及D节点均为第二目标区块链节点。则A节点通过A节点对应的初始子私钥确定第一目标子私钥,A节点通过B节点和B节点对应的初始子私钥确定B节点对应的目标子私钥,并通过B节点将B节点对应的目标子私钥发送至A节点。
A节点通过C节点和C节点对应的初始子私钥确定C节点对应的目标子私钥,并通过C节点将C节点对应的目标子私钥发送至A节点。A节点通过D节点和D节点对应的初始子私钥确定D节点对应的目标子私钥,并通过D节点将D节点对应的目标子私钥发送至A节点。
A节点再根据第一目标子私钥以及B节点、C节点以及D节点分别对应的目标子私钥确定目标私钥。
在另一些实施例中,通过各个目标区块链节点及其对应的初始子私钥生成目标私钥的过程可以为:
密钥目标区块链节点通过起始目标区块链节点对应的初始子私钥确定第一候选私钥,并将第一候选私钥发送至目标区块链节点中当前目标区块链节点,以使当前目标区块链节点通过本身对应的初始子私钥和第一候选私钥确定第二候选私钥。
如果当前目标区块链节点是目标区块链节点中最后一个节点,则当前目标区块链节点将第二候选私钥发送至密钥目标区块链节点,密钥目标区块链节点将第二候选私钥作为目标私钥。
如果当前目标区块链节点不是目标区块链节点中最后一个节点,则将当前目标区块链节点作为起始目标区块链节点,将第二候选私钥作为第一候选私钥,将当前目标区块链节点的下一个目标区块链节点作为当前目标区块链节点,并返回执行将第一候选私钥发送至目标区块链节点中当前目标区块链节点的步骤。
此时,如果是根据密钥生成请求,通过各个目标区块链节点及其对应的初始子私钥生成密钥生成请求对应的目标私钥,则通过各个目标区块链节点及其对应的初始子私钥生成密钥生成请求对应的目标私钥可以包括:
获取密钥生成请求;
确定区块链系统中一目标区块链节点为起始目标区块链节点,以及将起始目标区块链节点的下一个目标区块链节点作为当前目标区块链节点;
通过起始目标区块链节点,根据起始目标区块链节点对应的初始子私钥及密钥生成请求生成第一候选私钥;
通过起始目标区块链节点,将第一候选私钥发送至当前目标区块链节点,并通过当前目标区块链节点根据当前目标区块链节点对应的初始子私钥及第一候选私钥生成第二候选私钥;
若当前目标区块链节点为目标区块链节点中最后一个区块链节点,则将第二候选私钥作为目标私钥;
若当前目标区块链节点不是目标区块链节点中最后一个区块链节点,则将当前目标区块链节点作为起始目标区块链节点,将第二候选私钥作为第一候选私钥,将当前目标区块链节点的下一个目标区块链节点作为当前目标区块链节点,并返回执行通过起始目标区块链节点,将第一候选私钥发送至目标区块链节点中当前目标区块链节点的步骤。
比如,目标区块链节点包括A节点、B节点以及C节点,C节点是目标区块链节点中最后一个区块链节点,A节点是密钥目标区块链节点。当起始目标区块链节点是A节点,当前目标区块链节点是B节点,以及下一个目标区块链节点是C节点时,A节点根据A节点对应的初始子私钥及密钥生成请求生成第一候选私钥,然后将第一候选私钥发送至B节点,通过B节点根据B节点对应的初始子私钥和第一候选私钥生成第二候选私钥。
此时,由于B节点不是目标区块链节点中最后一个区块链节点,所以通过B节点将第二候选私钥发送至C节点。然后再通过C节点,根据C节点对应的初始子私钥以及第二候选私钥生成第三候选私钥。
即,相当于将B节点作为新的起始目标区块链节点,将C节点作为当前目标区块链节点,将第二候选私钥作为新的第一候选私钥,然后通过新的起始目标区块链节点(节点B)执行将新的第一候选私钥发送至目标区块链节点中当前目标区块链节点(节点C)的步骤。
在通过C节点生成第三候选私钥之后,由于C节点是目标区块链节点中最后一个区块链节点,因此,通过C节点将第三候选私钥发送至密钥目标区块链节点,即A节点(密钥目标区块链节点不会发生变化),密钥目标区块链节点再将第三候选私钥作为目标私钥。
需要说明的是,密钥目标区块链节点可以作为起始目标区块链节点,也可以作为当前目标区块链节点,也可以作为下一个目标区块链节点。
并且,可以对各个目标区块链节点进行排列,然后密钥目标区块链节点从排列后的目标区块链节点中,筛选出一目标区块链节点为起始目标区块链节点,将起始目标区块链节点的下一个目标区块链节点作为当前目标区块链节点。
可选地,密钥目标区块链节点可以将排列在第一位的目标区块链节点作为起始目标区块链节点,排列在第二位的目标区块链节点作为当前目标区块链节点。或者,密钥目标区块链节点也可以将排列在最后一位的目标区块链节点作为起始目标区块链节点,排列在倒数第二位的目标区块链节点作为当前目标区块链节点。
各个目标区块链节点之间的排列顺序可以是固定的,也可以是不固定的。如果各个目标区块链节点之间的排列顺序是不固定的,则密钥目标区块链节点可以通过起始目标区块链节点,将目标区块链节点的排列顺序一起发送至当前目标区块链节点,以便密钥目标区块链节点可以通过当前目标区块链节点,根据目标区块链节点的排列顺序确定当前目标区块链节点是否是最后一个目标区块链节点,并且可以确定哪个目标区块链节点是下一个目标区块链节点。
当各个目标区块链节点之间的排列顺序是不固定时,确定区块链系统中一目标区块链节点为起始目标区块链节点,以及将起始目标区块链节点的下一个目标区块链节点作为当前目标区块链节点,包括:
按照预设规则对各个目标区块链节点进行排列,得到排列后目标区块链节点;
从排列后目标区块链节点中筛选出起始目标区块链节点;
将起始目标区块链节点,在排列后目标区块链节点中的下一个目标区块链节点作为当前目标区块链节点;
若当前目标区块链节点不是目标区块链节点中最后一个区块链节点,上述将当前目标区块链节点的下一个目标区块链节点作为当前目标区块链节点,包括:
若当前目标区块链节点不是目标区块链节点中最后一个区块链节点,将当前目标区块链节点,在排列后目标区块链节点中的下一个目标区块链节点,作为当前目标区块链节点。
比如,目标区块链节点包括A节点、B节点以及C节点,A节点是密钥目标区块链节点,则A节点按照预设规则对A节点、B节点以及C节点进行排列,排列后目标区块链节点为B节点、C节点以及A节点。则在第一次直接计算第一候选私钥时,可以将B节点作为起始目标区块链节点,对应的当前目标区块链节点为C节点。
此时,A节点将密钥生成请求发送至B节点,通过B节点计算第一候选私钥,并将第一候选私钥发送至C节点。
因为C节点不是目标区块链节点中最后一个区块链节点,C节点在排列后目标区块链节点中的下一个目标区块链节点为A节点,所以A节点将C节点作为新的起始目标区块链节点,则A节点作为当前目标区块链节点,并通过C节点将第二候选私钥发送至A节点。A节点再通过本身对应的初始子私钥和第二候选私钥计算第三候选私钥。由于A节点是最后一个目标区块链节点,所以,第三候选私钥即为目标私钥。
密钥目标区块链节点可以先从排列后目标区块链节点中筛选出目标区块链节点中起始目标区块链节点,然后再通过起始目标区块链节点,从排列后目标区块链节点中筛选出起始目标区块链节点对应的当前目标区块链节点。
应理解,密钥目标区块链节点可以是在接收到排列指令时,按照预设规则对各个目标区块链节点进行排列,得到排列后目标区块链节点。或者,密钥目标区块链节点也可以是在接收到密钥生成请求时,按照预设规则对各个目标区块链节点进行排列,得到排列后目标区块链节点。本实施例在此不做限定。预设规则可以为随机规则。
如果密钥目标区块链节点是在接收到密钥生成请求后,按照预设规则对各个目标区块链节点进行排列,则可以是每生成一个目标私钥,对各个目标区块链节点进行排列一次。
如果密钥目标区块链节点是在接收到排列指令时,按照预设规则对各个目标区块链节点进行排列,则可以是每生成一个目标私钥,对各个目标区块链节点进行排列一次,也可以是生成至少两个目标私钥后,对各个目标区块链节点进行排列一次。
在本实施例中,生成目标私钥时,对各个目标区块链节点进行排列,使得各个目标区块链节点之间的顺序不相同,从而提高生成目标私钥的过程被破解的难度,进而保证生成目标私钥的安全性。
在另一些实施例中,密钥生成请求中包括身份信息;通过起始目标区块链节点,根据起始目标区块链节点对应的初始子私钥及密钥生成请求生成第一候选私钥,包括:
根据预设加密签名算法确定预设私钥计算公式;
通过起始目标区块链节点,将起始目标区块链节点对应的初始子私钥及身份信息代入预设私钥计算公式中进行运算,得到第一候选私钥。
对应的,通过当前目标区块链节点根据当前目标区块链节点对应的初始子私钥及第一候选私钥生成第二候选私钥,包括:
通过当前目标区块链节点将当前目标区块链节点对应的初始子私钥及第一候选私钥代入预设私钥计算公式中进行运算,得到第二候选私钥。
当采用加密签名算法不相同时,私钥计算公式也不相同,所以,在本实施例中,先根据预设加密签名算法确定预设私钥计算公式,然后再通过预设私钥计算公式计算第一候选私钥和第二候选私钥。
预设加密签名算法的类型可以根据实际情况进行选择,比如,预设加密签名算法可以采用无证书国密算法,无证书国密算法可以为SM9国密算法或SM2国密算法,本实施例在此不做限定。
在另一些实施例中,预设加密签名算法包括无证书国密算法,预设私钥计算公式包括第一预设公式、第二预设公式、第三预设公式以及第四预设公式;
通过起始目标区块链节点,将起始目标区块链节点对应的初始子私钥及身份信息代入预设私钥计算公式中进行运算,得到第一候选私钥,包括:
通过起始目标区块链节点,将起始目标区块链节点对应的初始子私钥代入第一预设公式中进行运算,得到第一候选子私钥;
将起始目标区块链节点对应的初始子私钥及身份信息代入第二设公式中进行运算,得到第二候选子私钥;
根据第一候选子私钥和第二候选子私钥确定第一候选私钥。
对应的,通过当前目标区块链节点将当前目标区块链节点对应的初始子私钥及第一候选私钥代入预设私钥计算公式中进行运算,得到第二候选私钥,包括:
通过当前目标区块链节点将当前目标区块链节点对应的初始子私钥及第一候选子私钥代入所述第三预设公式中进行运算,得到第三候选子私钥;
将当前目标区块链节点对应的初始子私钥及第二候选子私钥代入第四预设公式中进行运算,得到第四候选子私钥;
并根据第三候选子私钥和第四候选子私钥确定第二候选私钥。
无证书国密算法可以为SM9国密算法。SM9国密算法的私钥计算公式为:
其中,dA表示目标私钥,IDA表示用户标识,即表示身份信息,k表示系统主私钥,H1()表示密码函数,N表示循环群的阶数,hid表示用户密钥生成函数标识,P1表示G1的生成元。
则第一预设公式可以为:
r1=[k1]P1 (4)
r1表示第一候选子私钥,k1表示起始目标区块链节点对应的初始子私钥。
第二预设公式可以为:
R1=H1(IDA||hid,N)+k1 (5)
R1表示第二候选子私钥。
第三预设公式可以为:
ri表示第三候选子私钥,i表示当前目标区块链节点,ki表示当前目标区块链节点对应的初始子私钥。
第四预设公式可以为:
Ri表示第四候选子私钥。
即密钥目标区块链节点通过起始目标区块链节点,将起始目标区块链节点对应的初始子私钥代入第一预设公式中进行运算,得到第一候选子私钥;将起始目标区块链节点对应的初始子私钥及身份信息代入第二设公式中进行运算,得到第二候选子私钥;以及将第一候选子私钥和第二候选子私钥作为第一候选私钥,即第一候选私钥包括第一候选子私钥和第二候选子私钥。
然后通过起始目标区块链节点将第一候选私钥发送至当前目标区块链节点。通过当前目标区块链节点,将当前目标区块链节点对应的初始子私钥及第一候选子私钥代入第三预设公式中进行运算,得到第三候选子私钥;将当前目标区块链节点对应的初始子私钥及第二候选子私钥代入第四预设公式中进行运算,得到第四候选子私钥;以及将第三候选子私钥和第四候选子私钥作为第二候选私钥。
如果当前目标区块链节点是最后一个目标区块链节点,即当前目标区块链节点是第n个目标区块链节点,则根据第三候选子私钥和第四候选子私钥确定第二候选私钥的可以为:将第三候选子私钥除以第四候选子私钥,从而得到第二候选私钥。
即此时当前目标区块链节点的全部计算过程为:
在本实施例中,预设加密签名算法采用无证书国密算法,然后采用无证书国密算法对应的预设私钥计算公式计算目标私钥。
在另一些实施例中,在获取密钥生成请求之后,还包括:
根据密钥生成请求生成目标公钥;
在根据密钥生成请求,通过各个目标区块链节点及其对应的初始子私钥生成密钥生成请求对应的目标私钥之后,还包括:
获取待处理数据;
对待处理数据进行哈希运算,得到目标消息摘要;
利用目标私钥对所述目标消息摘要进行签名,得到目标签名结果;
将目标签名结果和待处理数据发送至验证区块链节点,以使验证区块链节点利用目标公钥对所述目标签名结果进行验证,并在验证通过时处理待处理数据。
根据密钥生成请求生成目标公钥的过程可以为:密钥目标区块链节点根据密钥生成请求中身份信息和从创世块中获取的系统参数,根据身份信息和系统参数计算得到目标公钥,并将目标公钥进行广播,以便验证区块链节点可以获取到目标公钥。其中,验证区块链节点为生成区块的节点。
或者,密钥目标区块链节点可以只生成并保存目标私钥,不保存目标公钥,密钥目标区块链节点需要用到目标公钥时,再从创世块中获取系统参数,并根据身份信息和系统参数计算得到目标公钥。
然后如果验证区块链节点需要获取目标公钥,则验证区块链节点再从创世块中获取系统参数,并根据身份信息和系统参数计算得到目标公钥。
由于目标私钥和目标公钥为一对密钥,因此,生成目标公钥和生成目标私钥的身份信息相同,即当生成目标公钥时,密钥目标区块链节点中的身份信息和验证区块链节点中的身份信息相同。
在生成目标私钥和目标公钥之后,可以采用目标私钥和目标公钥,通过区块链系统实现业务。业务可以为交易业务,或者,业务也可以为存储数据业务。所以,密钥目标区块链节点可以在获取到待处理数据之后,对待处理数据进行哈希运算,得到目标消息摘要。然后利用目标私钥对目标消息摘要进行签名,得到目标签名结果。最后将目标签名结果和待处理数据发送至验证区块链节点,以使验证区块链节点利用目标公钥对目标签名结果进行验证,并在验证通过时处理待处理数据。
其中,验证区块链节点处理待处理数据的过程可以为:验证区块链节点将待处理数据进行打包,生成区块。
验证区块链节点利用目标公钥对目标签名结果的验证过程可以为:利用目标公钥对目标签名结果进行验证,验证通过时,得到目标消息摘要,并对待处理数据再次进行哈希运算,得到初始消息摘要,如果初始消息摘要和目标消息摘要一致,则利用目标公钥对目标签名结果的验证通过。
由于验证区块链节点也存在对应的公钥和私钥,因此,密钥目标区块链节点还可以利用验证区块链节点对应的公钥对待处理数据进行加密,得到加密后待处理数据,然后再将加密后待处理数据和目标签名结果一起发送至验证区块链节点。
验证区块链节点先利用目标公钥对目标签名结果进行验证,验证通过时,得到目标消息摘要,然后利用本身的私钥对加密后待处理数据进行解密,得到待处理数据。然后再对待处理数据再次进行哈希运算,得到初始消息摘要,如果初始消息摘要和目标消息摘要一致,则利用目标公钥对目标签名结果的验证通过。
需要说明的是,为了防止目标消息摘要被破解,进一步保证安全,密钥目标区块链节点可以利用目标私钥对目标消息摘要和系统参数进行签名,得到目标签名结果。然后验证区块链节点再利用目标公钥和系统参数对目标签名结果进行验证。
在另一些实施例中,利用目标私钥对目标消息摘要进行签名,得到目标签名结果,包括:
根据无证书国密算法,利用目标私钥对目标消息摘要进行签名,得到目标签名结果;
将目标签名结果和待处理数据发送至验证区块链节点,以使验证区块链节点利用目标公钥对目标签名结果进行验证,并在验证通过时处理待处理数据,包括:
将目标签名结果和待处理数据发送至验证区块链节点,以使验证区块链节点根据无证书国密算法,利用目标公钥对目标签名结果进行验证,并在验证通过时处理待处理数据。
因为无证书国密算法为国密算法,所以,在本实施例,根据无证书国密算法,利用目标私钥对目标消息摘要进行签名,符合国家的密码标准,并且可以保证区块链系统的安全性。
另外,采用无证书国密算法进行签名和加密,无需申请和交换数字证书,因此,在本实施例中,根据无证书国密算法,利用目标私钥对目标消息摘要进行签名,得到目标签名结果,使得无需管理数字证书,从而可以减少管理数字证书的费用。
应注意,密钥目标区块链节点也可以根据无证书国密算法,利用验证区块链节点的公钥对待处理数据进行加密,得到加密后待处理数据。然后验证区块链节点再根据无证书国密算法,利用本身的私钥对加密后待处理数据进行解密。
可选地,密钥目标区块链节点也可以根据无证书国密算法,利用验证区块链节点的公钥对待处理数据和系统参数进行加密,得到加密后待处理数据。然后验证区块链节点再根据无证书国密算法,利用本身的私钥对加密后待处理数据进行解密,解密完成之后,如果加密后待处理数据中系统参数与从创世块中获取的系统参数一致,则说明加密后待处理数据没有被修改,从而进一步保证安全。
由上可见,在本申请实施例中,先获取区块链系统的系统主私钥,区块链系统包括预设数量的区块链节点。然后将系统主私钥分成与预设数量匹配的初始子私钥。接着,把各个初始子私钥分发至区块链节点中的目标区块链节点。最后通过各个目标区块链节点及其对应的初始子私钥生成目标私钥。
即在本申请实施例中,由于将获取到的系统主私钥分成与预设数量匹配的初始子私钥,并把各个初始子私钥分发至区块链节点中目标区块链节点,因此,可以通过各个目标区块链节点及其对应的初始子私钥生成目标私钥,使得不需要通过密钥生成中心生成目标私钥,从而实现去中心化。
针对上述实施例所描述的方法,以下将举例作进一步详细说明。
本实施例以密钥生成装置集成在终端为例,请参阅图4,图4为本申请实施例提供的密钥生成方法的流程示意图。该密钥生成方法流程可以包括:
S401、密钥目标区块链节点获取区块链系统的系统主私钥,区块链系统包括预设数量的区块链节点。
在本实施例中,将区块链中目前的加密算法和签名算法替换成SM9国密算法,比如,如图5所示。所以,当用户需生成私钥和公钥时,用户可以触发密钥目标区块链节点获取区块链系统的系统主私钥。系统主私钥可以是在区块链系统在初始化时生成。
S402、密钥目标区块链节点将系统主私钥分成预设数量的初始子私钥,并将把各个初始子私钥分发至区块链节点中目标区块链节点。
S403、密钥目标区块链节点获取排列指令,并基于排列指令,按照预设规则对各个目标区块链节点进行排列,得到目标区块链节点的排列顺序。
S404、密钥目标区块链节点根据排列顺序,从目标区块链节点中筛选出起始目标区块链节点,并获取密钥生成请求。
S405、密钥目标区块链节点将密钥生成请求和排列顺序发送至起始目标区块链节点。
S406、密钥目标区块链节点通过起始目标区块链节点,将起始目标区块链节点对应的初始子私钥代入无证书国密算法的第一预设公式中进行运算,得到第一候选子私钥,将起始目标区块链节点对应的初始子私钥及密钥生成请求中身份信息代入无证书国密算法的第二预设公式中进行运算,得到第二候选子私钥。
S407、密钥目标区块链节点通过起始目标区块链节点,根据排列顺序,从目标区块链节点筛选出当前目标区块链节点。
S408、密钥目标区块链节点通过起始目标区块链节点,将第一候选子私钥、第二候选子私钥以及排列顺序发送至目标区块链节点中当前目标区块链节点。
比如,如图6所示。此时,起始目标区块链节点为区块链节点1,当前区块链节点为区块链节点i,第一候选子私钥为r1=[k1]P1,第二候选子私钥为R1=H1(IDA||hid,N)+k1。区块链节点1将第一候选子私钥、第二候选子私钥以及排列顺序发送至区块链节点i。
S409、密钥目标区块链节点通过当前目标区块链节点,将当前目标区块链节点对应的初始子私钥和第一候选子私钥代入无证书国密算法的第二预设公式中进行运算,得到第三候选子私钥,将当前目标区块链节点对应的初始子私钥及第二候选子私钥代入无证书国密算法的第四预设公式中进行运算,得到第四候选子私钥。
S4010、若当前目标区块链节点为目标区块链节点中最后一个区块链节点,密钥目标区块链节点则通过当前目标区块链节点,根据第三候选子私钥和第四候选子私钥确定目标私钥。
比如,如图6所示,若当前目标区块链节点为目标区块链节点中最后一个区块链节点,即当前目标区块链节点为区块链节点n,则通过当前目标区块链节点,根据第三候选子私钥和第四候选子私钥确定目标私钥。
S4011、若当前目标区块链节点不是目标区块链节点中最后一个区块链节点,密钥目标区块链节点则通过当前目标区块链节点,根据排列顺序,从目标区块链中筛选出下一个目标区块链节点。
S4012、密钥目标区块链节点将当前目标区块链节点作为起始目标区块链节点,将下一个目标区块链节点作为当前目标区块链节点,将第三候选子私钥作为第一候选子私钥,将第四候选子私钥作为第二候选子私钥,并返回执行S408。
比如,图6所示,如果当前目标区块链节点不是目标区块链节点中最后一个区块链节点,则通过当前目标区块链节点将第三候选子私钥和第四候选子私钥发送至下一个目标区块链节点,即相当于将当前目标区块链节点作为起始目标区块链节点,将下一个目标区块链节点作为当前目标区块链节点,将第三候选子私钥作为第一候选子私钥,将第四候选子私钥作为第二候选子私钥,并返回执行S408。
S4013、密钥目标区块链节点根据系统主私钥确定系统参数,并将系统参数存储至创世块中。
在将区块链中目前的加密算法和签名算法替换成SM9国密算法之后,区块链系统可以如图7所示。
当区块链系统为联盟链系统时,联盟链系统可以如图8所示,联盟链系统包括组织机构a、组织机构b、组织机构c以及组织机构d,每个组织机构包括多个目标区块链节点。此时,联盟链系统的生成过程可以如图9所示。
需要说明的是,当区块链系统为联盟链系统时,同个组织机构中区块链节点可以都为目标区块链节点。或者,也可以从同个组织机构中筛选出一个区块链节点作为目标区块链节点,此时,预设数量还可以用于表示组织机构的数量。
当同个组织机构中区块链节点都为目标区块链节点时,密钥目标区块链节点也可以先将系统主私钥分成第一数量的初始子私钥,第一数量为组织机构的数量,即每个组织机构存在一个对应的初始子私钥。然后将各个初始子私钥发送至各个组织机构,组织机构再将本身对应的初始子私钥再次进行划分,得到各个最终子私钥,使得组织机构中每个区块链节点均存在一个对应的最终子私钥。
S4014、密钥目标区块链节点获取待处理数据,并对待处理数据进行哈希运算,得到目标消息摘要。
S4015、密钥目标区块链节点根据无证书国密算法,利用目标私钥对目标消息摘要和系统参数进行签名,得到目标签名结果,利用验证区块链节点的公钥对待处理数据和系统参数进行加密,得到加密后待处理数据。
S4016、密钥目标区块链节点将目标签名结果和加密后待处理数据发送至验证区块链节点,通过验证区块链节点根据无证书国密算法,利用目标公钥和系统参数对目标签名结果进行验证,在验证通过时,得到目标消息摘要。
验证区块链节点可以从创世块中获取身份信息和系统参数,然后根据身份信息和系统参数确定目标公钥。
S4017、密钥目标区块链节点通过验证区块链节点,根据无证书国密算法,利用验证区块链节点对应的私钥和系统参数对加密后待处理数据进行解密,解密通过时得到待处理数据,对待处理数据进行哈希运算,得到初始消息摘要。
S4018、若初始消息摘要和目标消息摘要相同,密钥目标区块链节点则通过验证区块链节点处理待处理数据。
在本实施例中,将获取到的系统主私钥分成预设数量的初始子私钥,并把各个初始子私钥分发至区块链节点中目标区块链节点,因此,可以通过各个目标区块链节点,根据无证书国密算法,利用各个目标区块链节点对应的初始子私钥生成目标私钥,使得不需要通过密钥生成中心生成目标私钥,从而实现去中心化。
在生成目标私钥时,对各个目标区块链节点进行排列,使得各个目标区块链节点之间的顺序不相同,从而提高生成目标私钥的过程被破解的难度,进而保证生成目标私钥的安全性。
因为无证书国密算法为国密算法,所以,在本实施例,根据无证书国密算法,利用目标私钥对目标消息摘要和系统参数进行签名,符合国家的密码标准,并且可以保证区块链系统的安全性。
另外,采用无证书国密算法进行签名和加密,无需申请和交换数字证书,因此,在本实施例中,根据无证书国密算法,利用目标私钥对目标消息摘要和系统参数进行签名,得到目标签名结果,使得无需管理数字证书,从而可以减少管理数字证书的费用。
本实施例中各个步骤的具体实现过程,可以参照上述密钥生成方法实施例,本实施例在此不再赘述。
为便于更好的实施本申请实施例提供的密钥生成方法,本申请实施例还提供一种基于上述密钥生成方法的装置。其中名词的含义与上述密钥生成方法中相同,具体实现细节可以参考方法实施例中的说明。
例如,如图10所示,该密钥生成装置可以包括:
获取模块1001,用于获取区块链系统的系统主私钥,区块链系统包括预设数量的区块链节点。
分成模块1002,用于将系统主私钥分成与预设数量匹配的初始子私钥。
分发模块1003,用于把各个初始子私钥分发至区块链节点中的目标区块链节点。
生成模块1004,用于通过各个目标区块链节点及其对应的初始子私钥生成目标私钥。
可选地,生成模块1004具体用于执行:
获取密钥生成请求;
确定区块链系统中一目标区块链节点为起始目标区块链节点,以及将起始目标区块链节点的下一个目标区块链节点作为当前目标区块链节点;
通过起始目标区块链节点,根据起始目标区块链节点对应的初始子私钥及密钥生成请求生成第一候选私钥;
通过起始目标区块链节点,将第一候选私钥发送至当前目标区块链节点,并通过当前目标区块链节点根据当前目标区块链节点对应的初始子私钥及第一候选私钥生成第二候选私钥;
若当前目标区块链节点为目标区块链节点中最后一个区块链节点,则将第二候选私钥作为目标私钥;
若当前目标区块链节点不是目标区块链节点中最后一个区块链节点,则将当前目标区块链节点作为起始目标区块链节点,将第二候选私钥作为第一候选私钥,将当前目标区块链节点中下一个目标区块链节点作为当前目标区块链节点,并返回执行通过起始目标区块链节点,将第一候选私钥发送至目标区块链节点中当前目标区块链节点的步骤。
可选地,密钥生成请求中包括身份信息。
相应地,生成模块1004具体用于执行:
根据预设加密签名算法确定预设私钥计算公式;
通过起始目标区块链节点,将起始目标区块链节点对应的初始子私钥及所述身份信息代入预设私钥计算公式中进行运算,得到第一候选私钥;
通过当前目标区块链节点将当前目标区块链节点对应的初始子私钥及第一候选私钥代入预设私钥计算公式中进行运算,得到第二候选私钥。
可选地,预设加密签名算法包括无证书国密算法,预设私钥计算公式包括第一预设公式、第二预设公式、第三预设公式以及第四预设公式。
相应地,生成模块1004具体用于执行:
通过起始目标区块链节点,将起始目标区块链节点对应的初始子私钥代入第一预设公式中进行运算,得到第一候选子私钥;
将起始目标区块链节点对应的初始子私钥及身份信息代入第二设公式中进行运算,得到第二候选子私钥;
根据第一候选子私钥和第二候选子私钥确定第一候选私钥;
通过当前目标区块链节点将当前目标区块链节点对应的初始子私钥及第一候选子私钥代入第三预设公式中进行运算,得到第三候选子私钥,将当前目标区块链节点对应的初始子私钥及第二候选子私钥代入第四预设公式中进行运算,得到第四候选子私钥,并根据第三候选子私钥和第四候选子私钥确定第二候选私钥。
可选地,生成模块1004具体用于执行:
按照预设规则对各个目标区块链节点进行排列,得到排列后目标区块链节点;
从排列后目标区块链节点中筛选出起始目标区块链节点;
将起始目标区块链节点,在排列后目标区块链节点中的下一个目标区块链节点作为当前目标区块链节点;
若当前目标区块链节点不是目标区块链节点中最后一个区块链节点,则将当前目标区块链节,在排列后目标区块链节点中的下一个目标区块链节点,作为当前目标区块链节点。
可选地,生成模块1004还用于执行:
根据密钥生成请求生成目标公钥。
相应地,该密钥生成装置还包括:
处理模块,用于执行:
获取待处理数据;
对待处理数据进行哈希运算,得到目标消息摘要;
利用目标私钥对目标消息摘要进行签名,得到目标签名结果;
将目标签名结果和待处理数据发送至验证区块链节点,以使验证区块链节点利用目标公钥对目标签名结果进行验证,并在验证通过时处理待处理数据。
可选地,处理模块具体用于执行:
根据无证书国密算法,利用目标私钥对目标消息摘要进行签名,得到目标签名结果。
将目标签名结果和待处理数据发送至验证区块链节点,以使验证区块链节点根据无证书国密算法,利用目标公钥对目标签名结果进行验证,并在验证通过时处理待处理数据。
具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施方式以及对应的有益效果可参见前面的方法实施例,在此不再赘述。
本申请实施例还提供一种区块链节点,如图11所示,其示出了本申请实施例所涉及的区块链节点的结构示意图,具体来讲:
该区块链节点可以包括一个或者一个以上处理核心的处理器1101、一个或一个以上计算机可读存储介质的存储器1102、电源1103和输入单元1104等部件。本领域技术人员可以理解,图11中示出的区块链节点结构并不构成对区块链节点的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器1101是该区块链节点的控制中心,利用各种接口和线路连接整个区块链节点的各个部分,通过运行或执行存储在存储器1102内的计算机程序和/或模块,以及调用存储在存储器1102内的数据,执行区块链节点的各种功能和处理数据。可选的,处理器1101可包括一个或多个处理核心;优选的,处理器1101可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1101中。
存储器1102可用于存储计算机程序以及模块,处理器1101通过运行存储在存储器1102的计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器1102可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据区块链节点的使用所创建的数据等。此外,存储器1102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1102还可以包括存储器控制器,以提供处理器1101对存储器1102的访问。
区块链节点还包括给各个部件供电的电源1103,优选的,电源1103可以通过电源管理系统与处理器1101逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1103还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该区块链节点还可包括输入单元1104,该输入单元1104可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,区块链节点还可以包括显示单元等,在此不再赘述。具体在本实施例中,区块链节点中的处理器1101会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器1102中,并由处理器1101来运行存储在存储器1102中的计算机程序,从而实现各种功能,比如:
获取区块链系统的系统主私钥,区块链系统包括预设数量的区块链节点;
将系统主私钥分成与预设数量匹配的初始子私钥;
把各个初始子私钥分发至区块链节点中的目标区块链节点;
通过各个目标区块链节点及其对应的初始子私钥生成目标私钥。
以上各个操作的具体实施方式以及对应的有益效果可参见上文对图像处理方法的详细描述,在此不作赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种密钥生成方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取区块链系统的系统主私钥,区块链系统包括预设数量的区块链节点;
将系统主私钥分成与预设数量匹配的初始子私钥;
把各个初始子私钥分发至区块链节点中的目标区块链节点;
通过各个目标区块链节点及其对应的初始子私钥生成目标私钥。
以上各个操作的具体实施方式以及对应的有益效果可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种密钥生成方法中的步骤,因此,可以实现本申请实施例所提供的任一种密钥生成方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
其中,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述密钥生成方法。
以上对本申请实施例所提供的一种密钥生成方法、装置、区块链节点和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (11)
1.一种密钥生成方法,其特征在于,包括:
获取区块链系统的系统主私钥,所述区块链系统包括预设数量的区块链节点;
将所述系统主私钥分成与所述预设数量匹配的初始子私钥;
把各个所述初始子私钥分发至所述区块链节点中的目标区块链节点;
通过各个所述目标区块链节点及其对应的初始子私钥生成目标私钥。
2.根据权利要求1所述的密钥生成方法,其特征在于,所述通过各个所述目标区块链节点及其对应的初始子私钥生成目标私钥,包括:
获取密钥生成请求;
确定所述区块链系统中一目标区块链节点为起始目标区块链节点,以及将所述起始目标区块链节点的下一个目标区块链节点作为当前目标区块链节点;
通过所述起始目标区块链节点,根据所述起始目标区块链节点对应的初始子私钥及所述密钥生成请求生成第一候选私钥;
通过所述起始目标区块链节点,将所述第一候选私钥发送至所述当前目标区块链节点,并通过所述当前目标区块链节点根据所述当前目标区块链节点对应的初始子私钥及所述第一候选私钥生成第二候选私钥;
若所述当前目标区块链节点为所述目标区块链节点中最后一个区块链节点,则将所述第二候选私钥作为目标私钥;
若所述当前目标区块链节点不是所述目标区块链节点中最后一个区块链节点,则将所述当前目标区块链节点作为所述起始目标区块链节点,将所述第二候选私钥作为所述第一候选私钥,将所述当前目标区块链节点的下一个目标区块链节点作为所述当前目标区块链节点,并返回执行所述通过所述起始目标区块链节点,将所述第一候选私钥发送至所述当前目标区块链节点的步骤。
3.根据权利要求2所述的密钥生成方法,其特征在于,所述密钥生成请求中包括身份信息;
所述通过所述起始目标区块链节点,根据所述起始目标区块链节点对应的初始子私钥及所述密钥生成请求生成第一候选私钥,包括:
根据预设加密签名算法确定预设私钥计算公式;
通过所述起始目标区块链节点,将所述起始目标区块链节点对应的初始子私钥及所述身份信息代入所述预设私钥计算公式中进行运算,得到第一候选私钥;
所述通过所述当前目标区块链节点根据所述当前目标区块链节点对应的初始子私钥及所述第一候选私钥生成第二候选私钥,包括:
通过所述当前目标区块链节点将所述当前目标区块链节点对应的初始子私钥及所述第一候选私钥代入所述预设私钥计算公式中进行运算,得到第二候选私钥。
4.根据权利要求3所述的密钥生成方法,其特征在于,所述预设加密签名算法包括无证书国密算法,所述预设私钥计算公式包括第一预设公式、第二预设公式、第三预设公式以及第四预设公式;
所述通过所述起始目标区块链节点,将所述起始目标区块链节点对应的初始子私钥及所述身份信息代入所述预设私钥计算公式中进行运算,得到第一候选私钥,包括:
通过所述起始目标区块链节点,将所述起始目标区块链节点对应的初始子私钥代入所述第一预设公式中进行运算,得到第一候选子私钥;
将所述起始目标区块链节点对应的初始子私钥及所述身份信息代入所述第二预设公式中进行运算,得到第二候选子私钥;
根据所述第一候选子私钥和所述第二候选子私钥确定所述第一候选私钥;
所述通过所述当前目标区块链节点将所述当前目标区块链节点对应的初始子私钥及所述第一候选私钥代入所述预设私钥计算公式中进行运算,得到第二候选私钥,包括:
通过所述当前目标区块链节点将所述当前目标区块链节点对应的初始子私钥及所述第一候选子私钥代入所述第三预设公式中进行运算,得到第三候选子私钥;
将所述当前目标区块链节点对应的初始子私钥及所述第二候选子私钥代入所述第四预设公式中进行运算,得到第四候选子私钥;
根据所述第三候选子私钥和所述第四候选子私钥确定第二候选私钥。
5.根据权利要求2所述的密钥生成方法,其特征在于,所述确定所述区块链系统中一目标区块链节点为起始目标区块链节点,以及将所述起始目标区块链节点的下一个目标区块链节点作为当前目标区块链节点,包括:
按照预设规则对各个所述目标区块链节点进行排列,得到排列后目标区块链节点;
从所述排列后目标区块链节点中筛选出起始目标区块链节点;
依据排列,将所述起始目标区块链节点的下一个目标区块链节点作为当前目标区块链节点;
所述若所述当前目标区块链节点不是所述目标区块链节点中最后一个区块链节点,则所述将所述当前目标区块链节点的下一个目标区块链节点作为所述当前目标区块链节点,包括:
依据排列,将所述当前目标区块链节点的下一个目标区块链节点,作为所述当前目标区块链节点。
6.根据权利要求2-5任一项所述的密钥生成方法,其特征在于,在所述获取密钥生成请求之后,还包括:
根据所述密钥生成请求生成目标公钥;
在所述根据所述密钥生成请求,通过各个所述目标区块链节点及其对应的初始子私钥生成所述密钥生成请求对应的目标私钥之后,还包括:
获取待处理数据;
对所述待处理数据进行哈希运算,得到目标消息摘要;
利用所述目标私钥对所述目标消息摘要进行签名,得到目标签名结果;
将所述目标签名结果和所述待处理数据发送至验证区块链节点,以使所述验证区块链节点利用所述目标公钥对所述目标签名结果进行验证,并在验证通过时处理所述待处理数据。
7.根据权利要求6所述的密钥生成方法,其特征在于,所述利用所述目标私钥对所述目标消息摘要进行签名,得到目标签名结果,包括:
根据无证书国密算法,利用所述目标私钥对所述目标消息摘要进行签名,得到目标签名结果;
所述将所述目标签名结果和所述待处理数据发送至验证区块链节点,以使所述验证区块链节点利用所述目标公钥对所述目标签名结果进行验证,并在验证通过时处理所述待处理数据,包括:
将所述目标签名结果和所述待处理数据发送至验证区块链节点,以使所述验证区块链节点根据所述无证书国密算法,利用所述目标公钥对所述目标签名结果进行验证,并在验证通过时处理所述待处理数据。
8.一种密钥生成装置,其特征在于,包括:
获取模块,用于获取区块链系统的系统主私钥,所述区块链系统包括预设数量的区块链节点;
分成模块,用于将所述系统主私钥分成与所述预设数量匹配的初始子私钥;
分发模块,用于把各个所述初始子私钥分发至所述区块链节点中的目标区块链节点;
生成模块,用于通过各个所述目标区块链节点及其对应的初始子私钥生成目标私钥。
9.一种区块链节点,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行权利要求1至7任一项所述的密钥生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行权利要求1至7任一项所述的密钥生成方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品存储有计算机程序,所述计算机程序适于处理器进行加载,以执行权利要求1至7任一项所述的密钥生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210209900.1A CN116743354A (zh) | 2022-03-04 | 2022-03-04 | 密钥生成方法、装置、区块链节点和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210209900.1A CN116743354A (zh) | 2022-03-04 | 2022-03-04 | 密钥生成方法、装置、区块链节点和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116743354A true CN116743354A (zh) | 2023-09-12 |
Family
ID=87899956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210209900.1A Pending CN116743354A (zh) | 2022-03-04 | 2022-03-04 | 密钥生成方法、装置、区块链节点和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116743354A (zh) |
-
2022
- 2022-03-04 CN CN202210209900.1A patent/CN116743354A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110912707B (zh) | 基于区块链的数字证书处理方法、装置、设备及存储介质 | |
CN110400221B (zh) | 数据处理方法、系统、存储介质及计算机设备 | |
CN111434085B (zh) | 用于在区块链系统中进行跨链交互的域名管理方案 | |
EP4120114A1 (en) | Data processing method and apparatus, smart device and storage medium | |
CN110268677B (zh) | 在区块链系统中使用域名方案进行跨链交互 | |
WO2020080145A1 (ja) | コンテンツ契約システム、コンテンツ契約方法、権利者端末、譲受人端末、制御端末、コンテンツ蓄積サーバ、権利者プログラム、譲受人プログラム、制御プログラムおよびコンテンツ蓄積プログラム | |
EP3454238A1 (en) | Registration and authorization method, device and system | |
Khovratovich et al. | Sovrin: digital identities in the blockchain era | |
CN108769230B (zh) | 交易数据存储方法、装置、服务器及存储介质 | |
CN110601816B (zh) | 一种区块链系统中轻量级节点控制方法及装置 | |
EP4210271A1 (en) | Credential generation and distribution method and system for a blockchain network | |
CN111127013A (zh) | 基于区块链的去中心化数据交易方法、装置、设备及介质 | |
CN110009349B (zh) | 区块链中生成和验证可链接环签名的方法及装置 | |
CN112235420B (zh) | 基于区块链的数据同步方法、系统及相关设备 | |
CN111767569A (zh) | 区块链的访问授权方法及节点 | |
CN110177124A (zh) | 基于区块链的身份认证方法及相关设备 | |
CN113094334B (zh) | 基于分布式存储的数字服务方法、装置、设备及储存介质 | |
CN105187218A (zh) | 一种多核心基础设施的数字化记录签名、验证方法 | |
CN110910110A (zh) | 一种数据处理方法、装置及计算机存储介质 | |
US20210397678A1 (en) | Right-holder terminal, user terminal, right-holder program, user program, content usage system, and content usage method | |
CN111314066A (zh) | 基于区块链的数据转移方法、终端及计算机可读存储介质 | |
CN114127724A (zh) | 针对多副本存储的完整性审计 | |
CN115705601A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
JP7367443B2 (ja) | 本人確認プログラム、管理装置及び本人確認方法 | |
WO2022205961A1 (zh) | 一种更新区块链域名配置的方法和装置 |
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 |