基本概念
電子商務是通過 Internet網所進行的商務活動,對於電子商務一個非常關鍵的要求就是要有一個安全高效的電子現金系統。自1982年D. Chaum[2]發表第一篇關於電子現金系統的論文以來,在電子現金系統的研究方面已取得了很多研究成果。電子現金( E-cash )又稱為電子貨幣 ( E-money )或數字貨幣( Digital cash ),是一種非常重要的電子 支付系統,它可以被看作是現實貨幣的電子或數字模擬,電子現金以數字信息形式存在,通過網際網路流通。但比現實貨幣更加方便、經濟。它最簡單的形式包括三個主體:商家,用戶,銀行;和四個安全協定過程:初始化協定,提款協定,支付協定,存款協定。第一個電子現金方案是由Chaum 在1982年提出,他利用盲簽名技術來實現,可以完全保護用戶的隱私權。但這種完全匿名的電子現金也為許多不法分子提供了方便,他們利用電子現金的完全匿名性進行一些違法犯罪活動,例如貪污、非法購買(如購買毒品、軍火等 )、敲詐勒索等。警方即便拿到贓款,也不能抓出犯罪分子。基於這個原因,合理的電子現金系統應該是不完全或條件匿名的。1995年,Stadler等人 [3]提出了公平盲簽名 ( fair blind signature)的概念,可以用於條件匿名的支付系統。1996年,Camenisch等人[4]和 Frankel等人[5]分別獨立地首次提出了公平的離線電子現金( fair off-line electronic cash )的概念,同時給出了兩個方案。公平電子現金中的用戶的匿名性是不完全的,它可以被一個可信賴的第三方 ( TTP)撤消,從而可以防止利用電子現金的完全匿名性進行的犯罪活動。電子現金在其生命周期中要經過提取、支付和存款 3個過程,涉及用戶、商家和銀行等 3方。用戶與銀行執行提取協定從銀行提取電子現金;用戶與商家執行支付協定支付電子現金;商家與銀行執行存款協定 ,將交易所得的電子現金存入銀行。典型的電子現金支付模型如下:
分類
* 電子現金系統根據其交易的載體可分為基於賬戶的電子現金系統和基於代金券的電子現金系統;* 根據電子現金在花費時商家是否需要與銀行進行在線上驗證分為在線上電子現金系統和脫機電子現金系統;* 根據一個電子現金是否可以合法的支付多次將電子現金分為可分電子現金和不可分電子現金。
基本特性
電子現金在經濟領域起著與普通現金同樣的作用,對正常的經濟運行至關重要。電子現金應具備以下性質 :1. 獨立性: 電子現金的安全性不能只靠物理上的安全來保證,必須通過電子現金自身使用的各項密碼技術來保證電子現金的安全;
2. 不可重複花費: 電子現金只能使用一次,重複花費能被容易地檢查出來;
3. 匿名性:銀行和商家相互勾結也不能跟蹤電子現金的使用,就是無法將電子現金的用戶的購買行為聯繫到一起,從而隱蔽電子現金用戶的購買歷史;
4. 不可偽造性:用戶不能造假幣,包括兩種情況:一是用戶不能憑空製造有效的電子現金;二是用戶從銀行提取N個有效的電子現金後,也不能根據提取和支付這N個電子現金的信息製造出有效的電子現金;
5. 可傳遞性:用戶能將電子現金像普通現金一樣,在用戶之間任意轉讓,且不能被跟蹤;
6. 可分性:電子現金不僅能作為整體使用,還應能被分為更小的部分多次使用,只要各部分的面額之和與原電子現金面額相等,就可以進行任意金額的支付;
相關優點
一是可經過網路瞬時把現金送到遠處,即它具有極大的移動性。因為電子現金是一種數字信息,所以它和通常數據一樣,可以放在計算機中並由網路傳送,從消費者終端直接送到商店終端,不必向中間的清算機構支付手續費。二是可實現支付的匿名性(即不知道這筆錢原先是誰的),而電子清算服務(如信用卡)難以實現匿名性。隨著各種各樣社會系統的電子化,出現了自動收集有關個人秘密信息的傾向。使用電子現金將是在電腦社會中,實現自衛(保守個人秘密)的有效手段。因此,電子現金在電子商務中作為支付工具將得到重點發展。電子現金是數字信息,它和紙幣一樣,本身並沒有價值,所以有被偽造的危險。為此,就要使用電子簽名等加密技術。從技術上說,電子簽名比紙幣上使用的水印更難偽造,但電子現金和其他數字信息一樣容易複製。因此需要防止電子現金持有者將其複製,然後向多家店鋪支付。另外,電子現金的匿名性會給來路不明的錢財提供洗錢的方便,這點也需要防範。
密碼技術
電子現金的安全性和可靠性等主要是依靠密碼技術來實現的,1. 分割選擇技術: 用戶在提取電子現金時,不能讓銀行知道電子現金中用戶的身份信息,但銀行需要知道提取的電子現金是正確構造的。分割選擇技術是用戶正確構造N個電子現金傳給銀行,銀行隨機抽取其中的N-1個讓用戶給出它們的構造,如果構造是正確的,銀行就認為另一個的構造也是正確的,並對它進行簽名。
2. 零知識證明:證明者向驗證者證明並使其相信自己知道或擁有某一訊息,但證明過程不能向驗證者泄漏任何關於被證明訊息的信息。以上兩種技術用於將用戶的身份信息嵌入到電子現金中。
3. 認證:認證一方面是鑑別通信中信息傳送者是真實的而不是假冒的;另一方面是驗證被傳送信息是正確和完整的,沒有被篡改、重放或延遲。
4. 盲數字簽名: 簽名申請者將待簽名的訊息經"盲變換"後傳送給簽名者, 簽名者並不知道所簽發訊息的具體內容, 該技術用於實現用戶的匿名性。
系統方案
電子現金設計的基本流程如下:1. 取款協定(Withdrawal Protocol):用戶從自己的銀行帳戶上提取電子現金。為了保證用戶匿名的前提下獲得帶有銀行簽名的合法電子現金,用戶將與銀行互動執行盲簽名協定,同時銀行必須確信電子現金上包含必要的用戶身份。一般取款協定分為如下兩步子協定:
* 開戶協定。這一步通常計算量較大,用於向用戶提供包含其身份信息的電子執照。
* 取款協定。這一步只是單純的盲簽名過程,用戶能夠從其帳戶中提取電子現金。
2. 支付協定(Payment Protocal):用戶使用電子現金從商店中購買貨物。通常也分為兩個子協定:
* 驗證電子現金的簽名,用於確認電子現金是否合法。
* 知識泄露協定。買方將向賣方泄露部分有關自己的身份的信息,用於防止買方濫用電子現金。
3. 存款協定(Deposit Protocal):用戶及商家將電子現金存入到自己的銀行賬戶上。在這一步中銀行將檢查存入的電子現金是否被合法使用,如果發現有非法使用的情況發生,銀行將使用重用檢測協定跟蹤非法用戶的身份,對其進行懲罰。
離線電子現金具體方案:
一、初始化協定(只執行一次)
銀行B基於離散對數問題選擇參數:選擇兩個大素數p、q 且q |(p-1)。定義乘法群ZP上的階為素數q的子群Gq以及Gq的一個生成元組(g,g 1,g 2),銀行B的簽名私鑰x∈Zq ,無碰撞單向散列函式H0、H1,銀行B公開其公鑰y =g x,以及p、q、g、g 1、g 2、H0、H1(為了簡單起見,只考慮單一面額和單一有效期,不同簽名私鑰對應電子現金的不同面額。)用戶U設定(開戶協定):選取u1∈RZq,計算I U=(g 1) u1作為用戶的銀行賬號,並將知識證明的簽名SPK{a|I U=g 1 a}(m)傳給銀行,這裡m表示用戶的身份識別信息,銀行驗證此知識證明的簽名,若驗證成功,存儲I U與用戶的身份識別信息。
二、取款協定(銀行和用戶之間的認證及盲簽名協定)
1. 用戶→銀行:用戶先通過身份識別協定(如schnorr協定),向銀行證明自己是其賬號的持有者,然後將取款需求(電子現金的面值,數量等)傳送給銀行;
2. 銀行→用戶:銀行先驗證用戶提交的身份識別信息,然後選取w∈RZq,計算a 0=gw,b0=(I Ug 2)w,z0 = (I Ug 2)x ,傳送a 0,b0 ,z0給用戶。
3. 用戶→銀行:選取x 1, x 2,s,u,v∈RZq ,計算B=g 1 x1g 2 x2,A=(I Ug 2) s ,z= (z0) s , a= ( a 0)ugv , b=(b0)suAv ,c=H0(A‖B‖z‖a‖b) ,c 0=c/umod q, 傳送c 0給銀行。
4. 銀行→用戶:計算r 0= w+c 0x mod q, 傳送r 0給用戶,同時借記用戶的賬號。
5. 用戶:檢查gr 0 yc0a 0和 (I Ug 2)r0 (z0)c0b0 , 若驗證通過, 則計算r=v+r 0u1 mod q 。取款協定實際上是一個盲簽名協定,一個簽名Sign(A, B)=(z,a,b,r)有效,若且唯若gr = yH0 (A‖B‖z‖a‖b)a和A r=zH0 (A‖B‖z‖a‖b)b成立。用戶得到的電子現金為Coin = {A,B,Sign(A,B)}
三、支付協定(在匿名信道上的用戶U和商家S的協定)
1. 用戶→商家:用戶將電子現金Coin傳送給商家。
2. 商家→用戶:驗證電子現金Coin上銀行的簽名,若驗證通過,則計算質詢串d=H1(A‖B‖Is),然後將質詢串d傳送給用戶U。其中Is表示商家在銀行的賬戶。
3. 用戶→商家:用戶計算出應答r1 =d(u1s) +x 1mod q,r2=ds+x 2modq,將(r1,r2)傳送給商家。
4. 商家:檢驗g 1 r1g 2 r2AdB,若檢驗通過,則接受用戶的支付,否則拒絕。
四、存款協定
商家傳送支付協定的一個副本給銀行, (如商家一樣地)檢驗電子現金上銀行的盲簽名Sign(A,B) = (z,a,b,r)是否有效,若檢驗通過,銀行在此資料庫中存儲(A,r 1,r 2,I s),並且在商家的賬戶中存入電子現金相應的金額。
安全性分析
該電子現金系統方案的安全性是建立在計算離散對數問題困難性的基礎上的。無法偽造合法的電子現金不法用戶即使以合法用戶的身份在銀行提取k個合法的電子現金,他仍然不能根據已經得到的信息偽造出第k+1個合法的電子現金,因為他無法得到銀行的秘密私鑰合法用戶的匿名性得到保證在電子現金中嵌入有用戶的識別信息(即賬號IU),商家和銀行在支付協定和存款協定中,獲得的數據有A,B,Sign(A,B),r1,r2,其中B,r2 不含用戶的識別信息IU,而A,r1,Sign(A,B)都是IU盲化後的結果,商家和銀行若想從接收到的數據中得到用戶的識別信息(即IU),必須知道盲因子s,而s是用戶隨機選取並保密的,這就保證了電子現金的匿名性。商家無法偽造有效的支付信息在支付協定中,儘管商家知道A,B,Sign(A,B),他可以計算d,但由於他不知道用戶的秘密鑰u1、s,因而他自己不能隨意構造r'1,r'2,使得滿足gr'1gr'2 AdB,所以在沒有合法用戶的參與下,商家無法偽造有效的支付信息。
未來發展方向
電子現金的傳遞性的可用性研究
傳遞性是物理現金一個基本的特徵,但在電子現金中還沒有套用,最主要的原因是:電子現金中為了能跟蹤重複花費的用戶,在電子現金中加入了盲化的用戶身份信息,在電子現金流動的過程中將加入使用過該電子現金的所有用戶身份信息,因此根據資訊理論的理論,電子現金的長度是不斷地增長的,每次交易都將造成大通信量問題,無法有利於實際套用;另外電子現金無論是在構造還是存款過程中,相對於物理現金都是相當容易而有效的。因此目前公平的離線電子現金的研究並不關注電子現金的傳遞性。多銀行電子現金的研究
現有的公平電子現金方案都是由一個銀行發行的,但在現實生活中由多個電子銀行系統發行的電子現金較之單個銀行發行的電子現金是更適合的,因為在一個國家或地區具有電子現金髮行能力的銀行可能不止一家。這多個銀行形成一個群體,它們受國家的中央銀行管理,每個銀行都可以發行電子現金。所以由多個銀行發行的公平電子現金模型是電子現金系統研究的重要方向,在這方面的研究主要是利用改進的群簽名方案和群盲簽名方案設計的多銀行公平電子現金方案。但現在存在兩個公開問題:第一是設計一個實用的多銀行公平電子現金方案當然不一定是只是利用群簽名技術,利用其它的技術可能更好地解決;第二是設計一個可廢除群成員的群簽名方案,這也是群簽名研究中的一個公開問題。可分電子現金系統的研究
可分電子現金系統能夠讓用戶進行多次合法的精確支付,減少提款次數,從而可以降低網路通信量,提高系統效率,因此可分的電子現金系統是研究的重點。 Okamoto和Ohta於1991年首次提出了一個可分電子現金系統,該系統允許用戶將電子現金分成任意金額進行多次支付,直到與該電子現金的總額相等為止。為使銀行能夠有效地檢測用戶的重複支付,他們採用了二叉樹技術對電子現金進行表示,但這種技術導致電子現金的支付協定通信量大、計算複雜度高、效率低,儘管許多學者對該方案從不同的角度提出了改進[6~10],但都由於使用二叉樹表示使得支付協定的執行效率仍然很低。因此,到目前為止,可分電子現金系統依然是不實用的。關於這方面研究,還可以引入可信第三方來實現對超額支付者的識別,使電子現金的支付協定中沒必要包含進行重複支付檢查的信息,這樣就可以放棄可分電子現金的二叉樹表示技術,從而構造更簡單的可分電子現金系統。研究
可分電子現金系統能夠讓用戶進行多次合法的精確支付,減少提款次數,從而可以降低網路通信量,提高系統效率,因此可分的電子現金系統是研究的重點。Okamoto和Ohta於1991年首次提出了一個可分電子現金系統,該系統允許用戶將電子現金分成任意金額進行多次支付,直到與該電子現金的總額相等為止。為使銀行能夠有效地檢測用戶的重複支付,他們採用了二叉樹技術對電子現金進行表示,但這種技術導致電子現金的支付協定通信量大、計算複雜度高、效率低,儘管許多學者對該方案從不同的角度提出了改進[6~10],但都由於使用二叉樹表示使得支付協定的執行效率仍然很低。因此,到目前為止,可分電子現金系統依然是不實用的。關於這方面研究,還可以引入可信第三方來實現對超額支付者的識別,使電子現金的支付協定中沒必要包含進行重複支付檢查的信息,這樣就可以放棄可分電子現金的二叉樹表示技術,從而構造更簡單的可分電子現金系統。