基于数字证书的抗量子计算数字货币系统及匿名通信方法与流程

文档序号:29922228发布日期:2022-05-07 09:21阅读:175来源:国知局
基于数字证书的抗量子计算数字货币系统及匿名通信方法与流程

1.本发明涉及身份认证领域,尤其涉及一种基于数字证书的抗量子计算数字货币系统及匿名通信方法。


背景技术:

2.中国人民银行的数字货币d-rmb体系的核心要素为一种币、两类库和三个中心。一种币,即“d-rmb”(dc/ep),简称d币,特指一串由央行签名的代表具体金额的加密数字串。两类库:分别是d-rmb的发行库和银行库(中央银行数字货币数据库、商业银行数字货币数据库)。数字货币在发行库中即表现为央行的数字货币基金;数字货币在银行库中即表现为商业银行的库存数字现金。三个中心:一是登记中心(记录货币产生、流通、清点核对及消亡全过程);另外两个是认证中心,即ca认证中心(基于pki体系,对机构和用户证书进行集中管理,如cfca)和ibc认证中心(即基于标识的密码技术建立的认证中心(identity-based cryptograph))。在登记中心可设计两张表,一为数字货币权属登记表,记录数字货币的归属,另一张为交易流水表。
3.d-rmb体系是一种分级式的体系,即由中央银行与各商业银行共建,中央银行数字货币系统是由中央银行或中央银行指定机构运行维护的用来处理关于数字货币的信息的计算机系统,其主要功能包括负责数字货币的发行与验证监测;商业银行数字货币系统是由商业银行或商业银行指定机构运行维护的用来处理关于数字货币的信息的计算机系统,其执行现有银行的有关货币的各种功能,即银行功能,主要包括从中央银行申请到数字货币后,负责直接面向社会,满足提供数字货币流通服务的各项需求。
4.现有的d-rmb体系采用的是基于数字证书的身份认证技术,主要原理为:用户从权威机构申请数字证书,用于证明用户与其公钥之间具有绑定关系;服务器安装同一权威机构的根证书,用于验证该权威机构颁发的其他业务证书。服务器对用户身份进行身份认证的过程为:用户采用哈希函数对要发送的明文进行运算,生成摘要,然后用自己的私钥对摘要进行加密,得到数字签名;用户将明文、数字签名和自己从权威机构申请来的数字证书一起发送给服务器。服务器接收到用户发送的信息后,用根证书验证用户的数字证书,验证通过后,用数字证书中用户的公钥去验证用户的数字签名,验证通过则身份认证成功,否则认证不成功。
5.但是,现有的基于数字证书的身份认证系统中,用户终端、服务器和权威机构之间的数据交互都不能实现抗量子计算保密通信。
6.为了使基于数字证书的身份认证系统具备抗量子计算功能,专利cn109861813a提出一种基于非对称密钥池的抗量子计算https通信方法和系统,并具体公开了一种通信方法,该方法的参与方包括服务器、证书授权中心及客户端,客户端配置密钥卡,密钥卡内存储有非对称密钥池;所述抗量子计算https通信方法,包括以下步骤:服务器端获取证书授权中心颁发的数字证书,并向客户端发送该数字证书,所述数字证书中记载有服务器的公钥指针随机数;客户端获取证书授权中心颁发的与所述数字证书相匹配的根数字证书,依
据所述根数字证书对服务器发送的数字证书进行验证,根据验证通过的数字证书中记载的服务器的公钥指针随机数,在所述非对称密钥池中获取服务器公钥;利用服务器公钥对随机生成的共享密钥进行加密,向服务器发送加密结果以进行密钥协商;与服务器利用所述共享密钥进行https通信。
7.专利cn109861813a提出的方案虽然能够实现身份认证之后的抗量子计算通信,但是,专利cn109861813a所提出的技术方案中,客户端需要配置存储了所有成员的公钥的量子密钥卡,这对客户端的存储能力要求较高。且整个身份认证流程相较于现有技术存在修改,这就需要对传统的ca机构的内部结构进行改造,成本过高。
8.基于上述分析,数字货币通信系统的现有技术存在以下缺陷:
9.1.现有ca及基于数字证书的身份认证系统无法抗量子计算;
10.2.现有基于量子保密通信的抗量子计算身份认证系统中,对用户来说成本过高、对称密钥管理复杂;
11.3.现有基于非对称密钥池的抗量子计算身份认证系统中,需要将所有成员的公钥生成非对称密钥池后存储到各密钥卡中,增加了客户端密钥卡的存储成本和操作工作量;
12.4.现有基于非对称密钥池的抗量子计算身份认证系统中,改变了传统ca及基于数字证书的身份认证系统的整体流程和数据结构,导致ca及用户应用系统切换到抗量子计算方案的成本过高。


技术实现要素:

13.发明目的:为克服上述缺陷,本发明提出一种基于数字证书的抗量子计算数字货币系统及匿名通信方法,能够实现数字货币系统中,商业银行数字货币系统及其用户端之间身份认证过程的抗量子计算及保密通信。
14.

技术实现要素:
为实现上述目的,本发明提出一种基于数字证书的抗量子计算数字货币系统匿名通信方法,包括以下步骤:
15.(1)在数字货币系统中增设第三方权威机构,第三方权威机构为商业银行数字货币系统及其用户端分别颁发数字证书、根证书,以及为自己、商业银行数字货币系统及其用户端分别颁发id和公私钥,其中为用户端颁发的id为其匿名身份;其中,第三方权威机构生成某一对象x的公私钥的方法为:第三方权威机构先为x生成系统公私钥,然后用哈希函数计算x的id得到x的公钥,接着用x的公钥和x的系统私钥计算得到x的私钥;
16.(2)用户端预先在相应的商业银行数字货币系统登记真实身份信息和实时的id的对应关系;
17.(3)用户端在进行身份认证前,先生成申请新的id的请求消息,然后用己方数字证书私钥对请求消息进行签名,再用自己的私钥与第三方权威机构的公钥计算出与第三方权威机构之间的对称密钥,用对称密钥加密己方数字证书和签名后,连同请求消息一并发送给第三方权威机构;
18.(4)第三方权威机构先计算得到用户端的系统私钥,再用用户端的系统私钥与自己的公钥进行计算,然后用计算结果与用户端的公钥计算出第三方权威机构与用户端之间对称密钥;用对称密钥解密接收到的信息后,验证用户端的数字证书和签名,通过后再根据用户端请求生成新的id、新的系统公私钥和新的公私钥,并用商业银行数字货币系统的系
统私钥与用户端新的公钥计算一个中间密钥,再用根证书私钥对中间密钥、新的id、新的私钥进行签名,最后将中间密钥、新的id、新的私钥和签名用对称密钥加密后发送给用户端;
19.(5)用户端解密来自第三方权威机构的反馈信息,并用根证书验证签名,验证后保存中间密钥、新的id、新的私钥,并使用新的id作为其匿名身份;
20.(6)用户端用中间密钥与商业银行数字货币系统的公钥计算出与商业银行数字货币系统之间的对称密钥,而商业银行数字货币系统用自己的私钥和客户端的公钥计算出与客户端之间的对称密钥,然后双方基于计算出的对称密钥进行身份认证。
21.以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
22.可选的,所述身份认证过程如下:
23.用户端生成身份认证请求消息,然后用数字证书私钥对身份认证请求消息与新的id进行签名,用与商业银行数字货币系统的对称密钥加密数字证书和签名,最后将加密数据、身份认证请求消息、新的id一起发送给商业银行数字货币系统;
24.商业银行数字货币系统用对称密钥解密接收到的消息后,用根证书验证用户端的数字证书的有效性,若有效,则通过用户端数字证书的公钥验证签名;验证通过后,商业银行数字货币系统生成第一随机数;先用用户端数字证书的公钥加密第一随机数,再用自己的数字证书私钥进行签名,最后用对称密钥对加密后的第一随机数、签名、自己的数字证书进行联合加密后发送至用户端;
25.用户端解密接收到的数据,用根证书验证商业银行数字货币系统的数字证书的有效性,若有效,则用商业银行数字货币系统的数字证书的公钥验证其签名,验证通过后,用自己的数字证书私钥解密出第一随机数并保存;
26.用户端生成第二随机数,然后用商业银行数字货币系统的数字证书公钥加密第一随机数、第二随机数和旧的id,用自己的数字证书私钥对加密数据、旧的id进行签名,再用对称密钥对加密数据和签名再次加密后,连同旧的id一并发送给商业银行数字货币系统;
27.商业银行数字货币系统解密接收到的信息后,比对接收到的第二随机数与自己发出去的第二随机数是否一致,若一致,则更新用户端登记信息中的id为用户端新的id。
28.可选的,在用户端与第三方权威机构和商业银行数字货币系统进行通信的过程中,采用对称密钥加密数据时采用的加密方法如下:
29.发送方先计算出双方通信的对称密钥,再为本次通信生成一个时间戳,用对称密钥和时间戳计算出本次通信的通信密钥,用通信密钥加密数字证书和签名,并将加密数据和时间戳一并发送给接收方;
30.接收方接收到发送方发来的信息后,先计算出对称密钥,再根据接收到的信息中携带的时间戳计算出本次通信的通信密钥,通过通信密钥解密得到发送方的数字证书和签名。
31.可选的,所述用对称密钥和时间戳计算出本次通信的通信密钥方法为:用对称密钥对时间戳计算消息认证码,计算出的消息认证码即为本次通信密钥。
32.可选的,在用户端与第三方权威机构和商业银行数字货币系统进行通信的过程中,通信双方每次发送信息时,还计算消息认证码以保证通信消息的完整性。
33.可选的,用户端与商业银行数字货币系统完成身份认证后,双方建立会话,并采用相同的方式用第一、第二随机数计算出本轮会话的会话密钥并基于此会话密钥进行通信。
34.可选的,所述根证书中包括证书的版本号、序列号、有效期以及ca的证书公钥和根证书签名;所述用户端的数字证书包含证书公钥和用户端的真实身份;所述商业银行数字货币系统的数字证书包括证书公钥。
35.本发明还提出一种基于数字证书的抗量子计算数字货币系统,包括用户端、商业银行数字货币系统、央行数字货币系统和第三方权威机构;商业银行数字货币系统与央行数字货币系统之间通过预先建立的量子通信链路进行通信,而用户端、商业银行数字货币系统和第三方权威机构之间,根据权所述的基于数字证书的数字货币系统身份认证方法完成身份认证。
36.进一步的,所述用户端、商业银行数字货币系统和第三方权威机构均配置有抗量子计算装置,第三方权威机构的抗量子计算装置用于存储所有系统私钥、自己的公私钥和根证书,用户端的抗量子计算装置用于存储用户端自己的公私钥、系统公钥、数字证书和根证书,商业银行数字货币系统的抗量子计算装置用于存储商业银行数字货币系统的公私钥、系统公钥、数字证书和根证书。
37.进一步的,所述抗量子计算装置包括密钥卡、移动终端、密码机、网关。
38.有益效果:与现有技术相比,本发明具有以下有益效果:
39.1.本专利可以实现抗量子计算的基于数字证书的数字货币通信系统;
40.2.本专利不需要将所有成员的公钥生成非对称密钥池后存储到各密钥卡中,客户端密钥卡的存储成本和操作工作量小;
41.3.本专利没有改变传统ca及基于数字证书的身份认证系统的整体流程和数据结构,因此ca及数字货币通信系统切换到抗量子计算方案的成本不高;
42.4.基于id密码学的密钥颁发服务器对每个不同用户的系统公私钥均不同,即使某个用户的系统公钥丢失导致系统私钥被量子计算机破解,也不会危及到ca和其他用户的系统公私钥。
43.5.本专利中kms为用户颁发匿名身份,用户使用经常更新的匿名身份与商业银行数字货币系统进行通信可以使得通信更加安全。
44.6.本专利的通信模式满足了两种不同情况下对于安全性和成本的要求,即:对于机密性要求极度高、方案改动影响范围相对较小的中央银行与商业银行之间的通信,采用更高成本且更安全的量子保密通信,从而实现具有更高安全度的通信;对于机密性要求并非极度高、方案改动影响范围相对较大的商业银行与用户之间的通信,采用基于数字证书的抗量子计算通信,从而实现具有较高安全度且兼顾成本的通信。因此本专利将现有数字货币通信系统改进为抗量子计算数字货币通信系统,且兼顾了系统改进的成本。
附图说明
45.图1为本发明实施例中中央银行数字货币运行实例的基本结构图。
46.图2为本发明实施例中涉及的商业银行数字货币系统和用户之间的身份认证步骤的流程图。
具体实施方式
47.下面将结合附图和具体实施例对本发明作更进一步的说明。但应当理解的是,本发明可以以各种形式实施,以下在附图中出示并且在下文中描述的一些示例性和非限制性实施例,并不意图将本发明限制于所说明的具体实施例。
48.应当理解的是,在技术上可行的情况下,以上针对不同实施例所列举的技术特征可以相互组合,从而形成本发明范围内的另外的实施例。此外,本发明所述的特定示例和实施例是非限制性的,并且可以对以上所阐述的结构、步骤、顺序做出相应修改而不脱离本发明的保护范围。
49.以中央银行数字货币的运行实例来说,如图1所示,数字货币系统基本结构主要包括中央银行数字货币系统、商业银行数字货币系统(在实际中可以是多个商业银行数字货币系统)和用户,以及对三者之间进行认证的系统,中央银行与各商业银行进行身份认证并进行保密通信,各商业银行与各自用户身份认证并进行保密通信。其中,中央银行数字货币系统发行数字货币,并对数字货币进行权属登记;商业银行数字货币系统针对数字货币执行银行功能;用户则是数字货币使用的主体;认证系统对商业银行数字货币系统与数字货币的用户所使用的终端设备之间的交互提供认证,以及对中央银行数字货币系统与商业银行数字货币系统之间的交互提供认证。
50.商业银行数字货币系统和用户之间采用基于数字证书的抗量子计算身份认证系统,如图2,该认证系统包括用户a、用户a所对应的商业银行数字货币系统b和证书颁发机构ca。
51.ca具有抗量子计算装置t
ca
,t
ca
中部署有基于id密码学的密钥管理服务器kms。kms为用户a和商业银行数字货币系统b颁发抗量子计算装置ta、tb。抗量子计算装置可以是密钥卡、移动终端、密码机、网关等,可与ca或各个用户端分别进行主板接口通信、近距离无线通信、可控的内网通信等,可保证通信范围内不会被量子计算机窃取信息。例如,抗量子计算装置可以是密钥卡,密钥卡插接在ca机构的主机主板上。或者,抗量子计算装置可以是移动终端,与另一个也是移动终端的抗量子计算装置进行nfc通信。再如,抗量子计算装置是密码机或网关,与同一局域网内的用户主机进行安全的内网通信。
52.kms为某个成员颁发公私钥时,首先需要建立一套基于id密钥学的系统参数,步骤如下:
53.(1)g1,g2是阶为q的gdh(diffie

hellman群)群,q是一个大素数,g1是由椭圆曲线上的点构成的加法循环群,p是群g1的生成元;g2是一个乘法循环群;双线性映射e:g1×
g1→
g2。
54.(2)随机地取sk
ms
∈z
p*
作为ca的系统私钥,sk
ms
仅保存在ca的抗量子计算装置中,计算ca的系统公钥pk
ms
=sk
ms
*p,pk
ms
保存在ca的抗量子计算装置t
ca
。kms对不同用户的系统公私钥均不同,对于用户a,kms会生成唯一编码作为a的匿名身份ida,针对当前匿名身份,a的系统私钥为sk
msa
=mac(ida,sk
ms
)(mac(m,k)为使用密钥k对消息m计算消息认证码),a的系统公钥为pk
msa
=sk
msa
*p;对于商业银行数字货币系统b,kms会生成唯一编码作为idb,b的系统私钥为sk
msb
=mac(idb,sk
ms
),b的系统公钥为pk
msb
=sk
msb
*p;所有的系统私钥都保存在对应的抗量子计算装置中,pk
msa
保存在ta中,pk
msb
保存在tb中。
55.(3)选择哈希函数h1:{0,1}
*

g1,h2:g2→
{0,1}
*

56.(4)系统参数为{q,g1,g2,e,n,p,h1,h2}。
57.kms为ca颁发公私钥时,生成唯一编码作为id
ca
,调用哈希函数h1计算公钥pk
ca
=h1(id
ca
),再根据公钥pk
ca
计算私钥sk
ca
=sk
ms
*pk
ca
,将id
ca
、pk
ca
、sk
ca
存储于ca的抗量子计算装置t
ca
。t
ca
中还存储有ca根证书cert
ca
,cert
ca
中包括证书的版本号、序列号、有效期以及ca的证书公钥pk
certca
和证书签名,而证书私钥sk
certca
则由ca另外秘密保存(即不与id
ca
、pk
ca
、sk
ca
存储于同一存储设备),例如保存于抗量子计算装置t
ca
的安全芯片中,或者存储在连接抗量子计算装置的密钥卡里。证书公钥和证书签名可以基于rsa、ecc、离散对数、id密码学等多种非对称密码算法。
58.kms为用户a颁发公私钥时,调用哈希函数h1计算公钥pka=h1(ida),再根据公钥pka计算私钥ska=sk
msa
*pka,将a的id和公私钥即ida、pka、ska存储于a的抗量子计算装置ta。ta中还存储有kms颁发的ca根证书cert
ca
和a的证书certa,其中cert
ca
包括证书公钥pk
certca
,certa包括证书公钥pk
certa
和a的真实身份,而证书私钥sk
certa
则由a另外秘密保存,例如保存于抗量子计算装置ta的安全芯片中或者保存在连接于抗量子计算装置ta的密钥卡中。
59.kms为商业银行数字货币系统b颁发公私钥时,调用哈希函数h1计算公钥pkb=h1(idb),再根据公钥pkb计算私钥skb=sk
msb
*pkb,将b的id和公私钥即idb、pkb、skb存储于b的抗量子计算装置tb。tb中还存储有kms颁发的ca根证书cert
ca
和b的证书certb,其中cert
ca
包括证书公钥pk
certca
,certb中包括证书公钥pk
certb
,而证书私钥sk
certb
则由b另外秘密保存,例如保存于抗量子计算装置tb的安全芯片中或者存储在连接于抗量子计算装置tb的密钥卡中,并且b还保存有对应用户a的真实身份与当前匿名身份的对应表。
60.基于上述基于id密码学的密钥分发,图2展示了基于数字证书的抗量子计算身份认证系统在商业银行数字货币系统和用户之间的认证方法流程。下面的实施例详细描述了其过程。
61.实施例
62.(1)每当a需要进行身份认证时,a向ca申请更新生成新的匿名id
63.a用req1表示申请生成a的新的匿名id的请求,获取时间戳t1,然后将ida、id
ca
、t1、idb和req1组合起来称为msg
1_0
,即msg
1_0
=ida||id
ca
||t1||idb||req1,其中id
ca
表示该消息是由a发送给证书颁发机构ca的,idb是a所属的商业银行数字货币系统的id。
64.a计算与ca之间的对称密钥k
a-ca
=e(ska,pk
ca
),用k
a-ca
对t1计算消息认证码得到k1=mac(t1,k
a-ca
)。再用证书certa中的公钥pk
certa
对msg
1_0
进行签名得到sig1,用k1加密certa与sig1得到{certa||sig1}k1,将{certa||sig1}k1与msg
1_0
组合起来称为msg
1_1
,即msg
1_1
=msg
1_0
||{certa||sig1}k1。使用k1对msg
1_1
计算消息认证码得到mac(msg
1_1
,k1),再将msg
1_1
与mac(msg
1_1
,k1)组合起来称为msg1,并将消息msg1发送给ca。发出的消息中,数字证书和签名都被密钥加密,因此数字证书和签名可以抗量子计算,同时用户的真实身份被隐藏。
65.(2)ca为a生成新的匿名id,并计算a的基于b的私钥然后发送给a
66.ca收到来自a的消息msg1即msg
1_1
||mac(msg
1_1
,k1),又有msg
1_1
=msg
1_0
||{certa||sig1}k1,msg
1_0
=ida||id
ca
||t1||idb||req1。
67.ca中的kms计算a的系统私钥sk
msa
=mac(ida,sk
ms
),计算得到sk
caa
=sk
msa
*pk
ca
。然后根据pka=h1(ida)得到ca与a之间的对称密钥k
ca-a
=e(sk
caa
,pka)。根据id密码学可得:k
a-ca
=e(ska,pk
ca
)=e(sk
msa
*pka,pk
ca
)=e(pka,sk
msa
*pk
ca
)=e(pka,sk
caa
)=e(sk
caa
,pka)=kca-a

68.ca使用k
ca-a
对t1计算消息认证码得到k
′1=mac(t1,k
ca-a
)。先使用k
′1对msg
1_1
计算消息认证码得到mac(msg
1_1
,k
′1),与mac(msg
1_1
,k1)比较进行验证。验证通过后,再使用k
′1解密{certa||sig1}k1得到certa和sig1,使用ca根证书cert
ca
判断certa是否有效,若有效则用证书certa的公钥pk
certa
验证签名sig1。
69.验证通过后,ca为用户a生成新的匿名id即id
anew
。计算kms对id
anew
的系统私钥sk
msanew
=mac(id
anew
,sk
ms
),系统公钥pk
msanew
=sk
msanew
*p;计算id
anew
的公钥pk
anew
=h1(id
anew
),私钥sk
anew
=sk
msanew
*pk
anew
。再计算kms对b的系统私钥sk
msb
=mac(idb,sk
ms
),计算id
anew
的相对于b的私钥sk

anew
=sk
msb
*pk
anew
。ca获取时间戳t2,将id
ca
、ida、t2、id
anew
、sk
anew
和sk

anew
组合起来称为msg
2_0
,即msg
2_0
=id
ca
||ida||t2||id
anew
||sk
anew
||sk

anew
。用ca根证书中的私钥sk
certca
对msg
2_0
进行签名得到sig2,用k
ca-a
对t2计算消息认证码得到k2=mac(t2,k
ca-a
),然后用k2对id
anew
||sk
anew
||sk

anew
||sig2进行加密得到{id
anew
||sk
anew
||sk

anew
||sig2}k2,将其与id
ca
、ida和t2组合起来称为msg
2_1
,即msg
2_1
=id
ca
||ida||t2||{id
anew
||sk
anew
||sk

anew
||sig2}k2。再使用k2对msg
2_1
计算消息认证码得到mac(msg
2_1
,k2),再将msg
2_1
与mac(msg
2_1
,k2)组合起来称为msg2即msg2=msg
2_1
||mac(msg
2_1
,k2),并将消息msg2发送给a。
70.(3)a向b请求进行身份认证
71.a收到消息msg2,即msg
2_1
||mac(msg
2_1
,k2),又有msg
2_1
=id
ca
||ida||t2||{id
anew
||sk
anew
||sk

anew
||sig2}k2。使用k
a-ca
对t2计算消息认证码得到k
′2=mac(t2,k
a-ca
)。先使用k
′2对msg
2_1
计算消息认证码得到mac(msg
2_1
,k
′2),与mac(msg
2_1
,k2)比较进行验证。验证通过后,再使用k
′2解密{id
anew
||sk
anew
||sk

anew
||sig2}k2得到id
anew
||sk
anew
||sk

anew
||sig2。a使用ca根证书中的公钥pk
certca
对签名sig2进行验证,验证成功后,将id
anew
||sk
anew
存储在本地,并使用id
anew
作为新的匿名id。
72.a计算与b之间的对称密钥k
a-b
=e(sk

anew
,pkb),取时间戳t3,用k
a-b
对t3计算消息认证码得到k3=mac(t3,k
a-b
)。用req3表示a对b的身份认证请求,将id
anew
、idb、t3和req3组合起来称为msg
3_0
,即msg
3_0
=id
anew
||idb||t3||req3。用证书certa中的私钥sk
certa
对msg
3_0
进行签名得到sig3,然后用k3对certa和sig3进行加密得到{certa||sig3}k3,并与msg
3_0
组合起来称为msg
3_1
即msg
3_1
=msg
3_0
||{certa||sig3}k3。使用k3对msg
3_1
计算消息认证码得到mac(msg
3_1
,k3),再将msg
3_1
与mac(msg
3_1
,k3)组合起来称为msg3,并将消息msg3发送给b。
73.(4)b对a进行身份认证并返回生成的随机数
74.b收到消息msg3,msg3=msg
3_1
||mac(msg
3_1
,k3),又有msg
3_1
=msg
3_0
||{certa||sig3}k3和msg
3_0
=id
anew
||idb||t3||req3。首先b根据pk
anew
=h1(id
anew
)得到b与a之间的对称密钥k
b-a
=e(skb,pk
anew
)。根据id密码学可得:k
a-b
=e(sk

anew
,pkb)=e(sk
msb
*pk
anew
,pkb)=e(pk
anew
,sk
msb
*pkb)=e(pk
anew
,skb)=e(skb,pk
anew
)=k
b-a
。b使用k
b-a
对t3计算消息认证码得到k
′3=mac(t3,k
b-a
)。用k
′3对msg
3_1
计算消息验证码得到mac(msg
3_1
,k
′3),与mac(msg
3_1
,k3)比较进行验证。验证通过后,用k
′3解密{certa||sig3}k3得到certa||sig3。使用ca根证书cert
ca
判断certa是否有效,若有效则用证书certa的公钥pk
certa
验证签名sig3。
75.验证通过后,b获取时间戳t4,使用k
b-a
对t4计算消息认证码得到k4=mac(t4,k
b-a
)。b生成随机数nb,使用pk
certa
加密nb和idb得到{nb||idb}pk
certa
,并与idb、ida和t4组合起来称为msg
4_0
即msg
4_0
=idb||ida||t4||{nb||idb}pk
certa
。用证书certb中的私钥sk
certb
对msg
4_0

行签名得到sig4,用k4对{nb||idb}pk
certa
||certb||sig4进行加密得到{{nb||idb}pk
certa
||certb||sig4}k4,再与idb、ida和t4组合起来称为msg
4_1
即msg
4_1
=idb||ida||t4||{{nb||idb}pk
certa
||certb||sig4}k4。使用k4对msg
4_1
计算消息认证码得到mac(msg
4_1
,k4),再将msg
4_1
与mac(msg
4_1
,k4)组合起来称为msg4,并将消息msg4发送给a。
76.(5)a对b进行身份认证并返回生成的随机数
77.a收到消息msg4,即msg
4_1
||mac(msg
4_1
,k4),又有msg
4_1
=idb||ida||t4||{{nb||idb}pk
certa
||certb||sig4}k4。使用k
a-b
对t4计算消息认证码得到k
′4=mac(t4,k
a-b
)。用k
′4对msg
4_1
计算消息认证码得到mac(msg
4_1
,k
′4),与mac(msg
4_1
,k4)比较进行验证。验证通过后,用k
′4解密{{nb||idb}pk
certa
||certb||sig4}k4得到{nb||idb}pk
certa
||certb||sig4。a使用ca根证书cert
ca
判断certb是否有效,若有效则用证书certb的公钥pk
certb
验证签名sig4。验证通过后,用证书certa的私钥sk
certa
解密{nb||idb}pk
certa
得到nb||idb,将nb保存在本地。
78.a获取时间戳t5,使用k
a-b
对t5计算消息认证码得到k5=mac(t5,k
a-b
)。a生成随机数na,使用pk
certb
加密na、nb和ida得到{na||nb||ida}pk
certb
,并与ida、idb和t5组合起来称为msg
5_0
即msg
5_0
=ida||idb||t5||{na||nb||ida}pk
certb
。用证书certa中的私钥sk
certa
对msg
5_0
进行签名得到sig5,用k5对{na||nb||ida}pk
certb
||sig5进行加密得到{{na||nb||ida}pk
certb
||sig5}k5,再与ida、idb和t5组合起来称为msg
5_1
即msg
5_1
=ida||idb||t5||{{na||nb||ida}pk
certb
||sig5}k5。使用k5对msg
5_1
计算消息认证码得到mac(msg
5_1
,k5),再将msg
5_1
与mac(msg
5_1
,k5)组合起来称为msg5,并将消息msg5发送给b。
79.(6)b计算得到会话密钥并更新a的真实身份与当前匿名身份的对应表
80.b收到消息msg5,即msg
5_1
||mac(msg
5_1
,k5),又有msg
5_1
=ida||idb||t5||{{na||nb||ida}pk
certb
||sig5}k5。使用k
b-a
对t5计算消息认证码得到k
′5=mac(t5,k
b-a
)。用k
′5对msg
5_1
计算消息认证码得到mac(msg
5_1
,k
′5),与mac(msg
5_1
,k5)比较进行验证。验证通过后,用k
′5解密{{na||nb||ida}pk
certb
||sig5}k5得到{na||nb||ida}pk
certb
||sig5。b用pk
certa
验证签名sig5,验证通过后用证书私钥sk
certb
解密{na||nb||ida}pk
certb
得到na||nb||ida。
81.b验证收到的nb和本地的nb是否一致,在判定一致后,b用na和nb进行计算得到会话密钥。并且更新本地保存的a的真实身份与当前匿名身份的对应表,即将a对应的匿名身份由ida更新为id
anew
。获取时间戳t6,使用k
b-a
对t6计算消息认证码得到k6=mac(t6,k
b-a
)。使用pk
certa
加密na得到{na}pk
certa
,并与idb、ida和t6组合起来称为msg
6_0
即msg
6_0
=idb||ida||t6||{na}pk
certa
。用sk
certb
对msg
6_0
进行签名得到sig6,用k6对{na}pk
certa
||sig6进行加密得到{{na}pk
certa
||sig6}k6,再与idb、ida和t6组合起来称为msg
6_1
即msg
6_1
=idb||ida||t6||{{na}pk
certa
||sig6}k6。使用k6对msg
6_1
计算消息认证码得到mac(msg
6_1
,k6),再将msg
6_1
与mac(msg
6_1
,k6)组合起来称为msg6,并将msg6发送给a。
82.(7)a计算得到会话密钥
83.a收到消息msg6,即msg
6_1
||mac(msg
6_1
,k6),又有msg
6_1
=idb||ida||t6||{{na}pk
certa
||sig6}k6。使用k
a-b
对t6计算消息认证码得到k
′6=mac(t6,k
a-b
)。用k
′6对msg
6_1
计算消息认证码得到mac(msg
6_1
,k
′6),与mac(msg
6_1
,k6)比较进行验证。验证通过后,用k
′6解密{{na}pk
certa
||sig6}k6得到{na}pk
certa
||sig6。a用pk
certb
验证签名sig6,验证通过后用证书私钥sk
certa
解密{na}pk
certa
得到na。
84.a验证收到的na和本地的na是否一致。验证通过后,用na和nb进行计算得到会话密
钥。
85.中央银行数字货币系统和商业银行数字货币系统之间则是通过qkd通信来进行身份认证:中央银行数字货币系统和商业银行数字货币系统双方各有一qkd设备,双方设备通过qkd线路进行量子保密通信并协商得到会话密钥。
86.当商业银行数字货币系统和用户协商好会话密钥并且中央银行数字货币系统和商业银行数字货币系统也协商好会话密钥后,整个数字货币系统就可以开展各项业务,比如进行数字货币的支付、转账等。
87.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
88.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1