一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于CA和国密算法的抗量子计算HTTPS通信方法及系统与流程

2022-07-22 20:54:20 来源:中国专利 TAG:

基于ca和国密算法的抗量子计算https通信方法及系统
技术领域
1.本发明涉及抗量子计算领域,尤其一种基于ca和国密算法的抗量子计算https通信方法及系统。


背景技术:

2.https是指安全套接字层超文本传输协议,用于解决http协议明文传输信息的缺陷。为了数据传输的安全,https在http的基础上加入了ssl协议,ssl依靠证书来验证服务器的身份,并为浏览器和服务器之前的通信加密。https协议需要到ca申请一个用于证明服务器用途类型的证书。证书包含一对公私钥,该证书只有用于对应的服务器的时候,客户端才信任此主机。服务器和客户端之间的所有通信,都是加密的。
3.目前传统的通信加密和传输安全,都是依赖于复杂的数学算法。即由于目前计算机的计算能力所限,来不及在需求所在的时间段内计算出结果,因此可以说现在的数字密码体系是安全的。但是这种安全性现状已经越来越受到量子计算机的威胁。例如,针对经典密码学中的非对称密钥算法,存在专用的量子计算机算法(shor算法等)进行破解。在计算能力强大的量子计算机面前,即便是再高级的保密通信,只要是通过当前的通信手段,都会面临被破译和窃听的可能。因此,建立实际可用的整套量子通信网络方案已经是迫在眉睫的刚需。
4.现有技术存在的问题:
5.现有的基于ca的https系统中,由ca为https服务器颁发数字证书,https客户端通过数字证书与https服务器进行通信,但是该系统无法实现抗量子计算的功能。现有技术中,为了对抗量子计算机的攻击,有两种方式用于https系统的抗量子计算。一种方式是用qkd得到的量子密钥或者量子密钥卡中的量子随机数密钥对https系统进行安全保护,但缺点是对称密钥管理复杂、存储量大、需要定期更新、无法进行数字签名。另一种方式是对https系统的各成员颁发非对称密钥池(申请号为“201910034536.8”的专利),并实现基于预颁发密钥池的保密通信,但缺点是密钥池颁发流程麻烦,密钥池占据较大存储空间、容易被敌方盗取;另一种方式(申请号为“202020815697.9”的专利)中,需要额外部署一个基于id密码学的密钥管理服务器,改变了传统ca的部署方式,由于id密码学涉及到较为复杂的双线性对运算,引入了新的不确定性,增加了系统复杂性。
6.量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,因此,现有国密算法中的sm2无法抗量子计算,
7.现有技术中抗量子计算https通信系统主要采用rsa算法,不符合国家密码局监管要求。


技术实现要素:

8.针对相关技术中的问题,本发明提出一种基于ca和国密算法的抗量子计算https
通信方法及系统,以克服现有相关技术所存在的上述技术问题。
9.为此,本发明采用的具体技术方案如下:
10.一种基于ca和国密算法的抗量子计算https通信方法,该方法包括以下步骤:
11.s1、服务器将自己的公钥和身份信息通过安全方式传给证书授权中心ca;
12.s2、ca为服务器生成并颁发数字证书;
13.s3、客户端发起通信请求;
14.s4、服务器发送数字证书及认证挑战值;
15.s5、客户端通过ca的公钥对数字证书进行验证;
16.s6、验证通过后,客户端生成认证应答值、随机密钥并利用国密算法加密后发送至服务器;
17.s7、服务器获取随机密钥,利用随机密钥与随机数加密进行超文本传输安全协议https通信;
18.所述认证挑战值为服务器生成的随机数;
19.所述数字证书的内容包括证书信息、颁发者信息、持有者信息、使用国密算法和ca的对称密钥加密服务器公钥得到的第一密文和ca签名;
20.所述数字证书为抗量子计算数字证书;
21.所述ca的对称密钥可利用ca的公钥以及数字证书生效时间利用国密算法计算得到;
22.所述认证应答值为服务器公钥和认证挑战值通过国密算法计算得到。
23.所述ca签名为使用ca的公钥、数字证书生效时间对签名信息一用第四国密算法对称加密得到签名信息二,所述签名信息一可使用ca的私钥对消息进行第二国密签名算法计算得到,所述消息由证书信息、颁发者信息、持有者信息通过第三国密算法计算得到。
24.所述签名信息一包含第一签名分量和第二签名分量,所述签名信息二包含第二签名分量和第三签名分量,所述第三签名分量为ca的对称密钥对第一签名分量进行第四国密算法对称加密后的值。
25.可选地,s5中所述验证方式包括ca签名验证和有效期验证,所述ca签名验证是根据ca的对称密钥解密第三签名分量得到第一签名分量从而得到签名信息一,再使用ca的公钥验证签名信息一。
26.客户端利用ca的对称密钥解密第一密文得到服务器公钥,利用匹配的抗量子计算密钥卡生成随机密钥,使用服务器公钥采用第二国密加密算法加密随机密钥得到第二密文,利用第四国密算法和认证应答值对称加密第二密文得到第三密文,s6中所述客户端发送第三密文至服务器。
27.所述第二密文包含第一密文分量、第二密文分量和第三密文分量,所述第三密文包含第四密文分量、第二密文分量和第三密文分量,所述第四密文分量为认证应答值对第一密文分量进行第四国密算法对称加密后的值。
28.优选地,s7中所述服务器获取随机密钥的方式可以是根据服务器公钥和认证挑战值计算得到认证应答值,使用认证应答值解密第四密文分量得到第一密文分量,通过第一密文分量、第二密文分量和第三密文分量得到第二密文,使用服务器私钥解密第二密文得到随机密钥。
29.优选地,所述第三国密算法可为sm3算法,所述第四国密算法可为sm4算法,所述第二国密加密算法是使用公钥的sm2加密算法,所述第二国密签名算法是使用私钥的sm2签名算法。
30.一种基于ca和国密算法的抗量子计算https通信系统,用以实现上述于ca和国密算法的抗量子计算https通信方法,该系统包括证书颁发机构、服务器和客户端,所述证书颁发机构、所述服务器和所述客户端具有抗量子计算密钥卡;
31.其中,所述证书颁发机构的抗量子计算密钥卡内部存储有自身公私钥;
32.所述服务器的抗量子计算密钥卡内部存储有证书颁发机构的公钥、自身公私钥、自身的数字证书;
33.所述客户端的抗量子计算密钥卡内部存储有证书颁发机构的公钥;
34.所述抗量子计算密钥卡具有不可拆解特性,可实现拆解即自毁。
35.发明的有益效果为:
36.本专利实现了基于ca的抗量子计算的https系统。本系统避免采用了具有诸多缺陷的对称密钥方案,无需使用预颁发非对称密钥池,仅需要预颁发少量密钥即可实现抗量子计算的安全通信,颁发、更新流程简单;https系统各成员的密钥量较少,因此密钥均存储于各成员的安全芯片中,无法被窃取,且不占用密钥池所需的存储空间,也没有增加ca所维护的密钥量;不需要部署额外的基于id密码学的密钥管理服务器,没有改变传统ca的部署方式,不会因部署额外的基于id密码学的密钥管理服务器引入新的不确定性或增加系统复杂性。
37.本专利采用国密算法对sm2加密算法加密结果进行了再次对称加密,在https中增加了服务器对客户端的挑战应答认证,通过将认证应答值作为密钥的方式,既不需要单独传递认证应答值,没有增加https的流程和数据量,又实现了sm2算法的抗量子计算。
38.本专利不使用rsa算法,而使用国家密码局认定的国产密码算法sm2、sm3、sm4等实现抗量子计算,符合国家密码管理局的要求。
附图说明
39.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1是根据本发明实施例的一种基于ca和国密算法的抗量子计算https通信方法的流程图。
具体实施方式
41.为进一步说明各实施例,本发明提供有附图,这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理,配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点,图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
42.现结合附图和具体实施方式对本发明进一步说明,如图1所示,根据本发明的一个
实施例,提供了一种基于ca和国密算法的抗量子计算https通信方法。本专利中,公私钥算法为sm2算法,哈希算法为sm3算法,对称加密算法为sm4算法。
43.本专利中,https系统结构如图1所示,包括ca、服务器和客户端。其中,ca可以是对公众服务的ca,也可以是公司、家庭内部所部署的私有ca。各成员均有匹配的抗量子计算密钥卡,抗量子计算密钥卡具有不可拆解特性,可实现拆解即自毁,优选为,密钥卡内具有安全芯片来实现不可拆解特性。服务器密钥卡内部存储有ca系统的公钥pkca、本密钥卡公私钥pk、sk、本密钥卡的数字证书cert;客户端密钥卡内部仅存储有pkca;ca系统密钥卡具有公私钥pkca、skca,且受到密钥卡的保护。
44.步骤1:获取ca证书
45.服务器需要从ca证书颁发机构处获取自己的数字证书。
46.1.服务器将自己的公钥pk和身份信息通过人工拷贝等安全方式传给ca(certificateauthority)机构(对应图1中步骤

)。其中,pk可表示为pk=(pkx,pky);
47.2.ca机构为服务器生成数字证书cert,证书内容包括:
48.①
证书信息:即证书的版本号、序列号及有效期(含证书的生效时间t)等;
49.②
颁发者信息:即ca的名称;
50.③
持有者信息:即服务器的名称、支持的公钥算法等;
51.④
公钥:此部分内容为使用kca对服务器的公钥pk进行加密得到的{pk}kca。其中,kca通过对ca的公钥pkca以及t进行组合计算得到,例如可表示为kca=hash(pkcax||pkcay||t),hash(*)表示使用sm3算法对*进行计算,t表示数字证书生效时间。
52.⑤
ca签名:此部分内容为使用ca的私钥skca对m进行签名得到的sig(m,skca,t,pkca)=(sigr’,sigs),sig(m,skca,t,pkca)=(sigr’,sigs)表示为使用sm4算法对称加密的sm2签名算法。其中,sm2签名算法sig
sm2
(m,sk)=(sigr,sigs)表示使用私钥sk对m进行sm2签名计算得到两个签名结果分量sigr和sigs。其中,m为证书前三项(即证书信息、颁发者信息、持有者信息)的通过sm3算法得到的摘要,sk为签名方的sm2私钥。根据sm2签名算法的定义,sigr由签名对象和一个随机的椭圆曲线点计算而来,容易被量子计算机破解得到该椭圆曲线点的私钥,从而影响sigs的安全性,进一步得到sk,因此sigr需要加密。使用sm4算法对称加密的sm2签名算法,表示为sig(m,sk,t,pkca)=(sigr’,sigs),其中,sk为签名方私钥;t表示数字证书生效时间;pkca为ca机构的公钥,可表示为pkca=(pkcax,pkcay);sigr’为用双方共享的对称密钥kca对sigr进行sm4对称加密后的值,可表示为sigr’={sigr}kca;kca通过对ca的公钥pkca以及t进行组合利用国密算法加密计算得到,可表示为kca=hash(pkcax||pkcay||t)。
53.3.ca机构将数字证书cert颁发给服务器(对应图1中步骤

),ca机构颁发的ca证书为抗量子计算数字证书。
54.步骤2:通信
55.1.客户端发起请求(对应图1中步骤

):客户端(比如常用的服务器)通过三次握手,与服务器建立tcp(传输控制协议)连接。
56.2.服务器发送数字证书(对应图1中步骤

):服务器向客户端发送从ca机构处获取的证书cert,同时发送的还包括服务器生成的随机数rand作为认证挑战值。
57.3.客户端通过ca的公钥pkca对cert进行验证:客户端本地的抗量子计算密钥卡中
存储有pkca,根据pkca和证书生效时间t计算得到kca=hash(pkcax||pkcay||t),使用kca解密sigr’得到sigr,使用pkca验证签名sig
sm2
(m,skca)=(sigr,sigs)是否正确。若正确则证明该证书为ca所签发。随后验证该数字证书是否在有效期内,若验证通过,则信任该数字证书。
58.4.生成对称密钥并加密发送至服务器(对应图1中步骤

):客户端信任服务器的证书cert后,根据kca对第四部分进行解密得到服务器的公钥pk。根据匹配的密钥卡生成随机密钥kab,再使用pk和rand用如下所述的加密方法加密密钥kab得到enc(kab,pk,rand)=(encr’,encm,ench)。使用服务器公钥pk对kab进行sm2加密计算得到三个加密结果分量encr、encm和ench,上述结果可表示为enc
sm2
(kab,pk)=(encr,encm,ench),pk可表示为pk=(pkx,pky),根据sm2加密算法的定义,encr为一个随机的椭圆曲线点,容易被量子计算机破解得到其私钥,从而影响加密消息的安全性,因此encr需要加密。因此,使用sm4算法对称加密的sm2加密算法,可表示为enc(kab,pk,rand)=(encr’,encm,ench),rand为从服务器收到的认证挑战值;encr’为使用双方共享的对称密钥k对encr进行sm4对称加密后的值,可表示为encr’={encr}k,k通过对服务器公钥pk以及rand进行组合计算得到,可表示为k=hash(pkx||pky||rand),hash(pkx||pky||rand)表示使用sm3算法对pkx||pky||rand进行计算。k同时作为认证应答值以及保护sm2算法的sm4密钥;
59.将enc(kab,pk,rand)发送至服务器。
60.5.服务器获取kab:服务器根据自己的公钥pk和rand计算得到k=hash(pkx||pky||rand),使用k对encr’进行解密得到encr,使用sk解密enc
sm2
(kab,pk)=(encr,encm,ench)得到kab,如解密成功则信任kab,并且证明该客户端为本组织内的成员。其理由在于,本组织外的客户端不拥有pkca,将无法完成对服务器的抗量子计算加密消息传输并被服务器解密成功:本组织外的客户端不拥有pkca,将无法得到kca并从证书中解密获取pk,从而导致无法加密;即使本组织外的客户端通过不合理的途径获取到了pk,并可以得到enc
sm2
(kab,pk)=(encr,encm,ench),因为该客户端不拥有pkca,将无法产生正确的认证应答值,也会因为没有正确的认证应答值作为密钥来加密得到正确的encr’,从而导致服务器解密失败。因此,通过将认证应答值作为密钥的方式,能够完成对服务器的抗量子计算加密消息传输并被服务器解密成功的必为本组织内的成员。同时,通过将认证应答值作为密钥的方式,既不需要单独传递认证应答值,又实现了sm2算法的抗量子计算。至此服务器和客户端都获取了由客户端生成的随机密钥kab,可使用该密钥与rand的组合计算值进行https通信。kab与rand的组合计算例如hash(kab||rand)。
61.综上所述,借助于本发明的上述技术方案,本发明实现了基于ca的抗量子计算的https系统。本系统避免采用了具有诸多缺陷的对称密钥方案,无需使用预颁发非对称密钥池,仅需要预颁发少量密钥即可实现抗量子计算的安全通信,颁发、更新流程简单;https系统各成员的密钥量较少,因此密钥均存储于各成员的安全芯片中,无法被窃取,且不占用密钥池所需的存储空间,也没有增加ca所维护的密钥量;不需要部署额外的基于id密码学的密钥管理服务器,没有改变传统ca的部署方式,不会因部署额外的基于id密码学的密钥管理服务器引入新的不确定性或增加系统复杂性。此外,采用国密算法对sm2加密算法加密结果进行了再次对称加密,在https中增加了服务器对客户端的挑战应答认证,通过将认证应答值作为密钥的方式,既不需要单独传递认证应答值,没有增加https的流程和数据量,又
实现了sm2算法的抗量子计算。此外,本发明不使用rsa算法,而使用国家密码局认定的国产密码算法sm2、sm3、sm4等实现抗量子计算,符合国家密码管理局的要求。
62.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
63.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献