基于椭圆曲线盲签名的电子现金系统设计
来源:用户上传
作者: 徐 军
[摘要] 利用椭圆曲线盲签名算法,可获得比RSA算法更高的的安全性;银行与认证中心CA联合实现电子现金的匿名控制,必要时可对问题现金及非法使用者进行追踪,揭露其身份;方案在设计时同时考虑了SET协议的运作模式,更适合人们的消费习惯和电子商务发展的需要。
[关键词] 电子现金 椭圆曲线 盲签名 匿名控制 安全性
一、引言
电子商务的发展离不开先进的支付手段,电子现金作为电子支付的关键技术,自80年代中期以来已取得了很大的研究成果。其安全性和可靠性主要依靠密码技术来实现,如零知识证明、盲数字签名等,早期的电子现金系统主要基于RSA、DLP公钥密码技术,如DigiCash公司的eCashTM ,NIST也于1991年将DSA算法作为数字签名的标准。1985年,N. Koblitz和V. Miller分别独立提出了椭圆曲线密码体制(ECC),利用有限域上椭圆曲线的点构成的群实现了离散对数密码算法,由于其具有计算量小,处理速度快、存储空间占用小、带宽要求低等优点,在电子现金应用领域得到广泛关注,SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法。
考虑到SET协议将成为事实上电子商务支付的标准,我们认为电子现金应符合SET模式。由于在SET中只涉及四个对象:用户U、银行Bank、商家Shop和认证中心CA,所以电子现金应该是在线、支持认证中心(CA)并由CA实现匿名性的控制,本文将利用基于椭圆曲线盲签名,设计一安全、实用、匿名可控的电子现金系统。
一、椭圆曲线盲签名算法(ECDSA)
椭圆曲线数字签名一般是将基于离散对数的签名体制如Schnoor、EIGamal、DSA以及导出变种形式移植到椭圆曲线上,在文献[4]中也给出了多种签名方案及盲签名方案。
设p是一个大素数,a,b∈GF(p), 满足4a3+27b2≠0。椭圆曲线E(a,b)(GF(p))可定义为点集(x,y)∈GF(p)*GF(p),满足y2=x3+ax+b,我们定义一个零元,用O表示,这样,这些点构成了一个阿贝尔群。G是E(a,b)(GF(p))中的一个阶为q的元素。d ∈RZn*,是签名私钥,Q=dG是签名验证公钥。Rx(A)表示点A的x坐标值,H是一个单向HASH函数,H:{0,1}*→{0,1}k,我们用来表示两个串的连接。系统的参数为{p,a,b,G,q, Q,d,H}。
椭圆曲线的Schnoor(ECDSA)盲签名体制可描述如下:
发送方随机选择一个整数k∈RZn*,计算kG;
接收方随机选择γ,δ∈RZn*,计算:A=kG+γG+δQ,t= Rx(A)modn,c=H(mt),c’=c-δ,将c’送出。
发送方计算:s’=k-c’d。
接收方计算:s=s’+γ。
由于γ,δ是随机选择的,所以签名者不会知道签名的内容,盲签名的形式为(c,s)。从上过程可看出,kG可预先计算,当c’到来时,仅需一次乘法和一次加法运算就可完成签名,因此计算量小、运算速度快,签名结果也较短,比较适合电子现金系统使用。
二、电子现金系统方案设计
对于CA认证中心,需要使用系统参数建立ECDSA的数字签名。随机选择xca∈GF(q)*作为自己的私钥,然后计算pca=xcaG,将pca作为自己的公开密钥。同样,银行、用户的私钥分别为xb、xu,公钥分别为pb、pu。将pca、pb、pu公开。
1.注册(Registration)
用户提交自己的信息,由CA使用ECDSA进行签名,用于向用户提供包含其身份信息的电子执照。 在取款时必须出示该签名。设ID为用户标识信息,包含姓名、身份证号等。注册过程即用户向认证中心提供个人可信信息,存案备查。即I= ECDSA(xcaH(ID)) ,此时,I 相当于一个简单的数字证书。
2.取款协议(Withdrawal Protocol)
电子现金的核心协议,用户从自己的银行账户上提取电子现金。为了保证用户匿名的前提下获得带有银行签名的合法电子现金,用户将与银行交互执行盲签名协议,同时银行必须确信电子现金上包含必要的用户身份。
设m为用户的取款信息,是个五元组{数量,面值,账号,时间,CA的签名I}。取款信息中的I ,向银行表明自己是一个合法的用户,银行利用CA的公开密钥pca来验证,这就保证了取款时用户必须提供自己的正确信息,从而在构造电子现金时嵌入这些信息,而银行又不知道信息的具体内容,用户的隐私也得到了保护。其后的工作是使用ECDSA盲签名来完成取款过程。描述如下:
(1)用户:任选 z∈RZq*,计算T=ECDSA(xu(m)),,C=zG,c= Rx(C) ∥Ry(C),将(m,T)送银行。
(2)银行:用pb验证签名,Verify(pu(T));任选 k∈RZq*,计算Φ=kG, S=ECDSA(xb(Φ))
(3)用户:收到(Φ,S)后,验证,Verify(pb(Φ));θ,δ∈RZq*,计算A=Φ+θG+δpb,h=Rx(A)≠0mod q,e=H(c∥h),e'=e-δ;将e'送出;
(4)银行:计算s’=k-e’xb;
(5)用户:计算s=s’+θ;验证e=H(c∥(Rx(epb+sG) mod q));验证推导过程略。上式如果成立,(e,s)即为盲签名结果。
此时,银行就可以记录下(I,Φ,(m,T))存入自己的数据库,同时从用户的账户上减去相应的取款数。
由上,得出电子现金的结构:Coin={c,e,s,I}
3.存款协议
存款的过程比较简单,经过一段交易周期后,商家将收到的电子现金到银行处进行存储。商家将在支付中得到的电子现金Coin={c,e,s,I}和自己的账号传递给银行,银行首先对电子现金进行有效期检查,确认是否有效,然后使用核验自己和认证中心的签名{e,s},若无误,则开始搜索电子现金数据库,如搜索失败,表明此电子现金是第一次使用,银行将此{c,e,s,I}和交易日期时间存入数据库,并将此现金的数额存入商家的帐户。
若搜索成功,则表明在用户和商家中肯定有一个是欺诈者。若新发送来的电子现金的交易日期、时间与搜索到的相同,说明商家在重复存储该电子现金。否则说明用户在重复使用同一电子现金。
三、电子现金身份揭露
CA的存在,也使得对电子现金及其使用者的追踪变得容易,省去了许多复杂的计算。
1.重复使用者的揭露
银行知道电子现金的结构{c,e,s,I},发现重用的现金后,即从中提取出I信息,发送给CA,因I是CA对用户注册信息的签名,故CA有能力解密I,求出ID,然后将其发送给银行。银行以c为关键字从自己的数据库中查找,找到(m,T),形成如下结构信息{ID,Φ,(m,T)},这实际上是用户的身份识别信息。
2.问题现金追踪
当出现利用电子现金进行洗钱、诈骗等问题时,需要跟踪现金的使用,用户提交他的ID给银行,问题现金消费时,一定会出现相同的ID,银行计算出Φ=kG,可实现跟踪。
四、安全性分析
由于CA的引入,强化了安全保证,在电子现金中同时嵌入了CA和银行的签名,增加了伪造的难度,也满足了匿名性的要求。方案安全性建立在椭圆曲线对数(ECDLP)分解之上的,强度高于RSA方法,其分解是非常困难的,目前还没有有效的方法,本方案是安全的。
注意到参数域RZq*,单向函数H以及公钥pu、pb、pca、ps均是公开的,攻击者当然可以得到这些信息;同时注册、取款、存款等交易业务过程均在公共网络平台之上,即存在可能的不安全信道,攻击者可能截获(Φ,S)、(M,C);从取款协议中可看出,由于δ、θ是随机选取的,e= H(c∥(Rx (Φ+θG+δpb)), 因此伪造电子现金的签名相当于分解ECDLP难题。
如果攻击者截获了用户发给商家的Coin信息,意味着现金的丢失,解决办法是在支付协议中商家对用户进行质询。商家发给用户(M,C),用户响应(ε,M’),由于计算中对于F=fG 、C=zG,f和z是任选的,如前所述,攻击者想得知f、z是困难的,无法计算出ε=f-M’ z mod q,故无法正确回答商家的质询,所以他也无法花费,商家更不会受骗而发货。
五、结语
本文设计的电子现金系统,结合SET协议模式,使用椭圆曲线盲签名(ECDSA),安全实用,符合目前电子现金的支付模式,能实现电子现金的匿名可撤销性;缺点是需要认证中心CA一直在线,与其他方案相比,多了注册环节,且完成一次取款、支付到存款的过程需要5次签名,6次验证,因而效率有待于提高。
参考文献:
[1]V.S Miller:use of elliptic curve in cryptography[A].Advances in cryptology-CRYPTO’85[C].springer-verlag,1984,417~426
[2]张方国王常杰王育民:基于椭圆曲线的数字签名与盲签名[J].通信学报, 2001,22(8):22~28
[3]Davida,Y.frakel,Y.Tsiouns:Myung,Anonymity Control in E-cash systems[A]. in Finacial Cryptography’97[C],(LNCS 1318),1~16,Springer-verlag.1997
[4]郭涛李之棠彭建芬吴世忠:基于椭圆曲线的盲签名与离线电子现金协议[J].通信学报, 2003, 24(9):142~146
[5]蔡满春杨义先胡正名:基于椭圆曲线密码体制的一种电子现金方案[J].北京邮电大学学报, 2004,27(2):44~47
转载注明来源:https://www.xzbu.com/3/view-1494811.htm