基于PBOC智能卡的匿名可分電子貨幣協(xié)議
文章出處:http://bookmouse.cn 作者:張向軍 ,陳克非 人氣: 發(fā)表時(shí)間:2011年09月30日
0 引言
隨著全球化的EMV[ 1 ]遷移工作的深入展開(kāi),具有高安全性和復(fù)雜數(shù)據(jù)處理能力的IC卡作為新支付應(yīng)用的載體開(kāi)始進(jìn)入用戶視野, IC卡具有的高物理安全性在一定程度上改進(jìn)了原磁卡技術(shù)存在的缺陷。但因?yàn)闃?biāo)準(zhǔn)的PBOC規(guī)范定義的電子錢包機(jī)制采用對(duì)稱密鑰機(jī)制,決定了IC卡支付依賴于專用金融機(jī)具和銀行網(wǎng)絡(luò),不能支持P2P交易和離線交易,且匿名性完全無(wú)法保證。而基于密碼學(xué)的電子貨幣協(xié)議雖然在P2P交易、匿名性保護(hù)和離線交易方面有先天優(yōu)勢(shì),但也存在貨幣找零協(xié)議、匿名控制協(xié)議設(shè)計(jì)復(fù)雜的問(wèn)題,功能越完備的協(xié)議效率越低。
PBOC規(guī)范中給出了卡片規(guī)范和標(biāo)準(zhǔn)金融應(yīng)用規(guī)范的定義,并允許在卡片定義基礎(chǔ)上開(kāi)發(fā)新的應(yīng)用,所以可以在卡片規(guī)范基礎(chǔ)上調(diào)整應(yīng)用規(guī)范以建立符合要求的新IC卡支付協(xié)議。本文在符合PBOC2. 0[ 2 ]規(guī)范的防篡改智能卡(后面部分簡(jiǎn)稱IC卡)中借用電子錢包應(yīng)用,提出了一種以IC卡為載體的匿名可分電子貨幣支付方案。在滿足安全機(jī)構(gòu)對(duì)用戶的必要監(jiān)控前提下,實(shí)現(xiàn)了為IC卡提供匿名離線支付能力、貨幣可分機(jī)制和匿名性撤銷機(jī)制,可以滿足P2P、離線交易等新應(yīng)用的需要,而且要保證協(xié)議在支付過(guò)程具有較高效率。同時(shí),協(xié)議還提供了必要的公平性維護(hù)機(jī)制,保證了協(xié)議的功能完整性和實(shí)用性。
1 協(xié)議實(shí)現(xiàn)方式
基于PBOC2. 0規(guī)范的IC卡具有計(jì)算能力較強(qiáng),防篡改能力高的特點(diǎn),其固化的片內(nèi)操作系統(tǒng)(COS)具有極強(qiáng)的安全管理策略,可以制止非法交易和不安全操作的執(zhí)行。目前產(chǎn)品化的IC卡已經(jīng)可以支持公鑰加解密等各種加密算法,如中興32位Zi1221智能卡芯片的協(xié)處理器每秒可以完成1 024位RSA加密運(yùn)算23次,或192位ECC簽名18次,或3DES加密3. 5Mb,而華大16位CIU96S128UFB芯片由于使用專用的RSA 協(xié)處理器,其1 024位RSA加密速度達(dá)168次/秒。但是考慮到大量處理能力較弱的低端IC卡的存在以及同支付系統(tǒng)互聯(lián)和數(shù)據(jù)傳輸?shù)钠款i問(wèn)題,需要盡量降低支付過(guò)程的協(xié)議復(fù)雜度,通過(guò)離線方式完成交易。因此協(xié)議實(shí)現(xiàn)的關(guān)鍵就是高效率實(shí)現(xiàn)匿名性控制和電子貨幣的分割。
本文利用金融IC卡的特有物理安全屬性,通過(guò)改進(jìn)文獻(xiàn)[ 3 ]的協(xié)議來(lái)實(shí)現(xiàn)匿名性控制機(jī)制, 并使系統(tǒng)的效率保持常數(shù)級(jí)別O (C) , 保留基于被動(dòng)第三方信任( Trusted Third Party,TTP)的匿名性撤銷機(jī)制。協(xié)議引入覆蓋貨幣全生命周期的管理機(jī)制確保匿名性的完整,結(jié)合PBOC規(guī)范的電子錢包機(jī)制實(shí)現(xiàn)基于IC卡物理性能信任的公平性維護(hù)機(jī)制。匿名電子貨幣可分性的效率一直是一個(gè)阻礙匿名可分電子貨幣實(shí)用化的問(wèn)題,第一個(gè)可分貨幣系統(tǒng)效率極為低下,文獻(xiàn)[ 5 - 6 ]對(duì)它進(jìn)行了改進(jìn),改進(jìn)后的系統(tǒng)運(yùn)行效率為O ( ln N ) , N 表示貨幣的分割精度, 此后更多的改進(jìn)系統(tǒng)被提出。文獻(xiàn)[ 7 ]提出的系統(tǒng)提高了文獻(xiàn)[ 6 ]中系統(tǒng)的效率。文獻(xiàn)[ 8 ]提出的系統(tǒng)通過(guò)零知識(shí)證明保證了貨幣的每次支付都是不能被相互關(guān)聯(lián)的, 但是它的運(yùn)行效率降到了O ( ( lnN ) 2 ) , 在文獻(xiàn)[ 9 ~ 11 ]中,貨幣提取子協(xié)議的效率被提高,但是它依然運(yùn)行在O ( ln N ) 。上述所有算法都基于二叉樹(shù)表示法,它們都遵循節(jié)電路徑規(guī)則和同節(jié)點(diǎn)規(guī)則。這種模型限制了系統(tǒng)效率的進(jìn)一步提高,也限制了一個(gè)貨幣的最大幣值。近階段出現(xiàn)一些基于半盲簽名零知識(shí)證明的匿名可分電子貨幣機(jī)制使貨幣分割代價(jià)降到了常量級(jí),但是前者沒(méi)有提供對(duì)匿名性的管理,無(wú)法對(duì)可疑交易進(jìn)行跟蹤,也不便于貨幣掛失管理,不符合金融領(lǐng)域的使用慣例;后者的協(xié)議對(duì)于用戶方(即IC卡)來(lái)說(shuō)在支付過(guò)程中計(jì)算成本過(guò)高,不利于在IC卡平臺(tái)上的使用,在強(qiáng)調(diào)公平性的同時(shí)忽視了對(duì)用戶隱私的保護(hù),還存在匿名性泄漏的可能。
采用半盲簽名的貨幣分割的原理是將幣值和必要信息放入簽名的非盲部分,然后由收單行管理此匿名貨幣的余額,具有常數(shù)級(jí)代價(jià)。但是必須看到,一個(gè)半盲簽名的簽署和驗(yàn)證計(jì)算的通信代價(jià)依然較高,而且對(duì)于不同電子貨幣協(xié)議無(wú)法做到普遍兼容。其原因在于這些設(shè)計(jì)方案中要求加入的信息必須是由用戶提供的數(shù)值,由發(fā)幣行簽名前必須證明其數(shù)據(jù)的有效性,并保證去盲化后保持可驗(yàn)證,這往往要求在銀行簽名前進(jìn)行零知識(shí)證明,增加了協(xié)議實(shí)現(xiàn)的難度。為了解決這一問(wèn)題,文獻(xiàn)[ 14 ]雖然未能完整地提出可撤銷匿名性的可分貨幣的協(xié)議,但是詳細(xì)分析了可以直接明文添加到簽名中的信息,證明了隨機(jī)選擇的數(shù)據(jù)泄露用戶的匿名身份的問(wèn)題,提出并論證了受限公共信息RCD的概念。由于RCD信息非隨機(jī)選擇并被所有用戶共用,可以當(dāng)作公開(kāi)信息使用,因此可以不作盲化處理(由用戶或銀行)直接添加到銀行簽名(包括使用不同的簽名密鑰來(lái)映射) ,可以大大簡(jiǎn)化以往由半盲簽名實(shí)現(xiàn)的協(xié)議。以此為出發(fā)點(diǎn),本文建立了一個(gè)具有較高可用性的匿名可分電子貨幣支付系統(tǒng),較好地彌補(bǔ)了原有金融IC卡應(yīng)用中存在的不足。
1. 1 新的可分貨幣模型
采用同PBOC規(guī)范中電子錢包應(yīng)用類似的方法,在貨幣提取協(xié)議中由IC卡的防篡改單元維護(hù)一個(gè)貨幣余額的實(shí)時(shí)值并由發(fā)幣行數(shù)據(jù)庫(kù)維護(hù)一個(gè)非實(shí)時(shí)值,根據(jù)交易額進(jìn)行減值。當(dāng)發(fā)現(xiàn)超額消費(fèi)后則在事后通過(guò)匿名性撤銷機(jī)制來(lái)揭示非法用戶的身份并進(jìn)行追查,關(guān)于匿名性控制的協(xié)議設(shè)計(jì)可以參考文獻(xiàn)[ 3, 15~17 ]?;谑潞筇幚淼目煞重泿艆f(xié)議如圖1所示。
圖1 基于事后處理的可分貨幣協(xié)議
此協(xié)議按照如下步驟工作:
1)用戶同TTP申請(qǐng)一個(gè)憑證,這個(gè)憑證是今后用來(lái)作為匿名控制的參數(shù),在有些協(xié)議中,此步驟不需要TTP的參與。
2)用戶用此憑據(jù)向銀行提取一個(gè)有效的電子貨幣,銀行在簽名過(guò)程中注入了不可修改的可見(jiàn)貨幣信息,幣值可以在銀行規(guī)定的選項(xiàng)中任意選取。銀行建立一個(gè)此貨幣的賬戶。由于采用了盲簽名算法,銀行無(wú)法知道此貨幣的所有者信息。
3)在支付過(guò)程中,用戶出示貨幣和使用資格證明,并在其中載入交易信息(如交易金額、商品類型、商家ID等) ,商家驗(yàn)證支付信息的有效性,進(jìn)而完成交易。此處用戶通過(guò)特殊算法來(lái)證明自己是貨幣的合法使用者,其他人不能冒充,交易的安全策略由IC卡的固化COS來(lái)管理,此部分策略同PBOC2. 0規(guī)范電子錢包[ 2 ]應(yīng)用一致,此處不再重復(fù)。
4)在入賬階段,商家向銀行出示交易信息,銀行檢驗(yàn)此信息的有效性,在相應(yīng)的貨幣賬戶中減除相應(yīng)的金額。
5)當(dāng)銀行發(fā)現(xiàn)一個(gè)貨幣花費(fèi)超過(guò)其余額的金額時(shí)或可能進(jìn)行非法交易時(shí),銀行或相關(guān)部門向TTP出示其同貨幣綁定的證明。TTP利用此證明中的數(shù)據(jù)撤銷此貨幣的匿名性,找出非法用戶。
6)在一個(gè)貨幣進(jìn)行若干次正常消費(fèi)使用殆盡時(shí),還需要執(zhí)行專門的回款協(xié)議,這可以保證各個(gè)貨幣之間不存在關(guān)聯(lián)。主協(xié)議部分(上述1、2、3步)采用Frankel提出的可控匿名性電子貨幣協(xié)議[ 3 ] ,因?yàn)樗哂谐丝煞中院凸叫砸酝獾乃斜匾阅?而且具有較高的支付效率和協(xié)議擴(kuò)展性。
此協(xié)議本質(zhì)上是基于Schnorr的零知識(shí)證明算法實(shí)現(xiàn)的,分為3個(gè)部分:
1) 在開(kāi)戶協(xié)議中由用戶U向銀行B 證明個(gè)人身份標(biāo)志和TTP密鑰間的有效關(guān)聯(lián);
2) 在提款協(xié)議中由銀行B向用戶U證明銀行提供的簽名有效;
3) 在支付協(xié)議中由用戶U向賣方S 證明其貨幣的有效
性。
上述步驟都是基于Schnorr零知識(shí)證明算法實(shí)現(xiàn)的,其中步驟3作了一定調(diào)整,以獲得對(duì)重復(fù)花費(fèi)的追查,這里需要對(duì)步驟2和步驟3做必要的改進(jìn),加入受限公共信息RCD以實(shí)現(xiàn)設(shè)計(jì)目標(biāo),下面分別對(duì)各部分的具體實(shí)現(xiàn)進(jìn)行詳述。
2 協(xié)議描述
2. 1 系統(tǒng)建立
在我們的系統(tǒng)中,建立步驟同文獻(xiàn)[ 3 ]相似。銀行選擇兩個(gè)大素?cái)?shù)p和q,此處p - 1 = rq, R是一個(gè)相對(duì)小的整數(shù)。Gq是以q為階的Z
3p 的乘法子群, g, g1 , g2是Gp 的生成元, XB ∈R
Zq 是銀行的密鑰。H0 , H1是random oracle型的hash函數(shù)。銀行公布p, g, g1 , g2 , (H0 , H1 ) 和它的公鑰h = gXB , h1 =gXB1 , h2 = gXB2 。TTP也公布它的公鑰f1 = g1 xT。此處xT是TTP的私鑰(更詳細(xì)定義請(qǐng)參考文獻(xiàn)[ 3 ] ) 。
2. 2 賬戶建立階段
用戶向銀行證明其知道s的值, 且知道如何通過(guò)f2 表示A2 ′,然后用戶向銀行證明其知道如何用g2 來(lái)表示A1 以及兩個(gè)表達(dá)式使用相同的冪值s, 銀行記錄必要的用戶的信息和A’2 作為進(jìn)行賬戶控制的信息, s可以看作是用戶的私鑰。賬戶建立階段的協(xié)議實(shí)現(xiàn)如下。
2. 3 提款協(xié)議
銀行使用類似的算法將自己的密鑰加入給出貨幣的簽名,將s綁定在貨幣中,這是撤銷匿名性時(shí)的依據(jù)。然后用戶和銀行利用A2 ′來(lái)產(chǎn)生貨幣。如果協(xié)議執(zhí)行正確,用戶將得到形式為coin = (S, A, z, a, b, T, r) 的貨幣。在這里T 是用戶(銀行) 添加的受限公共信息RCD, 需要符合文獻(xiàn)[ 14 ] 中的規(guī)定。它具有T = (有效期,幣值, 銀行ID) 的形式(也可以根據(jù)實(shí)際應(yīng)用添加其他公共信息) 。由于取消了重復(fù)花費(fèi)的控制,所以不再需要原協(xié)議中對(duì)B進(jìn)行盲簽名的信息,只要保留原簽名協(xié)議中能夠證明用戶支付過(guò)程中提交的A1 確實(shí)是gs1 的形式就可以了。需要強(qiáng)調(diào)的是, 我們不建議使用同一個(gè)賬戶提取過(guò)多的貨幣,因?yàn)檫@會(huì)在多個(gè)貨幣間產(chǎn)生關(guān)聯(lián),增加泄漏用戶身份的概率。提款協(xié)議具體實(shí)現(xiàn)如下。
此部分協(xié)議的執(zhí)行可以遵循PBOC規(guī)范中圈存交易的Initialize for Load和Debit for Load流程來(lái)實(shí)現(xiàn),僅需要在新應(yīng)用中調(diào)整加密數(shù)據(jù)域的長(zhǎng)度以適應(yīng)從對(duì)稱密鑰系統(tǒng)向公鑰系統(tǒng)轉(zhuǎn)換的差異。由于篇幅所限,規(guī)范所涉及的交易流程請(qǐng)參考文獻(xiàn)[ 2 ]中相應(yīng)部分。
2. 4 支付協(xié)議:
為了保證支付的效率, 支付過(guò)程只由用戶和商家參與執(zhí)行。因?yàn)閟為用戶的私鑰, 只有用戶能夠使用此貨幣。商家檢查貨幣的簽名,貨幣的有效期T, 以及對(duì)交易的應(yīng)答d。在支付階段,商家記錄A1 , A2 , r1 , inf trade和coin = (S, A, z, a, b,T, r) 。V t是交易金額,只能夠由用戶來(lái)加入, inf trade 是此次交易信息,它包括商家ID、交易時(shí)間、交易數(shù)額、商品描述等,用戶和商家在交易過(guò)程中都認(rèn)同這些信息。協(xié)議的執(zhí)行步驟如下。
第三步中原協(xié)議使用了用戶私鑰u1 來(lái)實(shí)現(xiàn)對(duì)重復(fù)花費(fèi)的追蹤。但是我們的可分性是通過(guò)對(duì)同一個(gè)貨幣多次使用來(lái)實(shí)現(xiàn)的,所以這里我們修改原協(xié)議取消這一機(jī)制。
同樣,此部分協(xié)議的執(zhí)行可以遵循PBOC規(guī)范中消費(fèi)交易的Initialize for Purchase和Debit for Purchase流程來(lái)實(shí)現(xiàn),僅需要在新應(yīng)用中調(diào)整加密數(shù)據(jù)域的長(zhǎng)度以適應(yīng)從對(duì)稱密鑰系統(tǒng)向公鑰系統(tǒng)轉(zhuǎn)換的差異。
2. 5 入賬協(xié)議
在此模型中,電子貨幣就像一個(gè)錢夾,在用戶使用完貨幣之中的所有幣值之前,用戶可以開(kāi)始任意新交易。銀行可以檢查貨幣是否已空,商家則要把交易信息提交給銀行來(lái)判斷交易是否可以成立。同時(shí),銀行利用PBOC規(guī)范中關(guān)于交易記錄管理機(jī)制保留一個(gè)貨幣所進(jìn)行過(guò)的所有交易記錄,直到此貨幣失效或使用完其余額。
2. 6 回款協(xié)議
當(dāng)貨幣中的余額太少不足以支付一次交易時(shí),或者當(dāng)貨幣的使用期已到時(shí),就需要重新生成一個(gè)貨幣來(lái)取回其中的余額??紤]到以上兩種情況,此處采用的回款協(xié)議也分兩種:1)如果貨幣將要用完余額,用戶要重新將這些余額存入賬戶。為了保證用戶的匿名,用戶不能直接將貨幣余額直接保存到自己的實(shí)名賬戶。他需要用這個(gè)貨幣的余額來(lái)?yè)Q取一個(gè)臨時(shí)貨幣,這個(gè)臨時(shí)貨幣由無(wú)條件匿名協(xié)議來(lái)產(chǎn)生,只能用來(lái)回款而不能用來(lái)支付。如果貨幣余額足夠小,比如小于100分,而同一時(shí)期內(nèi)的回款貨幣數(shù)量很大時(shí),銀行將無(wú)法得到貨幣和用戶實(shí)名賬戶的聯(lián)系[ 14 ]。
2)如果貨幣到了使用有效期限,貨幣余額還較大,使用上面的換款協(xié)議將可能暴露用戶的身份。因?yàn)橛脩魯?shù)量可能不足以掩蓋如此特殊的回款幣值。所以,用戶需要重新生成此貨幣,依舊是重新運(yùn)行一次提款協(xié)議,唯一的不同是此時(shí)用戶不需要提供自己的賬戶信息, 而將A1 ′同新生成的貨幣綁定。新貨幣的幣值為舊貨幣的余額,這樣用戶在得到新貨幣時(shí)還能夠保持自身的匿名性。當(dāng)進(jìn)行匿名性撤銷活動(dòng)時(shí),銀行需要通過(guò)舊的A1 ′來(lái)找到用戶的真實(shí)身份。
當(dāng)然,我們可以簡(jiǎn)單地使用多個(gè)不足額的電子貨幣組合進(jìn)行支付,可以避免入賬的麻煩,但是這也將一系列電子貨幣的所有者進(jìn)行了隱性關(guān)聯(lián),不利于匿名性的保護(hù),本文不建議采用。
2. 7 使用中的一些注意事項(xiàng)
1)在要求較高匿名性的支付協(xié)議中,當(dāng)貨幣值使用殆盡時(shí),需要進(jìn)行前面提到的專門操作進(jìn)行貨幣回款。
2)由于本文提出的匿名電子貨幣不建議使用金額再注入問(wèn)題,所以對(duì)于匿名電子貨幣支付應(yīng)用來(lái)說(shuō),不存在圈存操作。另外,對(duì)于匿名支付操作來(lái)說(shuō),還必須禁止任何參與方查詢智能卡的相關(guān)身份信息,以保護(hù)匿名性不受破壞。這同以往的使用信用卡/借記卡進(jìn)行消費(fèi)的活動(dòng)是不同的,必須通過(guò)專門的COS安全機(jī)制無(wú)條件保證。由于卡內(nèi)應(yīng)用可以通過(guò)密碼進(jìn)行隔離,所以也可以對(duì)匿名賬戶設(shè)定單獨(dú)密碼來(lái)防止讀取。
3)由于開(kāi)戶過(guò)程計(jì)算量較大,我們建議使用讀卡器和輔助電子錢包系統(tǒng)來(lái)進(jìn)行開(kāi)戶計(jì)算,通過(guò)建立安全通道連接銀行服務(wù)器,執(zhí)行上述流程得到賬戶信息后,再將獲得的數(shù)據(jù)寫入IC卡。
4)在目前階段,由于PBOC2. 0規(guī)范沒(méi)有專門支持電子貨幣的應(yīng)用,所以我們需要通過(guò)規(guī)范中電子錢包應(yīng)用的GETDATA / PUT DATA指令集進(jìn)行擴(kuò)展,來(lái)打包數(shù)據(jù)及指令,同時(shí)通過(guò)設(shè)定P1、P2來(lái)表示所傳輸數(shù)據(jù)的新的類型,并以此為依據(jù)開(kāi)發(fā)新的指令響應(yīng)在COS系統(tǒng)中進(jìn)行相關(guān)處理,這樣我們就可以在原電子錢包規(guī)范中加入支持新協(xié)議的開(kāi)戶、提取貨幣以及回款等應(yīng)用。實(shí)現(xiàn)此協(xié)議包括應(yīng)用的調(diào)整和COS的調(diào)整,還要對(duì)收單系統(tǒng)進(jìn)行改進(jìn),本文集中于協(xié)議的設(shè)計(jì),對(duì)具體實(shí)現(xiàn)不做進(jìn)一步描述。
2. 8 追蹤機(jī)制
此模型提供文獻(xiàn)[ 3 ]中協(xié)議提到的兩種追蹤機(jī)制。所有者追蹤: 如果產(chǎn)生了非法交易,執(zhí)法部門可以要求銀行進(jìn)行所有者追蹤。銀行向TTP發(fā)送一個(gè)執(zhí)法部門的授權(quán)和相應(yīng)的支付信息,然后TTP計(jì)算:
再把它返回給銀行。此時(shí)銀行以此為依據(jù),在有效貨幣列表中查找用戶的真實(shí)身份。
貨幣追蹤: 當(dāng)一個(gè)用戶被懷疑進(jìn)行了違法交易或發(fā)生了綁票案件時(shí),執(zhí)法部門可以要求銀行進(jìn)行貨幣追蹤。銀行向TTP提供授權(quán)和用戶身份證明, TTP計(jì)算:
通過(guò)以上數(shù)據(jù),銀行可以標(biāo)注出以該用戶名義申請(qǐng)的貨幣。對(duì)于非法交易,可以搜索相應(yīng)的貨幣的交易記錄,進(jìn)而找出其購(gòu)買的商品是否合法。對(duì)于綁票案件,可以標(biāo)記該貨幣為非法,從而在犯罪分子使用此貨幣時(shí)進(jìn)行跟蹤抓捕。
2. 9 公平交易
這里借用電子錢包應(yīng)用中的交易記錄機(jī)制, 在記錄中加入交易信息inftrade , 就能夠利用IC卡保存記錄的公正不可篡改性來(lái)實(shí)現(xiàn)簡(jiǎn)單實(shí)用的公平性判定機(jī)制。此交易信息可以根據(jù)不同收單系統(tǒng)的慣例而調(diào)整,但須保留必要的信息以進(jìn)行公平性鑒別,這部分的信息選擇可以參照PBOC2. 0電子錢包和電子存折規(guī)范,此處不再詳述。
3 性能分析
3. 1 運(yùn)行效率
以防篡改金融IC卡的電子錢包應(yīng)用為基礎(chǔ)平臺(tái),采用以上協(xié)議,可以實(shí)現(xiàn)常數(shù)代價(jià)的可分匿名電子貨幣支付系統(tǒng)。用戶可以執(zhí)行一次取款協(xié)議,取得與待兌現(xiàn)貨幣錢數(shù)相等的貨幣,同二叉樹(shù)表示方法的協(xié)議相比, 效率從lg n提高到常數(shù)C。
在提款協(xié)議中,同改進(jìn)前的協(xié)議相比我們的協(xié)議由于取消了對(duì)重復(fù)花費(fèi)的檢測(cè),比原協(xié)議計(jì)算量降低近一半。在支付過(guò)程中,用戶只需進(jìn)行固定的兩次指數(shù)運(yùn)算, 而商家可以不必進(jìn)行r2 的驗(yàn)證, 計(jì)算量降低約25%。另外,從3. 4節(jié)支付協(xié)議中可以看到, 如果利用讀卡設(shè)備幫助進(jìn)行預(yù)計(jì)算Ap和B,那么每次支付的計(jì)算只有一次加法運(yùn)算和一個(gè)乘法運(yùn)算。
3. 2 安全性證明
結(jié)論1 用戶無(wú)法修改受限公共信息T來(lái)偽造貨幣。證明 用戶想偽造貨幣就必須要得到一組合法的T和T′,使得:
由于哈希函數(shù)是防碰撞的,所以用戶不能通過(guò)第一個(gè)途徑偽造貨幣。如果用戶能夠得到式(2) , 則利用已知的c′, T,r′, r″,用戶可以構(gòu)建一個(gè)算法,破解形如r = cx + w mod q的簽名,而以目前的技術(shù)而言是不可能實(shí)現(xiàn)的。所以, 用戶無(wú)法偽造貨幣,結(jié)論成立。
結(jié)論2 一個(gè)正確執(zhí)行的流程能夠提供可撤銷的匿名性,即用戶破壞匿名性跟蹤和銀行或商戶非法揭示用戶身份的可能性可以忽略。
證明 如果沒(méi)有可信第三方TTP的配合, 非授權(quán)恢復(fù)用戶U的ID的唯一方法是解離散對(duì)數(shù)問(wèn)題。可以認(rèn)為,任何參與方都不能和TTP合謀破壞用戶匿名性。
另一方面,在取款階段, 用戶U 可能試圖改變?cè)贏, b, z中的s值,但用戶計(jì)算出一個(gè)有效的b的概率為
也就是說(shuō), 對(duì)s做的任何改變都會(huì)在貨幣驗(yàn)證時(shí)被發(fā)現(xiàn)。用戶無(wú)法向TTP提供偽造的ID。
這樣,在保證匿名性控制信息只能保存在TTP處后,在需要時(shí), TTP可以進(jìn)行如下操作:
通過(guò)式(1)和(2) , TTP可以給出相應(yīng)A和A ′的聯(lián)系, 供銀行找出有問(wèn)題的交易者或交易內(nèi)容。此部分的協(xié)議證明詳見(jiàn)文獻(xiàn)[ 3 ]。
我們認(rèn)為,當(dāng)可信第三方TTP 保密時(shí),匿名性的有效撤銷管理是可以得到保證的。結(jié)論成立。
結(jié)論3 如果不知道w和XB , 不存在偽造一個(gè)合法貨幣的可能性。
證明 商家M 和其他參與者偽造一個(gè)貨幣的成功概率為:
由此可知, M 也不能偽造貨幣。因?yàn)镸 所擁有的有關(guān)B的知識(shí)不會(huì)比用戶U多,唯一可能偽造出用戶U 的貨幣的方法就是從該用戶的公鑰計(jì)算出其私鑰, 這等于破解離散對(duì)數(shù)問(wèn)題。
結(jié)論4 如果正確執(zhí)行贖回協(xié)議,且沒(méi)有可信第三方TTP的協(xié)作, 銀行B 不能跟蹤用戶U的ID。
證明 因?yàn)門TP的私鑰在任何條件下都是保密的,除了TTP以外沒(méi)有人能把支付信息和用戶的賬戶鏈接起來(lái)。在贖回階段,通過(guò)新生成的臨時(shí)貨幣,用戶可以執(zhí)行一次取款協(xié)議,取得與待兌現(xiàn)貨幣錢數(shù)相等的貨幣。
在文獻(xiàn)[ 14 ]中我們得出, 當(dāng)n 》m,且p ij, p k j不可忽略時(shí)( c的值域有限時(shí)) :
也就是說(shuō)銀行發(fā)現(xiàn)用戶身份信息的幾率趨向于零,不能從眾多的相似用戶群中跟蹤某一個(gè)銀行感興趣的用戶的交易活動(dòng),保證了用戶的隱私權(quán)。
由于商戶能夠獲得的信息知識(shí)是銀行能獲得的信息的子集,所以商戶也不能得到用戶的私人信息。
結(jié)論5 引入的受限公共信息RCD能夠保證有效信息的安全引入。
證明 在文獻(xiàn)[ 14 ]中分析了RCD限制貨幣列表增長(zhǎng)問(wèn)題的可行性, 由于我們給出的T值是在一組有限的數(shù)值中選擇的, 添加過(guò)程中不必再進(jìn)行零知識(shí)證明。利用結(jié)論1的證明,由于發(fā)幣行在簽名中加入了此數(shù)值,用戶無(wú)法偽造。因此RCD的引入具有足夠的安全性并保證貨幣的匿名性,結(jié)論成立。
結(jié)論6 此協(xié)議的實(shí)現(xiàn)方式符合金融行業(yè)的應(yīng)用規(guī)定。證明 金融行業(yè)對(duì)金融IC卡應(yīng)用的安全性和使用規(guī)則制定了詳盡的規(guī)范限制[ 2, 18 - 19 ]。這里我們需要加密算法不低于128 bits的3DES加密強(qiáng)度,以使其能夠符合PBOC規(guī)范的要求。
協(xié)議參照電子錢包應(yīng)用流程,使用同樣的IC卡硬件平臺(tái),可以方便地移植。軟件實(shí)現(xiàn)采用公鑰算法和簽名認(rèn)證協(xié)議,前面已經(jīng)證明協(xié)議流程的安全性,可以認(rèn)為此協(xié)議的安全性是符合金融行業(yè)的要求的。
3. 3 其他性能
防止超額花費(fèi): 方案阻止超額花費(fèi)的責(zé)任在于可信第三方TTP和銀行,銀行的任務(wù)是找出是否有貨幣已經(jīng)被超額花費(fèi),銀行維護(hù)有每一個(gè)貨幣剩余值的計(jì)數(shù)。當(dāng)發(fā)現(xiàn)一個(gè)貨幣的使用記錄之和已經(jīng)超過(guò)了它本身的數(shù)量,則是超額花費(fèi),這時(shí)可信第三方TTP的責(zé)任就是撤銷貨幣所有者的匿名性,不誠(chéng)實(shí)的用戶會(huì)受到懲罰。我們的系統(tǒng)采用防篡改硬件,可以提供給予硬件的事前預(yù)防機(jī)制。
阻止完美犯罪: 完美犯罪是因?yàn)殡娮迂泿畔到y(tǒng)的無(wú)條件匿名性引起的。在我們的方案中,匿名性是可以撤銷的,所以如果出現(xiàn)勒索或者非法交易,通過(guò)撤銷匿名性可以幫助相關(guān)機(jī)構(gòu)追查違法者。
離線交易和網(wǎng)絡(luò)交易:由于協(xié)議中使用公鑰算法,不必依賴專用的支付設(shè)備(ATM,金融POS終端, PSAM卡等)就可以進(jìn)行支付,交易的安全性不依賴于交易設(shè)備的安全性,可以方便地實(shí)現(xiàn)離線交易和網(wǎng)絡(luò)交易。
兼容性:協(xié)議是利用PBOC規(guī)范中給出的IC卡操作指令集擴(kuò)展的,可以在任何支持PBOC規(guī)范的IC卡上移植,具有良好的兼容性。
由上述證明可以得知,本文提出的協(xié)議具有足夠的安全性、效率和實(shí)用性,能夠保證支付的安全可靠執(zhí)行。
4 結(jié)語(yǔ)
本文通過(guò)在Frankel的基于TTP的匿名性控制電子貨幣協(xié)議,在文獻(xiàn)[ 14 ]中協(xié)議的基礎(chǔ)上引入了可重復(fù)花費(fèi)的性能。改進(jìn)后的協(xié)議利用金融IC卡防篡改平臺(tái)實(shí)現(xiàn)了一個(gè)匿名性可控的可分電子貨幣支付協(xié)議,具有比同類協(xié)議更高的效率,在支付過(guò)程中通過(guò)預(yù)計(jì)算可以將計(jì)算量降低到一次模乘及一次模加,非常適于在IC卡平臺(tái)上的應(yīng)用。同時(shí),通過(guò)受限盲簽名RCD的直接引入,可以保證協(xié)議在不降低的安全性的前提下大大減少了提款過(guò)程的計(jì)算量,可以有效消除發(fā)幣行的系統(tǒng)瓶頸。協(xié)議是在PBOC電子錢包應(yīng)用基礎(chǔ)上修改的,通過(guò)滿足必要的密鑰實(shí)用規(guī)則,可以保證協(xié)議既滿足計(jì)算安全要求也滿足金融行業(yè)的安全規(guī)定,可以在PBOC規(guī)范的開(kāi)放性構(gòu)架中作為拓展應(yīng)用而得到應(yīng)用,具有較好的實(shí)用性和可行性。
協(xié)議主要用于中小額離線支付應(yīng)用,支持離線交易和網(wǎng)絡(luò)交易??梢杂行钛a(bǔ)金融IC卡應(yīng)用現(xiàn)有規(guī)范的不足,為用戶提供更豐富更安全的選擇。
(文>上海交通大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系, 張向軍,陳克非)