CN110289968A - 私钥恢复、协同地址的创建、签名方法及装置、存储介质 - Google Patents

私钥恢复、协同地址的创建、签名方法及装置、存储介质 Download PDF

Info

Publication number
CN110289968A
CN110289968A CN201910565957.3A CN201910565957A CN110289968A CN 110289968 A CN110289968 A CN 110289968A CN 201910565957 A CN201910565957 A CN 201910565957A CN 110289968 A CN110289968 A CN 110289968A
Authority
CN
China
Prior art keywords
client
private key
address
collaboration
multinomial
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
Application number
CN201910565957.3A
Other languages
English (en)
Other versions
CN110289968B (zh
Inventor
安瑞
谢翔
孙立林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Matrix Technology (shenzhen) Co Ltd
Original Assignee
Matrix Technology (shenzhen) Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matrix Technology (shenzhen) Co Ltd filed Critical Matrix Technology (shenzhen) Co Ltd
Priority to CN201910565957.3A priority Critical patent/CN110289968B/zh
Publication of CN110289968A publication Critical patent/CN110289968A/zh
Application granted granted Critical
Publication of CN110289968B publication Critical patent/CN110289968B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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/3255Cryptographic 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

私钥恢复、协同地址的创建、签名方法及装置、存储介质
技术领域
本说明书涉及密码货币的钱包技术领域,尤其是涉及一种私钥恢复、协同地址的创建、签名方法及装置、存储介质。
背景技术
密码货币的拥有权完全取决于是否持有相应的私钥,因此密码货币的安全性取决于相应的私钥是否具备完善的安全保护策略。
目前对于普通用户来说,使用通常是直接交由密码货币交易所代为保管,或者存储于用户个人的在线钱包或者硬件钱包上。其中,交易所代为保管和在线钱包的安全性相对偏低,可能容易出现如交易所密码货币被盗、在线钱包私钥丢失等事件。硬件钱包是通过将私钥离线存储于硬件设备中,这种方式杜绝了将私钥暴露在网络环境中,免遭黑客攻击的风险,可提更高的安全性,但是用户需要进行交易转账时,需要插入硬件设备或者手动输入私钥,使用不便。
因此,如何提高密码货币钱包的安全性和便利性已成为目前亟需解决的技术问题。
发明内容
本说明书实施例的目的在于提供一种私钥恢复、协同地址的创建、签名方法及装置、存储介质,以提高密码货币钱包的安全性和便利性。
为达到上述目的,一方面,本说明书实施例提供了一种协同地址的签名方法,包括:
接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;
用所述私钥碎片对应的第一公钥对所述签名进行验证;
在通过对所述签名的验证时,基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。
另一方面,本说明书实施例提供了一种客户端,包括:
交易请求接收模块,用于接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;
私钥签名验证模块,用于用所述私钥碎片对应的第一公钥对所述签名进行验证;
交易签名生成模块,用于在通过对所述签名的验证时,基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。
另一方面,本说明书实施例提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;
用所述私钥碎片对应的第一公钥对所述签名进行验证;
在通过对所述签名的验证时,基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。
另一方面,本说明书实施例提供了另一种协同地址的签名方法,包括:
接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;
将所述交易请求提供给第二客户端,以供所述第二客户端用所述私钥碎片对应的第一公钥对所述签名进行验证;
在所述第二客户端通过对所述签名的验证时,基于各自持有的私钥碎片,与所述第二客户端协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。
另一方面,本说明书实施例提供了一种服务器,包括:
交易请求接收模块,用于接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;
交易请求转发模块,用于将所述交易请求提供给第二客户端,以供所述第二客户端用所述私钥碎片对应的第一公钥对所述签名进行验证;
交易签名生成模块,用于在所述第二客户端通过对所述签名的验证时,基于各自持有的私钥碎片,与所述第二客户端协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。
另一方面,本说明书实施例提供了另一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;
将所述交易请求提供给第二客户端,以供所述第二客户端用所述私钥碎片对应的第一公钥对所述签名进行验证;
在所述第二客户端通过对所述签名的验证时,基于各自持有的私钥碎片,与所述第二客户端协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。
另一方面,本说明书实施例提供了一种协同地址的创建方法,包括:
接收第一客户端发起的协同地址创建请求;所述协同地址创建请求中携带所述第一客户端的临时公钥;
响应于所述协同地址创建请求,随机生成第二多项式;
在所述第一客户端随机生成第三多项式且服务器随机生成第一多项式后,与所述第一客户端和所述服务器交换函数值;
根据所述第二多项式及交换获得的函数值,生成自身的私钥碎片、与所述私钥碎片对应的第二公钥、以及协同地址;
用所述临时公钥将所述第二公钥及所述第二多项式的第三函数值加密为密文;
将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。
另一方面,本说明书实施例提供了另一种客户端,包括:
请求接收模块,用于接收第一客户端发起的协同地址创建请求;所述协同地址创建请求中携带所述第一客户端的临时公钥;
函数生成模块,用于响应于所述协同地址创建请求,随机生成第二多项式;
数值交换模块,用于在所述第一客户端随机生成第三多项式且服务器随机生成第一多项式后,与所述第一客户端和所述服务器交换函数值;
数据生成模块,用于根据所述第二多项式及交换获得的函数值,生成自身的私钥碎片、与所述私钥碎片对应的第二公钥、以及协同地址;
数据加密模块,用于用所述临时公钥将所述第二公钥及所述第二多项式的第三函数值加密为密文;
数据发送模块,用于将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。
另一方面,本说明书实施例提供了另一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收第一客户端发起的协同地址创建请求;所述协同地址创建请求中携带所述第一客户端的临时公钥;
响应于所述协同地址创建请求,随机生成第二多项式;
在所述第一客户端随机生成第三多项式且服务器随机生成第一多项式后,与所述第一客户端和所述服务器交换函数值;
根据所述第二多项式及交换获得的函数值,生成自身的私钥碎片、与所述私钥碎片对应的第二公钥、以及协同地址;
用所述临时公钥将所述第二公钥及所述第二多项式的第三函数值加密为密文;
将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。
另一方面,本说明书实施例提供了另一种协同地址的创建方法,包括:
接收第一客户端发起的协同地址创建请求,并将其提供给第二客户端;所述协同地址创建请求中携带所述第一客户端的临时公钥;
随机生成第一多项式;
在所述第一客户端随机生成第三多项式且所述第二客户端随机生成第二多项式后,与所述第一客户端和所述第二客户端交换函数值;
根据所述第一多项式及交换获得的函数值,生成协同地址及自身的私钥碎片;
接收所述第二客户端提供的用所述临时公钥加密而成的密文,所述密文包含所述第二客户端的第二公钥及所述第二多项式的第三函数值;
将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。
另一方面,本说明书实施例提供了另一种服务器,包括:
请求转发模块,用于接收第一客户端发起的协同地址创建请求,并将其提供给第二客户端;所述协同地址创建请求中携带所述第一客户端的临时公钥;
函数生成模块,用于随机生成第一多项式;
数值交换模块,用于在所述第一客户端随机生成第三多项式且所述第二客户端随机生成第二多项式后,与所述第一客户端和所述第二客户端交换函数值;
数据生成模块,用于根据所述第一多项式及交换获得的函数值,生成协同地址及自身的私钥碎片;
密文接收模块,用于接收所述第二客户端提供的用所述临时公钥加密而成的密文,所述密文包含所述第二客户端的第二公钥及所述第二多项式的第三函数值;
数据发送模块,用于将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。
另一方面,本说明书实施例提供了另一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收第一客户端发起的协同地址创建请求,并将其提供给第二客户端;所述协同地址创建请求中携带所述第一客户端的临时公钥;
随机生成第一多项式;
在所述第一客户端随机生成第三多项式且所述第二客户端随机生成第二多项式后,与所述第一客户端和所述第二客户端交换函数值;
根据所述第一多项式及交换获得的函数值,生成协同地址及自身的私钥碎片;
接收所述第二客户端提供的用所述临时公钥加密而成的密文,所述密文包含所述第二客户端的第二公钥及所述第二多项式的第三函数值;
将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。
另一方面,本说明书实施例提供了另一种协同地址的创建方法,包括:
通过服务器向第二客户端发起协同地址创建请求;所述协同地址创建请求中携带自身的临时公钥;
随机生成第三多项式;
在所述服务器随机生成第一多项式且所述第二客户端随机生成第二多项式后,与所述第二客户端和所述服务器交换函数值,以便所述第二客户端和所述服务器生成协同账户的协同地址;
接收所述服务器发送的密文及协同地址,并用所述临时公钥对应的临时私钥解密所述密文,获得所述第二客户端的第二公钥及所述第二多项式的第三函数值;
根据所述第三多项式及所述第三函数值,生成自身的私钥碎片;
根据自身的私钥碎片及所述第二公钥验证所述协同地址。
另一方面,本说明书实施例提供了另一种客户端,包括:
请求发送模块,用于通过服务器向第二客户端发起协同地址创建请求;所述协同地址创建请求中携带自身的临时公钥;
函数生成模块,用于随机生成第三多项式;
数值交换模块,用于在所述服务器随机生成第一多项式且所述第二客户端随机生成第二多项式后,与所述第二客户端和所述服务器交换函数值,以便所述第二客户端和所述服务器生成协同账户的协同地址;
数据接收模块,用于接收所述服务器发送的密文及协同地址,并用所述临时公钥对应的临时私钥解密所述密文,获得所述第二客户端的第二公钥及所述第二多项式的第三函数值;
私钥生成模块,用于根据所述第三多项式及所述第三函数值,生成自身的私钥碎片;
地址验证模块,用于根据自身的私钥碎片及所述第二公钥验证所述协同地址。
另一方面,本说明书实施例提供了另一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
通过服务器向第二客户端发起协同地址创建请求;所述协同地址创建请求中携带自身的临时公钥;
随机生成第三多项式;
在所述服务器随机生成第一多项式且所述第二客户端随机生成第二多项式后,与所述第二客户端和所述服务器交换函数值,以便所述第二客户端和所述服务器生成协同账户的协同地址;
接收所述服务器发送的密文及协同地址,并用所述临时公钥对应的临时私钥解密所述密文,获得所述第二客户端的第二公钥及所述第二多项式的第三函数值;
根据所述第三多项式及所述第三函数值,生成自身的私钥碎片;
根据自身的私钥碎片及所述第二公钥验证所述协同地址。
另一方面,本说明书实施例提供了一种私钥恢复方法,包括:
接收第一客户端发起的对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
响应于所述私钥碎片恢复请求,随机生成第二多项式;
接收服务器提供的第一多项式的第二函数值;
根据所述第二多项式及所述第二函数值,生成自身的新私钥碎片、以及与所述新私钥碎片对应的新第二公钥;
用所述临时公钥将所述新第二公钥及所述第二多项式的第三函数值加密为密文;
将所述密文及所述第二多项式的第一函数值提供给所述服务器,以便所述服务器根据所述第一函数值及所述第一多项式生成所述服务器的新私钥碎片,并便于所述服务器将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,从而便于所述第一客户端生成新私钥碎片并验证所述协同地址。
另一方面,本说明书实施例提供了另一种客户端,包括:
请求接收模块,用于接收第一客户端发起的对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
函数生成模块,用于响应于所述私钥碎片恢复请求,随机生成第二多项式;
数值接收模块,用于接收服务器提供的第一多项式的第二函数值;
数据生成模块,用于根据所述第二多项式及所述第二函数值,生成自身的新私钥碎片、以及与所述新私钥碎片对应的新第二公钥;
数据加密模块,用于用所述临时公钥将所述新第二公钥及所述第二多项式的第三函数值加密为密文;
数据发送模块,用于将所述密文及所述第二多项式的第一函数值提供给所述服务器,以便所述服务器根据所述第一函数值及所述第一多项式生成所述服务器的新私钥碎片,并便于所述服务器将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,从而便于所述第一客户端生成新私钥碎片并验证所述协同地址。
另一方面,本说明书实施例提供了另一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收第一客户端发起的对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
响应于所述私钥碎片恢复请求,随机生成第二多项式;
接收服务器提供的第一多项式的第二函数值;
根据所述第二多项式及所述第二函数值,生成自身的新私钥碎片、以及与所述新私钥碎片对应的新第二公钥;
用所述临时公钥将所述新第二公钥及所述第二多项式的第三函数值加密为密文;
将所述密文及所述第二多项式的第一函数值提供给所述服务器,以便所述服务器根据所述第一函数值及所述第一多项式生成所述服务器的新私钥碎片,并便于所述服务器将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,从而便于所述第一客户端生成新私钥碎片并验证所述协同地址。
另一方面,本说明书实施例提供了另一种私钥恢复方法,包括:
接收第一客户端发起的对应于协同地址的私钥碎片恢复请求,并将其转发给第二客户端;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
随机生成第一多项式;
将所述第一多项式的第二函数值提供给所述第二客户端;
接收所述第二客户端提供的密文及第二多项式的第一函数值,所述密文包含所述第二客户端的新第二公钥及所述第二多项式的第三函数值;
根据所述第一函数值及所述第一多项式的第一函数值,生成自身的新私钥碎片;
将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,以便所述第一客户端生成新私钥碎片并验证所述协同地址。
另一方面,本说明书实施例提供了另一种服务器,包括:
请求转发模块,用于接收第一客户端发起的对应于协同地址的私钥碎片恢复请求,并将其转发给第二客户端;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
函数生成模块,用于随机生成第一多项式;
数值提供模块,用于将所述第一多项式的第二函数值提供给所述第二客户端;
数据接收模块,用于接收所述第二客户端提供的密文及第二多项式的第一函数值,所述密文包含所述第二客户端的新第二公钥及所述第二多项式的第三函数值;
私钥生成模块,用于根据所述第一函数值及所述第一多项式的第一函数值,生成自身的新私钥碎片;
数据提供模块,用于将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,以便所述第一客户端生成新私钥碎片并验证所述协同地址。
另一方面,本说明书实施例提供了另一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收第一客户端发起的对应于协同地址的私钥碎片恢复请求,并将其转发给第二客户端;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
随机生成第一多项式;
将所述第一多项式的第二函数值提供给所述第二客户端;
接收所述第二客户端提供的密文及第二多项式的第一函数值,所述密文包含所述第二客户端的新第二公钥及所述第二多项式的第三函数值;
根据所述第一函数值及所述第一多项式的第一函数值,生成自身的新私钥碎片;
将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,以便所述第一客户端生成新私钥碎片并验证所述协同地址。
另一方面,本说明书实施例提供了另一种私钥恢复方法,包括:
通过服务器向第二客户端发起对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带自身的临时公钥;
接收所述服务器发送的密文及第一多项式的第三函数值;所述密文中携带所述第二客户端的新第二公钥及第二多项式的第三函数值;
用所述临时公钥对应的临时私钥解密所述密文,获得所述新第二公钥及所述第二多项式的第三函数值;
根据所述第一多项式的第三函数值及所述第二多项式的第三函数值,生成自身的新私钥碎片;
根据自身的新私钥碎片及所述新第二公钥验证所述协同地址。
另一方面,本说明书实施例提供了另一种客户端,包括:
请求发起模块,用于通过服务器向第二客户端发起对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带自身的临时公钥;
数据接收模块,用于接收所述服务器发送的密文及第一多项式的第三函数值;所述密文中携带所述第二客户端的新第二公钥及第二多项式的第三函数值;
数据解密模块,用于用所述临时公钥对应的临时私钥解密所述密文,获得所述新第二公钥及所述第二多项式的第三函数值;
私钥生成模块,用于根据所述第一多项式的第三函数值及所述第二多项式的第三函数值,生成自身的新私钥碎片;
地址验证模块,用于根据自身的新私钥碎片及所述新第二公钥验证所述协同地址。
另一方面,本说明书实施例提供了另一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
通过服务器向第二客户端发起对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带自身的临时公钥;
接收所述服务器发送的密文及第一多项式的第三函数值;所述密文中携带所述第二客户端的新第二公钥及第二多项式的第三函数值;
用所述临时公钥对应的临时私钥解密所述密文,获得所述新第二公钥及所述第二多项式的第三函数值;
根据所述第一多项式的第三函数值及所述第二多项式的第三函数值,生成自身的新私钥碎片;
根据自身的新私钥碎片及所述新第二公钥验证所述协同地址。
由以上本说明书实施例提供的技术方案可见,本说明书实施例通过用安全多方计算技术,使多个参与方可以利用各自持有的隐私信息生成一个协同地址和各自的私钥碎片;在此基础上,当需要交易协同地址上的资产时,通过将安全多方计算和门限签名相结合,使多个参与方可以利用各自持有的私钥碎片协同生成该协同地址的签名。如此,就实现了各参与方在隐私保护了各自持有的私钥碎片的前提下,协同完成对该协同地址上的资产的交易授权,从而大大提高了密码货币钱包的安全性。由于本说明书实施例也是一种在线钱包技术,因而相对于硬件钱包,其同样兼具有较好的便利性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本说明书一些实施例中创建协同地址的流程图;
图2为本说明书一些实施例中协同地址的交易签名流程图;
图3为图2中基于安全多方计算的门限签名部分的流程图;
图4为本说明书一些实施例中恢复私钥碎片的流程图;
图5为本说明书一些实施例中客户端的结构框图;
图6为本说明书一些实施例中服务器的结构框图;
图7为本说明书另一些实施例中客户端的结构框图;
图8为本说明书另一些实施例中服务器的结构框图;
图9为本说明书另一些实施例中客户端的结构框图;
图10为本说明书另一些实施例中客户端的结构框图;
图11为本说明书另一些实施例中服务器的结构框图;
图12为本说明书另一些实施例中客户端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例可以应用于区块链网络中的任何节点,所述节点可以是客户端或服务器。
在本说明书一些实施例中,所述客户端可以为台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备等。其中,智能可穿戴设备可以包括智能手环、智能手表、智能眼镜、智能头盔等。当然,所述客户端并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软体。
在本说明书一些实施例中,所述服务器可以为具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理和网络交互提供业务逻辑的软体。
门限签名是通过门限密码学构造出的签名方案。例如,在一个t/n门限签名方式中,n个参与方组成群组,并用n个参与方的隐私信息(如,私钥)生成一个协同账户的钱包地址(以下简称协同地址);当需要动用协同地址上的资产时,需要不少于t个参与方利用各自的隐私信息协同合作,才能产生对协同地址的交易签名。
安全多方计算(Secure Multi-Party Computation,简称MPC),是指用户在无需进行数据归集的情况下,完成数据协同计算,同时保护数据所有方的原始数据隐私。整个计算过程中,计算参与各方除了自己的输入数据和输出结果外,无法获知任何额外有效信息,并且保证计算结果准确。
本说明书实施例旨在利用安全多方计算技术,使多个参与方可以利用各自持有的隐私信息生成一个协同地址和各自的私钥碎片;在此基础上,当需要交易协同地址上的资产时,通过将安全多方计算和门限签名相结合,使多个参与方可以利用各自持有的私钥碎片协同生成该协同地址的签名。如此,就实现了各参与方在隐私保护了各自持有的私钥碎片的前提下,协同完成对该协同地址上的资产的交易授权,从而大大提高了密码货币钱包的安全性。由于本说明书实施例也是一种在线钱包技术,因而相对于硬件钱包,其同样兼具有较好的便利性。
为便理解本说明书,下面通过具体实施例并结合具体的应用场景对本说明书进行描述。应当指出的是,下文是以客户端A、客户端B和服务器三个区块链节点为例进行说明的,在本说明书其他实施例中,也可以采用两个区块链节点(即省略服务器),或更多区块链节点实现,本说明书对此不作限定。
一、协同地址创建
在本说明书一些实施例中,图1中示出了协同地址的创建方法。在图1所示实施例中,当客户端A发起创建协同地址的请求时,可以先在本地随机生成公私钥对(tpkA,tskA),然后将携带tpkA的协同地址创建请求通过服务器发送给客户端B。响应于协同地址创建请求,若客户端B同意协同地址创建请求,则服务器、客户端B和客户端A可以分别在本地随机生成一个多项式。
例如,在本说明书一实施例中,服务器、客户端B、客户端A可以分别生成随机数x1、x2、x3。服务器随机选取一次多项式P1(x)=x+x1,使得P1(0)=x1,并计算出P1(x)在自变量x分别取值为1、2和3对应的函数值P1(1)、P1(2)、P1(3):P1(1)←x1+1,P1(2)←x1+2,P1(3)←x1+3。客户端B随机选取一次多项式P2(x)=x+x2,使得P2(0)=x2,并计算出P2(x)在自变量x分别取值为1、2和3对应的函数值P2(1)、P2(2)、P2(3):P2(1)←x2+1,P2(2)←x2+2,P2(3)←x2+3。客户端A随机选取一次多项式P3(x)=x+x3,使得P3(0)=x3,并计算出P3(x)在自变量x分别取值为1、2和3对应的函数值P3(1)、P3(2)、P3(3):P3(1)←x3+1,P3(2)←x3+2,P3(3)←x3+3。
在服务器、客户端B和客户端A分别在本地随机生成一个多项式后,服务器、客户端B、客户端A之间可以交换一些指定的函数值,以用于后续协同地址创建。
例如,在本说明书一实施例中,服务器可以将P1(2)发送给客户端B,并将P1(3)发送给客户端A;客户端B可以将P2(1)发送给服务器,并将P2(3)发送给客户端A;客户端A可以将P3(1)发送给服务器,并将P3(2)发送给客户端B。此时,服务器可以计算出第一参数PS=P1(1)+P2(1)+P3(1);客户端B可以计算出第二参数PB=P1(2)+P2(2)+P3(2),客户端A可以计算出第三参数PA=P1(3)+P2(3)+P3(3)。相应的,客户端A可以将第三参数PA分别提供给服务器和客户端B,客户端B可以将第二参数PB提供给服务器,服务器可以将第一参数PS提供给客户端B。
在本说明书一实施例中,客户端B可以根据P2(x)及交换获得的函数值,生成自身的私钥碎片skB、与该私钥碎片skB对应的第二公钥pkB、以及协同地址,并可以用客户端A的临时公钥tpkA将第二公钥pkB及P2(3)加密为密文,然后将所述密文通过服务器提供给客户端A,以便客户端A生成自身的私钥碎片skA并验证协同地址对应的公钥PK。
例如,客户端B可以根据公式skB=P1(2)+P2(2)生成自身的私钥碎片skB;可以根据公式pkB=skB×G生成与私钥碎片skB对应的第二公钥pkB;可以根据公式PK←p1×L1×G+p2×L2×G生成协同账户的公钥PK,并根据公式Addr←Hash(PK)生成协同账户对应的协同地址,Addr为协同地址,Hash(PK)表示用哈希函数对PK进行哈希计算。其中,p1和p2为从集合(PA,PB,PS)中任取的两个值,G为系统参数(例如可以为椭圆曲线生成元等),L1、L2分别为p1、p2对应的拉格朗日系数。比如,在一示例性实施例中,以p1选择为PA,p2选择为PB为例,则L1为客户端A的拉格朗日系数LA,L2为客户端B的拉格朗日系数LB,则此时:PK←PA×LA×G+pB×LB×G。
在本说明书一实施例中,客户端B还可以根据公式生成客户端A的私钥碎片skA对应的第一公钥pkA,以便于后续在客户端A发起针对协同地址的交易请求时,可以对客户端A的签名进行验证。当然,在其他实施例中,第一公钥pkA也可以是由服务器或客户端A生成并提供给客户端B,本说明对此不作限定,具体可以根据需要选择。
在本说明书一实施例中,在收到客户端A发起的协同地址创建请求之后,客户端B还可以先对客户端A进行身份认证,当通过对客户端A的身份认证后,再与客户端A和服务器进行以生成协同地址为目的交互,从而可以提高安全性。
在本说明书一实施例中,客户端B可以将第二公钥pkB对应的第一字符串及P2(3)对应的第二字符串,按序拼接成第三字符串,然后再用客户端A的临时公钥tpkA将第三字符串加密为密文(即Enc(tpkA,P2(3)||pkB)),如此可以降低处理开销,提高处理效率。
在本说明书一实施例中,服务器也可以根据P2(x)及交换获得的函数值,生成协同地址及自身的私钥碎片skS;当收到接收客户端B提供的密文时,可以将密文及协同地址提供给客户端A,以便客户端A生成自身的私钥碎片skA并验证协同地址对应的公钥PK。例如,服务器可以根据公式skS=P1(1)+P2(1)生成自身的私钥碎片skS;可以根据上述公式PK←p1×L1×G+p2×L2×G生成协同账户的公钥PK,并根据公式Addr←Hash(PK)生成所述协同账户对应的协同地址。
在本说明书一实施例中,客户端A在接收到服务器发送的密文及协同地址后,可以用tpkA对应的tskA解密所述密文,即P2(3)||pkB←Dec(tskA,Enc(tpkA,P2(3)||pkB)),从而可以获得P2(3)和pkB。据此,客户端A可以根据公式skA=P1(3)+P2(3)生成自身的私钥碎片skA。并且,在此基础上,客户端A可以验证PK=(LA×skA)×G+pkB是否成立;如果成立,则认为协同地址创建成功。否则,认为协同地址创建失败。
参考图7所示,与上述协同地址创建方法中的客户端B对应,本说明书一些实施例的客户端可以包括:
请求接收模块71,可以用于接收第一客户端发起的协同地址创建请求;所述协同地址创建请求中携带所述第一客户端的临时公钥;
函数生成模块72,可以用于响应于所述协同地址创建请求,随机生成第二多项式;
数值交换模块73,可以用于在所述第一客户端随机生成第三多项式且服务器随机生成第一多项式后,与所述第一客户端和所述服务器交换函数值;
数据生成模块74,可以用于根据所述第二多项式及交换获得的函数值,生成自身的私钥碎片、与所述私钥碎片对应的第二公钥、以及协同地址;
数据加密模块75,可以用于用所述临时公钥将所述第二公钥及所述第二多项式的第三函数值加密为密文;
数据发送模块76,可以用于将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。
参考图8所示,与上述协同地址创建方法中的服务器对应,本说明书一些实施例的服务器可以包括:
请求转发模块81,可以用于接收第一客户端发起的协同地址创建请求,并将其提供给第二客户端;所述协同地址创建请求中携带所述第一客户端的临时公钥;
函数生成模块82,可以用于随机生成第一多项式;
数值交换模块83,可以用于在所述第一客户端随机生成第三多项式且所述第二客户端随机生成第二多项式后,与所述第一客户端和所述第二客户端交换函数值;
数据生成模块84,可以用于根据所述第一多项式及交换获得的函数值,生成协同地址及自身的私钥碎片;
密文接收模块85,可以用于接收所述第二客户端提供的用所述临时公钥加密而成的密文,所述密文包含所述第二客户端的第二公钥及所述第二多项式的第三函数值;
数据发送模块86,可以用于将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。
参考图9所示,与上述协同地址创建方法中的客户端A对应,本说明书一些实施例的客户端可以包括:
请求发送模块91,可以用于通过服务器向第二客户端发起协同地址创建请求;所述协同地址创建请求中携带自身的临时公钥;
函数生成模块92,可以用于随机生成第三多项式;
数值交换模块93,可以用于在所述服务器随机生成第一多项式且所述第二客户端随机生成第二多项式后,与所述第二客户端和所述服务器交换函数值,以便所述第二客户端和所述服务器生成协同账户的协同地址;
数据接收模块94,可以用于接收所述服务器发送的密文及协同地址,并用所述临时公钥对应的临时私钥解密所述密文,获得所述第二客户端的第二公钥及所述第二多项式的第三函数值;
私钥生成模块95,可以用于根据所述第三多项式及所述第三函数值,生成自身的私钥碎片;
地址验证模块96,可以用于根据自身的私钥碎片及所述第二公钥验证所述协同地址。
二、交易签名
在本申请一些实施例中,在创建完成协同地址后,各参与方(即客户端A、客户端B和服务器)就可以协同管理同一个钱包账户了。当需要交易协同地址上的资产时,需要各参与方进行基于安全多方计算的门限签名,以协同完成对交易该协同地址上的资产的授权。例如,以2/3门限签名方式为例,协同地址的交易签名方法可如图2所示。
在图2所示的签名方法中,当客户端A希望交易目标协同地址上的资产时,其可以通过服务器向客户端B发起针对目标协同地址的交易请求。其中,所述交易请求不仅可以携带有交易哈希值,还可以携带有客户端A用其私钥碎片skA生成的签名。例如,在本说明书一实施例中,客户端A可以用其私钥碎片skA并通过签名公式tSignature←ECDSA(skA,txHash)生成签名。其中,ECDSA为椭圆曲线数字签名算法(Elliptic Curve Digital SignatureAlgorithm,简称ECDSA),tSignature为签名,txHash为交易哈希值。以转账交易请求为例,其中,交易哈希值可以包含转出钱包地址、转入钱包地址、转入额度等交易信息。
服务器在将交易请求转发给客户端B后,客户端B可以用私钥碎片skA对应的第一公钥pkA对客户端A的签名进行验证;在通过对该签名的验证后,客户端B和服务器可以基于各自持有的私钥碎片,协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。
在本说明书一实施例中,客户端B和服务器可以基于各自持有的私钥碎片,协同对所述交易请求进行基于安全多方计算的门限签名,例如可以如图3所示。在图3中,客户端B可以生成随机数k1和随机数q1,并将随机数k1和随机数q1提供给服务器;同时,服务器可以生成随机数k2和随机数q2,并将随机数k2和随机数q2提供给客户端B。
在此基础上,客户端B可以根据公式RB=k1×G生成第一中间参数RB,并提供给服务器;同样,服务器可以根据公式RS=k2×G生成第二中间参数RS。至此,客户端B和服务器可以分别根据公式R=RB+RS生成签名参数R。因此,客户端B可以将自身的私钥碎片skB及签名参数R代入第一签名函数中生成第一签名部分。相应的,服务器可以将自身的私钥碎片skS及签名参数R代入第二签名函数中生成第二签名部分。
例如,在本说明书一实施例中,所述第一签名函数可以包括sigB←(e×skB+Rx)×q-1,所述第二签名函数可以包括sigS←(e×skS+Rx)×q-1,其中,sigB为第一签名部分,sigS为第二签名部分,e为交易哈希值,Rx为签名参数R在坐标系上对应的x坐标值,q=q1×q2
参考图5所示,与上述签名方法中的客户端B对应,本说明书一些实施例的客户端可以包括:
交易请求接收模块51,可以用于接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;
私钥签名验证模块52,可以用于用所述私钥碎片对应的第一公钥对所述签名进行验证;
交易签名生成模块53,可以用于在通过对所述签名的验证时,基于各自持有的私钥碎片,与服务器协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。
参考图6所示,与上述签名方法中的服务器对应,本说明书一些实施例的服务器可以包括:
交易请求接收模块61,可以用于接收第一客户端发起的对目标协同地址的交易请求,所述交易请求中包含交易哈希值及所述第一客户端用其私钥碎片生成的签名;
交易请求转发模块62,可以用于将所述交易请求提供给第二客户端,以供所述第二客户端用所述私钥碎片对应的第一公钥对所述签名进行验证;
交易签名生成模块63,可以用于在所述第二客户端通过对所述签名的验证时,基于各自持有的私钥碎片,与所述第二客户端协同对所述交易请求进行基于安全多方计算的门限签名,从而生成交易签名。
应当理解的是,以上仅是举例说明基于安全多方计算的门限签名方法,根据签名算法的不同、安全多方计算算法的不同,和/或,门限签名方式(例如2/3模式、3/5模式、5/5模式等)的不同,上述基于安全多方计算的门限签名的方法步骤也会有差异。由于这些都在本说明书的精神和原理之内,因而其所作的修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
三、私钥恢复
在本说明书一些实施例中,一旦用户的客户端设备(例如智能手机)丢失,或者客户端被删除,则用户可以在新的客户端设备安装客户端,或在原有的客户端设备上重新安装客户端。当客户端对应的用户重新登录时,可以获得相应协同地址的公钥PK。在此基础上,如图4所示,以客户端A为例,当客户端A发起私钥碎片恢复请求时,可以先在本地随机生成公私钥对(tpkA,tskA),然后将携带tpkA的钥碎片恢复请求通过服务器发送给客户端B。响应于钥碎片恢复请求,服务器和客户端B可以分别在本地随机生成一个多项式。
例如,在本说明书一实施例中,服务器可以随机选取一次多项式P1(x)=x+LS×skS,使得P1(0)=LS×skS,并计算出P1(x)在自变量x分别取值为1、2和3对应的函数值P1(1)、P1(2)、P1(3):P1(1)←LS×skS+1,P1(2)←LS×skS+2,P1(3)←LS×skS+3。客户端B可以随机选取一次多项式P2(x)=x+LB×skB,使得P2(0)=LB×skB,并计算出P2(x)在自变量x分别取值为1、2和3对应的函数值P2(1)、P2(2)、P2(3):P2(1)←LB×skB+1,P2(2)←LB×skB+2,P2(3)←LB×skB+3。其中,LS为服务器的拉格朗日系数。
服务器可以将P1(2)提供给客户端B,以使得客户端B可以根据P2(x)及P1(2)生成自身的新私钥碎片sk'B、以及与所述新私钥碎片sk'B对应的新第二公钥pk'B。例如,在一个实施例中,客户端B可以根据公式sk'B=P1(2)+P2(2)生成自身的新私钥碎片sk'B;根据公式pk'B=sk'B×G生成与所述新私钥碎片sk'B对应的新第二公钥pk'B。此后,客户端B可以用临时公钥tpkA将pk'B及P2(3)加密为密文(加密过程可以参见上述协同地址创建部分的相关描述,在此不再赘述),然后将密文及P2(1)提供给服务器。
据此,服务器可以根据公式sk'S=P1(1)+P2(1)生成自身的新私钥碎片sk'S,然后服务器可以将密文及P1(3)提供给客户端A,从而便于客户端A生成自身的新私钥碎片sk'A验证协同地址对应的公钥PK,即验证PK=(LA×sk'A)×G+pk'B是否成立;如果成立,则确认私钥碎片恢复成功,从而使得客户端A可以恢复出一个新私钥碎片sk'A,至此密钥恢复完成。如此,解决了单个节点丢失密钥造成的钱包无法恢复的问题。
在另一个实施例中,客户端B还可根据公式生成与客户端A的新私钥碎片sk'A对应的新第一公钥pk'A,以便于后续在客户端A发起针对协同地址的交易请求时,可以对客户端A的签名进行验证。当然,在其他实施例中,新第一公钥pk'A也可以是由服务器或客户端A生成并提供给客户端B,本说明对此不作限定,具体可以根据需要选择。
应当理解的是,客户端对应的用户应当是注册用户,即在发起创建协同地址的请求之前,客户端对应的用户需要先下载并完成客户端的安装,然后登陆进客户端,并根据提示进行注册。
参考图10所示,与上述私钥碎片恢复方法中的客户端B对应,本说明书一些实施例的客户端可以包括:
请求接收模块101,可以用于接收第一客户端发起的对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
函数生成模块102,可以用于响应于所述私钥碎片恢复请求,随机生成第二多项式;
数值接收模块103,可以用于接收服务器提供的第一多项式的第二函数值;
数据生成模块104,可以用于根据所述第二多项式及所述第二函数值,生成自身的新私钥碎片、以及与所述新私钥碎片对应的新第二公钥;
数据加密模块105,可以用于用所述临时公钥将所述新第二公钥及所述第二多项式的第三函数值加密为密文;
数据发送模块106,可以用于将所述密文及所述第二多项式的第一函数值提供给所述服务器,以便所述服务器根据所述第一函数值及所述第一多项式生成所述服务器的新私钥碎片,并便于所述服务器将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,从而便于所述第一客户端生成新私钥碎片并验证所述协同地址。
参考图11所示,与上述私钥碎片恢复方法中的服务器对应,本说明书一些实施例的服务器可以包括:
请求转发模块111,可以用于接收第一客户端发起的对应于协同地址的私钥碎片恢复请求,并将其转发给第二客户端;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
函数生成模块112,可以用于随机生成第一多项式;
数值提供模块113,可以用于将所述第一多项式的第二函数值提供给所述第二客户端;
数据接收模块114,可以用于接收所述第二客户端提供的密文及第二多项式的第一函数值,所述密文包含所述第二客户端的新第二公钥及所述第二多项式的第三函数值;
私钥生成模块115,可以用于根据所述第一函数值及所述第一多项式的第一函数值,生成自身的新私钥碎片;
数据提供模块116,可以用于将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,以便所述第一客户端生成新私钥碎片并验证所述协同地址。
参考图12所示,与上述私钥碎片恢复方法中的客户端A对应,本说明书一些实施例的客户端可以包括:
请求发起模块121,可以用于通过服务器向第二客户端发起对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带自身的临时公钥;
数据接收模块122,可以用于接收所述服务器发送的密文及第一多项式的第三函数值;所述密文中携带所述第二客户端的新第二公钥及第二多项式的第三函数值;
数据解密模块123,可以用于用所述临时公钥对应的临时私钥解密所述密文,获得所述新第二公钥及所述第二多项式的第三函数值;
私钥生成模块124,可以用于根据所述第一多项式的第三函数值及所述第二多项式的第三函数值,生成自身的新私钥碎片;
地址验证模块125,可以用于根据自身的新私钥碎片及所述新第二公钥验证所述协同地址。
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘式存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (41)

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(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进行哈希计算。
23.一种服务器,其特征在于,包括:
请求转发模块,用于接收第一客户端发起的协同地址创建请求,并将其提供给第二客户端;所述协同地址创建请求中携带所述第一客户端的临时公钥;
函数生成模块,用于随机生成第一多项式;
数值交换模块,用于在所述第一客户端随机生成第三多项式且所述第二客户端随机生成第二多项式后,与所述第一客户端和所述第二客户端交换函数值;
数据生成模块,用于根据所述第一多项式及交换获得的函数值,生成协同地址及自身的私钥碎片;
密文接收模块,用于接收所述第二客户端提供的用所述临时公钥加密而成的密文,所述密文包含所述第二客户端的第二公钥及所述第二多项式的第三函数值;
数据发送模块,用于将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。
24.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
接收第一客户端发起的协同地址创建请求,并将其提供给第二客户端;所述协同地址创建请求中携带所述第一客户端的临时公钥;
随机生成第一多项式;
在所述第一客户端随机生成第三多项式且所述第二客户端随机生成第二多项式后,与所述第一客户端和所述第二客户端交换函数值;
根据所述第一多项式及交换获得的函数值,生成协同地址及自身的私钥碎片;
接收所述第二客户端提供的用所述临时公钥加密而成的密文,所述密文包含所述第二客户端的第二公钥及所述第二多项式的第三函数值;
将所述密文及所述协同地址提供给所述第一客户端,以便所述第一客户端生成私钥碎片并验证所述协同地址。
25.一种协同地址的创建方法,其特征在于,包括:
通过服务器向第二客户端发起协同地址创建请求;所述协同地址创建请求中携带自身的临时公钥;
随机生成第三多项式;
在所述服务器随机生成第一多项式且所述第二客户端随机生成第二多项式后,与所述第二客户端和所述服务器交换函数值,以便所述第二客户端和所述服务器生成协同账户的协同地址;
接收所述服务器发送的密文及协同地址,并用所述临时公钥对应的临时私钥解密所述密文,获得所述第二客户端的第二公钥及所述第二多项式的第三函数值;
根据所述第三多项式及所述第三函数值,生成自身的私钥碎片;
根据自身的私钥碎片及所述第二公钥验证所述协同地址。
26.如权利要求25所述的协同地址的创建方法,其特征在于,所述根据自身的私钥碎片及所述第二公钥验证所述协同地址,包括:
验证PK=(LA×skA)×G+pkB是否成立;
如果成立,则确认协同地址创建成功;
其中,PK为协同地址,skA为自身的私钥碎片,G为系统参数,LA为自身的拉格朗日系数,pkB为第二客户端的第二公钥。
27.一种客户端,其特征在于,包括:
请求发送模块,用于通过服务器向第二客户端发起协同地址创建请求;所述协同地址创建请求中携带自身的临时公钥;
函数生成模块,用于随机生成第三多项式;
数值交换模块,用于在所述服务器随机生成第一多项式且所述第二客户端随机生成第二多项式后,与所述第二客户端和所述服务器交换函数值,以便所述第二客户端和所述服务器生成协同账户的协同地址;
数据接收模块,用于接收所述服务器发送的密文及协同地址,并用所述临时公钥对应的临时私钥解密所述密文,获得所述第二客户端的第二公钥及所述第二多项式的第三函数值;
私钥生成模块,用于根据所述第三多项式及所述第三函数值,生成自身的私钥碎片;
地址验证模块,用于根据自身的私钥碎片及所述第二公钥验证所述协同地址。
28.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
通过服务器向第二客户端发起协同地址创建请求;所述协同地址创建请求中携带自身的临时公钥;
随机生成第三多项式;
在所述服务器随机生成第一多项式且所述第二客户端随机生成第二多项式后,与所述第二客户端和所述服务器交换函数值,以便所述第二客户端和所述服务器生成协同账户的协同地址;
接收所述服务器发送的密文及协同地址,并用所述临时公钥对应的临时私钥解密所述密文,获得所述第二客户端的第二公钥及所述第二多项式的第三函数值;
根据所述第三多项式及所述第三函数值,生成自身的私钥碎片;
根据自身的私钥碎片及所述第二公钥验证所述协同地址。
29.一种私钥恢复方法,其特征在于,包括:
接收第一客户端发起的对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
响应于所述私钥碎片恢复请求,随机生成第二多项式;
接收服务器提供的第一多项式的第二函数值;
根据所述第二多项式及所述第二函数值,生成自身的新私钥碎片、以及与所述新私钥碎片对应的新第二公钥;
用所述临时公钥将所述新第二公钥及所述第二多项式的第三函数值加密为密文;
将所述密文及所述第二多项式的第一函数值提供给所述服务器,以便所述服务器根据所述第一函数值及所述第一多项式生成所述服务器的新私钥碎片,并便于所述服务器将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,从而便于所述第一客户端生成新私钥碎片并验证所述协同地址。
30.如权利要求29所述的私钥恢复方法,其特征在于,所述根据所述第二多项式及所述第二函数值,生成自身的新私钥碎片、以及与所述新私钥碎片对应的新第二公钥,包括:
根据公式sk'B=P1(2)+P2(2)生成自身的新私钥碎片sk'B
根据公式pk'B=sk'B×G生成与所述新私钥碎片sk'B对应的新第二公钥pk'B
其中,P1(2)、P2(2)分别为第一多项式P1(x)、第二多项式P2(x)的第二函数值,G为系统参数,P1(2)=LS×skS+2,P2(2)=LB×skS+2,其中,LS为服务器的拉格朗日系数,LB为自身的拉格朗日系数。
31.如权利要求30所述的私钥恢复方法,其特征在于,还包括:
根据公式生成与所述新私钥碎片对应的新第一公钥pk'A
其中,PK为协同账户的公钥,LA为第一客户端的拉格朗日系数,LB为自身的拉格朗日系数,pk'B为自身的新第二公钥。
32.一种客户端,其特征在于,包括:
请求接收模块,用于接收第一客户端发起的对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
函数生成模块,用于响应于所述私钥碎片恢复请求,随机生成第二多项式;
数值接收模块,用于接收服务器提供的第一多项式的第二函数值;
数据生成模块,用于根据所述第二多项式及所述第二函数值,生成自身的新私钥碎片、以及与所述新私钥碎片对应的新第二公钥;
数据加密模块,用于用所述临时公钥将所述新第二公钥及所述第二多项式的第三函数值加密为密文;
数据发送模块,用于将所述密文及所述第二多项式的第一函数值提供给所述服务器,以便所述服务器根据所述第一函数值及所述第一多项式生成所述服务器的新私钥碎片,并便于所述服务器将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,从而便于所述第一客户端生成新私钥碎片并验证所述协同地址。
33.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
接收第一客户端发起的对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
响应于所述私钥碎片恢复请求,随机生成第二多项式;
接收服务器提供的第一多项式的第二函数值;
根据所述第二多项式及所述第二函数值,生成自身的新私钥碎片、以及与所述新私钥碎片对应的新第二公钥;
用所述临时公钥将所述新第二公钥及所述第二多项式的第三函数值加密为密文;
将所述密文及所述第二多项式的第一函数值提供给所述服务器,以便所述服务器根据所述第一函数值及所述第一多项式生成所述服务器的新私钥碎片,并便于所述服务器将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,从而便于所述第一客户端生成新私钥碎片并验证所述协同地址。
34.一种私钥恢复方法,其特征在于,包括:
接收第一客户端发起的对应于协同地址的私钥碎片恢复请求,并将其转发给第二客户端;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
随机生成第一多项式;
将所述第一多项式的第二函数值提供给所述第二客户端;
接收所述第二客户端提供的密文及第二多项式的第一函数值,所述密文包含所述第二客户端的新第二公钥及所述第二多项式的第三函数值;
根据所述第一函数值及所述第一多项式的第一函数值,生成自身的新私钥碎片;
将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,以便所述第一客户端生成新私钥碎片并验证所述协同地址。
35.如权利要求34所述的私钥恢复方法,其特征在于,所述根据所述第一函数值及所述第一多项式的第一函数值,生成自身的新私钥碎片,包括:
根据公式sk'S=P1(1)+P2(1)生成自身的新私钥碎片sk'S
其中,P1(1)、P2(1)分别为第一多项式P1(x)、第二多项式P2(x)的第一函数值,P1(1)=LS×skS+1,P2(1)=LB×skS+1,其中,LS为自身的拉格朗日系数,LB为第二客户端的拉格朗日系数。
36.一种服务器,其特征在于,包括:
请求转发模块,用于接收第一客户端发起的对应于协同地址的私钥碎片恢复请求,并将其转发给第二客户端;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
函数生成模块,用于随机生成第一多项式;
数值提供模块,用于将所述第一多项式的第二函数值提供给所述第二客户端;
数据接收模块,用于接收所述第二客户端提供的密文及第二多项式的第一函数值,所述密文包含所述第二客户端的新第二公钥及所述第二多项式的第三函数值;
私钥生成模块,用于根据所述第一函数值及所述第一多项式的第一函数值,生成自身的新私钥碎片;
数据提供模块,用于将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,以便所述第一客户端生成新私钥碎片并验证所述协同地址。
37.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
接收第一客户端发起的对应于协同地址的私钥碎片恢复请求,并将其转发给第二客户端;所述私钥碎片恢复请求中携带所述第一客户端的临时公钥;
随机生成第一多项式;
将所述第一多项式的第二函数值提供给所述第二客户端;
接收所述第二客户端提供的密文及第二多项式的第一函数值,所述密文包含所述第二客户端的新第二公钥及所述第二多项式的第三函数值;
根据所述第一函数值及所述第一多项式的第一函数值,生成自身的新私钥碎片;
将所述密文及所述第一多项式的第三函数值提供给所述第一客户端,以便所述第一客户端生成新私钥碎片并验证所述协同地址。
38.一种私钥恢复方法,其特征在于,包括:
通过服务器向第二客户端发起对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带自身的临时公钥;
接收所述服务器发送的密文及第一多项式的第三函数值;所述密文中携带所述第二客户端的新第二公钥及第二多项式的第三函数值;
用所述临时公钥对应的临时私钥解密所述密文,获得所述新第二公钥及所述第二多项式的第三函数值;
根据所述第一多项式的第三函数值及所述第二多项式的第三函数值,生成自身的新私钥碎片;
根据自身的新私钥碎片及所述新第二公钥验证所述协同地址。
39.如权利要求38所述的私钥恢复方法,其特征在于,所述根据自身的新私钥碎片及所述新第二公钥验证所述协同地址,包括:
验证PK=(LA×sk'A)×G+pk'B是否成立;
如果成立,则确认私钥碎片恢复成功;
其中,PK为协同地址,sk'A为自身的新私钥碎片,G为系统参数,LA为自身的拉格朗日系数,pk'B为第二客户端的新第二公钥。
40.一种客户端,其特征在于,包括:
请求发起模块,用于通过服务器向第二客户端发起对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带自身的临时公钥;
数据接收模块,用于接收所述服务器发送的密文及第一多项式的第三函数值;所述密文中携带所述第二客户端的新第二公钥及第二多项式的第三函数值;
数据解密模块,用于用所述临时公钥对应的临时私钥解密所述密文,获得所述新第二公钥及所述第二多项式的第三函数值;
私钥生成模块,用于根据所述第一多项式的第三函数值及所述第二多项式的第三函数值,生成自身的新私钥碎片;
地址验证模块,用于根据自身的新私钥碎片及所述新第二公钥验证所述协同地址。
41.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
通过服务器向第二客户端发起对应于协同地址的私钥碎片恢复请求;所述私钥碎片恢复请求中携带自身的临时公钥;
接收所述服务器发送的密文及第一多项式的第三函数值;所述密文中携带所述第二客户端的新第二公钥及第二多项式的第三函数值;
用所述临时公钥对应的临时私钥解密所述密文,获得所述新第二公钥及所述第二多项式的第三函数值;
根据所述第一多项式的第三函数值及所述第二多项式的第三函数值,生成自身的新私钥碎片;
根据自身的新私钥碎片及所述新第二公钥验证所述协同地址。
CN201910565957.3A 2019-06-27 2019-06-27 私钥恢复、协同地址的创建、签名方法及装置、存储介质 Active CN110289968B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910565957.3A CN110289968B (zh) 2019-06-27 2019-06-27 私钥恢复、协同地址的创建、签名方法及装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910565957.3A CN110289968B (zh) 2019-06-27 2019-06-27 私钥恢复、协同地址的创建、签名方法及装置、存储介质

Publications (2)

Publication Number Publication Date
CN110289968A true CN110289968A (zh) 2019-09-27
CN110289968B CN110289968B (zh) 2022-06-24

Family

ID=68007671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910565957.3A Active CN110289968B (zh) 2019-06-27 2019-06-27 私钥恢复、协同地址的创建、签名方法及装置、存储介质

Country Status (1)

Country Link
CN (1) CN110289968B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111192050A (zh) * 2019-12-31 2020-05-22 成都库珀区块链科技有限公司 一种数字资产私钥存储提取方法及装置
CN111241596A (zh) * 2020-01-20 2020-06-05 上海佩俪信息科技有限公司 一种区块链资产账户恢复的方法及装置
CN111342967A (zh) * 2020-03-06 2020-06-26 北京中宇万通科技股份有限公司 一种区块链用户证书丢失或损坏解决方法和装置
CN111709742A (zh) * 2020-05-18 2020-09-25 杜晓楠 区块链系统中防止根地址曝露的方法、计算机可读存储介质和区块链系统
CN111934889A (zh) * 2020-10-13 2020-11-13 百度在线网络技术(北京)有限公司 密钥生成方法、签名和验签方法、装置、设备和介质
CN112417489A (zh) * 2020-12-04 2021-02-26 矩阵元技术(深圳)有限公司 数字签名的生成方法、装置和服务器
CN112436938A (zh) * 2020-12-04 2021-03-02 矩阵元技术(深圳)有限公司 数字签名的生成方法、装置和服务器
WO2022116176A1 (zh) * 2020-12-04 2022-06-09 上海阵方科技有限公司 数字签名的生成方法、装置和服务器
SE2151306A1 (en) * 2021-10-26 2023-04-27 Assa Abloy Ab Performing an action by an electronic device using first and second partial secret keys and using volatile and non-volatile memory for storage of keys

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080069347A1 (en) * 2006-09-08 2008-03-20 Brown Daniel R Aggregate signature schemes
CN106027245A (zh) * 2016-07-22 2016-10-12 中国工商银行股份有限公司 密钥共享方法及装置
CN108027867A (zh) * 2015-07-14 2018-05-11 Fmr有限责任公司 计算高效的转账处理、审计以及搜索装置、方法和系统
US20180359097A1 (en) * 2017-06-07 2018-12-13 Bar-Ilan University Digital signing by utilizing multiple distinct signing keys, distributed between two parties
CN109003186A (zh) * 2018-07-13 2018-12-14 北京创世智链信息技术研究院 一种基于区块链的防止抵赖的交易方法、装置及系统
CN109118363A (zh) * 2018-08-14 2019-01-01 中钞信用卡产业发展有限公司杭州区块链技术研究院 基于区块链的数字货币钱包地址管理方法、装置及设备
CN109377360A (zh) * 2018-08-31 2019-02-22 西安电子科技大学 基于加权门限签名算法的区块链资产交易转账方法
CN109474422A (zh) * 2018-11-19 2019-03-15 武汉大学 一种多方协同产生sm2数字签名的方法
CN109716375A (zh) * 2018-07-27 2019-05-03 区链通网络有限公司 区块链账户的处理方法、装置和存储介质
CN109872155A (zh) * 2019-02-22 2019-06-11 矩阵元技术(深圳)有限公司 数据处理方法和装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080069347A1 (en) * 2006-09-08 2008-03-20 Brown Daniel R Aggregate signature schemes
CN108027867A (zh) * 2015-07-14 2018-05-11 Fmr有限责任公司 计算高效的转账处理、审计以及搜索装置、方法和系统
CN106027245A (zh) * 2016-07-22 2016-10-12 中国工商银行股份有限公司 密钥共享方法及装置
US20180359097A1 (en) * 2017-06-07 2018-12-13 Bar-Ilan University Digital signing by utilizing multiple distinct signing keys, distributed between two parties
CN109003186A (zh) * 2018-07-13 2018-12-14 北京创世智链信息技术研究院 一种基于区块链的防止抵赖的交易方法、装置及系统
CN109716375A (zh) * 2018-07-27 2019-05-03 区链通网络有限公司 区块链账户的处理方法、装置和存储介质
CN109118363A (zh) * 2018-08-14 2019-01-01 中钞信用卡产业发展有限公司杭州区块链技术研究院 基于区块链的数字货币钱包地址管理方法、装置及设备
CN109377360A (zh) * 2018-08-31 2019-02-22 西安电子科技大学 基于加权门限签名算法的区块链资产交易转账方法
CN109474422A (zh) * 2018-11-19 2019-03-15 武汉大学 一种多方协同产生sm2数字签名的方法
CN109872155A (zh) * 2019-02-22 2019-06-11 矩阵元技术(深圳)有限公司 数据处理方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YI LIU ET AL: "An efficient method to enhance Bitcoin wallet security", 《2017 11TH IEEE INTERNATIONAL CONFERENCE ON ANTI-COUNTERFEITING, SECURITY, AND IDENTIFICATION (ASID)》 *
王化群等: "区块链中的密码学技术", 《 南京邮电大学学报(自然科学版)》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111192050A (zh) * 2019-12-31 2020-05-22 成都库珀区块链科技有限公司 一种数字资产私钥存储提取方法及装置
CN111192050B (zh) * 2019-12-31 2023-08-11 成都库珀创新科技有限公司 一种数字资产私钥存储提取方法及装置
CN111241596A (zh) * 2020-01-20 2020-06-05 上海佩俪信息科技有限公司 一种区块链资产账户恢复的方法及装置
CN111241596B (zh) * 2020-01-20 2022-07-01 上海佩俪信息科技有限公司 一种区块链资产账户恢复的方法及装置
CN111342967B (zh) * 2020-03-06 2021-03-19 北京中宇万通科技股份有限公司 一种区块链用户证书丢失或损坏解决方法和装置
CN111342967A (zh) * 2020-03-06 2020-06-26 北京中宇万通科技股份有限公司 一种区块链用户证书丢失或损坏解决方法和装置
CN111709742A (zh) * 2020-05-18 2020-09-25 杜晓楠 区块链系统中防止根地址曝露的方法、计算机可读存储介质和区块链系统
CN111709742B (zh) * 2020-05-18 2023-08-01 杜晓楠 区块链系统中防止根地址曝露的方法、计算机可读存储介质和区块链系统
CN111934889A (zh) * 2020-10-13 2020-11-13 百度在线网络技术(北京)有限公司 密钥生成方法、签名和验签方法、装置、设备和介质
CN111934889B (zh) * 2020-10-13 2021-02-26 百度在线网络技术(北京)有限公司 密钥生成方法、签名和验签方法、装置、设备和介质
WO2022116176A1 (zh) * 2020-12-04 2022-06-09 上海阵方科技有限公司 数字签名的生成方法、装置和服务器
CN112436938A (zh) * 2020-12-04 2021-03-02 矩阵元技术(深圳)有限公司 数字签名的生成方法、装置和服务器
CN112417489B (zh) * 2020-12-04 2022-09-30 矩阵元技术(深圳)有限公司 数字签名的生成方法、装置和服务器
CN112436938B (zh) * 2020-12-04 2022-12-13 矩阵元技术(深圳)有限公司 数字签名的生成方法、装置和服务器
CN112417489A (zh) * 2020-12-04 2021-02-26 矩阵元技术(深圳)有限公司 数字签名的生成方法、装置和服务器
SE2151306A1 (en) * 2021-10-26 2023-04-27 Assa Abloy Ab Performing an action by an electronic device using first and second partial secret keys and using volatile and non-volatile memory for storage of keys
SE545445C2 (en) * 2021-10-26 2023-09-12 Assa Abloy Ab Performing an action by an electronic device using first and second partial secret keys and using volatile and non-volatile memory for storage of keys

Also Published As

Publication number Publication date
CN110289968B (zh) 2022-06-24

Similar Documents

Publication Publication Date Title
CN110289968A (zh) 私钥恢复、协同地址的创建、签名方法及装置、存储介质
KR102170346B1 (ko) 정보 보호를 위한 시스템 및 방법
TWI760149B (zh) 決定用於資訊的安全交換的共同私密,及階層化的決定性加密金鑰
CN108352015B (zh) 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移
CN109756582B (zh) 区块链网络中的信息记录方法、装置、节点及存储介质
US10944566B2 (en) Methods and systems for supporting fairness in secure computations
CN106779707B (zh) 基于区块链的数字货币交易信息的监管方法、装置及系统
CN111431713B (zh) 一种私钥存储方法、装置和相关设备
KR20200066258A (ko) 정보 보호를 위한 시스템 및 방법
CN109729041B (zh) 一种加密内容的发布以及获取方法及装置
CN107920052B (zh) 一种加密方法及智能装置
CN109861956B (zh) 基于状态通道的数据验证系统、方法、装置及设备
JPWO2019093478A1 (ja) 鍵交換装置、鍵交換システム、鍵交換方法、及び鍵交換プログラム
CN108764912A (zh) 一种基于短信验证码的支付方法及装置
CN116830523A (zh) 阈值密钥交换
CN110363528B (zh) 协同地址的生成、交易签名方法及装置、存储介质
US20210158444A1 (en) Method and Apparatus for a Blockchain-Agnostic Safe Multi-Signature Digital Asset Management
CN111861462B (zh) 基于区块链的金融产品交易方法及装置
CN112737783B (zh) 一种基于sm2椭圆曲线的解密方法及设备
CN113132078B (zh) 一种基于同态承诺的区块链隐私保护方法及区块链系统
CN112003690B (zh) 密码服务系统、方法及装置
CN111784338A (zh) 信息处理方法、装置、系统及存储介质
CN110912688B (zh) 基于联盟链的抗量子计算私钥备份、挂失及恢复方法及系统
CN114547684A (zh) 一种保护隐私数据的多方联合训练树模型的方法及装置
van Oorschot Public key cryptography’s impact on society: how Diffie and Hellman changed the world

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40010314

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant