CN109886663B - 基于链表结构的可分电子现金构造方法 - Google Patents
基于链表结构的可分电子现金构造方法 Download PDFInfo
- Publication number
- CN109886663B CN109886663B CN201910123498.3A CN201910123498A CN109886663B CN 109886663 B CN109886663 B CN 109886663B CN 201910123498 A CN201910123498 A CN 201910123498A CN 109886663 B CN109886663 B CN 109886663B
- Authority
- CN
- China
- Prior art keywords
- bank
- user
- electronic cash
- merchant
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种基于链表结构的可分电子现金构造方法,在本发明中,对于交易金额在链表长度L以下的交易,用于执行支付协议的运算量为常数,与支付金额无关,即用户只需要2次杂凑运算、3次循环群上的指数运算、1次签名运算、3次循环群上的指数等式的零知识证明和2次数字签名等式的零知识证明即可,提高了支付效率;此外,商户存储一个电子现金的计算量为常数,与电子现金的金额无关,即商户存储电子现金时,银行仅需进行4次对运算就可返回结果给商户,并告知商户存储是否成功,提高了进行电子现金存储的效率。
Description
技术领域
本发明涉及信息安全技术领域,特别是涉及一种基于链表结构的可分电子现金构造方法。
背景技术
可分电子现金一般涉及三个实体,即银行、用户和商户。可分电子系统允许用户从银行购买电子现金,然后分多次支付给商户,并能够为用户提供匿名性保护,以及实现对双花用户的身份追踪,同时还具有可分性,使用非常方便。
然而,现有的可分电子现金系统仅允许用户购买单个的电子现金,然后分多次使用。虽然这种电子现金在支付协议中能够满足任何额度的支付,但是可能需要较多的支付次数,且存储的时间较长,从而导致支付与存储效率的降低。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于链表结构的可分电子现金构造方法。
本发明的目的是通过以下技术方案来实现的:基于链表结构的可分电子现金构造方法,包括:
S1.设置电子现金系统的公共参数,具体包括:
定义S0是由L个连续的正整数组成的集合,正整数s1是集合S0中的最小数,正整数sL是集合S0中的最大数;集合SHi={si+1,si+2,···,sL},其中,si+1=si+1,集合SQi={s1,s2,···,si-1},其中,链表的每个节点都由集合S0中的一个正整数si(1≤i≤L)标识;
定义G1,G2,GT是阶为素数p的循环群,e为一个双线性映射且满足e(G1,G2)→GT;{G1,G2,GT,e}为一个双线性群,g,h,u1,u2,w为G1的生成元,为G2的生成元,为GT的生成元;
一个可信第三方生成以下参数:对每一个正整数s∈S0,随机选择 为整数集{1,2,…,(p-1)},且对每一个si∈S0\{s1}和sj∈SQi,其中,表示从节点si到sj;对每一个si∈S0\{sL}和sj∈SHi,
S2.生成密钥,具体包括生成银行密钥、用户密钥和商户密钥;
生成银行密钥:银行选择两个不同的签名算法Σ0和Σ1,Σ0=(Keygen,Sign,Verify),消息空间为Σ1=(Keygen,Sign,Verify),消息空间为银行设置密钥(sk1,pk1)←Σ1.Keygen(1k),并为链表的第i个节点设置1≤i≤L,对于每一个si∈S0,计算将银行私钥bsk设置为sk1,银行公钥bpk设置为
S3.电子现金交易,具体包括取款、支付和存钱中的至少一种;
取款:用户随机选择并计算然后将以及关于x,y,usk的零知识证明发送给银行,称该零知识证明为第一零知识证明,如果是未被使用过的,且第一零知识证明有效,则银行使用签名算法Σ1对中的usk,x,y进行签名得到签名σ,并将签名σ发送给用户,这里x,y为用户的秘密值,用户设C←(x,y,σ),当前指针指向节点s1;
支付:用户要使用的节点包括sc,sc+1,…,sc+l-1,记i=c+l-1,sc为当前指针标记的节点,在电子现金初次支付时,sc为s1,l为要支付的电子现金的价值,用户计算r=H(info),其中,info=(l,date,mpk,trans),date为支付时间,trans包含交易的商品的规格参数,用户提供一个知道σ的零知识证明,称该零知识证明为第二零知识证明,所述第二零知识证明满足以下关系式:
将签名σ分成(z1,z2,z3,z4,),选择随机数计算用户选择随机数计算和z=k+C·x,记Π=(σ′,C,z),其中,用户将电子现金(l,Z,Π)发送给商户,商户收到电子现金(l,Z,Π)后,验证签名σ′和第二零知识证明的有效性,若二者都有效,则此次支付成功,当前指针指向节点si+1;
存钱:银行维护一个数据库DB用来存放商户的存款,数据库DB初始时为空;商户将(l,Z,Π)发给银行进行存储,银行首先检查Z是否已经被存储过,并验证(l,Z,Π)的有效性,如果Z已经被存储过且(l,Z,Π)是无效的,则银行退出协议;
如果Z未被存储过且(l,Z,Π)是有效的,银行首先计算 和检查是否已经存储到数据库DB上,若都没有存储到数据库DB上,则银行接受此次存款,返回结果给商户,商户完成存款;对于每一个sj∈{sc,sc+1,…,si-1},银行计算对于每一个sj∈{sc+1,sc+2,…,si},银行计算银行将添加到数据库DB上,所述为电子现金序列号,同时保存(l,Z,Π);
若有一个在已经存在数据库DB中,那么存在一个电子现金(l′,Z′,Π′)在数据库DB中,电子现金(l′,Z′,Π′)使用了节点sc或si,j∈{c,c+1,…,i}相等,银行返回[(l,Z,Π),(l′,Z′,Π′)]给商户。
优选的,所述可分电子现金构造方法还包括双花识别:
输入[(l,Z,Π),(l′,Z′,Π′)];
验证(l,Z,Π)和(l′,Z′,Π′)的有效性,若(l,Z,Π)和(l′,Z′,Π′)中任意一个无效,则返回⊥给银行,表示失败;若(l,Z,Π)和(l′,Z′,Π′)均有效,且Z和Z′分别包含和对于k∈{1,2},对于每一个节点计算列表
本发明的有益效果是:
(1)本发明中,对于交易金额在链表长度L以下的交易,用于执行支付协议的运算量为常数,与支付金额无关,即用户只需要2次杂凑运算、3次循环群上的指数运算、1次签名运算、3次循环群上的指数等式的零知识证明和2次数字签名等式的零知识证明即可,提高了支付效率;
(2)本发明中,商户存储一个电子现金的计算量为常数,与电子现金的金额无关,即商户存储电子现金时,银行仅需进行4次对运算就可返回结果给商户,并告知商户存储是否成功,提高了进行电子现金存储的效率。
附图说明
图1为本发明的一种流程示意图。
具体实施方式
下面将结合实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1,本发明提供一种基于链表结构的可分电子现金构造方法:
所述基于链表结构的可分电子现金构造方法包括:
S1.设置电子现金系统的公共参数。
所述步骤S1具体包括:
S11.定义S0是由L个连续的正整数组成的集合,正整数s1是集合S0中的最小数,正整数sL是集合S0中的最大数;集合SHi={si+1,si+2,···,sL},其中,si+1=si+1,集合SQi={s1,s2,···,si-1},其中,链表的每个节点都由集合S0中的一个正整数si(1≤i≤L)标识。
S12.定义G1,G2,GT是阶为素数p的循环群,e为一个双线性映射且满足e(G1,G2)→GT,符号→表示映射;{G1,G2,GT,e}为一个双线性群,g,h,u1,u2,w为G1的生成元,为G2的生成元,为GT的生成元。
S13.一个可信第三方生成以下参数:对每一个正整数s∈S0,随机选择 为整数集{1,2,…,(p-1)},且对每一个si∈S0\{s1}和sj∈SQi,其中,符号\表示去掉,符号表示从...到...,表示从节点si到sj;对每一个si∈S0\{sL}和sj∈SHi,
S2.生成密钥,所述密钥包括银行密钥、用户密钥和商户密钥。
所述步骤S2具体包括:
S21.生成银行密钥:
签名算法Σ0为a.Masayuki Abe,Jens Groth,Kristiyan Haralambiev,与MiyakoOhkubo在Crypto-2011上发布的基于非对称双线性群的结构保护型签名算法;签名算法Σ1为b.Jan Camenisch与Anna Lysyanskaya在Cryopto-2004上发布的签名算法,签名者不需要知道签名消息。
S3.电子现金交易,所述电子现金交易包括取款、支付和存钱中的至少一种;
所述步骤S3具体包括:
S31.取款:
S32.支付:
S321.用户要使用的节点包括sc,sc+1,…,sc+l-1,记i=c+l-1,sc为当前指针标记的节点,在电子现金初次支付时,sc为s1,l为要支付的电子现金的价值。
S323.用户提供一个知道usk,x,y,gsi,hsi,τsi,σ的零知识证明,称该零知识证明为第二零知识证明,所述第二零知识证明满足以下关系式:
S326.用户将电子现金(l,Z,Π)发送给商户,商户收到电子现金(l,Z,Π)后,验证签名σ′和第二零知识证明的有效性,若二者都有效,则此次支付成功,当前指针指向节点si+1。
S33.存钱:
S331.银行维护一个数据库DB用来存放商户的存款,数据库DB初始时为空。
S332.商户将(l,Z,Π)发给银行进行存储,银行首先检查Z是否已经被存储过,并验证(l,Z,Π)的有效性,该有效性指σ′和第二零知识证明的有效性,如果Z已经被存储过且(l,Z,Π)是无效的,则银行退出协议。
S333.如果Z未被存储过且(l,Z,Π)是有效的,银行首先计算 和检查是否已经存储到数据库DB上,若都没有存储到数据库DB上,则银行接受此次存款,返回结果给商户,商户完成存款。对于每一个sj∈{sc,sc+1,…,si-1},银行计算对于每一个sj∈{sc+1,sc+2,…,si},银行计算银行将添加到数据库DB上,所述为电子现金序列号,同时保存(l,Z,Π)。
S334.若有一个在已经存在数据库DB中,那么存在一个电子现金(l′,Z′,Π′)在数据库DB中,电子现金(l′,Z′,Π′)使用了节点sc或si,银行返回[(l,Z,Π),(l′,Z′,Π′)]给商户。
所述可分电子现金构造方法还包括:S4.双花识别。
所述步骤S4包括:
S41.输入[(l,Z,Π),(l′,Z′,Π′)]。
S42.验证(l,Z,Π)和(l′,Z′,Π′)的有效性,若(l,Z,Π)和(l′,Z′,Π′)中任意一个无效,则返回给银行,表示失败;若(l,Z,Π)和(l′,Z′,Π′)均有效,且Z和Z′分别包含和对于k∈{1,2},对于每一个节点计算列表
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (2)
1.基于链表结构的可分电子现金构造方法,其特征在于,包括:
S1.设置电子现金系统的公共参数,具体包括:
定义S0是由L个连续的正整数组成的集合,正整数s1是集合S0中的最小数,正整数sL是集合S0中的最大数;集合SHi={si+1,si+2,···,sL},其中,si+1=si+1,集合SQi={s1,s2,···,si-1},其中,链表的每个节点都由集合S0中的一个正整数si(1≤i≤L)标识;
定义G1,G2,GT是阶为素数p的循环群,e为一个双线性映射且满足e(G1,G2)→GT;{G1,G2,GT,e}为一个双线性群,g,h,u1,u2,w为G1的生成元,为G2的生成元,为GT的生成元;
一个可信第三方生成以下参数:对每一个正整数s∈S0,随机选择rs, 为整数集{1,2,…,(p-1)},且对每一个si∈S0\{s1}和sj∈SQi,其中,表示从节点si到sj;对每一个si∈S0\{sL}和sj∈SHi,
S2.生成密钥,具体包括生成银行密钥、用户密钥和商户密钥;
生成银行密钥:银行选择两个不同的签名算法Σ0和Σ1,Σ0=(Keygen,Sign,Verify),消息空间为Σ1=(Keygen,Sign,Verify),消息空间为银行设置密钥(sk1,pk1)←Σ1.Keygen(1k),并为链表的第i个节点设置1≤i≤L,对于每一个si∈S0,计算将银行私钥bsk设置为sk1,银行公钥bpk设置为
S3.电子现金交易,具体包括取款、支付和存钱中的至少一种;
取款:用户随机选择x,并计算然后将upk,以及关于x,y,usk的零知识证明发送给银行,称该零知识证明为第一零知识证明,如果是未被使用过的,且第一零知识证明有效,则银行使用签名算法Σ1对中的usk,x,y进行签名得到签名σ,这里x,y为用户的秘密值,并将签名σ发送给用户,当前指针指向节点s1;
支付:用户要使用的节点包括sc,sc+1,…,sc+l-1,记i=c+l-1,sc为当前指针标记的节点,在电子现金初次支付时,sc为s1,l为要支付的电子现金的价值,用户计算r=H(info),其中,info=(l,date,mpk,trans),date为支付时间,trans包含交易的商品的规格参数,用户提供一个知道usk,x,y,σ的零知识证明,称该零知识证明为第二零知识证明,所述第二零知识证明满足以下关系式:
将签名σ分成(z1,z2,z3,z4,),选择随机数计算用户选择随机数计算和z=k+C·x,记Π=(σ′,C,z),其中,用户将电子现金(l,Z,Π)发送给商户,商户收到电子现金(l,Z,Π)后,验证签名σ′和第二零知识证明的有效性,若二者都有效,则此次支付成功,当前指针指向节点si+1;
存钱:银行维护一个数据库DB用来存放商户的存款,数据库DB初始时为空;商户将(l,Z,Π)发给银行进行存储,银行首先检查Z是否已经被存储过,并验证(l,Z,Π)的有效性,该有效性指σ′和第二零知识证明的有效性,如果Z已经被存储过且(l,Z,Π)是无效的,则银行退出协议;
如果Z未被存储过且(l,Z,Π)是有效的,银行首先计算 和检查是否已经存储到数据库DB上,若都没有存储到数据库DB上,则银行接受此次存款,返回结果给商户,商户完成存款;对于每一个sj∈{sc,sc+1,…,si-1},银行计算对于每一个sj∈{sc+1,sc+2,…,si},银行计算银行将c≤j≤i,添加到数据库DB上,所述c≤j≤i为电子现金序列号,同时保存(l,Z,Π);
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910123498.3A CN109886663B (zh) | 2019-02-18 | 2019-02-18 | 基于链表结构的可分电子现金构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910123498.3A CN109886663B (zh) | 2019-02-18 | 2019-02-18 | 基于链表结构的可分电子现金构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109886663A CN109886663A (zh) | 2019-06-14 |
CN109886663B true CN109886663B (zh) | 2020-11-27 |
Family
ID=66928386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910123498.3A Active CN109886663B (zh) | 2019-02-18 | 2019-02-18 | 基于链表结构的可分电子现金构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109886663B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850984A (zh) * | 2014-05-13 | 2015-08-19 | 电子科技大学 | 一种离线电子货币支付的安全运行方法 |
CN107644339A (zh) * | 2017-09-26 | 2018-01-30 | 中国民用航空飞行学院 | 一种基于三叉树的可分电子现金构造方法 |
WO2018063605A1 (en) * | 2016-09-27 | 2018-04-05 | Intel Corporation | Trusted vehicle telematics using blockchain data analytics |
-
2019
- 2019-02-18 CN CN201910123498.3A patent/CN109886663B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850984A (zh) * | 2014-05-13 | 2015-08-19 | 电子科技大学 | 一种离线电子货币支付的安全运行方法 |
WO2018063605A1 (en) * | 2016-09-27 | 2018-04-05 | Intel Corporation | Trusted vehicle telematics using blockchain data analytics |
CN107644339A (zh) * | 2017-09-26 | 2018-01-30 | 中国民用航空飞行学院 | 一种基于三叉树的可分电子现金构造方法 |
Non-Patent Citations (1)
Title |
---|
"电子现金协议研究综述";李舟军等;《计算机科学与探索》;20171130(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109886663A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Eng et al. | Single-term divisible electronic coins | |
US20190164153A1 (en) | Blockchain system for confidential and anonymous smart contracts | |
JP5159173B2 (ja) | 方法、電子決済システム、コンピュータ・プログラム、発行者、アクセプタ、バリデータ、エミッタ(取引を自動的に妥当性検査する方法、電子支払いシステム、およびコンピュータ・プログラム) | |
Camenisch et al. | Compact e-cash | |
Miers et al. | Zerocoin: Anonymous distributed e-cash from bitcoin | |
Canard et al. | Divisible e-cash made practical | |
CN109903026A (zh) | 基于区块链的事件处理方法及装置、电子设备 | |
Fan et al. | Low-computation partially blind signatures for electronic cash | |
EP3420669A1 (en) | Cryptographic method and system for secure extraction of data from a blockchain | |
Canard et al. | Multiple denominations in e-cash with compact transaction data | |
Nakanishi et al. | Unlinkable divisible electronic cash | |
CN109493053A (zh) | 一种用于联盟区块链系统的匿名交易方法 | |
CN109921900A (zh) | 一种分布式密钥生成的算法 | |
Au et al. | Practical compact e-cash | |
CN101807990B (zh) | 基于辫群的盲化数字签名系统和方法 | |
US9454755B2 (en) | Transaction method between two entities providing anonymity revocation for tree-based schemes without trusted party | |
Mambo et al. | Unlinkable electronic coupon protocol with anonymity control | |
CN114424223A (zh) | 可分割代币 | |
Kokaras et al. | The cost of privacy on blockchain: A study on sealed-bid auctions | |
CN109886663B (zh) | 基于链表结构的可分电子现金构造方法 | |
Wang et al. | An improved off-line electronic cash scheme | |
Canard et al. | Scalable divisible e-cash | |
Al-Fayoumi et al. | Practical e-payment scheme | |
Varadharajan et al. | On the design of efficient RSA-based off-line electronic cash schemes | |
Jakobsson et al. | Applying anti-trust policies to increase trust in a versatile e-money system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |