增强型cpk的密钥申请与分发方法及装置

文档序号:1172716 发布日期:2020-09-18 浏览:3次 >En<

阅读说明:本技术 增强型cpk的密钥申请与分发方法及装置 (Key application and distribution method and device for enhanced CPK ) 是由 南相浩 于 2020-06-08 设计创作,主要内容包括:本发明实施例提供一种增强型CPK的密钥申请与分发方法及装置,属于网络安全技术领域,解决了现有技术中利用量子计算,就可以通过公开的公钥攻破公钥体制的问题。所述方法包括:客户端向服务中心发送时刻密钥申请消息;接收服务中心发送的第一响应参数;定义第一随机数和第一随机密钥,根据第一响应参数及第一随机数,得到第一随机参数及第二随机参数;利用第二随机参数对密钥参数加密,发送第一随机参数与加密后的密钥参数,密钥参数包括网络时刻、密钥申请标识及第一随机密钥;接收时刻密钥信息,利用第一随机密钥脱密时刻密钥信息得到时刻密钥,时刻密钥与网络时刻、密钥申请标识相关。本发明实施例适用于用户加密、解密、签名以及验证过程。(The embodiment of the invention provides a method and a device for applying and distributing a secret key of an enhanced CPK (Combined public Key), belongs to the technical field of network security, and solves the problem that a public key system can be broken through a public key by utilizing quantum computation in the prior art. The method comprises the following steps: the client sends a time key application message to the service center; receiving a first response parameter sent by a service center; defining a first random number and a first random key, and obtaining a first random parameter and a second random parameter according to the first response parameter and the first random number; encrypting the key parameter by using a second random parameter, and sending the first random parameter and the encrypted key parameter, wherein the key parameter comprises a network moment, a key application identifier and a first random key; and receiving the time key information, and acquiring a time key by using the first random key decryption time key information, wherein the time key is related to the network time and the key application identifier. The embodiment of the invention is suitable for the encryption, decryption, signature and verification processes of the user.)

增强型CPK的密钥申请与分发方法及装置

技术领域

本发明涉及网络安全技术领域,具体地涉及一种增强型CPK(Combined PublicKey,组合公钥)的密钥申请与分发方法及装置。

背景技术

目前所有公钥体制的工作原理均在于公钥的公开,如果公钥不公开,则无法进行密钥加密和签名的验证。但是随着量子计算的不断发展,在公钥公开的情况下,公钥体制就会通过量子计算在几小时内被攻破,从而获取所公开的公钥对应的私钥。

发明内容

本发明实施例的目的是提供一种增强型CPK的密钥申请与分发方法及装置,解决了现有技术中利用量子计算,就可以通过公开的公钥攻破公钥体制的问题,本发明实施例则采用一次性密钥体制,无论是公钥还是私钥,申请使用一次后即作废,这样即使被量子计算破解密钥后,所破解的密钥已经作废,使得破解毫无意义。

为了实现上述目的,本发明实施例提供一种增强型CPK的密钥申请与分发方法,所述方法应用于客户端,所述方法包括:向服务中心发送时刻密钥申请消息;接收所述服务中心发送的第一响应参数;定义第一随机数和第一随机密钥,并根据所述第一响应参数以及所述第一随机数,得到第一随机参数以及第二随机参数;利用所述第二随机参数对密钥参数加密,并向所述服务中心发送所述第一随机参数与加密后的密钥参数,所述密钥参数包括网络时刻、密钥申请标识以及第一随机密钥;接收所述服务中心发送的时刻密钥信息,并利用所述第一随机密钥脱密所述时刻密钥信息得到时刻密钥,所述时刻密钥与所述网络时刻、所述密钥申请标识相关。

进一步地,在所述向服务中心发送时刻密钥申请消息之前,所述方法还包括所述客户端向所述服务中心注册的过程:向所述服务中心发送注册申请消息;接收所述服务中心发送的第二响应参数;定义第三随机数和第二随机密钥,并根据所述第二响应参数以及所述第三随机数,得到第三随机参数以及第四随机参数;利用所述第四随机参数对所述客户端的客户信息以及所述第二随机密钥加密,得到客户信息密文,并向所述服务中心发送所述第三随机参数与所述客户信息密文,所述客户信息包括客户的真实姓名、身份证号、申请途径信息,所述申请途径信息包括电话号码和邮件地址;接收所述服务中心发送的利用所述第二随机密钥加密的流水号和注册证书,并利用所述第二随机密钥脱密得到所述流水号和注册证书,所述注册证书为所述服务中心对所述密钥申请标识的签名。

进一步地,当所述时刻密钥申请消息为时刻私钥申请消息时,所述密钥申请标识为申请时刻私钥的标识,所述密钥参数中还包括所述客户端的当前流水号和注册证书,并通过所述申请途径信息向所述服务中心发送时刻私钥申请消息,以便于所述服务中心验证所述申请途径信息是否与所述客户端向所述服务中心注册时提供的申请途径信息一致,并当验证所述申请途径信息与所述客户端向所述服务中心注册时提供的申请途径信息一致时,核对所述当前流水号,并验证所述注册证书,所述服务中心为所述客户端注册的服务中心,所述利用所述第一随机密钥脱密所述时刻密钥信息得到时刻密钥包括:利用所述第一随机密钥脱密所述时刻密钥信息得到时刻私钥和更新后的流水号,并将所述客户端的当前流水号替换为所述更新后的流水号。

进一步地,当所述时刻密钥申请消息为时刻签名私钥申请消息时,所述网络时刻为签名时间。

进一步地,当所述时刻密钥申请消息为时刻脱密私钥申请消息时,所述网络时刻为加密方提供的加密时刻。

进一步地,当所述时刻密钥申请消息为时刻验证公钥申请消息时,所述网络时刻为签名方提供的签名时间。

进一步地,当所述时刻密钥申请消息为时刻加密公钥申请消息时,所述网络时刻为加密时刻。

相应地,本发明实施例还提供一种增强型CPK的密钥申请与分发方法,所述方法应用于服务中心,所述方法包括:接收客户端发送的时刻密钥申请消息;作为接收所述时刻密钥申请消息的响应,向所述客户端发送利用定义的第一响应数生成的第一响应参数;接收所述客户端发送的第一随机参数与加密后的密钥参数;根据所述第一响应数与所述第一随机参数,得到所述第二随机参数,并利用所述第二随机参数脱密所述加密后的密钥参数,得到所述密钥参数中的网络时刻、密钥申请标识以及第一随机密钥;利用所述网络时刻与所述密钥申请标识,生成所述密钥申请标识对应的时刻密钥,并发送利用所述第一随机密钥加密的所述时刻密钥至所述客户端。

进一步地,所述方法还包括所述客户端向所述服务中心注册的过程:接收所述客户端发送的注册申请消息;作为接收所述注册申请消息的响应,向所述客户端发送利用定义的第二响应数生成的第二响应参数;接收所述客户端发送的第三随机参数与客户信息密文;根据所述第二响应数与所述第三随机参数,得到所述第四随机参数,并利用所述第四随机参数脱密所述客户信息密文,得到客户信息和第二随机密钥,所述客户信息包括客户的真实姓名、身份证号、申请途径信息,所述申请途径信息包括电话号码和邮件地址;当验证所述客户信息的真实性为真时,定义所述客户端对应的流水号和注册证书,并发送利用所述第二随机密钥加密的流水号和注册证书至所述客户端。

进一步地,当所述时刻密钥申请消息为时刻私钥申请消息时,所述密钥参数中还包括所述客户端的当前流水号和注册证书,所述方法还包括:确定所述客户端申请时刻私钥的申请途径信息;验证所述申请途径信息是否与所述客户端向所述服务中心注册时提供的申请途径信息一致;当验证所述申请途径信息与所述客户端向所述服务中心注册时提供的申请途径信息一致时,核对所述客户端的当前流水号与所述服务中心存储的所述客户端的流水号是否一致,以及验证所述注册证书是否为所述服务中心发放的证书;当所述客户端的当前流水号与所述服务中心存储的所述客户端的流水号一致,且验证所述注册证书为所述服务中心发放的证书时,利用所述网络时刻与所述密钥申请标识,生成所述密钥申请标识对应的时刻私钥;利用所述第一随机密钥对所述时刻私钥与更新后的流水号加密,并发送至所述客户端。

相应地,本发明实施例还提供一种增强型CPK的密钥申请与分发装置,所述装置应用于客户端,所述装置包括:存储模块,用于存储计算机可执行指令;以及控制模块,用于执行所述计算机可执行指令,以执行以下操作:向服务中心发送时刻密钥申请消息;接收所述服务中心发送的第一响应参数;定义第一随机数和第一随机密钥,并根据所述第一响应参数以及所述第一随机数,得到第一随机参数以及第二随机参数;利用所述第二随机参数对密钥参数加密,并向所述服务中心发送所述第一随机参数与加密后的密钥参数,所述密钥参数包括网络时刻、密钥申请标识以及第一随机密钥;接收所述服务中心发送的时刻密钥信息,并利用所述第一随机密钥脱密所述时刻密钥信息得到时刻密钥,所述时刻密钥与所述网络时刻、所述密钥申请标识相关。

进一步地,在所述向服务中心发送时刻密钥申请消息之前,所述控制模块还用于执行所述计算机可执行指令,以执行所述客户端向所述服务中心注册的过程:向所述服务中心发送注册申请消息;接收所述服务中心发送的第二响应参数;定义第三随机数和第二随机密钥,并根据所述第二响应参数以及所述第三随机数,得到第三随机参数以及第四随机参数;利用所述第四随机参数对所述客户端的客户信息以及所述第二随机密钥加密,得到客户信息密文,并向所述服务中心发送所述第三随机参数与所述客户信息密文,所述客户信息包括客户的真实姓名、身份证号、申请途径信息,所述申请途径信息包括电话号码和邮件地址;接收所述服务中心发送的利用所述第二随机密钥加密的流水号和注册证书,并利用所述第二随机密钥脱密得到所述流水号和注册证书,所述注册证书为所述服务中心对所述密钥申请标识的签名。

进一步地,当所述时刻密钥申请消息为时刻私钥申请消息时,所述密钥申请标识为申请时刻私钥的标识,所述密钥参数中还包括所述客户端的当前流水号和注册证书,并通过所述申请途径信息向所述服务中心发送时刻私钥申请消息,以便于所述服务中心验证所述申请途径信息是否与所述客户端向所述服务中心注册时提供的申请途径信息一致,并当验证所述申请途径信息与所述客户端向所述服务中心注册时提供的申请途径信息一致时,核对所述当前流水号,并验证所述注册证书,所述服务中心为所述客户端注册的服务中心,所述利用所述第一随机密钥脱密所述时刻密钥信息得到时刻密钥包括:利用所述第一随机密钥脱密所述时刻密钥信息得到时刻私钥和更新后的流水号,并将所述客户端的当前流水号替换为所述更新后的流水号。

进一步地,当所述时刻密钥申请消息为时刻签名私钥申请消息时,所述网络时刻为签名时间。

进一步地,当所述时刻密钥申请消息为时刻脱密私钥申请消息时,所述网络时刻为加密方提供的加密时刻。

进一步地,当所述时刻密钥申请消息为时刻验证公钥申请消息时,所述网络时刻为签名方提供的签名时间。

进一步地,当所述时刻密钥申请消息为时刻加密公钥申请消息时,所述网络时刻为加密时刻。

相应地,本发明实施例还提供一种增强型CPK的密钥申请与分发装置,所述装置应用于服务中心,所述装置包括:存储模块,用于存储计算机可执行指令;以及控制模块,用于执行所述计算机可执行指令,以执行以下操作:接收客户端发送的时刻密钥申请消息;作为接收所述时刻密钥申请消息的响应,向所述客户端发送利用定义的第一响应数生成的第一响应参数;接收所述客户端发送的第一随机参数与加密后的密钥参数;根据所述第一响应数与所述第一随机参数,得到所述第二随机参数,并利用所述第二随机参数脱密所述加密后的密钥参数,得到所述密钥参数中的网络时刻、密钥申请标识以及第一随机密钥;利用所述网络时刻与所述密钥申请标识,生成所述密钥申请标识对应的时刻密钥,并发送利用所述第一随机密钥加密的所述时刻密钥至所述客户端。

进一步地,所述控制模块还执行所述计算机可执行指令以执行所述客户端向所述服务中心注册的过程:接收所述客户端发送的注册申请消息;作为接收所述注册申请消息的响应,向所述客户端发送利用定义的第二响应数生成的第二响应参数;接收所述客户端发送的第三随机参数与客户信息密文;根据所述第二响应数与所述第三随机参数,得到所述第四随机参数,并利用所述第四随机参数脱密所述客户信息密文,得到客户信息和第二随机密钥,所述客户信息包括客户的真实姓名、身份证号、申请途径信息,所述申请途径信息包括电话号码和邮件地址;当验证所述客户信息的真实性为真时,定义所述客户端对应的流水号和注册证书,并发送利用所述第二随机密钥加密的流水号和注册证书至所述客户端。

进一步地,当所述时刻密钥申请消息为时刻私钥申请消息时,所述密钥参数中还包括所述客户端的当前流水号和注册证书,所述控制模块还执行所述计算机可执行指令以执行以下操作:确定所述客户端申请时刻私钥的申请途径信息;验证所述申请途径信息是否与所述客户端向所述服务中心注册时提供的申请途径信息一致;当验证所述申请途径信息与所述客户端向所述服务中心注册时提供的申请途径信息一致时,核对所述客户端的当前流水号与所述服务中心存储的所述客户端的流水号是否一致,以及验证所述注册证书是否为所述服务中心发放的证书;当所述客户端的当前流水号与所述服务中心存储的所述客户端的流水号一致,且验证所述注册证书为所述服务中心发放的证书时,利用所述网络时刻与所述密钥申请标识,生成所述密钥申请标识对应的时刻私钥;利用所述第一随机密钥对所述时刻私钥与更新后的流水号加密,并发送至所述客户端。

通过上述技术方案,当用户需要使用密钥时,向服务中心申请密钥,并在使用所申请的密钥后,密钥作废。本发明实施例解决了现有技术中利用量子计算,就可以通过公开的公钥攻破公钥体制的问题,本发明实施例则采用一次性密钥体制,无论是公钥还是私钥,申请使用一次后即作废,这样即使被量子计算破解密钥后,所破解的密钥已经作废,使得破解毫无意义。

本发明实施例的其它特征和优点将在随后的

具体实施方式

部分予以详细说明。

附图说明

附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:

图1是本发明实施例提供的风网密钥管理系统的结构示意图;

图2是本发明实施例提供的一种增强型CPK的密钥申请与分发方法的流程示意图;

图3是本发明实施例提供的客户端向服务中心注册的过程的流程示意图;

图4是本发明实施例提供的另一种增强型CPK的密钥申请与分发方法的流程示意图;

图5是本发明实施例提供的服务中心处理客户端注册过程的流程示意图;

图6是本发明实施例提供的加密公钥和脱密私钥的申请过程的流程示意图;

图7是本发明实施例提供的签名私钥和验证公钥的申请过程的流程示意图。

具体实施方式

以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。

在本发明实施例中的增强型CPK的密钥申请与分发方法是在风网密钥管理系统上进行的,风网密钥管理系统是CPK密钥管理的专用网,简称风网。风网是基于标识鉴别基础上构建的虚拟网络,在任何标识之间形成虚拟链接,且提供标识的真实性证明。其中,如图1所示,风网密钥管理系统包括客户端、服务中心、管理中心以及密钥公正机构。管理中心负责系统密钥的定义和更新,服务中心负责管理各客户端的密钥申请与分发,客户端选择一个服务中心注册,成为该服务中心的客户,且该客户端仅能向其注册的服务中心申请私钥。密钥公正机构用于处理密钥纠纷,例如,当有用户复制其他用户的密钥作案且复制成功时,那么作案用户变合法用户,而合法用户变成非法用户,这时合法用户就可向密钥公证机构反映,恢复合法用户的合法性,并将作案用户变为非法用户。

本发明实施例中的密钥均为一次性密钥,即用一次就作废,因此每一次使用密钥时均需要申请密钥,下面实施例将详细描述密钥申请和分发的过程。

图2是本发明实施例提供的一种增强型CPK的密钥申请与分发方法的流程示意图。如图2所示,所述方法应用于客户端,所述方法包括如下步骤:

步骤201,向服务中心发送时刻密钥申请消息。

其中,所述时刻密钥申请消息可包括时刻私钥申请消息和时刻公钥申请消息。其中,所述时刻私钥申请消息包括时刻签名私钥申请消息和时刻脱密私钥申请消息。所述时刻公钥申请消息包括时刻验证公钥申请消息和时刻加密公钥申请消息。其中,所述时刻密钥申请消息仅是简单的申请消息,消息中无特殊信息。

步骤202,接收所述服务中心发送的第一响应参数;

步骤203,定义第一随机数和第一随机密钥,并根据所述第一响应参数以及所述第一随机数,得到第一随机参数以及第二随机参数。

其中,客户端定义第一随机数r2以及第一随机密钥ran1,并利用所述第一随机数r2和椭圆曲线的生成元G,得到第一随机参数R2,例如r2*G=R2。

另外,根据所述第一响应参数R1与所述第一随机数r2,得到第二随机参数R3,例如r2*R1=R3。

步骤204,利用所述第二随机参数对密钥参数加密,并向所述服务中心发送所述第一随机参数与加密后的密钥参数,所述密钥参数包括网络时刻、密钥申请标识以及第一随机密钥。

其中,密钥参数data1={网络时刻,密钥申请标识,第一随机密钥},所述密钥申请标识为时刻密钥所对应的标识。然后,利用所述第二随机参数R3对所述密钥参数data1进行对称加密,得到加密后的密钥参数code1,例如ER3(data1)=code1,并将所述第一随机参数与加密后的密钥参数发送给所述服务中心,例如将msg1={R2,code1}发送给所述服务中心。其中,函数E为对称加密函数。

步骤205,接收所述服务中心发送的时刻密钥信息,并利用所述第一随机密钥脱密所述时刻密钥信息得到时刻密钥,所述时刻密钥与所述网络时刻、所述密钥申请标识相关。

其中,由于所述服务中心发送的时刻密钥信息为利用所述第一随机密钥进行加密的,因此所述客户端在接收到所述时刻密钥信息code2之后,利用所述第一随机密钥进行脱密,得到时刻密钥,例如Dran1(code2)=data2,其中,data2中包括时刻密钥,D为对称脱密函数。所述时刻密钥与所述网络时刻、所述密钥申请标识相关,例如所述服务中心根据所述网络时刻和实时密钥申请标识生成的时刻密钥。

另外,对于客户端对应的时刻私钥,只有该客户端注册的服务中心才有资格生成,即时刻私钥的申请,该客户端只能向其注册的服务中心申请,因此,在客户端向服务中心申请时刻私钥之前,该客户端需向服务中心注册。

因此,下面将描述客户端向服务中心注册的过程,如图3所示,在所述客户端向服务中心发送时刻密钥申请消息之前,所述方法还包括如下步骤:

步骤301,向所述服务中心发送注册申请消息;

步骤302,接收所述服务中心发送的第二响应参数;

步骤303,定义第三随机数和第二随机密钥,并根据所述第二响应参数以及所述第三随机数,得到第三随机参数以及第四随机参数。

其中,客户端定义第三随机数r5以及第二随机密钥ran2,并利用所述第三随机数r5和椭圆曲线的生成元G,得到第三随机参数R5,例如r5*G=R5。

另外,根据所述第二响应参数R4与所述第三随机数r5,得到第四随机参数R6,例如r5*R4=R6。

步骤304,利用所述第四随机参数对所述客户端的客户信息以及所述第二随机密钥加密,得到客户信息密文,并向所述服务中心发送所述第三随机参数与所述客户信息密文,所述客户信息包括客户的真实姓名、身份证号、申请途径信息,所述申请途径信息包括电话号码和邮件地址。

其中,客户信息data3={真实姓名、身份证号、电话号码、邮件地址}。然后,利用所述第四随机参数对所述客户信息data3和所述第二随机密钥ran2进行对称加密,得到加密后的客户信息密文code3,例如ER6(data3,ran2)=code3,并将所述第三随机参数与所述客户信息密文发送至所述服务中心,即将msg2={R5,code3}发送给所述服务中心。其中,函数E为对称加密函数。

步骤305,接收所述服务中心发送的利用所述第二随机密钥加密的流水号和注册证书,并利用所述第二随机密钥脱密得到所述流水号和注册证书,所述注册证书为所述服务中心对所述密钥申请标识的签名。

例如,加密的流水号和注册证书为code4,则利用所述第二随机密钥进行脱密,得到流水号和注册证书,例如Dran2(code4)=data4,其中,data4中包括流水号与注册证书,服务中心发送至所述客户端的所述流水号,与服务中心的流水号是同步的,且保密,防止第三方复制作案。所述客户端在获得流水号后,保存该流水号,以便服务中心进行核对。所述注册证书为所述服务中心利用其私钥进行的CPK签名,以便于服务中心检查该注册证书是否为其发放的证书,如果是,表明该客户端是属于所述服务中心管辖的客户端。

在所述客户端向所述服务中心注册之后,所述客户端向所述服务中心申请时刻私钥的时候,就要通过注册时提供的申请途径信息进行申请,例如,当所述时刻密钥申请消息为时刻私钥申请消息时,所述密钥申请标识为申请时刻私钥的标识,所述密钥参数中还包括所述客户端的当前流水号和注册证书,并通过所述申请途径信息向所述服务中心发送时刻私钥申请消息,以便于所述服务中心验证所述申请途径信息是否与所述客户端向所述服务中心注册时提供的申请途径信息一致,并当验证所述申请途径信息与所述客户端向所述服务中心注册时提供的申请途径信息一致时,核对所述当前流水号,并验证所述注册证书,所述服务中心为所述客户端注册的服务中心,在步骤205中,可利用所述第一随机密钥脱密所述时刻密钥信息得到时刻私钥和更新后的流水号,并将所述客户端的当前流水号替换为所述更新后的流水号,保证所述客户端中更新后的流水号与所述服务中心保持同步。另外,当所述时刻密钥申请消息为时刻签名私钥申请消息时,所述网络时刻为签名时间。另外,当所述时刻密钥申请消息为时刻脱密私钥申请消息时,所述网络时刻为加密方提供的加密时刻。

其中,当客户申请电话号码的时刻私钥时,服务中心需要首先检查在申请途径信息的电话号码与注册时的电话号码是否一致,一致时,则再检查流水号与注册证书。类似的,当客户申请邮件地址的时刻私钥时也一样,服务中心首先检查申请途径信息的邮件地址与注册时的邮件地址是否一致,一致时,则再检查流水号与注册证书。而当客户要申请真实姓名的时刻私钥时,则存在两种情况,一种是通过电话号码申请,另一种就是通过邮件地址申请,无论是哪一种申请方式,都需要服务中心验证申请途径信息(电话号码或邮件地址)是否与注册时的申请途径信息(电话号码或邮件地址)一致,一致时,再检查流水号与注册证书。

另外,当所述时刻密钥申请消息为时刻验证公钥申请消息时,所述网络时刻为签名方提供的签名时间。当所述时刻密钥申请消息为时刻加密公钥申请消息时,所述网络时刻为加密时刻。

对应的,图4是本发明实施例提供的一种增强型CPK的密钥申请与分发方法的流程示意图。如图4所示,所述方法应用于服务中心,所述方法包括如下步骤:

步骤401,接收客户端发送的时刻密钥申请消息;

步骤402,作为接收所述时刻密钥申请消息的响应,向所述客户端发送利用定义的第一响应数生成的第一响应参数。

其中,所述第一响应数为服务中心随机定义的,例如所述第一响应数为r1,第一响应参数为R1,由椭圆曲线的生成元G与第一响应数r1,得到R1,即r1*G=R1。

步骤403,接收所述客户端发送的第一随机参数与加密后的密钥参数;

步骤404,根据所述第一响应数与所述第一随机参数,得到所述第二随机参数,并利用所述第二随机参数脱密所述加密后的密钥参数,得到所述密钥参数中的网络时刻、密钥申请标识以及第一随机密钥。

例如,所述客户端发送的第一随机参数与加密后的密钥参数为msg1={R2,code1}。由所述第一响应数r1与所述第一随机参数R2,得到所述第二随机参数R3,即r1*R2=R3。然后,利用所述第二随机参数脱密所述加密后的密钥参数data1,例如,DR3(code1)=data1。其中,D为对称脱密函数。

步骤405,利用所述网络时刻与所述密钥申请标识,生成所述密钥申请标识对应的时刻密钥,并发送利用所述第一随机密钥加密的所述时刻密钥至所述客户端。

其中,服务中心取出网络时刻,并生成与所述密钥申请标识对应的时刻密钥。然后,利用所述第一随机密钥加密所述时刻密钥,并发送至所述客户端。

另外,在客户端向服务中心进行注册时,其注册过程如图5所示,包括如下步骤:

步骤501,接收所述客户端发送的注册申请消息;

步骤502,作为接收所述注册申请消息的响应,向所述客户端发送利用定义的第二响应数生成的第二响应参数。

其中,所述第二响应数为服务中心随机定义的,例如所述第二响应数为r4,第二响应参数为R4,由椭圆曲线的生成元G与第二响应数r4,得到R4,即r4*G=R4。

步骤503,接收所述客户端发送的第三随机参数与客户信息密文;

步骤504,根据所述第二响应数与所述第三随机参数,得到所述第四随机参数,并利用所述第四随机参数脱密所述客户信息密文,得到客户信息和第二随机密钥,所述客户信息包括客户的真实姓名、身份证号、申请途径信息,所述申请途径信息包括电话号码和邮件地址。

例如,根据所述第二响应数r4与所述第三随机参数R5,得到所述第四随机参数R6,例如r5*R4=R6。

然后,利用所述第四随机参数R6脱密所述客户信息密文code3,得到客户信息data3和第二随机密钥ran2,例如,DR6(code3)=(data3,ran2)。其中,D为对称脱密函数。

步骤505,当验证所述客户信息的真实性为真时,定义所述客户端对应的流水号和注册证书,并发送利用所述第二随机密钥加密的流水号和注册证书至所述客户端。

其中,客户信息data3={真实姓名、身份证号、电话号码、邮件地址}。所述服务中心验证客户信息的真实性,包括验证客户的真实姓名是否与身份证号相对应,二者对应时,则表示所述客户信息的真实性为真。

当验证所述客户信息为真时,可登记所述客户信息,以备后续使用。所述服务中心可随机定义流水号,并利用服务中心的签名私钥对所述客户信息中的真实姓名进行CPK签名,从而得到注册证书。然后,利用所述第二随机密钥对所述流水号和注册证书进行加密,例如,data4={流水号,注册证书},由Eran2(data4)=code4。

另外,当所述时刻密钥申请消息为时刻私钥申请消息时,所述密钥参数中还包括所述客户端的当前流水号和注册证书,所述服务中心首先确定所述客户端申请时刻私钥的申请途径信息,其中所述申请途径信息包括电话号码和邮件地址,确定用户申请时刻私钥所使用的是电话号码还是邮件地址,然后验证所述申请途径信息是否与所述客户端向所述服务中心注册时提供的申请途径信息一致,例如,用户申请时刻私钥使用电话号码申请时,则验证所使用的电话号码与注册时提供的电话号码是否一致,或者用户申请时刻私钥使用邮件地址时,则验证所使用的邮件地址与注册时提供的邮件地址是否一致。当验证所述申请途径信息与所述客户端向所述服务中心注册时提供的申请途径信息一致时,即当验证所使用的电话号码与注册时提供的电话号码一致,或所使用的邮件地址与注册时提供的邮件地址一致时,核对所述客户端的当前流水号与所述服务中心存储的所述客户端的流水号是否一致,以及验证所述注册证书是否为所述服务中心发放的证书。对于所述注册证书的验证,就是验证所述注册证书的签名是否为所述服务中心进行的签名,若是则表明所述注册证书为所述服务中心发放的证书。当所述客户端的当前流水号与所述服务中心存储的所述客户端的流水号一致,且验证所述注册证书为所述服务中心发放的证书时,则取出所述密钥参数中的网络时刻,从而利用所述网络时刻与所述密钥申请标识,生成所述密钥申请标识对应的时刻私钥,并将所述客户端的流水号进行更新,得到更新后的流水号。然后,在步骤405中,利用所述第一随机密钥对所述时刻私钥与更新后的流水号加密,并发送至所述客户端。例如,利用所述第一随机密钥ran1对data5={更新后的流水号,时刻私钥}进行加密,Eran1(data5)=code5,并将code5发送至所述客户端。

其中,所述密钥申请标识可以是用户的真实姓名,也可以是用户的电话号码或邮件地址,在本发明实施例中不做限定。

另外,为了便于理解本发明实施例,下面以客户端A、客户端B、服务中心1和服务中心2为例,其中客户端A为服务中心1的注册用户,客户端B为服务中心2的注册用户。其中,在申请脱密私钥,以及签名私钥之前,客户端A和客户端B均需要分别向服务中心1和服务中心2进行注册。而对于公钥的申请,则不受服务中心的限制,向哪一个服务中心申请时刻公钥都可以。

下面以客户端A与服务中心1之间的注册过程为例进行说明。

首先,客户端A向服务中心1发送注册申请消息,服务中心1作为接收所述注册申请消息的响应,向客户端A发送利用定义的响应数rA生成的响应参数RA。其中,rA*G=RA,G为椭圆曲线的生成元。

然后,客户端A定义随机数m1和随机密钥ran1,并根据随机数m1和椭圆曲线的生成元G,得到随机参数M1,例如m1*G=M1。根据响应参数RA与随机数m1,得到随机参数M2,例如m1*RA=M2。利用随机参数M2对所述客户端A的客户信息info以及随机密钥ran1加密,得到客户信息密文cip,例如EM2(info,ran1)=cip,并向所述服务中心发送随机参数M1与所述客户信息密文cip。

之后,服务中心1接收客户端A发送的随机参数M1与所述客户信息密文cip。根据响应数rA与随机参数M1,得到随机参数M2,例如rA*M1=M2。然后,利用随机参数M2脱密所述客户信息密文cip,得到客户信息info以及随机密钥ran1,例如,DM2(cip)=(info,ran1)。客户信息info={真实姓名、身份证号、电话号码、邮件地址}。所述服务中心1检查客户信息中的真实姓名是否与身份证号相对应,二者对应时,则表示所述客户信息的真实性为真。当验证所述客户信息为真时,服务中心1可登记所述客户信息,以备后续使用。所述服务中心1可随机定义流水号,并利用服务中心1的签名私钥对所述客户信息中的真实姓名进行CPK签名,从而得到注册证书。然后,利用随机密钥ran1对所述流水号和注册证书进行加密,例如,data={流水号,注册证书},由Eran1(data)=code。

之后,客户端A接收服务中心1发送的加密的流水号和注册证书,并利用随机密钥ran1脱密得到流水号和注册证书,例如,Dran1(code)=data。所述客户端A保存流水号与注册证书。

客户端B向服务中心2的注册过程,可参见上述客户端A向服务中心1的注册过程,此处不再赘述。下面首先说明加密公钥和脱密私钥的申请,其中,客户端A的用户Alice向客户端B的用户Bob发送加密数据,如图6所示,包括如下步骤:

步骤601,客户端A的用户Alice向其注册服务中心1发送时刻加密公钥申请消息;

步骤602,服务中心1定义第一随机数m1,计算m1*G=M1,并向Alice发送M1作为响应;

步骤603,Alice定义第二随机数m2,计算第二随机参数m2*G=M2、第三随机参数m2*M1=M3,定义随机密钥ran1。然后利用第三随机参数对加密时刻time、时刻加密公钥对应的标识Bob以及随机密钥ran1进行加密,即对数据data1={time,Bob,ran1}加密:EM3(data1)=code1,发送msg1={M2,code1}至服务中心1。

步骤604,服务中心1接收msg1={M2,code1},并计算第三随机参数M2*m1=M3,对数据code1脱密:DM3(code1)=data1。服务中心1从data1中取出加密时刻time以及标识Bob,生成Bob的时刻加密公钥TIME-BOB,并用随机密钥ran1对时刻加密公钥加密:Eran1(TIME-BOB)=code2,并向Alice发送code2。

步骤605,Alice接收到code2之后,利用随机密钥脱密:Dran1(code2)=TIME-BOB。

然后,Alice定义随机数k,计算k*G=(x,y),(x+y)2mod 264=key,Ekey(data3)=code3,从而得到加密数据code3,并利用时刻加密公钥对密钥key加密:key*TIME-BOB=β,并向用户Bob发送msg2={code3,time,β}。

步骤606,Bob接收Alice发送的msg2={code3,time,β},Bob需要向服务中心2申请时刻脱密私钥,即向服务中心2发送时刻脱密私钥申请消息。其中,Bob可通过其电话号码向服务中心2发送时刻脱密私钥申请消息。

步骤607,服务中心2接收到时刻脱密私钥申请消息后,定义随机数m4,并计算m4*G=M4,向Bob发送M4作为响应。

步骤608,Bob接收M4,定义随机数m5以及随机密钥ran2,计算m5*G=M5,m5*M4=M6,并从Alice发送的msg2中提取出加密时刻time,将数据data4={time,Bob,当前流水号,注册证书,ran2}利用M6加密:EM6(data4)=code4,并发送msg3={M5,code4}至服务中心2。同样,也是通过其电话号码将msg3发送至服务中心2。

步骤609,服务中心2首先验证用户Bob的身份,然后计算M5*m4=M6,对数据code4脱密:DM6(code4)=data4,得到了加密时刻time、标识Bob、用户Bob的当前流水号、其注册证书以及随机密钥ran2。

服务中心2首先确定用户Bob发送消息的途径,即获取其发送消息的电话号码,然后验证该电话号码是否与用户Bob向服务中心2注册时提供的电话号码一致,当验证发送消息的电话号码与其注册时提供的电话号码一致时,核对当前流水号与所述服务中心2存储的用户Bob的流水号是否一致,以及验证Bob的注册证书是否为所述服务中心2发放的证书,当流水号一致,且证书为服务中心2发放的证书时,提取出加密时刻time,并生成Bob的时刻脱密私钥time-bob,并更新Bob的流水号,并将更新后的流水号与时刻脱密私钥一同加密发送给用户Bob,即data5={更新后的流水号,time-bob},Eran2(data5)=code5,将code5发送给用户Bob。

步骤610,Bob接收到code5后,利用ran2脱密:Dran2(code5)=data5,得到更新后的流水号以及时刻脱密私钥,Bob利用更新后的流水号替换当前流水号,保证与服务中心2流水号同步,并利用时刻脱密私钥脱密:timed-bob-1*β=key,Dkey(code3)=data3,从而得到了Alice向Bob发送的数据。

下面将描述签名私钥和验证公钥的申请,客户端A的用户Alice向客户端B的用户Bob发送签名数据,包括如下步骤:

步骤701,客户端A的用户Alice向其注册服务中心1发送时刻签名私钥申请消息。其中,用户Alice可通过邮件地址向服务中心1发送时刻签名私钥申请消息。

步骤702,服务中心1定义随机数p1,计算p1*G=P1,并向Alice发送P1作为响应;

步骤703,Alice定义随机数p2,计算p2*G=P2,以及p2*P1=P3,定义随机密钥ran3。然后利用P3对签名时刻time、标识Alice、当前流水号、注册证书以及随机密钥ran3进行加密,即对数据data1={time,Alice,当前流水号,注册证书,ran3}加密,EP3(data1)=code1,然后发送msg1={P2,code1}至服务中心1。同样,用户Alice也是通过其邮件地址将msg1发送至服务中心1。

步骤704,服务中心1接收msg1={P2,code1},首先验证用户Alice的身份,然后计算P2*p1=P3,对数据code1脱密:DP3(code1)=data1,得到了签名时刻time、标识Alice、用户Alice的当前流水号、其注册证书以及随机密钥ran3。

服务中心1首先确定用户Alice的申请途径信息,即确定用户Alice发送消息的途径是电话号码还是邮件地址,当确定为邮件地址后,验证该邮件地址是否与用户Alice向服务中心1注册时提供的邮件地址一致,当验证发送消息的邮件地址与其注册时提供的邮件地址一致时,核对当前流水号与所述服务中心1存储的用户Alice的流水号是否一致,以及验证Alice的注册证书是否为所述服务中心1发放的证书,当流水号一致,且注册证书为服务中心1发放的证书时,提取出签名时刻time,并生成Alice的时刻签名私钥time-alice,并更新Alice的流水号,并将更新后的流水号与时刻签名私钥一同加密发送给用户Alice,即data2={更新后的流水号,time-alice},Eran3(data2)=code2,将code2发送给用户Alice。

步骤705,用户Alice接收到code2后,利用ran3脱密:Dran3(code2)=data2,得到更新后的流水号以及时刻签名私钥,Alice利用更新后的流水号替换当前流水号,保证与服务中心1流水号同步。然后对数据h进行签名,Alice定义随机数k,计算验证码c和签名码s:k*G=(x1,y1);c=(x1+y1)2mod 240,s=k-1(h+c*time-alice)mod n,签名以函数形式标记为:SIGtime-alice(h)=(s,c)。用户Alice将签名数据以及签名时刻发送给用户Bob。

步骤706,用户Bob接收到签名数据以及签名时刻后,自动向服务中心2发送时刻验证公钥申请消息。

步骤707,服务中心2定义随机数p4,计算p4*G=P4,并向Bob发送P4作为响应。

步骤708,Bob定义随机数p5,计算p5*G=P5,p5*P4=P6,定义随机密钥ran4。然后利用P6对签名时刻time、时刻验证公钥对应的标识Alice以及随机密钥ran4进行加密,即对数据data3={time,Alice,ran4}加密:EP6(data3)=code3,发送msg2={P5,code3}至服务中心2。

步骤709,服务中心2接收msg2={P5,code3},并计算p4*P5=P6,对数据code3脱密:DP6(code3)=data3。服务中心2从data3中取出签名时刻time以及标识Alice,生成Alice的时刻验证公钥TIME-Alice,并用随机密钥ran4对时刻验证公钥加密:Eran4(TIME-Alice)=code4,并向Bob发送code4。

步骤710,Bob接收到code4后,利用随机密钥ran4脱密:Dran4(code4)=TIME-Alice。

然后,Bob验证Alice的签名:

Alice验证c:s-1*h*G+s-1*c*TIME-Alice=(x1,y1);c'=(x1+y1)2mod 240

验证以函数形式标记为:VERTIME-Alice(h,s)=c’。

对于上述客户端向服务中心申请的密钥,在使用所申请的密钥后,无论是公钥还是私钥,使用一次后即作废。当下次再要对数据加密、解密,或进行签名、验证的时候,再申请公钥或私钥,从而保证了申请一次使用一次,使用后即作废。

通过本发明实施例,解决了现有技术中利用量子计算,就可以通过公开的公钥攻破公钥体制的问题,本发明实施例则采用一次性密钥体制,无论是公钥还是私钥,申请使用一次后即作废,这样即使被量子计算破解密钥后,所破解的密钥已经作废,使得破解毫无意义。

相应地,本发明实施例还提供一种增强型CPK的密钥申请与分发装置,所述装置应用于客户端,所述装置包括:存储模块,用于存储计算机可执行指令;以及控制模块,用于执行所述计算机可执行指令,以执行以下操作:向服务中心发送时刻密钥申请消息;接收所述服务中心发送的第一响应参数;定义第一随机数和第一随机密钥,并根据所述第一响应参数以及所述第一随机数,得到第一随机参数以及第二随机参数;利用所述第二随机参数对密钥参数加密,并向所述服务中心发送所述第一随机参数与加密后的密钥参数,所述密钥参数包括网络时刻、密钥申请标识以及第一随机密钥;接收所述服务中心发送的时刻密钥信息,并利用所述第一随机密钥脱密所述时刻密钥信息得到时刻密钥,所述时刻密钥与所述网络时刻、所述密钥申请标识相关。

进一步地,在所述向服务中心发送时刻密钥申请消息之前,所述控制模块还用于执行所述计算机可执行指令,以执行所述客户端向所述服务中心注册的过程:向所述服务中心发送注册申请消息;接收所述服务中心发送的第二响应参数;定义第三随机数和第二随机密钥,并根据所述第二响应参数以及所述第三随机数,得到第三随机参数以及第四随机参数;利用所述第四随机参数对所述客户端的客户信息以及所述第二随机密钥加密,得到客户信息密文,并向所述服务中心发送所述第三随机参数与所述客户信息密文,所述客户信息包括客户的真实姓名、身份证号、申请途径信息,所述申请途径信息包括电话号码和邮件地址;接收所述服务中心发送的利用所述第二随机密钥加密的流水号和注册证书,并利用所述第二随机密钥脱密得到所述流水号和注册证书,所述注册证书为所述服务中心对所述密钥申请标识的签名。

进一步地,当所述时刻密钥申请消息为时刻私钥申请消息时,所述密钥申请标识为申请时刻私钥的标识,所述密钥参数中还包括所述客户端的当前流水号和注册证书,并通过所述申请途径信息向所述服务中心发送时刻私钥申请消息,以便于所述服务中心验证所述申请途径信息是否与所述客户端向所述服务中心注册时提供的申请途径信息一致,并当验证所述申请途径信息与所述客户端向所述服务中心注册时提供的申请途径信息一致时,核对所述当前流水号,并验证所述注册证书,所述服务中心为所述客户端注册的服务中心,所述利用所述第一随机密钥脱密所述时刻密钥信息得到时刻密钥包括:

利用所述第一随机密钥脱密所述时刻密钥信息得到时刻私钥和更新后的流水号,并将所述客户端的当前流水号替换为所述更新后的流水号。

进一步地,当所述时刻密钥申请消息为时刻签名私钥申请消息时,所述网络时刻为签名时间。

进一步地,当所述时刻密钥申请消息为时刻脱密私钥申请消息时,所述网络时刻为加密方提供的加密时刻。

进一步地,当所述时刻密钥申请消息为时刻验证公钥申请消息时,所述网络时刻为签名方提供的签名时间。

进一步地,当所述时刻密钥申请消息为时刻加密公钥申请消息时,所述网络时刻为加密时刻。

本发明实施例的具体实施细节以及效果可参考前述应用于客户端的增强型CPK的密钥申请与分发方法的实施过程,在此不再进行赘述。

相应地,本发明实施例还提供一种增强型CPK的密钥申请与分发装置,所述装置应用于服务中心,所述装置包括:存储模块,用于存储计算机可执行指令;以及控制模块,用于执行所述计算机可执行指令,以执行以下操作:接收客户端发送的时刻密钥申请消息;作为接收所述时刻密钥申请消息的响应,向所述客户端发送利用定义的第一响应数生成的第一响应参数;接收所述客户端发送的第一随机参数与加密后的密钥参数;根据所述第一响应数与所述第一随机参数,得到所述第二随机参数,并利用所述第二随机参数脱密所述加密后的密钥参数,得到所述密钥参数中的网络时刻、密钥申请标识以及第一随机密钥;利用所述网络时刻与所述密钥申请标识,生成所述密钥申请标识对应的时刻密钥,并发送利用所述第一随机密钥加密的所述时刻密钥至所述客户端。

进一步地,所述控制模块还执行所述计算机可执行指令以执行所述客户端向所述服务中心注册的过程:接收所述客户端发送的注册申请消息;作为接收所述注册申请消息的响应,向所述客户端发送利用定义的第二响应数生成的第二响应参数;接收所述客户端发送的第三随机参数与客户信息密文;根据所述第二响应数与所述第三随机参数,得到所述第四随机参数,并利用所述第四随机参数脱密所述客户信息密文,得到客户信息和第二随机密钥,所述客户信息包括客户的真实姓名、身份证号、申请途径信息,所述申请途径信息包括电话号码和邮件地址;当验证所述客户信息的真实性为真时,定义所述客户端对应的流水号和注册证书,并发送利用所述第二随机密钥加密的流水号和注册证书至所述客户端。

进一步地,当所述时刻密钥申请消息为时刻私钥申请消息时,所述密钥参数中还包括所述客户端的当前流水号和注册证书,所述控制模块还执行所述计算机可执行指令以执行以下操作:确定所述客户端申请时刻私钥的申请途径信息;验证所述申请途径信息是否与所述客户端向所述服务中心注册时提供的申请途径信息一致;当验证所述申请途径信息与所述客户端向所述服务中心注册时提供的申请途径信息一致时,核对所述客户端的当前流水号与所述服务中心存储的所述客户端的流水号是否一致,以及验证所述注册证书是否为所述服务中心发放的证书;当所述客户端的当前流水号与所述服务中心存储的所述客户端的流水号一致,且验证所述注册证书为所述服务中心发放的证书时,利用所述网络时刻与所述密钥申请标识,生成所述密钥申请标识对应的时刻私钥;利用所述第一随机密钥对所述时刻私钥与更新后的流水号加密,并发送至所述客户端。

本发明实施例的具体实施细节以及效果可参考前述应用于服务中心的增强型CPK的密钥申请与分发方法的实施过程,在此不再进行赘述。

本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:面向中心化移动定位系统的三方可认证密钥协商方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!