微支付系統(tǒng)中基于對稱加密體制和散列鏈的應(yīng)用
現(xiàn)有的微支付系統(tǒng)通常不提供公平性,即參與徽支付交易的消費者和商家有可能通過交易中的欺詐行為采獲取商業(yè)利益。我們可以利用密碼學(xué)中散列函數(shù)的單向特性,提出了一種基于對稱加密體制和散列鏈的新型公正微支付系統(tǒng),它是一種離線的預(yù)支付系統(tǒng),支持數(shù)字貨幣的可分性,并允許消費者使用同一個散列鏈與多個商家進行交易。
一、符號描述和基本定義
本文所涉及到的符號和參數(shù)的意義描述如下:||表示字符串連接運算符;IDB表示銀行的身份標識;IDc表示消費者的匿名標識;AM表示商家M的網(wǎng)址;IDNK表示商家MK的身份標識;KCB表示消費者和銀行共享的秘密密鑰;KcM表示消費者和商家共享的一次性秘密密鑰:KMKB表示商家MK和銀行共享的秘密密鑰;{M}Kij表示使用秘密密鑰Kij對消息M進行加密;H(.)表示碰撞自由的單向散列函數(shù);Hr(WN)表示對WN進行r次散列運算的結(jié)果,即:
二、散列鏈
為了提供交易的有效性和不可否認服務(wù),許多支付系統(tǒng)中采用了數(shù)字簽名技術(shù)。但由于徽支付系統(tǒng)中信息服務(wù)的每筆費用很小,過多地采用公鑰技術(shù)會嚴重影響系統(tǒng)效率,從而可能使得交易的處理開銷超過消費者和商家的交易額.所以,在微支付系統(tǒng)中,更多地采用了效率更高的散列函數(shù)來代替數(shù)字簽名,或者將二者有機地結(jié)合起來。
散列鏈就是這樣一種實現(xiàn)方式,它最初由Lamport提出,主要用于口令認證,后來被應(yīng)用到微支付機制中。具體實現(xiàn)方法就是由消費者選擇一隨機數(shù),然后對其進行多次散列計算,把每次得出的散列結(jié)果組成一個序列,序列中的每個值代表一個支付單元。這種徽支付方案的設(shè)計目標是通過使用效宰更高的散列函數(shù)來代替公鑰加密算法,從而提高協(xié)議執(zhí)行的效率。由于散支付具有交易金額小的特點,效率和速度成為系統(tǒng)設(shè)計者追求的主要目標,因而散列函數(shù)和對稱密鑰算法更適用于徽支付系統(tǒng),而大額支付系統(tǒng)為保證安全性,常采用公鑰密碼技術(shù)。
散列鏈代表消費者在特定商家的信用,它是由一系列的散列值組成的。每個散列鏈微支付系統(tǒng)(散列值)代表—個支付單元,通常是一美分。
消費者一般通過如下程序來產(chǎn)生一個新的散列鏈,如圖1所示。
(1)消費者決定產(chǎn)生做列鏈的長度N。如果每個散列鏈微支付系統(tǒng)的值為l美分’則一個長度為20的散列鏈將代表20美分。散列鏈代表的金額要比它要在商家處購買的商品或服務(wù)的價格大一些,未花費的散列鏈微支付系統(tǒng)將會被安全地丟棄。
(2)選擇一個隨機數(shù)WN,稱為散列鏈的根,敢列鏈上的其他值都可以由它來生成。
(3)對wN進行Ⅳ次敢列計算,每個散列值形成—個散列鏈微支付系統(tǒng)。安全散列算法SHA可以用作散列函數(shù)。
(4)最后產(chǎn)生的散列鏈就是{W0,W1,W2…,wn}。
三、基于散列鍵的新型公正微支付系統(tǒng)
本文所提出的微支付方案涉及到交易的三方。消費者C(Customer)、商家M(Merchant)和銀行口(Bank)。其中,消費者C是使用數(shù)字貨幣購買信息商品或服務(wù)的主體,商家M是為消費者提供商品或服務(wù)并接受消費者支付的網(wǎng)上商店,銀行B在方案中相當于經(jīng)紀人的角色,它作為消費者和商家之間的中介,能夠為消費者和商家開立并維護賬戶、認證交易雙方的身份、進行貨幣銷售和交易結(jié)算,并協(xié)調(diào)解決可能引起的爭端。
1、開戶協(xié)議
消費者選擇一個匿名標識IDc,該標識與消費者的真實身份沒有必然聯(lián)系。消費者將IDc發(fā)送給銀行,同時向銀行出示其身份證或護照等來唯一標識其身份。銀行驗證其證明,為其開立并維護一個賬戶,然后在消費者賬戶數(shù)據(jù)庫中存儲該消費者的身份識別信息及IDc,從而將IDc與消費者的身份信息綁定在一起。同時,消費者與銀行共享一個秘密密鑰Kcb。
商家也必須在銀行處開戶,他將IDM作為其身份標識發(fā)送給銀行,同時向銀行出示其營業(yè)執(zhí)照和網(wǎng)址Au等來唯一標識其身份。銀行驗證其證明,為其開立和維護一個賬戶,并在商家賬戶數(shù)據(jù)庫中存儲該商家的身份識別信息IDM和網(wǎng)址AM從而將AM,與商家的身份識別信息IDM綁定在—起。同樣,商家也與銀行共享一個秘密密鑰KMB。
2、取款協(xié)議
(1)消費者通過瀏覽商家的站點選擇需要購買的商品或服務(wù),并記錄商家的問址AM及商品或服務(wù)的價格,生成訂單信息OI,它包含購買商品或服務(wù)的種類、數(shù)量和總金額等信息。消費者發(fā)送一個取款請求給銀行,取款i青求的格式:(AM,IDC,IDB,OI)KCB。
(2)銀行首先驗證取款請求的合法性(他知道秘密密鑰KCB),并根據(jù)訂單信息中的總金額決定生成散列鏈的長度N。如果交易額為20美分且每個散列值代表的面額為l美分,則需要產(chǎn)生一個長度為20的散列鏈。銀行選擇一個隨機數(shù)WN(稱為數(shù)列鏈的根),根據(jù)公式:
對wN進行N次敢列計算,其中i=N-1,N-2…1,0。這樣銀行就生成了一個散列鏈,{WN,WN-1,....W1,wo}稱為該敢列鏈的錨,其中每個敲列值代表—個貨幣單位。
(3)銀行產(chǎn)生一個取款響應(yīng),同時為消費者和商家產(chǎn)生一個一次性會話密鑰Kc^o并將其發(fā)送給消費者,消息格式:(N,WN,W0,KCM,Expiry)KCB。
其中Expiry為數(shù)字貨幣的有效期.銀行將MWo,Expiry和WN存儲數(shù)據(jù)庫中,并從消費者賬戶上扣除與散列鏈數(shù)額相當?shù)馁Y金。
(4)銀行發(fā)送授權(quán)消息給商家,格式為:(N,W0,IDC,IDB,KCM,Expiry,OI)KMB。
商家驗證授權(quán)消息的合法性,并保存N,Wo,Expiry, OI和IDc。
3、支付協(xié)議
(1)消費者根據(jù)公式Wi=H(Wi+1),對WN進行JN次散列計算,其中i=N-1,N-2...,1,0。并將結(jié)果與wo比較,驗證數(shù)字貨幣的合法性,并發(fā)送支付指令給商家:(N,, IDc, IDB(WI,1),OI)KCB。
其中(WI,1)是消費者敝列鏈中的第一個支付對。
(2)商家首先進行支付指令合法性的檢查,然后遍歷其數(shù)據(jù)庫,根據(jù)支付指令中的IDC檢查是否存在對應(yīng)予該消費者的銀行授權(quán)信息,觀察該數(shù)字貨幣是否過期,并計算H(W),通過與銀行傳來的Wo進行比較來驗證支付指令的合法性。若驗證通過,商家就根據(jù)銀行和消費者提供的Ⅳ值將信息商品或服務(wù)分成N個單位,并將第一單位的商品或服務(wù)提供給消費者。
(3)第一個支付對被接受后,消費者即可重復(fù)發(fā)送(wi,1)進行多次支付,育到交易完成。當商家將最后一單位的商品或服務(wù)提供給消費者后,將數(shù)據(jù)庫中對應(yīng)于該消費者的銀行授權(quán)信息(包括散列鏈的錨W0、訂單信息OI,有效期Expiry和消費者的匿名標識IDc)刪除。
4、存款協(xié)議
(1)一段時間(如一天)后,商家將根據(jù)消費者的支付指令生成存款請求信息:(wN,NIDc,IDM)KMB。
(2)銀行首先檢查數(shù)字貨幣是否過期,并通過將存款請求信息中的元素與數(shù)據(jù)庫中存儲的相應(yīng)數(shù)據(jù)項對比和計算,驗證其合法性。如果驗證通過的話,則銀行將與散列鏈數(shù)額相當?shù)馁Y金轉(zhuǎn)移到商家的賬戶上,并將數(shù)據(jù)庫中消費者條目中的wo、Expiry和WN刪除。
四、基于對稱加密體制和散列鏈的新型公正微支付系統(tǒng)性能分析
在本節(jié)中,我們將PayWord方案同本文提出的系統(tǒng)進行詳細的比較,以說明系統(tǒng)的實用性和高效性。
1、可分性
假定消費者C需要與P個商家進行交易,且希望通過一次取款來得到所需的數(shù)字貨幣,他可以將各個商家的訂單信息包含在取款請求中,并將其發(fā)送給銀行。銀行根據(jù)總的交易預(yù)選擇N和wN,由于一個散列鏈包含N個數(shù)字貨幣,這些N個數(shù)字貨幣可以分為P個子鏈,其中PSM各個子鏈的表達式如下:
其中C1,C2,…,CP分別表示消費者與各商家的交易額,且C1+C2+…+cP=N。
銀行保存W0+Wc1+WC1+C2,....,WC1+C2+Wp,并將W0+Wc1+WC1+C2,....,WC1+C2+Wp和每個子鏈的有效期參數(shù)發(fā)送給消費者和商家。每個商家只能得到與消費者訂單信息相應(yīng)的子鏈的錨值,如商家MK,可以收到由銀行發(fā)來的子鏈CK的錨值wC1,...,+CK-1。在支付過程中,消費者將支付指令Pk給商家k:
商家K驗證:
并發(fā)送一個單位的信息商品或服務(wù)給消費者。當交易會話結(jié)束時,商家將存款請求:
發(fā)送給銀行。
PayWord方案中沒有提及可分性,消費者生成的PayWord鏈通常部是針對特定商家的。
2、公平性
本文所提出的系統(tǒng)是一種預(yù)付系統(tǒng),它假定銀行是誠信的,消費者在獲得商品或服務(wù)之前將相應(yīng)的資金支付給銀行,因而商家和銀行的利益得到了很好的保障。交易所需散列鏈是由銀行產(chǎn)生的,消費者的超支消費問題也得到解決。同時,由于在和消費者進行交易前商家需要銀行的授權(quán)信息,并能夠通過遍歷數(shù)據(jù)庫驗證消費者支付指令的合法性,在支付結(jié)束時刪除對應(yīng)于該消費者的銀行授權(quán)信息,從而有效地防止了消費者進行重復(fù)花費。此外,在支付協(xié)議中,消費者對商家的給付和商家對消費者信息商品或服務(wù)的提供都是逐步交互進行的,無論誰先中斷協(xié)議都不可能得到好處。銀行在驗證合法性后,可以接受商家在協(xié)議非正常中斷后存儲的部分數(shù)字貨幣。綜上所述,本文所提出的系統(tǒng)對于客戶和商家都是公平的。
而PayWord方案并沒有為參與交易的各方提供真正的公正性。在PayWord方案中,由于它是基于信用的,消費者在付款之前已獲取了商家所提供的信息商品或服務(wù),因而存在著消費者的重復(fù)花費和超支消費等欺詐行為,對于銀行和商家邯是不公平的。
3、安全性
由于每次支付執(zhí)行時,交易信息都是使用共享密鑰進行加密的,所以攻擊者無法獲取相關(guān)的敏感信息,也無法偽造合法的電子現(xiàn)金。同時,商家無法進行重復(fù)存儲,由于存款協(xié)議執(zhí)行結(jié)束時,
銀行已將數(shù)據(jù)庫中消費者條目中的wo,OI,Expiry和wN刪除且商家不知道C和B共享的秘密密鑰KC8,因而無法通過銀行的合法性檢驗。由前面的分析可知,本系統(tǒng)同樣能夠防止消費者進行重復(fù)花費和超支消費。
PayWord系統(tǒng)中支付承諾是使用消費者的私鑰進行簽名的,且由于散列函數(shù)具有單向不可逆性,因而能夠有效防止攻擊者的偽造和非法花費。銀行通過數(shù)據(jù)庫的形式存儲某一支付承諾及其對應(yīng)的已花費的PayWord,能夠有效地防止消費者重復(fù)花費和商家的重復(fù)存儲。
4、效率分析
在本系統(tǒng)中,消費者不需要銀行簽名的證書,而僅僅需要與銀行共享一個秘密密鑰KCB,消費者的支付承諾(消費者對支付指令的簽名)轉(zhuǎn)換為消費者使用對稱密鑰對支付指令進行加密。在協(xié)議執(zhí)行過程中,散列運算的次數(shù)基本上與PayWord相同,且商家和銀行保存的信息也很簡單,并在協(xié)議執(zhí)行完成后即可進行刪除,因而計算開銷和存儲開銷大大減少。在PayWord方案中,每個消費者需要一個由銀行簽名的數(shù)字證書,且在每次支付時,需要消費者簽名生成一個支付承諾,消費者、銀行和商家都需要進行N次散列運算。為防止消費者進行重復(fù)花費,銀行和商家需要記錄和保存最后一次消費的有效PayWord、支付承諾及數(shù)字證書等信息,計算開餉和存儲開銷較大。所以,本文所提出的微支付系統(tǒng),由于完全沒有采用公鑰密碼算法,其效率大大提高。
5、有限的匿名性
由于只有銀行知道消費者的匿名標識和真實身份之問的對應(yīng)關(guān)系,因而在與商家進行交易時,商家不能獲知消費者的身份信息,所以系統(tǒng)為消費者提供了有限的匿名性。在PayWord方案中,由于銀行頒發(fā)給消費者的數(shù)字證書中包含了消費者的身份信息,因而系統(tǒng)沒有提供匿名性服務(wù)。
小知識之微支付
微支付是指在互聯(lián)網(wǎng)上,進行的一些小額的資金支付。 這種支付機制有著特殊的系統(tǒng)要求,在滿足一定安全性的前提下,要求有盡量少的信息傳輸,較低的管理和存儲需求,即速度和效率要求比較高。這種支付形式就稱為微支付?,F(xiàn)在大家所說的微支付,主要是指微信支付。



