基于私钥池的抗量子计算MQV密钥协商方法和系统与流程

文档序号:17535549发布日期:2019-04-29 13:56阅读:370来源:国知局
基于私钥池的抗量子计算MQV密钥协商方法和系统与流程

本发明涉及公钥密码体制和非对称密钥池技术,具体涉及群组内通信双方间的密钥交换。



背景技术:

迅速发展的internet给人们的生活、工作带来了巨大的方便,人们可以坐在家里通过internet收发电子邮件、打电话、进行网上购物、银行转账等活动。同时网络信息安全也逐渐成为一个潜在的巨大问题。一般来说网络信息面临着以下几种安全隐患:网络信息被窃取、信息被篡改、攻击者假冒信息、恶意破坏等。

当前保证网络信息安全的关键技术就是密码技术,而在如今的密码学领域中,主要有两种密码系统,一是对称密钥密码系统,即加密密钥和解密密钥使用同一个。另一个是公开密钥密码系统,即加密密钥和解密密钥不同,其中一个可以公开。

对称密钥密码系统的安全性依赖以下两个因素。第一,加密算法必须是足够强的,仅仅基于密文本身去解密信息在实践上是不可能的;第二,加密方法的安全性来自于密钥的秘密性,而不是算法的秘密性。对称加密系统最大的问题是密钥的分发和管理非常复杂、代价高昂。对称加密算法另一个缺点是不容易实现数字签名。所以,在当今的移动电子商务领域中的加密算法实现主要是依赖于公开密钥体制。

公开密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。由于加密钥匙是公开的,密钥的分配和管理就很简单,公开密钥加密系统还能够很容易地实现数字签名。

自公钥加密问世以来,学者们提出了许多种公钥加密方法,它们的安全性都是基于复杂的数学难题。根据所基于的数学难题来分类,有以下三类系统目前被认为是安全和有效的:大整数因子分解系统(代表性的有rsa)、离散对数系统(代表性的有dsa)和椭圆离散对数系统(ecc)。

但是随着量子计算机的发展,经典非对称密钥加密算法将不再安全,无论加解密还是密钥交换方法,量子计算机都可以通过公钥计算得到私钥,因此目前常用的非对称密钥将在量子时代变得不堪一击。



技术实现要素:

本发明提供一种安全性更高的基于私钥池的抗量子计算mqv密钥协商方法和系统。

本发明基于私钥池的抗量子计算mqv密钥协商方法,参与方配置有密钥卡,密钥卡内存储有静态公钥池、临时私钥池、临时公钥池组以及静态私钥和密钥参数,所述临时私钥池存储有临时私钥,所述临时公钥池组包括数量与密钥卡数量相对应的临时公钥池,各临时公钥池中存储有与所述临时私钥相对应的临时公钥,所述静态公钥池中存储有与所述静态私钥相对应的静态公钥;

实施所述抗量子计算mqv密钥协商方法时,包括:

在己方生成相应的临时公钥和临时私钥,将临时公钥所对应的临时公钥池编号,用于生成临时公钥的真随机数,和静态公钥指针地址以密文形式发给对方;

接收来自对方的临时公钥池编号,用于生成临时公钥的真随机数,和静态公钥指针地址,利用临时公钥池编号和用于生成临时公钥的真随机数得到对方的临时公钥,利用静态公钥指针地址得到对方的静态公钥,并利用对方的临时公钥、静态公钥,和己方临时私钥、临时公钥、静态私钥以及密钥参数生成协商密钥。

可选的,所述参与方包括发起方和响应方,在所述发起方包括:

生成第一真随机数;

利用第一真随机数从密钥卡中获得发起方相应的第一临时私钥和第一临时公钥;

将发起方的临时公钥池编号、第一真随机数以及发起方的静态公钥指针地址以密文形式发给响应方。

可选的,所述响应方包括:

利用接收的第一真随机数结合发起方的临时公钥池编号从密钥卡得到发起方相应的第一临时公钥;

利用接收的静态公钥指针地址得到发起方的第一静态公钥;

生成第二真随机数;

利用第二真随机数从密钥卡中获得响应方相应的第二临时私钥和第二临时公钥;

相应计算出协商密钥;

将响应方的临时公钥池编号、第二真随机数以及响应方的静态公钥指针地址以密文形式发给发起方。

可选的,在所述发起方还包括:

利用接收的第二真随机数结合响应方的临时公钥池编号从密钥卡得到响应方相应的第二临时公钥;

利用接收的静态公钥指针地址得到响应方的第二静态公钥;

利用所述第二临时公钥和所述第二静态公钥相应计算出协商密钥。

可选的,在所述响应方,计算出协商密钥的方式为:

协商密钥为k且其中:

h为密钥卡中的所述密钥参数;

y为响应方的第二临时私钥;

y为响应方的第二临时公钥;

b为响应方的第二静态私钥;

x’为发起方的第一临时公钥;

a为发起方的第一静态公钥。

可选的,在所述发起方,计算出协商密钥的方式为:

协商密钥为k’且其中:

h为密钥卡中的所述密钥参数;

x为发起方的第一临时私钥;

x为发起方的第一临时公钥;

a为发起方的第一静态私钥;

y’为响应方的第二临时公钥;

b为响应方的第二静态公钥。

可选的,利用真随机数从密钥卡中获得相应的临时私钥和临时公钥的方式为:

利用真随机数通过密钥指针算法得到相应的密钥指针;

利用所述密钥指针从临时私钥池中得到临时私钥;

根据临时公钥池编号找到相应的临时公钥池,并利用密钥指针从所述临时公钥池中得到相应的临时公钥。

本发明还提供一种基于私钥池的抗量子计算mqv密钥协商系统,其特征在于,参与方配置有密钥卡,密钥卡内存储有静态公钥池、临时私钥池、临时公钥池组以及静态私钥和密钥参数,所述临时私钥池存储有临时私钥,所述临时公钥池组包括数量与密钥卡数量相对应的临时公钥池,各临时公钥池中存储有与所述临时私钥相对应的临时公钥,所述静态公钥池中存储有与所述静态私钥相对应的静态公钥;

所述基于私钥池的抗量子计算mqv密钥协商系统,包括:

第一模块,用于在己方生成相应的临时公钥和临时私钥,将临时公钥所对应的临时公钥池编号,用于生成临时公钥的真随机数,和静态公钥指针地址以密文形式发给对方;

第二模块,用于接收来自对方的临时公钥池编号,用于生成临时公钥的真随机数,和静态公钥指针地址,利用临时公钥池编号和用于生成临时公钥的真随机数得到对方的临时公钥,利用静态公钥指针地址得到对方的静态公钥,并利用对方的临时公钥、静态公钥,和己方临时私钥、临时公钥、静态私钥以及密钥参数生成协商密钥。

本发明还提供一种基于私钥池的抗量子计算mqv密钥协商系统,其特征在于,参与方配置有密钥卡,密钥卡内存储有静态公钥池、临时私钥池、临时公钥池组以及静态私钥和密钥参数,所述临时私钥池存储有临时私钥,所述临时公钥池组包括数量与密钥卡数量相对应的临时公钥池,各临时公钥池中存储有与所述临时私钥相对应的临时公钥,所述静态公钥池中存储有与所述静态私钥相对应的静态公钥;

参与方包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现所述的基于私钥池的抗量子计算mqv密钥协商方法。

本发明中,使用的密钥卡是独立的硬件隔离设备。公钥、私钥和其他相关参数均存储在密钥卡中的数据安全区,被恶意软件或恶意操作窃取密钥的可能性大大降低,也不会被量子计算机获取并破解。由于在网络中传输数据仅为计算密钥指针地址的相关参数或者静态密钥的指针地址,所以第三方获取到相关参数也毫无意义,破解该协商密钥的可能性很低。在群组中,对象间采用非对称密钥交换方式实现密钥协商,实现了通信双方的密钥共享,其他对象无法得到相应的共享密钥,保障了通信双方在群组中的通信安全。

附图说明

图1为本发明中密钥池的分布示意图;

图2为实施例的密钥协商流程图;

图3为计算私钥和公钥的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。

应该理解的是,除非本文中有明确的说明,各步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本发明实现场景为在一个非对称密码体系的群组中的任意两个对象甲、乙。本发明中的群组中每个对象都具有密钥卡,可存储大数据量的密钥,也具备处理信息的能力。群组中每个密钥卡具有多个密钥池,分别是静态公钥池、临时私钥池和临时公钥池组以及静态私钥和相关参数。临时公钥组的个数和群组内所有成员的个数相同,临时公钥池组即群组内各成员对应的公钥密钥池的集合。具体密钥卡内的分布如图1所示。本发明中,对象甲和对象乙的本地系统中都存在相应需求的算法。

密钥卡的描述可见申请号为“201610843210.6”的专利。当为移动终端时,密钥卡优选为密钥sd卡;当为固定终端时,密钥卡优选为密钥usbkey或主机密钥板卡。

与申请号为“201610843210.6”的专利相比,密钥卡的颁发机制有所不同。本专利的密钥卡颁发方为密钥卡的主管方,一般为群组的管理部门,例如某企业或事业单位的管理部门;密钥卡被颁发方为密钥卡的主管方所管理的成员,一般为某企业或事业单位的各级员工。用户端首先到密钥卡的主管方申请开户。当用户端进行注册登记获批后,将得到密钥卡(具有唯一的密钥卡id)。密钥卡存储了客户注册登记信息,还内置有身份认证协议,至少包括密钥生成算法以及认证函数,或其他与身份认证相关的算法。密钥卡中的用户侧密钥都下载自同一个密钥管理服务站,且对同一个密钥卡的主管方来说,其颁发的每个密钥卡中存储的密钥池是完全一致的。优选为,密钥卡中存储的密钥池大小可以是1g、2g、4g、8g、16g、32g、64g、128g、256g、512g、1024g、2048g、4096g等等。其容量取决于主管方对安全的要求,容量越大安全性越高。

密钥卡从智能卡技术上发展而来,是结合了真随机数发生器(优选为量子随机数发生器)、密码学技术、硬件安全隔离技术的身份认证和加解密产品。密钥卡的内嵌芯片和操作系统可以提供密钥的安全存储和密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,密钥卡成为私钥和密钥池的安全载体。每一个密钥卡都有硬件pin码保护,pin码和硬件构成了用户使用密钥卡的两个必要因素。即所谓“双因子认证”,用户只有同时取得保存了相关认证信息的密钥卡和用户pin码,才可以登录系统。即使用户的pin码被泄露,只要用户持有的密钥卡不被盗取,合法用户的身份就不会被仿冒;如果用户的密钥卡遗失,拾到者由于不知道用户pin码,也无法仿冒合法用户的身份。

密钥卡在充值密钥池时,密钥管理服务器会指定密钥卡一个群组身份,并给予群组内的id。服务器在创建一个群组时会产生与群组成员个数相同的静态公私钥对。所有的静态公钥写入到同一个文件内组成静态公钥文件,即静态公钥池。服务器会定义一个素数p,p满足p>3。并且生成两个小于p的非负整数,参数α和参数β,用于构建一个椭圆曲线e:γ2=χ3+αχ+β。另外设椭圆曲线的阶为n,以及假设h为辅助因子,该椭圆曲线的元点即基点为g。服务器会为每个群组内成员生成大量真随机书作为私钥,并组成临时私钥池,并根据相应的私钥产生相应的公钥组成对应的临时公钥池。假设临时私钥为e,则生成的临时公钥为e=eg。

在密钥卡注册时,服务器会将静态公钥文件、未分配的临时私钥池以及群组内所有临时公钥池一并存储在密钥卡内,同时将未分配的静态私钥中随机选取一个分配给该密钥卡并将对应的静态公钥指针地址存储在密钥卡内,静态公钥指针地址用于查找与私钥成对的公钥。另外,密钥卡内还被存放有己方临时公钥池的编号,以及存储有椭圆曲线域参数{p,α,β,g,n,h}。

设本系统密钥协商的对象分别为对象甲和对象乙。设对象甲对应的静态公私钥对为(a,a),对象乙对应的静态公私钥对为(b,b)

其中一实施例中,提供一种基于私钥池的抗量子计算mqv密钥协商方法,参与方配置有密钥卡,密钥卡内存储有静态公钥池、临时私钥池、临时公钥池组以及静态私钥和密钥参数,所述临时私钥池存储有临时私钥,所述临时公钥池组包括数量与密钥卡数量相对应的临时公钥池,各临时公钥池中存储有与所述临时私钥相对应的临时公钥,所述静态公钥池中存储有与所述静态私钥相对应的静态公钥;

实施所述抗量子计算mqv密钥协商方法时,包括:

在己方生成相应的临时公钥和临时私钥,将临时公钥所对应的临时公钥池编号,用于生成临时公钥的真随机数,和静态公钥指针地址以密文形式发给对方;

接收来自对方的临时公钥池编号,用于生成临时公钥的真随机数,和静态公钥指针地址,利用临时公钥池编号和用于生成临时公钥的真随机数得到对方的临时公钥,利用静态公钥指针地址得到对方的静态公钥,并利用对方的临时公钥、静态公钥,和己方临时私钥、临时公钥、静态私钥以及密钥参数生成协商密钥。

所述参与方包括发起方和响应方,协商密钥的具体流程主要分三个阶段。

第一阶段,在所述发起方包括:

生成第一真随机数;

利用第一真随机数从密钥卡中获得发起方相应的第一临时私钥和第一临时公钥;

将发起方的临时公钥池编号、第一真随机数以及发起方的静态公钥指针地址以密文形式发给响应方。

其中,利用真随机数从密钥卡中获得相应的临时私钥和临时公钥的方式为:

利用真随机数通过密钥指针算法得到相应的密钥指针;

利用所述密钥指针从临时私钥池中得到临时私钥;

根据临时公钥池编号找到相应的临时公钥池,并利用密钥指针从所述临时公钥池中得到相应的临时公钥。

第二阶段,在所述响应方包括:

利用接收的第一真随机数结合发起方的临时公钥池编号从密钥卡得到发起方相应的第一临时公钥;

利用接收的静态公钥指针地址得到发起方的第一静态公钥;

生成第二真随机数;

利用第二真随机数从密钥卡中获得响应方相应的第二临时私钥和第二临时公钥;

相应计算出协商密钥,计算出协商密钥的方式为:

协商密钥为k且其中:

h为密钥卡中的所述密钥参数;

y为响应方的第二临时私钥;

y为响应方的第二临时公钥;

b为响应方的第二静态私钥;

x’为发起方的第一临时公钥;

a为发起方的第一静态公钥。

将响应方的临时公钥池编号、第二真随机数以及响应方的静态公钥指针地址以密文形式发给发起方。

第三阶段,在所述发起方还包括:

利用接收的第二真随机数结合响应方的临时公钥池编号从密钥卡得到响应方相应的第二临时公钥;

利用接收的静态公钥指针地址得到响应方的第二静态公钥;

利用所述第二临时公钥和所述第二静态公钥相应计算出协商密钥,计算出协商密钥的方式为:

协商密钥为k’且其中:

h为密钥卡中的所述密钥参数;

x为发起方的第一临时私钥;

x为发起方的第一临时公钥;

a为发起方的第一静态私钥;

y’为响应方的第二临时公钥;

b为响应方的第二静态公钥。

以下结合附图,提供另一实施例,基于私钥池的抗量子计算mqv密钥协商方法,包括:

步骤1:对象甲(发起方)选取临时私钥并将相关参数发送至对象乙(响应方)

1.1对象甲选取临时私钥:对象甲随机生成一个真随机数ra,通过密钥指针算法fkp得到密钥指针kp1。对象甲根据该指针kp1从本地系统的临时私钥池中取出相应的私钥作为本次密钥协商的临时私钥x。假设对象甲的己方临时公钥池编号为ra。对象甲根据指针kp1和ra从本地系统的临时公钥池组中找到己方临时公钥池并取出相应的公钥作为本次密钥协商的临时公钥x。

1.2对象甲将相应参数发送到对象乙:设对象甲的静态公钥指针地址为pa。对象甲将ra、pa和ra组合生成ra|pa|ra并加密发送给对象乙。

步骤2:对象乙解密解析消息并选取临时私钥,计算得到秘密密钥,将相关参数发送至对象甲

2.1对象乙接收消息并解析:对象乙接收到来自对象甲的密钥交换的协商消息并解密得到ra’|pa’|ra’并将该消息拆分得到随机数序列ra’、甲方静态公钥指针地址pa’和甲方临时公钥池编号ra’。

2.2对象乙计算得到甲方公钥:对象乙利用拆分得到的随机数序列ra’通过相应的密钥指针算法fkp得到密钥指针kp1’。对象乙根据该指针kp1’以及甲方的临时公钥池编号ra’从本地系统的临时公钥池中取出甲方临时公钥x’。对象乙根据甲方静态公钥指针地址pa’从静态公钥池中取出甲方的静态公钥a。

2.3对象乙计算得到临时公私钥:对象乙产生一个真随机数rb,并将rb通过相应的密钥指针算法fkp得到密钥指针kp2。对象乙根据该指针kp2本地系统的临时私钥池中取出相应的私钥作为本次密钥协商的临时私钥y。假设对象乙的己方临时公钥池编号为rb。对象乙根据指针kp2和rb从本地系统的临时公钥池组中找到己方临时公钥池并取出相应的公钥作为本次密钥协商的临时公钥y。

2.4对象乙计算得到协商密钥:对象乙利用已有的参数计算得到其中对象乙通过计算得到协商密钥

2.5对象乙将相应参数发送到对象甲:设对象乙的静态公钥指针地址为pb。对象乙将rb、pb和rb组合生成rb|pb|rb并加密发送给对象甲。

步骤3:对象甲解密解析消息并计算协商密钥

3.1对象甲接收消息并解析:对象甲接收到来自对象乙的密钥交换的协商消息并解密得到rb’|pb’|rb’并将该消息拆分得到随机数序列rb’、乙方静态公钥指针地址pb’和乙方临时公钥池编号rb’。

3.2对象甲计算得到乙方公钥:对象甲利用拆分得到的随机数序列rb’通过相应的密钥指针算法fkp得到密钥指针kp2’。对象甲根据指针kp2’和rb’从本地系统的临时公钥池组中找到乙方临时公钥池并取出相应的乙方临时公钥y’。对象甲根据乙方静态公钥指针地址pa’从静态公钥池中取出乙方的静态公钥b。

3.3对象甲计算得到协商密钥:对象甲利用已有的参数计算得到其中对象甲通过计算得到协商密钥

对象甲的协商密钥演变得到:

对象乙的协商密钥演变得到:

所以对象甲和对象乙得到的协商密钥相同,密钥协商成功。

其中一实施例中,提供一种基于私钥池的抗量子计算mqv密钥协商系统,参与方配置有密钥卡,密钥卡内存储有静态公钥池、临时私钥池、临时公钥池组以及静态私钥和密钥参数,所述临时私钥池存储有临时私钥,所述临时公钥池组包括数量与密钥卡数量相对应的临时公钥池,各临时公钥池中存储有与所述临时私钥相对应的临时公钥,所述静态公钥池中存储有与所述静态私钥相对应的静态公钥;

所述基于私钥池的抗量子计算mqv密钥协商系统,包括:

第一模块,用于在己方生成相应的临时公钥和临时私钥,将临时公钥所对应的临时公钥池编号,用于生成临时公钥的真随机数,和静态公钥指针地址以密文形式发给对方;

第二模块,用于接收来自对方的临时公钥池编号,用于生成临时公钥的真随机数,和静态公钥指针地址,利用临时公钥池编号和用于生成临时公钥的真随机数得到对方的临时公钥,利用静态公钥指针地址得到对方的静态公钥,并利用对方的临时公钥、静态公钥,和己方临时私钥、临时公钥、静态私钥以及密钥参数生成协商密钥。

关于抗量子计算mqv密钥协商系统的具体限定可以参见上文中对于抗量子计算mqv密钥协商方法的限定,在此不再赘述。上述各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,即一种基于私钥池的抗量子计算mqv密钥协商系统,该计算机设备可以是终端,其内部结构可以包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现抗量子计算mqv密钥协商方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

其中一实施例中,提供一种基于私钥池的抗量子计算mqv密钥协商系统,其特征在于,参与方配置有密钥卡,密钥卡内存储有静态公钥池、临时私钥池、临时公钥池组以及静态私钥和密钥参数,所述临时私钥池存储有临时私钥,所述临时公钥池组包括数量与密钥卡数量相对应的临时公钥池,各临时公钥池中存储有与所述临时私钥相对应的临时公钥,所述静态公钥池中存储有与所述静态私钥相对应的静态公钥;

参与方包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现所述的基于私钥池的抗量子计算mqv密钥协商方法。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1