CN111934890A - 密钥生成方法、签名和验签方法、装置、设备和介质 - Google Patents
密钥生成方法、签名和验签方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN111934890A CN111934890A CN202011091953.5A CN202011091953A CN111934890A CN 111934890 A CN111934890 A CN 111934890A CN 202011091953 A CN202011091953 A CN 202011091953A CN 111934890 A CN111934890 A CN 111934890A
- Authority
- CN
- China
- Prior art keywords
- key
- node
- nodes
- level
- secret
- 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
- 238000000034 method Methods 0.000 title claims abstract description 148
- 238000012795 verification Methods 0.000 title claims abstract description 100
- 239000012634 fragment Substances 0.000 claims abstract description 237
- 238000004364 calculation method Methods 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 35
- 230000005540 biological transmission Effects 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 19
- 230000008520 organization Effects 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 12
- 238000009825 accumulation Methods 0.000 claims description 11
- 230000001343 mnemonic effect Effects 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000005538 encapsulation Methods 0.000 claims description 7
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 24
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/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
- H04L9/3255—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 using group based signatures, e.g. ring or threshold signatures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种密钥生成方法、签名和验签方法、装置、设备和介质,涉及计算机加密技术和区块链技术领域。可用于云计算和云领域。具体实现方案为:分别确定本机节点所属每个层级各自的第一本地秘密;分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。本申请能够提高密钥生成的安全性及隐私性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及计算机加密技术和区块链技术领域,具体涉及一种密钥生成方法、签名和验签方法、装置、设备和介质。
背景技术
随着计算机所处理业务的复杂度提升,已经大量出现了需要多个参与方协作来完成的业务。在多方业务中,可采用多方安全计算技术来保证各个参与方之间进行协作来完成任务的计算。多方安全计算技术中会采用门限签名技术来保证数据交互的安全性。
门限签名技术是密码学签名领域的一个前沿技术方向。在门限签名技术中,各参与方所采用的密钥,是进行签名的关键技术。现有门限签名技术所生成的密钥无法适应多参与方中复杂的角色签名要求。
发明内容
本申请提供了一种密钥生成方法、签名和验签方法、装置、设备和介质。
根据本申请的一方面,提供了一种密钥生成方法,由多方节点中的任一节点执行,所述方法包括:
分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;
分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;
获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。
根据本申请的一方面,提供了一种基于密钥的门限签名方法,由多方节点中的任一节点执行,所述方法包括:
采用本机节点每个层级的私钥对待签名消息分别进行签名,以产生层级密钥参数碎片,将层级密钥参数碎片进行累加以生成密钥参数碎片,将所述密钥参数碎片传输给所述多方节点中的其他节点;
获取根据各节点的密钥参数碎片生成的密钥参数;
根据所述密钥参数封装形成所述待签名消息的门限签名结果。
根据本申请的一方面,提供了一种基于密钥的门限签名验签方法,由多方节点中的任一节点执行,所述方法包括:
获取待验签消息和签名结果;其中,所述签名结果采用本申请实施例中任一项所述的基于密钥的门限签名方法进行签名;
采用所述公钥对所述签名结果进行签名验证。
根据本申请的一方面,提供了一种密钥生成的装置,配置于多方节点中的任一节点中,所述装置包括:
第一本地秘密确定模块,用于分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;
秘密碎片生成及传输模块,用于分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;
公私钥生成模块,用于获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。
根据本申请的一方面,提供了一种基于密钥的门限签名装置,配置于多方节点中的任一节点中,所述密钥为本申请实施例中任一项所述密钥生成装置所生成的非对称密钥对,所述装置包括:
密钥参数碎片生成及传输模块,用于采用本机节点每个层级的私钥对待签名消息分别进行签名,以产生层级密钥参数碎片,将层级密钥参数碎片进行累加以生成密钥参数碎片,将所述密钥参数碎片传输给所述多方节点中的其他节点;
密钥参数获取模块,用于获取根据各节点的密钥参数碎片生成的密钥参数;
门限签名结果形成模块,用于根据所述密钥参数封装形成所述待签名消息的门限签名结果。
根据本申请的一方面,提供了一种基于密钥的门限签名验签装置,配置于多方节点中的任一节点中,所述密钥为本申请实施例中任一项所述密钥生成装置所生成的非对称密钥对,所述装置包括:
签名结果获取模块,用于获取待验签消息和签名结果;其中,所述签名结果采用本申请实施例中任一项所述的基于密钥的门限签名方法进行签名;
签名验证模块,用于采用所述公钥对所述签名结果进行签名验证。
根据本申请的一方面,提供了一种电子设备,该电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本申请实施例中任一项所述的密钥生成方法,或基于密钥的门限签名方法,或基于密钥的门限签名验签方法。
根据本申请的一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本申请实施例中任一项所述的密钥生成方法、基于密钥的门限签名方法或者基于密钥的门限签名验签方法。
根据本申请的技术能够提高门限签名方案的安全性及隐私性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其他特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请实施例提供的一种密钥生成方法的流程示意图;
图2A是根据本申请实施例提供的另一种密钥生成方法的流程示意图;
图2B是本申请实施例中生成密钥的流程示意图;
图3是根据本申请实施例提供的一种基于密钥的门限签名方法的流程示意图;
图4A是根据本申请实施例提供的另一种基于密钥的门限签名方法的流程示意图;
图4B是本申请实施例中生成密钥参数的流程示意图一;
图4C是本申请实施例中生成密钥参数的流程示意图二;
图5是根据本申请实施例提供的一种基于密钥的门限签名验签方法的流程示意图;
图6是根据本申请实施例提供的一种密钥生成装置的结构示意图;
图7是根据本申请实施例提供的基于密钥的门限签名装置的结构示意图;
图8是根据本申请实施例提供的基于密钥的门限签名验签装置的结构示意图;
图9是用来实现本申请实施例的密钥生成方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请实施例提供的一种密钥生成方法的流程示意图。本实施例可适用于门限签名中密钥生成的情况,且能设置多个层级,每个层级设置不同的签名门限阈值,从而满足复杂的门限签名场景需求,且提高密钥生成的安全性和隐私性。本实施例公开的密钥生成方法可以由密钥生成装置来执行,该装置可以由软件和/或硬件的方式实现,配置于电子设备中。
本申请实施例的技术方案所生成的密钥可用于多层级门限签名场景中,门限签名中通常涉及W个参与方,每个参与方可视为一个节点,即多方节点。在本申请实施例中,所述多方节点中的每个节点所属于一个或多个层级。所述多方节点对应有多个层级,层级的级别递减,低层级节点中包括相邻的高层级节点。
例如,多个参与方为行政关系,则按照行政级别,可以分为主管级和员工级这样两个层级。有的节点属于普通员工层级,而有的节点可同时属于主管级和员工级,按照行政级别,员工级的层级低于主管级的层级。每个节点可基于所属最高层级确定对应所属层级。例如,主管级节点所属最高层级为主管级,则还属于较低的员工级。这表明,高层级节点可向下兼容低层级节点,可获知其信息,例如获知哪个节点是员工级节点,而低层级节点不能反向获知哪个节点是高层级节点。同层级的节点可相互获知所属最高层级。低层级的节点应包含有相邻的所有高一层级节点,层级的级别越高,对应的节点数量越少。
为每个层级可分别配置各自的门限签名阈值,结合作为限定门限签名的条件。设定门限签名阈值,为需参与门限签名的节点数量下限值,若参与签名的节点数量小于设定门限签名阈值,则门限签名无法得到有效验签。
例如,多层级门限签名适合于这样的场景,一家单位有辆公车和10个员工,其中7个普通员工和3个主管员工,规定只要有任意3个员工同意,且至少有2个主管员工同意,即可使用该辆公车。则10个节点属于员工级,员工级的门限签名阈值为3;3个主管节点同时属于员工级和主管级,主管级的门限签名阈值为2。只有同时满足主管级和员工级的门限签名阈值条件,门限签名才能被有效验证。
在不同场景中,多方节点的层级数量、层级的设定门限签名阈值可以根据实际业务需求来进行设定。每个节点所属的每个层级都会持有一个私钥,且私钥对应有公钥,组成非对称密钥对。
门限签名技术涉及多方节点,本申请实施例采用去中心化生成密钥和签名技术,多方节点中的任一节点均可执行下述密钥生成方法。多方参与的门限签名可应用于各种业务场景中,例如,可应用于区块链系统,由多个区块链节点共同处理事务请求的过程中,可由多个区块链节点作为多方节点,完成密钥生成、签名和验签的处理,本实施例以区块链应用场景为例进行说明,但本领域技术人员可以理解的是,门限签名技术并不限于区块链应用场景。
参见图1,本实施例提供的密钥生成方法包括:
S110、分别确定本机节点所属每个层级各自的第一本地秘密;
在上述操作中,本机节点按照所属的一个或多个层级,分别为每个层级生成一个第一本地秘密。
可选的,第一本地秘密是本机节点自身产生的字符串,节点仅掌握着所属于自己的第一本地秘密。
可选的,利用拉格朗日多项式方法对第一本地秘密进行切分。切分得到的秘密碎片可以是等长的,在这里不作限定,具体依据实际情况确定。第一本地秘密所切分的秘密碎片的数量为属于当前层级的节点数量。
在一个可行的实施例中,分别确定本机节点所属每个层级各自的第一本地秘密具体包括:
针对本机节点所属的每个层级,基于随机数,按照设定生成算法生成一个字节数组或数字,作为所述第一本地秘密;或
针对本机节点所属的每个层级,根据用户设置的助记词,按照设定恢复算法生成一个字节数组或数字,作为所述第一本地秘密。
基于随机数,按照设定生成算法生成一个字节数组或数字,即第一本地秘密是随机的。
其中,助记词一般由字符串构成,几个字符之间由空格隔开,这些字符串可来源于用户的设定。第一本地秘密根据设定生成算法从助记词恢复确定为一个字节数组或者数字,所以该一个字节数组或者数字与助记词之间的转换是互通的。根据用户设置的助记词,按照设定恢复算法生成一个字节数组或数字,作为所述第一本地秘密。
通过上述方式确定本机节点的第一本地秘密安全性和隐私性更高,各节点产生的第一本地秘密相似的概率更小,第一本地秘密被破解的可能性更低。根据第一本地秘密的秘密碎片生成密钥可以有效提高了密钥生成的安全性。
S120、分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点。
可选的,将切分得到的秘密碎片一一对应的传输给当前层级每个节点的同时为本机节点保留一份秘密碎片。即各节点的第一本地秘密的秘密碎片均在同层级节点之间交换,高层级节点可同时交换高层级和更低层级的秘密碎片。在此过程中,低层级的节点仅能得到高层级节点对应于低层级的秘密碎片,而无法获得高层级的秘密碎片,所以无法识别节点是否属于高层级的身份。
在一个可行的实施例中,可选的,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各秘密碎片一一对应的传输给所述多方节点中的每个节点包括:
按照当前层级中节点的数量以及当前层级的设定门限签名阈值,将当前层级的第一本地秘密切分为秘密碎片;其中,所述设定门限签名阈值为当前层级需参与门限签名的节点数量下限值;
将当前层级的各所述秘密碎片,按照所述秘密碎片被切分时确定的碎片编号和所述多方节点的节点编号,分别传输给所述当前层级中的每个节点;其中,每个节点中记录的节点编号与节点的对应关系相同。
可选的,对多方节点按照一定的规则统一编号,并记录各节点与编号的关联关系。将每个层级的第一本地秘密按照该层级中节点的数量以及设定门限签名阈值,切分为秘密碎片,并利用对节点进行编号的规则对秘密碎片编号。具体可以是基于秘密分享技术对第一本地秘密进行切分,使得切分后的秘密碎片在各自产生私钥后,当通过私钥进行签名时,只有达到设定门限签名阈值数量的节点参与签名,才能有效通过公钥的验证。
例如,6个节点,相应编号为1至6,高层级节点的编号在前,低层级节点的编号在后。如1-3为3个主管级节点,4-6为6个普通员工级节点。
各个层级的秘密碎片切分方式相同,针对任一层级,具体切分方式可以是:节点j将第一本地秘密Xj转换为一个满足设定精度的大整数,在xy坐标系中,可基于y=fj(x)的多项式确定一条经过N个点(N为该层级的门限签名阈值)的曲线,特别的当N为2时,曲线退化为直线。当x=0时,y=fj(0)等于第一本地秘密Xj转换得到的大整数。在该曲线上切分得到M个点,每个点在曲线上的顺序编号为秘密编号,与节点编号对应。M个点中每个点的y值也作为一个大整数,可按照设定转换规则转换形成M个秘密碎片。各个节点可采用不同的fj(x)多项式来切分自己的秘密碎片,且节点之间互不知晓其他节点所采用的多项式。
相应的,可以将本机节点的秘密碎片按照碎片编号发送给相应的节点。
根据节点编号以及秘密碎片编号建立秘密碎片与节点的关联关系。接下来,按照秘密碎片与节点的关联关系,将秘密碎片传输至与秘密碎片编号一致的节点。各个节点分发传输秘密碎片的编码顺序保持相同,例如,编号为1的节点,将获得所有其他节点碎片编号为1的秘密碎片。
传输秘密碎片的目的是使与秘密碎片编号一致的节点获得该秘密碎片,对秘密碎片的传输方式在这里不作限定,具体依据实际情况确定。示例性的,可以将本机节点的秘密碎片直接传输至目标节点。最后,每个节点都会为每一个其他节点保留一个其发来的秘密碎片。通过对节点与秘密碎片进行编号,保证各个节点均能获得不同的秘密碎片集合,且在基于密钥进行签名时,在满足设定门限签名阈值的节点参与签名时,才能获得有效签名结果。
S130、获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。
本机节点除了保留自身所属每个层级第一本地秘密中与自身编号一致的秘密碎片以外,还需要从其他节点中获取所属每个层级与自身编号一致的、其他节点产生的第一本地秘密碎片。然后,根据这些秘密碎片,为每个层级生成一个非对称密钥对的私钥,以及生成一个对应于所有层级的非对称密钥对的公钥。非对称密钥对的私钥和公钥分别完成签名和验签操作,公钥公开发布,私有由节点秘密保存。
本申请实施例的技术方案,通过为节点所属每个层级确定第一本地秘密,且将第一本地秘密按照每个层级的节点数量切分为秘密碎片,再将各节点秘密碎片进行交换,能够针对每个层级生成对应的私钥和对应于所有层级的公钥,由此,在进行门限签名时,能够体现每个层级的门限签名条件,且所有节点都可以使用统一的公钥进行验签。从而实现了针对多层级的门限签名场景,能够分布式的生成密钥,整个密钥的生成过程不必依赖于中心节点,各个节点的完整秘密信息均不会被一个节点获知,进而提高了密钥生成的安全性和隐私性。
本申请实施例可适用于多种需要多层级门限签名的场景。可选的,所述多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点。其中,设定业务可以是银行财务业务、公司办公业务等业务。设定组织则可能是某个组织机构如银行系统构建的某个联盟链。区块链网络中的节点数量庞大,不同节点参与的业务和归属组织存在差异,相较于区块链中全部节点参与签名,让处理设定业务或归属于设定组织的多个节点参与签名,可有效提高签名效率,降低资源占用率。多方节点的数量等于需参与某项业务或归属于某个组织的全部节点的数量。所述多方节点的各所述层级可以按照级别属性递减,所述级别属性包括:节点业务权限级别、节点归属用户的行政级别、和节点安全性级别。
图2A是根据本申请实施例提供的另一种密钥生成方法的流程示意图。本实施例是在上述实施例的基础上提出的一种可选方案。具体的是对根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥的细化。参见图2A,本实施例提供的密钥生成方法包括:
S210、分别确定本机节点所属每个层级各自的第一本地秘密Xjl;
以前述提及方案为例,有6个节点,节点1、节点2和节点3属于主管级节点和员工级节点,此处可以理解为主管级节点向下兼容也作为员工级节点。节点4、节点5和节点6为员工级节点。以节点1为例,其生成主管级的第一本地秘密X11,和生成员工级的第一本地秘密X12;节点4则生成员工级第一本地秘密X42。其他节点类似,不再赘述。
S220、分别将每个层级作为当前层级l,将所述当前层级l的第一本地秘密Xjl按照当前层级l中节点的数量切分为秘密碎片Xjlw,将当前层级的各所述秘密碎片Xjlw一一对应的传输给当前层级中的每个节点。
其中,X为第一本地秘密,j为节点编号,节点的取值范围是[1,W],l为层级编号,层级的取值范围是[1,L],W为多方节点的数量,w为秘密碎片的编号。
如图2B所示。主管级节点1对应主管级生成第一本地秘密X11,并切分生3个秘密碎片X111、X112和X113;对应于员工级生成第一本地秘密X12,并切分生成6个秘密碎片X121、X122、X123、X124、X125和X126。员工级节点4对应于员工级生成第一本地秘密X41,并切分生成6个秘密碎片X421、X422、X423、X424、X425和X426。
主管级节点1将秘密碎片X111、X112和X113传输给主管级节点2和3;将秘密碎片X121、X122、X123、X124、X125和X126分别传输给员工级节点2-5。其他主管级节点和员工级节点也进行类似的秘密碎片切分和交换传输的操作。
S230、获取每个层级其他节点各自切分并传输的秘密碎片,分别将每个层级作为当前层级,将获取的当前层级的节点各自的秘密碎片进行累加,作为当前层级第二本地秘密。
在将获取的当前层级节点各自的秘密碎片进行累加时,也累加了与本机节点相对应的当前层级第一本地秘密的秘密碎片。仍以前述6个节点为例,主管级节点1的主管级第二本地秘密Y11为累加对应于主管级的节点1的第一本地秘密碎片X111,节点2的第一本地秘密碎片X211,以及节点3的第一本地秘密碎片X311而确定的。类似的,主管级节点1还对应于员工级累加得到第二本地秘密Y12,第二本地秘密Y12是累加秘密碎片X121、X221、X321、X421、X521和X621来确定的。
S240、将当前层级的第二本地秘密转换为设定精度整数。
可选的,设定精度整数可以是大整数。其中,大整数又称为高精度整数,其含义就是用基本数据类型无法存储其精度的整数,是基于椭圆曲线转换获得私钥中所使用的设定整数。
S250、基于设定椭圆曲线,将所述设定精度整数转换为所述设定椭圆曲线上的私钥,作为当前层级的非对称密钥对的私钥。
其中,椭圆曲线是基于椭圆曲线数学的一种公钥密码的方法,是目前被广泛使用的强大的密码学。基于设定椭圆曲线,将所述设定精度整数转换为所述设定椭圆曲线上的私钥。在椭圆曲线已知的情况下,通过椭圆曲线加密规则即可将设定精度整数转换为所述设定椭圆曲线上的私钥。每个节点都会按照上述方法对应于自身所属的每个层级分别生成一个私钥Pjl,该私钥Pjl并不对外宣示,由节点自己保存。
上述为每个节点对应于所属的每个层级分别生成私钥的过程,可见,最低层级节点仅对应最低层级生成私钥,高层级节点则对应于自己所属最高层级及其下每个低层级均生成一个私钥。
下面继续介绍公钥生成过程,即根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥具体包括:
S260、分别将每个层级作为当前层级l,根据所述当前层级l的第一本地秘密Xjl生成当前层级l的层级验证值Vjl,将每个层级的层级验证值进行累加,以生成节点验证值Vj;
S270、将所述节点验证值Vj传输给所述多方节点中的每个节点。
可选的,本机节点将每个层级第一本地秘密的秘密碎片,传输给对应层级中的每个节点的同时,还会生成一个层级验证值,如图2B所示,节点1生成主管级的层级验证值V11和员工级的层级验证值V12,节点4生成员工级的层级验证值V42。其中,层级验证值Vjl可以是本机节点的层级l的第一本地秘密与椭圆曲线基点G的乘积。节点如果所属于多个层级,则将多个层级验证值进行累加,得到节点验证值;如果所属于一个层级,则直接将层级验证值作为节点验证值。节点验证值传输给多方节点中的每个节点,不区分层级。
S280、获取所述多方节点中其他节点各自生成并传输的节点验证值,并根据获取的所述多方节点各自的节点验证值,基于所述设定椭圆曲线的基点生成非对称密钥对的公钥。
可选的,本机节点将自己的节点验证值发送给多方节点中的每个节点。最后,每个节点都会为每一个其他节点保留其发来的节点验证值。每个节点根据收集的所有节点验证值,将这些节点验证值在椭圆曲线上进行累加,得到门限验证值,进而生成非对称密钥对的公钥C,验证值的累加顺序不限定,每个节点都有能力来计算出非对称密钥对的公钥。该公钥对应于所有层级,即每个节点持有的公钥是相同的,可以被每个节点用于验证门限签名是否正确。
本申请实施例的技术方案,通过秘密碎片结合椭圆曲线的方法,生成了非对称密钥对的私钥和公钥。每个私钥分别对应于每个层级,且由节点私有,能够根据节点所属层级来发挥签名作用,公钥对应于所有层级,能够使每个节点均能相同的进行签名验证,无需在验签过程中获知或区分节点所属层级的身份。
图3是根据本申请实施例提供的一种基于密钥的门限签名方法的流程示意图。本实施例可适用于对本申请任一实施例所述密钥生成方法所生成的非对称密钥进行门限签名的情况,能够适用于相同的多层级多方节点的场景,从而能实现多层级门限签名,且提高门限签名的安全性。本实施例公开的基于密钥的门限签名方法可以由基于门限签名装置来执行,该装置可以由软件和/或硬件的方式实现,配置于电子设备中。参见图3,本实施例提供的基于密钥的门限签名方法包括:
S310、采用本机节点每个层级的私钥对待签名消息分别进行签名,以产生层级密钥参数碎片,将层级密钥参数碎片进行累加以生成密钥参数碎片,将所述密钥参数碎片传输给所述多方节点中的其他节点。
其中,私钥是多方节点中每个节点自己保存的,并不对外宣示。其中,采用本机节点每个层级的私钥分别对待签名消息进行签名,即表示对待签名消息进行签名的本机节点已确认该待签名消息的内容,并对此负责。在一可行实施例中,可选的,所述待签名消息为基于区块链网络协议发起的事务请求。签名过程一般在某个节点向区块链发起事务请求,该事务请求需要门限签名时来执行。
值得注意的是,并非多方节点中的每个节点都参与某次签名,即会有节点不能或不愿意参与签名。因此,实际签名的节点数小于等于多方节点数。
在一个可行的实施例中,其中,所述多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点。所述多方节点的各所述层级按照级别属性递减,所述级别属性包括:节点业务权限级别、节点归属用户的行政级别、和节点安全性级别。
在采用本机节点对待签名消息进行签名时,会产生一个密钥参数碎片,最终各个节点产生的密钥参数碎片数与实际签名的节点数相同。根据门限N/W原理有W个节点,每个节点都会持有一个或多个层级的私钥Pjl,但是所有私钥对应一个公钥C。只要每个层级有满足门限签名阈值数量的节点进行互相配合,进行多方签名,就可以得到正确签名结果。在一个可行的实施例中,针对每个层级,生成所述密钥参数的层级密钥参数碎片的数量分别大于或等于对应层级的设定门限签名阈值。只有当每个层级生成所述密钥参数的密钥参数碎片的数量大于或等于设定门限签名阈值时,最终得到的密钥参数才能是有效的,才有可能获得有效的门限签名。
当存在不参与签名的节点时,将所述密钥参数碎片传输给所述多方节点中的其他节点,可以将密钥参数碎片传输至多方节点中的每个节点,不参与签名的节点在收到该参数碎片后丢弃。或者,如果本机节点知道哪些节点参加计算,只将密钥参数碎片传输至参加签名计算的节点,其他不参与签名的节点不发。
在一个可行的实施例中,所述密钥参数包括第一密钥参数和第二密钥参数。两个密钥参数共同确定一个最终的密钥参数,只有两个密钥参数均正确的条件下,才能得到正确的最终密钥参数。相较于一个密钥参数,安全性更高。
S320、获取根据各节点的密钥参数碎片生成的密钥参数。
其中,密钥参数是根据本机节点生成自身的密钥参数碎片以及从其他的多方节点处获取密钥参数碎片经过设定的运算得到的。
S330、根据所述密钥参数封装形成所述待签名消息的门限签名结果。
其中,密钥参数封装可以是按照设定的签名数据结构进行封装。在一可行实施例中,可选的,所述待签名消息的签名结果用于作为事务数据存储至区块链中。
本申请实施例的技术方案,通过根据由各个节点基于每个层级各自私钥生成的密钥参数碎片得到的密钥参数,再结合门限签名技术,完成了对待签名消息的门限签名,并且能够限制签名需要分别满足每个层级的门限签名阈值要求。本申请实施例只需满足门限数量要求,无需所有节点参与签名,即可完成对待签名消息的签名,从而降低了区块链的计算工作量,降低了成本,本申请实施例通过交换密钥参数碎片的方式,根据获取到的密钥参数碎片生成密钥参数,而后据此生成签名。实现了分布式的密钥参数生成,不必依赖于中心节点生成,从而提高了签名的安全度。
图4A是根据本申请实施例提供的又一种基于密钥的门限签名方法的流程示意图。本实施例是在上述实施例的基础上提出的一种可选方案。具体的,对于生成第一密钥参数的过程以及生成第二密钥参数的过程进行细化。参见图4A,本实施例提供的基于密钥的门限签名方法包括:
S410、采用本机节点每个层级的私钥进行累加,并采用累加后的私钥对待签名消息进行签名,以产生第一密钥参数碎片,且将所述第一密钥参数碎片传输给所述多方节点中的其他节点。
实际参与签名的本机节点j根据每个层级l的自身私钥Pjl进行累加,将累加后私钥对待签名消息M进行计算,以得到第一密钥参数碎片Rj。或者,也可以先分别采用每个层级的私钥对待签名消息进行计算,得到第一层级密钥参数碎片,而后将碎片进行累加,得到第一密钥参数碎片。
例如,主管级节点1将生成第一密钥参数碎片R1,而员工级节点4将生成第一密钥参数碎片R4。本机节点将第一密钥参数碎片Rj传输至多方节点中的其他节点。
值得注意的是,并非多方节点中的每个节点都参与某次签名,即会有节点不参与签名。因此,实际签名的节点数小于等于该层级的节点数。当存在不参与签名的节点时,可以将所述第一密钥参数碎片传输给每个节点,不参与签名的节点在收到该第一密钥参数碎片后丢弃。或者,如果本机节点知道哪些节点参加签名计算,只将第一密钥参数碎片传输至参加签名计算的节点,不发给其他不参与签名的节点。节点之间可以在发起业务的签名之前,先通过协商来确定哪些节点参与签名计算。
在一可行实施例中,可选的,如图4B所示,采用本机节点j每个层级的私钥Pjl进行累加,并采用累加后的私钥对待签名消息M进行签名,以产生第一密钥参数碎片包括:根据本机节点j每个层级l的私钥Pjl进行累加,以得到累加后的私钥Pj,采用累加后的私钥Pj和所述待签名消息M,进行哈希计算,以得到哈希特征值Hj;将所述哈希特征值Hj转换为数字参数Kj;根据所述数字参数Kj和所述设定椭圆曲线的基点G,计算所述第一密钥参数碎片Rj。图4B中以节点1和节点4的第一密钥参数碎片生成过程为例进行说明。
根据本机节点的私钥和所述待签名消息,进行哈希计算,即利用哈希函数对本机节点的私钥和所述待签名消息进行计算。哈希函数是一种“压缩函数”,利用哈希函数可以把任意长度的输入经由散列函数算法变换成固定长度的输出,输出的即为哈希特征值。
根据哈希特征值和椭圆曲线基点的方法计算第一密钥参数碎片,提高了第一密钥参数碎片计算速度,提高了第一密钥参数碎片计算的安全性能。
当参与签名的节点1、节点2和节点4分别交换了各自生成的第一密钥参数碎片之后,由于只有同层级节点彼此知道节点所属层级的身份,所在进行第一密钥参数碎片交换时,低层级节点无法获知高层级节点的碎片,所以高层级节点向低层级节点隐藏了节点所属层级的身份,安全性更高。
可选的,本机节点各个层级的私钥是由本申请实施例所提供的密钥生成方法所生成的。
S420、获取所述多方节点中其他节点各自产生并传输的第一密钥参数碎片,并将获取的其他节点的第一密钥参数进行累加,以生成第一密钥参数。
多个多方节点相配合,利用从其他节点获取的第一密钥参数碎片Rj进行累加,生成第一密钥参数R。所有参与签名节点最终得到的第一密钥参数R相同。如图4B所示,假设节点1、节点2和节点4参与签名,而节点3、节点5和节点6不参与本次签名。则节点1可获得节点2的第一密钥参数碎片R2和节点4的第一密钥参数碎片R4。节点1将本机节点的第一密钥参数碎片R1、节点2的第一密钥参数碎片R2和节点4的第一密钥参数碎片R4进行累加,得到第一密钥参数R。其他参与签名节点所执行的方案类似,各自均可得到第一密钥参数R,如图4B所示。
这样做可以隐藏实际签名参与节点的信息,具有更强的隐私性。
S430、将每个层级作为当前层级,在当前层级中,根据本机节点的节点编号、以及获取到第一密钥参数碎片的其他节点的节点编号,计算生成本机节点当前层级第一本地秘密的层级偏离值。
由于同层级节点之间彼此知道所属层级的身份,则可以通过交换第一密钥参数碎片来获知在同层级中,哪些节点参与了签名。具体是,对于每个节点来说,多方节点中每个节点的编号是固定的,在进行层级设置或协商时,或通过交换第一本地秘密碎片时,同层级节点之间可以彼此识别所属层级的身份,并记录此身份。即,节点1、节点2和节点3之间,彼此知道是属于主管级的,节点1-节点6之间,彼此知道是属于员工级的。由此,节点可通过签名前协商来获知同层级参与签名的节点编号,也可以通过交换第一密钥参数碎片的节点编号及对应的所属层级身份来获知同层级参与签名的节点编号。
层级偏离值是指在每个层级中,各个节点第一本地秘密相对于同层级所有节点的第一本地秘密之和的偏离系数。本机节点可以根据自己的节点编号,以及获取到第一密钥参数碎片的其他节点(表明这些节点实际参与签名)的节点编号,基于对各个节点多项式的插值计算来确定本机节点第一本地秘密的层级偏离值。层级偏离值的计算过程与第一本地秘密按照所述多方节点的数量以及设定门限签名阈值进行切分的过程相对应。如果节点属于多个层级,则针对每个层级分别计算一个层级偏离值。
具体的,针对层级l,每个节点j的第一本地秘密Xjl转换后的大整数乘以层级偏离值,累加求和,得到的是通过所有点(x,sum(y))的多项式f(x)所代表的曲线,特别是N=2时曲线退化为直线。f(x)实际上为所有节点各自多项式,f1(x),f2(x),……fw(x)之和,在每个节点不知道其他多项式参数时,可基于各多项式之和来求取各个第一本地秘密的偏离系数。当x=0时f(x)的值是所有参与节点所保管的第一本地秘密对应大整数之和,其中,x代表第一本地秘密的编号,y代表第一本地秘密转换的大整数乘以偏离系数的值,sum(y)是所有节点第一本地秘密的大整数乘以偏离系数之和。层级偏离值即作为第一本地秘密Xjl在第二层级密钥参数碎片Sj中的偏离系数,不同节点的偏离系数不同。为了求取层级偏离值,可通过拉格朗日插值公式(Lagrange interpolation formula)来获得插值基函数(Lagrangebase polynomial)。
本机节点和本机能获得第一密钥参数碎片的其他节点,都是实际参与签名的节点,本机节点能通过接收第一密钥参数碎片来获得所有参与签名的节点编号。根据这些节点编号,若参与签名节点的数量大于或等于N,则基于拉格朗日插值公式能正确计算得到f(x)的公式参数。若参与签名节点的数量小于N,则计算得到的f(x)公式参数错误,得到层级偏离值后,基于此层级偏离值得到的签名结果将无法满足签名验证的条件。实际计算时,并不需要获得每个基多项式,可只获得每个基多项式当x=0时的值,即常数项的系数作为层级偏离值。
例如,三个节点中,若第1个节点和第3个节点参与签名,第2个节点未参与签名,则可获得两个点的x、y值,如下:
点1是(x=1,sum(秘密X11的秘密碎片X111的y值+秘密X21的秘密碎片X211的y值+秘密X31的秘密碎片X311的y值))
点3是(x=3,sum(秘密X11的秘密碎片113的y值+秘密X21的秘密碎片X213的y值+秘密X31的秘密碎片X313的y值))。
基于上述两点可确定f(x)和层级1的层级偏离值。
S440、采用本机节点每个层级的私钥分别对所述待签名消息、所述层级偏离值、所述公钥和所述第一密钥参数进行签名,以产生第二层级密钥参数碎片,并将所述第二层级密钥参数碎片进行累加,以生成第二密钥参数碎片。
可选的,如图4C(图4C中以节点1中员工级2的第二层级密钥参数碎片S12的计算过程为例进行说明)所示,采用本机节点每个层级的私钥分别对所述待签名消息、所述层级偏离值、所述公钥和所述第一密钥参数进行签名,以产生每个层级的第二层级密钥参数碎片包括:
针对每个层级,按照如下公式产生所述第二层级密钥参数碎片:
Sjl = Kjl + HASH(C,R,M) * Coef(jl) * Pjl
其中,所述Sjl为节点j第l层级产生的第二层级密钥参数碎片,Kjl为节点j第l层级的数字参数,C为所述公钥,R为所述第一密钥参数,M为所述待签名消息,HASH(C,R,M)对所述公钥C、所述第一密钥参数R和所述待签名消息M进行哈希计算的结果,所述Pjl为节点j第l层级的私钥,Coef(jl)为节点j第l层级的层级偏离值。其中,l的取值范围[1,L],L为层级数量,是大于或等于2的整数。
第二层级密钥参数碎片是在第一密钥参数的基础上产生的,只有在第一密钥参数正确的情况下,才可以得到正确的第二层级密钥参数碎片,提高第二密钥计算的安全性,此外,第二层级密钥参数碎片的计算过程中还考虑层级偏离值,使得第二层级密钥参数碎片的计算更准确。
如果节点属于多个层级,则将计算得到的多个层级的第二层级密钥参数碎片进行累加,得到第二密钥参数Sj。如果节点属于一个层级,则累加的效果相当于直接将一个第二层级密钥参数碎片确定为第二密钥参数碎片。
S450、将所述第二密钥参数碎片传输给所述多方节点中的其他节点,以供所述其他节点根据获取到的各第二密钥参数碎片进行累加计算,以产生第二密钥参数。
其中,本机节点为实际参与此次签名的节点。将第二密钥参数碎片传输给所述多方节点中的其他节点,具体是可以分别传输给每个节点,或者,首个实际参与节点将自己的第二密钥参数碎片发送给另一个实际参与节点,然后依次传递。
可选的,最后一个实际参与节点将收到的所有的第二密钥参数碎片进行累加计算,得到第二密钥参数,如图4B所示。再将该第二密钥参数向其他多方节点广播。
在一可行实施例中,可选的,将所述第二密钥参数碎片传输给所述多方节点中的其他节点包括:
将所述第二密钥参数碎片,按照设定传输顺序,依次传输给所述多方节点中的其他节点,以指示获取到第二密钥参数碎片的节点进行第二密钥参数碎片的累加计算,直至产生所述第二密钥参数。其中,所述设定传输顺序可以为节点编号顺序。
将第二密钥参数碎片按照设定顺序传输,可有效提高第二密钥的传输效率和生成效率,方便对于第二密钥参数进行管理。
S460、获取所述其他节点返回的所述第二密钥参数。
根据多方节点产生的第二密钥参数碎片确定第二密钥参数,实现了分布式的密钥参数生成,不必依赖于中心节点生成第二密钥参数,从而提高了第二密钥参数生成的安全性。
S470、根据所述密钥参数封装形成所述待签名消息的门限签名结果。
在本实施例中,密钥参数具体是第一密钥参数R和第二密钥参数S。
本申请实施例的技术方案,通过去中心化的多方签名方法计算第一密钥参数和第二密钥参数,再根据密钥参数形成所述待签名消息的门限签名结果。多个多方节点相配合,最终得到一个签名,这样做可以隐藏实际签名参与节点的信息,这样得到的签名的安全性更高,不易被篡改。根据获取到的密钥参数碎片生成密钥参数,而后据此生成签名。实现了分布式的密钥参数生成,不必依赖于中心节点生成,从而提高了签名的安全度。
图5是根据本申请实施例提供的一种基于密钥的门限签名验签方法的流程示意图。本实施例可适用于对本申请任一实施例所述密钥生成方法所生成的非对称密钥进行多层级门限签名验签的情况,从而提高门限签名验签的安全性。本实施例公开的基于密钥的门限签名验签方法可以由基于密钥的门限签名验签装置来执行,该装置可以由软件和/或硬件的方式实现,配置于电子设备中。参见图5,本实施例提供的基于密钥的门限签名验签方法包括:
S510、获取待验签消息和签名结果;其中,所述签名结果采用本申请任一实施例所述的基于密钥的门限签名方法进行签名。
其中,所述待验签消息可以为基于区块链网络协议发起的事务请求,或者也可以为其他采用门限签名的消息内容。签名结果即为节点根据自身产生的私钥,采用本申请任一实施例所述的基于密钥的门限签名方法进行签名,得到的签名结果。
S520、采用所述公钥对所述签名结果进行签名验证。
其中,公钥是多方节点根据所述第一本地秘密生成验证值以及其他多方节点中其他节点传输的验证值,基于设定椭圆曲线的基点生成非对称密钥对的公钥。例如,公钥是在区块网络中公示的,各个区块节点均可获得。
在一个可行的实施例中,按照如下公式计算待验证签名参数:
Rv = SG – eC;
其中,所述Rv为待验证签名参数,S为所述签名结果中第二密钥参数,G是设定椭圆曲线的基点,C是所述公钥,e = HASH(C,R,M),R为第一密钥参数,M为待验签消息;
如果所述待验证签名参数Rv和所述第一密钥参数R匹配,则签名结果验证通过。例如,Rv==R,表明两者匹配。
本申请实施例根据基于密钥的门限签名过程中产生的第一密钥参数和第二密钥参数完成对签名结果的签名验证,保证了验证过程的安全性及可信性。
其中,第一密钥参数是本申请实施例提供的基于密钥的门限签名方法中产生的。如果所述待验证签名参数和所述第一密钥参数匹配,则签名结果验证通过,表明待验签消息是真实可信的。如果所述待验证签名参数和所述第一密钥参数不匹配,则签名结果验证失败,表明待验签消息的真实性有待商榷。
在一个可行的实施例中,其中,获取待验签消息和签名结果包括:在区块链的事务数据验证过程中,获取所述待验签消息和签名结果。
在区块链系统中,当节点发起事务请求时,可能需要多方节点对该事务请求进行处理,处理过程则可能进行多方签名,以保证该处理过程和结果得到了多方节点的认可。而后,处理后的事务数据上传至区块链中进行存储。当需要从区块链中查询该事务数据,或该事务数据被再次引用时,则可能需要验证该事务数据的真实性,即是否得到了多方节点的认可,由此,需要多方节点进行签名验证。需要进行多方前面的事务请求可能有多种,例如,对同一个账户内资金的转移处理,可能需要该账户所属多个持有人中设定数量持有人的同意。
本申请实施例的技术方案,通过获取待验签消息和签名结果,采用所述公钥对所述签名结果进行签名验证,完成了对基于密钥的门限签名的验签,验证了待验签消息的真实性和有效性,并且在验证签名的过程中,无法获知哪个节点参与了签名,具有一定的匿名性。本申请实施例提供的基于密钥的门限签名验签方法与本申请实施例提供的基于密钥的门限签名方法相配合,有效地保证了区块链的事务数据验证过程的安全性及可信性。
本申请实施例的技术方案,提出了一种尤其适用于区块链网络的、使用多方安全计算技术来进行多层级门限签名的方案。在进行区块链网络的多个节点进行去中心化决策时,具有多层级权限设计,只有每一层级的门限要求都得到满足,才能生成有效的门限签名。该方案并不是简单的门限签名方案的多次累加,最终只会生成一个签名,而且多方安全计算过程较为简洁,低层级节点在计算过程中,并不能感知到高层级节点的身份,具有很强的匿名性。同时使用多层次的门限签名技术与多方安全计算技术相结合,能够高效的完成计算过程,并完成签名结果的计算与验证,具有很高的可用性。
图6是根据本申请实施例提供的密钥生成装置的结构示意图。参见图6,本申请实施例公开了密钥生成装置600,该装置600可以包括:
第一本地秘密确定模块610,用于分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;
秘密碎片生成及传输模块620,用于分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;
公私钥生成模块630,用于获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。
本申请实施例的技术方案,通过为节点所属每个层级确定第一本地秘密,且将第一本地秘密按照每个层级的节点数量切分为秘密碎片,再将各节点秘密碎片进行交换,能够针对每个层级生成对应的私钥和对应于所有层级的公钥,由此,在进行门限签名时,能够体现每个层级的门限签名条件,且所有节点都可以使用统一的公钥进行验签。从而实现了针对多层级的门限签名场景,能够分布式的生成密钥,整个密钥的生成过程不必依赖于中心节点,各个节点的完整秘密信息均不会被一个节点获知,进而提高了密钥生成的安全性和隐私性。
可选的,第一本地秘密确定模块,包括:第一本地秘密生成子模块,用于针对本机节点所属的每个层级,基于随机数,按照设定生成算法生成一个字节数组或数字,作为所述第一本地秘密;或,针对本机节点所属的每个层级,根据用户设置的助记词,按照设定恢复算法生成一个字节数组或数字,作为所述第一本地秘密。
可选的,秘密碎片生成及传输模块,包括:秘密碎片生成子模块,用于按照当前层级中节点的数量以及当前层级的设定门限签名阈值,将当前层级的第一本地秘密切分为秘密碎片;其中,所述设定门限签名阈值为当前层级需参与门限签名的节点数量下限值;
秘密碎片传输子模块,用于将当前层级的各所述秘密碎片,按照所述秘密碎片被切分时确定的碎片编号和所述多方节点的节点编号,分别传输给所述当前层级中的每个节点;其中,每个节点中记录的节点编号与节点的对应关系相同。
可选的,公私钥生成模块,包括:第二本地秘密生成子模块,用于分别将每个层级作为当前层级,将获取的当前层级的节点各自的秘密碎片进行累加,作为当前层级的第二本地秘密;
第二本地秘密转换子模块,用于将所述当前层级的第二本地秘密转换为设定精度整数;
私钥生成子模块,用于基于设定椭圆曲线,将所述设定精度整数转换为所述设定椭圆曲线上的私钥,作为当前层级的非对称密钥对的私钥。
可选的,公私钥生成模块,包括:节点验证值生成子模块,用于分别将每个层级作为当前层级,根据所述当前层级的第一本地秘密生成当前层级的层级验证值,将每个层级的层级验证值进行累加,以生成节点验证值;
节点验证值传输子模块,用于将所述节点验证值传输给所述多方节点中的每个节点;
公钥生成子模块,用于获取所述多方节点中其他节点各自生成并传输的节点验证值,并根据获取的所述多方节点各自的节点验证值,基于所述设定椭圆曲线的基点生成非对称密钥对的公钥。
可选的,所述多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点;所述多方节点的各所述层级按照级别属性递减,所述级别属性包括:节点业务权限级别、节点归属用户的行政级别、和节点安全性级别。。
本申请实施例所提供的密钥生成装置可执行本申请任意实施例所提供的密钥生成方法,具备执行密钥生成方法相应的功能模块和有益效果。
图7是根据本申请实施例提供的一种基于密钥的门限签名装置的结构示意图。参见图7,本申请实施例公开了基于密钥的门限签名装置700,该装置配置于多方节点中的任一节点中,所述密钥为本申请任意实施例所提供的密钥生成装置所生成的非对称密钥对,该装置700可以包括:
密钥参数碎片生成及传输模块710,用于采用本机节点每个层级的私钥对待签名消息分别进行签名,以产生层级密钥参数碎片,将层级密钥参数碎片进行累加以生成密钥参数碎片,将所述密钥参数碎片传输给所述多方节点中的其他节点;
密钥参数获取模块720,用于获取根据各节点的密钥参数碎片生成的密钥参数;
门限签名结果形成模块730,用于根据所述密钥参数封装形成所述待签名消息的门限签名结果。
本申请实施例的技术方案,通过根据由各个节点基于每个层级各自私钥生成的密钥参数碎片得到的密钥参数,再结合门限签名技术,完成了对待签名消息的门限签名,并且能够限制签名需要分别满足每个层级的门限签名阈值要求。本申请实施例只需满足门限数量要求,无需所有节点参与签名,即可完成对待签名消息的签名,从而降低了区块链的计算工作量,降低了成本,本申请实施例通过交换密钥参数碎片的方式,根据获取到的密钥参数碎片生成密钥参数,而后据此生成签名。实现了分布式的密钥参数生成,不必依赖于中心节点生成,从而提高了签名的安全度。
可选的,其中,所述密钥参数包括第一密钥参数和第二密钥参数,则第一密钥参数生成模块,包括:第一密钥参数碎片生成及传输子模块,用于采用本机节点每个层级的私钥进行累加,并采用累加后的私钥对待签名消息进行签名,以产生第一密钥参数碎片,且将所述第一密钥参数碎片传输给所述多方节点中的其他节点;
第一密钥参数生成子模块,用于获取所述多方节点中其他节点各自产生并传输的第一密钥参数碎片,并将获取的其他节点的第一密钥参数碎片进行累加,以生成第一密钥参数;
相应的,第二密钥参数生成模块包括:第一本地秘密层级偏离值计算子模块,用于将每个层级作为当前层级,在当前层级中,根据本机节点的节点编号、以及获取到第一密钥参数碎片的其他节点的节点编号,计算生成本机节点当前层级第一本地秘密的层级偏离值;
第二密钥参数碎片生成子模块,用于采用本机节点每个层级的私钥分别对所述待签名消息、所述层级偏离值、所述公钥和所述第一密钥参数进行签名,以产生每个层级的第二层级密钥参数碎片,并将所述第二层级密钥参数碎片进行累加,以生成第二密钥参数碎片;
第二密钥参数生成子模块,用于将所述第二密钥参数碎片传输给所述多方节点中的其他节点,以供所述其他节点根据获取到的各第二密钥参数碎片进行累加计算,以产生第二密钥参数;
第二密钥参数获取模块,用于获取所述其他节点返回的所述第二密钥参数。
可选的,第一密钥参数碎片生成及传输子模块,包括:哈希特征值计算单元,用于根据本机节点每个层级的私钥进行累加,以得到累加后的私钥,采用所述累加后的私钥和所述待签名消息,进行哈希计算,以得到哈希特征值;
哈希特征值转换单元,用于将所述哈希特征值转换为数字参数;
第一密钥参数碎片计算单元,用于根据所述数字参数和所述设定椭圆曲线的基点,计算所述第一密钥参数碎片。
可选的,第二密钥参数碎片生成子模块,包括:第二层级密钥参数碎片计算单元,用于针对每个层级,按照如下公式产生所述第二层级密钥参数碎片:
Sjl = Kjl + HASH(C,R,M) * Coef(jl) * Pjl
其中,所述Sjl为节点j第l层级产生的第二层级密钥参数碎片,Kjl为节点j第l层级的数字参数,C为所述公钥,R为所述第一密钥参数,M为所述待签名消息,HASH(C,R,M)对所述公钥C、所述第一密钥参数R和所述待签名消息M进行哈希计算的结果,所述Pjl为节点j第l层级的私钥,Coef(jl)为节点j第l层级的层级偏离值,其中,l的取值范围[1,L],L为层级数量,是大于或等于2的整数。
可选的,第二密钥参数生成子模块,包括:第二密钥参数计算单元,用于将所述第二密钥参数碎片,按照设定传输顺序,依次传输给所述多方节点中的其他节点,以指示获取到第二密钥参数碎片的节点进行第二密钥参数碎片的累加计算,直至产生所述第二密钥参数。
可选的,所述设定传输顺序为节点编号顺序。
可选的,针对每个层级,生成所述密钥参数的层级密钥参数碎片的数量分别大于或等于对应层级的设定门限签名阈值。
可选的,所述多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点;所述待签名消息为基于区块链网络协议发起的事务请求;所述待签名消息的签名结果用于作为事务数据存储至区块链中;所述多方节点的各所述层级按照级别属性递减,所述级别属性包括:节点业务权限级别、节点归属用户的行政级别、和节点安全性级别。
本申请实施例所提供的基于密钥的门限签名装置可执行本申请任意实施例所提供的基于密钥的门限签名方法,具备执行基于密钥的门限签名方法相应的功能模块和有益效果。
图8是根据本申请实施例提供的一种基于密钥的门限签名验签装置的结构示意图。参见图8,本申请实施例公开了基于密钥的门限签名装置800,该装置配置于多方节点中的任一节点中,所述密钥为本申请任意实施例所提供的密钥生成装置所生成的非对称密钥对,该装置800可以包括:
签名结果获取模块810,用于获取待验签消息和签名结果;其中,所述签名结果采用本申请任一实施例所述的基于密钥的门限签名装置进行签名;
签名验证模块820,用于采用所述公钥对所述签名结果进行签名验证。
本申请实施例的技术方案,提出了一种尤其适用于区块链网络的、使用多方安全计算技术来进行多层级门限签名的方案。在进行区块链网络的多个节点进行去中心化决策时,具有多层级权限设计,只有每一层级的门限要求都得到满足,才能生成有效的门限签名。该方案并不是简单的门限签名方案的多次累加,最终只会生成一个签名,而且多方安全计算过程较为简洁,低层级节点在计算过程中,并不能感知到高层级节点的身份,具有很强的匿名性。同时使用多层次的门限签名技术与多方安全计算技术相结合,能够高效的完成计算过程,并完成签名结果的计算与验证,具有很高的可用性。
可选的,签名验证模块820,包括:
验证签名参数计算子模块,用于按照如下公式计算待验证签名参数:
Rv = SG – eC;
其中,所述Rv为待验证签名参数,S为所述签名结果中第二密钥参数,G是设定椭圆曲线的基点,C是所述公钥,e = HASH(C,R,M),R为第一密钥参数,M为待验签消息;
参数匹配子模块,用于如果所述待验证签名参数和所述第一密钥参数匹配,则签名结果验证通过。
可选的,签名结果获取模块810,包括:
待验签消息和签名结果获取子模块,在区块链的事务数据验证过程 中,获取所述待验签消息和签名结果。
本申请实施例所提供的基于密钥的门限签名验签装置可执行本申请任意实施例所提供的基于密钥的门限签名验签方法,具备执行基于密钥的门限签名验签方法相应的功能模块和有益效果。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图9所示,是根据本申请实施例的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其他适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其他类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图9所示,该电子设备包括:一个或多个处理器910、存储器920,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其他方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其他实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器910为例。
存储器920即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请实施例所提供的密钥生成的方法,或执行本申请实施例所提供的基于密钥的门限签名方法,或执行本申请实施例所提供的基于密钥的门限签名验签方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的密钥生成的方法,或执行本申请实施例所提供的基于密钥的门限签名方法,或执行本申请实施例所提供的基于密钥的门限签名验签方法。
存储器920作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的密钥生成的方法对应的程序指令/模块(例如,附图6所示的第一本地秘密确定模块610、秘密碎片生成及传输模块620和公私钥生成模块630),或如本申请实施例中的基于密钥的门限签名方法对应的程序指令/模块(例如,附图7所示的密钥参数碎片生成及传输模块710、密钥参数获取模块720和门限签名结果形成模块730),或如本申请实施例中的基于密钥的门限签名验签方法对应的程序指令/模块(例如,附图8所示的签名结果获取模块810和签名验证模块820)。处理器910通过运行存储在存储器920中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用,即实现上述方法实施例所提供的方法。
存储器920可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器920可以包括高速随机存储存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器920可选包括相对于处理器910远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
该电子设备还可以包括:输入装置930和输出装置940。处理器910、存储器920、输入装置930和输出装置940可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置930可接收输入的数字或字符信息,以及电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置940可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其他种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本申请实施例的技术方案,通过确定本机节点的第一本地秘密,将所述第一本地秘密按照所述多方节点的数量切分为秘密碎片,再将各节点秘密碎片进行交换,再根据获取的秘密碎片生成非对称密钥对的私钥和公钥,从而实现了分布式的密钥生成,整个密钥的生成过程不必依赖于中心节点,各个节点的完整秘密信息均不会被一个节点获知,进而提高了密钥生成的安全性和隐私性。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (36)
1.一种密钥生成方法,由多方节点中的任一节点执行,所述方法包括:
分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;
分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;
获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。
2.根据权利要求1所述的方法,其中,分别确定本机节点所属每个层级各自的第一本地秘密包括:
针对本机节点所属的每个层级,基于随机数,按照设定生成算法生成一个字节数组或数字,作为所述第一本地秘密;或
针对本机节点所属的每个层级,根据用户设置的助记词,按照设定恢复算法生成一个字节数组或数字,作为所述第一本地秘密。
3.根据权利要求1所述的方法,其中,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点包括:
按照当前层级中节点的数量以及当前层级的设定门限签名阈值,将当前层级的第一本地秘密切分为秘密碎片;其中,所述设定门限签名阈值为当前层级需参与门限签名的节点数量下限值;
将当前层级的各所述秘密碎片,按照所述秘密碎片被切分时确定的碎片编号和所述多方节点的节点编号,分别传输给所述当前层级中的每个节点;其中,每个节点中记录的节点编号与节点的对应关系相同。
4.根据权利要求1所述的方法,其中,根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥包括:
分别将每个层级作为当前层级,将获取的当前层级的节点各自的秘密碎片进行累加,作为当前层级的第二本地秘密;
将所述当前层级的第二本地秘密转换为设定精度整数;
基于设定椭圆曲线,将所述设定精度整数转换为所述设定椭圆曲线上的私钥,作为当前层级的非对称密钥对的私钥。
5.根据权利要求1或4所述的方法,其中,根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥包括:
分别将每个层级作为当前层级,根据所述当前层级的第一本地秘密生成当前层级的层级验证值,将每个层级的层级验证值进行累加,以生成节点验证值;
将所述节点验证值传输给所述多方节点中的每个节点;
获取所述多方节点中其他节点各自生成并传输的节点验证值,并根据获取的所述多方节点各自的节点验证值,基于设定椭圆曲线的基点生成非对称密钥对的公钥。
6.根据权利要求1所述的方法,其中:
所述多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点;
所述多方节点的各所述层级按照级别属性递减,所述级别属性包括:节点业务权限级别、节点归属用户的行政级别、和节点安全性级别。
7.一种基于密钥的门限签名方法,由多方节点中的任一节点执行,所述密钥为权利要求1-6任一所述密钥生成方法所生成的非对称密钥对,所述方法包括:
采用本机节点每个层级的私钥对待签名消息分别进行签名,以产生层级密钥参数碎片,将层级密钥参数碎片进行累加以生成密钥参数碎片,将所述密钥参数碎片传输给所述多方节点中的其他节点;
获取根据各节点的密钥参数碎片生成的密钥参数;
根据所述密钥参数封装形成所述待签名消息的门限签名结果。
8.根据权利要求7所述的方法,其中,所述密钥参数包括第一密钥参数和第二密钥参数,则生成第一密钥参数的过程包括:
采用本机节点每个层级的私钥进行累加,并采用累加后的私钥对待签名消息进行签名,以产生第一密钥参数碎片,且将所述第一密钥参数碎片传输给所述多方节点中的其他节点;
获取所述多方节点中其他节点各自产生并传输的第一密钥参数碎片,并将获取的其他节点的第一密钥参数碎片进行累加,以生成第一密钥参数;
相应的,生成第二密钥参数的过程包括:
将每个层级作为当前层级,在当前层级中,根据本机节点的节点编号、以及获取到第一密钥参数碎片的其他节点的节点编号,计算生成本机节点当前层级第一本地秘密的层级偏离值;
采用本机节点每个层级的私钥分别对所述待签名消息、所述层级偏离值、所述公钥和所述第一密钥参数进行签名,以产生每个层级的第二层级密钥参数碎片,并将所述第二层级密钥参数碎片进行累加,以生成第二密钥参数碎片;
将所述第二密钥参数碎片传输给所述多方节点中的其他节点,以供所述其他节点根据获取到的各第二密钥参数碎片进行累加计算,以产生第二密钥参数;
获取所述其他节点返回的所述第二密钥参数。
9.根据权利要求8所述的方法,其中,采用本机节点每个层级的私钥进行累加,并采用累加后的私钥对待签名消息进行签名,以产生第一密钥参数碎片包括:
根据本机节点每个层级的私钥进行累加,以得到累加后的私钥,采用所述累加后的私钥和所述待签名消息,进行哈希计算,以得到哈希特征值;
将所述哈希特征值转换为数字参数;
根据所述数字参数和设定椭圆曲线的基点,计算所述第一密钥参数碎片。
10.根据权利要求8所述的方法,其中,采用本机节点每个层级的私钥分别对所述待签名消息、所述层级偏离值、所述公钥和所述第一密钥参数进行签名,以产生每个层级的第二层级密钥参数碎片包括:
针对每个层级,按照如下公式产生所述第二层级密钥参数碎片:
Sjl = Kjl + HASH(C,R,M) * Coef(jl) * Pjl
其中,所述Sjl为节点j第l层级产生的第二层级密钥参数碎片,Kjl为节点j第l层级的数字参数,C为所述公钥,R为所述第一密钥参数,M为所述待签名消息,HASH(C,R,M)对所述公钥C、所述第一密钥参数R和所述待签名消息M进行哈希计算的结果,所述Pjl为节点j第l层级的私钥,Coef(jl)为节点j第l层级的层级偏离值,其中,l的取值范围[1,L],L为层级数量,是大于或等于2的整数。
11.根据权利要求8所述的方法,其中,将所述第二密钥参数碎片传输给所述多方节点中的其他节点包括:
将所述第二密钥参数碎片,按照设定传输顺序,依次传输给所述多方节点中的其他节点,以指示获取到第二密钥参数碎片的节点进行第二密钥参数碎片的累加计算,直至产生所述第二密钥参数。
12.根据权利要求11所述的方法,其中,所述设定传输顺序为节点编号顺序。
13.根据权利要求7所述的方法,其中,针对每个层级,生成所述密钥参数的层级密钥参数碎片的数量分别大于或等于对应层级的设定门限签名阈值。
14.根据权利要求7所述的方法,其中:
所述多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点;
所述待签名消息为基于区块链网络协议发起的事务请求;
所述待签名消息的签名结果用于作为事务数据存储至区块链中;
所述多方节点的各所述层级按照级别属性递减,所述级别属性包括:节点业务权限级别、节点归属用户的行政级别、和节点安全性级别。
15.一种基于密钥的门限签名验签方法,由多方节点中的任一节点执行,所述密钥为权利要求1-6任一所述密钥生成方法所生成的非对称密钥对,所述方法包括:
获取待验签消息和签名结果;其中,所述签名结果采用权利要求7-14任一所述的基于密钥的门限签名方法进行签名;
采用所述公钥对所述签名结果进行签名验证。
16.根据权利要求15所述的方法,其中,采用所述公钥对所述签名结果进行签名验证包括:
按照如下公式计算待验证签名参数:
Rv = SG – eC;
其中,所述Rv为待验证签名参数,S为所述签名结果中第二密钥参数,G是设定椭圆曲线的基点,C是所述公钥,e = HASH(C,R,M),R为第一密钥参数,M为待验签消息;
如果所述待验证签名参数和所述第一密钥参数匹配,则签名结果验证通过。
17.根据权利要求15所述的方法,其中,获取待验签消息和签名结果包括:
在区块链的事务数据验证过程中,获取所述待验签消息和签名结果。
18.一种密钥生成的装置,配置于多方节点中的任一节点中,所述装置包括:
第一本地秘密确定模块,用于分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;
秘密碎片生成及传输模块,用于分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;
公私钥生成模块,用于获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。
19.根据权利要求18所述的装置,其中,第一本地秘密确定模块,包括:
第一本地秘密生成子模块,用于针对本机节点所属的每个层级,基于随机数,按照设定生成算法生成一个字节数组或数字,作为所述第一本地秘密;或
针对本机节点所属的每个层级,根据用户设置的助记词,按照设定恢复算法生成一个字节数组或数字,作为所述第一本地秘密。
20.根据权利要求18所述的装置,其中,秘密碎片生成及传输模块,包括:
秘密碎片生成子模块,用于按照当前层级中节点的数量以及当前层级的设定门限签名阈值,将当前层级的第一本地秘密切分为秘密碎片;其中,所述设定门限签名阈值为当前层级需参与门限签名的节点数量下限值;
秘密碎片传输子模块,用于将当前层级的各所述秘密碎片,按照所述秘密碎片被切分时确定的碎片编号和所述多方节点的节点编号,分别传输给所述当前层级中的每个节点;其中,每个节点中记录的节点编号与节点的对应关系相同。
21.根据权利要求18所述的装置,其中,公私钥生成模块,包括:
第二本地秘密生成子模块,用于分别将每个层级作为当前层级,将获取的当前层级的节点各自的秘密碎片进行累加,作为当前层级的第二本地秘密;
第二本地秘密转换子模块,用于将所述当前层级的第二本地秘密转换为设定精度整数;
私钥生成子模块,用于基于设定椭圆曲线,将所述设定精度整数转换为所述设定椭圆曲线上的私钥,作为当前层级的非对称密钥对的私钥。
22.根据权利要求18或21所述的装置,其中,公私钥生成模块,包括:
节点验证值生成子模块,用于分别将每个层级作为当前层级,根据所述当前层级的第一本地秘密生成当前层级的层级验证值,将每个层级的层级验证值进行累加,以生成节点验证值;
节点验证值传输子模块,用于将所述节点验证值传输给所述多方节点中的每个节点;
公钥生成子模块,用于获取所述多方节点中其他节点各自生成并传输的节点验证值,并根据获取的所述多方节点各自的节点验证值,基于设定椭圆曲线的基点生成非对称密钥对的公钥。
23.根据权利要求18所述的装置,其中:
所述多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点;
所述多方节点的各所述层级按照级别属性递减,所述级别属性包括:节点业务权限级别、节点归属用户的行政级别、和节点安全性级别。
24.一种基于密钥的门限签名装置,配置于多方节点中的任一节点中,所述密钥为权利要求18-23任一所述密钥生成装置所生成的非对称密钥对,所述装置包括:
密钥参数碎片生成及传输模块,用于采用本机节点每个层级的私钥对待签名消息分别进行签名,以产生层级密钥参数碎片,将层级密钥参数碎片进行累加以生成密钥参数碎片,将所述密钥参数碎片传输给所述多方节点中的其他节点;
密钥参数获取模块,用于获取根据各节点的密钥参数碎片生成的密钥参数;
门限签名结果形成模块,用于根据所述密钥参数封装形成所述待签名消息的门限签名结果。
25.根据权利要求24所述的装置,其中,所述密钥参数包括第一密钥参数和第二密钥参数,则第一密钥参数生成模块,包括:
第一密钥参数碎片生成及传输子模块,用于采用本机节点每个层级的私钥进行累加,并采用累加后的私钥对待签名消息进行签名,以产生第一密钥参数碎片,且将所述第一密钥参数碎片传输给所述多方节点中的其他节点;
第一密钥参数生成子模块,用于获取所述多方节点中其他节点各自产生并传输的第一密钥参数碎片,并将获取的其他节点的第一密钥参数碎片进行累加,以生成第一密钥参数;
相应的,第二密钥参数生成模块包括:
第一本地秘密层级偏离值计算子模块,用于将每个层级作为当前层级,在当前层级中,根据本机节点的节点编号、以及获取到第一密钥参数碎片的其他节点的节点编号,计算生成本机节点当前层级第一本地秘密的层级偏离值;
第二密钥参数碎片生成子模块,用于采用本机节点每个层级的私钥分别对所述待签名消息、所述层级偏离值、所述公钥和所述第一密钥参数进行签名,以产生每个层级的第二层级密钥参数碎片,并将所述第二层级密钥参数碎片进行累加,以生成第二密钥参数碎片;
第二密钥参数生成子模块,用于将所述第二密钥参数碎片传输给所述多方节点中的其他节点,以供所述其他节点根据获取到的各第二密钥参数碎片进行累加计算,以产生第二密钥参数;
第二密钥参数获取模块,用于获取所述其他节点返回的所述第二密钥参数。
26.根据权利要求25所述的装置,其中,第一密钥参数碎片生成及传输子模块,包括:
哈希特征值计算单元,用于根据本机节点每个层级的私钥进行累加,以得到累加后的私钥,采用所述累加后的私钥和所述待签名消息,进行哈希计算,以得到哈希特征值;
哈希特征值转换单元,用于将所述哈希特征值转换为数字参数;
第一密钥参数碎片计算单元,用于根据所述数字参数和设定椭圆曲线的基点,计算所述第一密钥参数碎片。
27.根据权利要求25所述的装置,其中,第二密钥参数碎片生成子模块,包括:
第二层级密钥参数碎片计算单元,用于针对每个层级,按照如下公式产生所述第二层级密钥参数碎片:
Sjl = Kjl + HASH(C,R,M) * Coef(jl) * Pjl
其中,所述Sjl为节点j第l层级产生的第二层级密钥参数碎片,Kjl为节点j第l层级的数字参数,C为所述公钥,R为所述第一密钥参数,M为所述待签名消息,HASH(C,R,M)对所述公钥C、所述第一密钥参数R和所述待签名消息M进行哈希计算的结果,所述Pjl为节点j第l层级的私钥,Coef(jl)为节点j第l层级的层级偏离值,其中,l的取值范围[1,L],L为层级数量,是大于或等于2的整数。
28.根据权利要求25所述的装置,其中,第二密钥参数生成子模块,包括:
第二密钥参数计算单元,用于将所述第二密钥参数碎片,按照设定传输顺序,依次传输给所述多方节点中的其他节点,以指示获取到第二密钥参数碎片的节点进行第二密钥参数碎片的累加计算,直至产生所述第二密钥参数。
29.根据权利要求28所述的装置,其中,所述设定传输顺序为节点编号顺序。
30.根据权利要求24所述的装置,其中,针对每个层级,生成所述密钥参数的层级密钥参数碎片的数量分别大于或等于对应层级的设定门限签名阈值。
31.根据权利要求24所述的装置,其中:
所述多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点;
所述待签名消息为基于区块链网络协议发起的事务请求;
所述待签名消息的签名结果用于作为事务数据存储至区块链中;
所述多方节点的各所述层级按照级别属性递减,所述级别属性包括:节点业务权限级别、节点归属用户的行政级别、和节点安全性级别。
32.一种基于密钥的门限签名验签装置,配置于多方节点中的任一节点中,所述密钥为权利要求18-23任一所述密钥生成装置所生成的非对称密钥对,所述装置包括:
签名结果获取模块,用于获取待验签消息和签名结果;其中,所述签名结果采用权利要求24-31任一所述的基于密钥的门限签名装置进行签名;
签名验证模块,用于采用所述公钥对所述签名结果进行签名验证。
33.根据权利要求32所述的装置,其中,签名验证模块,包括:
验证签名参数计算子模块,用于按照如下公式计算待验证签名参数:
Rv = SG – eC;
其中,所述Rv为待验证签名参数,S为所述签名结果中第二密钥参数,G是设定椭圆曲线的基点,C是所述公钥,e = HASH(C,R,M),R为第一密钥参数,M为待验签消息;
参数匹配子模块,用于如果所述待验证签名参数和所述第一密钥参数匹配,则签名结果验证通过。
34.根据权利要求32所述的装置,其中,签名结果获取模块,包括:
待验签消息和签名结果获取子模块,在区块链的事务数据验证过程中,获取所述待签名消息和签名结果。
35.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的密钥生成方法,或执行权利要求7-14中任一项所述的基于密钥的门限签名方法,或执行权利要求15-17中任一项所述的基于密钥的门限签名验签方法。
36.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的密钥生成方法,或执行权利要求7-14中任一项所述的基于密钥的门限签名方法,或执行权利要求15-17中任一项所述的基于密钥的门限签名验签方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011091953.5A CN111934890B (zh) | 2020-10-13 | 2020-10-13 | 密钥生成方法、签名和验签方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011091953.5A CN111934890B (zh) | 2020-10-13 | 2020-10-13 | 密钥生成方法、签名和验签方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111934890A true CN111934890A (zh) | 2020-11-13 |
CN111934890B CN111934890B (zh) | 2021-01-26 |
Family
ID=73334446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011091953.5A Active CN111934890B (zh) | 2020-10-13 | 2020-10-13 | 密钥生成方法、签名和验签方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111934890B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799636A (zh) * | 2021-04-14 | 2021-05-14 | 北京百度网讯科技有限公司 | 随机数生成方法、装置、设备和存储介质 |
CN113037489A (zh) * | 2021-05-25 | 2021-06-25 | 北京百度网讯科技有限公司 | 数据处理方法、装置、设备和存储介质 |
CN113935070A (zh) * | 2021-12-16 | 2022-01-14 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
EP3934168A3 (en) * | 2020-12-29 | 2022-05-04 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Group service implementation method and device, equipment and storage medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109873828A (zh) * | 2019-03-05 | 2019-06-11 | 腾讯科技(深圳)有限公司 | 资源管理方法、装置、设备和存储介质 |
US20190342084A1 (en) * | 2018-05-03 | 2019-11-07 | International Business Machines Corporation | Blockchain for on-chain management of off-chain storage |
CN110493009A (zh) * | 2019-09-23 | 2019-11-22 | 百度在线网络技术(北京)有限公司 | 签名的生成方法和验证方法、装置、设备和介质 |
CN111541551A (zh) * | 2020-05-22 | 2020-08-14 | 杭州时戳信息科技有限公司 | 门限签名消息的处理方法、系统、存储介质及服务器 |
CN111753335A (zh) * | 2020-08-28 | 2020-10-09 | 支付宝(杭州)信息技术有限公司 | 区块内容的编辑方法及装置 |
-
2020
- 2020-10-13 CN CN202011091953.5A patent/CN111934890B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190342084A1 (en) * | 2018-05-03 | 2019-11-07 | International Business Machines Corporation | Blockchain for on-chain management of off-chain storage |
CN109873828A (zh) * | 2019-03-05 | 2019-06-11 | 腾讯科技(深圳)有限公司 | 资源管理方法、装置、设备和存储介质 |
CN110493009A (zh) * | 2019-09-23 | 2019-11-22 | 百度在线网络技术(北京)有限公司 | 签名的生成方法和验证方法、装置、设备和介质 |
CN111541551A (zh) * | 2020-05-22 | 2020-08-14 | 杭州时戳信息科技有限公司 | 门限签名消息的处理方法、系统、存储介质及服务器 |
CN111753335A (zh) * | 2020-08-28 | 2020-10-09 | 支付宝(杭州)信息技术有限公司 | 区块内容的编辑方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3934168A3 (en) * | 2020-12-29 | 2022-05-04 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Group service implementation method and device, equipment and storage medium |
US12069172B2 (en) | 2020-12-29 | 2024-08-20 | Beijing Baidu Netcom Science Technology Co., Ltd. | Group service implementation method and device, equipment and storage medium |
CN112799636A (zh) * | 2021-04-14 | 2021-05-14 | 北京百度网讯科技有限公司 | 随机数生成方法、装置、设备和存储介质 |
CN113037489A (zh) * | 2021-05-25 | 2021-06-25 | 北京百度网讯科技有限公司 | 数据处理方法、装置、设备和存储介质 |
CN113037489B (zh) * | 2021-05-25 | 2021-08-27 | 北京百度网讯科技有限公司 | 数据处理方法、装置、设备和存储介质 |
CN113935070A (zh) * | 2021-12-16 | 2022-01-14 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
CN113935070B (zh) * | 2021-12-16 | 2022-06-07 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
US11734455B2 (en) | 2021-12-16 | 2023-08-22 | Beijing Baidu Netcom Science Technology Co., Ltd. | Blockchain-based data processing method and apparatus, device, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN111934890B (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111934889B (zh) | 密钥生成方法、签名和验签方法、装置、设备和介质 | |
CN111934890B (zh) | 密钥生成方法、签名和验签方法、装置、设备和介质 | |
Lu et al. | Edge blockchain assisted lightweight privacy-preserving data aggregation for smart grid | |
Manogaran et al. | Blockchain assisted secure data sharing model for Internet of Things based smart industries | |
CN108769150B (zh) | 区块链网络的数据处理方法、装置、集群节点和存储介质 | |
CN107078910B (zh) | 生成区块链区块的方法、装置、节点、签名设备及系统 | |
Wang et al. | Distributed meter data aggregation framework based on Blockchain and homomorphic encryption | |
CN112799636B (zh) | 随机数生成方法、装置、设备和存储介质 | |
AU2018422776B2 (en) | Sybil-resistant identity generation | |
KR20200125980A (ko) | 디지털 자산의 제어를 전송하기 위한 컴퓨터 구현된 방법 및 시스템 | |
Li et al. | Cryptanalysis and improvement for certificateless aggregate signature | |
CN109640299B (zh) | 一种保证m2m通信完整及故障容错的聚合方法及系统 | |
CN112417489B (zh) | 数字签名的生成方法、装置和服务器 | |
CN110839028A (zh) | 一种雾协助工业物联网的隐私保护方法 | |
Li et al. | ISCP: An Improved Blockchain Consensus Protocol. | |
Liu et al. | Bs-iot: blockchain based software defined network framework for internet of things | |
CN117640248B (zh) | 基于区块链的电力数据共享方法及装置 | |
CN114745140A (zh) | 基于聚合加密的城市规划领域区块链共识验证方法及系统 | |
WO2022116175A1 (zh) | 数字签名的生成方法、装置和服务器 | |
Hena et al. | A three-tier authentication scheme for kerberized hadoop environment | |
Li et al. | EBFT: A hierarchical and group-based byzantine fault tolerant consensus algorithm | |
CN115632777A (zh) | 数据处理方法及电子设备 | |
Fu et al. | Decode-and-compare: An efficient verification scheme for coded edge computing | |
CN109657447B (zh) | 一种设备指纹生成方法及装置 | |
Wang et al. | A Signature Scheme Applying on Blockchain Voting Scene Based on the Asmuth-Bloom Algorithm |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |