私钥恢复、协同地址的创建、签名方法及装置、存储介质制造方法及图纸

技术编号:22224180 阅读:52 留言:0更新日期:2019-09-30 04:23
本说明书实施例提供了一种私钥恢复、协同地址的创建、签名方法及装置、存储介质,该协同地址的签名方法包括:接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;用所述私钥碎片对应的第一公钥对所述签名进行验证;在通过对所述签名的验证时,基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。本说明书实施例可以提高密码货币钱包的安全性和便利性。

Private Key Recovery, Collaborative Address Creation, Signature Method and Device, Storage Media

【技术实现步骤摘要】
私钥恢复、协同地址的创建、签名方法及装置、存储介质
本说明书涉及密码货币的钱包
,尤其是涉及一种私钥恢复、协同地址的创建、签名方法及装置、存储介质。
技术介绍
密码货币的拥有权完全取决于是否持有相应的私钥,因此密码货币的安全性取决于相应的私钥是否具备完善的安全保护策略。目前对于普通用户来说,使用通常是直接交由密码货币交易所代为保管,或者存储于用户个人的在线钱包或者硬件钱包上。其中,交易所代为保管和在线钱包的安全性相对偏低,可能容易出现如交易所密码货币被盗、在线钱包私钥丢失等事件。硬件钱包是通过将私钥离线存储于硬件设备中,这种方式杜绝了将私钥暴露在网络环境中,免遭黑客攻击的风险,可提更高的安全性,但是用户需要进行交易转账时,需要插入硬件设备或者手动输入私钥,使用不便。因此,如何提高密码货币钱包的安全性和便利性已成为目前亟需解决的技术问题。
技术实现思路
本说明书实施例的目的在于提供一种私钥恢复、协同地址的创建、签名方法及装置、存储介质,以提高密码货币钱包的安全性和便利性。为达到上述目的,一方面,本说明书实施例提供了一种协同地址的签名方法,包括:接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;用所述私钥碎片对应的第一公钥对所述签名进行验证;在通过对所述签名的验证时,基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。另一方面,本说明书实施例提供了一种客户端,包括:交易请求接收模块,用于接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;私钥签名验证模块,用于用所述私钥碎片对应的第一公钥对所述签名进行验证;交易签名生成模块,用于在通过对所述签名的验证时,基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。另一方面,本说明书实施例提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;用所述私钥碎片对应的第一公钥对所述签名进行验证;在通过对所述签名的验证时,基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。另一方面,本说明书实施例提供了另一种协同地址的签名方法,包括:接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;将所述交易请求提供给第二客户端,以供所述第二客户端用所述私钥碎片对应的第一公钥对所述签名进行验证;在所述第二客户端通过对所述签名的验证时,基于各自持有的私钥碎片,与所述第二客户端协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。另一方面,本说明书实施例提供了一种服务器,包括:交易请求接收模块,用于接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;交易请求转发模块,用于将所述交易请求提供给第二客户端,以供所述第二客户端用所述私钥碎片对应的第一公钥对所述签名进行验证;交易签名生成模块,用于在所述第二客户端通过对所述签名的验证时,基于各自持有的私钥碎片,与所述第二客户端协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。另一方面,本说明书实施例提供了另一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;将所述交易请求提供给第二客户端,以供所述第二客户端用所述私钥碎片对应的第一公钥对所述签名进行验证;在所述第二客户端通过对所述签名的验证时,基于各自持有的私钥碎片,与所述第二客户端协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。另一方面,本说明书实施例提供了一种协同地址的创建方法,包括:接收第一客户端发起的协同地址创建请求;所述协同地址创建请求中携带所述第一客户端的临时公钥;响应于所述协同地址创建请求,随机生成第二多项式;在所述第一客户端随机生成第三多项式且服务器随机生成第一多项式后,与所述第一客户端和所述服务器交换函数值;根据所述第二多项式及交换获得的函数值,生成自身的私钥碎片、与所述私钥碎片对应的第二公钥、以及协同地址;用所述临时公钥将所述第二公钥及所述第二多项式的第三函数值加密为密文;将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。另一方面,本说明书实施例提供了另一种客户端,包括:请求接收模块,用于接收第一客户端发起的协同地址创建请求;所述协同地址创建请求中携带所述第一客户端的临时公钥;函数生成模块,用于响应于所述协同地址创建请求,随机生成第二多项式;数值交换模块,用于在所述第一客户端随机生成第三多项式且服务器随机生成第一多项式后,与所述第一客户端和所述服务器交换函数值;数据生成模块,用于根据所述第二多项式及交换获得的函数值,生成自身的私钥碎片、与所述私钥碎片对应的第二公钥、以及协同地址;数据加密模块,用于用所述临时公钥将所述第二公钥及所述第二多项式的第三函数值加密为密文;数据发送模块,用于将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。另一方面,本说明书实施例提供了另一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:接收第一客户端发起的协同地址创建请求;所述协同地址创建请求中携带所述第一客户端的临时公钥;响应于所述协同地址创建请求,随机生成第二多项式;在所述第一客户端随机生成第三多项式且服务器随机生成第一多项式后,与所述第一客户端和所述服务器交换函数值;根据所述第二多项式及交换获得的函数值,生成自身的私钥碎片、与所述私钥碎片对应的第二公钥、以及协同地址;用所述临时公钥将所述第二公钥及所述第二多项式的第三函数值加密为密文;将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。另一方面,本说明书实施例提供了另一种协同地址的创建方法,包括:接收第一客户端发起的协同地址创建请求,并将其提供给第二客户端;所述协同地址创建请求中携带所述第一客户端的临时公钥;随机生成第一多项式;在所述第一客户端随机生成第三多项式且所述第二客户端随机生成第二多项式后,与所述第一客户端和所述第二客户端交换函数值;根据所述第一多项式及交换获得的函数值,生成协同地址及自身的私钥碎片;接收所述第二客户端提供的用所述临时公钥加密而成的密文,所述密文包含所述第二客户端的第二公钥及所述第二多项式的第三函数值;将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。另一方面,本说明书实施例提供了另一种服务器,包括:请求转发模块,用于接收第一客户端发起的协同地址创建请求,并将其提供给第二客本文档来自技高网...

【技术保护点】
1.一种协同地址的签名方法,其特征在于,包括:接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;用所述私钥碎片对应的第一公钥对所述签名进行验证;在通过对所述签名的验证时,基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。

【技术特征摘要】
1.一种协同地址的签名方法,其特征在于,包括:接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;用所述私钥碎片对应的第一公钥对所述签名进行验证;在通过对所述签名的验证时,基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。2.如权利要求1所述的协同地址的签名方法,其特征在于,所述基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名,包括:随机生成第一随机数和第二随机数;将所述第一随机数和第二随机数提供给所述服务器,并接收所述服务器随机生成的第三随机数和第四随机数;根据所述第一随机数生成第一中间参数并提供给所述服务器,并接收所述服务器根据所述第三随机数生成的第二中间参数;根据所述第一中间参数和所述第二中间参数生成签名参数;将自身的私钥碎片及所述签名参数代入第一签名函数中生成第一签名部分;接收所述服务器提供的第二签名部分,所述第二签名部分由所述服务器将其私钥碎片及所述签名参数代入第二签名函数得到;根据所述第一签名部分和所述第二签名部分生成交易签名。3.如权利要求2所述的协同地址的签名方法,其特征在于,所述根据所述第一随机数生成第一中间参数包括:根据公式RB=k1×G生成第一中间参数;所述根据所述第三随机数生成第二中间参数包括:根据公式RS=k2×G生成第二中间参数;所述根据所述第一中间参数和所述第二中间参数生成签名参数包括:根据公式R=RB+RS生成签名参数;其中,R为签名参数,RB为第一中间参数,RS为第二中间参数,G为系统参数,k1为第一随机数,k2为第三随机数。4.如权利要求2所述的协同地址的签名方法,其特征在于,所述第一签名函数包括sigB←(e×skB+Rx)×q-1,所述第二签名函数包括sigS←(e×skS+Rx)×q-1;其中,sigB为第一签名部分,sigS为第二签名部分,e为交易哈希值,Rx为签名参数R在坐标系上对应的x坐标值,skB为自身的私钥碎片,q=q1×q2,且q1为第二随机数,q2为第四随机数,skS为服务器的私钥碎片。5.一种客户端,其特征在于,包括:交易请求接收模块,用于接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;私钥签名验证模块,用于用所述私钥碎片对应的第一公钥对所述签名进行验证;交易签名生成模块,用于在通过对所述签名的验证时,基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。6.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;用所述私钥碎片对应的第一公钥对所述签名进行验证;在通过对所述签名的验证时,基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。7.一种协同地址的签名方法,其特征在于,包括:接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;将所述交易请求提供给第二客户端,以供所述第二客户端用所述私钥碎片对应的第一公钥对所述签名进行验证;在所述第二客户端通过对所述签名的验证时,基于各自持有的私钥碎片,与所述第二客户端协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。8.如权利要求7所述的协同地址的签名方法,其特征在于,所述基于各自持有的私钥碎片,与所述第二客户端协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名,包括:随机生成第三随机数和第四随机数并将其提供给所述第二客户端,接收所述第二客户端随机生成的第一随机数和第二随机数;根据所述第三随机数生成第二中间参数并提供给所述第二客户端,并接收所述第二客户端根据所述第一随机数生成的第一中间参数;根据所述第一中间参数和所述第二中间参数生成签名参数;将自身的私钥碎片及所述签名参数代入第二签名函数中生成第二签名部分;接收所述第二客户端提供的第一签名部分,所述第一签名部分由所述第二客户端将其私钥碎片及所述签名参数代入第一签名函数得到;根据所述第一签名部分和所述第二签名部分生成交易签名。9.如权利要求8所述的协同地址的签名方法,其特征在于,所述根据所述第一随机数生成第一中间参数包括:根据公式RB=k1×G生成第一中间参数;所述根据所述第三随机数生成第二中间参数包括:根据公式RS=k2×G生成第二中间参数;所述根据所述第一中间参数和所述第二中间参数生成签名参数包括:根据公式R=RB+RS生成签名参数;其中,R为签名参数,RB为第一中间参数,RS为第二中间参数,G为系统参数,k1为第一随机数,k2为第三随机数。10.如权利要求8所述的协同地址的签名方法,其特征在于,所述第一签名函数包括sigB←(e×skB+Rx)×q-1,所述第二签名函数包括sigS←(e×skS+Rx)×q-1;其中,sigB为第一签名部分,sigS为第二签名部分,e为交易哈希值,Rx为签名参数R在坐标系上对应的x坐标值,skB为自身的私钥碎片,q=q1×q2,且q1为第二随机数,q2为第四随机数,skS为服务器的私钥碎片。11.一种服务器,其特征在于,包括:交易请求接收模块,用于接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;交易请求转发模块,用于将所述交易请求提供给第二客户端,以供所述第二客户端用所述私钥碎片对应的第一公钥对所述签名进行验证;交易签名生成模块,用于在所述第二客户端通过对所述签名的验证时,基于各自持有的私钥碎片,与所述第二客户端协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。12.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;将所述交易请求提供给第二客户端,以供所述第二客户端用所述私钥碎片对应的第一公钥对所述签名进行验证;在所述第二客户端通过对所述签名的验证时,基于各自持有的私钥碎片,与所述第二客户端协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。13.一种协同地址的创建方法,其特征在于,包括:接收第一客户端发起的协同地址创建请求;所述协同地址创建请求中携带所述第一客户端的临时公钥;响应于所述协同地址创建请求,随机生成第二多项式;在所述第一客户端随机生成第三多项式且服务器随机生成第一多项式后,与所述第一客户端和所述服务器交换函数值;根据所述第二多项式及交换获得的函数值,生成自身的私钥碎片、与所述私钥碎片对应的第二公钥、以及协同地址;用所述临时公钥将所述第二公钥及所述第二多项式的第三函数值加密为密文;将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。14.如权利要求13所述的协同地址的创建方法,其特征在于,所述与所述第一客户端和所述服务器交换函数值,包括:将所述第二多项式的第一函数值提供给所述服务器,并将所述第二多项式的第三函数值提供给所述第一客户端;接收所述服务器提供的第一多项式的第二函数值,并接收所述第一客户端提供的第三多项式的第二函数值;根据所述第一多项式、所述第二多项式及所述第三多项式各自的第二函数值,生成第二参数并提供给所述服务器;接收所述第一客户端根据所述第一多项式、所述第二多项式及所述第三多项式各自的第三函数值生成的第三参数,并接收所述服务器根据所述第一多项式、所述第二多项式及所述第三多项式各自的第一函数值生成的第一参数。15.如权利要求13所述的协同地址的创建方法,其特征在于,所述根据所述第二多项式及交换获得的函数值,生成自身的私钥碎片、与所述私钥碎片对应的第二公钥、以及协同地址,包括:根据公式skB=P1(2)+P2(2)生成自身的私钥碎片skB;根据公式pkB=skB×G生成与所述私钥碎片skB对应的第二公钥pkB;根据公式PK←p1×L1×G+p2×L2×G生成协同账户的公钥PK,并根据公式Addr←Hash(PK)生成所述协同账户对应的协同地址;其中,p1和p2为从集合(PA,PB,PS)中任取的两个值,PS为第一参数且PS=P1(1)+P2(1)+P3(1),PB为第二参数且PB=P1(2)+P2(2)+P3(2),PA为第三参数且PA=P1(3)+P2(3)+P3(3),P1(1)、P2(1)、P3(1)分别为第一多项式P1(x)、第二多项式P2(x)和第三多项式P3(x)的第一函数值;P1(2)、P2(2)、P3(2)分别为第一多项式P1(x)、第二多项式P2(x)和第三多项式P3(x)的第二函数值;P1(3)、P2(3)、P3(3)分别为第一多项式P1(x)、第二多项式P2(x)和第三多项式P3(x)的第三函数值,G为系统参数,L1、L2分别为p1、p2对应的拉格朗日系数,Addr为协同地址,Hash(PK)表示用哈希函数对PK进行哈希计算。16.如权利要求13所述的协同地址的创建方法,其特征在于,还包括:根据公式生成与所述第一客户端的私钥碎片对应的第一公钥pkA;其中,PK为协同账户的公钥,LA为第一客户端的拉格朗日系数,LB为自身的拉格朗日系数,pkB为自身的第二公钥。17.如权利要求13所述的协同地址的创建方法,其特征在于,所述用所述临时公钥将所述第二公钥及所述第二多项式的第三函数值加密为密文,包括:将所述第二公钥对应的第一字符串及所述第二多项式的第三函数值对应的第二字符串,按序拼接成第三字符串;用所述临时公钥将所述第三字符串加密为密文。18.一种客户端,其特征在于,包括:请求接收模块,用于接收第一客户端发起的协同地址创建请求;所述协同地址创建请求中携带所述第一客户端的临时公钥;函数生成模块,用于响应于所述协同地址创建请求,随机生成第二多项式;数值交换模块,用于在所述第一客户端随机生成第三多项式且服务器随机生成第一多项式后,与所述第一客户端和所述服务器交换函数值;数据生成模块,用于根据所述第二多项式及交换获得的函数值,生成自身的私钥碎片、与所述私钥碎片对应的第二公钥、以及协同地址;数据加密模块,用于用所述临时公钥将所述第二公钥及所述第二多项式的第三函数值加密为密文;数据发送模块,用于将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。19.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:接收第一客户端发起的协同地址创建请求;所述协同地址创建请求中携带所述第一客户端的临时公钥;响应于所述协同地址创建请求,随机生成第二多项式;在所述第一客户端随机生成第三多项式且服务器随机生成第一多项式后,与所述第一客户端和所述服务器交换函数值;根据所述第二多项式及交换获得的函数值,生成自身的私钥碎片、与所述私钥碎片对应的第二公钥、以及协同地址;用所述临时公钥将所述第二公钥及所述第二多项式的第三函数值加密为密文;将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。20.一种协同地址的创建方法,其特征在于,包括:接收第一客户端发起的协同地址创建请求,并将其提供给第二客户端;所述协同地址创建请求中携带所述第一客户端的临时公钥;随机生成第一多项式;在所述第一客户端随机生成第三多项式且所述第二客户端随机生成第二多项式后,与所述第一客户端和所述第二客户端交换函数值;根据所述第一多项式及交换获得的函数值,生成协同地址及自身的私钥碎片;接收所述第二客户端提供的用所述临时公钥加密而成的密文,所述密文包含所述第二客户端的第二公钥及所述第二多项式的第三函数值;将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。21.如权利要求20所述的协同地址的创建方法,其特征在于,所述与所述第一客户端和所述第二客户端交换函数值,包括:将所述第一多项式的第二函数值提供给所述第二客户端,并将所述第一多项式的第三函数值提供给所述第一客户端;接收所述第二客户端提供的第二多项式的第一函数值,并接收所述第一客户端提供的第三多项式的第一函数值;根据所述第一多项式、所述第二多项式及所述第三多项式各自的第一函数值,生成第一参数并提供给所述第二客户端;接收所述第二客户端根据所述第一多项式、所述第二多项式及所述第三多项式各自的第二函数值生成的第二参数,并接收所述第一客户端根据所述第一多项式、所述第二多项式及所述第三多项式各自的第三函数值生成的第三参数。22.如权利要求21所述的协同地址的创建方法,其特征在于,所述根据所述第一多项式及交换获得的函数值,生成协同地址及自身的私钥碎片,包括:根据公式skS=P1(1)+P2(1)生成自身的私钥碎片skS;根据公式PK←p1×L1×G+p2×L2×G生成协同账户的公钥PK,并根据公式Addr←Hash(PK)生成所述协同账户对应的协同地址;其中,p1和p2为从集合(PA,PB,PS)中任取的两个值,PS为第一参数且PS=P1(...

【专利技术属性】
技术研发人员:安瑞谢翔孙立林
申请(专利权)人:矩阵元技术深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1