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

文档序号:17658675发布日期:2019-05-15 22:14阅读:258来源:国知局

本发明涉及安全通信领域,尤其是基于私钥池的抗量子计算共享密钥协商方法和系统。



背景技术:

国际互联网的广泛应用使得远在世界各个角落的互不相识的人们可以快速交换信息,共享信息资源。在交换的过程中,人们并不总是希望自己发出的信息被所有人获悉,出于种种考虑,发出信息的人只希望所发出的信息被与此有关的人获悉。为此人们使用密码对自己所发出的信息进行加密,只有配有相同密码的人才能解密信息。另外,在通过互联网把全球连接在一个如此广泛的网络世界的时代,出于全球电子商务和电子贸易的目的,人们需要使用统一的密码进行信息加密。因此在1975年公布的美国数据加密标准des。作为传统密码体制的des算法,使用时通信双方必须预先分配相同的密钥并妥善保管,在没有专门的密钥管理机构时,互不认识的通信双方如何预先得到所需的密钥,如何识别对方的身份,是一个非常重要的问题。这个问题可以归结到如何授权对方成为自己本次通信的唯一合法的通信伙伴,使其具有合法的权利和能力解密自己所发出去的密文。

needham–schroeder公钥协议就是在这样的背景下应运而生,needham–schroeder公钥协议是基于kdc的。needham–schroeder公钥协议是使用kdc实现认证的经典协议,主要功能是完成身份的双向认证并协商共享密钥,具有极强的安全性和机密性。

量子计算机在密码破解上有着巨大潜力。当今主流的非对称(公钥)加密算法,如rsa加密算法,大多数都是基于大整数的因式分解或者有限域上的离散对数的计算这两个数学难题。它们的破解难度也就依赖于解决这些问题的效率。传统计算机上,要求解这两个数学难题,花费时间为指数时间(即破解时间随着公钥长度的增长以指数级增长),这在实际应用中是无法接受的。而为量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,从而为rsa、离散对数加密算法的破解提供可能。

现有技术存在的问题:

1.现有技术中,由于量子计算机能快速通过公钥得到对应的私钥,因此基于公私钥的密钥协商方法容易被量子计算机破解。

2.needham–schroeder公钥协议协商时需要密钥中心的参与,因此实际使用中有所不便,流程繁琐。



技术实现要素:

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

基于私钥池的抗量子计算共享密钥协商方法,参与方均配置有密钥卡,密钥卡内存储有非对称公钥密钥池和非对称私钥密钥池,所有参与方的非对称公钥密钥池内存储有1~n号参与方的公钥池,所述非对称私钥密钥池包括n个私钥池,每个参与方的密钥卡内存储其中一个私钥池;

所述抗量子计算共享密钥协商方法包括:

在己方取己方真随机数,利用对方的公钥加密己方真随机数和己方的身份标识,并将加密结果发给对方;

接收对方的加密结果,利用己方的私钥解密加密结果,利用己方真随机数和对方真随机数,生成共享密钥。

以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。

可选地,所述参与方包括发起方和响应方,在所述发起方进行如下步骤:

取非对称密钥指针随机数,结合响应方公钥池参数,得到响应方公钥;

取一个真随机数,利用响应方公钥加密真随机数和发起方身份标识,得到第一密文;

将非对称密钥指针随机数和第一密文发送给响应方。

可选地,在所述响应方进行如下步骤:

接收发起方消息,利用非对称密钥指针随机数和响应方身份标识从响应方的私钥池中取出响应方私钥;

利用响应方私钥解密第一密文,得到发起方真随机数和发起方公钥池参数;

取非对称密钥指针随机数,并结合发起方公钥池参数,得到发起方公钥;

取一个真随机数,利用发起方公钥对发起方真随机数、响应方真随机数和响应方身份标识进行加密,得到第二密文;

将非对称密钥指针随机数和第二密文发送给发起方。

可选地,还包括在所述发起方进行如下步骤:

接收非对称密钥指针随机数和第二密文,根据非对称密钥指针随机数从发起方的私钥池中取出发起方私钥;

利用发起方私钥解密第二密文,得到发起方真随机数、响应方真随机数和响应方身份标识;

利用响应方密钥加密响应方真随机数和发起方身份标识,得到第三密文;

将非对称密钥指针随机数和第三密文,发送给响应方。

可选地,还包括在所述发起方进行如下步骤:

接收非对称密钥指针随机数和第三密文,利用响应方私钥解密第三密文,得到响应方真随机数和发起方身份标识。

可选地,利用fn(na,nb)=na⊕nb生成共享密钥,其中na为发起方真随机数,nb为响应方真随机数。

可选地,所述公钥池参数包括公钥池起始位置和公钥池大小。

可选地,在非对称公钥密池和私钥池中分别存入公钥和私钥的步骤包括:

取一个非对称密钥指针随机数r,利用非对称密钥指针函数fkp作用于非对称密钥指针随机数r和参与方对应的公钥池大小s,得到私钥指针kp;

在私钥指针kp指向私钥池中的对应位置处存入私钥sk;

利用私钥指针kp和参与方对应的公钥池起始位置,计算得到公钥指针kpp;

在公钥指针kpp指向非对称公钥密池中的对应位置处存入公钥pk。

本发明还提供一种基于私钥池的抗量子计算共享密钥协商系统,参与方均配置有密钥卡,密钥卡内存储有非对称公钥密钥池和非对称私钥密钥池,所有参与方的非对称公钥密钥池内存储有1~n号参与方的公钥池,所述非对称私钥密钥池包括n个私钥池,每个参与方的密钥卡内存储其中一个私钥池;

所述抗量子计算共享密钥协商系统包括:

第一模块,用于在己方取己方真随机数,利用对方的公钥加密己方真随机数和己方的身份标识,并将加密结果发给对方;

第二模块,用于接收对方的加密结果,利用己方的私钥解密加密结果,利用己方真随机数和对方真随机数,生成共享密钥。

本发明还提供一种基于私钥池的抗量子计算共享密钥协商系统,参与方均配置有密钥卡,密钥卡内存储有非对称公钥密钥池和非对称私钥密钥池,所有参与方的非对称公钥密钥池内存储有1~n号参与方的公钥池,所述非对称私钥密钥池包括n个私钥池,每个参与方的密钥卡内存储其中一个私钥池;

各参与方包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现权利要求1~8任一项所述的基于私钥池的抗量子计算共享密钥协商方法。

本发明中,使用密钥卡存储公钥、私钥,并且每个用户对应一组公钥和私钥,根据非对称密钥指针随机数才能取出密钥卡中的公钥和私钥。密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥可能性大大降低。由于量子计算机无法得到明文公钥和对应的私钥,因此该方案的共享密钥协商方法不容易被量子计算机破解。同时,该方法大大简化了needham–schroeder公钥协议的共享密钥协商流程。

附图说明

图1为本发明中使用的签名者密钥卡内部结构图;

图2为本发明中使用的非对称密钥池(公钥池)组成结构图;

图3为本发明中非对称密钥指针随机数和公钥/私钥的关系图。

具体实施方式

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

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

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

基于私钥池的抗量子计算共享密钥协商方法,参与方均配置有密钥卡,密钥卡内存储有非对称公钥密钥池和非对称私钥密钥池,所有参与方的非对称公钥密钥池内存储有1~n号参与方的公钥池,所述非对称私钥密钥池包括n个私钥池,每个参与方的密钥卡内存储其中一个私钥池;

所述抗量子计算共享密钥协商方法包括:

在己方取己方真随机数,利用对方的公钥加密己方真随机数和己方的身份标识,并将加密结果发给对方;

接收对方的加密结果,利用己方的私钥解密加密结果,利用己方真随机数和对方真随机数,生成共享密钥。

在其中一个实施例中,所述参与方包括发起方和响应方,在所述发起方进行如下步骤:

取非对称密钥指针随机数,结合响应方公钥池参数,得到响应方公钥;

取一个真随机数,利用响应方公钥加密真随机数和发起方身份标识,得到第一密文;

将非对称密钥指针随机数和第一密文发送给响应方。

在其中一个实施例中,在所述响应方进行如下步骤:

接收发起方消息,利用非对称密钥指针随机数和响应方身份标识从响应方的私钥池中取出响应方私钥;

利用响应方私钥解密第一密文,得到发起方真随机数和发起方公钥池参数;

取非对称密钥指针随机数,并结合发起方公钥池参数,得到发起方公钥;

取一个真随机数,利用发起方公钥对发起方真随机数、响应方真随机数和响应方身份标识进行加密,得到第二密文;

将非对称密钥指针随机数和第二密文发送给发起方。

在其中一个实施例中,还包括在所述发起方进行如下步骤:

接收非对称密钥指针随机数和第二密文,根据非对称密钥指针随机数从发起方的私钥池中取出发起方私钥;

利用发起方私钥解密第二密文,得到发起方真随机数、响应方真随机数和响应方身份标识;

利用响应方密钥加密响应方真随机数和发起方身份标识,得到第三密文;

将非对称密钥指针随机数和第三密文,发送给响应方。

在其中一个实施例中,还包括在所述发起方进行如下步骤:

接收非对称密钥指针随机数和第三密文,利用响应方私钥解密第三密文,得到响应方真随机数和发起方身份标识。

在其中一个实施例中,利用fn(na,nb)=na⊕nb生成共享密钥,其中na为发起方真随机数,nb为响应方真随机数。

在其中一个实施例中,所述公钥池参数包括公钥池起始位置和公钥池大小。

在其中一个实施例中,在非对称公钥密池和私钥池中分别存入公钥和私钥的步骤包括:

取一个非对称密钥指针随机数r,利用非对称密钥指针函数fkp作用于非对称密钥指针随机数r和参与方对应的公钥池大小s,得到私钥指针kp;

在私钥指针kp指向私钥池中的对应位置处存入私钥sk;

利用私钥指针kp和参与方对应的公钥池起始位置,计算得到公钥指针kpp;

在公钥指针kpp指向非对称公钥密池中的对应位置处存入公钥pk。

下面结合附图对本发明做详细描述。

如图3所示,本发明中的公钥和私钥存储在密钥卡的密钥池里,对应的方法是:随机生成一对公钥/私钥,分别为pk/sk;用户取一个非对称密钥指针随机数r,用一个非对称密钥指针函数fkp作用于r和s(s为单个用户对应的公钥池的大小),得到私钥指针kp,再将kp指向密钥卡内的私钥池得到一个位置,在该位置存入私钥sk;让kp加上kps(kps为当前用户公钥池起始位置,可为kps1到kpsn中的某一个)得到kpp,用kpp指向密钥卡内的公钥池得到一个位置,在该位置存入公钥pk。相应的,用户也可以根据上述方法利用r、s和kps从密钥卡中取出sk和pk。

如图1、图2所示,本发明中密钥卡里有非对称密钥池(公钥池)和非对称密钥池(私钥池)。其中公钥池内部又分为第1用户公钥池、第2用户公钥池、……、第n用户公钥池,n个公钥池起始位置分别为kps1,kps2,……kpsn,大小分别为s1,s2,……sn。设第n用户的id为idn,且idn内包含了kpsn和sn的信息,以便其他人使用。具体的关系是:将id分为idp和ids,根据公式kps=fp(idp)和s=fs(ids)可以得到相应的kps和s。例如,fp可以为fp(x)=a*x+b,其中a和b为未公开的且所有密钥卡共享的函数参数。fs可以是类似fp的函数,只是参数不同。私钥池与公钥池组成类似,并且第n(1<=n<=n)用户的公钥池与第n用户的私钥池一一对应。n个私钥池的大小也分别为s1,s2,……sn。不同的地方在于每个用户拥有相同的公钥池,即所有的公钥池;拥有不同的私钥池,即每个用户自己的私钥池。

设实施例中的用户为a和b,a和b各自从颁发方得到密钥卡,a的id为ida,b的id为idb。

1、a发送请求消息给b

a向管理服务器请求获得idb,或者直接向b申请得到idb,或者从网络共享地址获取到idb。a从中得到kpsb和sb。a取非对称密钥指针随机数rb,根据rb、sb和kpsb从密钥卡的公钥池中取出b的公钥pkb,然后取一个真随机数na,将na和ida一起用pkb加密得到{na||ida}pkb,再将生成的消息rb||{na||ida}pkb发送给b。

2、b回复消息给a

b收到a发送过来的消息rb||{na||ida}pkb后,根据rb和idb从密钥卡的私钥池中获取自己的私钥skb,用skb解密{na||ida}pkb得到na和ida。从ida中计算得到a的kpsa和sa。

b取非对称密钥指针随机数ra,根据ra、sa和kpsa从密钥卡的公钥池中取出a的公钥pka。b取一个真随机数nb,将na、nb和idb一起加密得到{na||nb||idb}pka,再将生成的消息ra||{na||nb||idb}pka发送给a。

3、a发送确认消息给b

a收到b发送过来的消息ra||{na||nb||idb}pka后,根据ra从密钥卡的私钥池中获取自己的私钥ska,用ska解密{na||nb||idb}pka得到na、nb和idb。a确认自己发送的消息被b收到了。

a用pkb加密nb和ida得到{nb||ida}pkb,将生成的消息rb||{nb||ida}pkb发送给b。

4、b收到a的确认消息

b收到a发送过来的消息rb||{nb||ida}pkb后,用skb解密{nb||ida}pkb得到nb和ida。b确认自己发送给a的消息被a接收到了。

5、a和b利用fn(na,nb)作为共享密钥进行后续身份认证、消息认证或者加解密通信。例如,fn可以为异或函数,即fn(na,nb)=na⊕nb。

其中一实施例中,提供一种基于私钥池的抗量子计算共享密钥协商系统,参与方均配置有密钥卡,密钥卡内存储有非对称公钥密钥池和非对称私钥密钥池,所有参与方的非对称公钥密钥池内存储有1~n号参与方的公钥池,所述非对称私钥密钥池包括n个私钥池,每个参与方的密钥卡内存储其中一个私钥池;

所述抗量子计算共享密钥协商系统包括:

第一模块,用于在己方取己方真随机数,利用对方的公钥加密己方真随机数和己方的身份标识,并将加密结果发给对方;

第二模块,用于接收对方的加密结果,利用己方的私钥解密加密结果,利用己方真随机数和对方真随机数,生成共享密钥。

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

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

其中一实施例中,提供一种基于私钥池的抗量子计算共享密钥协商系统,参与方均配置有密钥卡,密钥卡内存储有非对称公钥密钥池和非对称私钥密钥池,所有参与方的非对称公钥密钥池内存储有1~n号参与方的公钥池,所述非对称私钥密钥池包括n个私钥池,每个参与方的密钥卡内存储其中一个私钥池;

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

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

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

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