前言:本站為你精心整理了電子現金設計范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
[摘要]自從1983年Chaum首次提出盲數字簽名的概念以來,不少研究者相繼提出了許多電子現金方案,但迄今為止卻很少有研究者討論電子現金系統的具體設計。本文簡要回顧了電子現金的發展和電子現金設計中涉及的關鍵密碼技術,最后介紹了一個可以運行于離線的、匿名性可控的、可防止重復消費的、通用的電子現金系統的設計。
[關鍵詞]電子現金匿名性盲簽名切割選擇技術Applet
一、引言
20世紀90年代以來,隨著計算機網絡技術的飛速發展,在全世界范圍內掀起了電子商務的熱潮,電子支付是電子商務中最為關鍵的重要組成部分。為了保護用戶的合法權利,保障交易的匿名性和不可跟蹤性,發展了一種新的電子支付方式即電子現金。理想的電子現金應有具有獨立性、安全性、匿名性、離線性、可傳遞性和可分性等特點。
電子現金的發展已經經歷過20多年的歷史。1982年D.Chaum最早提出盲簽名的概念,并在RSA盲簽名的基礎上設計了一個在線的、完全匿名的電子現金方案。之后,Chaum等人利用切割選擇技術和RSA盲數字簽名技術,于1988年提出了一個離線的、完全匿名的電子現金方案。1991年Okamoto等基于切割-選擇技術,采用二叉樹結構表示電子現金,提出第一個可分的電子現金方案。1993年Brands提出限制性盲數字簽名的概念,并在此基礎上,提出了一個離線的、完全匿名的、具有重復花費者追蹤功能的電子現金方案。1995年,Stadler和Brickel分別獨立地提出離線、匿名性可控制的電子現金方案,稱為公平電子現金方案。1996年Frankel等基于間接論述證明,提出一個基于可信方的離線、公平的電子現金方案。同年Abe等提出了部分盲數字簽名的概念,并基于部分盲數字簽名構建了第一個可以在電子現金中植入有效期的匿名的、離線的電子現金系統。1997年Jakobsson等[9]提出基于魔力墨水數字簽名技術實現公平電子現金方案。1998年,Lysyanskaya和Ramzan結合群數字簽名與盲數字簽名協議,首次提出了群盲數字簽名協議的概念,并且構造了一個多個銀行參與發行電子現金的完全匿名的電子現金方案。2001年,王常吉等人把群盲數字簽名協議與限制性盲簽名相結合,提出了群限制性盲簽名的概念,并在此基礎上構造了一個多銀行參與發行的、公正的可控匿名的電子現金方案。
然而,目前已提出的電子現金系統偏重于理論研究,很少有文章討論電子現金系統的設計問題。本文介紹了電子現金方案中常用的關鍵技術,設計了一個離線的、匿名性可控的電子現金系統。
二、電子現金方案中的關鍵密碼技術
為了保證電子現金的匿名性,常用的相關密碼技術如下:
1.盲簽名
盲簽名就是接收者在不讓簽名者獲取所簽署消息具體內容的情況下所采取的一種特殊的數字簽名技術,它除了滿足一般的數字簽名條件外,還必須滿足下面的兩條性質:
盲性:簽名者對其所簽署的消息的具體內容是不可見的。
不可鏈接性:當簽名信息被公布后,簽名者不能將簽名與盲消息聯系起來。
在電子現金支付系統中,盲簽名能很好地保證電子現金的匿名性,因此在電子現金系統中得到廣泛的應用。但是,在盲簽名中,簽名人完全不知道最終簽名的任何信息,可能造成簽名被非法使用等問題。
2.限制性盲簽名
限制性盲簽名是由Brands提出的,在限制性盲簽名中,消息提供者要把其公鑰附在盲化的消息后面作為待簽信息的一部分交給簽名者;簽名的驗證方要求消息的提供者用其私鑰簽名,用收到的公鑰驗證后才予以接收。對于離線的、匿名的電子現金系統來說,限制性盲簽名很好地保護了合法用戶身份的匿名性,同時可以對重復花費電子現金的非法用戶進行匿名性撤銷。
3.群簽名
在一個群簽名方案中,允許群體中的任意一個成員以匿名的方式代表整個群體對消息進行簽名。與其他的數字簽名一樣,群簽名可以用惟一的群公鑰來公開驗證,但人們卻無法揭露具體簽名者的身份,也無法判斷兩個群簽名是否是由同一個群成員簽署。當發生爭議時(如產生法律糾紛時),惟一指定的群管理者能夠“打開”群簽名,揭示簽名者的身份。一個好的群簽名方案應該滿足以下的安全需求:匿名性、不關聯性、防偽造性、可跟蹤性、防陷害攻擊、抗聯合攻擊。在電子現金系統中,群簽名用于設計多銀行的電子現金系統。中央銀行作為群管理者,每個銀行擁有自己的群成員證書,用于代表整個群簽發電子現金。
對離線電子現金系統,為了防止電子現金的重復花費,目前主要有兩種解決方法:
(1)事前阻止
事前阻止是依賴防篡改智能卡的物理安全性,以達到電子現金重復花費的事前阻止。該方法最早由Brands提出,在電子現金方案中置入了一個防竄擾的設備(如智能卡)以保護銀行與用戶的利益,用戶的計算機可以看成是儲存電子現金的電子錢包,同時,防篡改設備可以看成是該電子錢包內的一個觀察者,防竄擾設備用以確保用戶不能重復花費電子現金,而電子錢包確保銀行不能夠毫無根據地指控用戶重復花費。
(2)事后檢測
可以利用切割選擇技術和限制性盲簽名技術。切割選擇技術即用戶在提取電子現金時,不能讓銀行知道電子現金中用戶的身份信息,但銀行需要知道提取的電子現金是正確構造的。切割選擇技術是用戶正確構造N個電子現金傳給銀行,銀行隨機抽取其中的N-1個讓用戶給出它們的構造,如果構造是正確的,銀行就認為另一個的構造也是正確的,并對它進行簽名。
為了防止犯罪分子利用電子現金的匿名性進行諸如洗錢、勒索、非法購買等非法活動,研究者提出公正的盲數字簽名技術來實現電子現金的匿名性可撤銷。公正的盲數字簽名除了具有盲簽名的性質外,還具有如下性質:可信方可以給簽名者發送一些信息,使得簽名者能把所簽名的消息與協議的執行場景(viewofprotocol)聯系起來。公正的盲簽名協議機制模型包括簽名者、發送者(也是簽名的接收者)、可信實體與簽名協議和聯系恢復協議。執行簽名協議后,發送者接收到一個消息的簽名,而且簽名者不能把該簽名與執行場景聯系起來。通過執行聯系恢復(link-recovery)協議,簽名者從可信實體處獲得一些輔助信息,使得簽名者能把簽名與執行場景聯系起來。
三、電子現金支付系統結構設計
電子現金系統開發工具選用JAVA語言,在用戶端主要是下載并運行Applet,可確保從遠方來的Applet在執行時,不會對用戶端的電腦造成傷害,也不會將電腦病毒傳播進來。系統在通信時,采用SSL協議,確保通信安全。電子現金系統包括有3個實體:銀行、商家以及用戶。系統結構圖如圖1所示。
圖1系統結構圖
1.銀行
(1)銀行網站服務器:銀行必須建立一個網站服務器,這樣用戶可通過瀏覽器進行開戶、查看自己賬戶相關信息等相關操作。
(2)取款Applet:用戶通過取款Applet與銀行通信,并通過操作用戶本地文件系統將電子現金數據存入用戶計算機。
(3)存款Applet:用戶通過存款Applet與銀行通信,并通過操作用戶本地文件系統將電子現金讀取出來以發送給銀行。
(4)銀行管理系統:銀行使用管理系統來管理和操作數據庫中的電子現金。
(5)數據庫:銀行用數據庫來存儲電子現金數據。
2.商家
(1)網站服務器:商家必須建立一個網站服務器,這樣用戶可通過瀏覽器查看商家商品相關信息。
(2)付款Applet:用戶通過付款Applet與商家電子錢包通信,并通過操作用戶本地文件系統將電子現金讀取出來以發送給商家電子錢包。
(3)電子錢包:商家通過電子錢包軟件來管理并操作商家接收的電子現金。
(4)數據庫:商家通過數據庫來存儲電子現金數據。
3.用戶
(1)瀏覽器:用戶使用瀏覽器來查看其在銀行的賬戶信息以及商家的商品信息,并利用瀏覽器運行各種Applet以實現網上支付。
(2)文件系統:用戶的電子現金是以文件形式存儲在用戶計算機上的。
四、電子現金支付系統流程設計
1.開戶
用戶攜帶證件,先到銀行開立賬戶,取得個人賬戶信息。銀行先確認其合法身份,建立消費者數據庫,并將消費者的相關信息存入數據庫。為實現重復消費者檢測功能以及可撤銷匿名性功能,用戶和銀行還需要執行零知識證明協議。
2.取款過程
取款過程如圖2所示。
①用戶瀏覽銀行網站,銀行網站服務器向用戶發送由銀行數字簽名的取款Applet。
②用戶瀏覽器用銀行的數字證書驗證取款Applet,如果驗證成功,則下載并運行取款Applet。
③用戶在取款Applet中輸入需要取得的電子現金相關信息(譬如面值、數量),確認取款后,Applet將生成電子現金數據發送給銀行管理系統。
④銀行管理系統接收到電子現金數據后,對其進行驗證,若驗證成功,則對其進行盲簽名,然后將盲簽名后的電子現金數據回發給用戶的取款Applet。同時,銀行管理系統從用戶賬戶中扣除相應金額。
⑤用戶Applet將得到的數據解開盲數字簽名得到電子現金的銀行簽名,并將電子現金和簽名一并以文件形式存儲于用戶計算機中。同時,取款Applet顯示一條消息以提示用戶取款成功。
3.支付過程
支付過程如圖3所示。
圖3支付過程
①用戶瀏覽商家網站,商家服務器向用戶發送支付Applet。
②用戶瀏覽器下載并運行支付Applet之后,用戶可通過操作支付Applet向商家支付電子現金。
③支付Applet顯示出用戶所擁有的電子現金以供用戶選擇。在用戶選擇完電子現金之后,支付Applet讀取相應電子現金數據,并發送給商家的電子錢包。
④商家電子錢包使用銀行公鑰驗證所接收的電子現金的銀行簽名,若電子現金有效,則商家電子錢包將所收到的電子現金存入數據庫,并向用戶的支付Applet發送確認消息。
(4)存款過程
存款過程如圖4所示。
圖4存款過程
①商家瀏覽銀行網站,銀行網站服務器向商家發送存款Applet。
②商家瀏覽器下載存款并運行存款Applet后,商家可通過存款Applet向銀行進行存款操作。
③存款Applet顯示出商家所擁有的電子現金以供商家選擇。在商家選擇完電子現金之后,存款Applet讀取相應電子現金數據,并發送給銀行管理系統。
④銀行管理系統使用銀行公鑰驗證所接收的電子現金的銀行簽名,并搜索數據庫查看該電子現金是否被重復消費。如果沒有被重復消費,則存儲該電子現金及相應參數。銀行從商家賬戶中增加相應的金額并返回一條確認消息。
五、結論
本文介紹了電子現金支付系統中用到的關鍵密碼技術,詳細介紹了一個通用的、離線匿名的電子現金系統的設計。由于該系統避免了第三方實體(例如:信用卡中心等)的介入,使得交易更加直接,也節省了交易時候的通信負擔和與第三方實體發生通信時候的成本,實現了離線性。可以利用盲簽名技術和切割選擇的方法,實現匿名性,但當用戶重復消費時,銀行能揭示出作弊者的實際身份。交易過程中涉及到用戶、商家以及銀行之間的通信是通過Applet來完成的,對Applet簽名排除了所有其他非法Applet在瀏覽器上運行的可能性,保證了電子現金的安全性。
參考文獻:
[1]D.Chaum.BlindSignatureforuntraceablepayment.InAdvancesinCryptology-CRYPTO’82,1983:199~203
[2]D.Chaum,etc..UntraceableElectronicCash.InAdvancesinCryptology-CRYPTO''''88,1989:3~327
[3]T.Okamato,K.Ohata.Universalelectroniccash.InAdvancesCryptology-CRYPTO’91.LectureNotesinComputerScience576,Springer-Verlag,1991:324~327
[4]S.Brands.Anefficientoff-lineelectroniccashsystembasedontherepresentationproblem.ReportsCS-R9323,CentrumvoorWiskundeenInformatica,March1993
[5]M.Stadler,etc..FairBlindSignature.InAdvancesinCryptology-EUROCRYPT''''95,LectureNotesinComputerScience921,Springer-Verlag,1995:209~219
[6]E.Brickell,P.Gemmell,D.Kravitz.Trustee-basedtracingextensionstoanonymouscashandthemakingofanonymouschange.InProceedingsofthe6thAnnualACM-SIAMSymposiumonDiscreteAlgorithms,1995:157~166
[7]Y.Frankel,etc..IndirectDiscourseProofs:AchievingEfficientFairOff-LineE-cash.InAdvancesinCryptology-ASIACRYPT''''96,LectureNotesinComputerScience1163,Springer-Verlag,1996:286–300.
[8]M.Abe,E.Fujisaki.HowtoDateBlindSignatures.InAdvancesinCryptology-ASIACRYPT''''96,LectureNotesinComputerScience1163,Springer-Verlag,1996:244~251,1996
[9]M.Jakobsson,M.Yung.Distributedmagicinksignatures.InAdvancesinCryptology-EUROCRYPT''''97,LectureNotesinComputerScience1233,Springer-Verlag,1997:450~464
[10]A.LysyanskayaandZ.Ramzan.GroupblindDigitalSignatures:AScalableSolutiontoElec-troniccash.InFinacialCryptography''''98,LNCS1465,184-197,Springcr-Verlag,1998
[11]王常吉,蔣文保,裴定一.用限制性群簽名構造電子現金系統.通信學報,22(12),63~69,2001.12