新四季網

一種對雙電子錢包進行操作的方法

2023-05-10 17:32:31

專利名稱:一種對雙電子錢包進行操作的方法
技術領域:
本發明涉及信息安全領域,特別涉及一種在CPU終端對雙電子錢包進行操作的方 法。
背景技術:
邏輯加密卡Mifare I(Ml)技術成熟、價格低廉,在傳統的城市交通智慧卡應用中 佔據了絕大部分,但Ml卡內部沒有獨立的CPU和作業系統,完全依靠內置硬體邏輯電路實 現安全認證和保護,因此導致Ml卡容易被破解,按交通智慧卡「一卡多用、多卡互通」的發展趨勢,Ml卡內電子錢包的資金存量必將越來越高,因此Ml的安全隱患已引起高度的關注。CPU卡內具有中央處理器(CPU)、隨機存儲器(RAM)、程序存儲器(ROM)、數據存儲 器(EEPROM)以及片內作業系統,其安全性大幅優於Ml卡,但高昂的價格嚴重製約了其推廣 應用,近來隨著非接觸CPU卡的推出,其價格接近Ml卡,技術也日趨成熟,這使全面推廣應 用CPU卡取代Ml卡成為可能。現在技術中存在一種包含有Ml和CPU兩部分的CPU卡,但是這種CPU卡在內部處 理流程上兩部分是完全獨立的,沒有同步機制來對這兩部分中的雙電子錢包進行同步,因 此這樣就造成了在使用Ml終端或CPU終端消費時,雙電子錢包的餘額不一致的問題。

發明內容
為了解決現有技術中的不足,本發明提供了一種在CPU終端對雙電子錢包進行操作的方法,所述方法包括CPU卡進入終端的非接觸式感應區內,所述CPU卡上電並初始化;獲取第一電子錢包的餘額;獲取第二電子錢包的餘額;比較所述第一電子錢包和所述第二電子錢包的餘額的大小;若所述第一電子錢包的餘額小於所述第二電子錢包的餘額,則將所述第二電子錢包的餘額設置為與所述第一電子錢包的餘額一致,並進行尋卡操作;若所述第二電子錢包的餘額小於所述第一電子錢包的餘額,則將所述第一電子錢包的餘額設置為與所述第二電子錢包的餘額一致,並進行尋卡操作;若所述第一電子錢包的餘額與所述第二電子錢包的餘額相等,則直接進行尋卡操作。本發明的有益效果在於本發明提供的一種在CPU卡內對雙電子錢包進行操作方法,該方法提供了一種同步機制,實現了雙電子錢包真正的同步;該方法採用CPU終端進 行充值,提高了原有的通過Ml終端充值的安全性;並且本發明提供的方法在不改變Ml消費終端的前提下,仍然可以使用原有的Ml卡進行消費,這樣有利於消費的統一。


圖1為本實施例提供的一種在CPU卡內對雙電子錢包進行操作的方法的流程圖。
具體實施例方式為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方 式做進一步地詳細描述。本發明使用了一種雙界面CPU卡,該雙界面CPU卡具體為帶有ISO 14443接口和 Mifare 1 (簡稱Ml)的非接觸式CPU卡,如SLE66CL80PEM、P5ra012等,並且通過該非接觸式 CPU卡,本發明實現了雙電子錢包應用,具體地,使用該非接觸式CPU卡中的ISO 14443接口 實現的是符合銀行標準(如PB0C2.0標準)的電子錢包,即CPU電子錢包,而使用該非接觸 式CPU卡中的Mifare 1實現的是基於邏輯加密晶片標準(如Mifare標準)的金融應用, 即Ml電子錢包,兩種錢包在硬體上相互獨立,但CPU電子錢包應用可以訪問Ml電子錢包。本實施例提供了一種在CPU終端對CPU卡內的CPU電子錢包和Ml電子錢包進行 操作的方法,在本實施例中,帶有CPU電子錢包和Ml電子錢包的CPU卡為非接觸式CPU卡, CPU終端為非接觸式終端,具體實現步驟如下步驟101 =CPU卡進入終端的非接觸式感應區內,CPU卡上電並初始化;步驟102 判斷自身是否已進行了個人化,即判斷內部的個人化標誌位是否為 OxAA,若是,則執行步驟103,若否,則執行步驟109 ;在本實施例中,個人化標誌位是發卡系統與CPU卡預先約定的,當發卡系統已對 CPU卡進行個人化時,則發卡系統在CPU卡中設置一個個人化標誌位,並將該個人化標誌位 設置為預先約定的值,在本實施例中發卡系統與CPU卡預先約定的值具體為OxAA,是自定 義的,即當個人化標誌位是OxAA時,則表示CPU卡已進行了個人化,否則表示CPU卡未進行 個人化,並且發卡系統和CPU卡也可以預先約定任意其他的值作為標識,如0x01,即當個人 化標誌位是0x01時,則表示CPU卡已進行了個人化,否則表示CPU卡未進行個人化;
或者,在本實施例中發卡系統與CPU卡預先約定,若發卡系統已對CPU卡進行個人 化時,則發卡系統在CPU卡中創建一個文件系統的主目錄MF,當CPU卡判斷內部已存在文件 系統的主目錄MF時,則表示CPU卡已進行了個人化,當CPU卡判斷內部不存在文件系統的 主目錄MF時,則表示CPU卡未進行個人化;或者,發卡系統與CPU卡預先約定,若發卡系統已對CPU卡進行個人化時,則發卡 系統在CPU卡中的文件系統的主目錄MF下創建一個標識文件,當CPU卡判斷內部已存在標 識文件時,則表示CPU卡已進行了個人化,當CPU卡判斷內部不存在標識文件時,則表示CPU 卡未進行個人化。步驟103 獲取Ml的扇區密鑰;在本實施例中,預先約定存儲Ml電子錢包的餘額的扇區號和塊號,並根據該預先 約定的扇區號來獲取Ml的扇區密鑰,其中獲取Ml的扇區密鑰的方法具體為調用API接口 函數 extern WORD GetMifareSectorPassword (BYTE^secPwdBuf, BYTE blockNo)來獲取 Ml 的扇區密鑰。步驟104 獲取Ml電子錢包的餘額;在本實施例中,CPU卡根據步驟103中獲得的Ml的扇區密鑰,以及預先約定的存儲Ml電子錢包的餘額的塊號來獲取Ml電子錢包的餘額,其中獲取Ml電子錢包的餘額的方法具體為調用 API 接 口函數 extern BYTEGetMifarePurseBalance (BYTE^balanceBuf)來 獲取Ml電子錢包的餘額。步驟105 獲取CPU電子錢包的餘額;在本實施例中,獲取CPU電子錢包的餘額的方法具體為查找應用文件ADF的地址;根據應用文件ADF查找ADF下的CPU電子錢包文件的地址;根據查找得到的CPU電子錢包文件的地址和預先設定的CPU電子錢包的餘額的偏 移量來計算用於存儲CPU電子錢包的餘額的地址;根據計算得到的用於存儲CPU電子錢包的餘額的地址來讀取CPU電子錢包的餘 額;或者,預先約定CPU卡內有一塊存儲空間用於存儲CPU電子錢包的餘額的地址,則從上 述存儲空間中讀取上述地址,再根據上述地址直接讀取CPU電子錢包的餘額。步驟106 對Ml電子錢包和CPU電子錢包進行同步,即比較Ml電子錢包的餘額與 CPU電子錢包的餘額的大小,若Ml電子錢包的餘額小於CPU電子錢包的餘額,則執行步驟 107,若CPU電子錢包的餘額小於Ml電子錢包的餘額,則執行步驟108,若Ml電子錢包的餘 額與CPU電子錢包的餘額相等,則執行步驟109 ;步驟107 將CPU電子錢包的餘額設置為與Ml電子錢包的餘額一致,然後執行步 驟 109 ;在本實施例步驟107中,將CPU電子錢包的餘額設置為與Ml電子錢包的餘額一致 的方法,具體為查找應用文件ADF的地址;根據應用文件ADF查找ADF下的CPU電子錢包文件的地址;根據查找得到的CPU電子錢包文件的地址和預先設定的CPU電子錢包的餘額的偏 移量來計算用於存儲CPU電子錢包的餘額的地址;將上述地址所指向的存儲區中的數據清空,然後將Ml電子錢包的餘額寫入上述 地址所指向的存儲區中,作為CPU電子錢包的新的餘額;或者,從預先約定的存儲空間中讀取CPU電子錢包的餘額的地址;將上述地址所指向的存儲區中的數據清空,然後將Ml電子錢包的餘額寫入上述 地址所指向的存儲區中,作為CPU電子錢包的新的餘額;進一步地,將CPU電子錢包的餘額設置為與Ml電子錢包的餘額一致,還包括更新 CPU電子錢包的交易明細,具體方法為讀取CPU電子錢包的最後一條交易明細的具體時間;將Ml電子錢包的每條交易明細的時間與上述讀取得到的時間進行比較;將Ml電子錢包的交易明細的時間在上述讀取得到的時間之後的所有交易明細追 加到CPU電子錢包的交易明細中;其中,交易明細具體為交易金額、交易類型標識、終端機編號、交易日期和交易時間等;進一步地,更新CPU電子錢包的交易明細之後,還包括根據追加到CPU電子錢包的交易明細中的Ml電子錢包的交易明細的條數,相應地 將CPU電子錢包的脫機交易序號加上相應的值,其中該相應的值與上述條數相同,如追加 到CPU電子錢包的交易明細中的Ml電子錢包的交易明細的條數為3,則相應地將CPU電子 錢包的脫機交易序號加3。步驟108 將Ml電子錢包的餘額設置為與CPU電子錢包的餘額一致,然後執行步 驟 109 ;在本實施例步驟108中,將Ml電子錢包的餘額設置為與CPU電子錢包的餘額一致 的方法具體為根據預先約定的扇區號,調用API接口函數extern WORDGetMifareSectorPasswo rd(BYTE*secPwdBuf, BYTE blockNo)來獲取 Ml 的扇區密鑰;調用 API 接 口 函數 extern BYTE SetMifarePurseBalance (BYTE^balanceBuf),並 利用獲得的Ml的扇區密鑰來設置Ml電子錢包的餘額,即將Ml電子錢包的餘額設置為與 CPU電子錢包的餘額一致;其中,將Ml電子錢包的餘額設置為與CPU電子錢包的餘額一致,還包括更新Ml 電子錢包的交易明細,具體方法為讀取Ml電子錢包的最後一條交易明細的具體時間;將CPU電子錢包的每條交易明細的時間與上述讀取得到的時間進行比較;將CPU電子錢包的交易明細的時間在上述讀取得到的時間之後的所有交易明細 追加到Ml電子錢包的交易明細中;其中,交易明細具體為交易金額、交易類型標識、終端機編號、交易日期和交易時 間等;進一步地,更新Ml電子錢包的交易明細之後,還包括根據追加到Ml電子錢包的交易明細中的CPU電子錢包的交易明細的條數,相應地 將Ml電子錢包的脫機交易序號加上相應的值,其中該相應的值與上述條數相同,如追加到 Ml電子錢包的交易明細中的CPU電子錢包的交易明細的條數為1,則相應地將Ml電子錢包 的脫機交易序號加1。步驟109 判斷是否接收到尋卡的命令,若否,則繼續等待接收命令並進行判斷,若是,則執行步驟110;步驟110 接收喚醒命令WUPA和請求命令REQA ;步驟111 返回應答命令ATQA,再進行防衝撞處理ANTIC0L,然後接收選擇命令SELECT ;步驟112 發送選擇確認 SAK(MIFARE enabled);步驟113 接收到非接觸式的數據幀CL (contactless) Frame ;步驟114 判斷是否有選擇應答請求命令RATS Ccommand,若否,則執行步驟115,若是,則執行步驟116;步驟115 執行Ml錢包應用操作,直到掉電或是CPU卡離開終端的非接觸式感應 區;
步驟116 等待接收應用命令,當接收到的是圈存初始化命令INITIALIZEFOR LOAD時,則執行步驟117,當接收到的是消費初始化命令INITIALIZE F0RPURCHASE時,則執 行步驟132 ;在本實施例中,圈存初始化命令INITIALIZE FOR LOAD用於初始化圈存交易。步驟117 讀取INITIALIZE FOR LOAD命令中包含的數據並保存;在本實施例中,INITIALIZE FOR LOAD命令中包含的數據具體為密鑰索引號、交易金額和終端機編號。步驟118 檢查自身是否支持INITIALIZE FOR LOAD命令中包含的密鑰索引號,若 不支持,則執行步驟119,若支持,則執行步驟120 ;步驟119 返回狀態碼0x9403給終端,並終止執行圈存初始化操作,然後返回到步 驟 116 ;步驟120 生成一個偽隨機數和一個過程密鑰,並利用該過程密鑰計算得到第一 報文鑑別碼MACl ;在本實施例中,過程密鑰是由密鑰DLK分散得到的;利用過程密鑰計算得到第一報文鑑別碼MACl的方法具體為將交易前的CPU電子錢包的餘額、交易金額、交易類型標識和終端機編號順序鏈 接,再利用過程密鑰對連結後的數據進行加密,得到的加密後的數據的前四個字節即為 MACl。步驟121 將INITIALIZE FOR LOAD響應報文返回給終端;其中,INITIALIZEFOR LOAD 響應報文由 Data+swl+sw2 組成;只有當INITIALIZE FOR LOAD響應報文中的狀態碼swl和sw2為『9000,時,則 INITIALIZE FOR LOAD命令執行成功,INITIALIZE FOR LOAD響應報文數據域Data中包含 的數據有交易前的CPU電子錢包的餘額、CPU錢包的聯機交易序號、密鑰版本號、算法標識、 偽隨機數和MAC1,若命令執行不成功,則返回給終端的INITIALIZE FOR LOAD響應報文中只 含有狀態碼swl和sw2,且狀態碼swl和sw2不為『9000』。步驟122 接收終端發送的圈存命令CREDIT FOR LOAD,讀取CREDIT FOR LOAD命 令中的數據並保存;在本實施例中,圈存命令CREDIT FOR LOAD用於圈存交易;其中,CREDIT FOR LOAD命令中的數據具體為交易日期、交易時間和第二報文鑑別 碼 MAC2。步驟123 使用步驟120中生成的過程密鑰來驗證上述MAC2是否有效,若無效,則 執行步驟124,若有效,則執行步驟125 ;在本實施例中,驗證MAC2是否有效的方法,具體為將交易金額、交易類型標識、終端機編號、交易日期和交易時間順序連結,然後使 用步驟120中生成的過程密鑰對連結得到的數據進行加密,再比較加密後得到的數據的前 四個字節與CREDIT FOR LOAD命令數據域中的MAC2是否相同,若不相同,則MAC2無效,若 相同,則MAC2有效。步驟124 返回狀態碼0x9302給終端,提示MAC2無效,終止執行圈存操作,然後返 回到步驟116 ;
步驟125 將CPU電子錢包的聯機交易序號加1,將交易金額加到CPU電子錢包的 餘額上;在本實施例步驟125中,將交易金額加到CPU電子錢包的餘額上的方法,具體為查找應用文件ADF的地址;根據應用文件ADF查找ADF下的CPU電子錢包文件的地址;根據查找得到的CPU電子錢包文件的地址和預先設定的CPU電子錢包的餘額的偏移量來計算用於存儲CPU電子錢包的餘額的地址;讀取上述計算得到的用於存儲CPU電子錢包的餘額的地址所指向的存儲區中 數據,將交易金額與讀取得到的數據相加,並用相加得到的數據覆蓋上述計算得到的用於存儲CPU電子錢包的餘額的地址所指向的存儲區中的數據,將此相加得到的數據作為CPU 電子錢包新的餘額。步驟126 更新CPU電子錢包的交易明細;在本實施例中,需要更新的CPU電子錢包的交易明細具體為交易金額、交易類型標識、終端編號、交易日期和交易時間,具體地,CPU卡將交易金額、交易類型標識、終端編 號、交易日期和交易時間順序連結組成一個記錄以便更新。步驟127 獲得Ml的扇區密鑰;在本實施例中,預先約定存儲Ml電子錢包的餘額的扇區號和塊號,並根據該預先約定的扇區號來獲取Ml的扇區密鑰,其中獲得Ml的扇區密鑰的方法具體為調用API接口函數 extern WORD GetMifareSectorPassword (BYTE^secPwdBuf, BYTE blockNo)來獲得Ml的扇區密鑰;步驟128 將Ml電子錢包的聯機交易序號加1,並更新Ml電子錢包的餘額,即用步 驟125中更新後的CPU電子錢包的餘額覆蓋Ml電子錢包的餘額;在本實施例中,更新Ml電子錢包的餘額的方法具體為調用API接口函數extern BYTE SetMifarePurseBalance (BYTE^balanceBuf),並利用獲得的扇區密鑰設置Ml電子錢 包的餘額,即用步驟125中更新後的CPU電子錢包的餘額覆蓋Ml電子錢包的餘額;步驟129 更新Ml電子錢包的交易明細;具體地,將步驟126中更新的後CPU電子錢包的交易明細追加到Ml電子錢包的交易明細中;交易明細具體為交易金額、交易類型標識、終端機編號、交易日期和交易時間等。步驟130 用DTK左右8個字節進行異或運算,再利用異或運算得到的結果計算交易驗證碼TAC碼;在本實施例步驟130中,利用異或運算得到的結果計算TAC碼,具體為將交易後的CPU電子錢包的餘額或Ml電子錢包的餘額、加1前的CPU卡的聯機交 易序號、交易金額、交易類型標識、終端機編號、交易日期和交易時間順序連結,再利用異或運算得到的結果對連結得到的數據進行加密,得到的加密後的數據的前四個字節即為TAC碼。步驟131 返回CREDIT FOR LOAD命令的響應報文給終端,交易結束,然後返回到步驟116,其中CREDIT FOR LOAD命令的響應報文包含有TAC碼;步驟132 讀取消費初始化命令INITIALIZE FOR PURCHASE中的數據並保存;
在本實施例中,消費初始化命令INITIALIZE FOR PURCHASE用於初始化消費交 易;並且INITIALIZE FOR PURCHASE命令中的數據具體為密鑰索引號、交易金額和終 端機編號。步驟133 檢查自身是否支持上述INITIALIZE FOR PURCHASE命令中包含的密鑰 索引號,若不支持,則執行步驟134,若支持,則執行步驟135 ; 步驟134:返回狀態碼0x9403給終端,並終止執行消費初始化操作,然後返回到步 驟 116 ;步驟135 讀取CPU電子錢包的餘額,判斷上述INITIALIZE FOR PURCHASE命令中 包含的交易金額的大小是否大於CPU電子錢包的餘額的大小,若是,則執行步驟136,若否, 則執行步驟137 ;在本實施例步驟135中,讀取CPU電子錢包的餘額的方法具體為查找應用文件ADF的地址;應用文件ADF根據查找ADF下的CPU電子錢包文件的地址;根據查找得到的CPU電子錢包文件的地址和預先設定的CPU電子錢包的餘額的偏 移量來計算用於存儲CPU電子錢包的餘額的地址;根據計算得到的用於存儲CPU電子錢包的餘額的地址來讀取CPU電子錢包的餘額。步驟136 返回狀態碼0x9401給終端,並終止執行消費初始化操作,然後返回到步 驟 116 ;步驟137 生成一個偽隨機數和一個過程密鑰;在本實施例中,過程密鑰用於CPU電子錢包或Ml電子錢包的消費交易,過程密鑰 是用密鑰DPK分散得到的。步驟138 發送INITIALIZE FOR PURCHASE命令的響應報文給終端;其中,INITIALIZEFOR PURCHASE 響應報文由 Data+swl+sw2 組成;只有當INITIALIZE FOR PURCHASE命令執行成功時,則CPU卡返回給終端的 INITIALIZE FOR PURCHASE 響應報文中的狀態碼 swl 和 sw2 為 『9000,,且 INITIALIZE FOR PURCHASE響應報文數據域Da ta中包含的數據具體為偽隨機數和CPU電子錢包的脫機交易 序號,若命令執行不成功,則CPU卡返回給終端的INITIALIZE FOR PURCHAS響應報文中只 含有狀態碼swl和sw2,且狀態碼swl和sw2不為『9000』。步驟139 接收終端發送的消費命令DEBIT FOR PURCHASE WITHDRAW,讀取並保存 DEBIT FOR PURCHASE WITHDRAW 命令中的數據;其中,DEBIT FOR PURCHASE WITHDRAW命令中的數據具體為終端交易序號、終端 的交易日期、終端的交易時間和第三鑑別碼MAC3。步驟140 使用步驟137中生成的過程密鑰來驗證DEBIT FOR PURCHASEffITHDRAff 命令中包含的MAC3是否有效,若無效,則執行步驟141,若有效,則執行步驟142 ;在本實施例中,驗證DEBIT FOR PURCHASE WITHDRAW命令中包含的MAC3是否有效 的方法,具體為 將交易金額、交易類型標識、終端機編號、終端的交易日期和終端的交易時間順序連結,用步驟137中生成的過程密鑰對連結得到的數據進行加密,再比較得到的加密後的 數據的前四個字節與DEBIT FOR PURCHASE WITHDRAW命令中包含的MAC3是否相同,若不相 同,則MAC3無效,若相同,則MAC3有效。步驟141 返回狀態碼0x9302給終端,終止交易,然後返回到步驟116 ;步驟142 將CPU電子錢包的脫機交易序號加1,並從CPU電子錢包的餘額中扣減交易金額;在本實施例步驟142中,從CPU電子錢包的餘額中扣減交易金額的方法,具體為查找應用文件ADF的地址;根據應用文件ADF查找ADF下的CPU電子錢包文件的地址;根據查找得到的CPU電子錢包文件的地址和預先設定的CPU電子錢包的餘額的偏 移量來計算用於存儲CPU電子錢包的餘額的地址;讀取上述計算得到的用於存儲CPU電子錢包的餘額的地址所指向的存儲區中的 數據,將讀取得到的數據減去交易金額,並用相減得到的數據覆蓋上述計算得到的用於存 儲CPU電子錢包的餘額的地址所指向的存儲區中的數據,將此相減得到的數據作為CPU電 子錢包新的餘額。步驟143 更新CPU電子錢包的交易明細;在本實施例中,需要更新的CPU電子錢包的相關交易明細具體為交易金額、交易 類型標識、終端編號、交易日期和交易時間,具體地,CPU卡將交易金額、交易類型標識、終端 編號、交易日期和交易時間順序連結組成一個記錄以便更新。步驟144 獲得Ml的扇區密鑰;在本實施例中,預先約定存儲Ml電子錢包的餘額的扇區號和塊號,並根據該預先 約定的扇區號來獲取Ml的扇區密鑰,其中獲得Ml的扇區密鑰的方法具體為調用API接口 函數 extern WORD GetMifareSectorPassword (BYTE^secPwdBuf, BYTE blockNo)獲得 Ml 的 扇區密鑰。步驟145 將Ml電子錢包的脫機交易序號加1,並更新Ml電子錢包的餘額,即用步 驟142中更新後的CPU電子錢包的餘額覆蓋Ml電子錢包的餘額;在本實施例中,更新Ml電子錢包的餘額的方法具體為調用API接口函數extern BYTE SetMifarePurseBalance (BYTE^balanceBuf),並利用步驟314 中獲得的扇區密鑰設置 Ml電子錢包的餘額,即用步驟142中更新後的CPU電子錢包的餘額覆蓋Ml電子錢包的餘 額;步驟146 更新Ml電子錢包的交易明細;具體地,將步驟143中更新的CPU電子錢包的交易明細追加到Ml電子錢包的交易 明細中;交易明細具體為交易金額、交易類型標識、終端機編號、交易日期和交易時間等。步驟147 生成第四報文鑑別碼MAC4 ;在本實施例中,生成第四報文鑑別碼MAC4方法具體為用步驟137中生成的過程密鑰對交易金額進行加密,得到的加密後的數據的前四 個字節即為第四報文鑑別碼MAC4。步驟148 用DTK左右8個字節進行異或運算,並利用異或運算得到的結果來計算交易驗證碼TAC碼;在本實施例中,利用異或運算得到的結果來計算TAC碼的方法具體為將交易金額、交易類型標識、終端機編號、終端交易序號、終端的交易日期和終端的交易時間順序連結,並用異或運算得到的結果對連結得到的數據進行加密,得到的加密 後的數據的前四個字節即為TAC碼。步驟149 返回DEBIT FOR PURCHASE WITHDRAW命令的響應報文給終端,交易結束, 然後返回到步驟116。其中,INITIALIZE FOR PURCHASE響應報文中包含的數據有MAC2和TAC碼。本實施例提供了一種在CPU終端對CPU卡內的CPU電子錢包和Ml電子錢包進行 操作的方法,該方法中對CPU電子錢包和Ml電子錢包進行同步,這樣就保證了 CPU電子錢 包和Ml電子錢包的餘額的一致,就解決了用戶使用該CPU卡在Ml終端非法圈存和/或非 法消費時而造成的CPU電子錢包和Ml電子錢包的餘額的大小不一致的問題;並且在該方法 中當接收到圈存命令時,則CPU卡在CPU終端對CPU卡內的CPU電子錢包和Ml電子錢包進 行圈存,這樣就提高了圈存的安全性;並且在該方法中當接收到消費命令時,則在CPU終端 使用CPU卡內的CPU電子錢包和Ml電子錢包進行消費,即從CPU電子錢包的餘額中扣減相 應的交易金額的同時也從Ml電子錢包的餘額中也扣減相應的交易金額。以上僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則 之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
一種對雙電子錢包進行操作的方法,其特徵在於,所述方法包括CPU卡進入終端的非接觸式感應區內,所述CPU卡上電並初始化;獲取第一電子錢包的餘額;獲取第二電子錢包的餘額;比較所述第一電子錢包和所述第二電子錢包的餘額的大小;若所述第一電子錢包的餘額小於所述第二電子錢包的餘額,則將所述第二電子錢包的餘額設置為與所述第一電子錢包的餘額一致,並進行尋卡操作;若所述第二電子錢包的餘額小於所述第一電子錢包的餘額,則將所述第一電子錢包的餘額設置為與所述第二電子錢包的餘額一致,並進行尋卡操作;若所述第一電子錢包的餘額與所述第二電子錢包的餘額相等,則直接進行尋卡操作。
2.如權利要求1所述的對雙電子錢包進行操作的方法,其特徵在於,所述第一電子錢 包為基於邏輯加密晶片標準的金融應用,並預先約定存儲區在CPU卡的邏輯加密卡區域中 的扇區號和塊號,其中,所述存儲區用於存儲所述第一電子錢包的餘額。
3.如權利要求2所述的對雙電子錢包進行操作的方法,其特徵在於,所述獲取所述第 一電子錢包的餘額的方法,具體為根據所述存儲第一電子錢包的餘額的存儲區在CPU卡的邏輯加密卡區域中的扇區號, 調用函數獲取所述第一電子錢包的扇區密鑰;根據所述獲取的扇區密鑰和存儲所述第一電子錢包的餘額的存儲區在CPU卡的邏輯 加密卡區域中的塊號,調用函數獲取所述第一電子錢包的餘額。
4.如權利要求1所述的對雙電子錢包進行操作的方法,其特徵在於,所述第二電子錢 包為使用ISO 14443接口協議實現的符合銀行標準的電子錢包。
5.如權利要求2所述的對雙電子錢包進行操作的方法,其特徵在於,所述獲取第二電 子錢包的餘額的方法,具體為查找應用文件的地址;根據所述應用文件查找所述應用文件下的第二電子錢包文件的地址; 根據所述查找得到的第二電子錢包文件的地址和預先設定的第二電子錢包的餘額的 偏移量來計算用於存儲所述第二電子錢包的餘額的地址;根據所述計算得到的用於存儲所述第二電子錢包的餘額的地址來讀取所述第二電子 錢包的餘額; 或者,預先約定所述CPU卡內的存儲空間中存儲所述第二電子錢包的餘額的地址,從所述預 先約定的存儲空間中讀取用於存儲所述第二電子錢包的餘額的地址; 根據所述讀取得到的地址來讀取所述第二電子錢包的餘額。
6.如權利要求1所述的對雙電子錢包進行操作的方法,其特徵在於,所述將第二電子 錢包的餘額設置為與所述第一電子錢包的餘額一致的方法,具體為查找應用文件的地址;根據所述應用文件查找所述應用文件下的第二電子錢包文件的地址; 根據所述查找得到的第二電子錢包文件的地址和預先設定的第二電子錢包的餘額的 偏移量計算用於存儲所述第二電子錢包的餘額的地址;將所述計算得到的用於存儲所述第二電子錢包的餘額的地址所指向的存儲區中的數 據清空,並將所述第一電子錢包的餘額寫入所述計算得到的用於存儲所述第二電子錢包的 餘額的地址所指向的存儲區中,作為所述第二電子錢包的新的餘額;或者,從預先約定的存儲空間中讀取用於存儲所述第二電子錢包的餘額的地址;將所述用於存儲第二電子錢包的餘額的地址所指向的存儲區中的數據清空,並將第一 電子錢包的餘額寫入所述用於存儲第二電子錢包的餘額的地址所指向的存儲區中,作為所 述第二電子錢包的新的餘額。
7.如權利要求1所述的對雙電子錢包進行操作的方法,其特徵在於,所述將第二電子 錢包的餘額設置為與所述第一電子錢包的餘額一致後,還包括更新所述第二電子錢包的交易明細;根據所述更新的第二電子錢包的交易明細的條數將所述第二電子錢包的聯機交易序 號加上相應的值,其中所述相應的值與所述條數相同。
8.如權利要求1所述的對雙電子錢包進行操作的方法,其特徵在於,所述將第一電子 錢包的餘額設置為與所述第二電子錢包的餘額一致的方法,具體為根據存儲所述第一電子錢包的餘額的存儲區在CPU卡的邏輯加密卡區域中的扇區號, 調用函數獲取所述第一電子錢包的扇區密鑰;根據所述獲取的扇區密鑰和存儲所述第一電子錢包的餘額的存儲區在CPU卡的邏輯 加密卡區域中的塊號,調用函數設置所述第一電子錢包的餘額。
9.如權利要求1所述的對雙電子錢包進行操作的方法,其特徵在於,所述將第一電子 錢包的餘額設置為與所述第二電子錢包的餘額一致之後,還包括更新所述第一電子錢包的交易明細;根據所述更新的第一電子錢包的交易明細的條數將所述第一電子錢包的聯機交易序 號加上相應的值,其中所述相應的值與所述條數相同。
10.如權利要求1所述的對雙電子錢包進行操作的方法,其特徵在於,所述進行尋卡操 作具體為判斷是否接收到尋卡的命令,若否,則繼續等待接收尋卡的命令,若是,則接收喚醒命 令和請求命令;返回應答命令,進行防衝撞處理,並接收終端發來的選擇命令;執行選擇命令,並發送確認信息給終端;接收非接觸式的數據幀。
11.如權利要求1所述的對雙電子錢包進行操作的方法,其特徵在於,所述進行尋卡操 作之後,還包括判斷是否有選擇應答請求命令,若是,則等待接收應用命令,若否,則執行第一電子錢 包應用操作。
12.如權利要求11所述的對雙電子錢包進行操作的方法,其特徵在於,當接收到的所 述應用命令是圈存初始化命令時,所述方法還包括執行圈存初始化操作,返回所述圈存初始化命令的響應報文給終端;接收所述終端發送的圈存命令,對所述第二電子錢包進行圈存,並更新所述第一電子錢包的餘額,返回所述圈存命令的響應報文給終端,圈存交易結束。
13.如權利要求12所述的對雙電子錢包進行操作的方法,其特徵在於,所述執行圈存 初始化操作的步驟,具體為讀取並保存所述圈存初始化命令中的數據,其中所述數據包括密鑰索引號和交易金額;檢查自身是否支持所述密鑰索引號;若不支持,則返回錯誤信息給終端,終止執行圈存初始化操作; 若支持,則生成一個偽隨機數和一個過程密鑰,並用所述過程密鑰計算得到第一報文 鑑別碼。
14.如權利要求12所述的對雙電子錢包進行操作的方法,其特徵在於,所述對第二電 子錢包進行圈存的步驟,具體為讀取並保存所述圈存命令中的數據,其中,所述數據包含第二報文鑑別碼; 使用所述過程密鑰驗證所述第二報文鑑別碼是否有效; 若無效,則返回所述第二報文鑑別碼無效的信息給終端,終止執行圈存操作; 若有效,則將所述交易金額加到所述第二電子錢包的餘額上。
15.如權利要求14所述的對雙電子錢包進行操作的方法,其特徵在於,所述將交易金 額加到所述第二電子錢包的餘額上的方法,具體為查找應用文件的地址;根據所述應用文件查找在所述應用文件下的第二電子錢包文件的地址; 根據所述查找得到的第二電子錢包文件的地址和預先設定的第二電子錢包的餘額的 偏移量計算用於存儲所述第二電子錢包的餘額的地址;讀取所述計算得到的用於存儲所述第二電子錢包的餘額的地址所指向的存儲區中的 數據,將所述交易金額與所述讀取到的數據相加,用所述相加得到的數據覆蓋所述計算得 到的用於存儲所述第二電子錢包的餘額的地址所指向的存儲區中的數據,將所述相加得到 的數據作為所述第二電子錢包新的餘額。
16.如權利要求14所述的對雙電子錢包進行操作的方法,其特徵在於,所述將交易金 額加到所述第二電子錢包的餘額上後,還包括將所述第二電子錢包的聯機交易序號加1 ; 更新所述第二電子錢包的交易明細。
17.如權利要求12所述的對雙電子錢包進行操作的方法,其特徵在於,所述更新第一 電子錢包的餘額,具體為將所述第一電子錢包的餘額設置為與所述第二電子錢包的餘額相 同,包括根據所述存儲第一電子錢包的餘額的存儲區在CPU卡的邏輯加密卡區域中的扇區號, 調用函數獲取所述第一電子錢包的扇區密鑰;根據所述存儲第一電子錢包的餘額的存儲區在CPU卡的邏輯加密卡區域中的塊號,以 及所述扇區密鑰,調用函數設置所述第一電子錢包的餘額,即用所述更新後的第二電子錢 包的餘額覆蓋所述第一電子錢包的餘額。
18.如權利要求12所述的對雙電子錢包進行操作的方法,其特徵在於,所述更新第一 電子錢包的餘額後,還包括將所述第一電子錢包的聯機交易序號加1 ; 更新所述第一電子錢包的交易明細。
19.如權利要求11所述的對雙電子錢包進行操作的方法,其特徵在於,當接收到的所 述應用命令是消費初始化命令時,所述方法還包括執行消費初始化操作,返回所述消費初始化命令的響應報文給終端; 接收所述終端發送的消費命令,使用所述第二電子錢包進行消費,並更新所述第一電 子錢包的餘額,返回所述消費命令的響應報文給終端,消費交易結束。
20.如權利要求19所述的對雙電子錢包進行操作的方法,其特徵在於,所述執行消費 初始化操作的步驟,具體為讀取並保存所述消費初始化命令中的數據,其中,所述數據包括密鑰索引號和交易金額;檢查自身是否支持所述密鑰索引號;若不支持,則返回錯誤信息給終端,終止執行消費初始化操作; 若支持,則讀取所述第二電子錢包的餘額,判斷所述數據中包含的交易金額是否大於 所述第二電子錢包的餘額;若是,則返回錯誤信息給終端,終止執行消費初始化操作; 若否,則生成一個偽隨機數和一個過程密鑰。
21.如權利要求20所述的對雙電子錢包進行操作的方法,其特徵在於,讀取所述第二 電子錢包的餘額的方法,具體為查找應用文件的地址;根據所述應用文件查找在所述應用文件下的第二電子錢包文件的地址; 根據所述查找得到的第二電子錢包文件的地址和預先設定的第二電子錢包的餘額的 偏移量計算用於存儲所述第二電子錢包的餘額的地址;根據所述計算得到的用於存儲所述第二電子錢包的餘額的地址讀取所述第二電子錢 包的餘額。
22.如權利要求19所述的對雙電子錢包進行操作的方法,其特徵在於,所述使用第二 電子錢包進行消費的步驟,具體為讀取並保存所述消費交易命令中的數據,其中,所述數據包含第三報文鑑別碼; 使用所述過程密鑰驗證所述第一報文鑑別碼是否有效; 若無效,則返回所述第一報文鑑別碼無效的信息給終端,終止執行消費操作; 若有效,則從所述第二電子錢包的餘額中扣減所述交易金額。
23.如權利要求22所述的對雙電子錢包進行操作的方法,其特徵在於,從所述第二電 子錢包的餘額中扣減所述交易金額的方法,具體為查找應用文件的地址;根據所述應用文件查找在所述應用文件下的第二電子錢包文件的地址; 根據所述查找得到的第二電子錢包文件的地址和預先設定的第二電子錢包的餘額的 偏移量來計算用於存儲所述第二電子錢包的餘額的地址;讀取所述計算得到的用於存儲所述第二電子錢包的餘額的地址所指向的存儲區中的 數據,將所述讀取到的數據減去所述交易金額,用相減得到的數據覆蓋所述計算得到的用於存儲所述第二電子錢包的餘額的地址所指向的存儲區中的數據,將所述相減得到的數據 作為所述第二電子錢包新的餘額。
24.如權利要求22所述的對雙電子錢包進行操作的方法,其特徵在於,從所述第二電 子錢包的餘額中扣減所述交易金額之後,所述方法還包括將所述第二電子錢包的脫機交易序號加1 ;更新所述第二電子錢包的交易明細。
25.如權利要求19所述的對雙電子錢包進行操作的方法,其特徵在於,所述更新第一 電子錢包的餘額,具體為將所述第一電子錢包的餘額設置為與所述第二電子錢包的餘額相 同,包括根據所述存儲第一電子錢包的餘額的存儲區在CPU卡的邏輯加密卡區域中的扇區號, 調用函數獲取所述第一電子錢包的扇區密鑰;根據所述存儲第一電子錢包的餘額的存儲區在CPU卡的邏輯加密卡區域中的塊號,以 及所述扇區密鑰,調用函數來設置所述第一電子錢包的餘額,即用所述更新後的第二電子 錢包的餘額覆蓋所述第一電子錢包的餘額。
26.如權利要求19所述的對雙電子錢包進行操作的方法,其特徵在於,所述更新所述 第一電子錢包的餘額之後,還包括將所述第一電子錢包的脫機交易序號加1 ;更新所述第一電子錢包的交易明細。
全文摘要
本發明公開了一種對雙電子錢包進行操作的方法,涉及信息安全領域。所述方法包括CPU卡進入終端的非接觸式感應區內,上電並初始化,分別獲取第一電子錢包和第二電子錢包的餘額,比較第一電子錢包的餘額與第二電子錢包的餘額的大小,若第一電子錢包的餘額小於第二電子錢包的餘額,則將第二電子錢包的餘額設置為與第一電子錢包的餘額一致,並進行尋卡操作;若第二電子錢包的餘額小於第一電子錢包的餘額,則將第一電子錢包的餘額設置為與第二電子錢包的餘額一致,並進行尋卡操作;若第一電子錢包的餘額與第二電子錢包的餘額相等,則進行尋卡操作。
文檔編號G07F7/08GK101799955SQ20091023787
公開日2010年8月11日 申請日期2009年11月20日 優先權日2009年11月20日
發明者於華章, 陸舟 申請人:北京飛天誠信科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀