楊茂云
(徐州師范大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 徐州 221116)
電子現(xiàn)金[1-5]是一種以數(shù)據(jù)形式流通的貨幣。它把現(xiàn)金數(shù)值轉(zhuǎn)換成一系列的加密序列數(shù),通過(guò)序列數(shù)來(lái)表示現(xiàn)實(shí)中的貨幣。用戶在開(kāi)展電子現(xiàn)金業(yè)務(wù)的銀行開(kāi)設(shè)帳戶,在帳戶中存錢,提取電子現(xiàn)金后,就可以在接受電子現(xiàn)金的商家購(gòu)物。電子現(xiàn)金是現(xiàn)代密碼學(xué)的最重要應(yīng)用之一,按支付方式分為:
① 在線電子現(xiàn)金(on-line):每次支付都需要銀行的參加,它的通信代價(jià)很高,主要用來(lái)阻止超額消費(fèi),一般適用于高額消費(fèi);
② 離線電子現(xiàn)金(off-line):在支付過(guò)程中無(wú)需銀行參加,它的通信代價(jià)不高,但離線電子現(xiàn)金有資金濫用問(wèn)題,一般適用于小額消費(fèi)。
Brands[1]電子現(xiàn)金方案是目前效率較高的匿名離線不可分電子現(xiàn)金系統(tǒng),Brands電子現(xiàn)金方案的安全性基于素?cái)?shù)階群的表示問(wèn)題(Brands假設(shè))[1]和Schnorr簽名[6]。在該方案中,電子現(xiàn)金的不可跟蹤性得到無(wú)條件的保證,電子現(xiàn)金的不可偽造性和不可重用性在離散對(duì)數(shù)和一個(gè)合理的隨機(jī)性假設(shè)下用隨機(jī)問(wèn)答器模型可以得到證明。但是Brands電子現(xiàn)金方案為保證電子現(xiàn)金的不可重用性,需要在銀行保存已花費(fèi)的電子現(xiàn)金的數(shù)據(jù),隨著系統(tǒng)規(guī)模的擴(kuò)大,銀行會(huì)成為瓶頸。
通過(guò)把電子現(xiàn)金的提取日期嵌入到電子現(xiàn)金和銀行對(duì)電子現(xiàn)金的簽名中,在不降低安全性的基礎(chǔ)上,可以較好地解決銀行的瓶頸問(wèn)題。
Gq是 一 個(gè) 階 為 素 數(shù) 的 群 , k ≥ 2,gi∈ Gq{1},gi≠gj,(i≠ j) , 若 對(duì) 任 何h∈Gq存 在ai∈ Zq,1≤i≤ k 使 得是長(zhǎng)度為k的生成重,(a1, a2,… ak) 為h關(guān)于 (g1, g2,… ,gk)的一個(gè)表示。
Brands假設(shè):
如果 Gq是一個(gè)階為素?cái)?shù)的群,(g1, g2,… ,gk)是它的一個(gè)生成重, h ∈ Gq那么求 h關(guān)于(g1, g2,… ,gk)的一個(gè)表示是一個(gè)難解問(wèn)題。
系統(tǒng)的參與方有三個(gè):銀行、用戶及商家。系統(tǒng)的工作模式如圖1所示。
圖1 系統(tǒng)工作模式
銀行 B隨機(jī)產(chǎn)生一個(gè)生成重(g , g1,g2)和一個(gè)秘密數(shù)x ∈,h =gx以及兩個(gè)單向免碰撞哈希函數(shù)H,H0:
IDS表示商店的識(shí)別號(hào),D/T表示交易的日期/時(shí)間。生成重,哈希函數(shù)及h公開(kāi)。
銀行B建立兩個(gè)數(shù)據(jù)庫(kù):賬號(hào)數(shù)據(jù)庫(kù)(存儲(chǔ)用戶和商店的賬號(hào))、存儲(chǔ)數(shù)據(jù)庫(kù)(存儲(chǔ)已花掉的硬幣,存儲(chǔ)時(shí)間為有效期的兩倍)。β表示現(xiàn)金的提取時(shí)間(從某一時(shí)刻開(kāi)始的天數(shù))。銀行B對(duì) (A, B )的簽名 s ig ( A, B ) 是一個(gè)四重組 (z, a , b,r )滿足:
這是一個(gè)Schnorr型簽名。用 ( A,B,A1, β, si g(A,B))表示一個(gè)硬幣。 A , B ,A1在后面解釋。
顧客U向銀行B證明其身份,隨機(jī)產(chǎn)生一個(gè)數(shù) μ1∈Z*q計(jì)算賬號(hào) I =g1μ1,發(fā)送給B并秘密保存μ1。B將U的身份信息和賬號(hào)I存儲(chǔ)于賬號(hào)數(shù)據(jù)庫(kù)中,同時(shí)計(jì)算發(fā)送給用戶U。
用戶U向銀行B證明他的身份后,執(zhí)行下列協(xié)議:
③ B給U一個(gè)回答 r = ( cx + w)mo d q,并從U的賬戶上去掉一個(gè)硬幣的值。U驗(yàn)證 gr= a hc,)r= b zc,若驗(yàn)證成立,U計(jì)算 r ′=(rμ + ν)mo d q ,=則B對(duì) (A,B )的簽名 s ig ( A,B )=(z′, a ′,b′,r′) , 只 有 用 戶 U知 道 (A, B ,A1,β1,的表示。
用戶U和商店S執(zhí)行下列協(xié)議:
① U將 ( A,B,A1, β1,sig ( A, B )) 發(fā)送給商店S。若硬幣在有效期內(nèi),且不在數(shù)據(jù)庫(kù)中則繼續(xù),否則停止;
② 如果A≠1,S計(jì)算口令d=H0(A,B,IDS,D/T)發(fā)送給U;
③ U計(jì) 算 r1= ( dμ1s +x1)mo d q ,r2=(ds + x2)mo d q, 將r1, r2發(fā)送給S。S驗(yàn)證 s ig ( A, B )=(z′, a ′,b′,r′) 是合法的簽名且后接受硬幣,否則不予接受,把支付記錄 ( A,B,A1, β1, sig ( A, B ),r1, r2) 存儲(chǔ)于數(shù)據(jù)庫(kù)中。
商店定時(shí)將支付記錄和交易的日期時(shí)間發(fā)送給B,B驗(yàn)證硬幣在兩倍有效期內(nèi)后利用商店的 IDS計(jì)算 d,驗(yàn)證sig ( A,B )=(z′, a ′,b′,r′) 是合法的簽名且后接受該支付記錄。B搜索存儲(chǔ)數(shù)據(jù)庫(kù)會(huì)出現(xiàn)以下兩種情況:
① 若A不存在,則把(A, D /T,β1, r1,r2)存儲(chǔ)于存儲(chǔ)數(shù)據(jù)庫(kù)中,同時(shí)在S的賬戶中記入一個(gè)硬幣的貨幣值;
② 若A存在,此時(shí)有兩種可能的偽造:
a. 若新提交的支付記錄、日期/時(shí)間與存儲(chǔ)數(shù)據(jù)庫(kù)中的日期/時(shí)間完全一致,則表明商店S試圖存儲(chǔ)第二次。
b. 若新提交的支付記錄、日期/時(shí)間與存儲(chǔ)數(shù)據(jù)庫(kù)的日期/時(shí)間不一致,則表明用戶U重復(fù)花費(fèi)該硬幣。銀行B利用 新 得 到 (r1, r2) 和 存 儲(chǔ) 數(shù) 據(jù) 庫(kù) 中 的 (r1′, r2′) 計(jì) 算即銀行 B可以得到重復(fù)花費(fèi)用戶的賬號(hào)。(r1- r1′)/(r2- r2′)是重復(fù)花費(fèi)的證據(jù)。
顧客可以在有效期到期前把沒(méi)有花費(fèi)的硬幣還給銀行,用戶U和銀行B執(zhí)行下列協(xié)議:
①U將 ( A,B,A1, β1,sig ( A, B )) 發(fā)送給銀行B。若硬幣在有效期內(nèi)則繼續(xù),否則停止;
②如果A≠1,B計(jì)算口令d=H0(A,B ,IDB,D/T )發(fā)送給U。U計(jì)算 r1= ( dμ1s +x1)mo d q ,r2=(ds + x2)mo d q將 r1,r2發(fā)送給B。B驗(yàn)證 s ig ( A, B )=(z′, a ′,b′,r′) 是合法的簽名且后搜索存儲(chǔ)數(shù)據(jù)庫(kù),若 A不存在,則把(A, D /T,β1, r1,r2)存儲(chǔ)于數(shù)據(jù)庫(kù)中,同時(shí)在U的賬戶中記入一個(gè)硬幣的貨幣值;若A存在則不接受該硬幣。
② 在支付協(xié)議中,商店 S通過(guò)驗(yàn)證簽名就可判定硬幣是否有效,硬幣提取日期是否有效,是否是銀行核發(fā)的硬幣;
③在商店存款協(xié)議中,銀行B通過(guò)驗(yàn)證簽名就可判定硬幣是否有效?若用戶U重復(fù)花費(fèi)該硬幣,銀行B利用新得到(r1, r2) 和存儲(chǔ)數(shù)據(jù)庫(kù)中的 (r1′, r2′) 計(jì)算= Ad′B兩者相除得到因?yàn)?s d -sd′=r2-r2′故:即銀行B可以得到重復(fù)花費(fèi)用戶的賬號(hào)。
(1)匿名性
在支付協(xié)議中由于離散對(duì)數(shù)的難解性,沒(méi)有人知道用戶選擇的秘密隨機(jī)數(shù),也就不能求得硬幣的素?cái)?shù)階群的表示,用戶的身份已經(jīng)嵌入到硬幣中。用戶在花費(fèi)該硬幣時(shí)不會(huì)泄露他的身份。
(2)不可聯(lián)系性
用戶每提取一枚硬幣都要重新選擇隨機(jī)數(shù),沒(méi)有辦法從用戶花費(fèi)的不同硬幣中得到有用信息。
(3)不可偽造性
用戶不能重復(fù)花費(fèi)硬幣,商店也不能重復(fù)存儲(chǔ)硬幣,沒(méi)有銀行的允許用戶和商店也不能制造硬幣。
(4)安全性
方案的實(shí)現(xiàn)不依賴任何特殊的硬件。
(5)與Brands方案的比較
① 新方案中的硬幣長(zhǎng)度約為Brands方案的1.1倍;
② 新方案與Brands方案相比在提款協(xié)議中,用戶U多兩個(gè)模指數(shù)運(yùn)算,銀行多一個(gè)模指數(shù)運(yùn)算,但這三個(gè)運(yùn)算都可以預(yù)先處理。在支付協(xié)議中,商店S多一個(gè)模指數(shù)運(yùn)算。在存款協(xié)議中銀行多一個(gè)模指數(shù)運(yùn)算。新方案并沒(méi)有增加太多的計(jì)算負(fù)擔(dān);
③ 新方案比Brands方案大大縮小了銀行存儲(chǔ)數(shù)據(jù)庫(kù)的規(guī)模,以有效期30天計(jì),銀行存儲(chǔ)數(shù)據(jù)庫(kù)只需要存儲(chǔ)60天的數(shù)據(jù);
④ 新方案比Brands方案大大提高了銀行數(shù)據(jù)庫(kù)的查找效率,以有效期 30天計(jì),依提取硬幣的日期為索引進(jìn)行查找,只需查找存儲(chǔ)數(shù)據(jù)庫(kù)中數(shù)據(jù)的六十分之一;
⑤ 新方案比Brands方案增加了一個(gè)顧客硬幣更新協(xié)議,這增加了用戶使用的不方便性。
雖然新方案比 Brands方案在計(jì)算效率上有所降低,但降低的并不多,完全可以用硬件技術(shù)的提升來(lái)抵消。新方案有效地解決了銀行存儲(chǔ)數(shù)據(jù)庫(kù)的瓶頸問(wèn)題,更適合大規(guī)模的使用。
[1] BRANDS S.Untraceable Off-line Cash in Wallets with Observers[C].USA: Springer-Verlag,1994:302-318.
[2] CHEN Kai,WEI Shimin, XIAO Guozhen.A New Approach to The Divisible E-cash System[C].[s.n.]:Beijing,2000:271-274.
[3] 孟純煜,殷新春,宋春來(lái).基于 XTR體制的電子現(xiàn)金支付方案[J].通信技術(shù),2008,41(10):83-84.
[4] CHAUM D.Blind Signatures for Untraceable Payments[C]. New York:Springer-Verlag,1983:199-203.
[5] CHAUM D,FIAT A,NAOR M.Untraceable Electronic Cash[C].New York:Springer-Verlag,1990:319-327.
[6] SCHNORR C P.Efficient Signature Generation for Smart Cards[J].Journal of Cryptology,1991,4(03):161-174.