CN109981591B - 单一客户端生成私钥的密钥管理方法、电子设备 - Google Patents
单一客户端生成私钥的密钥管理方法、电子设备 Download PDFInfo
- Publication number
- CN109981591B CN109981591B CN201910152743.3A CN201910152743A CN109981591B CN 109981591 B CN109981591 B CN 109981591B CN 201910152743 A CN201910152743 A CN 201910152743A CN 109981591 B CN109981591 B CN 109981591B
- Authority
- CN
- China
- Prior art keywords
- key
- sub
- private
- client
- servers
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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)
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0827—Key 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) involving distinctive intermediate devices or communication paths
-
- 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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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
Abstract
本申请提供了一种单一客户端生成私钥的密钥管理方法、电子设备,其中,该方法应用于密钥系统中,该密钥系统包括:一个客户端和N个密钥服务器,其中,N为大于等于2的整数,方法包括:客户端生成完整的目标私钥并根据目标私钥生成目标公钥;客户端将目标私钥拆分为M个子私钥,M为大于等于N的整数;客户端与N个密钥服务器建立安全信道;客户端通过安全信道,将M个子私钥中的前N个子私钥和目标公钥,一一对应地下发给N个密钥服务器中的各个密钥服务器。通过上述方式解决现有的密钥系统由密钥服务器生成密钥所存在的灵活性和安全性不高的问题,达到了有效提升密钥生成的灵活性和密钥安全性的技术效果。
Description
技术领域
本申请属于数据安全技术领域,尤其涉及一种单一客户端生成私钥的密钥管理方法、电子设备。
背景技术
目前,针对密钥服务系统而言,一般都是由一个密钥服务器生成密钥,然后将生成的密钥分发给密钥使用方,这样势必会增加密钥服务器的负担,且因为是由单一密钥服务器生成的,导致所有的密钥生成规则都是密钥服务器自身指定和维护的,灵活性不高。
针对现有的密钥系统中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
本申请目的在于提供一种单一客户端生成私钥的密钥管理方法、电子设备,可以实现基于客户端生成密钥的需求,提升密钥管理的灵活性和多样性。
本申请提供一种单一客户端生成私钥的密钥管理方法、电子设备是这样实现的:
一种单一客户端生成私钥的密钥管理方法,应用于密钥系统中,该密钥系统包括:一个客户端和N个密钥服务器,其中,N为大于等于2的整数,所述方法包括:
所述客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
所述客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
所述客户端与所述N个密钥服务器建立安全信道;
所述客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
在一个实施方式中,在所述客户端生成完整的目标私钥之后,还包括:
所述客户端对所述目标私钥进行备份存储。
在一个实施方式中,在所述客户端生成完整的目标私钥之后,还包括:
所述客户端获取备份的私钥作为目标密钥;
将所述目标密钥拆分为M个密钥分量;
通过所述目标私钥对所述M个密钥分量中的前N个密钥分量进行签名,得到N个签名文件;
将所述M个密钥分量中的前N个子密钥分量和所述N个签名文件,一一对应地下发给所述N个密钥服务器中的各个密钥服务器;
所述N个密钥服务器中的各个密钥服务器根据所述目标公钥验证签名文件的有效性;
在验证通过后,所述N个密钥服务器中的各个密钥服务器更新密钥分量并保存。
在一个实施方式中,所述客户端将所述目标私钥拆分为M个子私钥之后,还包括:
所述客户端根据所述M个子私钥,生成M个子私钥中各个子私钥对应的子公钥,得到M个子公钥,其中,M等于N;
相应的,所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器,包括:
所述客户端通过所述安全信道,将所述M个子私钥、所述N个子私钥对应的子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
在一个实施方式中,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
所述N个密钥服务器之间建立安全通道;
所述N个密钥服务器通过所述安全信道,发起MPC计算,对所述待签名数据进行签名,并通过所述目标公钥验证签名的正确性。
在一个实施方式中,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起密钥刷新请求;
所述N个密钥服务器通过所述安全信道,发起MPC计算得到更新私钥,并将所述更新私钥拆分为N个子更新密钥,通过所述更新私钥对所述N个子更新密钥进行签名,得到N个签名私钥,将所述N个签名私钥和N个子更新密钥一一对应地下发给所述N个密钥服务器中的各个密钥服务器;
所述N个密钥服务器通过所述目标公钥验证接收到的签名私钥是否有效,在确定有效的情况下,更新并存储接收到的子更新密钥。
在一个实施方式中,M等于N+1,所述M个子私钥中除N个子私钥之外的一个子私钥为所述客户端对应的子私钥。
在一个实施方式中,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
所述N个密钥服务器和所述客户端之间建立安全通道;
所述N个密钥服务器和所述客户端通过所述安全信道,发起MPC计算,对所述待签名数据进行签名,并通过所述目标公钥验证签名的正确性。
在一个实施方式中,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起密钥刷新请求;
所述N个密钥服务器和所述客户端之间建立安全通道;
所述N个密钥服务器和所述客户端通过所述安全信道,发起MPC计算得到基于所述目标私钥拆分的M个子更新私钥,并对所述M个子更新私钥进行签名,得到M个签名私钥,将所述M个签名私钥和M个子更新私钥一一对应地下发给所述N个密钥服务器中的各个密钥服务器和所述客户端;
所述N个密钥服务器和所述客户端通过所述目标公钥验证接收到的签名私钥是否有效,在确定有效的情况下,更新并存储接收到的子更新私钥。
在一个实施方式中,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
从所述N个密钥服务器中选择两个密钥服务器作为MPC计算方;
所述N个密钥服务器中除MPC计算方之外的各个密钥服务器将自身对应的子私钥拆分为第一子私钥和第二子私钥,并通过密钥服务器之间建立的安全信道将第一私钥传送至MPC计算方中的第一密钥服务器,将第二子私钥传送至MPC计算方中的第二密钥服务器;
所述第一密钥服务器和所述第二密钥服务器通过密钥服务器之间建立的安全信道发起MPC计算,对所述待签名数据进行签名;
将签名后的数据发送至所述客户端和所述N个密钥服务器中除MPC计算方之外的各个密钥服务器。
在一个实施方式中,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起密钥刷新请求;
从所述N个密钥服务器中选择两个密钥服务器作为MPC计算方;
所述N个密钥服务器中除MPC计算方之外的各个密钥服务器将自身对应的子私钥拆分为第一子私钥和第二子私钥,并通过密钥服务器之间建立的安全信道将第一私钥传送至MPC计算方中的第一密钥服务器,将第二子私钥传送至MPC计算方中的第二密钥服务器;
所述第一密钥服务器和所述第二密钥服务器通过密钥服务器之间建立的安全信道发起MPC计算得到基于所述目标私钥拆分的N个子更新密钥,并对N个子更新密钥进行签名,得到N个签名私钥;
所述第一密钥服务器和所述第二密钥服务器将N个子更新密钥及N个签名私钥,一一对应地下发给所述N个密钥服务器中除MPC计算方之外的各个密钥服务器;
所述N个密钥服务器中除MPC计算方之外的各个密钥服务器验证接收到的签名私钥是否正确,在确定正确的情况下,更新并存储接收到的子更新私钥。
一种电子设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现如下方法的步骤:
所述客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
所述客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
所述客户端与所述N个密钥服务器建立安全信道;
所述客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现如下方法的步骤:
所述客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
所述客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
所述客户端与所述N个密钥服务器建立安全信道;
所述客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
本申请提供的单一客户端生成私钥的密钥管理方法、电子设备,由密钥系统中唯一的客户端生成完整的目标私钥和目标公钥,并将目标私钥拆分为多个子私钥,基于建立的安全信道分发给密钥系统的各个服务器,因每个服务器获取和存储的是私钥的一部分,因此在后续的使用和更新过程中,完成的私钥是不会被生成的,保证了私钥的安全性。通过上述方式解决现有的密钥系统由密钥服务器生成密钥所存在的灵活性和安全性不高的问题,达到了有效提升密钥生成的灵活性和密钥安全性的技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的密钥系统的架构图;
图2是本申请提供的单一客户端生成私钥的密钥管理方法的方法流程图;
图3是本申请提供的实例1的密钥生成的交互示意图;
图4是本申请提供的实例1的密钥使用的交互示意图;
图5是本申请提供的实例1的密钥备份的交互示意图;
图6是本申请提供的实例1的密钥恢复的交互示意图;
图7是本申请提供的实例1的密钥刷新的交互示意图;
图8是本申请提供的实例2的密钥生成的交互示意图;
图9是本申请提供的实例2的密钥使用的交互示意图;
图10是本申请提供的实例2的密钥恢复的交互示意图;
图11是本申请提供的实例2的密钥刷新的交互示意图;
图12是本申请提供的实例3的密钥生成的交互示意图;
图13是本申请提供的实例3的密钥使用的交互示意图;
图14是本申请提供的实例3的密钥恢复的交互示意图;
图15是本申请提供的实例3的密钥刷新的交互示意图;
图16是本申请提供的计算机终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
考虑到现有的是由密钥服务器单方面生成密钥,导致灵活性和安全性较低的问题,在本例中,通过密钥系统的中的客户端生成完成的私钥和公钥,然后拆分为多个密钥分量之后分发给各个密钥服务器,在使用的时候,密钥服务器使用这些密钥分量进行签名、更新等操作,从而可以提升密钥生成的灵活性和密钥的安全性。
在本例中所提供的单一客户端生成私钥的密钥管理方法,应用于密钥系统中,如图1所示,该密钥系统包括:一个客户端和N个密钥服务器,其中,N为大于等于2的整数。
图2是本申请所述一种单一客户端生成私钥的密钥管理方法一个实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体的,如图2所示,本申请一种实施例提供的一种单一客户端生成私钥的密钥管理方法可以包括:
步骤201:客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
其中,上述的客户端为密钥使用方,包括但不限于App、应用服务器等,客户端具体以哪种形式存在可以根据实际需要选择,本申请对此不作限定。上述的密钥服务器为密钥服务方,用于提供密钥相关服务。
具体的,客户端可以生成完整私钥SK(即,目标私钥),并基于私钥SK生成相关公钥PK(即,目标公钥)。
步骤202:客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
客户端在生成目标公钥之后,可以将私钥SK拆分成n份:SK1~SKn,或者是将私钥SK拆分成n+1份:SK1~SKn+1。在对目标私钥进行拆分的时候,可以采用secret sharing(密钥共享)机制进行拆分,也可以采用其它的方式进行拆分,只要能实现私钥的有效拆分的方式都可以。
步骤203:客户端与所述N个密钥服务器建立安全信道;
客户端与密钥服务器之间可以通过KYC(Know your customer,确认身份程序)来建立安全通道,其中,确认身份程序可以包括但不限于以下至少之一:手机短信、邮箱验证码、账号密码、指纹、人脸、证书等。
步骤204:客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
在客户端生成完整的目标私钥的过程中,客户端可以对目标私钥进行备份存储,即,客户端对目标私钥进行备份,以便在需要进行密钥恢复的时候调用。
具体的,在恢复的时候,可以按照如下步骤进行恢复:
S1:客户端获取备份的私钥作为目标密钥;
S2:将所述目标密钥拆分为M个密钥分量;
S3:通过所述目标私钥对所述M个密钥分量中的前N个密钥分量进行签名,得到N个签名文件;
S4:将所述M个密钥分量中的前N个子密钥分量和所述N个签名文件,一一对应地下发给所述N个密钥服务器中的各个密钥服务器;
S5:N个密钥服务器中的各个密钥服务器根据所述目标公钥验证签名文件的有效性;
S6:在验证通过后,所述N个密钥服务器中的各个密钥服务器更新密钥分量并保存。
在将密钥或密钥分量通过各种形式保存下来的时候,可以采用但不限于采用以下方式之一进行保存:
1)数据库:通过数据库保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
2)密钥文件:通过导出密钥文件形式保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
3)HSM:通过硬件安全模块保存密钥或密钥分量,其中,密钥或密钥分量可以加密保存;
4)助记词:将密钥活密钥分量通过转换生成一系列助记词进行保存。
在实际实现的时候,密钥系统中的客户端在进行私钥拆分的时候,可以是拆分成N份,即,每个密钥服务器得到一份密钥分量,也可以是拆分成N+1份,即,每个密钥服务器和客户端都得到一份密钥分量。
在M等于N的情况下,客户端将所述目标私钥拆分为M个子私钥之后,客户端可以根据所述M个子私钥,生成M个子私钥中各个子私钥对应的子公钥,得到M个子公钥,相应的,所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器,包括:客户端通过所述安全信道,将所述M个子私钥、所述N个子私钥对应的子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。即,在M等于N的情况下,还会根据M个子私钥,生成M个子私钥中各个子私钥对应的子公钥,得到M个子公钥。
在使用密钥进行签名的时候,可以通过多方MPC计算,具体的,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,使用密钥可以包括:
S1:客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
S2:N个密钥服务器之间建立安全通道;
S3:N个密钥服务器通过所述安全信道,发起MPC计算得到,对所述待签名数据进行签名,并通过所述目标公钥验证签名的正确性。
其中,MPC(Secure Multi-Party Computation,安全多方计算)是在没有可信第三方的前提下,两个百万富翁如何不泄露自己的真实财产状况来比较谁更有钱。MPC可以在保证各方数据安全的同时,联合使用各方数据来达到特定的效果,从而充分发挥数据的价值。多个持有各自私有数据的参与方,共同执行一个计算逻辑计算逻辑(如,求最大值计算),并获得计算结果。但过程中,参与的每一方均不会泄漏各自数据的计算,被称之为MPC计算,MPC计算可以通过对协议的设计而不用依赖于可信第三方。安全多方计算可以抽象的理解为:两方分别拥有各自的私有数据,在不泄漏各自私有数据的情况下,能够计算出关于公共函数的结果。整个计算完成时,只有计算结果对双方可知,且双方均不知对方的数据以及计算过程的中间数据。
在M等于N的情况下,且通过多方MPC进行密钥更新的情况下,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,进行密钥更新可以包括:
S1:客户端发起密钥刷新请求;
S2:N个密钥服务器通过所述安全信道,发起MPC计算得到基于目标私钥拆分的N个子更新密钥,通过所述更新私钥对所述N个子更新密钥进行签名,得到N个签名私钥,将所述N个签名私钥和N个子更新密钥一一对应地下发给所述N个密钥服务器中的各个密钥服务器;
S3:N个密钥服务器通过所述目标公钥验证接收到的签名私钥是否有效,在确定有效的情况下,更新并存储接收到的子更新密钥。
在M等于N+1且采用多方MPC计算的时候,使用密钥进行签名,可以包括:
S1:客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
S2:N个密钥服务器和所述客户端之间建立安全通道;
S3:N个密钥服务器和所述客户端通过所述安全信道,发起MPC计算,对所述待签名数据进行签名,并通过所述目标公钥验证签名的正确性。
在M等于N+1且采用多方MPC计算的时候,进行密钥更新,可以包括:
S1:客户端发起密钥刷新请求;
S2:N个密钥服务器和所述客户端之间建立安全通道;
S3:N个密钥服务器和所述客户端通过所述安全信道,发起MPC计算得到基于目标私钥拆分的M个子更新私钥,通过所述更新私钥对所述M个子更新私钥进行签名,得到M个签名私钥,将所述M个签名私钥和M个子更新私钥一一对应地下发给所述N个密钥服务器中的各个密钥服务器和所述客户端;
S4:N个密钥服务器和所述客户端通过所述目标公钥验证接收到的签名私钥是否有效,在确定有效的情况下,更新并存储接收到的子更新私钥。
在M等于N且采用两方MPC计算的时候,使用密钥进行签名,可以包括:
S1:客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
S2:从所述N个密钥服务器中选择两个密钥服务器作为MPC计算方;
具体的,在选取MPC计算方的时候可以采用随机选取的方式,也可以是按照预设算法等选择的方式,具体采用哪种方式选取MPC计算方可以根据实际需要和情况确定,本申请对此不作限定。
S3:N个密钥服务器中除MPC计算方之外的各个密钥服务器将自身对应的子私钥拆分为第一子私钥和第二子私钥,并通过密钥服务器之间建立的安全信道将第一私钥传送至MPC计算方中的第一密钥服务器,将第二子私钥传送至MPC计算方中的第二密钥服务器;
S4:第一密钥服务器和所述第二密钥服务器通过密钥服务器之间建立的安全信道发起MPC计算,对所述待签名数据进行签名;
S5:将签名后的数据发送至所述客户端和所述N个密钥服务器中除MPC计算方之外的各个密钥服务器。
在M等于N且采用两方MPC计算的时候,进行密钥更新可以包括:
S1:客户端发起密钥刷新请求;
S2:从所述N个密钥服务器中选择两个密钥服务器作为MPC计算方;
S3:N个密钥服务器中除MPC计算方之外的各个密钥服务器将自身对应的子私钥拆分为第一子私钥和第二子私钥,并通过密钥服务器之间建立的安全信道将第一私钥传送至MPC计算方中的第一密钥服务器,将第二子私钥传送至MPC计算方中的第二密钥服务器;
S4:第一密钥服务器和所述第二密钥服务器通过密钥服务器之间建立的安全信道发起MPC计算得到基于目标私钥拆分的N个子更新密钥,并对N个子更新密钥进行签名,得到N个签名私钥,;
S5:第一密钥服务器和所述第二密钥服务器将N个子更新密钥及N个签名私钥,一一对应地下发给所述N个密钥服务器中除MPC计算方之外的各个密钥服务器;
S6:N个密钥服务器中除MPC计算方之外的各个密钥服务器验证接收到的签名私钥是否正确,在确定正确的情况下,更新并存储接收到的子更新私钥。
在上例中,由密钥系统中唯一的客户端生成完整的目标私钥和目标公钥,并将目标私钥拆分为多个子私钥,基于建立的安全信道分发给密钥系统的各个服务器,因每个服务器获取和存储的是私钥的一部分,因此在后续的使用和更新过程中,完成的私钥是不会被生成的,保证了私钥的安全性。通过上述方式解决现有的密钥系统由密钥服务器生成密钥所存在的灵活性和安全性不高的问题,达到了有效提升密钥生成的灵活性和密钥安全性的技术效果。
下面结合几个具体实例对上述方法进行说明,然而,值得注意的是,这几个具体实例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
实例1:
在本例中,提供了一种基于安全两方计算通过客户端生成密钥,多个服务端保管的密钥管理方法,即,单个客户端生成私钥并拆分成多个分量分别下发至多个服务端,通过两方MPC,使用多个服务端计算签名,通过备份私钥,进行刷新多个服务端分量,通过两方MPC,刷新多个服务端分量。
对这种情境下的密钥生成、使用、存储、备份、恢复、刷新等操作说明如下:
1)生成:
如图3所示,可以包括如下步骤:
S1:客户端与密钥服务器通过KYC完成双向认证,并下发认证材料完成注册流程;
S2:客户端生成完整私钥SK,并基于私钥SK生成相关公钥PK。通过secret sharing将私钥SK拆分成n份:SK1~SKn,并通过SK1~SKn生成PK1~PKn;
S3:客户端与服务端通过下发的认证材料鉴权并建立安全信道,客户端分别向密钥服务器1~n下发对应分量,例如:下发SK1、PK1、PK至密钥服务器2;下发SK2、PK2、PK至密钥服务器2;以此类推,下发SKn、PKn、PK至密钥服务器n;
S4:密钥服务器1~n分别保存自己的密钥分量,完成密钥生成流程。其中,密钥服务器分别保存一部分密钥分量。
2)使用:
如图4所示,可以包括如下步骤:
S1:客户端发起签名请求,并提供公钥PK作为唯一标识以及待签名数据;
S2:服务端选择两台服务器作为MPC计算方,假设选择密钥服务器1和密钥服务器2作为MPC计算方;
S3:密钥服务器1~n通过KYC完成双向认证并建立安全信道,获取待签名信息及客户端公钥及签名,验证公钥签名是否正确。然后将SK3拆分成SK3-1、SK3-2,将SK3-1传给密钥服务器1、SK3-2传给密钥服务器2。以此类推,SKn拆分成SKn-1、SKn-2,将SKn-1传给密钥服务器1、SKn-2传给密钥服务器2;
S4:密钥服务器1、2通过安全信道发起MPC计算:通过密钥分量SK1、SK2、SK3-1~n-1、SK3-2~n-2计算出私钥SK,并通过私钥SK对待签名数据进行签名,并将签名返回给客户端与密钥服务器。因为整个过程是完整的MPC计算,故私钥SK实际上并没有真正生成过(不管是计算过程中,还是使用过程中),SK1~n均没有在计算交互过程中出现(即没有在网络层传输SK1~n用于计算)。
3)存储:
将密钥或密钥分量通过各种形式保存下来,具体的,可以采用但不限于以下形式之一进行存储:
数据库:通过数据库保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
密钥文件:通过导出密钥文件形式保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
HSM:通过硬件安全模块保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
助记词:将密钥活密钥分量通过转换生成一系列助记词进行保存;
二维码:通过密钥或密钥分量生成对应二维码进行保存,其中密钥或密钥分量可以加密保存。
4)备份:
如图5所示,在客户端生成私钥SK的过程中,直接对私钥SK进行备份保存,可以采用上述的存储形式之一进行备份。
5)恢复:
如图6所示,可以包括如下步骤:
S1:通过备份方式获取备份密钥,使用备份密钥SK通过secret sharing拆分成n份密钥分量。使用私钥SK对1~n份密钥分量分别进行签名,得到签名S1~Sn;
S2:客户端与密钥服务器通过KYC完成双向认证并建立安全信道,客户端分别向密钥服务器1~n下发对应分量,例如:下发SK1、S1至密钥服务器1;下发SK2、S2至密钥服务器2;以此类推,下发SKn、Sn至密钥服务器n;
S3:密钥服务器分别通过之前存储的公钥PK验证自身收到的签名分量的有效性,若验证通过,则更新密钥分量并保存。
6)刷新:
如图7所示,可以包括如下步骤:
S1:客户端发起刷新密钥请求;
S2:服务端选择两台服务器作为MPC计算方,假设选择密钥服务器1和密钥服务器2;
S3:密钥服务器1~n通过KYC建立安全信道,将SK3拆分成SK3-1、SK3-2,将SK3-1传给密钥服务器1、SK3-2传给密钥服务器2。以此类推,SKn拆分成SKn-1、SKn-2,将SKn-1传给密钥服务器1、SKn-2传给密钥服务器2;
S4:密钥服务器1、2通过安全信道发起MPC计算:通过密钥分量SK1、SK2、SK3-1~n-1、SK3-2~n-2计算出私钥SK,并通过私钥SK进行secret sharing生成新的SK1~n。并对新的SK1~n进行签名。将SK1~SKn及其签名分别下发给对应的密钥服务器。因为整个过程是完整的MPC计算,因此私钥SK实际上并没有真正生成过(不管是计算过程中,还是使用过程中),SK1~n均没有在计算交互过程中出现(即没有在网络层传输SK1~n用于计算);
S5:密钥服务器在收到相关信息后,通过签名S验证下发的SK的正确性,若验证通过,则保存相关信息,具体的,密钥服务器可以根据之前存储的公钥PK,对下发的SK1~SKn及其签名(如密钥服务器1获取的是SK1及其SK1的签名;密钥服务器2获取的是SK2及其SK2的签名,以此类推)进行验签操作,确认签名真实性后进行更新分量操作。
实例2:
在本例中,提供了一种基于安全多方计算通过客户端生成密钥,多个服务端保管的密钥管理方法,即,单个客户端生成私钥并拆分成多个分量分别下发至多个服务端,通过MPC,使用多个服务端计算签名,通过备份私钥,刷新多个服务端分量,通过MPC,刷新多个服务端分量。
对这种情境下的密钥生成、使用、存储、备份、恢复、刷新等操作说明如下:
1)生成:
如图8所示,可以包括如下步骤:
S1:客户端与密钥服务器通过KYC完成双向认证,并下发认证材料完成注册流程;
S2:客户端生成完整私钥SK,并基于私钥SK生成相关公钥PK。通过secret sharing将私钥SK拆分成n份:SK1~SKn;
S3:客户端与服务端通过下发的认证材料鉴权并建立安全信道,客户端分别向密钥服务器1~n下发对应分量,例如:下发SK1、PK至密钥服务器1;下发SK2、PK至密钥服务器2;以此类推,下发SKn、PK至密钥服务器n;
S4:密钥服务器1~n分别保存自己的密钥分量,完成密钥生成流程。其中,密钥服务器分别保存一部分密钥分量。
2)使用:
如图9所示,可以包括如下步骤:
S1:客户端发起签名请求,并提供公钥PK作为唯一标识以及待签名数据;
S2:密钥服务器之间通过KYC完成双向认证并建立安全信道;
S3:密钥服务器通过安全信道发起MPC计算:对待签名数据进行签名操作,并通过PK公钥验证签名的正确性。
3)存储:
将密钥或密钥分量通过各种形式保存下来,具体的,可以采用但不限于以下形式之一进行存储:
数据库:通过数据库保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
密钥文件:通过导出密钥文件形式保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
HSM:通过硬件安全模块保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
助记词:将密钥活密钥分量通过转换生成一系列助记词进行保存;
二维码:通过密钥或密钥分量生成对应二维码进行保存,其中密钥或密钥分量可以加密保存。
4)备份:
在客户端生成私钥SK生成过程中,直接对私钥SK进行备份保存,可以采用上述的存储形式之一进行备份。
5)恢复:
如图10所示,可以包括如下步骤:
S1:客户端通过备份方式获取备份密钥,使用备份密钥SK通过secret sharing拆分成n份密钥分量,使用私钥SK对n份密钥分量分别进行签名,得到签名S1~Sn;
S2:客户端与各密钥服务器通过KYC完成双向认证并建立安全信道,客户端分别向密钥服务器1~n下发对应分量,例如:下发SK1、S1至密钥服务器1;下发SK2、S2至密钥服务器2;以此类推,下发SKn、Sn至密钥服务器n;
S3:密钥服务器分别通过之前存储的公钥PK验证自身收到的签名分量的有效性,如果验证通过,则更新密钥分量并保存。例如:密钥服务器1,收到的是SK1及SK1的签名。密钥服务器1通过之前保存的PK对SK1及SK1的签名进行验签,若验证签名通过,则确认是由客户端下发的私钥分量,进行更新分量操作。
6)刷新:
如图11所示,可以包括如下步骤:
S1:客户端发起刷新密钥请求;
S2:密钥服务器之间通过KYC完成双向认证并建立安全信道,发起MPC计算:生成私钥SK,并通过secret sharing算法生成SK1~SKn,使用SK对SK1~SKn进行签名,生成签名S1~Sn。将签名分别下发给不同的密钥服务器,例如:下发SK1、S1至密钥服务器1;下发SK2、S2至密钥服务器2;以此类推,下发SKn、Sn至密钥服务器n。因为整个过程是完整的MPC计算,因此,私钥SK实际上并没有真正生成过(不管是计算过程中,还是使用过程中)。
S3:各个密钥服务器通过之前存储的公钥PK验证自身收到的签名分量签名有效性,如果有效,则更新并保存密钥分量。
实例3:
在本例中,提供了一种基于安全多方计算通过客户端生成密钥,多个服务端一个客户端保管的密钥管理方法,即,单个客户端生成私钥并拆分成多个分量分别下发至多个服务端,通过MPC,使用客户端和多个服务端计算签名,通过备份私钥,刷新客户端与多个服务端分量的过程,通过MPC,刷新客户端与多个服务端分量。
对这种情境下的密钥生成、使用、存储、备份、恢复、刷新等操作说明如下:
1)生成:
如图12所示,可以包括如下步骤:
S1:客户端与密钥服务器通过KYC完成双向认证,并下发认证材料完成注册流程;
S2:客户端生成完整私钥SK,并基于私钥SK生成相关公钥PK,通过secret sharing将私钥SK拆分成n+1份:SK1~SKn+1,并将密钥分量SKn+1保存至客户端;
S3:客户端与服务端通过下发的认证材料鉴权并建立安全信道,客户端分别向密钥服务器1~n下发对应分量,例如:下发SK1、PK至密钥服务器1;下发SK2、PK至密钥服务器2;以此类推,下发SKn、PK至密钥服务器n;
S4:密钥服务器1~n分别保存自己的密钥分量,完成密钥生成流程,其中,客户端与密钥服务器分别保存一部分密钥分量。
2)使用:
如图13所示,可以包括如下步骤:
S1:客户端发起签名请求,并提供公钥PK作为唯一标识以及待签名数据;
S2:客户端与密钥服务器通过KYC完成双向认证并建立安全信道;
S3:客户端与密钥服务器之间通过安全信道发起MPC计算:对待签名数据进行签名操作,并通过PK公钥验证签名正确性。
3)存储:
将密钥或密钥分量通过各种形式保存下来,具体的,可以采用但不限于以下形式之一进行存储:
数据库:通过数据库保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
密钥文件:通过导出密钥文件形式保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
HSM:通过硬件安全模块保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
助记词:将密钥活密钥分量通过转换生成一系列助记词进行保存;
二维码:通过密钥或密钥分量生成对应二维码进行保存,其中密钥或密钥分量可以加密保存。
4)备份:
在客户端生成私钥SK生成过程中,直接对私钥SK进行备份保存。
5)恢复:
如图14所示,可以包括如下步骤:
S1:客户端通过备份方式获取备份密钥,使用备份密钥SK通过secret sharing拆分成n+1份密钥分量,并保存第n+1份。使用私钥SK对前n份密钥分量分别进行签名,得到签名S1~Sn;
S2:客户端与密钥服务器通过KYC完成双向认证并建立安全信道,客户端分别向密钥服务器1~n下发对应分量,例如:下发SK1、S1至密钥服务器1;下发SK2、S2至密钥服务器2;以此类推,下发SKn、Sn至密钥服务器n;
S3:密钥服务器分别通过之前存储的公钥PK验证自身收到的签名分量的有效性,如果验证通过,则更新密钥分量并保存。
6)刷新:
如图15所示,可以包括如下步骤:
S1:客户端或密钥服务器发起刷新密钥请求,通过KYC完成双向认证并建立安全信道;
S2:客户端与密钥服务器通过安全信道发起MPC计算:生成私钥SK,并通过secretsharing算法生成SK1~SKn+1,使用SK对SK1~SKn+1进行签名,生成签名S1~Sn+1。将签名分别下发给不同的密钥服务器,例如:下发SK1、S1至密钥服务器1;下发SK2、S2至密钥服务器2;以此类推,下发SKn、Sn至密钥服务器n;SKn+1、Sn+1至客户端。因为整个过程是完整的MPC计算,因此,私钥SK实际上并没有真正生成过(不管是计算过程中,还是使用过程中)。
S3:各个密钥服务器、客户端通过之前存储的公钥PK验证自身收到的签名分量的有效性,如果有效,则更新并保存密钥分量。
本申请上述实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图16是本发明实施例的一种单一客户端生成私钥的密钥管理方法的计算机终端的硬件结构框图。如图16所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图16所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图16中所示更多或者更少的组件,或者具有与图16所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的单一客户端生成私钥的密钥管理方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的单一客户端生成私钥的密钥管理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在软件层面,上述装置位于客户端中,可以包括:
生成模块,用于生成完整的目标私钥并根据所述目标私钥生成目标公钥;
拆分模块,用于将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
建立模块,用于与所述N个密钥服务器建立安全信道;
下发模块,用于通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
本申请的实施例还提供能够实现上述实施例中的单一客户端生成私钥的密钥管理方法中全部步骤的一种电子设备的具体实施方式,所述电子设备具体包括如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的的单一客户端生成私钥的密钥管理方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1:客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
步骤2:客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
步骤3:客户端与所述N个密钥服务器建立安全信道;
步骤4:客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
从上述描述可知,本申请实施例提供的单一客户端生成私钥的密钥管理方法,由密钥系统中唯一的客户端生成完整的目标私钥和目标公钥,并将目标私钥拆分为多个子私钥,基于建立的安全信道分发给密钥系统的各个服务器,因每个服务器获取和存储的是私钥的一部分,因此在后续的使用和更新过程中,完成的私钥是不会被生成的,保证了私钥的安全性。通过上述方式解决现有的密钥系统由密钥服务器生成密钥所存在的灵活性和安全性不高的问题,达到了有效提升密钥生成的灵活性和密钥安全性的技术效果。
本申请的实施例还提供能够实现上述实施例中的单一客户端生成私钥的密钥管理方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的单一客户端生成私钥的密钥管理方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1:客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
步骤2:客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
步骤3:客户端与所述N个密钥服务器建立安全信道;
步骤4:客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
从上述描述可知,本申请实施例提供的单一客户端生成私钥的密钥管理方法,由密钥系统中唯一的客户端生成完整的目标私钥和目标公钥,并将目标私钥拆分为多个子私钥,基于建立的安全信道分发给密钥系统的各个服务器,因每个服务器获取和存储的是私钥的一部分,因此在后续的使用和更新过程中,完成的私钥是不会被生成的,保证了私钥的安全性。通过上述方式解决现有的密钥系统由密钥服务器生成密钥所存在的灵活性和安全性不高的问题,达到了有效提升密钥生成的灵活性和密钥安全性的技术效果。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
Claims (11)
1.一种单一客户端生成私钥的密钥管理方法,应用于密钥系统中,该密钥系统包括:一个客户端和N个密钥服务器,其中,N为大于等于2的整数,其特征在于,所述方法包括:
所述客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
所述客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
所述客户端与所述N个密钥服务器建立安全信道;
所述客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器;
其中,在所述客户端生成完整的目标私钥之后,还包括:所述客户端对所述目标私钥进行备份存储;所述客户端获取备份的私钥作为目标密钥;将所述目标密钥拆分为M个密钥分量;通过所述目标私钥对所述M个密钥分量中的前N个密钥分量进行签名,得到N个签名文件;将所述M个密钥分量中的前N个子密钥分量和所述N个签名文件,一一对应地下发给所述N个密钥服务器中的各个密钥服务器;所述N个密钥服务器中的各个密钥服务器根据所述目标公钥验证签名文件的有效性;在验证通过后,所述N个密钥服务器中的各个密钥服务器更新密钥分量并保存。
2.根据权利要求1所述的方法,其特征在于,所述客户端将所述目标私钥拆分为M个子私钥之后,还包括:
所述客户端根据所述M个子私钥,生成M个子私钥中各个子私钥对应的子公钥,得到M个子公钥,其中,M等于N;
相应的,所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器,包括:
所述客户端通过所述安全信道,将所述M个子私钥、所述N个子私钥对应的子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
3.根据权利要求2所述的方法,其特征在于,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
所述N个密钥服务器之间建立安全通道;
所述N个密钥服务器通过所述安全信道,发起MPC计算,对所述待签名数据进行签名,并通过所述目标公钥验证签名的正确性。
4.根据权利要求2所述的方法,其特征在于,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起密钥刷新请求;
所述N个密钥服务器通过所述安全信道,发起MPC计算得到更新私钥,并将所述更新私钥拆分为N个子更新密钥,通过所述更新私钥对所述N个子更新密钥进行签名,得到N个签名私钥,将所述N个签名私钥和N个子更新密钥一一对应地下发给所述N个密钥服务器中的各个密钥服务器;
所述N个密钥服务器通过所述目标公钥验证接收到的签名私钥是否有效,在确定有效的情况下,更新并存储接收到的子更新密钥。
5.根据权利要求1所述的方法,其特征在于,M等于N+1,所述M个子私钥中除N个子私钥之外的一个子私钥为所述客户端对应的子私钥。
6.根据权利要求5所述的方法,其特征在于,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
所述N个密钥服务器和所述客户端之间建立安全通道;
所述N个密钥服务器和所述客户端通过所述安全信道,发起MPC计算,对所述待签名数据进行签名,并通过所述目标公钥验证签名的正确性。
7.根据权利要求5所述的方法,其特征在于,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起密钥刷新请求;
所述N个密钥服务器和所述客户端之间建立安全通道;
所述N个密钥服务器和所述客户端通过所述安全信道,发起MPC计算得到基于所述目标私钥拆分的M个子更新私钥,对所述M个子更新私钥进行签名,得到M个签名私钥,将所述M个签名私钥和M个子更新私钥一一对应地下发给所述N个密钥服务器中的各个密钥服务器和所述客户端;
所述N个密钥服务器和所述客户端通过所述目标公钥验证接收到的签名私钥是否有效,在确定有效的情况下,更新并存储接收到的子更新私钥。
8.根据权利要求1所述的方法,其特征在于,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
从所述N个密钥服务器中选择两个密钥服务器作为MPC计算方;
所述N个密钥服务器中除MPC计算方之外的各个密钥服务器将自身对应的子私钥拆分为第一子私钥和第二子私钥,并通过密钥服务器之间建立的安全信道将第一私钥传送至MPC计算方中的第一密钥服务器,将第二子私钥传送至MPC计算方中的第二密钥服务器;
所述第一密钥服务器和所述第二密钥服务器通过密钥服务器之间建立的安全信道发起MPC计算,对所述待签名数据进行签名;
将签名后的数据发送至所述客户端和所述N个密钥服务器中除MPC计算方之外的各个密钥服务器。
9.根据权利要求1所述的方法,其特征在于,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起密钥刷新请求;
从所述N个密钥服务器中选择两个密钥服务器作为MPC计算方;
所述N个密钥服务器中除MPC计算方之外的各个密钥服务器将自身对应的子私钥拆分为第一子私钥和第二子私钥,并通过密钥服务器之间建立的安全信道将第一私钥传送至MPC计算方中的第一密钥服务器,将第二子私钥传送至MPC计算方中的第二密钥服务器;
所述第一密钥服务器和所述第二密钥服务器通过密钥服务器之间建立的安全信道发起MPC计算得到基于所述目标私钥拆分的N个子更新密钥,并对N个子更新密钥进行签名,得到N个签名私钥;
所述第一密钥服务器和所述第二密钥服务器将N个子更新密钥及N个签名私钥,一一对应地下发给所述N个密钥服务器中除MPC计算方之外的各个密钥服务器;
所述N个密钥服务器中除MPC计算方之外的各个密钥服务器验证接收到的签名私钥是否正确,在确定正确的情况下,更新并存储接收到的子更新私钥。
10.一种电子设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至9中任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910152743.3A CN109981591B (zh) | 2019-02-28 | 2019-02-28 | 单一客户端生成私钥的密钥管理方法、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910152743.3A CN109981591B (zh) | 2019-02-28 | 2019-02-28 | 单一客户端生成私钥的密钥管理方法、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109981591A CN109981591A (zh) | 2019-07-05 |
CN109981591B true CN109981591B (zh) | 2021-09-21 |
Family
ID=67077538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910152743.3A Active CN109981591B (zh) | 2019-02-28 | 2019-02-28 | 单一客户端生成私钥的密钥管理方法、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109981591B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110830242A (zh) * | 2019-10-16 | 2020-02-21 | 聚好看科技股份有限公司 | 一种密钥生成、管理方法和服务器 |
CN113190833B (zh) * | 2021-06-01 | 2022-11-18 | 浙江大华技术股份有限公司 | 一种权限处理方法、装置、存储介质及电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101621375A (zh) * | 2009-07-28 | 2010-01-06 | 成都市华为赛门铁克科技有限公司 | 密钥管理方法、装置及系统 |
CN107979461A (zh) * | 2017-10-27 | 2018-05-01 | 财付通支付科技有限公司 | 秘钥找回方法、装置、终端、秘钥托管服务器及可读介质 |
CN108200085A (zh) * | 2018-01-31 | 2018-06-22 | 北京深思数盾科技股份有限公司 | 一种数据分发、转发方法及装置 |
CN109039611A (zh) * | 2018-08-31 | 2018-12-18 | 北京海泰方圆科技股份有限公司 | 基于sm9算法的解密密钥分割及解密方法、装置、介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7860246B2 (en) * | 2006-11-01 | 2010-12-28 | International Business Machines Corporation | System and method for protecting data in a secure system |
CN105024813B (zh) * | 2014-04-15 | 2018-06-22 | 中国银联股份有限公司 | 一种服务器、用户设备以及用户设备与服务器的交互方法 |
US10042685B1 (en) * | 2017-03-17 | 2018-08-07 | Accenture Global Solutions Limited | Extensible single point orchestration system for application program interfaces |
-
2019
- 2019-02-28 CN CN201910152743.3A patent/CN109981591B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101621375A (zh) * | 2009-07-28 | 2010-01-06 | 成都市华为赛门铁克科技有限公司 | 密钥管理方法、装置及系统 |
CN107979461A (zh) * | 2017-10-27 | 2018-05-01 | 财付通支付科技有限公司 | 秘钥找回方法、装置、终端、秘钥托管服务器及可读介质 |
CN108200085A (zh) * | 2018-01-31 | 2018-06-22 | 北京深思数盾科技股份有限公司 | 一种数据分发、转发方法及装置 |
CN109039611A (zh) * | 2018-08-31 | 2018-12-18 | 北京海泰方圆科技股份有限公司 | 基于sm9算法的解密密钥分割及解密方法、装置、介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109981591A (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109714165B (zh) | 客户端各自生成密钥分量的密钥管理方法和电子设备 | |
CN108600272B (zh) | 一种区块链数据处理方法、装置、处理设备及系统 | |
CN110278078B (zh) | 一种数据处理方法、装置及系统 | |
US10601801B2 (en) | Identity authentication method and apparatus | |
CN110958118B (zh) | 证书认证管理方法、装置、设备及计算机可读存储介质 | |
EP3114602B1 (en) | Method and apparatus for verifying processed data | |
CN109787762B (zh) | 服务器各自生成密钥分量的密钥管理方法、电子设备 | |
CN109818754B (zh) | 客户端为多个客户端和单一服务器生成密钥的方法、设备 | |
CN113743939A (zh) | 基于区块链的身份认证方法、装置及系统 | |
CN110381075B (zh) | 基于区块链的设备身份认证方法和装置 | |
CN109981576B (zh) | 密钥迁移方法和装置 | |
CN110635912B (zh) | 数据处理方法及装置 | |
CN112464155B (zh) | 一种数据处理方法、多方安全计算系统和电子设备 | |
CN109981591B (zh) | 单一客户端生成私钥的密钥管理方法、电子设备 | |
CN109818753B (zh) | 择一客户端为多客户端多服务器生成密钥的方法和设备 | |
CN111010283B (zh) | 用于生成信息的方法和装置 | |
CN115022012B (zh) | 一种数据传输方法、装置、系统、设备及存储介质 | |
CN109981592B (zh) | 多客户端多服务器联合生成密钥的方法和电子设备 | |
WO2020172885A1 (zh) | 单一客户端生成私钥的密钥管理方法、电子设备 | |
CN115344882A (zh) | 基于可信计算环境的多方计算方法、装置及存储介质 | |
WO2020172882A1 (zh) | 择一客户端为多客户端多服务器生成密钥的方法和设备 | |
WO2020172890A1 (zh) | 客户端为多个客户端和单一服务器生成密钥的方法、设备 | |
WO2020172889A1 (zh) | 客户端各自生成密钥分量的密钥管理方法和电子设备 | |
WO2020172883A1 (zh) | 多客户端多服务器联合生成密钥的方法和电子设备 | |
CN112887097A (zh) | 基于sm2椭圆曲线的签名方法、相关装置、及存储介质 |
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: 40010243 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |