[摘要] 利用橢圓曲線盲簽名算法,可獲得比RSA算法更高的的安全性;銀行與認(rèn)證中心CA聯(lián)合實(shí)現(xiàn)電子現(xiàn)金的匿名控制,必要時(shí)可對(duì)問(wèn)題現(xiàn)金及非法使用者進(jìn)行追蹤,揭露其身份;方案在設(shè)計(jì)時(shí)同時(shí)考慮了SET協(xié)議的運(yùn)作模式,更適合人們的消費(fèi)習(xí)慣和電子商務(wù)發(fā)展的需要。
[關(guān)鍵詞] 電子現(xiàn)金 橢圓曲線 盲簽名 匿名控制 安全性
一、引言
電子商務(wù)的發(fā)展離不開(kāi)先進(jìn)的支付手段,電子現(xiàn)金作為電子支付的關(guān)鍵技術(shù),自80年代中期以來(lái)已取得了很大的研究成果。其安全性和可靠性主要依靠密碼技術(shù)來(lái)實(shí)現(xiàn),如零知識(shí)證明、盲數(shù)字簽名等,早期的電子現(xiàn)金系統(tǒng)主要基于RSA、DLP公鑰密碼技術(shù),如DigiCash公司的eCashTM ,NIST也于1991年將DSA算法作為數(shù)字簽名的標(biāo)準(zhǔn)。1985年,N. Koblitz和V. Miller分別獨(dú)立提出了橢圓曲線密碼體制(ECC),利用有限域上橢圓曲線的點(diǎn)構(gòu)成的群實(shí)現(xiàn)了離散對(duì)數(shù)密碼算法,由于其具有計(jì)算量小,處理速度快、存儲(chǔ)空間占用小、帶寬要求低等優(yōu)點(diǎn),在電子現(xiàn)金應(yīng)用領(lǐng)域得到廣泛關(guān)注,SET協(xié)議的制定者已把它作為下一代SET協(xié)議中缺省的公鑰密碼算法。
考慮到SET協(xié)議將成為事實(shí)上電子商務(wù)支付的標(biāo)準(zhǔn),我們認(rèn)為電子現(xiàn)金應(yīng)符合SET模式。由于在SET中只涉及四個(gè)對(duì)象:用戶U、銀行Bank、商家Shop和認(rèn)證中心CA,所以電子現(xiàn)金應(yīng)該是在線、支持認(rèn)證中心(CA)并由CA實(shí)現(xiàn)匿名性的控制,本文將利用基于橢圓曲線盲簽名,設(shè)計(jì)一安全、實(shí)用、匿名可控的電子現(xiàn)金系統(tǒng)。
一、橢圓曲線盲簽名算法(ECDSA)
橢圓曲線數(shù)字簽名一般是將基于離散對(duì)數(shù)的簽名體制如Schnoor、EIGamal、DSA以及導(dǎo)出變種形式移植到橢圓曲線上,在文獻(xiàn)[4]中也給出了多種簽名方案及盲簽名方案。
設(shè)p是一個(gè)大素?cái)?shù),a,b∈GF(p), 滿足4a3+27b2≠0。橢圓曲線E(a,b)(GF(p))可定義為點(diǎn)集(x,y)∈GF(p)*GF(p),滿足y2=x3+ax+b,我們定義一個(gè)零元,用O表示,這樣,這些點(diǎn)構(gòu)成了一個(gè)阿貝爾群。G是E(a,b)(GF(p))中的一個(gè)階為q的元素。d ∈RZn*,是簽名私鑰,Q=dG是簽名驗(yàn)證公鑰。Rx(A)表示點(diǎn)A的x坐標(biāo)值,H是一個(gè)單向HASH函數(shù),H:{0,1}*→{0,1}k,我們用來(lái)表示兩個(gè)串的連接。系統(tǒng)的參數(shù)為{p,a,b,G,q, Q,d,H}。
橢圓曲線的Schnoor(ECDSA)盲簽名體制可描述如下:
發(fā)送方隨機(jī)選擇一個(gè)整數(shù)k∈RZn*,計(jì)算kG;
接收方隨機(jī)選擇γ,δ∈RZn*,計(jì)算:A=kG+γG+δQ,t= Rx(A)modn,c=H(mt),c’=c-δ,將c’送出。
發(fā)送方計(jì)算:s’=k-c’d。
接收方計(jì)算:s=s’+γ。
由于γ,δ是隨機(jī)選擇的,所以簽名者不會(huì)知道簽名的內(nèi)容,盲簽名的形式為(c,s)。從上過(guò)程可看出,kG可預(yù)先計(jì)算,當(dāng)c’到來(lái)時(shí),僅需一次乘法和一次加法運(yùn)算就可完成簽名,因此計(jì)算量小、運(yùn)算速度快,簽名結(jié)果也較短,比較適合電子現(xiàn)金系統(tǒng)使用。
二、電子現(xiàn)金系統(tǒng)方案設(shè)計(jì)
對(duì)于CA認(rèn)證中心,需要使用系統(tǒng)參數(shù)建立ECDSA的數(shù)字簽名。隨機(jī)選擇xca∈GF(q)*作為自己的私鑰,然后計(jì)算pca=xcaG,將pca作為自己的公開(kāi)密鑰。同樣,銀行、用戶的私鑰分別為xb、xu,公鑰分別為pb、pu。將pca、pb、pu公開(kāi)。
1.注冊(cè)(Registration)
用戶提交自己的信息,由CA使用ECDSA進(jìn)行簽名,用于向用戶提供包含其身份信息的電子執(zhí)照。 在取款時(shí)必須出示該簽名。設(shè)ID為用戶標(biāo)識(shí)信息,包含姓名、身份證號(hào)等。注冊(cè)過(guò)程即用戶向認(rèn)證中心提供個(gè)人可信信息,存案?jìng)洳?。即I= ECDSA(xcaH(ID)) ,此時(shí),I 相當(dāng)于一個(gè)簡(jiǎn)單的數(shù)字證書(shū)。
2.取款協(xié)議(Withdrawal Protocol)
電子現(xiàn)金的核心協(xié)議,用戶從自己的銀行賬戶上提取電子現(xiàn)金。為了保證用戶匿名的前提下獲得帶有銀行簽名的合法電子現(xiàn)金,用戶將與銀行交互執(zhí)行盲簽名協(xié)議,同時(shí)銀行必須確信電子現(xiàn)金上包含必要的用戶身份。
設(shè)m為用戶的取款信息,是個(gè)五元組{數(shù)量,面值,賬號(hào),時(shí)間,CA的簽名I}。取款信息中的I ,向銀行表明自己是一個(gè)合法的用戶,銀行利用CA的公開(kāi)密鑰pca來(lái)驗(yàn)證,這就保證了取款時(shí)用戶必須提供自己的正確信息,從而在構(gòu)造電子現(xiàn)金時(shí)嵌入這些信息,而銀行又不知道信息的具體內(nèi)容,用戶的隱私也得到了保護(hù)。其后的工作是使用ECDSA盲簽名來(lái)完成取款過(guò)程。描述如下:
(1)用戶:任選 z∈RZq*,計(jì)算T=ECDSA(xu(m)),,C=zG,c= Rx(C) ∥Ry(C),將(m,T)送銀行。
(2)銀行:用pb驗(yàn)證簽名,Verify(pu(T));任選 k∈RZq*,計(jì)算Φ=kG, S=ECDSA(xb(Φ))
(3)用戶:收到(Φ,S)后,驗(yàn)證,Verify(pb(Φ));θ,δ∈RZq*,計(jì)算A=Φ+θG+δpb,h=Rx(A)≠0mod q,e=H(c∥h),e'=e-δ;將e'送出;
(4)銀行:計(jì)算s’=k-e’xb;
(5)用戶:計(jì)算s=s’+θ;驗(yàn)證e=H(c∥(Rx(epb+sG) mod q));驗(yàn)證推導(dǎo)過(guò)程略。上式如果成立,(e,s)即為盲簽名結(jié)果。
此時(shí),銀行就可以記錄下(I,Φ,(m,T))存入自己的數(shù)據(jù)庫(kù),同時(shí)從用戶的賬戶上減去相應(yīng)的取款數(shù)。
由上,得出電子現(xiàn)金的結(jié)構(gòu):Coin={c,e,s,I}
3.存款協(xié)議
存款的過(guò)程比較簡(jiǎn)單,經(jīng)過(guò)一段交易周期后,商家將收到的電子現(xiàn)金到銀行處進(jìn)行存儲(chǔ)。商家將在支付中得到的電子現(xiàn)金Coin={c,e,s,I}和自己的賬號(hào)傳遞給銀行,銀行首先對(duì)電子現(xiàn)金進(jìn)行有效期檢查,確認(rèn)是否有效,然后使用核驗(yàn)自己和認(rèn)證中心的簽名{e,s},若無(wú)誤,則開(kāi)始搜索電子現(xiàn)金數(shù)據(jù)庫(kù),如搜索失敗,表明此電子現(xiàn)金是第一次使用,銀行將此{(lán)c,e,s,I}和交易日期時(shí)間存入數(shù)據(jù)庫(kù),并將此現(xiàn)金的數(shù)額存入商家的帳戶。
若搜索成功,則表明在用戶和商家中肯定有一個(gè)是欺詐者。若新發(fā)送來(lái)的電子現(xiàn)金的交易日期、時(shí)間與搜索到的相同,說(shuō)明商家在重復(fù)存儲(chǔ)該電子現(xiàn)金。否則說(shuō)明用戶在重復(fù)使用同一電子現(xiàn)金。
三、電子現(xiàn)金身份揭露
CA的存在,也使得對(duì)電子現(xiàn)金及其使用者的追蹤變得容易,省去了許多復(fù)雜的計(jì)算。
1.重復(fù)使用者的揭露
銀行知道電子現(xiàn)金的結(jié)構(gòu){c,e,s,I},發(fā)現(xiàn)重用的現(xiàn)金后,即從中提取出I信息,發(fā)送給CA,因I是CA對(duì)用戶注冊(cè)信息的簽名,故CA有能力解密I,求出ID,然后將其發(fā)送給銀行。銀行以c為關(guān)鍵字從自己的數(shù)據(jù)庫(kù)中查找,找到(m,T),形成如下結(jié)構(gòu)信息{ID,Φ,(m,T)},這實(shí)際上是用戶的身份識(shí)別信息。
2.問(wèn)題現(xiàn)金追蹤
當(dāng)出現(xiàn)利用電子現(xiàn)金進(jìn)行洗錢、詐騙等問(wèn)題時(shí),需要跟蹤現(xiàn)金的使用,用戶提交他的ID給銀行,問(wèn)題現(xiàn)金消費(fèi)時(shí),一定會(huì)出現(xiàn)相同的ID,銀行計(jì)算出Φ=kG,可實(shí)現(xiàn)跟蹤。
四、安全性分析
由于CA的引入,強(qiáng)化了安全保證,在電子現(xiàn)金中同時(shí)嵌入了CA和銀行的簽名,增加了偽造的難度,也滿足了匿名性的要求。方案安全性建立在橢圓曲線對(duì)數(shù)(ECDLP)分解之上的,強(qiáng)度高于RSA方法,其分解是非常困難的,目前還沒(méi)有有效的方法,本方案是安全的。
注意到參數(shù)域RZq*,單向函數(shù)H以及公鑰pu、pb、pca、ps均是公開(kāi)的,攻擊者當(dāng)然可以得到這些信息;同時(shí)注冊(cè)、取款、存款等交易業(yè)務(wù)過(guò)程均在公共網(wǎng)絡(luò)平臺(tái)之上,即存在可能的不安全信道,攻擊者可能截獲(Φ,S)、(M,C);從取款協(xié)議中可看出,由于δ、θ是隨機(jī)選取的,e= H(c∥(Rx (Φ+θG+δpb)), 因此偽造電子現(xiàn)金的簽名相當(dāng)于分解ECDLP難題。
如果攻擊者截獲了用戶發(fā)給商家的Coin信息,意味著現(xiàn)金的丟失,解決辦法是在支付協(xié)議中商家對(duì)用戶進(jìn)行質(zhì)詢。商家發(fā)給用戶(M,C),用戶響應(yīng)(ε,M’),由于計(jì)算中對(duì)于F=fG 、C=zG,f和z是任選的,如前所述,攻擊者想得知f、z是困難的,無(wú)法計(jì)算出ε=f-M’ z mod q,故無(wú)法正確回答商家的質(zhì)詢,所以他也無(wú)法花費(fèi),商家更不會(huì)受騙而發(fā)貨。
五、結(jié)語(yǔ)
本文設(shè)計(jì)的電子現(xiàn)金系統(tǒng),結(jié)合SET協(xié)議模式,使用橢圓曲線盲簽名(ECDSA),安全實(shí)用,符合目前電子現(xiàn)金的支付模式,能實(shí)現(xiàn)電子現(xiàn)金的匿名可撤銷性;缺點(diǎn)是需要認(rèn)證中心CA一直在線,與其他方案相比,多了注冊(cè)環(huán)節(jié),且完成一次取款、支付到存款的過(guò)程需要5次簽名,6次驗(yàn)證,因而效率有待于提高。
參考文獻(xiàn):
[1]V.S Miller:use of elliptic curve in cryptography[A].Advances in cryptology-CRYPTO’85[C].springer-verlag,1984,417~426
[2]張方國(guó)王常杰王育民:基于橢圓曲線的數(shù)字簽名與盲簽名[J].通信學(xué)報(bào), 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]郭濤李之棠彭建芬吳世忠:基于橢圓曲線的盲簽名與離線電子現(xiàn)金協(xié)議[J].通信學(xué)報(bào), 2003, 24(9):142~146
[5]蔡滿春楊義先胡正名:基于橢圓曲線密碼體制的一種電子現(xiàn)金方案[J].北京郵電大學(xué)學(xué)報(bào), 2004,27(2):44~47