掌桥专利:专业的专利平台
掌桥专利
首页

一种密钥组合计算管理方法、装置及设备

文献发布时间:2023-06-19 11:35:49


一种密钥组合计算管理方法、装置及设备

技术领域

本申请涉及数据安全技术领域,尤其是涉及一种密钥组合计算管理方法、装置及设备。

背景技术

非对称加密算法是一种密钥保密方法,非对称加密算法需要两个密钥:公开密钥(简称公钥)和私有密钥(简称私钥),公钥与私钥是一对,如果用公钥对数据进行加密,则需要使用该公钥对应的私钥进行解密。由于加密和解密是使用两个不同密钥,因此,采用公钥与私钥的这种算法称为非对称加密算法。

非对称加密算法实现数据交换的基本过程是:第一方生成一对密钥(即公钥和私钥),并将公钥公开,第二方获知公钥,使用公钥对数据进行加密后发送给第一方,第一方使用私钥对加密后数据进行解密。另一方面,第一方使用私钥对数据进行签名后发送给第二方,第二方使用公钥对数据进行验签。

在密钥管理系统中,通常使用非对称加密算法实现数据交换,第一方生成公钥和私钥后,公钥和私钥不再发生变化,第一方与第二方之间的所有数据交换过程均使用该公钥和私钥进行加密和解密。但是,一旦私钥泄漏,则所有数据交换过程均会由于私钥泄漏而导致安全性降低,无法保证数据交换的安全性。

发明内容

本申请提供一种密钥组合计算管理方法,服务端包括至少两个密钥管理实体,所述至少两个密钥管理实体按照顺序连接,每个密钥管理实体单独管理椭圆曲线密码ECC密钥对,所述ECC密钥对包括ECC私钥和ECC公钥,客户端存储有所有密钥管理实体的ECC公钥,所述方法包括:

客户端基于随机数r、椭圆曲线上的基点G和所有密钥管理实体的ECC公钥生成临时公钥P,基于临时公钥P对随机生成的对称密钥k进行加密,得到对称密钥k的密文c,并基于所述基点G和随机数r生成字符串R;

客户端向服务端发送数据请求,所述数据请求包括密文c和字符串R;

服务端将字符串R发送给第一个密钥管理实体,第一个密钥管理实体基于字符串R和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;针对第一个密钥管理实体和最后一个密钥管理实体之外的每个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;针对最后一个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成与所述临时公钥P对应的临时私钥v;

服务端基于所述临时私钥v对密文c进行解密,得到所述对称密钥k,基于所述对称密钥k对目标数据进行加密,得到加密后数据,并向客户端发送数据响应,所述数据响应包括所述加密后数据,以使客户端接收到所述数据响应后,基于所述对称密钥k对所述加密后数据进行解密,得到所述目标数据。

示例性的,所述客户端采用如下公式生成临时公钥P:P=H(r*pk1)·G+z;

所述客户端采用如下公式生成字符串R:R=r·G;

第一个密钥管理实体采用如下公式生成临时子密钥v

第一个密钥管理实体和最后一个密钥管理实体之外的每个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥与本密钥管理实体的ECC私钥之和,生成临时子密钥;最后一个密钥管理实体基于上一个密钥管理实体发送的临时子密钥与本密钥管理实体的ECC私钥之和,生成所述临时私钥v;

其中,H表示将椭圆曲线上的点序列化为比特串,pk1表示第一个密钥管理实体的ECC公钥,z表示第一个密钥管理实体之外的所有密钥管理实体的ECC公钥之和,s1表示第一个密钥管理实体的ECC私钥;

·表示椭圆曲线上的点乘操作,+表示椭圆曲线上的点加操作。

示例性的,所述客户端管理设备私钥和设备公钥,第一个密钥管理实体存储有所述设备公钥,所述方法还包括:所述客户端基于所述设备私钥对所述密文c和所述字符串R进行签名,得到第一签名值,所述数据请求还包括所述第一签名值;所述服务端还将所述第一签名值发送给第一个密钥管理实体;第一个密钥管理实体基于所述设备公钥和所述第一签名值进行验签操作;若验签通过,则执行基于字符串R和本密钥管理实体的ECC私钥生成临时子密钥的操作。

示例性的,所述服务端基于所述对称密钥k对目标数据进行加密,得到加密后数据之后,所述方法还包括:所述服务端基于所述临时私钥v对所述加密后数据进行签名,得到第二签名值,所述数据响应还包括所述第二签名值;

所述客户端接收到所述数据响应后,基于所述临时公钥P和所述第二签名值进行验签操作;若验签通过,则执行基于所述对称密钥k对所述加密后数据进行解密,得到所述目标数据的操作。

在一种可能的实施方式中,针对待发送的多个数据请求,为每个数据请求随机生成对称密钥k,且不同数据请求对应的对称密钥k不同;为每个数据请求随机生成随机数r,且不同数据请求对应的随机数r不同;为每个数据请求生成临时公钥P,且不同数据请求对应的临时公钥P不同。

示例性的,所述至少两个密钥管理实体部署在同一物理设备或者不同物理设备;每个密钥管理实体通过指定存储介质存储本密钥管理实体的ECC密钥对,不同密钥管理实体的用于存储本密钥管理实体的ECC密钥对的存储区域不同。

本申请提供一种密钥组合计算管理方法,服务端包括至少两个密钥管理实体,所述至少两个密钥管理实体按照顺序连接,每个密钥管理实体单独管理椭圆曲线密码ECC密钥对,ECC密钥对包括ECC私钥和ECC公钥,客户端存储有所有密钥管理实体的ECC公钥,所述方法应用于服务端,该方法包括:

接收客户端发送的数据请求,所述数据请求包括密文c和字符串R;其中,所述密文c是客户端基于临时公钥P对随机生成的对称密钥k进行加密后得到,所述临时公钥P是客户端基于随机数r、椭圆曲线上的基点G和所有密钥管理实体的ECC公钥生成,所述字符串R是客户端基于所述基点G和随机数r生成;

将字符串R发送给第一个密钥管理实体,第一个密钥管理实体基于字符串R和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;针对第一个密钥管理实体和最后一个密钥管理实体之外的每个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;针对最后一个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成与所述临时公钥P对应的临时私钥v;

基于所述临时私钥v对密文c进行解密,得到所述对称密钥k,基于所述对称密钥k对目标数据进行加密,得到加密后数据,并向客户端发送数据响应,所述数据响应包括所述加密后数据,以使客户端接收到所述数据响应后,基于所述对称密钥k对所述加密后数据进行解密,得到所述目标数据。

本申请提供一种密钥组合计算管理方法,服务端包括至少两个密钥管理实体,所述至少两个密钥管理实体按照顺序连接,每个密钥管理实体单独管理椭圆曲线密码ECC密钥对,ECC密钥对包括ECC私钥和ECC公钥,客户端存储有所有密钥管理实体的ECC公钥,所述方法应用于客户端,该方法包括:

基于随机数r、椭圆曲线上的基点G和所有密钥管理实体的ECC公钥生成临时公钥P,基于临时公钥P对随机生成的对称密钥k进行加密,得到对称密钥k的密文c,并基于所述基点G和随机数r生成字符串R;

向服务端发送数据请求,数据请求包括密文c和字符串R;以使服务端的第一个密钥管理实体基于字符串R和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;第一个密钥管理实体和最后一个密钥管理实体之外的每个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;最后一个密钥管理实体基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成与临时公钥P对应的临时私钥v;

接收所述服务端发送的数据响应,所述数据响应包括加密后数据;其中,所述加密后数据是所述服务端基于所述临时私钥v对密文c进行解密得到对称密钥k后,基于所述对称密钥k对目标数据进行加密后得到;

基于所述对称密钥k对所述加密后数据进行解密,得到所述目标数据。

本申请提供一种密钥组合计算管理装置,服务端包括至少两个密钥管理实体,所述至少两个密钥管理实体按照顺序连接,每个密钥管理实体单独管理椭圆曲线密码ECC密钥对,ECC密钥对包括ECC私钥和ECC公钥,客户端存储有所有密钥管理实体的ECC公钥,所述装置应用于服务端,所述装置包括:

接收模块,用于接收所述客户端发送的数据请求,所述数据请求包括密文c和字符串R;其中,所述密文c是所述客户端基于临时公钥P对随机生成的对称密钥k进行加密后得到,所述临时公钥P是所述客户端基于随机数r、椭圆曲线上的基点G和所有密钥管理实体的ECC公钥生成,所述字符串R是所述客户端基于所述基点G和所述随机数r生成;

处理模块,用于将所述字符串R发送给第一个密钥管理实体,以使所述第一个密钥管理实体基于所述字符串R和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;以使第一个密钥管理实体和最后一个密钥管理实体之外的每个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;以使最后一个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成与所述临时公钥P对应的临时私钥v;

解密模块,用于基于所述临时私钥v对密文c进行解密,得到所述对称密钥k,基于所述对称密钥k对目标数据进行加密,得到加密后数据;

发送模块,用于向客户端发送数据响应,所述数据响应包括所述加密后数据,以使所述客户端接收到所述数据响应后,基于所述对称密钥k对所述加密后数据进行解密,得到所述目标数据。

本申请提供一种服务端设备,所述服务端设备包括至少两个密钥管理实体,所述至少两个密钥管理实体按照顺序连接,每个密钥管理实体单独管理椭圆曲线密码ECC密钥对,ECC密钥对包括ECC私钥和ECC公钥,客户端存储有所有密钥管理实体的ECC公钥,所述服务端设备包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下的步骤:

接收客户端发送的数据请求,所述数据请求包括密文c和字符串R;其中,所述密文c是客户端基于临时公钥P对随机生成的对称密钥k进行加密后得到,所述临时公钥P是客户端基于随机数r、椭圆曲线上的基点G和所有密钥管理实体的ECC公钥生成,所述字符串R是客户端基于所述基点G和随机数r生成;

将字符串R发送给第一个密钥管理实体,第一个密钥管理实体基于字符串R和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;针对第一个密钥管理实体和最后一个密钥管理实体之外的每个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;针对最后一个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成与所述临时公钥P对应的临时私钥v;

基于所述临时私钥v对密文c进行解密,得到所述对称密钥k,基于所述对称密钥k对目标数据进行加密,得到加密后数据,并向客户端发送数据响应,所述数据响应包括所述加密后数据,以使客户端接收到所述数据响应后,基于所述对称密钥k对所述加密后数据进行解密,得到所述目标数据。

由以上技术方案可见,本申请实施例中,服务端可以包括至少两个密钥管理实体,每个密钥管理实体单独管理ECC(Elliptic Curve Cryptosystem,椭圆曲线密码)密钥对,该ECC密钥对包括ECC私钥和ECC公钥,即,每个密钥管理实体分别拥有1个ECC私钥,各密钥管理实体独立保存ECC私钥,且通过所有密钥管理实体管理的ECC私钥才能够完成解密过程,提高了安全等级,保证了ECC私钥的安全性。比如说,即使一个或多个密钥管理实体管理的ECC私钥发生泄漏,只要不是所有密钥管理实体管理的ECC私钥均发生泄漏,那么,攻击者就无法获知所有ECC私钥,无法对数据进行解密,保证了数据解密过程的安全性,即私钥泄漏时也可以有效保证数据交换的安全性。而且,针对每次数据交换过程,客户端均需要基于所有密钥管理实体管理的ECC公钥单独生成临时公钥P,且服务端需要单独生成与临时公钥P对应的临时私钥v,即临时公钥P和临时私钥v只针对一次数据交换过程,一次数据交换过程的临时私钥v发生泄漏,也不会影响其它数据交换过程的解密过程,从而提高了安全等级,也就是说,即使攻击者获知临时私钥v,也只能对一次数据交换过程进行解密,无法使用该临时私钥v对其它的数据交换过程进行解密,保证数据交换的安全性。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1是本申请一种实施方式中的应用场景示意图;

图2是本申请一种实施方式中的密钥组合计算管理方法的流程图;

图3是本申请一种实施方式中的密钥组合计算管理方法的流程图;

图4是本申请一种实施方式中的密钥组合计算管理方法的流程图;

图5是本申请一种实施方式中的密钥组合计算管理方法的流程图;

图6是本申请一种实施方式中的密钥组合计算管理装置的结构图;

图7是本申请一种实施方式中的服务端设备的结构图。

具体实施方式

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在密钥管理系统中,通常使用非对称加密算法实现数据交换,将需要实现数据交换的双方称为客户端和服务端,客户端需要访问服务端的目标数据(即服务端提供的业务数据或应用数据),服务端可以将目标数据发送给客户端。

客户端可以是任意类型的电子设备,如终端设备、PC(Personal Computer,个人计算机)、笔记本电脑等,服务端可以是任意类型的电子设备,如终端设备、PC、笔记本电脑、服务器等,对此客户端和服务端的类型均不做限制。

在客户端和服务端的数据交换过程中,服务端生成一对密钥,即公钥和私钥,并将公钥公开,客户端获知该公钥,客户端和服务端使用该公钥和该私钥实现加密和解密。服务端在生成公钥和私钥后,公钥和私钥不再发生变化,客户端和服务端之间的所有数据交换过程均使用该公钥和私钥进行加密和解密。

显然,一旦服务端的私钥发生泄漏,则客户端与服务端之间的所有数据交换过程均会由于私钥泄漏而导致安全性降低,无法保证数据交换的安全性。

针对上述发现,本申请实施例中,服务端包括至少两个密钥管理实体,每个密钥管理实体单独管理私钥和公钥,且通过所有密钥管理实体的私钥才能够完成解密,即使一个或多个密钥管理实体的私钥泄漏,只要不是所有密钥管理实体的私钥均泄漏,那么,攻击者就无法对数据进行解密,可以保证私钥的安全性,并有效保证数据交换的安全性。针对每次数据交换过程,客户端均需要基于所有密钥管理实体的公钥单独生成临时公钥P,且服务端单独生成与临时公钥P对应的临时私钥v,一次数据交换过程的临时私钥v发生泄漏,也不会影响其它数据交换过程的解密过程,从而可以有效保证数据交换的安全性。

本申请实施例中,公钥和私钥可以是非对称加密算法的公开密钥和私有密钥,如RSA公钥和RSA私钥,或,ECC公钥和ECC私钥,当然,也可以是其它类型的公钥和私钥,对此公钥和私钥的类型不做限制,只要是非对称加密算法的公钥和私钥即可。为了方便描述,后续实施例中,以ECC公钥和ECC私钥为例,关于其它类型的公钥和私钥,其实现过程类似,本实施例中不再赘述。

本申请实施例中,服务端包括至少两个密钥管理实体,这些密钥管理实体按照顺序连接,即,第一个密钥管理实体与第二个密钥管理实体连接,第二个密钥管理实体与第三个密钥管理实体连接,以此类推,倒数第二个密钥管理实体与最后一个密钥管理实体连接。当然,各密钥管理实体之间除了上述顺序连接关系,还可以有其它连接关系,如第一个密钥管理实体与第三个密钥管理实体连接,第一个密钥管理实体与最后一个密钥管理实体连接等,对此不做限制。为了方便描述,在后续实施例中,以这些密钥管理实体按照顺序连接为例。

参见图1所示,为本申请实施例的应用场景示意图,客户端10的数量可以为至少一个,将这些客户端10记为客户端10-1、客户端10-2、…、客户端10-m,也就是说,以m个客户端10为例进行说明。由于每个客户端10的处理过程相同,为了方便描述,在后续实施例中,以一个客户端10的处理过程为例。

服务端20包括至少两个密钥管理实体21,参见图1所示,将这些密钥管理实体21记为密钥管理实体21-1、密钥管理实体21-2、密钥管理实体21-3、…、密钥管理实体21-n,也就是说,以n个密钥管理实体21为例进行说明。

参见图1所示,密钥管理实体21-1与密钥管理实体21-2连接,密钥管理实体21-2与密钥管理实体21-3连接,…,密钥管理实体21-(n-1)与密钥管理实体21-n连接,显然,密钥管理实体21-1是第一个密钥管理实体,而密钥管理实体21-n是最后一个密钥管理实体,密钥管理实体21-1是密钥管理实体21-2的上一个密钥管理实体,密钥管理实体21-2是密钥管理实体21-1的下一个密钥管理实体,密钥管理实体21-2是密钥管理实体21-3的上一个密钥管理实体,密钥管理实体21-3是密钥管理实体21-2的下一个密钥管理实体,以此类推。

本申请实施例中,每个密钥管理实体单独管理ECC密钥对,ECC密钥对包括ECC私钥和ECC公钥,即ECC私钥和ECC公钥组成ECC密钥对。每个密钥管理实体单独管理ECC密钥对可以是:每个密钥管理实体单独获取ECC密钥对(可以是本密钥管理实体自身生成的,也可以是服务端21生成ECC密钥对后下发给本密钥管理实体),一个密钥管理实体无法获知另一个密钥管理实体的ECC密钥对。每个密钥管理实体单独存储ECC密钥对,一个密钥管理实体不会存储另一个密钥管理实体的ECC密钥对。每个密钥管理实体单独使用ECC密钥对,一个密钥管理实体无法使用另一个密钥管理实体的ECC密钥对。

比如说,密钥管理实体21-1管理ECC密钥对1,ECC密钥对1包括pk1和s1,pk1为密钥管理实体21-1的ECC公钥,s1为密钥管理实体21-1的ECC私钥。密钥管理实体21-2管理ECC密钥对2,ECC密钥对2包括pk2和s2,pk2为密钥管理实体21-2的ECC公钥,s2为密钥管理实体21-2的ECC私钥。以此类推,密钥管理实体21-n管理ECC密钥对n,ECC密钥对n包括pkn和sn,pkn为密钥管理实体21-n的ECC公钥,sn为密钥管理实体21-n的ECC私钥。

本申请实施例中,客户端10存储有所有密钥管理实体的ECC公钥,比如说,客户端10存储有密钥管理实体21-1的ECC公钥(即pk1)、密钥管理实体21-2的ECC公钥(即pk2)、…、密钥管理实体21-n的ECC公钥(即pkn)。

本申请实施例中,针对所有密钥管理实体来说,这些密钥管理实体可以是功能模块,部署在已有物理设备,这些密钥管理实体也可以是独立设备,即每个密钥管理实体是一个独立设备。在这些密钥管理实体部署在已有物理设备时,这些密钥管理实体可以部署在同一物理设备或者不同物理设备。比如说,服务端可以由一个物理设备实现,则所有密钥管理实体可以部署在该物理设备。或者,服务端可以由多个物理设备实现,则所有密钥管理实体可以部署在同一个物理设备,也可以部署在不同的物理设备,对此部署关系不做限制。

示例性的,针对每个密钥管理实体来说,可以通过指定存储介质(可以是任意类型的存储介质,例如,磁盘、易失存储器、非易失性存储器、固态硬盘等,对此存储介质的类型不做限制)存储本密钥管理实体的ECC密钥对,不同密钥管理实体的用于存储本密钥管理实体的ECC密钥对的存储区域不同。

比如说,密钥管理实体21-1使用存储区域1存储本密钥管理实体21-1的ECC密钥对1,密钥管理实体21-2使用存储区域2存储本密钥管理实体21-2的ECC密钥对2,…,密钥管理实体21-n使用存储区域n存储本密钥管理实体21-n的ECC密钥对n。显然,存储区域1、存储区域2…、存储区域n可以是指定存储介质的不同存储区域,这些存储区域可以位于同一个物理设备,也可以位于不同物理设备,对此不做限制,只要这些存储区域是不同存储区域即可。

通过不同存储区域存储不同密钥管理实体的ECC密钥对,从而在存储区域上隔离不同密钥管理实体的ECC密钥对,密钥管理实体只能访问自身存储区域的ECC密钥对,而不能访问其它密钥管理实体的存储区域的ECC密钥对。

在上述应用场景下,本申请实施例提出一种密钥组合计算管理方法,服务端包括至少两个密钥管理实体,这些密钥管理实体按照顺序连接,每个密钥管理实体单独管理ECC密钥对(ECC私钥和ECC公钥),客户端存储有所有密钥管理实体的ECC公钥,参见图2所示,为该方法的流程图,该方法包括:

步骤201、客户端基于随机数r、椭圆曲线上的基点G和所有密钥管理实体的ECC公钥生成临时公钥P,基于临时公钥P对随机生成的对称密钥k进行加密,得到对称密钥k的密文c,并基于基点G和随机数r生成字符串R。

示例性的,当客户端需要从服务端请求目标数据时,客户端可以随机生成一个随机数r,即,客户端随机生成一个数值作为随机数r,对此随机数r的生成方式不做限制。以及,客户端还可以随机生成一个对称密钥k,即,客户端随机生成一个密钥作为对称密钥k,对此对称密钥k的生成方式不做限制。

示例性的,客户端和服务端均可以获知椭圆曲线(即采用ECC作为非对称加密算法时,可以约定椭圆曲线的结构),可以将椭圆曲线上的某个点选取为基点G,且客户端和服务端均可以获知椭圆曲线上的哪个点作为基点G,因此,客户端可以从椭圆曲线上选取出基点G,即基点G是椭圆曲线上的已知点。

示例性的,客户端还可以存储所有密钥管理实体的ECC公钥,例如,客户端存储有密钥管理实体21-1的ECC公钥(即pk1)、密钥管理实体21-2的ECC公钥(即pk2)、…、密钥管理实体21-n的ECC公钥(即pkn)。

在一种可能的实施方式中,已知随机数r、椭圆曲线上的基点G和所有密钥管理实体的ECC公钥,客户端可以基于随机数r、基点G和所有密钥管理实体的ECC公钥生成临时公钥P,比如说,采用如下公式(1)生成临时公钥P:

P=H(r*pk1)·G+z 公式(1)

在公式(1)中,r表示随机数,pk1表示第一个密钥管理实体的ECC公钥,如密钥管理实体21-1的ECC公钥,G表示椭圆曲线上的基点G,z表示第一个密钥管理实体之外的所有密钥管理实体的ECC公钥之和,即密钥管理实体21-2的ECC公钥pk2、密钥管理实体21-3的ECC公钥pk3、…、密钥管理实体21-n的ECC公钥pkn之和,·表示椭圆曲线上的点乘操作,+表示椭圆曲线上的点加操作,H为预先配置的序列化函数,输入数据为椭圆曲线上的点,输出数据为比特串,H表示将椭圆曲线上的点序列化为比特串,也就是说,针对椭圆曲线上的点(r*pk1)·G,可以通过H将该椭圆曲线上的点序列化为比特串。

显然,客户端还可以采用如下公式(2)生成临时公钥P:

P=H(r*pk1)·G+ pk2+ pk3+…+ pkn 公式(2)

在一种可能的实施方式中,已知临时公钥P和对称密钥k,客户端可以基于临时公钥P对该对称密钥k进行加密,得到对称密钥k的密文c,对此加密过程不做限制,只要能够采用临时公钥P对该对称密钥k进行加密即可。

在一种可能的实施方式中,已知基点G和随机数r,客户端可以基于基点G和随机数r生成字符串R,比如说,采用如下公式(3)生成字符串R:

R=r·G 公式(3)

r表示随机数,G表示椭圆曲线上的基点G,·表示椭圆曲线上的点乘操作。

步骤202、客户端向服务端发送数据请求,数据请求包括密文c和字符串R。

比如说,客户端可以将密文c和字符串R拼接得到字符串R||c,||表示字符串拼接,客户端向服务端发送数据请求时,该数据请求可以包括字符串R||c,即数据请求包括密文c和字符串R,该数据请求用于请求服务端的目标数据。

步骤203、服务端将字符串R发送给第一个密钥管理实体,第一个密钥管理实体基于字符串R和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体。针对第一个密钥管理实体和最后一个密钥管理实体之外的每个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体。针对最后一个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成与临时公钥P对应的临时私钥v。

示例性的,服务端在接收到数据请求后,从该数据请求中解析出密文c和字符串R,比如说,从该数据请求中解析出字符串R||c,并将字符串R||c拆分成密文c和字符串R。然后,服务端可以将字符串R发送给第一个密钥管理实体,即密钥管理实体21-1。密钥管理实体21-1基于字符串R和本密钥管理实体21-1的ECC私钥生成临时子密钥v

针对与密钥管理实体21-1连接的密钥管理实体21-2来说,密钥管理实体21-2在接收到临时子密钥v

针对与密钥管理实体21-2连接的密钥管理实体21-3来说,密钥管理实体21-3在接收到临时子密钥v

以此类推,针对密钥管理实体21-1和密钥管理实体21-n之外的每个密钥管理实体,均基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成临时子密钥,即,基于上一个密钥管理实体发送的临时子密钥与本密钥管理实体的ECC私钥之和,生成临时子密钥,即二者的和作为临时子密钥,并将该临时子密钥发送给与本密钥管理实体连接的下一个密钥管理实体。

针对与密钥管理实体21-(n-1)连接的密钥管理实体21-n(即最后一个密钥管理实体)来说,密钥管理实体21-n在接收到临时子密钥v

示例性的,临时私钥v(即临时子密钥v

v

v

H(R·s1)+s2+s3+…+s(n-2)+s(n-1)+sn

以及,参见公式(2)所示,P=H(r*pk1)·G+ pk2+ pk3+…+ pkn=

H(r* s1·G)·G+ s2·G + s3·G +…+ sn·G=

H(r* G·s1)·G+ s2·G + s3·G +…+ sn·G=

H(R·s1)·G+ s2·G + s3·G +…+ sn·G=

[H(R·s1) + s2 + s3 +…+ sn]·G。

从上述临时私钥v的表达式和临时公钥P的表达式可以看出,临时公钥P为临时私钥v·G,即临时私钥v(临时子密钥v

步骤204、服务端基于临时私钥v对密文c进行解密,得到对称密钥k,并基于该对称密钥k对目标数据进行加密,得到加密后数据。

示例性的,客户端可以基于临时公钥P对对称密钥k进行加密,得到对称密钥k的密文c,而临时私钥v和临时公钥P组成一组非对称密钥,因此,服务端可以使用临时私钥v对密文c进行解密,得到该对称密钥k。

示例性的,关于客户端向服务端发送的数据请求,该数据请求用于请求服务端的目标数据,因此,服务端可以查询到与该数据请求匹配的目标数据,并使用该对称密钥k对该目标数据进行加密,得到加密后数据。

在一种可能的实施方式中,服务端可以将密文c和目标数据发送给密钥管理实体21-n(即最后一个密钥管理实体),由密钥管理实体21-n基于临时私钥v对密文c进行解密,得到对称密钥k,并基于对称密钥k对目标数据进行加密。

步骤205、服务端向客户端发送数据响应,该数据响应包括加密后数据。

步骤206、客户端在接收到该数据响应后,基于对称密钥k对该加密后数据进行解密,得到目标数据。比如说,客户端从该数据响应中解析出加密后数据,并基于对称密钥k对该加密后数据进行解密,得到目标数据。

示例性的,由于服务端是使用对称密钥k对目标数据进行加密,得到加密后数据,因此,客户端可以使用对称密钥k(即客户端随机生成的对称密钥k,客户端可以存储该对称密钥k)对该加密后数据进行解密,得到目标数据。

在一种可能的实施方式中,客户端可能请求服务端的多个目标数据,即客户端需要向服务端发送多个数据请求(每个数据请求理解为一次会话),针对待发送的多个数据请求,客户端为每个数据请求随机生成对称密钥k,且不同数据请求对应的对称密钥k不同或者相同,由于对称密钥k是随机生成的,因此,不同数据请求对应的对称密钥k可以不同。以及,客户端为每个数据请求随机生成随机数r,且不同数据请求对应的随机数r不同或者相同,由于随机数r是随机生成的,因此,不同数据请求对应的随机数r可以不同。以及,客户端为每个数据请求生成临时公钥P,且不同数据请求对应的临时公钥P不同或者相同,由于用于生成临时公钥P的随机数r不同,基点G相同,所有密钥管理实体的ECC公钥相同,因此,不同数据请求对应的临时公钥P可以不同。

针对待发送的每个数据请求,基于步骤201-步骤206,客户端向服务端发送该数据请求,服务端向客户端返回与该数据请求对应的目标数据。

在一种可能的实施方式中,客户端管理有设备私钥(也可以称为签名私钥)和设备公钥(也可以称为签名公钥),且服务端的第一个密钥管理实体存储有该设备公钥。比如说,客户端生成设备私钥和设备公钥,并将设备公钥注册到服务端,由服务端的第一个密钥管理实体存储该设备公钥,用于后续身份认证。

基于此,在步骤201中,客户端还可以基于该设备私钥对密文c和字符串R进行签名,得到第一签名值,比如说,客户端可以基于该设备私钥对字符串R||c进行签名,得到第一签名值,对此签名方式不做限制。在步骤202中,客户端向服务端发送数据请求时,该数据请求还可以包括该第一签名值。

在步骤203中,服务端可以将第一签名值发送给第一个密钥管理实体,第一个密钥管理实体基于设备公钥和第一签名值进行验签操作。若验签通过,则第一个密钥管理实体执行基于字符串R和本密钥管理实体的ECC私钥生成临时子密钥的操作。若验签不通过,则表示该数据请求不合法,第一个密钥管理实体禁止执行基于字符串R和本密钥管理实体的ECC私钥生成临时子密钥的操作,结束目标数据的发送流程,即服务端不会向客户端返回目标数据。

比如说,服务端可以将数据请求发送给第一个密钥管理实体,该数据请求可以包括密文c、字符串R、第一签名值等内容。第一个密钥管理实体可以基于设备公钥和第一签名值进行验签操作,对此验签过程不做限制。若验签通过,则表示该数据请求合法,执行目标数据的返回流程,即,通过步骤203-步骤206,将目标数据发送给客户端。若验签不通过,则表示该数据请求不合法,不执行目标数据的返回流程,即,服务端不会向客户端返回目标数据。

在一种可能的实施方式中,服务端基于对称密钥k对目标数据进行加密,得到加密后数据之后,服务端还可以基于临时私钥v对加密后数据进行签名,得到第二签名值,且数据响应还可以包括第二签名值。客户端在接收到该数据响应之后,可以基于临时公钥P和第二签名值进行验签操作;若验签通过,则执行基于对称密钥k对加密后数据进行解密,得到目标数据的操作。

比如说,步骤204中,服务端还可以基于临时私钥v对加密后数据进行签名,得到第二签名值,对此签名方式不做限制。步骤205中,服务端向客户端发送数据响应时,该数据响应还可以包括第二签名值。步骤206中,客户端可以基于临时公钥P和第二签名值进行验签操作,对此验签过程不做限制。若验签通过,则表示该数据响应合法,客户端基于对称密钥k对数据响应中的加密后数据进行解密,得到目标数据。若验签不通过,则表示该数据响应不合法,客户端不基于对称密钥k对数据响应中的加密后数据进行解密,即结束流程。

由以上技术方案可见,本申请实施例中,服务端包括至少两个密钥管理实体,每个密钥管理实体单独管理ECC密钥对,ECC密钥对包括ECC私钥和ECC公钥,即每个密钥管理实体分别拥有1个ECC私钥,各密钥管理实体独立保存ECC私钥,且通过所有密钥管理实体管理的ECC私钥才能够完成解密过程,提高安全等级,保证ECC私钥的安全性。比如说,即使一个或多个密钥管理实体管理的ECC私钥发生泄漏,只要不是所有密钥管理实体管理的ECC私钥均发生泄漏,那么,攻击者就无法获知所有ECC私钥,无法对数据进行解密,保证数据解密过程的安全性,即私钥泄漏时也可以有效保证数据交换的安全性。针对每次数据交换过程,客户端均需要基于所有密钥管理实体管理的ECC公钥单独生成临时公钥P,且服务端需要单独生成与临时公钥P对应的临时私钥v,即临时公钥P和临时私钥v只针对一次数据交换过程(即数据请求和数据响应的一次传输过程,为一次数据交换过程),一次数据交换过程的临时私钥v发生泄漏,也不会影响其它数据交换过程的解密过程,从而提高安全等级,也就是说,即使攻击者获知临时私钥v,也只能对一次数据交换过程进行解密,无法使用该临时私钥v对其它的数据交换过程进行解密,保证数据交换的安全性。

以下结合具体应用场景,对上述技术方案进行说明。本应用场景中,以3个密钥管理实体为例,这3个密钥管理实体分别为密钥管理实体21-1、密钥管理实体21-2和密钥管理实体21-3,在该应用场景下,本申请实施例中提出一种密钥组合计算管理方法,参见图3所示,为该方法的流程图,该方法包括:

步骤301、客户端基于随机数r、椭圆曲线上的基点G和所有密钥管理实体的ECC公钥生成临时公钥P,基于临时公钥P对随机生成的对称密钥k进行加密,得到对称密钥k的密文c,并基于基点G和随机数r生成字符串R。以及,基于设备私钥对密文c和字符串R进行签名,得到第一签名值。

步骤302、客户端向服务端发送数据请求,该数据请求可以包括密文c、字符串R和第一签名值。比如说,向密钥管理实体21-1发送该数据请求。

步骤303、密钥管理实体21-1基于设备公钥和第一签名值进行验签操作。若验签通过,则基于字符串R和本密钥管理实体21-1的ECC私钥生成临时子密钥v

步骤304、密钥管理实体21-2基于临时子密钥v

步骤305、密钥管理实体21-3基于临时子密钥v

步骤306、密钥管理实体21-3基于临时私钥v对密文c进行解密,得到对称密钥k,并基于该对称密钥k对目标数据进行加密,得到加密后数据。以及,密钥管理实体21-3基于临时私钥v对加密后数据进行签名,得到第二签名值。

示例性的,密钥管理实体21-1还可以将数据请求发送给密钥管理实体21-2,密钥管理实体21-2将数据请求发送给密钥管理实体21-3,使得密钥管理实体21-3从数据请求中解析出密文c,并基于临时私钥v对密文c进行解密。

步骤307、密钥管理实体21-3向密钥管理实体21-2发送数据响应,密钥管理实体21-2向密钥管理实体21-1发送数据响应,密钥管理实体21-1向客户端发送数据响应,该数据响应可以包括加密后数据和第二签名值。

步骤308、客户端收到数据响应后,基于临时公钥P和第二签名值进行验签操作;若验签通过,则基于对称密钥k对加密后数据进行解密,得到目标数据。

在一种可能的实施方式中,客户端可能请求服务端的多个目标数据,即客户端需要向服务端发送多个数据请求(每个数据请求理解为一次会话),针对待发送的每个数据请求,可以执行步骤301-步骤308,客户端向服务端发送该数据请求,服务端向客户端返回与该数据请求对应的目标数据。

基于与上述方法同样的申请构思,本申请实施例中提出另一种密钥组合计算管理方法,服务端可以包括至少两个密钥管理实体,至少两个密钥管理实体按照顺序连接,每个密钥管理实体单独管理ECC密钥对,且该ECC密钥对可以包括ECC私钥和ECC公钥,客户端存储有所有密钥管理实体的ECC公钥,参见图4所示,为该方法的流程图,该方法应用于服务端,该方法包括:

步骤401,接收客户端发送的数据请求,该数据请求包括密文c和字符串R。示例性的,密文c是客户端基于临时公钥P对随机生成的对称密钥k进行加密后得到,临时公钥P是客户端基于随机数r、椭圆曲线上的基点G和所有密钥管理实体的ECC公钥生成,字符串R是客户端基于基点G和随机数r生成。

步骤402,将字符串R发送给第一个密钥管理实体,第一个密钥管理实体基于字符串R和本密钥管理实体的ECC私钥生成临时子密钥,并将该临时子密钥发送给下一个密钥管理实体。第一个密钥管理实体和最后一个密钥管理实体之外的每个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成临时子密钥,并将该临时子密钥发送给下一个密钥管理实体。最后一个密钥管理实体基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成与临时公钥P对应的临时私钥v。

步骤403,基于临时私钥v对密文c进行解密,得到对称密钥k,并基于该对称密钥k对目标数据进行加密,得到加密后数据,并向客户端发送数据响应,该数据响应可以包括加密后数据,以使客户端在接收到该数据响应后,基于该对称密钥k对加密后数据进行解密,得到该目标数据。

基于与上述方法同样的申请构思,本申请实施例中提出另一种密钥组合计算管理方法,服务端可以包括至少两个密钥管理实体,至少两个密钥管理实体按照顺序连接,每个密钥管理实体单独管理ECC密钥对,且该ECC密钥对可以包括ECC私钥和ECC公钥,客户端存储有所有密钥管理实体的ECC公钥,参见图5所示,为该方法的流程图,该方法应用于客户端,该方法包括:

步骤501,基于随机数r、椭圆曲线上的基点G和所有密钥管理实体的ECC公钥生成临时公钥P,并基于临时公钥P对随机生成的对称密钥k进行加密,得到对称密钥k的密文c,并基于基点G和随机数r生成字符串R。

步骤502,向服务端发送数据请求,该数据请求包括密文c和字符串R;以使服务端的第一个密钥管理实体基于字符串R和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;第一个密钥管理实体和最后一个密钥管理实体之外的每个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;最后一个密钥管理实体基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成与临时公钥P对应的临时私钥v。

步骤503,接收服务器发送的数据响应,该数据响应可以包括加密后数据;其中,加密后数据是服务端基于临时私钥v对密文c进行解密得到对称密钥k后,基于该对称密钥k对目标数据进行加密后得到。

步骤504,基于对称密钥k对加密后数据进行解密,得到目标数据。

基于与上述方法同样的申请构思,本申请实施例中还提出一种密钥组合计算管理装置,服务端包括至少两个密钥管理实体,所述至少两个密钥管理实体按照顺序连接,每个密钥管理实体单独管理椭圆曲线密码ECC密钥对,ECC密钥对包括ECC私钥和ECC公钥,客户端存储有所有密钥管理实体的ECC公钥,所述装置应用于服务端,如图6所示,为所述装置的结构图,所述装置包括:

接收模块61,用于接收所述客户端发送的数据请求,所述数据请求包括密文c和字符串R;其中,所述密文c是所述客户端基于临时公钥P对随机生成的对称密钥k进行加密后得到,所述临时公钥P是所述客户端基于随机数r、椭圆曲线上的基点G和所有密钥管理实体的ECC公钥生成,所述字符串R是所述客户端基于所述基点G和所述随机数r生成;

处理模块62,用于将所述字符串R发送给第一个密钥管理实体,以使所述第一个密钥管理实体基于所述字符串R和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;以使第一个密钥管理实体和最后一个密钥管理实体之外的每个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;以使最后一个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成与所述临时公钥P对应的临时私钥v;

解密模块63,用于基于所述临时私钥v对密文c进行解密,得到所述对称密钥k,基于所述对称密钥k对目标数据进行加密,得到加密后数据;

发送模块64,用于向客户端发送数据响应,所述数据响应包括所述加密后数据,以使所述客户端接收到所述数据响应后,基于所述对称密钥k对所述加密后数据进行解密,得到所述目标数据。

基于与上述方法同样的申请构思,本申请实施例中还提出了一种服务端设备,所述服务端设备包括至少两个密钥管理实体,所述至少两个密钥管理实体按照顺序连接,每个密钥管理实体单独管理椭圆曲线密码ECC密钥对,ECC密钥对包括ECC私钥和ECC公钥,客户端存储有所有密钥管理实体的ECC公钥,该服务端设备的硬件架构示意图参见图7所示,可以包括:处理器71和机器可读存储介质72,所述机器可读存储介质72存储有能够被处理器71执行的机器可执行指令;处理器71用于执行机器可执行指令,以实现本申请上述示例公开的方法。例如,处理器71用于执行机器可执行指令,以实现如下步骤:

接收客户端发送的数据请求,所述数据请求包括密文c和字符串R;其中,所述密文c是客户端基于临时公钥P对随机生成的对称密钥k进行加密后得到,所述临时公钥P是客户端基于随机数r、椭圆曲线上的基点G和所有密钥管理实体的ECC公钥生成,所述字符串R是客户端基于所述基点G和随机数r生成;

将字符串R发送给第一个密钥管理实体,第一个密钥管理实体基于字符串R和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;针对第一个密钥管理实体和最后一个密钥管理实体之外的每个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成临时子密钥,将该临时子密钥发送给下一个密钥管理实体;针对最后一个密钥管理实体,基于上一个密钥管理实体发送的临时子密钥和本密钥管理实体的ECC私钥生成与所述临时公钥P对应的临时私钥v;

基于所述临时私钥v对密文c进行解密,得到所述对称密钥k,基于所述对称密钥k对目标数据进行加密,得到加密后数据,并向客户端发送数据响应,所述数据响应包括所述加密后数据,以使客户端接收到所述数据响应后,基于所述对称密钥k对所述加密后数据进行解密,得到所述目标数据。

基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,其中,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。

示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

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

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

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

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

相关技术
  • 一种密钥组合计算管理方法、装置及设备
  • 密钥管理方法、密钥管理装置和计算设备
技术分类

06120112985914