首页 / 专利库 / 人工智能 / 量子计算机 / 基于公钥池和签名偏移量的抗量子证书颁发方法及系统

基于公钥池和签名偏移量的抗量子证书颁发方法及系统

阅读:396发布:2020-05-08

专利汇可以提供基于公钥池和签名偏移量的抗量子证书颁发方法及系统专利检索,专利查询,专利分析的服务。并且本 申请 涉及一种基于公钥池和签名偏移量的抗量子证书颁发方法及系统,参与方包括证书 授权中心 和用户,各参与方均配置又密钥卡,各密钥卡内均存储有公钥池、私钥、证书授权中心的公钥 指针 随机数,用户的密钥卡内还存储有用户公钥指针随机数,当证书授权中心在对抗量子证书进行签名时根据持有者公钥指针随机数在公钥池中获取持有者公钥;根据持有者公钥以及持有者公钥指针随机数计算得到签名偏移量;根据所述抗量子证书原文计算得到原文 摘要 ;利用证书授权中心的私钥以及所述签名偏移量对所述原文摘要进行签名,得到颁发者签名。采用本方法抗量子证书不会被 量子计算 机 破解。,下面是基于公钥池和签名偏移量的抗量子证书颁发方法及系统专利的具体信息内容。

1.基于公钥池和签名偏移量的抗量子证书颁发方法,参与方包括证书授权中心和用户,各参与方均配置有密钥卡,各密钥卡内均存储有公钥池、私钥、证书授权中心的公钥指针随机数,用户的密钥卡内还存储有用户公钥指针随机数,其特征在于,所述抗量子证书颁发方法包括在所述证书授权中心进行如下步骤:
生成抗量子证书,将抗量子证书安全发送至对应用户;
所述抗量子证书包括颁发者签名以及抗量子证书原文;所述抗量子证书原文包括:颁发者信息、证书信息以及持有者信息;
所述颁发者信息包括颁发者名称,所述证书信息包括:版本号、序列号和有效期,所述持有者信息包括:持有者名称、公钥算法和持有者公钥指针随机数;
根据持有者公钥指针随机数在公钥池中获取持有者公钥;
根据持有者公钥以及持有者公钥指针随机数计算得到签名偏移量;
根据所述抗量子证书原文计算得到原文摘要
利用证书授权中心的私钥以及所述签名偏移量对所述原文摘要进行签名,得到颁发者签名。
2.根据权利要求1所述的抗量子证书颁发方法,其特征在于,所述抗量子证书颁发方法还包括在用户端进行所述抗量子证书的验证,抗量子证书验证包括如下步骤:
接收到所述抗量子证书;
对所述抗量子证书持有者以及颁发者进行验证,若验证成功则进行下一步;
根据证书授权中心的公钥指针随机数从所述公钥池中获取证书授权中心的公钥;
根据抗量子证书中的持有者公钥指针随机数在公钥池中获取持有者的公钥;
根据持有者公钥以及持有者公钥指针随机数计算得到所述签名偏移量;
根据所述签名偏移量以及证书授权中心的公钥对颁发者签名进行计算,得到所述抗量子证书的第一原文摘要;
根据所述抗抗量子证书原文进行计算,得到第二原文摘要;
验证第一原文摘要与第二原文摘要是否相同,若相同则进行下一步;
验证所述抗量子证书是否在有效期内。
3.根据权利要求2所述的抗量子证书颁发方法,其特征在于,所述公钥池中存储有若干个公钥单元,每个参与方对应其中一个公钥单元,每个公钥单元包括:公钥指针随机数、公钥指针函数、公钥和公钥算法;
所述对所述抗量子证书持有者以及颁发者进行验证,包括如下步骤:
根据接收的抗量子证书中的持有者公钥指针随机数在公钥池中寻找对应的公钥单元,若找到对应的公钥单元,则进行下一步;
根据所述公钥单元中的公钥指针函数对持有者公钥指针随机数计算,得到公钥指针,若所述公钥指针与所述公钥单元中的公钥指针相同,则进行下一步;
在公钥池和受信任的根证书列表中寻找所述抗量子证书中记载的证书授权中心的公钥指针随机数,若找到,则验证成功。
4.根据权利要求2所述的抗量子证书颁发方法,其特征在于,所述对所述抗量子证书持有者以及颁发者进行验证之前还包括对抗量子证书进行种类鉴别,所述种类鉴别包括如下步骤:
判断接收的抗量子证书中的持有者公钥指针随机数是否与证书授权中心的公钥指针随机数相同;
若不相同,则进行抗量子证书的验证过程,若验证通过,将该抗量子根证书加入受信任的根证书列表;
若相同,则在进行抗量子证书的验证过程中,用证书授权中心的公钥指针随机数代替持有者公钥指针随机数对所述抗量子证书进行验证。
5.基于公钥池和签名偏移量的抗量子证书颁发系统,参与方包括证书授权中心和用户,各参与方均配置又密钥卡,各密钥卡内均存储有公钥池、私钥、证书授权中心的公钥指针随机数,用户的密钥卡内还存储有用户公钥指针随机数,其特征在于,抗量子证书颁发系统包括证书授权中心,所述证书授权中心包括:
第一模,用于生成抗量子证书,所述抗量子证书包括颁发者签名以及抗量子证书原文;所述抗量子证书原文包括:颁发者信息、证书信息以及持有者信息;所述颁发者信息包括颁发者名称,所述证书信息包括:版本号、序列号和有效期,所述持有者信息包括:持有者名称、公钥算法和持有者公钥指针随机数;
第二模块,用于根据持有者公钥指针随机数在公钥池中获取持有者公钥;
第三模块,用于根据持有者公钥以及持有者公钥指针随机数计算得到签名偏移量;
第四模块,用于根据所述抗量子证书原文计算得到原文摘要;
第五模块,用于利用证书授权中心的私钥以及所述签名偏移量对所述原文摘要进行签名,得到颁发者签名;
第六模块,用于将抗量子证书安全发送至对应用户。
6.根据权利要求5所述的抗量子证书颁发系统,其特征在于,所述抗量子证书颁发系统还包括设置在用户端的抗量子证书验证模块,所述抗量子证书验证模块包括:
第一子模块,用于接收到所述抗量子证书;
第二子模块,用于对所述抗量子证书持有者以及颁发者进行验证,若验证成功则进行下一步;
第三子模块,用于根据证书授权中心的公钥指针随机数从所述公钥池中获取证书授权中心的公钥;
第四子模块,用于根据抗量子证书中的持有者公钥指针随机数在公钥池中获取持有者的公钥;
第五子模块,用于根据持有者公钥以及持有者公钥指针随机数计算得到所述签名偏移量;
第六子模块,用于根据所述签名偏移量以及证书授权中心的公钥对颁发者签名进行计算,得到所述抗量子证书的第一原文摘要;
第七子模块,用于根据所述抗抗量子证书原文进行计算,得到第二原文摘要;
第八子模块,用于验证第一原文摘要与第二原文摘要是否相同,若相同则进行下一步;
第九子模块,用于验证所述抗量子证书是否在有效期内。
7.根据权利要求6所述的抗量子证书颁发系统,其特征在于,所述公钥池中存储有若干个公钥单元,每个参与方对应其中一个公钥单元,每个公钥单元包括:公钥指针随机数、公钥指针函数、公钥和公钥算法;
第二子模块还包括:
所述对所述抗量子证书持有者以及颁发者进行验证,包括如下步骤:
根据接收的抗量子证书中的持有者公钥指针随机数在公钥池中寻找对应的公钥单元,若找到对应的公钥单元,则进行下一步;
根据所述公钥单元中的公钥指针函数对持有者公钥指针随机数计算,得到公钥指针,若所述公钥指针与所述公钥单元中的公钥指针相同,则进行下一步;
在公钥池和受信任的根证书列表中寻找所述抗量子证书中记载的证书授权中心的公钥指针随机数,若找到,则验证成功。
8.根据权利要求6所述的抗量子证书颁发系统,其特征在于,所述抗量子证书颁发系统还包括设置在用户端的抗量子证书的种类鉴别模块,所述种类鉴别模块包括:判断接收的抗量子证书中的持有者公钥指针随机数是否与证书授权中心的公钥指针随机数相同;若不相同,则进行抗量子证书的验证过程,若验证通过,将该抗量子根证书加入受信任的根证书列表;若相同,则在进行抗量子证书的验证过程中,用证书授权中心的公钥指针随机数代替持有者公钥指针随机数对所述抗量子证书进行验证。
9.基于公钥池和签名偏移量的抗量子证书颁发系统,参与方包括证书授权中心和用户,各参与方均配置又密钥卡,各密钥卡内均存储有公钥池、私钥、证书授权中心的公钥指针随机数,用户的密钥卡内还存储有用户公钥指针随机数;
各参与方包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时,实现权利要求1-4任一项所述的基于公钥池和签名偏移量的抗量子证书颁发方法。

说明书全文

基于公钥池和签名偏移量的抗量子证书颁发方法及系统

技术领域

[0001] 本申请涉及安全通信领域,特别是涉及一种基于公钥池和签名偏移量的抗量子证书颁发方法及系统。

背景技术

[0002] 数字签名(又称公钥数字签名、电子签名等)在理念上是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
[0003] 数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
[0004] 数字签名的文件的完整性是很容易验证的(不需要骑缝章,骑缝签名,也不需要笔迹专家),而且数字签名具有不可抵赖性(不可否认性)。
[0005] 简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(DSS)。
[0006] 在如今的密码学领域中,主要有两种密码系统,一是对称密钥密码系统,即加密密钥和解密密钥使用同一个。另一个是公开密钥密码系统,即加密密钥和解密密钥不同,其中一个可以公开。而数字证书正好是基于非对称密码体系实现的。
[0007] 但是随着量子计算机的发展,经典非对称密钥加密算法将不再安全,无论加解密、数字签名还是密钥交换方法,量子计算机都可以通过公钥计算得到私钥,因此目前经典的数字证书将在量子时代变得不堪一击。发明内容
[0008] 基于此,有必要针对上述技术问题,提供一种基于公钥池和签名偏移量的抗量子证书颁发方法及系统。
[0009] 基于公钥池和签名偏移量的抗量子证书颁发方法,参与方包括证书授权中心和用户,各参与方均配置又密钥卡,各密钥卡内均存储有公钥池、私钥、证书授权中心的公钥指针随机数,用户的密钥卡内还存储有用户公钥指针随机数,其特征在于,所述抗量子证书颁发方法包括在所述证书授权中心进行如下步骤:
[0010] 生成抗量子证书,将抗量子证书安全发送至对应用户;
[0011] 所述抗量子证书包括颁发者签名以及抗量子证书原文;所述抗量子证书原文包括:颁发者信息、证书信息以及持有者信息;
[0012] 所述颁发者信息包括颁发者名称,所述证书信息包括:版本号、序列号和有效期,所述持有者信息包括:持有者名称、公钥算法和持有者公钥指针随机数;
[0013] 根据持有者公钥指针随机数在公钥池中获取持有者公钥;
[0014] 根据持有者公钥以及持有者公钥指针随机数计算得到签名偏移量;
[0015] 根据所述抗量子证书原文计算得到原文摘要
[0016] 利用证书授权中心的私钥以及所述签名偏移量对所述原文摘要进行签名,得到颁发者签名。
[0017] 在其中一个实施例中,所述抗量子证书颁发方法还包括在用户端进行所述抗量子证书的验证,抗量子证书验证包括如下步骤:
[0018] 接收到所述抗量子证书;
[0019] 对所述抗量子证书持有者以及颁发者进行验证,若验证成功则进行下一步;
[0020] 根据证书授权中心的公钥指针随机数从所述公钥池中获取证书授权中心的公钥;
[0021] 根据抗量子证书中的持有者公钥指针随机数在公钥池中获取持有者的公钥;
[0022] 根据持有者公钥以及持有者公钥指针随机数计算得到所述签名偏移量;
[0023] 根据所述签名偏移量以及证书授权中心的公钥对颁发者签名进行计算,得到所述抗量子证书的第一原文摘要;
[0024] 根据所述抗抗量子证书原文进行计算,得到第二原文摘要;
[0025] 验证第一原文摘要与第二原文摘要是否相同,若相同则进行下一步;
[0026] 验证所述抗量子证书是否在有效期内。
[0027] 在其中一个实施例中,所述公钥池中存储有若干个公钥单元,每个参与方对应其中一个公钥单元,每个公钥单元包括:公钥指针随机数、公钥指针函数、公钥和公钥算法;
[0028] 所述对所述抗量子证书持有者以及颁发者进行验证,包括如下步骤:
[0029] 根据接收的抗量子证书中的持有者公钥指针随机数在公钥池中寻找对应的公钥单元,若找到对应的公钥单元,则进行下一步;
[0030] 根据所述公钥单元中的公钥指针函数对持有者公钥指针随机数计算,得到公钥指针,若所述公钥指针与所述公钥单元中的公钥指针相同,则进行下一步;
[0031] 在公钥池和受信任的根证书列表中寻找所述抗量子证书中记载的证书授权中心的公钥指针随机数,若找到,则验证成功。
[0032] 在其中一个实施例中,所述对所述抗量子证书持有者以及颁发者进行验证之前还包括对抗量子证书进行种类鉴别,所述种类鉴别包括如下步骤:
[0033] 判断接收的抗量子证书中的持有者公钥指针随机数是否与证书授权中心的公钥指针随机数相同;
[0034] 若不相同,则进行抗量子证书的验证过程,若验证通过,将该抗量子根证书加入受信任的根证书列表;
[0035] 若相同,则在进行抗量子证书的验证过程中,用证书授权中心的公钥指针随机数代替持有者公钥指针随机数对所述抗量子证书进行验证。
[0036] 本发明还提供了一种基于公钥池和签名偏移量的抗量子证书颁发系统,参与方包括证书授权中心和用户,各参与方均配置又密钥卡,各密钥卡内均存储有公钥池、私钥、证书授权中心的公钥指针随机数,用户的密钥卡内还存储有用户公钥指针随机数,抗量子证书颁发系统包括证书授权中心,所述证书授权中心包括:
[0037] 第一模,用于生成抗量子证书,所述抗量子证书包括颁发者签名以及抗量子证书原文;所述抗量子证书原文包括:颁发者信息、证书信息以及持有者信息;所述颁发者信息包括颁发者名称,所述证书信息包括:版本号、序列号和有效期,所述持有者信息包括:持有者名称、公钥算法和持有者公钥指针随机数;
[0038] 第二模块,用于根据持有者公钥指针随机数在公钥池中获取持有者公钥;
[0039] 第三模块,用于根据持有者公钥以及持有者公钥指针随机数计算得到签名偏移量;
[0040] 第四模块,用于根据所述抗量子证书原文计算得到原文摘要;
[0041] 第五模块,用于利用证书授权中心的私钥以及所述签名偏移量对所述原文摘要进行签名,得到颁发者签名;
[0042] 第六模块,用于将抗量子证书安全发送至对应用户。
[0043] 在其中一个实施例中,所述抗量子证书颁发系统还包括设置在用户端的抗量子证书验证模块,所述抗量子证书验证模块包括:
[0044] 第一子模块,用于接收到所述抗量子证书;
[0045] 第二子模块,用于对所述抗量子证书持有者以及颁发者进行验证,若验证成功则进行下一步;
[0046] 第三子模块,用于根据证书授权中心的公钥指针随机数从所述公钥池中获取证书授权中心的公钥;
[0047] 第四子模块,用于根据抗量子证书中的持有者公钥指针随机数在公钥池中获取持有者的公钥;
[0048] 第五子模块,用于根据持有者公钥以及持有者公钥指针随机数计算得到所述签名偏移量;
[0049] 第六子模块,用于根据所述签名偏移量以及证书授权中心的公钥对颁发者签名进行计算,得到所述抗量子证书的第一原文摘要;
[0050] 第七子模块,用于根据所述抗抗量子证书原文进行计算,得到第二原文摘要;
[0051] 第八子模块,用于验证第一原文摘要与第二原文摘要是否相同,若相同则进行下一步;
[0052] 第九子模块,用于验证所述抗量子证书是否在有效期内。
[0053] 在其中一个实施例中,所述公钥池中存储有若干个公钥单元,每个参与方对应其中一个公钥单元,每个公钥单元包括:公钥指针随机数、公钥指针函数、公钥和公钥算法;
[0054] 第二子模块还包括:
[0055] 所述对所述抗量子证书持有者以及颁发者进行验证,包括如下步骤:
[0056] 根据接收的抗量子证书中的持有者公钥指针随机数在公钥池中寻找对应的公钥单元,若找到对应的公钥单元,则进行下一步;
[0057] 根据所述公钥单元中的公钥指针函数对持有者公钥指针随机数计算,得到公钥指针,若所述公钥指针与所述公钥单元中的公钥指针相同,则进行下一步;
[0058] 在公钥池和受信任的根证书列表中寻找所述抗量子证书中记载的证书授权中心的公钥指针随机数,若找到,则验证成功。
[0059] 在其中一个实施例中,所述抗量子证书颁发系统还包括设置在用户端的抗量子证书的种类鉴别模块,所述种类鉴别模块包括:判断接收的抗量子证书中的持有者公钥指针随机数是否与证书授权中心的公钥指针随机数相同;若不相同,则进行抗量子证书的验证过程,若验证通过,将该抗量子根证书加入受信任的根证书列表;若相同,则在进行抗量子证书的验证过程中,用证书授权中心的公钥指针随机数代替持有者公钥指针随机数对所述抗量子证书进行验证。
[0060] 本发明还提供了基于公钥池和签名偏移量的抗量子证书颁发系统,参与方包括证书授权中心和用户,各参与方均配置又密钥卡,各密钥卡内均存储有公钥池、私钥、证书授权中心的公钥指针随机数,用户的密钥卡内还存储有用户公钥指针随机数;
[0061] 各参与方包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时,实现一下步骤:
[0062] 生成抗量子证书,将抗量子证书安全发送至对应用户;
[0063] 所述抗量子证书包括颁发者签名以及抗量子证书原文;所述抗量子证书原文包括:颁发者信息、证书信息以及持有者信息;
[0064] 所述颁发者信息包括颁发者名称,所述证书信息包括:版本号、序列号和有效期,所述持有者信息包括:持有者名称、公钥算法和持有者公钥指针随机数;
[0065] 根据持有者公钥指针随机数在公钥池中获取持有者公钥;
[0066] 根据持有者公钥以及持有者公钥指针随机数计算得到签名偏移量;
[0067] 根据所述抗量子证书原文计算得到原文摘要;
[0068] 利用证书授权中心的私钥以及所述签名偏移量对所述原文摘要进行签名,得到颁发者签名。
[0069] 上述基于公钥池和签名偏移量的抗量子证书颁发方法及颁发系统,在颁发者对抗量子证书进行签名的过程中,通过公钥指针随机数代替了公钥,增加了证书验证的准确度,也保证了公钥的安全。另外,抗量子证书中基于公私钥的数字签名的计算过程加入了签名偏移量的计算,且偏移量无法被无密钥卡用户计算得到,增加了数字签名被破解的难度。以使在量子计算机存在的情况下,也难以被推导出私钥。从而保障了数字证书系统的公私钥及证书。附图说明
[0070] 图1为一个实施例中CA密钥卡密钥区的分布图;
[0071] 图2为一个实施例中用户密钥卡密钥区的分布图;
[0072] 图3为一个实施例中数字证书的结构图。

具体实施方式

[0073] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0074] 为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。
[0075] 应该理解的是,除非本文中有明确的说明,各步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0076] 本发明实现一种基于公钥池和签名偏移量的抗量子计算的数字证书体系。本发明所实现的场景为一个拥有同一公钥池成员组成的群组。群组中的CA(证书授权中心)拥有CA密钥卡,而其他成员均拥有用户密钥卡。本发明中的密钥卡不仅可以存储大量的数据,还具有处理信息的能。本发明中,所有密钥卡都存在相应需求的算法。
[0077] 需要说明的是,当为移动终端时,密钥卡优选为密钥SD卡;当为固定终端时,密钥卡优选为密钥USBkey或主机密钥板卡。
[0078] 在本实施例中,密钥卡颁发方为密钥卡的主管方,一般为群组的管理部门,例如某企业或事业单位的管理部门;密钥卡被颁发方为密钥卡的主管方所管理的成员,一般为某企业或事业单位的各级员工。用户端首先到密钥卡的主管方申请开户。当用户端进行注册登记获批后,将得到密钥卡(具有唯一的密钥卡ID)。密钥卡存储了客户注册登记信息。密钥卡中的用户侧密钥都下载自CA(证书授权中心)服务站,且对同一个密钥卡的主管方来说,其颁发的每个密钥卡中存储的密钥池是完全一致的。优选为,密钥卡中存储的密钥池大小可以是1G、2G、4G、8G、16G、32G、64G、128G、256G、512G、1024G、2048G、4096G等等。
[0079] 密钥卡从智能卡技术上发展而来,是结合了真随机数发生器(优选为量子随机数发生器)、密码学技术、硬件安全隔离技术的身份认证和加解密产品。密钥卡的内嵌芯片和操作系统可以提供密钥的安全存储和密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,密钥卡成为私钥和密钥池的安全载体。每一个密钥卡都有硬件PIN码保护,PIN码和硬件构成了用户使用密钥卡的两个必要因素。即所谓“双因子认证”,用户只有同时取得保存了相关认证信息的密钥卡和用户PIN码,才可以登录系统。即使用户的PIN码被泄露,只要用户持有的密钥卡不被盗取,合法用户的身份就不会被仿冒;如果用户的密钥卡遗失,拾到者由于不知道用户PIN码,也无法仿冒合法用户的身份。
[0080] 在一个实施例中,提供了一种基于公钥池和签名偏移量的抗量子证书颁发方法,参与方包括证书授权中心和用户,各参与方均配置又密钥卡,各密钥卡内均存储有公钥池、私钥、证书授权中心的公钥指针随机数,用户的密钥卡内还存储有用户公钥指针随机数,其特征在于,所述抗量子证书颁发方法包括在所述证书授权中心进行如下步骤:
[0081] 生成抗量子证书,将抗量子证书安全发送至对应用户;
[0082] 所述抗量子证书包括颁发者签名以及抗量子证书原文;所述抗量子证书原文包括:颁发者信息、证书信息以及持有者信息;
[0083] 所述颁发者信息包括颁发者名称,所述证书信息包括:版本号、序列号和有效期,所述持有者信息包括:持有者名称、公钥算法和持有者公钥指针随机数;
[0084] 根据持有者公钥指针随机数在公钥池中获取持有者公钥;
[0085] 根据持有者公钥以及持有者公钥指针随机数计算得到签名偏移量;
[0086] 根据所述抗量子证书原文计算得到原文摘要;
[0087] 利用证书授权中心的私钥以及所述签名偏移量对所述原文摘要进行签名,得到颁发者签名。
[0088] 在本实施例中,所述抗量子证书颁发方法还包括在用户端进行所述抗量子证书的验证,抗量子证书验证包括如下步骤:
[0089] 接收到所述抗量子证书;
[0090] 对所述抗量子证书持有者以及颁发者进行验证,若验证成功则进行下一步;
[0091] 根据证书授权中心的公钥指针随机数从所述公钥池中获取证书授权中心的公钥;
[0092] 根据抗量子证书中的持有者公钥指针随机数在公钥池中获取持有者的公钥;
[0093] 根据持有者公钥以及持有者公钥指针随机数计算得到所述签名偏移量;
[0094] 根据所述签名偏移量以及证书授权中心的公钥对颁发者签名进行计算,得到所述抗量子证书的第一原文摘要;
[0095] 根据所述抗抗量子证书原文进行计算,得到第二原文摘要;
[0096] 验证第一原文摘要与第二原文摘要是否相同,若相同则进行下一步;
[0097] 验证所述抗量子证书是否在有效期内。
[0098] 在本实施例中,所述公钥池中存储有若干个公钥单元,每个参与方对应其中一个公钥单元,每个公钥单元包括:公钥指针随机数、公钥指针函数、公钥和公钥算法;
[0099] 所述对所述抗量子证书持有者以及颁发者进行验证,包括如下步骤:
[0100] 根据接收的抗量子证书中的持有者公钥指针随机数在公钥池中寻找对应的公钥单元,若找到对应的公钥单元,则进行下一步;
[0101] 根据所述公钥单元中的公钥指针函数对持有者公钥指针随机数计算,得到公钥指针,若所述公钥指针与所述公钥单元中的公钥指针相同,则进行下一步;
[0102] 在公钥池和受信任的根证书列表中寻找所述抗量子证书中记载的证书授权中心的公钥指针随机数,若找到,则验证成功。
[0103] 在本实施例中,所述对所述抗量子证书持有者以及颁发者进行验证之前还包括对抗量子证书进行种类鉴别,所述种类鉴别包括如下步骤:
[0104] 判断接收的抗量子证书中的持有者公钥指针随机数是否与证书授权中心的公钥指针随机数相同;
[0105] 若不相同,则进行抗量子证书的验证过程,若验证通过,将该抗量子根证书加入受信任的根证书列表;
[0106] 若相同,则在进行抗量子证书的验证过程中,用证书授权中心的公钥指针随机数代替持有者公钥指针随机数对所述抗量子证书进行验证。
[0107] 结合图示,对抗量子证书颁发过程详述如下:
[0108] 在本实施例中,所述公钥池是由n个PK单元组成,PK单元即为公钥单元,n的个数为群组内所有成员的个数,包括CA和其他用户。PK单元是由PKR、FPOS信息和PK三个部分组成,分布如下。其中PKR为公钥指针随机数(公钥的存储位置参数),FPOS为公钥指针函数,PK为公钥。
[0109] PK单元:
[0110]PKR FPOS信息 PK
[0111] 表1
[0112] 其中FPOS信息包括FPOS算法ID和内部参数,如下所示。
[0113] FPOS信息:
[0114]FPOS算法ID 内部参数
[0115] 表2
[0116] 在本实施例中,FPOS的算法可以有多种计算方式,例如,FPOS(PKR)=(a*PKR+b)%n。其中%为取模运算;PKR为输入变量;n(PK单元的个数)为外部参数;a、b为内部参数。或FPOS(PKR)=(PKR^c)*d%n;其中^为乘方运算,%为取模运算;PKR为输入变量;n(PK单元的个数)为外部参数;c、d为内部参数。上述两种算法仅作为参考,并本发明并不受限于该两种计算方式。
[0117] 其中,PK算法指具体的公钥算法(非对称密码算法)。可以有多种公钥算法,例如RSA/DSA/ECC等。
[0118] 在本实施例中,密钥卡分为两种密钥卡,一种是用于CA系统的CA密钥卡,还有一种是用户密钥卡。CA密钥卡包括公钥池、CA私钥和CA公钥指针随机数;用户密钥卡包括公钥池、用户私钥、用户公钥指针随机数和CA公钥指针随机数。CA密钥卡的公钥池和用户密钥卡中的密钥池相同。密钥池的分布如图1和图2,其中图1为CA密钥卡密钥区的分布图,其中图2为用户密钥卡密钥区的分布图。
[0119] 在本实施例中,CA服务器在颁发密钥卡之前会创建一个至少有n*sp大小的公钥池文件和一个至少有n*ss大小的私钥池文件。sp为1个PK单元的大小,ss为1个SK的大小,SK为私钥。CA服务器将生成n个基于RSA算法的PK/SK对。CA服务器生成PKR,PKR为真随机数,优选为量子随机数。CA服务器随机生成FPOS算法ID和FPOS内部参数,计算得到PKPOS,PKPOS为公钥位置指针。CA服务器对公钥池文件PKPOS所在位置进行赋值,即写入PKR、FPOS信息、PK。CA服务器对私钥池文件PKPOS所在位置进行赋值,即写入SK。假如PKPOS所在位置已经被赋值,则更换PKR、FPOS算法ID、FPOS内部参数中的1个或多个,重新执行本流程,直到找到未被赋值的位置。
[0120] CA服务器从公钥池文件随机选取一个PK单元,将该PK单元的公钥作为CA公钥,即PKCA,并将该PK单元的PKR作为CA公钥指针随机数,即PKRCA。同时取出在私钥池文件同位置的私钥,即SKCA。CA的公钥/私钥对可以是1个或多个,如为多个,则多次执行前述流程。CA服务器通过安全发送方式把公钥池文件、私钥和CA公钥指针随机数发送给CA密钥卡,CA密钥卡将相关密钥存储到CA密钥卡内部。CA通过安全发送方式把PKR、PKRCA、PKR对应的私钥、公钥池文件发送给用户密钥卡,用户密钥卡将相关密钥存储到用户密钥卡内部。
[0121] 安全发送的方法可能是:
[0122] (1)用户密钥卡通过USB或网络接口等,直接连接至CA密钥卡,并由CA密钥卡传输信息;
[0123] (2)用户密钥卡和CA密钥卡均通过USB或网络接口等,连接到CA认可的某台安全主机,由主机中转信息;
[0124] (3)CA密钥卡与用户密钥卡分配有预共享密钥,CA密钥卡用预共享密钥对信息进行加密,网络传输至用户密钥卡后被用户密钥卡解密;
[0125] (4)CA密钥卡与用户密钥卡之间有量子密钥分发网络,CA密钥卡用量子密钥分发的密钥对信息进行加密,传输至用户密钥卡后被用户密钥卡解密;
[0126] (5)通过安全存储介质,将信息直接拷贝到用户密钥卡内;
[0127] (6)其他未提及的安全发送手段。
[0128] 在本实施例中,数字证书的结构如图3所示,其数字证书包括:数字证书包括证书信息、颁发者信息、持有者信息和颁发者数字签名四个部分。
[0129] 在这里需要说明的是,在这里出现的数字证书就是前文中介绍的抗量子证书。而CA服务器以及CA均指证书授权中心。
[0130] 其中证书信息包括:版本号、序列号和有效期;颁发者信息为颁发者名称;持有者信息包括:持有者名称、公钥算法和持有者的公钥指针随机数;颁发者数字签名包括:签名算法和CA数字签名。
[0131] 在本实施例中,在对数字证书进行签名,以及在用户端对该数字证书进行验证时,提供了一种实施例,其内容如下:
[0132] 设数字证书的证书信息、颁发者信息和持有者信息为M,M的摘要为MD。根据持有者的公钥指针随机数PKR从本地系统的密钥卡公钥池中取出自身的公钥PK。CA服务器对PKR||PK进行哈希计算得到HASH(PKR||PK)作为签名偏移量。其中HASH(m)表示对数据内容m进行哈希算法得到的值。CA服务器利用私钥SKCA对MD进行RSA算法签名得到签名MS=(MD^SKCA+HASH(PKR||PK))mod N。此处N为RSA算法的参数,即2个大素数的乘积。
[0133] 特别地,抗量子计算根证书是CA自签名证书:颁发者即为持有者,即CA服务器。
[0134] 用户在使用普通数字证书前,一般已事先下载安装了CA根证书,验证了其有效性,并设置为受信任证书。CA根证书用于验证其他数字证书。
[0135] 在本实施例中,在用户端对数字证书进行验证包括首先用户先根据持有者信息中的公钥指针随机数PKR去密钥卡公钥池中进行匹配,是否能找到具有相同PKR的PK单元,如果没有找到,则验证失败,流程结束。如果找到,再根据匹配的PK单元中的FPOS信息对该PKR进行计算,得到的值与该PK单元的PKPOS进行比较。如果相同,则PKR验证通过。
[0136] 然后用户根据加密的CA数字签名中的CA公钥指针随机数PKRCA,验证其是否位于密钥卡中的CA公钥指针随机数区域;如果不是,则查找PKRCA是否位于受信任的根证书列表中的某个根证书内;如果仍没有找到PKRCA,则验证失败,流程结束。
[0137] 如找到PKRCA,则从密钥卡公钥池中取出CA公钥PKCA。用户利用PKCA对数字证书的颁发者数字签名进行验证,用户计算得到MD=((MS-HASH(PKR||PK))mod N)^PKCA mod N。用户取出数字证书的证书信息、颁发者信息和持有者信息为M’,对M’进行摘要计算得到MD’。对比MD和MD’,如相等则说明证书的数字签名合法,即该证书确实来自CA。最后验证证书是否位于有效期内。
[0138] 在本实施例中,如用户验证某数字证书时,发现该证书的颁发者即为持有者,则进入根证书的验证流程。
[0139] 根证书的验证类似上述的用户证书验证。具体流程如下:
[0140] 首先用户先根据根证书中的公钥指针随机数去密钥卡中的CA公钥指针随机数区域进行匹配,是否能找到具有相同的PKRCA值。如不存在相等的PKRCA值,则执行上述数字证书验证的流程,如果流程执行成功,则说明该证书为合法根证书,可存储于根证书集合中;如存在相等的PKR值,则继续下文流程。用户根据匹配的PK单元中的FPOS信息对该PKRCA进行计算,得到的值与该PK单元的PKPOS进行比较。如果相同,则PKRCA验证通过。然后用户根据PKRCA,从密钥卡公钥池中取出CA公钥PKCA。用户利用PKCA对数字证书的颁发者数字签名进行验证,用户计算得到MD=((MS-HASH(PKRCA||PKCA))mod N)^PKCA mod N。用户取出数字证书的证书信息、颁发者信息和持有者信息为M’,对M’进行摘要计算得到MD’。对比MD和MD’,如相等则说明证书的数字签名合法。最后验证证书是否位于有效期内。
[0141] 在本实施例中,在对数字证书进行签名,以及在用户端对该数字证书进行验证时,还提供了另一种实施例,其内容如下:
[0142] 在本实施例中,设数字证书的证书信息、颁发者信息和持有者信息为M,M的摘要为MD。根据持有者的公钥指针随机数PKR从本地系统的密钥卡公钥池中取出持有者的公钥PK。CA服务器对PKR||PK进行哈希计算得到HASH(PKR||PK)作为签名偏移量。CA服务器利用私钥SKCA对MD进行RSA算法签名得到签名MS=((MD+HASH(PKR||PK))mod N)^SKCA mod N。
[0143] 特别地,抗量子计算根证书是CA自签名证书:颁发者即为持有者,即CA服务器。
[0144] 用户在使用普通数字证书前,一般已事先下载安装了CA根证书,验证了其有效性,并设置为受信任证书。CA根证书用于验证其他数字证书。
[0145] 在本实施例中,在用户端对数字证书进行验证时,首先用户先根据持有者信息中的公钥指针随机数PKR去密钥卡公钥池中进行匹配,是否能找到具有相同PKR的PK单元,如果没有找到,则验证失败,流程结束。如果找到,再根据匹配的PK单元中的FPOS信息对该PKR进行计算,得到的值与该PK单元的PKPOS进行比较。如果相同,则PKR验证通过。然后用户根据加密的CA数字签名中的CA公钥指针随机数PKRCA,验证其是否位于密钥卡中的CA公钥指针随机数区域;如果不是,则查找PKRCA是否位于受信任的根证书列表中的某个根证书内;如果仍没有找到PKRCA,则验证失败,流程结束。如找到PKRCA,则从密钥卡公钥池中取出CA公钥PKCA。用户利用PKCA对数字证书的颁发者数字签名进行验证,用户计算得到MD=(MS^PKCA-HASH(PKR||PK))mod N。用户取出数字证书的证书信息、颁发者信息和持有者信息为M’,对M’进行摘要计算得到MD’。对比MD和MD’,如相等则说明证书的数字签名合法,即该证书确实来自CA。最后验证证书是否位于有效期内。
[0146] 如用户验证某数字证书时,发现该证书的颁发者即为持有者,则进入根证书的验证流程。
[0147] 根证书的验证类似上述的用户证书验证。具体流程如下:
[0148] 首先用户先根据根证书中的公钥指针随机数去密钥卡中的CA公钥指针随机数区域进行匹配,是否能找到具有相同的PKRCA值。如不存在相等的PKRCA值,则执行上述验证的流程,如果流程执行成功,则说明该证书为合法根证书,可存储于根证书集合中;
[0149] 如存在相等的PKR值,则继续下文流程。用户根据匹配的PK单元中的FPOS信息对该PKRCA进行计算,得到的值与该PK单元的PKPOS进行比较。如果相同,则PKRCA验证通过。然后用户根据PKRCA,从密钥卡公钥池中取出CA公钥PKCA。用户利用PKCA对数字证书的颁发者数字签名进行验证,用户计算得到MD=(MS^PKCA-HASH(PKRCA||PKCA))mod N。用户取出数字证书的证书信息、颁发者信息和持有者信息为M’,对M’进行摘要计算得到MD’。对比MD和MD’,如相等则说明证书的数字签名合法。最后验证证书是否位于有效期内。
[0150] 上述基于公钥池和签名偏移量的抗量子证书颁发方法使用的密钥卡是独立的硬件隔离设备。公钥、私钥和真随机数等其他相关参数均在CA内生成,密钥分发后在密钥卡中存储,用户使用时被恶意软件或恶意操作窃取密钥的可能性大大降低,也不会被量子计算机获取并破解。本发明的数字证书体系所使用的所有非对称算法中的公钥以及相关算法参数均不参与网络传输,所以通信双方的公私钥被窃取破解的可能性较低。
[0151] 本发明中使用公钥指针随机数代替了公钥,增加了证书验证的准确度,也保证了公钥的安全。另外,数字证书中基于公私钥的数字签名的计算过程加入了签名偏移量的计算,且偏移量无法被无密钥卡用户计算得到,增加了数字签名被破解的难度。即使在量子计算机存在的情况下,也难以被推导出私钥。综上所述,本发明保障了数字证书系统的公私钥及证书的安全。
[0152] 本发明通过签名偏移量的方式代替加密签名,在保证签名和公私钥安全的情况下,降低了签名的计算量和密钥卡的负担,提高了数字证书生成的效率。
[0153] 本发明还提供了一种基于公钥池和签名偏移量的抗量子证书颁发系统,参与方包括证书授权中心和用户,各参与方均配置又密钥卡,各密钥卡内均存储有公钥池、私钥、证书授权中心的公钥指针随机数,用户的密钥卡内还存储有用户公钥指针随机数,抗量子证书颁发系统包括证书授权中心,所述证书授权中心包括:
[0154] 第一模块,用于生成抗量子证书,所述抗量子证书包括颁发者签名以及抗量子证书原文;所述抗量子证书原文包括:颁发者信息、证书信息以及持有者信息;所述颁发者信息包括颁发者名称,所述证书信息包括:版本号、序列号和有效期,所述持有者信息包括:持有者名称、公钥算法和持有者公钥指针随机数;
[0155] 第二模块,用于根据持有者公钥指针随机数在公钥池中获取持有者公钥;
[0156] 第三模块,用于根据持有者公钥以及持有者公钥指针随机数计算得到签名偏移量;
[0157] 第四模块,用于根据所述抗量子证书原文计算得到原文摘要;
[0158] 第五模块,用于利用证书授权中心的私钥以及所述签名偏移量对所述原文摘要进行签名,得到颁发者签名;
[0159] 第六模块,用于将抗量子证书安全发送至对应用户。
[0160] 在其中一个实施例中,所述抗量子证书颁发系统还包括设置在用户端的抗量子证书验证模块,所述抗量子证书验证模块包括:
[0161] 第一子模块,用于接收到所述抗量子证书;
[0162] 第二子模块,用于对所述抗量子证书持有者以及颁发者进行验证,若验证成功则进行下一步;
[0163] 第三子模块,用于根据证书授权中心的公钥指针随机数从所述公钥池中获取证书授权中心的公钥;
[0164] 第四子模块,用于根据抗量子证书中的持有者公钥指针随机数在公钥池中获取持有者的公钥;
[0165] 第五子模块,用于根据持有者公钥以及持有者公钥指针随机数计算得到所述签名偏移量;
[0166] 第六子模块,用于根据所述签名偏移量以及证书授权中心的公钥对颁发者签名进行计算,得到所述抗量子证书的第一原文摘要;
[0167] 第七子模块,用于根据所述抗抗量子证书原文进行计算,得到第二原文摘要;
[0168] 第八子模块,用于验证第一原文摘要与第二原文摘要是否相同,若相同则进行下一步;
[0169] 第九子模块,用于验证所述抗量子证书是否在有效期内。
[0170] 在其中一个实施例中,所述公钥池中存储有若干个公钥单元,每个参与方对应其中一个公钥单元,每个公钥单元包括:公钥指针随机数、公钥指针函数、公钥和公钥算法;
[0171] 第二子模块还包括:
[0172] 所述对所述抗量子证书持有者以及颁发者进行验证,包括如下步骤:
[0173] 根据接收的抗量子证书中的持有者公钥指针随机数在公钥池中寻找对应的公钥单元,若找到对应的公钥单元,则进行下一步;
[0174] 根据所述公钥单元中的公钥指针函数对持有者公钥指针随机数计算,得到公钥指针,若所述公钥指针与所述公钥单元中的公钥指针相同,则进行下一步;
[0175] 在公钥池和受信任的根证书列表中寻找所述抗量子证书中记载的证书授权中心的公钥指针随机数,若找到,则验证成功。
[0176] 在其中一个实施例中,所述抗量子证书颁发系统还包括设置在用户端的抗量子证书的种类鉴别模块,所述种类鉴别模块包括:判断接收的抗量子证书中的持有者公钥指针随机数是否与证书授权中心的公钥指针随机数相同;若不相同,则进行抗量子证书的验证过程,若验证通过,将该抗量子根证书加入受信任的根证书列表;若相同,则在进行抗量子证书的验证过程中,用证书授权中心的公钥指针随机数代替持有者公钥指针随机数对所述抗量子证书进行验证。
[0177] 本发明还提供了基于公钥池和签名偏移量的抗量子证书颁发系统,参与方包括证书授权中心和用户,各参与方均配置又密钥卡,各密钥卡内均存储有公钥池、私钥、证书授权中心的公钥指针随机数,用户的密钥卡内还存储有用户公钥指针随机数,各参与方包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序实现上述基于公钥池和签名偏移量的抗量子证书颁发方法。
[0178] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0179] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈