【技术实现步骤摘要】
密钥生成方法、签名和验签方法、装置、设备和介质
本申请涉及计算机
,尤其涉及计算机加密技术和区块链
,具体涉及一种密钥生成方法、签名和验签方法、装置、设备和介质。
技术介绍
随着计算机所处理业务的复杂度提升,已经大量出现了需要多个参与方协作来完成的业务。在多方业务中,可采用多方安全计算技术来保证各个参与方之间进行协作来完成任务的计算。多方安全计算技术中会采用门限签名技术来保证数据交互的安全性。门限签名技术是密码学签名领域的一个前沿技术方向。在门限签名技术中,各参与方所采用的密钥,是进行签名的关键技术。现有门限签名技术往往采用中心化密钥生成方式,这在一定程度上会降低密钥的安全性。
技术实现思路
本申请提供了一种密钥生成方法、签名和验签方法、装置、设备和介质。根据本申请的一方面,提供了一种密钥生成方法,包括:确定本机节点的第一本地秘密,将所述第一本地秘密按照所述多方节点的数量切分为秘密碎片,将各所述秘密碎片一一对应的传输给所述多方节点中的每个节点;获取所述多方节点中其他节点各自切分并传输的秘密碎片,并根据获取的所述多方节点各自的秘密碎片生成非对称密钥对的私钥和公钥。根据本申请的一方面,提供了一种基于密钥的门限签名方法,包括:采用本机节点的私钥对待签名消息进行签名,以产生密钥参数碎片,将所述密钥参数碎片传输给所述多方节点中的其他节点;获取根据各节点的密钥参数碎片生成的密钥参数;根据所述密钥参数封装形成所述待签名消息的门限签名结果 ...
【技术保护点】
1.一种密钥生成方法,由多方节点中的任一节点执行,所述方法包括:/n确定本机节点的第一本地秘密,将所述第一本地秘密按照所述多方节点的数量切分为秘密碎片,将各所述秘密碎片一一对应的传输给所述多方节点中的每个节点;/n获取所述多方节点中其他节点各自切分并传输的秘密碎片,并根据获取的所述多方节点各自的秘密碎片生成非对称密钥对的私钥和公钥。/n
【技术特征摘要】
1.一种密钥生成方法,由多方节点中的任一节点执行,所述方法包括:
确定本机节点的第一本地秘密,将所述第一本地秘密按照所述多方节点的数量切分为秘密碎片,将各所述秘密碎片一一对应的传输给所述多方节点中的每个节点;
获取所述多方节点中其他节点各自切分并传输的秘密碎片,并根据获取的所述多方节点各自的秘密碎片生成非对称密钥对的私钥和公钥。
2.根据权利要求1所述的方法,其中,确定本机节点的第一本地秘密包括:
基于随机数,按照设定生成算法生成一个字节数组或数字,作为所述第一本地秘密;或
根据用户设置的助记词,按照设定恢复算法生成一个字节数组或数字,作为所述第一本地秘密。
3.根据权利要求1所述的方法,其中,将所述第一本地秘密按照所述多方节点的数量切分为秘密碎片,将各所述秘密碎片一一对应的传输给所述多方节点中的每个节点包括:
按照所述多方节点的数量以及设定门限签名阈值,将所述第一本地秘密切分为秘密碎片;其中,所述设定门限签名阈值为需参与门限签名的节点数量下限值;
将各所述秘密碎片,按照所述秘密碎片被切分时确定的碎片编号和所述多方节点的节点编号,分别传输给所述多方节点中的每个节点;其中,每个节点中记录的节点编号与节点的对应关系相同。
4.根据权利要求1所述的方法,其中,根据获取的所述多方节点各自的秘密碎片生成非对称密钥对的私钥包括:
将获取的所述多方节点各自的秘密碎片进行累加,作为第二本地秘密;
将所述第二本地秘密转换为设定精度整数;
基于设定椭圆曲线,将所述设定精度整数转换为所述设定椭圆曲线上的私钥。
5.根据权利要求1或4所述的方法,其中,根据获取的所述多方节点各自的秘密碎片生成非对称密钥对的公钥包括:
根据所述第一本地秘密生成验证值,并传输给所述多方节点中的每个节点;
获取所述多方节点中其他节点各自生成并传输的验证值,并根据获取的所述多方节点各自的验证值,基于设定椭圆曲线的基点生成非对称密钥对的公钥。
6.根据权利要求1所述的方法,其中:
所述多方节点为区块链网络中用于处理设定业务或归属于设定组织的多个节点。
7.一种基于密钥的门限签名方法,由多方节点中的任一节点执行,所述密钥为权利要求1-6任一所述密钥生成方法所生成的非对称密钥对,所述方法包括:
采用本机节点的私钥对待签名消息进行签名,以产生密钥参数碎片,将所述密钥参数碎片传输给所述多方节点中的其他节点;
获取根据各节点的密钥参数碎片生成的密钥参数;
根据所述密钥参数封装形成所述待签名消息的门限签名结果。
8.根据权利要求7所述的方法,其中,所述密钥参数包括第一密钥参数和第二密钥参数,则生成第一密钥参数的过程包括:
采用本机节点的私钥对待签名消息进行签名,以产生第一密钥参数碎片,将所述第一密钥参数碎片传输给所述多方节点中的其他节点;
获取所述多方节点中其他节点各自产生并传输的第一密钥参数碎片,将获取的其他节点的第一密钥参数碎片进行累加,以生成第一密钥参数;
相应的,生成第二密钥参数的过程包括:
根据本机节点的节点编号、以及获取到第一密钥参数碎片的其他节点的节点编号,计算生成本机节点第一本地秘密的偏离值;
采用本机节点的私钥对所述待签名消息、所述偏离值、所述公钥和所述第一密钥参数进行签名,以产生第二密钥参数碎片;
将所述第二密钥参数碎片传输给所述多方节点中的其他节点,以供所述其他节点根据获取到的各第二密钥参数碎片进行累加计算,以产生第二密钥参数;
获取所述其他节点返回的所述第二密钥参数。
9.根据权利要求4或8所述的方法,其中,采用本机节点的私钥对待签名消息进行签名,以产生第一密钥参数碎片包括:
根据本机节点的私钥和所述待签名消息,进行哈希计算,以得到哈希特征值;
将所述哈希特征值转换为数字参数;
根据所述数字参数和设定椭圆曲线的基点,计算所述第一密钥参数碎片。
10.根据权利要求8所述的方法,其中,采用本机节点的私钥对所述待签名消息、所述偏离值、所述公钥和所述第一密钥参数进行签名,以产生第二密钥参数碎片包括:
按照如下公式产生所述第二密钥参数碎片:
Sj=Kj+HASH(C,R,M)*Coef(j)*Pj
其中,所述Sj为节点j产生的第二密钥参数碎片,Kj为节点j的数字参数,C为所述公钥,R为所述第一密钥参数,M为所述待签名消息,HASH(C,R,M)对所述公钥C、所述第一密钥参数R和所述待签名消息M进行哈希计算的结果,所述Pj为节点j的私钥,Coef(j)为节点j的偏离值。
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所述的装置,其中,秘密碎片生成模块,包括:
本地秘密生成第一子模块,用于基于随机数,按照设定生成算法生成一个字节数组或数字,作为所述第一本地秘密;或
本地秘密生成...
【专利技术属性】
技术研发人员:荆博,
申请(专利权)人:百度在线网络技术北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。