该电子现金协议是由Brands提出的,它是目前性能最好的电子现金协议之一,由以下几个部分组成。
(1)初始化协议
②Gq是乘法群Z*p的阶为q的子群,g、g1、g2是群Gq的生成元。
(2)提款协议
顾客向银行提出取款请求,并用零知识证明自己知道u1,银行在验证顾客的合法身份后,执行以下协议。
最后将c′发送给银行。
③银行计算r′=c′x+w mod q,并将r′发送给顾客。
④顾客先验证
是否成立,如果成立,再计算r=r′u+v mod q。
最后顾客将{A,B,z,a,b,r}作为电子现金,电子现金实际上是银行对嵌入有顾客身份信息A、B的一个盲签名,记为sig(A,B)。(www.daowen.com)
(3)支付协议
顾客提供给商家一对值(r1,r2)来证明自己知道u1,这样商家就相信顾客是电子现金的合法持有者。
①顾客向商家提供电子现金{A,B,z,a,b,r}。
②商家计算d=H0(A‖B‖Is‖Data/Time),并将d发送给顾客(这里Is是商家的身份信息,Data/Time代表当时日期和时间)。
③顾客计算r1=d u1s+x1 mod q,r2=d s+x2 mod q,再将r1、r2发送给商家。
④商家计算c=H(A‖B‖z‖a‖b),再验证
是否成立。若成立,电子现金有效,顾客为合法持有人,接受电子现金。
(4)存款协议
商家把{d,r1,r2,sig(A,B)}传输给银行,银行检测电子现金的合法性,如果合法,则在商家账户上增加一次现金金额。如果顾客重复花费,则可以从两次支付信息中揭示顾客的身份
这个协议是目前最好的单个电子现金协议,不过它也存在一些不足之处。协议中的电子现金不能表明金额大小,只能采用银行的不同公钥对应不同金额的方式,而且由于协议对顾客的隐私无条件保护,也容易被不法分子利用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。