基于链表结构的可分电子现金构造方法技术

技术编号:21363464 阅读:39 留言:0更新日期:2019-06-15 09:46
本发明专利技术公开了一种基于链表结构的可分电子现金构造方法,在本发明专利技术中,对于交易金额在链表长度L以下的交易,用于执行支付协议的运算量为常数,与支付金额无关,即用户只需要2次杂凑运算、3次循环群上的指数运算、1次签名运算、3次循环群上的指数等式的零知识证明和2次数字签名等式的零知识证明即可,提高了支付效率;此外,商户存储一个电子现金的计算量为常数,与电子现金的金额无关,即商户存储电子现金时,银行仅需进行4次对运算就可返回结果给商户,并告知商户存储是否成功,提高了进行电子现金存储的效率。

Construction Method of Separable Electronic Cash Based on Link List Structure

The invention discloses a separable electronic cash construction method based on linked list structure. In the invention, for transactions with transaction amount less than the length of linked list L, the amount of computation used to implement payment protocol is constant, independent of payment amount, i.e. users only need two hash operations, three exponential operations on cyclic groups, one signature operation and zero exponential equation on three cyclic groups. Knowledge proof and zero-knowledge proof of 2-time digital signature equation can improve payment efficiency; furthermore, the calculation amount of electronic cash stored by merchants is constant, which has nothing to do with the amount of electronic cash. That is to say, when merchants store electronic cash, banks can return the results to merchants by only 4 pairing operations, and inform merchants whether the storage is successful or not, which improves the storage of electronic cash. Efficiency.

【技术实现步骤摘要】
基于链表结构的可分电子现金构造方法
本专利技术涉及信息安全
,特别是涉及一种基于链表结构的可分电子现金构造方法。
技术介绍
可分电子现金一般涉及三个实体,即银行、用户和商户。可分电子系统允许用户从银行购买电子现金,然后分多次支付给商户,并能够为用户提供匿名性保护,以及实现对双花用户的身份追踪,同时还具有可分性,使用非常方便。然而,现有的可分电子现金系统仅允许用户购买单个的电子现金,然后分多次使用。虽然这种电子现金在支付协议中能够满足任何额度的支付,但是可能需要较多的支付次数,且存储的时间较长,从而导致支付与存储效率的降低。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种基于链表结构的可分电子现金构造方法。本专利技术的目的是通过以下技术方案来实现的:基于链表结构的可分电子现金构造方法,包括: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设置为生成用户密钥:用户随机选择作为其私钥,计算其公钥upk=gusk;生成商户密钥:商户随机选择作为其私钥,计算其公钥mpk=gmsk;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},对于每一个节点计算列表若列表和列表中没有相同的元素,返回若列表和列表中有相同的元素,则存在使得及若某个用户的公钥upk使公式成立,则该用户为双花用户。本专利技术的有益效果是:(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,其中,符号\表示去掉,符号表示从...到...,表示从节本文档来自技高网...

【技术保护点】
1.基于链表结构的可分电子现金构造方法,其特征在于,包括:S1.设置电子现金系统的公共参数,具体包括:定义S0是由L个连续的正整数组成的集合,正整数s1是集合S0中的最小数,正整数sL是集合S0中的最大数;集合SHi={si+1,si+2,···,sL},其中,si+1=si+1,

【技术特征摘要】
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,选定两个防碰撞的杂凑函数:H:和系统公共参数为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设置为生成用户密钥:用户随机选择作为其私钥,计算其公钥upk=gusk;生成商户密钥:商户随机选择作为其私钥,计算其公钥mpk=gmsk;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为要支付的电子现金的价值,...

【专利技术属性】
技术研发人员:刘建华刘佳嘉程华李军辉张华忠樊荣华厚强钟玲玲
申请(专利权)人:中国民用航空飞行学院
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1