1.本发明涉及数字货币领域,尤其涉及一种数字货币的抗量子计算匿名双离线交易方法及系统。
背景技术:
2.中国人民银行的数字货币d-rmb体系的核心要素为一种币、两类库和三个中心。一种币,即“d-rmb”(dc/ep),简称d币,特指一串由央行签名的代表具体金额的加密数字串。两类库:分别是d-rmb的发行库和银行库(中央银行数字货币数据库、商业银行数字货币数据库)。数字货币在发行库中即表现为央行的数字货币基金;数字货币在银行库中即表现为商业银行的库存数字现金。三个中心:一是登记中心(记录货币产生、流通、清点核对及消亡全过程);另外两个是认证中心,即ca认证中心(基于pki体系,对机构和用户证书进行集中管理,如cfca)和ibc认证中心【即基于标识的密码技术建立的认证中心(identity-based cryptograph)】。在登记中心可设计两张表,一为数字货币权属登记表,记录数字货币的归属,另一张为交易流水表。
3.d-rmb系统是一种分级式的体系,即由中央银行与各商业银行共建,中央银行数字货币系统是由中央银行或中央银行指定机构运行维护的用来处理关于数字货币的信息的计算机系统,其主要功能包括负责数字货币的发行与验证监测,商业银行数字货币系统是由商业银行或商业银行指定机构运行维护的用来处理关于数字货币的信息的计算机系统,其执行现有银行的有关货币的各种功能,即银行功能,主要包括从中央银行申请到数字货币后,负责直接面向社会,满足提供数字货币流通服务的各项需求。
4.专利cn201911053809公开了一种基于数字货币的匿名交易方法和系统,但是该方法及系统存在一些问题:只能进行在线交易,用户的临时身份只有得到己方服务端认可的情况下才能进行后续的交易流程,当用户无法与己方服务端进行通信时,该方法的收款方无法利用用户的临时身份验证其对交易的数字签名(在基于数字证书的数学签名中,由于用户需要隐藏真实身份,因此无法提供包含其真实身份的数字证书,并且无法证明其临时身份与其数字证书之间的关联,因此无法用其数字证书验证其对交易的数字签名;在基于id密码学的数学签名中,由于用户需要隐藏真实身份,因此无法提供其真实身份,并且无法证明其临时身份与真实身份之间的关联关系,因此无法用其真实身份验证其对交易的数字签名),因此收款方在没有收到发款方任何身份凭证的情况下无法承认此交易的合法性并完成整个交易流程。
5.基于上述分析,数字货币通信系统的现有技术存在以下缺陷:
6.1.现有大部分基于数字证书或基于用户id的数字货币交易方法暴露了用户身份;
7.2.现有基于数字证书或基于用户id的数字货币匿名交易方法能保证用户匿名身份却不能进行发款方和收款方均离线(即双离线)的匿名交易;
8.3.现有的数字货币交易方法不能抗量子计算。
技术实现要素:
9.针对相关技术中的问题,本发明提出一种数字货币的抗量子计算匿名双离线交易方法及系统,以克服现有相关技术所存在的上述技术问题。
10.为此,本发明采用的具体技术方案如下:
11.根据本发明的一个方面,提供了一种数字货币的抗量子计算匿名双离线交易方法,该方法包括以下步骤:
12.s1、准备阶段:中央银行数字货币系统为发款终端及收款终端分别颁发基于id密码学的抗量子计算数字货币及抗量子计算数字证书,且通过密钥管理服务器为发款终端及收款终端分别颁发基于id密码学的私钥;
13.s2、双离线交易阶段:发款终端与收款终端之间通过可信中介进行双离线交易;
14.s3、在线交易阶段:使用中央银行数字货币系统对交易进行确认;
15.其中,所述s1中央银行数字货币系统为发款终端及收款终端分别颁发基于id密码学的抗量子计算数字货币具体包括以下步骤:
16.发款终端/收款终端生成一组基于rsa或ecc密码体系的公私钥对,并将公钥发送给对应的商业银行,对应的商业银行将该公钥发送给中央银行数字货币系统,中央银行数字货币系统根据该公钥及币值生成对应各类币值的抗量子计算数字货币和该数字货币的id对应的基于id密码学的私钥,并将该数字货币和基于id密码学的私钥发送给对应的商业银行,对应的商业银行再将该数字货币和基于id密码学的私钥发送给对应的用户终端。
17.进一步的,所述s2中发款终端与收款终端之间通过可信中介进行双离线交易包括以下步骤:
18.s21、可信中介发送可信中介抗量子计算数字证书到收款终端,收款终端验证该数字证书;
19.s22、收款终端发送第一组合信息到可信中介,可信中介验证该第一组合信息;
20.s23、可信中介发送第二组合信息到发款终端,发款终端验证该第二组合信息;
21.s24、发款终端发送交易到收款终端;
22.s25、收款终端确认交易。
23.进一步的,所述s21中可信中介发送可信中介抗量子计算数字证书到收款终端,收款终端验证该数字证书具体包括以下步骤:
24.s211、可信中介将可信中介抗量子计算数字证书发送给收款终端;
25.s212、收款终端收到后,用中央银行数字货币系统的公钥解密可信中介抗量子计算数字证书中的加密签名,并对解密得到的签名进行验证,若验证成功,则收款终端认可信中介为可信中介抗量子计算数字证书的拥有者,并进行后续的步骤。
26.进一步的,所述s22中收款终端发送第一组合信息到可信中介,可信中介验证该第一组合信息具体包括以下步骤:
27.s221、收款终端生成基于rsa或ecc密码体系的临时公私钥对,并计算己方与可信中介之间的第一对称密钥;
28.s222、用收款终端私钥对收款终端临时公钥及第一时间戳进行基于id密码学的签名并得到第一签名信息,用第一对称密钥对收款终端临时公钥及第一签名信息进行加密得到第一加密信息,并与第一时间戳及收款终端抗量子计算数字证书组成第一组合信息,并
将该消息发送给可信中介;
29.s223、可信中介收到消息后,确认第一时间戳为当前时间,用中央银行数字货币系统公钥解密收款终端抗量子计算数字证书中的加密签名,并对解密得到的签名进行验证,验证后确认收款终端抗量子计算数字证书合法且其中包含的收款终端id有效;
30.s224、计算可信中介与收款终端之间的第二对称密钥;
31.s225、使用第二对称密钥解密第一加密信息得到收款终端临时公钥和第一签名信息,并用收款终端公钥对该签名信息进行验证,若验证都通过,则可信中介认可收款终端的身份;
32.其中,所述s221中计算己方与可信中介之间的第一对称密钥具体包括以下步骤:收款终端获取第一时间戳,并计算得到可信中介公钥,同时取出基于id密码学的收款终端私钥,并计算得到第一对称密钥。
33.进一步的,所述s23中可信中介发送第二组合信息到发款终端,发款终端验证该第二组合信息具体包括以下步骤:
34.s231、计算可信中介与发款终端之间的第三对称密钥;
35.s232、用可信中介私钥对收款终端临时公钥及第二时间戳进行签名得到第二签名信息,并用第三对称密钥对收款终端临时公钥及第二签名信息进行加密得到第二加密信息,且与第二时间戳及可信中介抗量子计算数字证书组成第二组合信息,并将该信息发送给发款终端;
36.s233、发款终端收到消息后,确认第二时间戳为当前时间,用中央银行数字货币系统公钥解密可信中介抗量子计算数字证书中的加密签名,并对解密得到的签名进行验证;
37.s234、计算发款终端与可信中介之间的第四对称密钥;
38.s235、使用第四对称密钥解密第二加密信息得到收款终端临时公钥和第二签名信息,并用可信中介公钥对该签名信息进行验证,若验证都通过,则发款终端认可可信中介为可信中介抗量子计算数字证书的拥有者及认可收款终端临时公钥为收款方id兼公钥。
39.进一步的,s24中发款终端发送交易到收款终端具体包括以下步骤:
40.s241、发款终端取出一个抗量子计算数字货币,并获取第三时间戳,并将第三时间戳、发款方商业银行id、第二组合信息和抗量子计算数字货币组成交易;
41.s242、用数字货币对应的rsa或ecc私钥对交易进行签名得到第三签名信息,并计算抗量子计算数字货币和收款终端之间的第五对称密钥;
42.s243、用第五对称密钥对交易及第三签名信息进行加密得到第三加密信息,并将第三时间戳、第三加密信息及抗量子计算数字货币id一起发送给收款终端。
43.进一步的,所述s25中收款终端确认交易具体包括以下步骤:
44.s251、收款终端收到消息后,计算己方与抗量子计算数字货币之间的第六对称密钥;
45.s252、使用第六对称密钥解密第三加密信息得到交易及第三签名信息,且收款终端取出抗量子计算数字货币中的加密公钥并用中央银行数字货币系统公钥进行解密得到其中的rsa或ecc公钥,再用该公钥对第三签名信息进行验证,若验证成功后对抗量子计算数字货币进行验证若验证成功则信任该交易并取出交易中的抗量子计算数字货币并进行存储,标记为央行未确认;
46.s253、收款终端将确认交易的消息用收款终端临时私钥进行签名得到第四签名信息,并将确认交易的消息及第四签名信息用第六对称密钥进行加密并发送给发款终端;
47.s254、发款终端收到消息后,用第五对称密钥对其解密得到确认交易的消息及第四签名信息,并使用收款终端临时公钥验证第四签名信息,若验证成功,且确认交易的消息为成功后删除抗量子计算数字货币及其私钥。
48.进一步的,所述s3中使用中央银行数字货币系统对交易进行确认具体包括以下步骤:
49.s31、收款终端发送消息给收款方商业银行,收款方商业银行将该消息发送给中央银行数字货币系统;
50.s32、中央银行数字货币系统收到消息后在本地存储收款终端id、交易及收款终端临时公钥,同时将交易及收款终端临时公钥用发款方商业银行公钥进行加密并发送给发款方商业银行;
51.s33、发款方商业银行收到消息后,用己方私钥解密得到交易及收款终端临时公钥,并根据交易中的抗量子计算数字货币找到发款终端,并获知发款终端id,发款方商业银行将发款终端id、收款终端临时公钥及交易作为一个完整的交易条目存储在本地;
52.s34、发款方商业银行将发款终端id及交易结果用中央银行数字货币系统公钥进行加密并发送给中央银行数字货币系统;
53.s35、中央银行数字货币系统收到消息后解密得到发款终端id及交易结果,若交易结果为成功,则中央银行数字货币系统将发款终端id、收款终端id及交易作为一个完整的交易条目存储在本地,且中央银行数字货币系统将交易结果用收款方商业银行公钥进行加密并发给收款方商业银行;
54.s36、收款方商业银行收到消息后解密得到交易结果,若交易结果为成功,则将发款方商业银行id、收款终端id及交易作为一个完整的交易条目存储在本地,且将交易结果用收款终端的公钥进行加密并发给收款终端;
55.s37、收款终端收到消息后解密得到交易结果,若交易结果为成功,则收款终端将抗量子计算数字货币标记为央行已确认。
56.进一步的,所述s31中收款终端发送消息给收款方商业银行,收款方商业银行将该消息发送给中央银行数字货币系统具体包括以下步骤:
57.s311、收款终端获取第四时间戳并取出交易,用收款终端私钥对交易、收款终端临时公钥、第四时间戳进行签名得到第五签名信息,该第五签名信息与收款终端临时公钥、第四时间戳、收款终端抗量子计算数字证书及交易组成第三消息信息并发给收款方商业银行;
58.s312、收款方商业银行收到消息后,对第四时间戳进行确认,用中央银行数字货币系统公钥解密收款终端抗量子计算数字证书中的加密签名,并对解密得到的签名进行验证,若验证成功,用收款终端公钥对第五签名信息进行验证,若验证成功,则收款方商业银行从收款终端抗量子计算数字证书中获取收款终端id,确认收款终端临时公钥为该次交易中的收款方id兼公钥,收款方商业银行将收款终端id、交易及收款终端临时公钥发送给中央银行数字货币系统。
59.根据本发明的另一方面,提供了一种数字货币的抗量子计算匿名双离线交易系
统,该系统包括中央银行数字货币系统、可信中介、发款方商业银行、收款方商业银行、发款终端及收款终端,发款方商业银行与发款终端相对应,收款方商业银行与收款终端相对应,中央银行数字货币系统与商业银行之间、商业银行与用户终端之间均部署有抗量子计算通信系统,其中,中央银行数字货币系统拥有一对基于rsa密码体系的公私钥对,且该私钥保存于中央银行中,公钥颁发给所有的商业银行及用户终端并保存在对应的硬件钱包中;中央银行数字货币系统还配备有基于id密码学的密钥管理服务器,且该密钥管理服务器用于为中央银行数字货币系统颁发系统私钥,还用于为所有拥有id的对象颁发基于id密码学的私钥;各成员均带有抗量子计算数字证书,证书中存有该成员的真实身份,可信中介存有各商业银行的抗量子计算数字证书。
60.本发明的有益效果为:
61.1.本发明设计了配有私钥的数字货币和交易的可信中介,可以实现一种数字货币的抗量子计算匿名双离线交易方法,使得双离线交易中的交易双方不知道对方的信息,从而保护了交易者的身份信息;且本发明的方法可以进行数字货币间的包括双离线交易在内的各类交易,实现同样的保护交易者身份信息的效果;并且可以实现抗量子计算。
62.2.本发明中的交易流程除了支持双离线交易,也支持发款方在线且收款方离线的交易、发款方离线且收款方在线的交易、发款方在线且收款方在线的交易,即该流程支持所有类型的交易,且能实现同样的交易双方匿名的效果。
附图说明
63.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
64.图1为本发明实施例中涉及的数字货币的抗量子计算匿名双离线交易步骤的流程图;
65.图2为本发明实施例中抗量子计算数字货币的数据结构图;
66.图3为本发明实施例中中央银行数字货币系统的基本结构图。
具体实施方式
67.为进一步说明各实施例,本发明提供有附图,这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理,配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点,图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
68.根据本发明的实施例,提供了一种数字货币的抗量子计算匿名双离线交易方法及系统。
69.现结合附图和具体实施方式对本发明进一步说明,如图1-2所示,根据本发明的一个实施例,提供了一种数字货币的抗量子计算匿名双离线交易方法,该方法包括以下步骤:。
70.s1、准备阶段:中央银行数字货币系统为发款终端及收款终端分别颁发基于id密
码学的抗量子计算数字货币及抗量子计算数字证书,且通过密钥管理服务器为发款终端及收款终端分别颁发基于id密码学的私钥;
71.具体的,ss拥有一对基于rsa密码体系的公私钥对pk
ss
/sk
ss
,其中私钥sk
ss
由ss保存,公钥pk
ss
颁发给所有的商业银行和用户终端并保存在它们的硬件钱包中,且永不公开。ss同时维护有基于id密码学的密钥管理服务器kms,其为ss颁发系统私钥skms,为所有拥有id的对象(包括商业银行、用户终端、可信中介和数字货币)颁发基于id密码学的私钥,比如为收款方终端ct颁发sk
ct
,为发款方终端pt颁发sk
pt
。其中存在公私钥对应关系sk
ct
=skms*pk
ct
和sk
pt
=skms*pk
pt
,又有pk
ct
=h1(idct)和pk
pt
=h1(idpt)。
72.其中,所述s1中央银行数字货币系统为发款终端及收款终端分别颁发基于id密码学的抗量子计算数字货币具体包括以下步骤:
73.央行ss为用户终端颁发抗量子计算数字货币的过程如下:发款终端pt生成一组基于rsa或ecc密码体系的公私钥对,并将公钥发送给对应的商业银行ps,ps将该公钥发送给央行ss,ss根据该公钥及币值生成对应各类币值的抗量子计算数字货币和该数字货币的id对应的基于id密码学的私钥,并将该数字货币和基于id密码学的私钥发送给ps,ps再将该数字货币和基于id密码学的私钥发送给pt。央行同样按照该方法为收款终端ct颁发抗量子计算数字货币和对应的基于id密码学的私钥。
74.ss颁发的抗量子计算数字货币的数据结构如图2所示,包括id、币值、加密公钥和加密签名。其中使用真随机数参数rpk加密数字货币携带的公钥(即前文提到的参与生成数字货币的公钥)得到{公钥}rpk,再用ss的私钥sk
ss
加密参数rpk得到{rpk}sk
ss
,将两者组合起来得到{公钥}rpk||{rpk}sk
ss
,这就是数字货币数据结构中的加密公钥。若要得到公钥,则用pk
ss
解密{rpk}sk
ss
得到rpk,进而用rpk解密{公钥}rpk得到公钥。使用真随机数参数rs加密数字货币的签名得到{签名}rs,再用ss的私钥sk
ss
加密参数rs得到{rs}sk
ss
,将两者组合起来得到{签名}rs||{rs}sk
ss
,这就是数字货币数据结构中的加密签名。若要得到签名,则用pk
ss
解密{rs}sk
ss
得到rs,进而用rs解密{签名}rs得到签名。公钥和签名被对称加密后,可以抗量子计算。
75.s2、双离线交易阶段(发款终端与收款终端之间通过可信中介进行双离线交易)
76.s21、mt(可信中介)发送消息,ct(收款终端)验证(可信中介发送可信中介抗量子计算数字证书到收款终端,收款终端验证该数字证书)
77.mt将抗量子计算数字证书cert
mt
发送给ct。
78.ct收到后,用ss的公钥pk
ss
解密cert
mt
中的加密签名,并对解密得到的签名进行验证。如果验证成功,则ct认可mt为cert
mt
的拥有者且为可信中介,并进行后续的步骤,否则ct确认交易失败并不再进行后续步骤。
79.s22、ct发送消息,mt验证(收款终端发送第一组合信息到可信中介,可信中介验证该第一组合信息)
80.ct生成基于rsa或ecc密码体系的临时公私钥对pk
ct(temp)
/sk
ct(temp)
,计算己方与mt之间的对称密钥k
ct-mt
(第一对称密钥):获取当前时间戳t1(第一时间戳),根据公式pk
mt
=h1(idmt)计算得到pk
mt
,取出ct的基于id密码学的私钥sk
ct
,计算两者之间的对称密钥k
ct-mt
=ftx(t1,e(sk
ct
,pk
mt
)),其中ftx(t,k)为任意函数,例如消息认证函数或者拼接函数等。用sk
ct
对pk
ct(temp)
||t1进行基于id密码学的签名得到sign(pk
ct(temp)
||t1,sk
ct
)(第一签名信
息),用k
ct-mt
对pk
ct(temp)
||sign(pk
ct(temp)
||t1,sk
ct
)进行加密并与t1、ct的抗量子计算数字证书cert
ct
组成消息{pk
ct(temp)
||sign(pk
ct(temp)
||t1,sk
ct
)}k
ct-mt
||t1||cert
ct
(第一组组合信息),并将该消息发送给mt。公钥和签名被对称加密后,可以抗量子计算。
81.mt收到消息后,确认时间戳t1为当前时间,用ss的公钥pk
ss
解密cert
ct
中的加密签名,并对签名进行验证,验证后确认cert
ct
合法且cert
ct
中的idct有效。计算己方与ct之间的对称密钥k
mt-ct
(第二对称密钥):根据公式pk
ct
=h1(idct)计算得到pk
ct
,取出己方基于id密码学的私钥sk
mt
,计算两者之间的对称密钥k
mt-ct
=ftx(t1,e(sk
mt
,pk
ct
))。根据id密码学可得:e(sk
mt
,pk
ct
)=e(skms*pk
mt
,pk
ct
)=e(skms*pk
ct
,pk
mt
)=e(sk
ct
,pk
mt
),所以k
mt-ct
=k
ct-mt
。所以可以用k
mt-ct
解密{pk
ct(temp)
||sign(pk
ct(temp)
||t1,sk
ct
)}k
ct-mt
得到pk
ct(temp)
(第一加密信息)和签名sign(pk
ct(temp)
||t1,sk
ct
),并用公钥pk
ct
对该签名进行验证。如果验证都通过,则mt认可ct的身份。
82.s23、mt发送消息,pt(发款终端)验证(可信中介发送第二组合信息到发款终端,发款终端验证该第二组合信息)
83.mt计算己方与pt之间的对称密钥k
mt-pt
(第三对称密钥):获取当前时间戳t2(第二时间戳),根据公式pk
pt
=h1(idpt)计算得到pk
pt
,取出mt的基于id密码学的私钥sk
mt
,计算两者之间的对称密钥k
mt-pt
=ftx(t2,e(sk
mt
,pk
pt
))。用sk
mt
对pk
ct(temp)
||t2进行签名得到sign(pk
ct(temp)
||t2,sk
mt
)(第二签名信息),用k
mt-pt
对pk
ct(temp)
||sign(pk
ct(temp)
||t2,sk
mt
)进行加密并与t2、mt的抗量子计算数字证书cert
mt
组成消息{pk
ct(temp)
||sign(pk
ct(temp)
||t2,sk
mt
)}k
mt-pt
||t2||cert
mt
(第二组合信息),将该消息称为mpc并将该消息送给pt。
84.pt收到消息mpc后,确认时间戳t2为当前时间,用ss的公钥pk
ss
解密cert
mt
中的加密签名,并对签名进行验证。计算己方与mt之间的对称密钥k
pt-mt
(第四对称密钥):根据公式pk
mt
=h1(idmt)计算得到pk
mt
,取出己方基于id密码学的私钥sk
pt
,计算两者之间的对称密钥k
pt-mt
=ftx(t2,e(sk
pt
,pk
mt
))。根据id密码学可得:e(sk
pt
,pk
mt
)=e(skms*pk
pt
,pk
mt
)=e(skms*pk
mt
,pk
pt
)=e(sk
mt
,pk
pt
),所以k
pt-mt
=k
mt-pt
。所以可以用k
pt-mt
解密{pk
ct(temp)
||sign(pk
ct(temp)
||t2,sk
mt
)}k
mt-pt
(第二加密信息)得到pk
ct(temp)
和签名sign(pk
ct(temp)
||t2,sk
mt
),并用公钥pk
mt
对该签名进行验证。如果验证都通过,则pt认可mt为cert
mt
的拥有者且为可信中介,且认可pk
ct(temp)
为收款方id兼公钥,否则pt确认交易失败。
85.s24、pt发送交易(发款终端发送交易到收款终端)
86.pt取出一个抗量子计算数字货币pm,获取当前时间戳t3(第三时间戳),并将t3、发款方信息idps、收款方信息mpc和pm组成交易tx,即tx={t3||idps||mpc||pm}。由于发款方信息用idps表示,因此收款方仅知道发款方所属的商业银行,并不清楚发款方的具体身份;并且收款方信息用mpc表示,因此发款方也不清楚收款方的具体身份。用数字货币对应的rsa或ecc私钥对tx进行签名得到txs(第三签名信息),再计算pm和ct之间的对称密钥k
pm-ct
(第五对称密钥):根据公式pk
ct
=h1(idct)计算得到pk
ct
,取出pm的基于id密码学的私钥sk
pm
,计算两者之间的对称密钥txk=ftx(t3,e(sk
pm
,pk
ct
))。用k
pm-ct
对tx||txs进行加密得到{tx||txs}k
pm-ct
(第三加密信息),并将t3||{tx||txs}k
pm-ct
和idpm一起发送给ct。
87.s25、ct确认交易(收款终端确认交易)
88.ct收到消息后得到t3||{tx||txs}k
pm-ct
和idpm。ct计算己方和pm之间的对称密钥k
ct-pm
(第六对称密钥):根据公式pk
pm
=h1(idpm)计算得到pk
pm
,取出ct的基于id密码学的私
钥sk
ct
,计算两者之间的对称密钥k
ct-pm
=ftx(t3,e(sk
ct
,pk
pm
))。根据id密码学可得:e(sk
ct
,pk
pm
)=e(skms*pk
ct
,pk
pm
)=e(skms*pk
pm
,pk
ct
)=e(sk
pm
,pk
ct
),所以k
ct-pm
=k
pm-ct
。用k
ct-pm
解密{tx||txs}k
pm-ct
得到tx||txs。ct取出数字货币pm中的加密公钥并用pk
ss
进行解密得到其中的rsa或ecc公钥,再用该公钥对签名txs进行验证,验证成功后对数字货币pm进行验证,比如验证货币币值和央行签名等。验证成功则信任该交易,取出tx中的pm并进行存储,标记为央行未确认。ct将确认交易的消息ret
ct
用临时私钥sk
ct(temp)
进行签名得到sig
ct
(第四签名信息),再将ret
ct
||sig
ct
用k
ct-pm
进行加密并发送给pt。
89.pt收到消息后,用k
pm-ct
解密得到ret
ct
和sig
ct
,用pk
ct(temp)
验证签名sig
ct
,如果验证成功,则查看ret
ct
为成功后删除数字货币pm及其私钥。由于私钥与数字货币一一对应,因此数字货币发出后私钥也需要销毁。该数字货币被收款方收到后成为不带私钥的普通数字货币。
90.s3、在线交易阶段(在线交易阶段:使用中央银行数字货币系统对交易进行确认)
91.ct发送消息:
92.ct获取当前时间戳t4并取出之前确认的交易tx,用己方私钥sk
ct
对tx||pk
ct(temp)
||t4进行签名得到sign(tx||pk
ct(temp)
||t4,sk
ct
)(第五签名信息),组成消息pk
ct(temp)
||t4||cert
ct
||tx||sign(tx||pk
ct(temp)
||t4,sk
ct
)(第三组合信息)并发给对应的商业银行cs。消息由双方之间的抗量子计算保密通信机制所加密。
93.cs收到消息后,对t4进行确认,用ss的公钥pk
ss
解密cert
ct
中的加密签名,并对签名进行验证。如果验证成功,用ct的公钥pk
ct
对签名sign(tx||pk
ct(temp)
||t4,sk
ct
)进行验证。如果验证成功,则cs从cert
ct
中获取其拥有者的真实身份idct,确认pk
ct(temp)
为该次交易中的收款方id兼公钥。
94.cs将消息idct||tx||pk
ct(temp)
发送给央行ss。
95.ss转发交易:
96.ss收到消息后在本地存储idct||tx||pk
ct(temp)
,将tx||pk
ct(temp)
用发送方商业银行ps对应的公钥进行加密并发送给ps。消息由双方之间的抗量子计算保密通信机制所加密。
97.ps发送交易结果:
98.ps收到消息后用己方私钥解密得到tx||pk
ct(temp)
,根据tx中的数字货币pm找到其拥有者为pt,获知发送方的真实身份idpt。ps将idpt||pk
ct(temp)
||tx作为一个完整的交易条目存储在本地,其中pk
ct(temp)
代表的是收款方的身份,因此ps并不知道收款方的真实身份。
99.ps将交易成功或者失败的结果作为ret,将idpt||ret用ss的公钥进行加密并发送给ss。消息由双方之间的抗量子计算保密通信机制所加密。
100.ss转发交易结果:
101.ss收到消息后解密得到idpt||ret。如果ret中携带的是交易成功的消息,则ss将idpt||idct||tx作为一个完整的交易条目存储在本地,ss是知道收款方真实身份idct的。
102.ss将ret用cs的公钥进行加密并发给cs。消息由双方之间的抗量子计算保密通信机制所加密。
103.cs转发交易结果:
104.cs收到消息后解密得到ret。如果ret中携带的是交易成功的消息,则cs将idps||
idct||tx作为一个完整的交易条目存储在本地,其中idps代表的是发款方的身份,因此cs并不知道发款方的真实身份。
105.cs将ret用ct的公钥进行加密并发给ct。消息由双方之间的抗量子计算保密通信机制所加密。
106.ct确认交易结果:
107.ct收到消息后解密得到ret。如果ret中携带的是交易成功的消息,则ct将步骤s25中存储的数字货币pm标记为央行已确认,后续可以正常使用。
108.根据本发明的另一个方面,以中央银行数字货币的运行实例来说,如图3所示,数字货币系统基本结构主要包括中央银行数字货币系统、商业银行数字货币系统(在实际中可以是多个商业银行数字货币系统)和用户。其中,中央银行数字货币系统用于产生和发行数字货币,以及对数字货币进行权属登记;商业银行数字货币系统用于针对数字货币执行银行功能;用户则是数字货币使用的主体,本发明中用户持有终端来进行数字货币的交易。本发明中,中央银行数字货币系统与商业银行数字货币系统之间、商业银行数字货币系统与用户终端之间都部署有抗量子计算通信系统,可以保证它们之间进行抗量子计算通信。例如,中央银行数字货币系统与商业银行数字货币系统之间部署有基于qkd密钥分发的量子保密通信系统,商业银行数字货币系统与用户终端之间部署有基于对称密钥池或者非对称密钥池的密钥卡系统。
109.假设本发明有央行(即中央银行数字货币系统)ss、发款方商业银行(即商业银行数字货币系统)ps和其对应的发款终端pt、收款方商业银行cs和其对应的收款终端ct,它们对应的id分别是idss、idps、idpt、idcs和idct。发款终端与用户相对应,如发款终端的id暴露,将引起用户身份及交易行为的暴露。
110.本发明中央行ss还为用户终端颁发了基于id密码学的抗量子计算数字证书,该数字证书对应的数据结构与普通数字证书的数据结构相比有以下不同:证书拥有者字段包含数字证书拥有者的id、证书公钥字段空缺、公钥算法字段为基于id密码学、证书签名字段为加密签名,加密签名的构造如前文所述
111.本发明中还有可信中介mt,mt为可信基础设施,例如数字货币atm机、数字货币pos机、可信商户持有的数字货币交易设备等,其没有联网功能、不对收到的证书进行存储,防止用户信息泄露。本发明中每个成员带有抗量子计算数字证书,证书中存有该成员的真实身份,mt存有各商业银行的抗量子计算数字证书。pt、ct和mt之间进行近距离通信(如nfc),任意两者之间通信时不会被第三方获取通信内容。
112.综上所述,本发明设计了配有私钥的数字货币和交易的可信中介,可以实现一种数字货币的抗量子计算匿名双离线交易方法,使得双离线交易中的交易双方不知道对方的信息,从而保护了交易者的身份信息;且本发明的方法可以进行数字货币间的包括双离线交易在内的各类交易,实现同样的保护交易者身份信息的效果;并且可以实现抗量子计算。本发明中的交易流程除了支持双离线交易,也支持发款方在线且收款方离线的交易、发款方离线且收款方在线的交易、发款方在线且收款方在线的交易,即该流程支持所有类型的交易,且能实现同样的交易双方匿名的效果。
113.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存
在矛盾,都应当认为是本说明书记载的范围。
114.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
技术特征:
1.一种数字货币的抗量子计算匿名双离线交易方法,其特征在于,该方法包括以下步骤:s1、准备阶段:中央银行数字货币系统为发款终端及收款终端分别颁发基于id密码学的抗量子计算数字货币及抗量子计算数字证书,且通过密钥管理服务器为发款终端及收款终端分别颁发基于id密码学的私钥;s2、双离线交易阶段:发款终端与收款终端之间通过可信中介进行双离线交易;s3、在线交易阶段:使用中央银行数字货币系统对交易进行确认;其中,所述s1中央银行数字货币系统为发款终端及收款终端分别颁发基于id密码学的抗量子计算数字货币具体包括以下步骤:发款终端/收款终端生成一组基于rsa或ecc密码体系的公私钥对,并将公钥发送给对应的商业银行,对应的商业银行将该公钥发送给中央银行数字货币系统,中央银行数字货币系统根据该公钥及币值生成对应各类币值的抗量子计算数字货币和该数字货币的id对应的基于id密码学的私钥,并将该数字货币和基于id密码学的私钥发送给对应的商业银行,对应的商业银行再将该数字货币和基于id密码学的私钥发送给对应的用户终端。2.根据权利要求1所述的一种数字货币的抗量子计算匿名双离线交易方法,其特征在于,所述s2中发款终端与收款终端之间通过可信中介进行双离线交易包括以下步骤:s21、可信中介发送可信中介抗量子计算数字证书到收款终端,收款终端验证该数字证书;s22、收款终端发送第一组合信息到可信中介,可信中介验证该第一组合信息;s23、可信中介发送第二组合信息到发款终端,发款终端验证该第二组合信息;s24、发款终端发送交易到收款终端;s25、收款终端确认交易。3.根据权利要求2所述的一种数字货币的抗量子计算匿名双离线交易方法,其特征在于,所述s21中可信中介发送可信中介抗量子计算数字证书到收款终端,收款终端验证该数字证书具体包括以下步骤:s211、可信中介将可信中介抗量子计算数字证书发送给收款终端;s212、收款终端收到后,用中央银行数字货币系统的公钥解密可信中介抗量子计算数字证书中的加密签名,并对解密得到的签名进行验证,若验证成功,则收款终端认可信中介为可信中介抗量子计算数字证书的拥有者,并进行后续的步骤。4.根据权利要求3所述的一种数字货币的抗量子计算匿名双离线交易方法,其特征在于,所述s22中收款终端发送第一组合信息到可信中介,可信中介验证该第一组合信息具体包括以下步骤:s221、收款终端生成基于rsa或ecc密码体系的临时公私钥对,并计算己方与可信中介之间的第一对称密钥;s222、用收款终端私钥对收款终端临时公钥及第一时间戳进行基于id密码学的签名并得到第一签名信息,用第一对称密钥对收款终端临时公钥及第一签名信息进行加密得到第一加密信息,并与第一时间戳及收款终端抗量子计算数字证书组成第一组合信息,并将该消息发送给可信中介;s223、可信中介收到消息后,确认第一时间戳为当前时间,用中央银行数字货币系统公
钥解密收款终端抗量子计算数字证书中的加密签名,并对解密得到的签名进行验证,验证后确认收款终端抗量子计算数字证书合法且其中包含的收款终端id有效;s224、计算可信中介与收款终端之间的第二对称密钥;s225、使用第二对称密钥解密第一加密信息得到收款终端临时公钥和第一签名信息,并用收款终端公钥对该签名信息进行验证,若验证都通过,则可信中介认可收款终端的身份;其中,所述s221中计算己方与可信中介之间的第一对称密钥具体包括以下步骤:收款终端获取第一时间戳,并计算得到可信中介公钥,同时取出基于id密码学的收款终端私钥,并计算得到第一对称密钥。5.根据权利要求4所述的一种数字货币的抗量子计算匿名双离线交易方法,其特征在于,所述s23中可信中介发送第二组合信息到发款终端,发款终端验证该第二组合信息具体包括以下步骤:s231、计算可信中介与发款终端之间的第三对称密钥;s232、用可信中介私钥对收款终端临时公钥及第二时间戳进行签名得到第二签名信息,并用第三对称密钥对收款终端临时公钥及第二签名信息进行加密得到第二加密信息,且与第二时间戳及可信中介抗量子计算数字证书组成第二组合信息,并将该信息发送给发款终端;s233、发款终端收到消息后,确认第二时间戳为当前时间,用中央银行数字货币系统公钥解密可信中介抗量子计算数字证书中的加密签名,并对解密得到的签名进行验证;s234、计算发款终端与可信中介之间的第四对称密钥;s235、使用第四对称密钥解密第二加密信息得到收款终端临时公钥和第二签名信息,并用可信中介公钥对该签名信息进行验证,若验证都通过,则发款终端认可可信中介为可信中介抗量子计算数字证书的拥有者及认可收款终端临时公钥为收款方id兼公钥。6.根据权利要求5所述的一种数字货币的抗量子计算匿名双离线交易方法,其特征在于,s24中发款终端发送交易到收款终端具体包括以下步骤:s241、发款终端取出一个抗量子计算数字货币,并获取第三时间戳,并将第三时间戳、发款方商业银行id、第二组合信息和抗量子计算数字货币组成交易;s242、用数字货币对应的rsa或ecc私钥对交易进行签名得到第三签名信息,并计算抗量子计算数字货币和收款终端之间的第五对称密钥;s243、用第五对称密钥对交易及第三签名信息进行加密得到第三加密信息,并将第三时间戳、第三加密信息及抗量子计算数字货币id一起发送给收款终端。7.根据权利要求6所述的一种数字货币的抗量子计算匿名双离线交易方法,其特征在于,所述s25中收款终端确认交易具体包括以下步骤:s251、收款终端收到消息后,计算己方与抗量子计算数字货币之间的第六对称密钥;s252、使用第六对称密钥解密第三加密信息得到交易及第三签名信息,且收款终端取出抗量子计算数字货币中的加密公钥并用中央银行数字货币系统公钥进行解密得到其中的rsa或ecc公钥,再用该公钥对第三签名信息进行验证,若验证成功后对抗量子计算数字货币进行验证,若验证成功则信任该交易,并取出交易中的抗量子计算数字货币并进行存储,标记为央行未确认;
s253、收款终端将确认交易的消息用收款终端临时私钥进行签名得到第四签名信息,并将确认交易的消息及第四签名信息用第六对称密钥进行加密并发送给发款终端;s254、发款终端收到消息后,用第五对称密钥对其解密得到确认交易的消息及第四签名信息,并使用收款终端临时公钥验证第四签名信息,若验证成功,且确认交易的消息为成功后删除抗量子计算数字货币及其私钥。8.根据权利要求1所述的一种数字货币的抗量子计算匿名双离线交易方法,其特征在于,所述s3中使用中央银行数字货币系统对交易进行确认具体包括以下步骤:s31、收款终端发送消息给收款方商业银行,收款方商业银行将该消息发送给中央银行数字货币系统;s32、中央银行数字货币系统收到消息后在本地存储收款终端id、交易及收款终端临时公钥,同时将交易及收款终端临时公钥用发款方商业银行公钥进行加密并发送给发款方商业银行;s33、发款方商业银行收到消息后,用己方私钥解密得到交易及收款终端临时公钥,并根据交易中的抗量子计算数字货币找到发款终端,并获知发款终端id,发款方商业银行将发款终端id、收款终端临时公钥及交易作为一个完整的交易条目存储在本地;s34、发款方商业银行将发款终端id及交易结果用中央银行数字货币系统公钥进行加密并发送给中央银行数字货币系统;s35、中央银行数字货币系统收到消息后解密得到发款终端id及交易结果,若交易结果为成功,则中央银行数字货币系统将发款终端id、收款终端id及交易作为一个完整的交易条目存储在本地,且中央银行数字货币系统将交易结果用收款方商业银行公钥进行加密并发给收款方商业银行;s36、收款方商业银行收到消息后解密得到交易结果,若交易结果为成功,则将发款方商业银行id、收款终端id及交易作为一个完整的交易条目存储在本地,且将交易结果用收款终端的公钥进行加密并发给收款终端;s37、收款终端收到消息后解密得到交易结果,若交易结果为成功,则收款终端将抗量子计算数字货币标记为央行已确认。9.根据权利要求8所述的一种数字货币的抗量子计算匿名双离线交易方法,其特征在于,所述s31中收款终端发送消息给收款方商业银行,收款方商业银行将该消息发送给中央银行数字货币系统具体包括以下步骤:s311、收款终端获取第四时间戳并取出交易,用收款终端私钥对交易、收款终端临时公钥、第四时间戳进行签名得到第五签名信息,该第五签名信息与收款终端临时公钥、第四时间戳、收款终端抗量子计算数字证书及交易组成第三消息信息并发给收款方商业银行;s312、收款方商业银行收到消息后,对第四时间戳进行确认,用中央银行数字货币系统公钥解密收款终端抗量子计算数字证书中的加密签名,并对解密得到的签名进行验证,若验证成功,用收款终端公钥对第五签名信息进行验证,若验证成功,则收款方商业银行从收款终端抗量子计算数字证书中获取收款终端id,确认收款终端临时公钥为该次交易中的收款方id兼公钥,收款方商业银行将收款终端id、交易及收款终端临时公钥发送给中央银行数字货币系统。10.一种数字货币的抗量子计算匿名双离线交易系统,用以实现权利要求1-9中任一项
所述的基于id密码学的抗量子计算数字货币通信方法的步骤,其特征在于,该系统包括中央银行数字货币系统、可信中介、发款方商业银行、收款方商业银行、发款终端及收款终端,发款方商业银行与发款终端相对应,收款方商业银行与收款终端相对应,中央银行数字货币系统与商业银行之间、商业银行与用户终端之间均部署有抗量子计算通信系统,其中,中央银行数字货币系统拥有一对基于rsa密码体系的公私钥对,且该私钥保存于中央银行中,公钥颁发给所有的商业银行及用户终端并保存在对应的硬件钱包中;中央银行数字货币系统还配备有基于id密码学的密钥管理服务器,且该密钥管理服务器用于为中央银行数字货币系统颁发系统私钥,还用于为所有拥有id的对象颁发基于id密码学的私钥;各成员均带有抗量子计算数字证书,证书中存有该成员的真实身份,可信中介存有各商业银行的抗量子计算数字证书。
技术总结
本发明公开了一种数字货币的抗量子计算匿名双离线交易方法及系统,该方法包括中央银行数字货币系统为发款终端及收款终端分别颁发基于ID密码学的抗量子计算数字货币及抗量子计算数字证书,且通过密钥管理服务器为发款终端及收款终端分别颁发基于ID密码学的私钥;发款终端与收款终端之间通过可信中介进行双离线交易;使用中央银行数字货币系统对交易进行确认。有益效果:本发明设计了配有私钥的数字货币和交易的可信中介,可以实现一种数字货币的抗量子计算匿名双离线交易方法,使得双离线交易中的交易双方不知道对方的信息,从而保护了交易者的身份信息。护了交易者的身份信息。护了交易者的身份信息。
技术研发人员:富尧 钟一民 汪仲祥
受保护的技术使用者:南京如般量子科技有限公司
技术研发日:2020.11.23
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-18616.html