專利名稱:一種縮短電子貨幣消費交易時間的方法
技術領域:
本發明涉及一種能夠有效縮短基于智能卡之類載體的電子貨幣的消費交易時間的方法,屬于金融電子化技術領域。
背景技術:
隨著電子商務的普遍開展,傳統的金融支付方式越來越不能滿足要求,在這一背景下,電子錢包成為世界各國開展電子商務活動中的熱門話題。它被認為是實現全球電子化交易和因特網交易的一種重要工具。
電子錢包是由智能卡(IC卡)發展而來的,是一種有存儲金額的智能卡或者說是內裝有電子貨幣的智能卡。它作為電子貨幣可以代替現金,可以在正確裝配的銷售點系統(POS)裝置上消費,也可以進行聯機消費和網上消費。目前,我國已有多家金融機構開展了基于智能卡的電子錢包業務。中國人民銀行修訂發布的《中國金融集成電路(IC)卡規范》(簡稱為PBOC),為利用智能卡開展電子錢包、電子存折等金融業務提供了基本的操作規范。
基于PBOC規范的消費流程包括4個要素1.用戶卡認證PSAM(消費安全存取模塊)卡 2.PSAM卡認證用戶卡;3.成功扣款并更新交易明細記錄;4.計算并返回正確的TAC和MAC2。
以正在大力推廣的電子不停車收費系統(ETC)為例,整個收費過程參見圖1所示。其中,“時間段I”是車載OBU進入RSU收費區域,OBU和RSU相互交互認證、上傳給RSU數據,OBU同時選擇用戶卡、PSAM卡的應用目錄等一些消費前的準備工作。由于這些指令的執行時間都比較短,所以這部分對時間的要求不高。“時間段II”是RSU根據OBU上傳的數據來判斷所扣的金額并傳給OBU(約在進入RSU區域內50ms左右后),OBU執行消費的流程,包括3部分用戶卡消費初始化(需要真實金額)、PSAM計算MAC1、用戶卡消費。其中用戶卡消費指令執行時間非常長。對時間段II在某些情況下要求非常短。“時間段III及以后時間”階段需要處理如下事情OBU上傳給RSU數據(如TAC等),對用戶卡的消費驗證階段和后續工作(比如寫一些記錄等內容)。在“時間段III及以后時間”內由于OBU上傳給RSU必須需要大約20ms左右的時間,這是必須保證的。在OBU傳給RSU數據后,其他的操作都可以繼續進行。所以這段時間內對卡片來說沒有時間限制。
參見圖2所示的消費處理流程,主要包括以下步驟1.用戶卡消費初始化主要作用卡片產生過程密鑰SK。將原余額、脫機交易序號、透支限額、密鑰版本號、算法標識、4字節偽隨機數送卡外。過程密鑰SK是用自己的消費密鑰對隨機數加密得到的。
一般情況下用戶卡對自己產生的隨機數進行分散得到過程密鑰SK;將原余額、脫機交易序號、透支限額、密鑰版本號、算法標識、4字節偽隨機數送卡外。
2.PSAM卡計算MAC1主要作用PSAM卡按照指定的密鑰版本號,使用相應的消費主密鑰對應用序列號分散得到消費子密鑰。產生和用戶卡消費初始化過程中相同的過程密鑰SK,并計算產生MAC1。
由于SK以及交易時間的不同;所以每次的MAC1是不相同的。
3.用戶卡消費主要作用IC卡用過程密鑰SK驗證MAC1的正確性(用戶卡認證PSAM卡)。如果驗證通過,則將從余額扣除消費的金額;成功扣款要將卡片脫機交易序號加1,更新交易明細記錄。用SK對相應數據計算得到4字節的MAC2用內部密鑰的左右各8字節異或運算的結果對相應數據計算得到4字節的TAC。將MAC2和TAC碼回送給終端(計算并返回正確的TAC和MAC2)。
TAC(交易認證碼)的計算遵循PBOC規范,其中涉及到的金額按實際金額計算。
用戶卡用過程密鑰SK驗證MAC1的正確性。如果驗證通過,則將從余額扣除消費的金額;將卡片脫機交易序號加1;更新交易記錄。
用SK對相應數據計算得到4字節的MAC2;用內部密鑰的左右各8字節異或運算的結果對相應數據計算得到4字節的TAC碼。
PSAM卡校驗MAC2體現了用PSAM卡認證用戶卡,并變更交易序號。
此過程中需要對芯片的擦寫次數比較多,對于一般的芯片來說,整個消費指令執行時間一般都要65~80ms左右(不包括消費初始化、計算MAC1以及OBU和卡片的通信時間)。這一時間要求對通常的金融業務來說是完全夠用的,但對于一些特殊的應用場合而言,時間就顯得明顯過長了。
以上述的ETC系統為例,目前的設計大都采用歐洲標準,允許車輛以較高速度通過,通過距離也有一定限制。一般而言,完成整個交易過程中和RSU(Road-Side Unit,路側單元)相關的時間為120毫秒(ms),其中前40~50ms用于OBU(車載單元)和RSU區域進行相互認證、OBU與卡片相互認證等操作;中間40~50ms留給卡片做消費;最后的20ms用于OBU上傳給RSU相關數據(如TAC)等。由于一般的OBU留給卡片的整個消費時間大約為50ms,現有的PBOC金融規范所規定的消費流程遠遠不能達到要求。另外,為了保證交易的安全性,還必須通過專門的流程對安全性進行認證。這就需要對目前的電子消費流程進行優化,以達到快速消費的要求。
發明內容
本發明的目的在于提供一種能夠有效縮短電子貨幣消費交易時間的方法,該方法提供了適合智能卡之類載體內的電子錢包、電子存折等消費的新流程,能夠在確保安全性的同時,顯著縮短交易所需的時間。
為實現上述的發明目的,本發明采用下述的技術方案一種縮短電子貨幣消費交易時間的方法,其特征在于將消費流程分為預消費指令和扣款指令兩部分執行;其中,在完成消費初始化之后,首先計算第一報文鑒別代碼,執行預消費指令;所述預消費指令在所要求時間內返回交易認證碼和第二報文鑒別代碼后,對扣款的標記位置位;所述扣款指令根據標記位是否被置位完成包括用戶卡扣款、更新交易記錄在內的操作。
其中較優地,在執行預消費指令時,將生成的包括交易認證碼、第二報文鑒別代碼、交易明細、余額、狀態信息在內的信息集中拼裝成一個數據塊,一次性寫入EEPROM中定義好的錢包緩沖區中。
所述扣款指令可任選在消費流程執行中或者結束之后的時間段內執行。
所述扣款指令在執行時,首先執行從錢包緩沖區里讀出相應數據并存儲到相應位置的卡內處理流程,根據卡內處理流程的處理結果返回相應狀態碼;在消費初始化之前執行選擇文件/目錄指令前,首先執行卡內處理流程,完成扣款,再做選擇文件/目錄。
在執行消費初始化指令時,首先執行卡內處理流程,完成扣款,再做消費初始化操作。
所述卡內處理流程的處理流程為(1)判斷標志位是否被置位,若被置位則表示需要將緩沖區內容寫入錢包及相應文件,若未被置位,則表示不需要寫入,直接返回;(2)讀取錢包緩沖區內的對應數據;(3)從對應數據中,分別取交易明細、余額、聯機交易序號、脫機交易序號、交易認證碼和第二報文鑒別代碼等數據存入相應的地方;(4)將EEPROM中取TAC標志位置位;所述電子貨幣消費交易包括但不限于電子錢包或者電子存折交易。
本發明提供了雙界面或純非接觸CPU卡或接觸CPU卡等載體進行電子貨幣消費的全新交易流程。利用該方法所提供的流程,既可保證電子貨幣消費過程中的安全性,又能實現比較快的交易速度。
下面結合附圖和具體實施例對本發明作進一步的說明。
圖1為標準的PBOC安全交易流程的示意圖。
圖2為標準的PBOC消費交易流程中,用戶卡、終端、PSAM卡三方交互的示意圖。
圖3為本發明所提供的新的安全交易流程的示意圖。
圖4為新的消費交易流程中,用戶卡、終端、PSAM卡三方交互的示意圖。
具體實施例方式
本發明所提供的方法主要針對交易時間要求比較短,還要卡片返回PBOC規范必需的交易認證碼(TAC)和MAC(Message AuthenticationCode,報文鑒別代碼)2的情況而設計。利用本發明所提供的交易流程,能有效縮短雙界面智能卡或純非接觸智能卡或接觸CPU卡等類似載體消費指令時間,尤其適用于高速公路不停車收費系統的OBU(On-Board-Unit)方案等。
下面結合圖3所示,以高速公路不停車收費系統的OBU方案為例展開詳細的說明。
前已述及,縮短智能卡交易時間的關鍵就在于使“時間段II”滿足ETC系統的時間要求。對“時間段II”要求盡可能短的原因可以歸結為以下四點(1)由于RSU支持的距離有限,整個交易時間必須在120ms內完成。
(2)OBU得到金額的時間(約在進入RSU區域內50ms左右后)不能太長;(3)用戶卡執行消費指令的時間非常長。由于功耗問題,一般芯片實際使用的非接觸最大時鐘為6.68MHz。另外,在接觸式卡片上(15MHz)實際測得寫一頁EEPROM需要4ms。根據時鐘頻率換算,非接觸卡上寫EEPROM耗時約6ms,因此通過修改時鐘來縮短時間是不可行的。
(4)“時間段III及以后時間”內必須保證OBU上傳給RSU所需要大約20ms左右的時間。
在上述四點原因中,本發明主要針對其中的第三點開展工作,以便有效縮短消費指令的執行時間。為此,在本發明中,把原PBOC規范提供的消費流程分為2部分預消費和扣款指令。預消費在所要求時間內返回PBOC要求的結果(TAC和MAC2),然后對扣款的標記位置位。這既保證了時間,又保證了結果。扣款指令根據被標記位是否被置位完成用戶卡扣款、更新交易記錄等需要多次寫EEPROM等費時的內容,這保證了實際的金額也被扣除,交易記錄被更新。此外,本發明也增加了對PBOC規范內“選擇文件/目錄”指令和“消費初始化”指令的修改,增加判斷對標記位是否置位的檢測,以確保扣款的完成,從而有效的縮短了消費時間。
具體而言,在預消費指令時,將生成的TAC,MAC2,交易明細,余額,狀態信息等信息拼裝成一個數據塊I,一次性寫入EEPROM(可擦除可編程只讀存儲器)中定義好的電子錢包緩沖區中。然后返回TAC和MAC2。由于預消費指令對所有數據打包并集中寫到芯片的某個位置,這樣對芯片的擦寫次數由原來的8次(3次不帶保護寫和5次帶保護寫)減少到2次(1次帶保護寫和1次不帶保護寫),從而有效的縮短了指令執行時間。通過預消費指令,生成了消費結果所要求的TAC和MAC2,并為用戶卡扣款、更新交易記錄做準備(內容均在數據塊I里面)。
預消費指令的內部詳細處理流程如下(1)計算出MAC1,與接收到的MAC1對比,錯誤返回6982;(2)計算出MAC2;(3)計算出TAC;(4)寫一字節的FF至PBOCKEYTTI(前次交易類型)處,保證斷電后不可取交易證明;(5)將和消費相關的必需數據(包括TAC、MAC2、交易明細、余額、聯機交易序號、脫機交易序號、DF信息、EF信息、臨時開始信息、臨時DF開始信息、交易類型、校驗值、標志位等共51字節)組成一個數據塊I,帶保護統一寫入EEPROM中定義的錢包緩沖區中;(6)返回TAC+MAC2。
表1為預消費指令中的命令報文示例
表1表1為消費/取現命令報文數據域示例,它包括以下數據元
表2
MAC1的計算方法遵循PBOC規范的規定。由SK對表3數據按MAC計算方法生成MAC1。
表3由于SK以及交易時間的不同;所以每次的MAC1并不相同。預消費命令執行成功的響應報文數據域如表4所示
表4TAC的計算同PBOC規范的規定,其中涉及到的金額按實際金額計算。MAC2的計算也按PBOC規范。
預消費指令處理完畢后,卡片繼續執行電子錢包扣款指令。此段時間和以前的消費指令時間相差不多,但是扣款指令的執行可以放在時間段III,因為在時間要求上對這段要求并不嚴格。扣款指令后的結果是根據數據塊I來實現用戶卡真正意義上的扣款,并更新交易記錄。
扣款指令的內部詳細處理流程是這樣的首先執行從錢包緩沖區里讀出相應數據并存儲到相應位置的卡內處理流程,根據卡內處理流程的處理結果返回相應的狀態碼。
卡內處理流程的具體步驟為(1)判斷標志位是否被置位,若被置位則表示需要將緩沖區內容寫入錢包及相應文件。若未被置位,則表示不需要寫入,直接返回;(2)讀取錢包緩沖區內的對應數據;(3)從對應數據中,分別取交易明細、余額、聯機交易序號、脫機交易序號、交易認證碼和第二報文鑒別代碼等數據存入相應的地方;
(4)將EEPROM中取TAC標志位置位;取TAC標志位用來表明是否允許從卡片中取該次交易的TAC碼。當置位時,允許取該次交易的TAC碼,未置位時,則不允許。
扣款指令的命令報文示例如表5所示。
表5通過預消費和扣款指令實現的消費流程如圖4所示。
在本發明中,還采取了一些特殊的錯誤恢復機制,即使一旦在寫錢包時斷電仍會完成扣款功能,從而保證交易的完整性。具體而言,預消費指令執行完畢對標記位置位;扣款指令首先判斷是否置位,將所有數據歸位后再清除標記位。對于執行選擇文件/目錄指令和消費初始化指令時也是首先檢測標記位是否置位,若置位首先執行卡內處理流程完成扣款;然后才執行原來的選擇文件/目錄指令和消費初始化指令。TAC的正確與否是交由RSU實時驗證的。
另外,在選擇文件/目錄指令、消費初始化指令中都執行卡內處理流程,完成扣款后,再做相應的選擇或消費初始化操作。
基于上述錯誤恢復機制,對于幾種可能出錯的情況(不局限于所列舉的情況),分別進行如下的處理(1)預消費指令中,寫FF至PBOCKEYTTI前斷電此種情況下,TAC和MAC2不會返回。也無任何數據寫入EEPROM中,交易未執行。
(2)預消費指令中,寫FF至PBOCKEYTTI后,寫數據包至錢包緩沖區前斷電此種情況下,TAC和MAC2不會返回。也無任何數據寫入EEPROM中,交易未執行。
(3)預消費指令中,寫數據包至錢包緩沖區中斷電此種情況下,TAC和MAC2不會返回。由于數據包未寫入正確,校驗值及標記位都會錯誤。所以相當于交易未成功。
(4)預消費指令中,寫數據包成功,返回TAC和MAC2時斷電這種情況下,TAC和MAC2不會返回。下次上電應先取交易證明(TAC),此時錢包和記錄文件會同時改寫。保證了消費的完整性。
(5)預消費指令完成后,電子錢包扣款指令執行前斷電此種情況下,TAC和MAC2已經返回,必須要完成錢包的扣款。下次消費上電時,必定會執行選擇文件/目錄指令。會先完成上次扣款才會執行交易。
(6)電子錢包扣款指令時斷電此種情況下,由于寫入都為帶保護寫,數據會恢復。同時標志位沒有改變。在下次消費上電時,執行選擇文件/目錄指令,仍然會先完成上次扣款。
(7)極端情況如果選擇文件/目錄指令一直不執行。那么在消費初始化時,仍將會把上次消費的數據寫入錢包。保證扣款操作的完整性。
應用了新的消費流程以后,對于預消費指令寫一字節FF至PBOCKEYTTI(約6MS),帶保護寫數據包至錢包緩沖區(約12MS),這就有效縮短了時間,可以滿足高速交易的要求。
對于電子錢包扣款指令帶保護寫一字節FF至PBOCKEYTTI(約12MS),帶保護寫23字節交易明細(約12MS),寫8字節TAC和MAC2(約6MS),寫8字節余額和脫機序號和聯機序號(約6MS),帶保護寫一字節校驗值(約12MS),帶保護寫循環文件指針2次(約25MS)。這段時間盡管比較長,但這是可以在第三時間段內完成的(時間段III對時間上要求不苛刻)。
由此可見,新的交易流程能有效縮短雙界面智能卡或純非接觸智能卡等的消費指令時間,可適用于比如高速公路不停車收費系統的OBU方案等。OBU方案由于要求時間短,一般采用的雙界面或純非接觸界面的智能卡的速率為106Kbps。今后為了提高通信速度,還可以進一步將卡片速率調整為106Kbps、212Kbps、424Kbps、847Kbps可選。
以上對本發明所述的縮短電子貨幣消費交易時間的方法進行了詳細的說明。對本領域的一般技術人員而言,在不背離本發明實質精神的前提下對它所做的任何顯而易見的改動,都將構成對本發明專利權的侵犯,將承擔相應的法律責任。
權利要求
1.一種縮短電子貨幣消費交易時間的方法,其特征在于將消費流程分為預消費指令和扣款指令兩部分執行;其中,在完成消費初始化之后,首先計算第一報文鑒別代碼,執行所述預消費指令;所述預消費指令在所要求時間內返回交易認證碼和第二報文鑒別代碼后,對扣款的標記位置位;所述扣款指令根據標記位是否被置位,完成包括用戶卡扣款、更新交易記錄在內的操作。
2.如權利要求1所述的縮短電子貨幣消費交易時間的方法,其特征在于在執行預消費指令時,將生成的包括交易認證碼、第二報文鑒別代碼、交易明細、余額、狀態信息在內的信息集中拼裝成一個數據塊,一次性寫入EEPROM中定義好的錢包緩沖區中。
3.如權利要求1所述的縮短電子貨幣消費交易時間的方法,其特征在于所述扣款指令可任選在消費流程執行中或者結束之后的時間段內執行。
4.如權利要求3所述的縮短電子貨幣消費交易時間的方法,其特征在于所述扣款指令在執行時,首先執行從錢包緩沖區里讀出相應數據并存儲到相應位置的卡內處理流程,根據卡內處理流程的處理結果返回相應狀態碼。
5.如權利要求1所述的縮短電子貨幣消費交易時間的方法,其特征在于在消費初始化之前的執行選擇文件/目錄指令前,首先執行卡內處理流程完成扣款,再做選擇文件/目錄操作。
6.如權利要求1所述的縮短電子貨幣消費交易時間的方法,其特征在于在執行消費初始化指令時,首先執行卡內處理流程完成扣款,再做消費初始化操作。
7.如權利要求4~6中任意一項所述的縮短電子貨幣消費交易時間的方法,其特征在于所述卡內處理流程的處理流程為(1)判斷標志位是否被置位,若被置位則表示需要將緩沖區內容寫入錢包及相應文件,若未被置位,則表示不需要寫入,直接返回;(2)讀取錢包緩沖區內的對應數據;(3)從對應數據中,分別取交易明細、余額、聯機交易序號、脫機交易序號、交易認證碼和第二報文鑒別代碼等數據存入相應的地方;(4)將EEPROM中取TAC標志位置位。
8.如權利要求1所述的縮短電子貨幣消費交易時間的方法,其特征在于所述電子貨幣消費交易包括但不限于電子錢包或者電子存折交易。
全文摘要
本發明提供了一種能夠縮短電子貨幣消費交易時間的方法。該方法中,將消費流程分為預消費指令和扣款指令兩部分執行;其中,在完成消費初始化之后,首先計算第一報文鑒別代碼,執行預消費指令;預消費指令在所要求時間內返回交易認證碼和第二報文鑒別代碼后,對扣款的標記位置位;扣款指令根據被標記位是否被置位完成包括用戶卡扣款、更新交易記錄在內的操作。利用本發明所提供的電子貨幣消費交易方法,既可保證智能卡在消費過程中的安全性,又能實現比較快的交易速度。
文檔編號G07B15/06GK1963854SQ20061014410
公開日2007年5月16日 申請日期2006年11月27日 優先權日2006年11月27日
發明者席礪莼, 董敏, 臧宏偉, 林立峰, 陳文革, 桂杰 申請人:北京握奇數據系統有限公司