朱小飛 梁 林
(1.安徽城市管理職業學院 安徽 合肥 231635;2.安徽農業大學經濟技術學院 安徽 合肥 231635)
科技的不斷發展,帶動著消費觀念、消費方式的不斷更新。隨著計算機網絡使用范圍的不斷擴大,人們在消費時,更期望可以利用網絡的便利性來進行網上交易,因而電子商務隨之產生。 電子商務的不斷發展更新,相應的電子商務的支付手段也越來越多樣化,但電子支付始終是它發展的核心技術之一,電子現金[1]就是電子支付的一種有效方式。
在電子現金的使用過程中,為了保護用戶的身份、電子現金流通過程等信息,銀行能夠不需要了解電子現金的流通過程,只依靠銀行的某一個部門或其支行來發行所需的電子現金,而銀行只是對用戶的賬號進行相應的管理,這些就可以通過代理盲簽名[2]來實現。它即具備匿名功能也具備代理功能,被廣泛地應用于電子現金系統中。
在文獻[3]中介紹了一種基于身份的代理盲簽名方案,本文將利用該方案建立一個安全可靠的電子現金模型。
電子現金系統主要涉及銀行、支行、商家、用戶四個實體,包含代理授權、取款、支付和存款四個安全協議過程,基本交易過程如圖1.1 所示:

圖1.1 電子現金系統的基本交易過程
(1)銀行產生一個授權證書,該證書主要包含:支行的身份,銀行授權支行的業務權限、證書有效期等。
(2)銀行用自己的私鑰對授權證書簽名,并將簽名發送給授權支行。
(3)支行收到簽名后用銀行的公鑰來驗證所收簽名的有效性。 如果有效,支行接受銀行的授權代理,并計算出代理密鑰,然后用代理密鑰辦理授權業務。
用戶向支行提出取款申請,并提交自己的身份信息,支行對用戶的身份信息進行驗證確認無誤后,允許用戶取款。
(1)支行首先與用戶互相確認身份。
(2)用戶將賬戶信息、取款時間、取款金額等需要用到的信息進行盲化處理,然后發送給支行。
(3)支行對用戶的盲化信息再進行簽名,并發送給用戶,最后通知銀行電子現金已發送,銀行需扣除該用戶賬戶中的相應金額。
(4)用戶收到簽名后再去盲,就得到真實簽名,就是電子現金。
(1)用戶先需要將支行發送來的電子現金提供給商家。
(2)商家在收到電子現金后需要先使用支行的公鑰來驗證電子現金的合法性,如果通過驗證說明該電子現金是銀行授權支行發放的,是有效的,否則就無效。 然后再把這有效的電子現金發送給支行。
(3)支行收到后先將該電子現金輸入已有的電子現金數據庫,檢驗該電子現金是否被消費過,如果沒有消費過,該電子現金就是合法有效的,如果已經消費過了,則該電子現金無效。然后支行再將該電子現金的檢驗結果發送給商家。
(4)如果電子現金合法,交易成功,商家將商品發給用戶。否則,交易無效。
(1)商家將合法有效的電子現金和賬戶信息發送給支行。
(2)支行收到該合法的電子現金后,驗證商家身份。在商家身份通過驗證后,支行再通知銀行在商家賬戶中添加相應的金額。
設 G1為循環加法群,G2為循環乘法群,G1,G2的階均為素數 q。
選擇 P∈G1,作為 G1的生成元,e:G1×G1→G2為一個雙線性映射。定義密碼學上3 個Hash 函數。
銀行、支行、用戶和商家這四個參與者分別用B、P、U、C 表示,各參與者的身份用IDi(i=B,P,U,C)表示。先將參與者的身份信息發送給可信方,可信方計算他們的公鑰/密鑰對,分別為PKi=H1(IDi),SKi=tPKi(i=B,P,U,C)。 然后,將這些信息安全地發送給參與者。
(1)銀行B 先創建一個授權證書W,證書中應包括支行的身份、授權給支行辦理業務的權限、證書的有效期等內容。

并將(W,SB,RB)發送給支行P。
(3)支行P 在收到簽名(W,SB,RB)后,需要使用銀行B 的公鑰來驗證此簽名的有效性,即驗證:

是否成立;如果成立,說明銀行B 的授權代理成功,支行P 計算得到自己的代理盲簽名密鑰:

否則授權代理不成功。
用戶U 需要先向支行P 提出取款申請,并提交自己的取款信息m,信息m 包含用戶的賬戶信息、取款金額、取款時間等。 支行P 與用戶U 驗證身份后就可以向用戶U 發放電子現金。具體取款過程如下:
(1)支行 P 任意選擇 P1∈G1,計算:

將(K,W,RB,vP)發送給用戶U。
(2)用戶U 先用支行公鑰驗證支行P 的身份,即驗證:

若成立,說明支行P 確實是銀行U 授權的支行。 否則,中止協議。


將(c,vU)發送給支行P。
(3)支行P 先用用戶U 公鑰驗證用戶身份,即驗證:

若成立,則說明該用戶U 確實是申請取款的用戶。 否則,中止協議。
然后,支行P 計算S=cSP+P1,將S 發送給用戶U,并通知銀行B電子現金已發送,銀行則需要在用戶U 的賬戶中扣除相應的金額。
(4)用戶 U 計算 S'=S+P2,c'=c-b,則是用戶 U提取的電子現金。
用戶U 在獲得電子現金后就可以購買商家C 的商品, 但在使用時,商家C 仍需先驗證用戶U 所給電子現金的有效性。
(2)商家C 需先對該電子現金進行驗證:

如果可以驗證通過,則說明該電子現金確實是由銀行B 的下屬支行P 受其委托所簽發的,從而證明了它的合法性,然后商家再將該電子現金發送給支行P。 否則說明該電子現金不合法,不能使用。
(3)支行P 對收到的電子現金也要根據已有的電子現金數據庫進行檢索,驗證該電子現金是否被消費過,如果未被消費過,則該電子現金是有效的。 否則該電子現金無效。
(4)如果電子現金是有效的,交易成功,商家C 將商品發給用戶U。 如果該電子現金無效,交易中止。
(5)存款協議。
完成上述交易后,商家C 要將收到的電子現金存入自己的銀行賬戶。 具體過程如下:

然后將賬戶的盲化信息(RC,SC)、電子現金發送給支行P。
2)支行P 對電子現金數據庫進行檢索,核對此電子現金是否被存儲過。 若未被存儲則該電子現金是合法的,否則,中止協議。
然后驗證:

是否成立,即驗證商家C 的身份。 若成立,通知銀行B 在商家C賬戶上存入相應金額。 否則,中止協議。
本文是基于身份的代理盲簽名方案來構建的電子現金模型的,它具有以下特征:
(1)銀行在電子現金的流通過程中,只能確定誰的銀行賬戶取走了錢,取了多少錢,誰的銀行賬戶存錢了,存了多少錢,但不能確定電子現金的具體消費過程。
(2)支行在銀行的授權下,負責向用戶發放電子現金,但不知道發給誰了,發了多少金額;負責驗證電子現金是否有效,包括是否是本支行發的、是否在有效期內、是否消費過。 在這個過程中,支行也不知道電子現金的具體消費過程。
(3)支行在電子現金的整個流通過程中代理是必須的,否則銀行就能夠掌握電子現金的消費過程。
(4)支行在電子現金的整個流通過程中匿名是必須的,否則支行就能夠確定電子現金發放給誰,如何消費的。
電子現金與其他電子支付手段明顯的區別是: 在整個流通過程中,銀行只能確定用戶消費了,但無法確定消費過程。這樣就能有效地保護用戶的消費信息。
本文針對一個基于身份的代理盲簽名方案,構建了一個新電子現金模型。 該電子現金模型具備紙幣流通過程的基本特征,即銀行發放和回收電子現金,但無法知道電子現金的流通環節。 即在電子現金的整個流通過程中,銀行只能確定用戶消費了,但無法確定其消費過程。