專利名稱:一種智能卡數據存、取過程中的校驗方法及智能卡的制作方法
技術領域:
本發明涉及智能卡領域,尤其涉及一種智能卡數據存、取過程中的校驗方法及智能卡。
背景技術:
目前,對智能卡數據完整性的保護和驗證主要集中在卡外實體和卡片的數據通信過程中,即線路保護。在通信過程中,卡外實體用通信雙方事先協商好的密鑰對要傳輸的數據計算一個MAC (消息驗證碼)值,然后將數據本身和MAC值一起通過APDU (應用協議數據單元)的命令格式傳遞給卡片。卡片在接收完成之后,用同一密鑰對數據進行MAC計算,之后和卡外實體計算的MAC值進行比較,如果一致,則證明數據在傳遞過程中沒有被篡改,否則認為數據已被篡改,返回數據錯誤狀態字給卡外實體。現有技術標準和規范保證了數據在傳輸過程中的完整性,能夠防止數據在線路上被篡改。卡片在接收到數據之后,會首先將數據存儲在易失性存儲器(例如RAM)中,以便于運算和驗證,然后再將數據寫入非易失性存儲器Gf^BEEPROM)中;下次程序使用該數據時,會直接從非易失性存儲器中讀取該數據到易失性存儲器中,此處稱前述過程為非易失性存儲器中存、取數據的過程。發明人發現數據在向非易失性存儲器中寫入,或從非易失性存儲器中讀取的過程中,若因某種不可知因素導致數據被篡改或者失效,則無法保證數據的真實性和有效性, 這樣非易失性存儲器存、取過程中,數據就有可能失真或無效,讀取到的數據就可能是非法數據,使用非法數據將會給使用該數據的卡片使用者或發卡方帶來風險,造成使用上的損失。
發明內容
本發明實施例提供一種智能卡數據存、取過程中的校驗方法及智能卡,能夠防止非易失性存儲器中存、取數據過程中,數據失真或無效的問題。為達到上述目的,本發明的實施例采用如下技術方案—種智能卡數據存、取過程中的校驗方法,包括對要存儲到非易失性存儲器中的第一數據進行校驗計算,得到第一校驗值;將所述第一數據和第一校驗值存儲到所述非易失性存儲器中;從所述非易失性存儲器中讀取出所述第一數據和第一校驗值,根據所述校驗方法,以及所述第一數據、第一校驗值確定該第一數據是否合法。一種智能卡,包括校驗單元,用于對要存儲到非易失性存儲器中的第一數據進行校驗計算,得到第一校驗值;存儲單元,用于將所述第一數據和第一校驗值存儲到所述非易失性存儲器中;讀取單元,用于從所述非易失性存儲器中讀取出所述第一數據和第一校驗值;
判斷單元,用于根據所述校驗方法,以及所述第一數據、第一校驗值確定該第一數據是否合法。本發明實施例提供的智能卡數據存、取過程中的校驗方法及智能卡,對要存儲到非易失性存儲器中的數據進行校驗計算,得到校驗值;將該數據和校驗值存儲到非易失性存儲器中;從非易失性存儲器中讀取出該數據和校驗值,根據上述校驗方法、數據、校驗值確定該數據是否合法。這樣,通過增加數據向非易失性存儲器的存、取過程中的校驗,有效降低了從非易失性存儲器中讀取到非法數據的可能,從而保證了讀取到的數據的有效性和真實性,防止了因數據非法所導致的用戶使用上的損失。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本發明實施例提供的智能卡數據存、取過程中的校驗方法的流程框圖;圖2為本發明另一實施例提供的智能卡數據存、取過程中的校驗方法的流程框圖;圖3為本發明又一實施例提供的智能卡數據存、取過程中的校驗方法的流程框圖;圖4為本發明實施例提供的智能卡的結構框圖;圖5為本發明實施例提供的智能卡的另一結構框圖;圖6為本發明實施例提供的智能卡的又一結構框圖;圖7為本發明實施例提供的智能卡的再一結構框圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。本發明實施例提供的智能卡數據存、取過程中的校驗方法,如圖1所示,該方法步驟包括S101、對要存儲到非易失性存儲器中的第一數據進行校驗計算,得到第一校驗值。具體的,本步驟可以由卡外實體進行,即卡外實體對要存儲到智能卡非易失性存儲器中的第一數據進行經校驗計算,得到第一校驗值,再將該第一數據和第一校驗值發送給智能卡。也可以由卡內的CPU進行,此時智能卡從卡外實體接收到要存儲到非易失性存儲器中的第一數據后,對該第一數據進行校驗計算,得到第一校驗值。具體的校驗方法,本發明實施例不做限制,任何現有的可用于智能卡的校驗方法均可,可以根據安全等級自由選擇。例如異或校驗、循環冗余檢驗等,或者是在卡內存儲一個密鑰(該密鑰可以和數據在卡內外傳輸時使用的密鑰相關,也可以不相關)對該數據進行MAC計算,得到校驗值等等。S102、將第一數據和第一校驗值存儲到非易失性存儲器中。S103、從非易失性存儲器中讀取出第一數據和第一校驗值,根據校驗方法,以及第一數據、第一校驗值確定該第一數據是否合法。具體的,對于確定從非易失性存儲器中讀取的第一數據書否合法,可以有兩種判斷方式一種是,利用上述步驟SlOl采用的校驗方法對從非易失性存儲器中讀取的第一數據進行檢驗計算,得到第二校驗值。若該第二校驗值與從非易失性存儲器中讀取的第一校驗值相等,則確定該第一數據合法。另一種是,利用上述步驟SlOl采用的校驗方法的反校驗方法對從非易失性存儲器中讀取的第一校驗值進行反校驗計算,得到第二數據。若該第二數據與從非易失性存儲器中讀取的第一數據相等,則確定該第一數據合法。當然,本發明實施例所用的上述判斷方法只是舉例,本發明實施例并不限于此,其他的利用數據和校驗值的判斷數據是否合法的方法也可以。本發明實施例提供的智能卡數據存、取過程中的校驗方法,對要存儲到非易失性存儲器中的數據進行校驗計算,得到校驗值;將該數據和校驗值存儲到非易失性存儲器中; 從非易失性存儲器中讀取出該數據和校驗值,根據上述校驗方法、數據、校驗值確定該數據是否合法。這樣,通過增加數據向非易失性存儲器的存、取過程中的校驗,有效降低了從非易失性存儲器中讀取到非法數據的可能,從而保證了讀取到的數據的有效性和真實性,防止了因數據非法所導致的用戶使用上的損失。本發明另一實施例提供的智能卡數據存、取過程中的校驗方法,非易失性存儲器以EEPR0M(電可擦可編程只讀存儲器)為例,進行校驗計算處理的主體假設是智能卡的 CPU,所采用的校驗方法為用密鑰進行MAC計算。其方法步驟如圖2所示,包括S201、智能卡接收卡外實體發送的要存儲到智能卡非易失性存儲器中的第一數據。S202、智能卡的CPU利用卡內存儲的密鑰,對該第一數據進行MAC計算,得到第一校驗值。S203、智能卡將該第一數據和第一校驗值存入EEPROM中。S204、智能卡從EEPROM中讀取該第一數據和第一校驗值。S205、智能卡的CPU利用上述卡內存儲的密鑰對該第一數據再次進行如步驟S202 的MAC計算,得到第二校驗值。S206、智能卡判斷第二校驗值和第一校驗值是否相等,若二者相等則執行步驟 S207,若二者不相等則執行步驟S208。S207、智能卡繼續后續處理流程。S208、智能卡重復進行讀取、確定數據是否合法,并判斷重復進行的次數是否已達到預設的上限值。若未達到,則執行步驟S204,若已達到,則執行步驟S209。在此,可以預先設置一個重復次數的上限值。通過這種有限次的重復判斷,既可以防止因偶發因素導致的數據合法性的一次判斷錯誤,也可以通過限制次數節省智能卡的處理時間。
S209、智能卡中止處理流程,返回錯誤狀態給卡外實體。本發明實施例提供的智能卡數據存、取過程中的校驗方法,對要存儲到EEPROM中的第一數據利用智能卡自有密鑰進行MAC計算,得到第一校驗值;將該第一數據和第一校驗值存儲到EEPROM中;從EEPROM中讀取出該第一數據和第一校驗值,再次利用自有密鑰對該第一數據進行MAC計算,得到第二校驗值;若第二校驗值與第一校驗值相等,則確定該數據合法。這樣,通過增加數據向EEPROM的存、取過程中的校驗,有效降低了從EEPROM中讀取到非法數據的可能,從而保證了讀取到的數據的有效性和真實性,防止了因數據非法所導致的用戶使用上的 損失。本發明又一實施例提供的智能卡數據存、取過程中的校驗方法,非易失性存儲器以EEPR0M(電可擦可編程只讀存儲器)為例,進行校驗計算處理的主體假設是智能卡的 CPU,所采用的校驗方法為用密鑰進行MAC計算。其方法步驟如圖3所示,包括S301、智能卡接收卡外實體發送的要存儲到智能卡非易失性存儲器中的第一數據。S302、智能卡的CPU利用卡內存儲的密鑰,對該第一數據進行MAC計算,得到第一校驗值。S303、智能卡將該第一數據和第一校驗值存入EEPROM中。S304、智能卡從EEPROM中讀取該第一數據和第一校驗值。S305、智能卡的CPU利用上述卡內存儲的密鑰,用步驟S302的MAC計算的反校驗方法對第一校驗值進行反校驗計算,得到第二數據。S306、智能卡判斷第二數據和第一數據是否相等,若二者相等則執行步驟S307,若二者不相等則執行步驟S308。S307、智能卡繼續后續處理流程。S308、智能卡重復進行讀取、確定數據是否合法,并判斷重復進行的次數是否已達到預設的上限值。若未達到,則執行步驟S304,若已達到,則執行步驟S309。在此,可以預先設置一個重復次數的上限值。通過這種有限次的重復判斷,既可以防止因偶發因素導致的數據合法性的一次判斷錯誤,也可以通過限制次數節省智能卡的處理時間。S309、智能卡中止處理流程,返回錯誤狀態給卡外實體。本發明實施例提供的智能卡數據存、取過程中的校驗方法,對要存儲到EEPROM中的第一數據利用智能卡自有密鑰進行MAC計算,得到第一校驗值;將該第一數據和第一校驗值存儲到EEPROM中;從EEPROM中讀取出該第一數據和第一校驗值,利用自有密鑰對該第一校驗值進行MAC計算的反校驗計算,得到第二數據;若第二數據與第一數據相等,則確定該數據合法。這樣,通過增加數據向EEPROM的存、取過程中的校驗,有效降低了從EEPROM 中讀取到非法數據的可能,從而保證了讀取到的數據的有效性和真實性,防止了因數據非法所導致的用戶使用上的損失。當然,本實施例所采用的校驗方法只是舉例,本發明實施例并不限于此,其他任何智能卡可應用的利用數據和校驗值的判斷均可。本發明實施例提供的智能卡40,如圖4所示,該智能卡包括校驗單元401,用于對要存儲到非易失性存儲器中的第一數據進行校驗計算,得到第一校驗值。在此,具體的校驗方法本發明實施例不做限制,任何現有的可用于智能卡的校驗方法均可,可以根據安全等級自由選擇。例如異或校驗、循環冗余檢驗等,或者是在卡內存儲一個密鑰(該密鑰可以和數據在卡內外傳輸時使用的密鑰相關,也可以不相關)對該數據進行MAC計算,得到校驗值等等。存儲單元402,用于將第一數據和第一校驗值存儲到非易失性存儲器中。讀取單元403,用于從非易失性存儲器中讀取出該第一數據和第一校驗值。判斷單元404,用于根據上述校驗方法,以及第一數據、第一校驗值確定該第一數據是否合法。本發明實施例提供的智能卡,對要存儲到非易失性存儲器中的數據進行校驗計算,得到校驗值;將該數據和校驗值存儲到非易失性存儲器中;從非易失性存儲器中讀取出該數據和校驗值,根據上述校驗方法、數據、校驗值確定該數據是否合法。這樣,通過增加數據向非易失性存儲器的存、取過程中的校驗,有效降低了從非易失性存儲器中讀取到非法數據的可能,從而保證了讀取到的數據的有效性和真實性,防止了因數據非法所導致的用戶使用上的損失。進一步地,如圖5所示,該智能卡40還包括重復讀取單元405,用于若確定第一數據非法,則重復從非易失性存儲器中讀取該第一數據和第一校驗值。判斷單元404,用于根據上述校驗方法,以及第一數據、第一校驗值確定該第一數據是否合法,若重復次數達到預設的上限值且仍確定該第一數據非法,則停止后續處理。在此,可以預先設置一個重復次數的上限值。通過這種有限次的重復判斷,既可以防止因偶發因素導致的數據合法性的一次判斷錯誤,也可以通過限制次數節省智能卡的處理時間。如圖6所示,該判斷單元404包括校驗模塊4041,用于利用校驗時的校驗方法對第一數據進行檢驗計算,得到第二校驗值。比對模塊4042,用于比對該第二校驗值和第一校驗值,若第二校驗值與所述第一校驗值相等,則確定該第一數據合法。或者,如圖7所示,該判斷單元404包括反校驗模塊4041',用于利用校驗時的校驗方法的反校驗方法對第一校驗值進行反校驗計算,得到第二數據。比對模塊4042,用于比對該第二數據和第一數據,若第二數據與第一數據相等,則確定該第一數據合法。以上所述,僅為本發明的具體實施方式
,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應以所述權利要求的保護范圍為準。
權利要求
1.一種智能卡數據存、取過程中的校驗方法,其特征在于,包括對要存儲到非易失性存儲器中的第一數據進行校驗計算,得到第一校驗值; 將所述第一數據和第一校驗值存儲到所述非易失性存儲器中; 從所述非易失性存儲器中讀取出所述第一數據和第一校驗值,根據所述校驗方法,以及所述第一數據、第一校驗值確定該第一數據是否合法。
2.根據權利要求1所述的方法,其特征在于,對要存儲到非易失性存儲器中的第一數據進行校驗計算,得到第一校驗值包括卡外實體對要存儲到智能卡非易失性存儲器中的第一數據進行校驗計算,得到第一校驗值,并將所述第一數據和第一校驗值發送給智能卡。
3.根據權利要求1所述的方法,其特征在于,對要存儲到非易失性存儲器中的第一數據進行校驗計算,得到第一校驗值包括智能卡從卡外實體接收到要存儲到非易失性存儲器中的第一數據后,對所述第一數據進行校驗計算,得到第一校驗值。
4.根據權利要求1-3任一所述的方法,其特征在于,從所述非易失性存儲器中讀取出所述第一數據和第一校驗值,根據所述校驗計算方法,以及所述第一數據、第一校驗值確定該第一數據是否合法包括從所述非易失性存儲器中讀取出所述第一數據和第一校驗值; 利用所述校驗方法對所述第一數據進行檢驗計算,得到第二校驗值; 若所述第二校驗值與所述第一校驗值相等,則確定該第一數據合法。
5.根據權利要求1-3任一所述的方法,其特征在于,從所述非易失性存儲器中讀取出所述第一數據和第一校驗值,根據所述校驗計算方法,以及所述第一數據、第一校驗值確定該第一數據是否合法包括從所述非易失性存儲器中讀取出所述第一數據和第一校驗值; 利用所述校驗方法的反校驗方法對所述第一校驗值進行反校驗計算,得到第二數據; 若所述第二數據與所述第一數據相等,則確定該第一數據合法。
6.根據權利要求1所述的方法,其特征在于,所述方法還包括若確定所述第一數據非法,則重復從所述非易失性存儲器中讀取所述第一數據和第一校驗值并確定所述第一數據是否合法,若重復次數達到預設的上限值且仍確定所述第一數據非法,則停止后續處理。
7.一種智能卡,其特征在于,包括校驗單元,用于對要存儲到非易失性存儲器中的第一數據進行校驗計算,得到第一校驗值;存儲單元,用于將所述第一數據和第一校驗值存儲到所述非易失性存儲器中; 讀取單元,用于從所述非易失性存儲器中讀取出所述第一數據和第一校驗值; 判斷單元,用于根據所述校驗方法,以及所述第一數據、第一校驗值確定該第一數據是否合法。
8.根據權利要求7所述的智能卡,其特征在于,所述智能卡還包括重復讀取單元,用于若確定所述第一數據非法,則重復從所述非易失性存儲器中讀取所述第一數據和第一校驗值;所述判斷單元,用于根據所述校驗方法,以及所述第一數據、第一校驗值確定該第一數據是否合法,若重復次數達到預設的上限值且仍確定所述第一數據非法,則停止后續處理。
9.根據權利要求7或8所述的智能卡,其特征在于,所述判斷單元包括校驗模塊,用于利用所述校驗方法對所述第一數據進行檢驗計算,得到第二校驗值; 比對模塊,用于比對所述第二校驗值和所述第一校驗值,若所述第二校驗值與所述第一校驗值相等,則確定該第一數據合法。
10.根據權利要求7或8所述的智能卡,其特征在于,所述判斷單元包括反校驗模塊,用于利用所述校驗方法的反校驗方法對所述第一校驗值進行反校驗計算,得到第二數據;比對模塊,用于比對所述第二數據和所述第一數據,若所述第二數據與所述第一數據相等,則確定該第一數據合法。
全文摘要
本發明實施例提供一種智能卡數據存、取過程中的校驗方法及智能卡,涉及智能卡領域,能夠防止非易失性存儲器中存、取數據過程中,數據失真或無效的問題。該方法包括對要存儲到非易失性存儲器中的第一數據進行校驗計算,得到第一校驗值;將所述第一數據和第一校驗值存儲到所述非易失性存儲器中;從所述非易失性存儲器中讀取出所述第一數據和第一校驗值,根據所述校驗方法,以及所述第一數據、第一校驗值確定該第一數據是否合法。本發明實施例用于智能卡的應用。
文檔編號G06F21/00GK102156828SQ20111002693
公開日2011年8月17日 申請日期2011年1月25日 優先權日2011年1月25日
發明者羅迎, 虞濤 申請人:北京握奇數據系統有限公司