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

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

2022-08-30 23:12:20 来源:中国专利 TAG:

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


背景技术:

2.在很多应用中,人们希望割断自己的身份与行为之间的联系,又希望能够认证通信对象的身份并确保传递信息的完整性和保密性。认证密钥交换就是为实现这类密码任务而提出的。它涉及一个服务器及一组合法用户,要求服务器和任意一个合法用户在相互认证身份且不泄露用户身份的前提下共享一个安全的会话密钥,以保证后续通信的安全。
3.在经典密码学中,很多身份认证、密钥交换、加解密、数字签名方案已经陆续被提出。经典密码协议大多建立在数学困难问题假设上,随着量子计算机的出现,这类协议的安全性面临严峻威胁,因此,设计出一种抗量子计算的通信方案十分重要。
4.后量子密码学(post-quantum cryptography)是目前非常活跃的新兴密码学研究方向。美国国家安全局(nsa)2015年8月宣布抗量子密码算法的迁移计划,同年美国国家标准与技术研究院(nist)发起举行了“后量子网络安全研讨会”,并于2017年征集后量子公钥密码算法,力图推进后量子密码学的标准化工作,目前已经初见成效。
5.现有技术存在的问题:
6.1.现有基于非对称密钥池的抗量子计算系统(申请号为“201910034536.8”的专利)中,需要将所有成员的公钥生成非对称密钥池后存储到各密钥卡中,增加了用户端密钥卡的存储成本,导致用户使用抗量子计算方案的成本偏高;此外,改变了传统数字证书的数据结构,导致ca及用户应用系统切换到抗量子计算方案的成本过高;此外,ca中的非对称密钥池颁发中心需要面对所有用户的申领非对称密钥池的需求,业务量较大;此外,每个密钥卡中均存储有所有成员的公钥,尤其是存储有ca的公钥,一旦密钥卡被丢失或窃取从而被破解,将对所有成员的安全性造成影响,整个系统的安全性不够高;
7.2.现有基于id密码学的抗量子计算通信系统(申请号为“202020815697.9”的专利)中,需要额外部署一个基于id密码学的密钥管理服务器,改变了传统ca的部署方式,由于id密码学涉及到较为复杂的双线性对运算,引入了新的不确定性,增加了系统复杂性;
8.3.现有基于后量子密码学的ca系统中,由于大量用户端硬件无法支持后量子密码学的算法,用户端面临巨大的硬件升级成本。


技术实现要素:

9.针对相关技术中的问题,本发明提出一种基于后量子密码ca的抗量子计算通信方法及系统,以克服现有相关技术所存在的上述技术问题。
10.为此,本发明采用的具体技术方案如下:
11.一种基于后量子密码ca的抗量子计算通信系统,包括抗量子计算服务中心、证书颁发机构、和若干用户端,所述证书颁发机构是基于后量子密码算法构建的,所有成员均配
备有抗量子计算密钥卡,抗量子计算密钥卡具有不可拆解特性;
12.证书颁发机构的抗量子计算密钥卡中存储有证书颁发机构的后量子密码公私钥、公开的基于后量子密码的根证书,并为抗量子计算服务中心颁发公开的基于后量子密码的数字证书;
13.抗量子计算服务中心提供用户注册功能,为用户端颁发抗量子计算密钥卡,抗量子计算服务中心的抗量子计算密钥卡内部存储有基于后量子密码的公钥、基于后量子密码的私钥、公开的基于后量子密码的数字证书、普通的服务中心公钥、普通的服务中心私钥、不公开的服务中心普通数字证书、服务中心颁发的所有用户密钥卡的公钥所组成的公钥池;抗量子计算服务中心的证书颁发机构颁发不公开的服务中心普通数字证书;
14.用户端抗量子计算密钥卡中存储有抗量子计算服务中心的普通公钥,本用户端普通公私钥,本用户端密钥卡不公开的普通数字证书,用户端密钥卡不公开的普通数字证书由抗量子计算服务中心的证书颁发机构颁发;
15.用户端不对其他客户端的公钥或证书进行永久存储;
16.普通公私钥间满足椭圆曲线算法所定义的计算关系。
17.一种基于后量子密码ca的抗量子计算通信方法,实施在上述系统中,发生在用户端与抗量子计算服务中心之间,包括如下步骤:
18.s11、用户端利用自身的普通私钥、抗量子计算服务中心的普通公钥和验证信息基于密钥衍生函数生成第一共享密钥,生成第一真随机数,并使用用户端的普通私钥对用户端身份信息、验证信息签名得到第一签名,使用第一真随机数对第一签名和用户端不公开的普通数字证书加密得到第一密文,用户端发送第三密文,所述第三密文包含用户端身份信息、验证信息、第一密文和使用第一共享密钥加密第一真随机数后得到第二密文;
19.s12、用户端对应的抗量子计算服务中心收到第三密文后,根据用户端的身份信息从公钥池中获取用户端的普通公钥,利用自身的普通私钥、验证信息和用户端普通公钥基于密钥衍生函数生成第一共享密钥,使用第一共享密钥对第三密文解密和验证;验证通过后,抗量子计算服务中心生成会话密钥,使用抗量子计算服务中心的普通私钥对会话密钥、验证消息和抗量子计算服务中心的身份信息签名得到第二签名,使用第一真随机数加密会话密钥和第二签名得到第四密文,将抗量子计算服务中心身份信息、验证消息和第四密文组成第五密文发送给用户端;
20.s13、用户端收到第五密文后使用第一真随机数解密得到会话密钥和第二签名,使用抗量子计算服务中心的普通公钥对第二签名进行验证,认证完成;
21.s14、用户端和对应的抗量子计算服务中心使用会话密钥进行保密通信。
22.发生在抗量子计算服务中心之间,包括如下步骤:
23.s21、第一服务中心根据第二服务中心公开的后量子密码数字证书中取出第二服务中心的后量子密码公钥,生成第二真随机数,使用第一服务中心的普通私钥对第一服务中心的身份信息和验证消息进行签名得到第三签名,使用第二真随机数对第一服务中心不公开的普通数字证书和第三签名加密得到第六密文,使用第二服务中心的后量子密码公钥对第二真随机数进行基于后量子密码学的加密得到第七密文,将第一服务中心身份信息、验证消息、第六密文和第七密文组成第八密文发送给第二服务中心;
24.s22、第二服务中心收到第八密文后,使用第二服务中心的后量子密码私钥解密第
七密文得到第二真随机数,使用第二真随机数解密第六密文得到第三签名和第一服务中心的普通数字证书,验证数字证书和签名;验证通过后,第二服务中心保存第一服务中心的普通公钥,并生成第一会话密钥,使用第二服务中心的普通私钥对第二服务中心的身份信息、验证消息和第一会话密钥进行签名得到第四签名,使用第二真随机数对第一会话密钥、第四签名和第二服务中心的普通数字证书加密得到第九密文,将第二服务中心身份信息、验证消息和第九密文组成第十密文发送给第一服务中心;
25.s23、第一服务中心收到第十密文后使用第二真随机数解密得到第一会话密钥、第四签名和第二服务中心的普通数字证书,验证签名和数字证书,验证通过后确认获得第一会话密钥;
26.s24、第一服务中心和第二服务中心通过第一会话密钥进行保密通信。
27.可选地,所述验证数字证书和签名包括如下步骤:首先从服务中心公开的后量子密码数字证书中获取服务中心的后量子密码公钥,然后用后量子密码公钥验证普通数字证书中的数字签名,然后从普通数字证书中获取服务中心的普通公钥,然后用普通公钥验证签名。
28.发生在用户端之间,用户端属于同一服务中心,抗量子计算第一服务中心等于抗量子计算第二服务中心,包括如下步骤:
29.s31、第一用户端与对应的抗量子计算第一服务中心通信生成第二会话密钥,第二用户端与对应的抗量子计算第二服务中心通信生成第三会话密钥;
30.s32、第一用户端生成第一临时密钥,利用第一用户端的普通私钥对验证消息、第二用户端身份信息和第一临时密钥签名得到第五签名,将验证消息、第二用户端身份信息、第一临时密钥、第五签名、第一用户端的普通数字证书组成第十一密文,使用第二会话密钥对加密第十一密文得到第十二密文,并将第十二密文发送给第一用户端对应服务中心;
31.s33、第一用户端对应服务中心使用第二会话密钥解密第十二密文得到第十一密文,根据第二用户端身份信息找到第二用户端对应抗量子计算第二服务中心,使用第三会话密钥加密第十一密文得到第十四密文,将第十四密文发送到第二用户端;
32.s34、第二用户端收到第十四密文后,使用第三会话密钥解密第十四密文得到第十一密文,验证第十一密文,验证通过后生成第二临时密钥,利用第二用户端的普通私钥对验证消息、第一用户端身份信息和第二临时密钥签名得到第六签名,将验证消息、第一用户端身份信息、第二临时密钥、第六签名和第二用户端的普通数字证书组成第十五密文,对第一临时密钥加密得到第一密钥,使用第一密钥对第十五密文加密得到第十六密文,并将第十六密文发送给第一用户端,生成第四会话密钥;
33.s35、第一用户端验证第十六密文,验证通过后,生成第四会话密钥,使用第四会话密钥对第一用户端身份信息、第二用户端身份信息、验证消息计算得到消息认证码;将第十七密文发送到第二用户端,第十七密文包括第一用户端身份信息、第二用户端身份信息、验证消息和消息认证码;
34.s36、第二用户端收到第十七密文后,使用第四会话密钥验证消息认证码,验证通过后确认第一用户端获取第四会话密钥;
35.s37、使用第四会话密钥作为第一用户端和第二用户端之间的会话密钥。
36.发生在用户端之间,用户端属于不同抗量子计算服务中心,步骤s33为:第一用户
端对应服务中心使用第二会话密钥解密第十二密文得到第十一密文,根据第二用户端身份信息找到第二用户端对应抗量子计算第二服务中心,根据第二服务中心的普通公钥生成第一服务中心的证书颁发机构为第二服务中心颁发的第一数字证书,使用第一会话密钥加密第十一密文和第一数字证书后得到第十三密文,将第十三密文发送到第二用户端对应的第二服务中心;第二用户端对应的第二服务中心收到第十三密文后,使用第一会话密钥解密得到第十一密文和第一数字证书,根据第一服务中心的普通公钥生成第二服务中心的证书颁发机构为第一服务中心颁发的第二数字证书,使用第三会话密钥加密第十一密文、第一数字证书和第二数字证书组成的第十四密文并发送给第二用户端;
37.s34中的第十五密文还包括第一数字证书。
38.可选地,验证第十一密文包括如下步骤:使用第二服务中心普通公钥对第二数字证书进行验证,然后从第二数字证书中获取第一服务中心的普通公钥,然后用第一服务中心的普通公钥验证第一用户端的普通数字证书,然后从第一用户端的普通数字证书中获取第一用户端的普通公钥,然后用第一用户端的普通公钥验证第五签名;
39.优选地,所述临时密钥是由用户端生成的真随机数计算得到;第四会话密钥是对验证消息,用户端生成的真随机数和另一用户端生成的临时密钥计算得到;所述第一密钥是对第一临时密钥进行哈希运算得到。
40.作为优选,所述验证信息为当前时间戳;所述会话密钥为抗量子计算服务中心生成的真随机数。
41.发明的有益效果为:
42.1.本专利仅需要将公钥生成非对称密钥池后存储到抗量子计算服务的密钥卡中,各用户端不需要存储公钥池的密钥卡,因此用户使用抗量子计算方案的成本不高;此外,没有改变传统数字证书的数据结构,因此ca及用户应用系统切换到抗量子计算方案的成本不高;此外,ca仅需要颁发数字证书给抗量子计算服务,业务量大大降低,由抗量子计算服务承担了用户申请服务的需求,业务量被合理分流;此外,仅抗量子计算服务中存储有公钥池,且各抗量子计算服务的公钥池各不相同,拥有公钥池的密钥卡与服务部署在一起,一般可以被妥善保护,该密钥卡被丢失或窃取从而被破解的可能性很小,即使用户的密钥卡被破解,其中的公钥为抗量子计算服务的公钥,仅影响该抗量子计算服务及其所颁发的其他用户密钥卡,而抗量子计算服务一般为某局域网范围内的服务,损失可控,因此对所有成员的安全性造成影响的情况基本不会发生,从而提升了整个系统的安全性;
43.2.本专利无需部署额外的基于id密码学的密钥管理服务器,因此ca及用户应用系统切换到抗量子计算方案的成本不高;
44.3.本专利中,搭建了基于后量子密码学的ca和服务,但大量用户端硬件无需支持后量子密码学的算法,即无需进行硬件升级便可实现抗量子计算的通信,因此避免了用户端所面临的巨大的硬件升级成本。
附图说明
45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获
得其他的附图。
46.图1是根据本发明实施例的系统结构图;
47.图2是本发明实施例3中用户间通信流程图。
具体实施方式
48.为进一步说明各实施例,本发明提供有附图,这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理,配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点,图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
49.现结合附图和具体实施方式对本发明进一步说明,如图1所示,根据本发明的一个实施例,提供了一种基于后量子密码ca的抗量子计算通信方法。本实施例为3层树状结构,即ca层、抗量子计算服务中心层、用户层。
50.本专利中,系统结构如图1所示,包括证书颁发机构ca、抗量子计算服务中心s和用户端,均带有抗量子计算密钥卡,抗量子计算密钥卡具有不可拆解特性,可实现拆解即自毁。优选为,密钥卡内具有安全芯片来实现不可拆解特性。抗量子计算服务中心s一般为某局域网范围内的服务提供中心。
51.本专利中的证书颁发机构ca为基于后量子密码的ca系统,即基于后量子密码算法而建立。后量子密码学算法类型不限,如基于纠错码、哈希函数、超奇异椭圆曲线同源问题、格、多变量方程等数学原理的算法。ca具有基于后量子密码的公钥pkca、基于后量子密码的私钥skca、公开的基于后量子密码的根证书certca,并为抗量子计算服务中心颁发基于后量子密码的数字证书。certca中的公钥为pkca,签名私钥为skca。
52.抗量子计算服务中心s的抗量子计算密钥卡内部存储有基于后量子密码的公钥pks
pq
、基于后量子密码的私钥sks
pq
、公开的基于后量子密码的数字证书certs
pq
、普通公钥pks、普通私钥sks、不公开的普通数字证书certs、服务中心s颁发的所有用户密钥卡的公钥所组成的公钥池。其中certs
pq
中的公钥是pks
pq
,数字签名私钥是skca,该证书由ca所颁发;certs中的公钥是pks,数字签名私钥是sks
pq
,该证书由服务中心s中的ca(即cas)所颁发;抗量子计算服务中心的普通公私钥间满足sm2算法或ecc算法所定义的计算关系,即pks和sks满足pks=sks*p,p为椭圆曲线算法参数。
53.证书颁发机构ca可以是对公众服务的ca,也可以是公司、家庭内部所部署的私有ca。但ca不直接面对用户。
54.抗量子计算服务中心直接面对用户。抗量子计算服务中心提供用户注册功能,为用户端a颁发抗量子计算密钥卡,用户端a的抗量子计算密钥卡内部存储有服务中心的普通公钥、用户端a的普通公钥pka、用户端a的普通私钥ska、本密钥卡不公开的普通数字证书certa,其中certa中的公钥是pka,数字签名私钥是服务中心的普通私钥,该证书由服务中心中的ca所颁发,用户端的公私钥间满足sm2算法或ecc算法所定义的计算关系,即pka和ska满足pka=ska*p。
55.实施例1:用户端与抗量子计算服务中心间的通信流程
56.以用户端a与用户端a对应的服务中心sa认证为例:
57.用户端a从密钥卡中提取出自己的普通私钥ska和sa的普通公钥pksa,结合当前时
间戳ta生成与sa的当前共享密钥k
a-sa
=kdf(ta,ska*pksa);kdf(*,*):密钥衍生函数,例如mac函数即消息认证码函数。
58.用户端a生成真随机数ra,发送msga=ida||ta||{sig(ida||ta,ska)||certa}ra||{ra}k
a-sa
至sa;其中ida为用户端a的身份信息;ta为当前时间戳;sig(ida||ta,ska)为使用用户端a的普通私钥对ida和ta进行签名;certa表示用户端a的普通数字证书;{sig(ida||ta,ska)||certa}ra为使用ra对sig(ida||ta,ska)和certa的组合进行加密;{ra}k
a-sa
表示使用共享密钥k
a-sa
对ra进行加密。
59.用户端a对应的服务中心sa收到msga后,根据ida从公钥池中获取pka,根据密钥卡中sksa以及msga中ta生成与a的当前共享密钥k
sa-a
=kdf(ta,sksa*pka)。根据pka=ska*p,pksa=sksa*p,有sksa*pka=sksa*(ska*p)=ska*(sksa*p)=ska*pksa,所以k
sa-a
=kdf(ta,sksa*pka)=kdf(ta,ska*pksa)=k
a-sa

60.用户端a对应的服务中心sa使用共享密钥k
sa-a
解密msga得到ra并用ra进一步解密得到签名和数字证书,对数字证书和签名分别进行验证后,认可a的身份;认可a的身份后,用户端a对应的服务中心sa生成真随机数作为会话密钥ks
sa-a
,使用ra向a保密发送会话密钥ks
sa-a
、本消息的签名。即该消息为msgsa=idsa||ta||{ks
sa-a
||sig(idsa||ta||ks
sa-a
,sksa)}ra。
61.用户端a收到后使用ra解密得到会话密钥ks
sa-a
、本消息的签名,使用sa的普通公钥pksa对签名进行验证后,完成与sa之间的身份认证。
62.后续双方使用会话密钥进行保密通信。
63.同理,b与sb通信的流程类似,形成的会话密钥为ks
sb-b

64.实施例2:任意服务间的通信流程
65.以抗量子计算服务中心sa与另一抗量子计算服务中心sb的认证为例:
66.sa从密钥卡中提取出自己的普通私钥sksa,从sb公开的后量子密码数字证书certsb
pq
中获取sb的后量子密码公钥pksb
pq
,生成真随机数ra2并结合当前时间戳tsa,发送msgsa=idsa||tsa||{sig(idsa||tsa,sksa)||certsa}ra2||enc
pq
(ra2,pksb
pq
)至sa;其中idsa为sa的身份信息;tsa为当前时间戳;sig(idsa||tsa,sksa)为使用sa的普通私钥sksa对idsa和tsa进行签名;certsa表示sa的普通数字证书;enc
pq
(ra2,pksb
pq
)表示使用pksb
pq
对ra2进行后量子密码学加密。
67.sb收到msgsa后,使用sksb
pq
对enc
pq
(ra2,pksb
pq
)进行后量子密码学解密得到ra2,并用ra2进一步解密得到签名和数字证书,对数字证书和签名分别进行验证后,认可sa的身份:首先从sa公开的后量子密码数字证书certsa
pq
中获取sa的后量子密码公钥pksa
pq
,然后用pksa
pq
验证certsa中的数字签名,然后从certsa中获取sa的普通公钥pksa,然后用pksa验证sig(idsa||tsa,sksa)。认可sa的身份后,sb保存sa的普通公钥pksa,并生成真随机数作为会话密钥ks
sb-sa
,发送消息为msgsb=idsb||tsa||{ks
sb-sa
||sig(idsb||tsa||ks
sb-sa
,sksb)||certsb}ra2;其中idsb为sb的身份信息;sig(idsb||tsa||ks
sb-sa
,sksb)为使用sb的普通私钥sksb对idsb、tsa和ks
sb-sa
进行签名;certsb表示sb的普通数字证书。
68.sa收到后使用ra2解密得到会话密钥ks
sb-sa
、数字签名及sb的普通数字证书,如前文所述对普通数字证书及签名进行验证后,完成与sb之间的身份认证,并保存sb的普通公钥pksb。
69.后续双方使用会话密钥进行保密通信。
70.实施例3:任意隶属于不同服务的用户间的通信流程
71.设存在用户a和用户b,分别隶属于服务sa和服务sb。
72.(1)用户端a发出消息
73.用户端a生成真随机数ra,计算临时密钥ra=ra*p。
74.将msga=ta||idb||ra||sig(ta||idb||ra,ska)||certa利用用户端a和用户端a对应服务中心sa之间的会话密钥ks
sa-a
加密后发送到sa,其中ta为当前时间戳,idb为用户端b的身份信息,sig(ta||idb||ra,ska)为使用用户端a的普通私钥ska对ta、idb和临时密钥ra签名,certa为用户端a的普通数字证书。
75.服务中心sa收到后,使用与a之间的会话密钥ks
sa-a
解密,根据用户端b的身份信息idb找到其所属的服务为服务中心sb。sa根据sb的普通公钥pksb,生成sa的ca(即casa)为sb颁发的普通数字证书certsb
casa
。certsb
casa
中的公钥为pksb,签名私钥为sksa。
76.服务中心sa将msga2=msga||certsb
casa
用与sb之间的会话密钥加密后发送到服务中心sb。
77.服务中心sb收到后,使用与sa之间的会话密钥解密后,根据sa的普通公钥pksa,生成sb的ca(即casb)为sa颁发的普通数字证书certsa
casb
。certsb
casb
中的公钥为pksa,签名私钥为sksb。将msga3=msga||certsb
casa
||certsa
casb
用与b之间的会话密钥ks
sb-b
加密后发送到b。
78.(2)b收到消息
79.b收到消息后,使用与sb之间的会话密钥ks
sb-b
解密得到msga3。用pksb对certsa
casb
进行验证,然后从certsa
casb
中获取sa的普通公钥pksa,然后用pksa验证certa,然后从certa中获取a的普通公钥pka,然后用pka验证sig(ta||idb||ra,ska),验证通过后,认可a的身份。
80.(3)b发出消息
81.用户端b生成真随机数rb,计算临时密钥rb=rb*p。
82.将msgb=ta||ida||rb||sig(ta||ida||rb,skb)||certb||certsb
casa
用hash(ra)加密后发送到a。其中,hash(*)为哈希算法,ta是当前时间戳、ida是用户端a的身份信息,sig(ta||ida||rb,skb)是使用用户端b的普通私钥对当前时间戳、用户端a的身份信息和临时密钥的签名;certb是用户端b的普通数字证书。
83.用户端b生成会话密钥ks
b-a
=kdf(ta,rb*ra)。
84.为考虑安全性,用户端不对其他客户端的公钥或证书进行永久存储,优选为认证成功后删除。
85.(4)用户端a收到消息
86.用户端a收到消息后,使用hash(ra)解密消息,用前文所述方式对消息中的数字证书及数字签名进行验证,验证通过后,认可b的身份。
87.(5)用户端a发送消息
88.用户端a生成会话密钥ks
a-b
=kdf(ta,ra*rb)。根据ra=ra*p,rb=rb*p,有ra*rb=ra*(rb*p)=rb*(ra*p)=rb*ra,所以ks
a-b
=kdf(ta,ra*rb)=kdf(ta,rb*ra)=ks
b-a

89.用户端a生成msgab=ida||idb||ta||mac(ida||idb||ta,ks
a-b
),其中,ida为用户
端a的身份信息,idb为用户端b的身份信息,ta是当前时间戳,mac(ida||idb||ta,ks
a-b
)是使用会话密钥ks
a-b
对ida、idb和ta计算消息认证码。
90.用户端a发送msgab到用户端b。
91.用户端a将ks
a-b
作为与b通信的会话密钥。
92.(6)b收到消息
93.用户端b用ks
b-a
来验证消息认证码mac(ida||idb||ta,ks
a-b
),验证成功后确认a已获取会话密钥。
94.用户端b将ks
b-a
作为与用户端a通信的会话密钥。
95.(7)双方保密通信
96.后续双方使用会话密钥进行保密通信。
97.实施例4:任意隶属于同一服务的用户间的通信流程
98.设存在用户a和用户b,均隶属于服务sa。用户端a与服务中心sa之间有会话密钥ks
sa-a
,用户端b与服务中心sa之间有会话密钥ks
sa-b

99.(1)用户端a发出消息
100.用户端a生成真随机数ra,计算临时密钥ra=ra*p。
101.将msga=ta||idb||ra||sig(ta||idb||ra,ska)||certa利用用户端a和用户端a对应服务中心sa之间的会话密钥ks
sa-a
加密后发送到sa,其中ta为当前时间戳,idb为用户端b的身份信息,sig(ta||idb||ra,ska)为使用用户端a的普通私钥ska对ta、idb和临时密钥ra签名,certa为用户端a的普通数字证书。
102.服务中心sa收到后,使用与a之间的会话密钥ks
sa-a
解密,根据用户端b的身份信息idb找到其所属的服务为服务中心sa。
103.服务中心sa将msga用与b之间的会话密钥ks
sa-b
加密后发送到b。
104.(2)b收到消息
105.b收到消息后,使用与sa之间的会话密钥ks
sa-b
解密得到msga。用pksa验证certa,然后从certa中获取a的普通公钥pka,然后用pka验证sig(ta||idb||ra,ska),验证通过后,认可a的身份。
106.(3)b发出消息
107.用户端b生成真随机数rb,计算临时密钥rb=rb*p。
108.将msgb=ta||ida||rb||sig(ta||ida||rb,skb)||certb用hash(ra)加密后发送到a。其中,hash(*)为哈希算法,ta是当前时间戳、ida是用户端a的身份信息,sig(ta||ida||rb,skb)是使用用户端b的普通私钥对当前时间戳、用户端a的身份信息和临时密钥的签名;certb是用户端b的普通数字证书。
109.用户端b生成会话密钥ks
b-a
=kdf(ta,rb*ra)。
110.为考虑安全性,用户端不对其他客户端的公钥或证书进行永久存储,优选为认证成功后删除。
111.(4)用户端a收到消息
112.用户端a收到消息后,使用hash(ra)解密消息,用前文所述方式对消息中的数字证书及数字签名进行验证,验证通过后,认可b的身份。
113.(5)用户端a发送消息
114.用户端a生成会话密钥ks
a-b
=kdf(ta,ra*rb)。根据ra=ra*p,rb=rb*p,有ra*rb=ra*(rb*p)=rb*(ra*p)=rb*ra,所以ks
a-b
=kdf(ta,ra*rb)=kdf(ta,rb*ra)=ks
b-a

115.用户端a生成msgab=ida||idb||ta||mac(ida||idb||ta,ks
a-b
),其中,ida为用户端a的身份信息,idb为用户端b的身份信息,ta是当前时间戳,mac(ida||idb||ta,ks
a-b
)是使用会话密钥ks
a-b
对ida、idb和ta计算消息认证码。
116.用户端a发送msgab到用户端b。
117.用户端a将ks
a-b
作为与b通信的会话密钥。
118.(6)b收到消息
119.用户端b用ks
b-a
来验证消息认证码mac(ida||idb||ta,ks
a-b
),验证成功后确认a已获取会话密钥。
120.用户端b将ks
b-a
作为与用户端a通信的会话密钥。
121.(7)双方保密通信
122.后续双方使用会话密钥进行保密通信。
123.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
124.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献