发明名称 一种具备可转移性的条件电子支付系统
摘要 本发明公开了一种具备可转移性的条件电子支付系统,具有支付平台,银行,一个付款人,所述付款人账户,以及至少一个收款人,其特征在于,包括以下步骤:(1)支付生成;(2)条件转移;(3)用户注册;(4)附加转移;(5)兑现支付;(6)识别双重支付者。本发明有益效果在于,本发明所构建既不需要低效的分割选择技术,也不需要复杂的知识证明协议,同时也消除了在所有条件转让协议中对银行随时在线的需求。且本发明的条件电子支付系统具备可转让性,可使得一连串的收款人能够匿名的进一步交易货币。
申请公布号 CN103295131B 申请公布日期 2016.06.29
申请号 CN201310272889.4 申请日期 2013.07.01
申请人 西安电子科技大学 发明人 陈晓峰;尤沛;李进
分类号 G06Q20/38(2012.01)I 主分类号 G06Q20/38(2012.01)I
代理机构 北京科亿知识产权代理事务所(普通合伙) 11350 代理人 汤东凤
主权项 一种具备可转移性的条件电子支付系统,具有支付平台,银行,一个付款人,所述付款人账户,以及至少一个收款人S<sub>i</sub>,其特征在于,包括以下步骤:(1)支付生成,其中,当所述付款人希望向所述银行提取一个货币,所述付款人须要证明所述付款人账户的所有权,并协商一个公共的信息c,双方之间通过提取协议,最终所述付款人得到银行兑现的货币;1.1 B生成一个随机数r∈<sub>R</sub>Ζ<sub>q</sub>,并发送z=(Ig<sub>2</sub>)<sup>rx</sup>,b=(Ig<sub>2</sub>)<sup>r</sup>,和a=y<sup>r</sup>给U;1.2 U检查e(z,g)=e(b,y)=e(Ig<sub>2</sub>,a)是否成立;若等式不成立,它就会终止协议;若成立,U生成一系列随机数α,λ,x<sub>1</sub>,x<sub>2</sub>,μ∈<sub>R</sub>Ζ<sub>q</sub>,同时计算A=(Ig<sub>2</sub>)<sup>α</sup>,z'=z<sup>αλ</sup>,b'=b<sup>αλ</sup>,a'=a<sup>λ</sup>,<img file="FDA0000927830980000011.GIF" wi="259" he="71" />和<img file="FDA0000927830980000012.GIF" wi="854" he="79" />然后它发送<img file="FDA0000927830980000013.GIF" wi="51" he="62" />给B;1.3 B给U反馈<img file="FDA0000927830980000014.GIF" wi="347" he="125" />然后U计算<img file="FDA0000927830980000015.GIF" wi="270" he="71" />如果<img file="FDA0000927830980000016.GIF" wi="1002" he="80" />于是(A,B,c,(z',b',a',σ))就是一个U知道表示的有效货币;(2)条件转移,其中,所述付款人希望支付他的货币给所述收款人时;双方之间通过收款人生成的三个随机数和已知信息,进行运算和双线性对验证,验证通过后收款人即接受付款人发送的货币;当U希望支付他的货币(A,B,c,(z',b',a',σ))给S<sub>1</sub>,将执行下述的协议:2.1 S<sub>1</sub>生成三个随机数α<sub>1</sub>,β<sub>1</sub>,γ<sub>1</sub>∈<sub>R</sub>Ζ<sub>q</sub>,然后发送<img file="FDA0000927830980000021.GIF" wi="611" he="86" />给U;2.2 令d=H<sub>1</sub>(A,B,A<sub>1</sub>,B<sub>1</sub>),U计算r<sub>1</sub>=d(μ<sub>0</sub>α)+x<sub>1</sub> mod q,r<sub>2</sub>=dα+x<sub>2</sub> mod q,然后发送<img file="FDA0000927830980000022.GIF" wi="940" he="80" />给S<sub>1</sub>;2.3 S<sub>1</sub>接受货币,当且仅当:A≠1,e(z',g)=e(b',y)=e(A,a'),<img file="FDA0000927830980000023.GIF" wi="1502" he="85" />并且VEDL(r<sub>2</sub>)是r<sub>2</sub>的一个有效的可验证的加密;(3)用户注册,一个S<sub>i</sub>和所述银行之间的交互协议;其中,所述银行生成一个限制性部分盲签名给一个具体的信息,这个协议与步骤(1)协议基本相同,据具体是电子货币的实际价值是0,最终,S<sub>i</sub>获得一个有效的证书硬币作为他的代表;其中:B生成一个限制性部分盲签名给一个具体的信息<img file="FDA0000927830980000024.GIF" wi="683" he="87" />这个协议与支付生成协议几乎是一样的;唯一的区别在于公用信息是c<sup>*</sup>而不是c,也就是说电子货币的实际价值是0;最终,S<sub>i</sub>获得一个有效的证书硬币(A<sub>i</sub>,B<sub>i</sub>,c<sup>*</sup>,(z′<sub>i</sub>,b′<sub>i</sub>,a′<sub>i</sub>,σ<sub>i</sub>))作为他的代表;(4)附加转移,当S<sub>i</sub>希望转移一个货币给S<sub>i+1</sub>(1≤i≤n‑1),双方之间通过S<sub>i+1</sub>生成的三个随机数和已知信息,进行一定的运算和双线性对验证,验证通过后S<sub>i+1</sub>即接受S<sub>i</sub>转移的货币;4.1 S<sub>i+1</sub>生成三个随机数α<sub>i+1</sub>,β<sub>i+1</sub>,γ<sub>i+1</sub>∈<sub>R</sub>Ζ<sub>q</sub>并发送<img file="FDA0000927830980000025.GIF" wi="860" he="87" />给S<sub>i</sub>;4.2 令d<sub>i</sub>=H<sub>1</sub>(A<sub>i</sub>,B<sub>i</sub>,A<sub>i+1</sub>,B<sub>i+1</sub>),U计算τ<sub>i</sub>=d<sub>i</sub>(u<sub>i</sub>α<sub>i</sub>)+β<sub>i</sub> mod q, v<sub>i</sub>=d<sub>i</sub>α<sub>i</sub>+γ<sub>i</sub> mod q,并发送<img file="FDA0000927830980000031.GIF" wi="939" he="87" />和(A<sub>j</sub>,B<sub>j</sub>,c<sup>*</sup>,(z'<sub>j</sub>,b'<sub>j</sub>,a'<sub>j</sub>,σ<sub>j</sub>),τ<sub>j</sub>,v<sub>j</sub>)(1≤j≤i)给S<sub>i+1</sub>;也就是说,每一次附加的转移将添加(A<sub>j</sub>,B<sub>j</sub>,c<sup>*</sup>,(z'<sub>j</sub>,b'<sub>j</sub>,a'<sub>j</sub>,σ<sub>j</sub>),τ<sub>j</sub>,v<sub>j</sub>)(1≤j≤i)信息给货币;4.3 S<sub>i+1</sub>接受货币,当且仅当A≠1,e(z',g)=e(b',y)=e(A,a'),<img file="FDA0000927830980000032.GIF" wi="1382" he="83" />VEDL(r<sub>2</sub>)是r<sub>2</sub>的一个有效的可验证的加密,并且A<sub>j</sub>≠1,e(z'<sub>j</sub>,g)=e(b'<sub>j</sub>,y)=e(A<sub>j</sub>,a'<sub>j</sub>),<img file="FDA0000927830980000033.GIF" wi="1718" he="103" />(5)兑现支付,根据步骤(4)结果所述收款方发送货币给所述银行;其中:收款方S<sub>i</sub>(1≤i≤n)发送货币(A,B,c,(z',b',a',σ),r<sub>1</sub>,r<sub>2</sub>),(A<sub>j</sub>,B<sub>j</sub>,c<sup>*</sup>,(z'<sub>j</sub>,b'<sub>j</sub>,a'<sub>j</sub>,σ<sub>j</sub>),τ<sub>j</sub>,v<sub>j</sub>)(1≤j≤n‑1)和(α<sub>i</sub>,β<sub>i</sub>,γ<sub>i</sub>)给B;如果S<sub>k</sub>和S<sub>l</sub>(k<l)都兑现了支付,B就能够追踪到双重支付人S<sub>k</sub>;对于S<sub>i</sub>提供的一个货币,B首先检查货币的有效性,如果所有验证通过,他然后搜索存款数据库来查找是否A已经被存储过;如果A之前没有被存储过,B就把(A,c,d,r<sub>1</sub>,r<sub>2</sub>),(A<sub>j</sub>,c<sup>*</sup>,d<sub>j</sub>,τ<sub>j</sub>,v<sub>j</sub>)(1≤j≤i‑1)和α<sub>i</sub>存储到数据库中,并归于S<sub>i</sub>的账户中;否则,B就调用识别双重支付者算法;(6)=识别双重支付者,所述银行检测双重存储或双重支付;6.1 利用两个不同的五元组(A,c,d,r<sub>1</sub>,r<sub>2</sub>)和(A,c,d',r'<sub>1</sub>,r′<sub>2</sub>),B可以计算u<sub>0</sub>=(r<sub>1</sub>‑r'<sub>1</sub>)/(r<sub>2</sub>‑r′<sub>2</sub>)modq并追踪双重支付者U,在这种情况下,B也可以了解到U第一次提取货币;6.2 利用两个不同的五元组(A<sub>j</sub>,c<sup>*</sup>,d<sub>j</sub>,τ<sub>j</sub>,v<sub>j</sub>)和 (A<sub>j</sub>,c<sup>*</sup>,d'<sub>j</sub>,τ'<sub>j</sub>,v'<sub>j</sub>),B可以计算u<sub>j</sub>=(τ<sub>j</sub>‑τ'<sub>j</sub>)/(v<sub>j</sub>‑v'<sub>j</sub>)modq并追踪双重支付者S<sub>j</sub>;6.3 令l<n‑1是最大的指标,所有A<sub>j</sub>(1≤j≤l)已经存储在数据库中,利用两个不同的五元组(A<sub>l</sub>,c<sup>*</sup>,d<sub>l</sub>,τ<sub>l</sub>,v<sub>l</sub>)和(A<sub>k</sub>,c<sup>*</sup>,d<sub>k</sub>,τ<sub>k</sub>,v<sub>k</sub>),B能够以下述方式验证不端行为:如果k<l,B可以推断出S<sub>k+1</sub>试图两次存储相同的支付,因此他将拒绝S<sub>k+1</sub>的请求;如果k>l,B可以推断出S<sub>l+1</sub>是一个双重支付者,因为在这种情况下,意味着同一个支付既被S<sub>l+1</sub>兑现,又被它转让,利用A<sub>l+1</sub>和a<sub>l+1</sub>的信息,B可以计算出S<sub>l+1</sub>的账户信息:<img file="FDA0000927830980000041.GIF" wi="365" he="93" />
地址 710071 陕西省西安市太白南路2号西安电子科技大学