一种证书链的生成方法及认证方法与流程

文档序号:35049974发布日期:2023-08-06 03:22阅读:25来源:国知局
一种证书链的生成方法及认证方法与流程

本发明涉及量子安全,具体涉及一种证书链的生成方法及认证方法。


背景技术:

1、在通信过程中,用户可以通过数字证书来识别通信各方的身份信息,数字证书由证书中心(certificate authority,简称ca)签发。网络的发展使得依靠证书中心直接签发数字证书的行为已经不能满足当今的网络应用需求,因此,证书中心衍生出了多级,包括根证书中心、中间证书中心、用户证书中心等,相应地,所颁发的证书也就包括根证书、中间证书、用户证书等,中间证书也可以是很多级。

2、在传统的证书链的认证过程中,根证书用于认证中间证书的合法性,中间证书用于认证用户证书的合法性,针对每一级证书都需要进行一次认证,这样就导致一个证书链中的多个证书认证需要分多次进行,认证效率很低。

3、如何提升证书链的认证效率,改进证书链的多级认证的方式,成为当下需要解决的技术问题。


技术实现思路

1、发明目的:本发明目的是提供一种证书链的生成方法及认证方法,解决了当前证书链的逐级认证方式所带来的认证效率低的问题。本发明改进了传统证书链的逐级证书认证的方式,将证书链作为整体实现认证。本发明所提出的方法中涉及到的证书链,将传统的根证书与量子数字证书进行了衔接,实现了传统数字证书和量子数字证书的有效融合,提升了证书链的安全性。

2、技术方案:一种证书链的生成方法,所述证书链包括量子根证书、由量子根证书签发的中间证书及由中间证书签发的用户证书,所述生成方法包括以下步骤:

3、步骤1、量子ca证书颁发系统中的第一量子ca证书颁发中心向传统ca证书颁发中心发送证书请求文件;

4、步骤2、传统ca证书颁发中心基于本地传统根证书向第一量子ca证书颁发中心签发量子根证书;

5、步骤3、第一量子ca证书颁发中心基于量子根证书向量子ca证书颁发系统中的第二量子ca证书颁发中心签发中间证书,中间证书包括量子根证书的一次性身份;

6、步骤4、第二量子ca证书颁发中心基于中间证书向量子ca证书颁发系统中的第三量子ca证书颁发中心签发用户证书,用户证书包括量子根证书的一次性身份和中间证书的一次性身份。

7、进一步地,所述步骤1、2进一步包括:

8、所述第一量子ca证书颁发中心从本地获取一个随机数,所述随机数作为量子根证书的私钥,所述量子根证书的私钥记为:root.pri.key,所述第一量子ca证书颁发中心基于私钥root.pri.key生成相对应的公钥,所述第一量子ca证书颁发中心生成证书请求文件,所述证书请求文件包括所述第一量子证书颁发中心基于私钥root.pri.key生成的公钥,所述第一量子ca证书颁发中心将证书请求文件发送至所述传统ca证书颁发中心;

9、所述传统ca证书颁发中心接收证书请求文件,并使用本地传统根证书对第一量子ca证书颁发中心基于私钥root.pri.key生成的公钥进行签名,签名文件作为量子根证书发送至所述第一量子ca证书颁发中心。

10、进一步地,所述步骤3中第一量子ca证书颁发中心基于量子根证书向第二量子ca证书颁发中心签发中间证书的过程如下:

11、(1)、所述第一量子ca证书颁发中心从本地获取随机数r1、s1及u1,基于随机数r1生成不可约多项式p1,基于不可约多项式p1及随机数s1生成第一哈希函数hp1,s1,使用第一哈希函数hp1,s1计算量子根证书的私钥root.pri.key的哈希值,得到hp1,s1(root.pri.key),使用随机数u1对哈希值hp1,s1(root.pri.key)进行加密,得到量子根证书的一次性身份otidroot=hp1,s1(root.pri.key)⊕u1;

12、(2)、所述第一量子ca证书颁发中心从本地获取一个随机数,所述随机数作为中间证书的私钥,所述中间证书的私钥记为:medi.pri.key;

13、(3)、所述第一量子ca证书颁发中心从本地获取随机数r2、s2及u2,基于随机数r2生成不可约多项式p2,基于不可约多项式p2及随机数s2生成第二哈希函数hp2,s2,使用第二哈希函数hp2,s2计算中间证书的私钥medi.pri.key的哈希值,得到hp2,s2(medi.pri.key),使用随机数u2对哈希值hp2,s2(medi.pri.key)进行加密,得到中间证书的一次性身份otidmedi=hp2,s2(medi.pri.key)⊕u2;

14、(4)、所述第一量子ca证书颁发中心构建待签名的中间证书medi.cert;

15、medi.cert=(tbsmedicert,otidmedi,otidroot);

16、其中,tbsmedicert为中间证书数据;

17、(5)、所述第一量子ca证书颁发中心从本地获取随机数r3、s3及t3,基于随机数r3生成不可约多项式p3,基于不可约多项式p3及随机数s3生成第三哈希函数hp3,s3,使用第三哈希函数hp3,s3计算中间证书medi.cert的哈希值,得到hp3,s3(medi.cert),使用随机数t3对哈希值hp3,s3(medi.cert)进行加密,得到签名文件signmedi=[hp3,s3(medi.cert),p3]⊕t3;

18、(6)、封装中间证书,得到所述第一量子ca证书颁发中心基于量子根证书签发的中间证书signed.medi.cert;

19、signed.medi.cert=(medi.cert,signmedi);

20、即:signed.medi.cert=(tbsmedicert,otidmedi,otidroot,signmedi)。

21、进一步地,所述第一量子ca证书颁发中心基于量子根证书向所述第二量子ca证书颁发中心签发中间证书的过程(1)中,所述第一量子ca证书颁发中心从本地获取的随机数r1、s1、u1长度相等;

22、所述第一量子ca证书颁发中心基于量子根证书向所述第二量子ca证书颁发中心签发中间证书的过程(3)中,所述第一量子ca证书颁发中心从本地获取的随机数r2、s2、u2长度相等;

23、所述第一量子ca证书颁发中心基于量子根证书向所述第二量子ca证书颁发中心签发中间证书的过程(5)中,所述第一量子ca证书颁发中心从本地获取随机数r3、s3及t3,其中,随机数r3与随机数s3长度相等,随机数t3的长度是随机数r3的长度的2倍。

24、进一步地,所述步骤4中第二量子ca证书颁发中心基于中间证书向第三量子ca证书颁发中心签发用户证书的过程如下:

25、(1)、所述第二量子ca证书颁发中心从本地获取一个随机数,所述随机数作为用户证书的私钥,所述用户证书的私钥记为:user.pri.key;

26、(2)、所述第二量子ca证书颁发中心从本地获取随机数r4、s4及u4,基于随机数r4生成不可约多项式p4,基于不可约多项式p4及随机数s4生成第四哈希函数hp4,s4,使用第四哈希函数hp4,s4计算用户证书的私钥user.pri.key的哈希值,得到hp4,s4(user.pri.key),使用随机数u4对哈希值hp4,s4(user.pri.key)进行加密,得到用户证书的一次性身份otiduser=hp4,s4(user.pri.key)⊕u4;

27、(3)、所述第二量子ca证书颁发中心构建待签名的用户证书user.cert;

28、user.cert=(tbsusercert,otiduser,otidmedi,otidroot);

29、其中,tbsusercert为用户证书数据;

30、(4)、所述第二量子ca证书颁发中心从本地获取随机数r5、s5及t5,基于随机数r5生成不可约多项式p5,基于不可约多项式p5及随机数s5生成第五哈希函数hp5,s5,使用第五哈希函数hp5,s5计算用户证书user.cert的哈希值,得到hp5,s5(user.cert),使用随机数t5对哈希值hp5,s5(user.cert)进行加密,得到签名文件signuser=[hp5,s5(user.cert),p5]⊕t5;

31、(5)、封装用户证书,得到所述第二量子ca证书颁发中心基于中间证书签发的用户证书signed.user.cert;

32、signed.user.cert=(user.cert,signuser);

33、即:signed.user.cert=(tbsusercert,otiduser,otidmedi,otidroot,signuser)。

34、进一步地,所述第二量子ca证书颁发中心基于中间证书向所述第三量子ca证书颁发中心签发用户证书的过程(2)中,所述第二量子ca证书颁发中心从本地获取的随机数r4、s4、u4长度相等;

35、所述第二量子ca证书颁发中心基于中间证书向所述第三量子ca证书颁发中心签发用户证书的过程(4)中,所述第二量子ca证书颁发中心从本地获取随机数r5、s5及t5,其中,随机数r5与随机数s5长度相等,随机数t5的长度是随机数r5的长度的2倍。

36、进一步地,tbsusercert为用户证书数据,所述用户证书数据包括用户证书序列号,将所述用户证书序列号作为索引值,以寻址到用户证书生成过程中的任意参数。

37、一种证书链的认证方法,所述证书链包括量子根证书、由量子根证书签发的中间证书及由中间证书签发的用户证书,所述认证方法包括以下流程:

38、流程1、认证端对接收到的用户证书signed.user.cert进行解析,得到tbsusercert、otiduser、otidmedi、otidroot及signuser;

39、流程2、将tbsusercert、otiduser、otidmedi及otidroot发送至量子ca证书颁发系统;

40、流程3、量子ca证书颁发系统寻址到参数,生成otid′user、otid′medi、otid′root,将生成的otid′user、otid′medi、otid′root与接收到的otiduser、otidmedi、otidroot进行比对,若比对全部相等,则进行下一步,反之,则用户证书认证失败;

41、流程4、量子ca证书颁发系统寻址到随机数s5及t5,并将寻址到的随机数s5、t5发送至认证端;

42、流程5、认证端使用t5对签名文件signuser进行解密,得到哈希值hp5,s5(user.cert)及不可约多项式p5;

43、流程6、认证端基于量子ca证书颁发系统发送过来的随机数s5及解密得到的不可约多项式p5生成哈希函数,并使用生成的哈希函数计算用户证书user.cert的哈希值,得到h′p5s5(user.cert);

44、流程7、将流程6中计算得到的哈希值h′p5s5(user.cert)与流程5中解密得到的哈希值hp5,s5(user.cert)进行比对,若比对相等,则表示接收到的用户证书是基于量子根证书及中间证书签发而得到的,证书链认证成功,反之,证书链认证失败。

45、进一步地,所述流程1进一步包括:

46、所述认证端基于用户证书数据tbsusercert得到用户证书序列号;

47、所述流程2进一步包括:

48、所述认证端将用户证书序列号、otiduser、otidmedi及otidroot发送至量子ca证书颁发系统;

49、所述流程3进一步包括:

50、所述量子ca证书颁发系统通过所述用户证书序列号作为索引值,寻址到用户证书生成过程中的任意参数,从而生成otid′user、otid′medi、otid′root;

51、所述流程4进一步包括:

52、所述量子ca证书颁发系统通过所述用户证书序列号作为索引值,寻址到用户证书生成过程中的随机数s5及t5。

53、进一步地,所述流程3进一步包括:

54、所述量子ca证书颁发系统通过所述用户证书序列号作为索引值,寻址到用户证书生成过程中的随机数s1、随机数u1、不可约多项式p1及量子根证书的私钥root.pri.key,基于寻址到的随机数s1及寻址到的不可约多项式p1生成哈希函数,并使用基于随机数s1、不可约多项式p1生成的哈希函数计算寻址到的量子根证书的私钥root.pri.key的哈希值,使用寻址到的随机数u1对基于量子根证书的私钥root.pri.key的哈希值进行加密,得到量子根证书的一次性身份otid′root;

55、所述量子ca证书颁发系统通过所述用户证书序列号作为索引值,寻址到用户证书生成过程中的随机数s2、随机数u2、不可约多项式p2及中间证书的私钥medi.pri.key,基于寻址到的随机数s2及寻址到的不可约多项式p2生成哈希函数,并使用基于随机数s2、不可约多项式p2生成的哈希函数计算寻址到的中间证书的私钥medi.pri.key的哈希值,使用寻址到的随机数u2对基于中间证书的私钥medi.pri.key的哈希值进行加密,得到中间证书的一次性身份otid′medi;

56、所述量子ca证书颁发系统通过所述用户证书序列号作为索引值,寻址到用户证书生成过程中的随机数s4、随机数u4、不可约多项式p4及用户证书的私钥user.pri.key,基于寻址到的随机数s4及寻址到的不可约多项式p4生成哈希函数,并使用随机数s4、不可约多项式p4生成的哈希函数计算寻址到的用户证书的私钥user.pri.key的哈希值,使用寻址到的随机数u4对基于用户证书的私钥user.pri.key的哈希值进行加密,得到用户证书的一次性身份otid′user。

57、本发明的有益效果:

58、1、通过传统根证书与量子数字证书的衔接,生成基于量子安全网络的证书链,将该证书链作为整体进行认证,一次认证行为就满足了整条证书链的认证过程,提升了证书链的认证效率;

59、2、证书链中的量子根证书、中间证书及最终的用户证书,是使用不同的不可约多项式及不同的输入随机数所构造的不同的哈希函数来计算哈希值的,所以各个证书之间的哈希计算是分离的,其中一个证书的泄漏并不会影响另一个证书的安全及使用。

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