【技术实现步骤摘要】
密钥生成方法、签名和验签方法、装置、设备和介质
本申请涉及计算机
,尤其涉及计算机加密技术和区块链
,具体涉及一种密钥生成方法、签名和验签方法、装置、设备和介质。
技术介绍
随着计算机所处理业务的复杂度提升,已经大量出现了需要多个参与方协作来完成的业务。在多方业务中,可采用多方安全计算技术来保证各个参与方之间进行协作来完成任务的计算。多方安全计算技术中会采用门限签名技术来保证数据交互的安全性。门限签名技术是密码学签名领域的一个前沿技术方向。在门限签名技术中,各参与方所采用的密钥,是进行签名的关键技术。现有门限签名技术所生成的密钥无法适应多参与方中复杂的角色签名要求。
技术实现思路
本申请提供了一种密钥生成方法、签名和验签方法、装置、设备和介质。根据本申请的一方面,提供了一种密钥生成方法,由多方节点中的任一节点执行,所述方法包括:分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层 ...
【技术保护点】
1.一种密钥生成方法,由多方节点中的任一节点执行,所述方法包括:/n分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;/n分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;/n获取所述当前层级其他节点各自切分并传输的秘密碎片,并根据获取的当前层级的节点各自的秘密碎片生成对应于当前层级的非对称密钥对的私钥,以及根据获取的每个层级的节点各自的秘密碎片生成对应于所有层级的非对称密钥对的公钥。/n
【技术特征摘要】
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.一种密钥生成的装置,配置于多方节点中的任一节点中,所述装置包括:
第一本地秘密确定模块,用于分别确定本机节点所属每个层级各自的第一本地秘密;其中,所述多方节点中的每个节点所属于一个或多个层级,所述多方节点对应有多个层级,且层级的级别递减,低层级节点中包括相邻的高层级节点;
秘密碎片生成及传输模块,用于分别将每个层级作为当前层级,将所述当前层级的第一本地秘密按照当前层级中节点的数量切分为秘密碎片,将当前层级的各所述秘密碎片一一对应的传输给当前层级中的每个节点;
公私钥生成模块,用于获取所述当前层级其他节点各自切分并传输...
【专利技术属性】
技术研发人员:荆博,
申请(专利权)人:百度在线网络技术北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。