基于非对称密钥池和证书密码学的抗量子计算HTTPS通信方法和系统与流程

文档序号:19281676发布日期:2019-11-29 23:00阅读:250来源:国知局
基于非对称密钥池和证书密码学的抗量子计算HTTPS通信方法和系统与流程

本申请涉及https通信技术领域,尤其是一种基于非对称密钥池和证书密码学的抗量子计算https通信方法和系统。



背景技术:

https是指安全套接字层超文本传输协议,用于解决http协议明文传输信息的缺陷。为了数据传输的安全,https在http的基础上加入了ssl协议,ssl依靠证书来验证服务器的身份,并为浏览器和服务器之前的通信加密。https协议需要到ca申请一个用于证明服务器用途类型的证书。证书包含一对公私钥,该证书只有用于对应的服务器的时候,客户端才信任此主机。服务器和客户端之间的所有通信,都是加密的。

目前传统的通信加密和传输安全,都是依赖于复杂的数学算法。即由于目前计算机的计算能力所限,来不及在需求所在的时间段内计算出结果,因此可以说现在的数字密码体系是安全的。但是这种安全性现状已经越来越受到量子计算机的威胁。例如,针对经典密码学中的非对称密钥算法,存在专用的量子计算机算法(shor算法等)进行破解。在计算能力强大的量子计算机面前,即便是再高级的保密通信,只要是通过当前的通信手段,都会面临被破译和窃听的可能。因此,建立实际可用的整套量子通信网络方案已经是迫在眉睫的刚需。

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

现有技术存在的问题:

(1)由于量子计算机能快速通过公钥得到对应的私钥,因此现有的建立在公私钥基础之上的https通信方法容易被量子计算机破解。

(2)现有技术中,数字证书中基于公私钥的数字签名的输入和输出均可被敌方所知,在量子计算机存在的情况下,可能被推导出私钥,导致建立在数字证书基础之上的https通信系统被量子计算机破解。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种基于非对称密钥池和证书密码学的抗量子计算https通信方法和系统。

本申请提供了一种基于非对称密钥池和证书密码学的抗量子计算https通信方法,实施在服务器,所述抗量子计算https通信方法,包括:

接收来自客户端的三次握手;

响应所述三次握手,建立tcp连接,并向所述客户端返回包括服务器id的响应信息;

接收来自客户端的第一密文;所述第一密文包括第一偏移加密参数和第一网址,所述第一偏移加密参数由客户端利用第一原始加密参数减去第一偏移量计算得到,所述第一原始加密参数由客户端生成,所述第一偏移量由客户端根据第一网址计算得到,所述第一网址由客户端根据第一原文计算得到,所述第一原文为由客户端生成的会话密钥;

根据所述第一网址计算得到第一偏移量,由第一偏移量和第一偏移加密参数相加得到第一原始加密参数,根据己方的数字证书和服务器私钥计算得到第一中间参数,根据所述第一中间参数、第一网址和第一原始加密参数计算得到第一原文,即会话密钥;

生成密钥协商成功消息作为第二原文,利用所述会话密钥对所述第二原文进行计算得到消息认证码,利用所述会话密钥加密所述第二原文和消息认证码得到第二密文,向客户端发送所述第二密文;所述第二原文用于供客户端对所述消息认证码验证通过后接收并信任。

本申请提供了一种基于非对称密钥池和证书密码学的抗量子计算https通信方法,实施在客户端,所述抗量子计算https通信方法,包括:

向服务器发送三次握手;所述三次握手用于供服务器响应后建立tcp连接;

接收来自服务器的包括服务器id的响应信息;

生成会话密钥作为第一原文,根据所述第一原文计算得到第一网址,根据所述第一网址计算得到第一偏移量,生成第一原始加密参数,利用所述第一原始加密参数减去所述第一偏移量得到第一偏移加密参数,组合所述第一偏移加密参数和第一网址得到第一密文;

向服务器发送所述第一密文;所述第一网址用于供服务器计算得到第一偏移量,所述第一偏移量和第一偏移加密参数用于供服务器相加计算得到第一原始加密参数,所述第一网址和第一原始加密参数用于供服务器结合第一中间参数计算得到第一原文,即会话密钥,所述第一中间参数由服务器根据己方的数字证书和服务器私钥计算得到;

接收来自服务器的第二密文;所述第二密文由服务器利用所述会话密钥加密第二原文和消息认证码得到,所述消息认证码由服务器利用所述会话密钥对第二原文进行计算得到,所述第二原文为服务器生成的密钥协商成功消息;

利用会话密钥解密所述第二密文得到第二原文和消息认证码,对所述消息认证码进行验证,并在验证通过后接受并信任所述第二原文。

本申请提供了一种基于非对称密钥池和证书密码学的抗量子计算https通信方法,所述抗量子计算https通信方法,包括:

客户端向服务器发送三次握手;

所述服务器响应所述三次握手,建立tcp连接,并向所述客户端返回包括服务器id的响应信息;

所述客户端生成会话密钥作为第一原文,根据所述第一原文计算得到第一网址,根据所述第一网址计算得到第一偏移量,生成第一原始加密参数,利用所述第一原始加密参数减去所述第一偏移量得到第一偏移加密参数,组合所述第一偏移加密参数和第一网址得到第一密文,向服务器发送所述第一密文;

所述服务器接收来自客户端的第一密文,根据所述第一网址计算得到第一偏移量,由第一偏移量和第一偏移加密参数相加得到第一原始加密参数,根据己方的数字证书和服务器私钥计算得到第一中间参数,根据所述第一中间参数、第一网址和第一原始加密参数计算得到第一原文,即会话密钥;

所述服务器生成密钥协商成功消息作为第二原文,利用所述会话密钥对所述第二原文进行计算得到消息认证码,利用所述会话密钥加密所述第二原文和消息认证码得到第二密文,向客户端发送所述第二密文;

所述客户端接收来自服务器的第二密文,利用会话密钥解密所述第二密文得到第二原文和消息认证码,对所述消息认证码进行验证,并在验证通过后接受并信任所述第二原文。

进一步的,所述的基于非对称密钥池和证书密码学的抗量子计算https通信方法还包括:

所述服务器生成包含服务器id的数字证书请求消息;

通过人工拷贝的方式将所述数字证书请求消息拷贝至ca机构;

所述ca机构接收所述数字证书请求消息,得到服务器id,根据公开的服务器网址获得服务器公钥,将所述服务器id和服务器公钥打包得到第一组合消息,获取周期序号,并利用哈希函数作用于所述第一组合消息、所述周期序号和ca公钥得到第二中间参数,根据所述第二中间参数和ca私钥计算得到所述数字证书;

通过人工拷贝的方式将所述数字证书拷贝至所述服务器。

进一步的,所述周期序号每隔一个周期单位进行一次自加一操作,所述ca机构在周期序号进行自加一操作后更新服务器的所述数字证书;

所述ca机构更新服务器的所述数字证书,包括:

获取新的周期序号,利用哈希函数作用于所述第一组合消息、所述新的周期序号和ca公钥得到第三中间参数,根据所述第三中间参数和ca私钥计算得到新的数字证书,并将新的数字证书作为第三原文;

对所述第三原文进行签名计算得到第一签名,将所述第三原文和第一签名组合后作为第四原文,根据所述第四原文计算得到第二网址,根据所述第二网址计算得到第二偏移量,生成第二原始加密参数,利用所述第二原始加密参数减去所述第二偏移量得到第二偏移加密参数,组合所述第二偏移加密参数和第二网址得到第三密文;

向所述服务器发送所述第三密文;所述第二网址用于供服务器计算得到第二偏移量,所述第二偏移量和第二偏移加密参数用于供服务器相加得到第二原始加密参数,所述第二网址和第二原始加密参数用于供服务器结合所述第一中间参数计算得到第四原文,所述第三原文用于供服务器在验证第一签名为第三原文的签名通过后代替原来的数字证书,完成数字证书更新。

进一步的,所述客户端配置有客户端密钥卡,所述客户端密钥卡内存储有非对称密钥池;所述ca机构配置有ca密钥卡,所述ca密钥卡内存储有非对称密钥池和ca私钥;所述服务器配置有服务器密钥卡,所述服务器密钥卡内存储有非对称密钥池、服务器私钥和数字证书;所述非对称密钥池内具有多个存储单元,各存储单元中存储有网址的哈希值,以及与网址的哈希值对应的公钥。

进一步的,所述客户端根据第一原文计算得到第一网址,根据第一网址计算得到第一偏移量,包括:

取ca公钥和服务器公钥,根据所述ca公钥和服务器公钥计算得到第四中间参数,根据公式计算得到第一网址,其中v为第一网址,m为第一原文,h2为哈希函数,g为第四中间参数,r为客户端取的随机数;

利用哈希函数作用于所述第一网址得到第一哈希值,根据所述第一哈希值获取得到第一公钥,利用哈希函数作用于所述第一哈希值和第一公钥的组合得到第一偏移参数,计算公钥参数和所述第一偏移参数的乘积得到所述第一偏移量。

进一步的,所述服务器根据己方的数字证书和服务器私钥计算得到第一中间参数,根据所述第一中间参数、第一网址和第一原始加密参数计算得到第一原文,包括:

将所述服务器id和服务器公钥打包得到第一组合消息,利用哈希函数作用于所述第一组合消息得到第二哈希值;

根据公式sbob=certb+sbp′b得到第一中间参数,其中,sbob为第一中间参数,certb为数字证书,sb为服务器私钥,p′b为第二哈希值;

根据公式计算得到第一原文,其中,m为第一原文,v为第一网址,h2为哈希函数,e(,)为双线性对计算,u′为第一原始加密参数,sbob为第一中间参数。

本申请提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述的基于非对称密钥池和证书密码学的抗量子计算https通信方法的步骤。

本申请提供了一种基于非对称密钥池和证书密码学的抗量子计算https通信系统,所述抗量子计算https通信系统包括客户端、ca机构和服务器,所述客户端配置有客户端密钥卡,所述客户端密钥卡内存储有非对称密钥池;所述ca机构配置有ca密钥卡,所述ca密钥卡内存储有非对称密钥池和ca私钥;所述服务器配置有服务器密钥卡,所述服务器密钥卡内存储有非对称密钥池、服务器私钥和数字证书;所述非对称密钥池内具有多个存储单元,各存储单元中存储有网址的哈希值,以及与网址的哈希值对应的公钥;

所述客户端、ca机构和服务器通过通信网络实现所述的基于非对称密钥池和证书密码学的抗量子计算https通信方法的步骤。

本申请提供的基于非对称密钥池和证书密码学的抗量子计算https通信方法和系统,客户端发送给服务器的会话密钥被加密,并且利用密钥池中的密钥对加密参数增加了偏移量,仅有密钥卡拥有者可以恢复该偏移而得到原始加密参数,这让量子计算机在传输过程中更难以破解加密参数,从而更难以破解会话密钥,充分地保障了双方传递会话密钥的安全性。并且本申请的抗量子计算方法,对比使用对称密钥加密以抗量子计算的方法,其计算量更小。

附图说明

图1为https客户端密钥卡密钥区的结构示意图;

图2为ca机构密钥卡密钥区的结构示意图;

图3为https服务器密钥卡密钥区的结构示意图;

图4为本发明实施例提供的https建立过程流程图。

具体实施方式

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

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

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

其中一实施例中,提供一种基于非对称密钥池和证书密码学的抗量子计算https通信方法,抗量子计算https通信方法,包括:

客户端向服务器发送三次握手;

服务器响应三次握手,建立tcp连接,并向客户端返回包括服务器id的响应信息;

客户端生成会话密钥作为第一原文,根据第一原文计算得到第一网址,根据第一网址计算得到第一偏移量,生成第一原始加密参数,利用第一原始加密参数减去第一偏移量得到第一偏移加密参数,组合第一偏移加密参数和第一网址得到第一密文,向服务器发送第一密文;

服务器接收来自客户端的第一密文,根据第一网址计算得到第一偏移量,由第一偏移量和第一偏移加密参数相加得到第一原始加密参数,根据己方的数字证书和服务器私钥计算得到第一中间参数,根据第一中间参数、第一网址和第一原始加密参数计算得到第一原文,即会话密钥;

服务器生成密钥协商成功消息作为第二原文,利用会话密钥对第二原文进行计算得到消息认证码,利用会话密钥加密第二原文和消息认证码得到第二密文,向客户端发送第二密文;

客户端接收来自服务器的第二密文,利用会话密钥解密第二密文得到第二原文和消息认证码,对消息认证码进行验证,并在验证通过后接受并信任第二原文。

本实施例中客户端发送给服务器的会话密钥被加密,并且对加密参数增加了偏移量,仅有密钥卡拥有者可以恢复该偏移而得到原始加密参数,这让量子计算机在传输过程中更难以破解加密参数,从而更难以破解会话密钥,充分地保障了双方传递会话密钥的安全性。

为了进一步说明在抗量子计算https通信过程中各参与方的工作流程,以下通过实施在单侧方的方式对基于非对称密钥池和证书密码学的抗量子计算https通信方法予以描述。

在一实施例中,提供一种基于非对称密钥池和证书密码学的抗量子计算https通信方法,实施在服务器,抗量子计算https通信方法,包括:

接收来自客户端的三次握手;

响应三次握手,建立tcp连接,并向客户端返回包括服务器id的响应信息;

接收来自客户端的第一密文;第一密文包括第一偏移加密参数和第一网址,第一偏移加密参数由客户端利用第一原始加密参数减去第一偏移量计算得到,第一原始加密参数由客户端生成,第一偏移量由客户端根据第一网址计算得到,第一网址由客户端根据第一原文计算得到,第一原文为由客户端生成的会话密钥;

根据第一网址计算得到第一偏移量,由第一偏移量和第一偏移加密参数相加得到第一原始加密参数,根据己方的数字证书和服务器私钥计算得到第一中间参数,根据第一中间参数、第一网址和第一原始加密参数计算得到第一原文,即会话密钥;

生成密钥协商成功消息作为第二原文,利用会话密钥对第二原文进行计算得到消息认证码,利用会话密钥加密第二原文和消息认证码得到第二密文,向客户端发送第二密文;第二原文用于供客户端对消息认证码验证通过后接收并信任。

在一实施例中,提供一种基于非对称密钥池和证书密码学的抗量子计算https通信方法,实施在客户端,抗量子计算https通信方法,包括:

向服务器发送三次握手;三次握手用于供服务器响应后建立tcp连接;

接收来自服务器的包括服务器id的响应信息;

生成会话密钥作为第一原文,根据第一原文计算得到第一网址,根据第一网址计算得到第一偏移量,生成第一原始加密参数,利用第一原始加密参数减去第一偏移量得到第一偏移加密参数,组合第一偏移加密参数和第一网址得到第一密文;

向服务器发送第一密文;第一网址用于供服务器计算得到第一偏移量,第一偏移量和第一偏移加密参数用于供服务器相加计算得到第一原始加密参数,第一网址和第一原始加密参数用于供服务器结合第一中间参数计算得到第一原文,即会话密钥,第一中间参数由服务器根据己方的数字证书和服务器私钥计算得到;

接收来自服务器的第二密文;第二密文由服务器利用会话密钥加密第二原文和消息认证码得到,消息认证码由服务器利用会话密钥对第二原文进行计算得到,第二原文为服务器生成的密钥协商成功消息;

利用会话密钥解密第二密文得到第二原文和消息认证码,对消息认证码进行验证,并在验证通过后接受并信任第二原文。

在另一实施例中,基于非对称密钥池和证书密码学的抗量子计算https通信方法还包括:

服务器生成包含服务器id的数字证书请求消息;

通过人工拷贝的方式将数字证书请求消息拷贝至ca机构;

ca机构接收数字证书请求消息,得到服务器id,根据公开的服务器网址获得服务器公钥,将服务器id和服务器公钥打包得到第一组合消息,获取周期序号,并利用哈希函数作用于第一组合消息、周期序号和ca公钥得到第二中间参数,根据第二中间参数和ca私钥计算得到数字证书;

通过人工拷贝的方式将数字证书拷贝至服务器。

本实施例中,初始的数字证书以人工拷贝等方式进行传递,保障了信息的安全性。

在另一实施例中,周期序号每隔一个周期单位进行一次自加一操作,ca机构在周期序号进行自加一操作后更新服务器的数字证书;

ca机构更新服务器的数字证书,包括:

获取新的周期序号,利用哈希函数作用于第一组合消息、新的周期序号和ca公钥得到第三中间参数,根据第三中间参数和ca私钥计算得到新的数字证书,并将新的数字证书作为第三原文;

对第三原文进行签名计算得到第一签名,将第三原文和第一签名组合后作为第四原文,根据第四原文计算得到第二网址,根据第二网址计算得到第二偏移量,生成第二原始加密参数,利用第二原始加密参数减去第二偏移量得到第二偏移加密参数,组合第二偏移加密参数和第二网址得到第三密文;

向服务器发送第三密文;第二网址用于供服务器计算得到第二偏移量,第二偏移量和第二偏移加密参数用于供服务器相加得到第二原始加密参数,第二网址和第二原始加密参数用于供服务器结合第一中间参数计算得到第四原文,第三原文用于供服务器在验证第一签名为第三原文的签名通过后代替原来的数字证书,完成数字证书更新。

本实施例中数字证书会按照周期进行更新,未取得更新证书的服务器将难以继续进行https服务,更加保障了https通信的安全性。

在另一实施例中,客户端配置有客户端密钥卡,客户端密钥卡内存储有非对称密钥池;ca机构配置有ca密钥卡,ca密钥卡内存储有非对称密钥池和ca私钥;服务器配置有服务器密钥卡,服务器密钥卡内存储有非对称密钥池、服务器私钥和数字证书;非对称密钥池内具有多个存储单元,各存储单元中存储有网址的哈希值,以及与网址的哈希值对应的公钥。

本实施例中,密钥卡内存储非对称密钥池(公钥),对比使用对称密钥加密以抗量子计算的方法,其计算量更小。

在另一实施例中,客户端根据第一原文计算得到第一网址,根据第一网址计算得到第一偏移量,包括:

取ca公钥和服务器公钥,根据ca公钥和服务器公钥计算得到第四中间参数,根据公式计算得到第一网址,其中v为第一网址,m为第一原文,h2为哈希函数,g为第四中间参数,r为客户端取的随机数;

利用哈希函数作用于第一网址得到第一哈希值,根据第一哈希值获取得到第一公钥,利用哈希函数作用于第一哈希值和第一公钥的组合得到第一偏移参数,计算公钥参数和第一偏移参数的乘积得到第一偏移量。

本实施例中,利用密钥池中的密钥进行偏移量计算,使得仅有密钥卡拥有者可以恢复该偏移量而得到原始加密参数,从而难以破解会话内容,充分地保障了密钥更新过程的安全性。

在另一实施例中,服务器根据己方的数字证书和服务器私钥计算得到第一中间参数,根据第一中间参数、第一网址和第一原始加密参数计算得到第一原文,包括:

将服务器id和服务器公钥打包得到第一组合消息,利用哈希函数作用于第一组合消息得到第二哈希值;

根据公式sbob=certb+sbp′b得到第一中间参数,其中,sbob为第一中间参数,certb为数字证书,sb为服务器私钥,p′b为第二哈希值;

根据公式计算得到第一原文,其中,m为第一原文,v为第一网址,h2为哈希函数,e(,)为双线性对计算,u′为第一原始加密参数,sbob为第一中间参数。

需要说明的是,本申请中例如网址addrb、addrb和服务器网址addrb,在本申请中表示同一含义,即服务器网址addrb;又如第一密文c、密文c和c在本申请中表示同一含义,即第一密文c;其余名称同理。且本申请中的周期序号i、公钥scp等表述中的i、scp仅仅是为了便于区分和叙述,并不对参数本身有额外限定,例如会话密钥sessk、第一原文m中的sessk、m;其他同理。

在一实施例中,https客户端的密钥卡结构如图1所示,卡内存有非对称密钥池(公钥);ca密钥卡结构如图2所示,卡内存有非对称密钥池(公钥)和ca私钥;服务器密钥卡结构如图3所示,卡内存有非对称密钥池(公钥)和数字证书/私钥。所有的非对称密钥池(公钥)内的公钥包括ca、各服务器和各客户端的公钥。

非对称密钥池(公钥)中的每个存储单元具体存储的是公钥和网址的哈希值,即计算每个用户(包括ca、服务器和客户端)的网址的哈希值,然后根据哈希值存储公钥。并且所有用户的网址都是对外公开的,所以每个拥有密钥卡的用户都可以得到其他用户的网址并计算出哈希值,进而从密钥卡中得到其他用户的公钥。

本实施例采用与《certificate-basedencryptionandthecertificaterevocationproblem》一致的数学描述。有允许配对的生成群g1和g2,ca机构从其中的g1中取生成元p作为公钥参数,又从实数集中取随机数sc,将sc作为ca机构的私钥,将scp作为ca机构的公钥。同理ca机构可生成客户端a的公私钥sap/sa和服务器b的公私钥sbp/sb。

本实施例为https建立过程。具体流程如图4所示,文字描述如下:

1、准备工作(对应图4中的prepare1~4):

在客户端向服务器发起请求前,还有一些准备工作要做,即向ca证书颁发机构获取数字证书。为了便于描述,我们将专利中将要用的服务器称为b,客户端称为a,ca机构称为c。

1.1、服务器将包括自己身份信息idb(即服务器id)在内的请求数字证书的消息,通过人工拷贝等安全方式传给ca(certificateauthority)机构;

1.2、ca机构生成ca证书:ca机构接收到来自服务器的请求消息,将其中的idb取出,再根据公开的b的网址addrb计算出哈希值并从密钥卡中取出b的公钥sbp(服务端公钥)。ca机构将sbp、idb和其他b的一些身份信息打包并命名为第一组合消息bobinfo。然后取周期序号i(周期序号代表ca机构当前颁发证书的时间段,周期序号的值跟用户是谁无关)和自己的公钥scp(scp又被命名为q),用哈希函数h1作用于bobinfo、i和scp,得到第二中间参数pb。再根据公式certb=scpb计算得到服务器的ca证书certb。

1.3、ca机构将数字证书certb颁发给申请者,即通过人工拷贝等方式传给服务器密钥卡。

1.4、ca机构将包含所有服务器信息的密钥卡颁发给https客户端。

2、连接过程(对应图4中的1~4):

2.1、客户端发起请求:客户端通过三次握手,建立tcp连接。

2.2、服务器进行响应:服务器向客户端发送包括idb在内的响应信息。

2.3、客户端生成对称密钥并加密发送至服务器:

客户端用自己的密钥卡生成一个会话密钥sessk,令其为第一原文m。根据公开的服务器网址addrb,计算其哈希函数得到hash(addrb),根据hash(addrb)在密钥卡非对称密钥池(公钥)中取出服务器公钥sbp。将sbp、idb和其他b的一些身份信息打包并命名为第一组合消息bobinfo,用哈希函数h1作用于bobinfo得到pb’。再取周期序号i,计算ca机构的网址addrc的哈希函数hash(addrc),根据hash(addrc)在密钥卡非对称密钥池(公钥)中取出ca机构的公钥scp(ca公钥),即q,再用h1作用于i、q和bobinfo得到pb。根据公式g=e(scp,pb)e(sbp,pb’)计算得到第四中间参数g,其中e(a,b)为双线性对计算。取随机数r,令其中h2是哈希函数。将v作为第一网址,根据公式hv=hash(v)求出第一哈希值hv,用hv在密钥卡非对称密钥池(公钥)中得到其第一公钥pkv,再根据公式kv=hash(hv||pkv)得到第一偏移参数kv。根据公式u=(r-kv)p得到第一偏移加密参数u。其中p存储在密钥卡中,kv*p是一个偏移量,命名为第一偏移量,量子计算机仅能通过u计算得到r-kv,在不知道kv的情况下将无法得到r。最后根据公式计算得到第一密文c。客户端将密文c发送给服务器。

2.4、服务器获得会话密钥。

服务器接收到来自客户端的密文c。b将sbp、idb和其他属于自己的一些身份信息打包并命名为bobinfo,然后用哈希函数h1作用于bobinfo得到第二哈希值pb’。根据公式sbob=scpb+sbpb’=certb+sbpb’可以得到第一中间参数sbob,其中sb是服务器b的私钥。服务器根据v计算得到hv,并根据hv得到pkv,根据公式kv=hash(hv||pkv)得到kv。根据kv和u计算出u’=u+kv*p,即利用kv恢复偏移量而得到第一原始加密参数u'=rp。然后根据公式计算出第一原文m,即得到会话密钥sessk。

2.5、服务器对客户端回复密钥协商成功消息,并使用sessk对该消息进行消息认证码计算和加密计算,得到第二密文。客户端使用sessk解密消息后验证消息认证码。此后服务器和客户端可以使用sessk进行https通信。

3、更新证书:

3.1、周期序号自加

时间每过去一个周期单位,周期序号进行自加一操作,即i=i+1,那么相应的ca机构颁发给服务器的数字证书也需要重新更新。

3.2、ca机构更新颁发给服务器的证书

ca机构根据自加后的i和原来的bobinfo生成新的数字证书。ca机构取新的周期序号i和自己的公钥scp,用哈希函数h1作用于bobinfo、i和scp,得到第三中间参数pb1。再根据公式certb1=scpb1计算得到新的服务器数字证书certb1。

3.3、ca机构对新的数字证书进行签名加密并发送给服务器

ca机构将scp、包括自己的id(即idc)和其他身份信息在内的消息命名为cinfo,用哈希函数h1作用于cinfo得到pc’,再根据公式sc=scpc+scpc’=certc+scpc’,其中certc为ca机构对自己颁发的数字证书,而sc将作为签名密钥。ca机构将certb1作为第三原文,命名为m。用哈希函数h1作用于i、scp和cinfo得到pc。取随机数t,根据公式u2=tpc计算出u2,根据公式u3=tpc’计算出u3,根据公式h=h3(m,u2,u3)计算出h,根据公式w=(t+h)sc=(t+h)(scpc+scpc’)计算出w,再根据公式σ=(u2,u3,w)得到第一签名σ。本实施例所用基于证书的数字签名方法的数学原理和流程与参考文献《acertificatebasedsignaturescheme》相同。

ca机构将m||σ作为将要加密发送的对象,命名为第四原文m1,然后用bobinfo作为参数来加密m1:用哈希函数h1作用于bobinfo得到pb’,根据公式g=e(scp,pb)e(sbp,pb’)计算得到参数g。取随机数r1,令将v1作为第二网址,根据公式hv1=hash(v1)求出hv1,用hv1在密钥卡非对称密钥池(公钥)中得到其公钥pkv1,再根据公式kv1=hash(hv1||pkv1)得到kv1。根据公式u1=(r1-kv1)p得到第二偏移加密参数u1。最后根据公式计算得到第三密文c1,即组合u1和v1得到c1。ca机构将密文c1发送给服务器。

3.4、服务器得到更新后的数字证书

服务器接收到来自ca机构的密文c1。服务器根据v1计算得到hv1,并根据hv1得到pkv1,根据公式kv1=hash(hv1||pkv1)得到kv1。根据kv1和u1计算出第二原始加密参数u1’=u1+kv1*p。由2.4中计算得到的sbob,根据公式计算出第四原文m1,即得到m||σ。

服务器需要验证σ是m的签名。首先用3.3中的方法,根据公式h’=h3(m,u2,u3)计算出h’,根据公式k1=e(scp,u2+h’*pc)e(scp,u3+h’*pc’)计算出k1,根据公式k2=(p,w)计算出k2。比较k1和k2的大小,如果不相等,则服务器扔掉收到的消息,此次更新数字证书失败,并将数字证书更新失败的结果告知ca机构;如果相等则说明σ是m的签名,即第三原文m(也就是数字证书certb1)在传输过程中没有被修改,且证实了发送方的身份。在相等的前提下,服务器用更新后的certb1代替之前保存的数字证书certb,数字证书更新成功。

3.5、当时间每过去一个周期,i都会进行自加一操作,然后进行以上3.2~3.4的步骤。

本实施例就每个步骤而言可视为针对前述相应的实施例,就所有步骤而言也可视为前述相应实施例的结合。

本实施例中的客户端、服务器以及ca机构均配备有密钥卡,使用密钥卡存储公钥和私钥,密钥卡是独立的硬件设备,被恶意软件或恶意操作窃取密钥的可能性大大降低。同时,所有用户需要根据网址的哈希函数计算结果才能取出对应的公钥,保证量子计算机无法得到用户公钥,进而无法得到对应的私钥,因此降低被量子计算机破解风险。

另外,客户端发送给服务器的会话密钥被加密,并且利用密钥池中的密钥对加密参数增加了偏移量,仅有密钥卡拥有者可以恢复该偏移而得到原始加密参数,这让量子计算机在传输过程中更难以破解加密参数,从而更难以破解会话密钥,充分地保障了双方传递会话密钥的安全性。值得指出的是本实施例提供的抗量子计算方法,对比使用对称密钥加密以抗量子计算的方法,其计算量更小。

进一步本实施例中的数字证书会按照周期进行更新,未取得更新证书的服务器将难以继续进行https服务,更加保障了https通信的安全性。基于如前技术特点,即使在量子计算机存在的情况下,也难以破解https通信。

在另一实施例中,提供一种计算机设备,即基于非对称密钥池和证书密码学的抗量子计算https通信系统,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现基于非对称密钥池和证书密码学的抗量子计算https通信方法的步骤。

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

在另一实施例中,提供一种基于非对称密钥池和证书密码学的抗量子计算https通信系统,抗量子计算https通信系统包括客户端、ca机构和服务器,客户端配置有客户端密钥卡,客户端密钥卡内存储有非对称密钥池;ca机构配置有ca密钥卡,ca密钥卡内存储有非对称密钥池和ca私钥;服务器配置有服务器密钥卡,服务器密钥卡内存储有非对称密钥池、服务器私钥和数字证书;非对称密钥池内具有多个存储单元,各存储单元中存储有网址的哈希值,以及与网址的哈希值对应的公钥;

客户端、ca机构和服务器通过通信网络实现基于非对称密钥池和证书密码学的抗量子计算https通信方法的步骤。

关于基于非对称密钥池和证书密码学的抗量子计算https通信系统的具体限定可以参见上文中对于基于非对称密钥池和证书密码学的抗量子计算https通信方法的限定,在此不再赘述。

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

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

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