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