專利名稱:安全修改存儲器卡上記錄的數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及當(dāng)通過讀卡器進(jìn)行交易時修改靈巧卡中存儲的部分?jǐn)?shù)據(jù)記錄的系統(tǒng),并且更具體地涉及在利用讀出器交易期間安全修改靈巧卡中記錄的數(shù)據(jù)的方法。
背景技術(shù):
也稱為芯片卡的靈巧卡日益增加地作為和持卡人關(guān)聯(lián)的數(shù)據(jù)的載體。這些卡包括非接觸式卡,對于它們信息的交換是通過卡中的天線和相關(guān)讀出器之間的不接觸電磁耦合進(jìn)行的,這種卡已開發(fā)成對受控進(jìn)入?yún)^(qū)的進(jìn)入卡或者用于電子錢包。
靈巧卡通常采用非易失性、可擦和可重寫EEPROM或閃速EPROM型存儲器,從而數(shù)據(jù)保持寫在存儲器中即使關(guān)掉該存儲器時。通過擦除一個或數(shù)個存儲器單元并且寫入新數(shù)據(jù),它們還允許更新已記錄的數(shù)據(jù)。
有可能在交易期間由于意外中斷電源,通常由于“突然抽出”卡即在處理操作結(jié)束之前移動卡,破壞存儲器,這造成未記錄新數(shù)據(jù)情形下丟失較早的數(shù)據(jù)。對于卡能正確工作的空間限制不明顯的非接觸型卡,這種風(fēng)險尤其大。
在非易失性EEPROM型存儲器的情況下存在附加的風(fēng)險,對于這種存儲器如果在正常結(jié)束之前中斷寫操作可能仍然寫數(shù)據(jù),從而在寫操作后的短期內(nèi)可以正確地讀數(shù)據(jù)。但是,如果在較晚的時刻重復(fù)讀不能肯定可以正確完成,因為由于過早地中斷寫操作存儲單元中的信息留置會是不充足的。
為了確保數(shù)據(jù)完整性,希望通過保證數(shù)據(jù)處于修改狀態(tài)或者處于修改前的狀態(tài)但是決不處于由于“突然抽出”造成的不確定中間狀態(tài)對卡防止這些風(fēng)險。
出于交易安全的原因,如果交易過程期間斷電必須在存在如果不從該交易的起點重新開始可能不能挽回地丟失敏感數(shù)據(jù)(例如電子購物的收支余額)的風(fēng)險的情況下重新啟動整個交易。
響應(yīng)上面詳述的問題,考慮過在進(jìn)行修改前把數(shù)據(jù)記錄存儲到緩沖存儲器中。一旦對要修改的那些記錄完成所有的修改,從該緩存存儲器中擦掉這些舊記錄。
遺憾的是,對于每個記錄該方法要求一次保存到緩沖區(qū)的操作,一次擦掉要修改的記錄的操作,一次重寫操作以及一次在緩沖區(qū)中擦掉舊記錄的操作,總共四次操作。從而這樣的操作具有耗時的缺點,對于非接觸式卡這是一個大缺點。
另外,在擦掉較早的數(shù)據(jù)之前把數(shù)據(jù)保持到存儲器的另一個單元中要求存在一個“標(biāo)志”,以便根據(jù)標(biāo)志值指示是否正確進(jìn)行修改操作。該標(biāo)志可以是單個位,其根據(jù)是否正確修改取0或1的值。迄今尚未想到在和數(shù)據(jù)相同的位置記錄檢驗位的明顯原因,唯一的辦法是把標(biāo)志(檢驗位或位組)記錄在為此目的保留的存儲器單元中,并且當(dāng)單個位或幾個位足夠時其由16或32位的整塊構(gòu)成。
當(dāng)在某些只需要低容量存儲器的應(yīng)用中使用靈巧卡從而其中不允許浪費存儲器中的位置并且其中每次交易中修改的數(shù)據(jù)的值在時間上是單值函數(shù)時,上面提到的缺點甚至更加重要。在這些應(yīng)用中,存儲器數(shù)據(jù)記錄或者是例如用于照片復(fù)制機(jī)按時遞增的遞增計數(shù)器,或者是每次乘坐記錄值遞減一個單位的公共交通卡情況中的遞減計數(shù)器或用于卡的值只會減少的電子購物卡。
發(fā)明內(nèi)容
從而本發(fā)明的目的在于實現(xiàn)一種在靈巧卡的交易期間用于修改數(shù)據(jù)的方法,其中該修改是在和卡交易期間受限制的訪問時間相容的最小時間內(nèi)完成的。
本發(fā)明的另一個目的是實現(xiàn)一種不必在存儲器單元中保存檢驗位組(標(biāo)志)的用于在非接觸式靈巧卡中修改數(shù)據(jù)的方法。
從而本發(fā)明的目的是一種用于在包括靈巧卡等和讀出器的卡交易系統(tǒng)中修改數(shù)據(jù)的方法,其中該讀出器能在卡相對于讀出器位于確定位置時讀取該卡,該卡包含一個非易失性、可擦和可重寫存儲器,該存儲器包括至少一個單元用來記錄和該卡完成的交易相關(guān)的數(shù)據(jù)值,每次交易造成對該數(shù)據(jù)值的修改,該數(shù)據(jù)值在時間上是一個單調(diào)函數(shù)。在每次交易中,數(shù)據(jù)值寫操作完成把新數(shù)據(jù)值寫到該存儲器中形成一個計數(shù)器的二個預(yù)定義單元的第一單元中,該寫操作完成對記錄在該第二單元中的舊數(shù)據(jù)值的擦除,從而,在正確完成寫操作時第一單元含有新數(shù)據(jù)值而第二單元含有零值。
通過參照附圖閱讀下面的說明本發(fā)明的目標(biāo)、目的和優(yōu)點會變得更清楚,附圖中圖1示意表示其中實現(xiàn)依據(jù)本發(fā)明的方法的靈巧卡的存儲器,圖2示意表示該存儲器的雙等級(tier)計數(shù)器在寫操作的每個階段中的內(nèi)容,圖3示意表示在突然抽出后的第一情況下靈巧卡的用于重寫操作的每個階段的雙等級計數(shù)器,圖4示意表示在突然抽出后的第二情況下靈巧卡的用于重寫操作的每個階段的雙等級計數(shù)器,圖5示意表示在突然抽出后的第三情況下靈巧卡的用于重寫操作的每個階段的雙等級計數(shù)器,圖6示意表示在突然抽出后的第四情況下靈巧卡的用于重寫操作的每個階段的雙等級計數(shù)器,以及圖7示意表示在突然抽出后的第五情況下靈巧卡的用于重寫操作的每個階段的雙等級計數(shù)器。
具體實施例方式
在要求少量存儲器的應(yīng)用中使用的帶有有線邏輯存儲器的芯片型卡中,存儲器單元是有限的。從而,這種如圖1中示出的芯片卡的存儲器是容量為32個16位字的EEPROM型存儲器。下面說明的本發(fā)明允許在該存儲器中省出保留整個字所需的檢驗區(qū)。為此,在每次讀出器和靈巧卡之間進(jìn)行交易記錄新數(shù)據(jù)值時保留二個形成一個雙等級(等級A,等級B)計數(shù)器的存儲器單元。
在其中每次交易修改的數(shù)據(jù)值是時間單調(diào)函數(shù)的所有應(yīng)用中可有益地使用本發(fā)明的原理。在一些情況下(例如用于照相復(fù)制的卡)記錄值遞增,而在另一應(yīng)用例如進(jìn)入受控進(jìn)入?yún)^(qū)或電子錢包時數(shù)據(jù)值減小。但是,最好遞增而不是遞減計數(shù)器。事實上,當(dāng)存在突然抽出時,存在寫到存儲器的各個位不正確留置的風(fēng)險。在此情況下,由于每個位1可以改變成0,記錄值可能減小。如果采用遞減,在不正確寫入的值減小下,這種減小構(gòu)成一種持卡人不能知道存儲器中的值是存儲器內(nèi)容的正常遞減還是異常減小的結(jié)果。相反,當(dāng)采用遞增時,只要在突然抽出后存在不正確記錄值的減小時,把該值看成是遞增前的前一個值,存儲器的減小就不存在風(fēng)險。
在遞減的情況下,每次考慮數(shù)據(jù)值的二進(jìn)制2的補(bǔ)數(shù)是方便的。從而隨后每次交易數(shù)據(jù)值遞增,和所涉及的應(yīng)用無關(guān)。
依據(jù)本發(fā)明的方法包括在含有值0的計數(shù)器等級中記錄受到修改的新的數(shù)據(jù)值,并且擦除該計數(shù)器的另一等級以把該等級的值置為0。這二個不能顛倒的階段在交易時由來自讀出器的寫新值的指令觸發(fā)。
圖2示出這種操作的正常過程。開始時,讀該計數(shù)器使值X出現(xiàn)在等級A中并使值0出現(xiàn)在等級B中。接著寫指令進(jìn)行把新值Y寫在等級B中,接著從等級A擦掉值X。這樣,在一條指令下該計數(shù)器遞增。
遺憾的是,在交易期間可以發(fā)生突然抽出卡,尤其當(dāng)芯片卡是非接觸式卡時。在此情況下不正確地進(jìn)行寫操作,從而不正確地完成新值的寫或者不擦掉舊值。在此情況下,交易是不成功的或者是無效的。其后果可能是不批準(zhǔn)打開進(jìn)入受控進(jìn)入?yún)^(qū)的門或者在電子錢包情況下不允許零售終端的購買。
從而持卡人重新開始使他/她的卡在讀出器中或前面通過的操作。它首先進(jìn)行對該計數(shù)器的讀取,計數(shù)器指示二等級中的任一等級的值都不是0。這立即推斷出存在過突然抽出并且然后如下面說明那樣進(jìn)行修復(fù)該計數(shù)器。
圖3至7示出存在突然抽出的情況下根據(jù)該突然抽出是否在寫階段期間、寫和擦階段之間或在擦階段期間出現(xiàn)而進(jìn)行的計數(shù)器修復(fù)操作。
圖3示出第一情況,在寫階段期間發(fā)生突然抽出,其中已經(jīng)寫入值Y但尚未擦掉值X。在此情況下,盡管值Y是正確的,但是不能保證該值在等級B中的留置。從而在進(jìn)行從等級A把值X擦除成0之前重新寫入值Y。注意對一存儲單元的寫是該單元中的值和新值之間的“或”函數(shù),從而僅當(dāng)舊值等于0或者和該新值相同(本例為此情況)時才能寫新值。
圖4中示出第二情況,在寫階段期間發(fā)生突然抽出,其中在等級B中寫入X和Y之間的值Y′而未從等級A擦掉值X。在此情況下,進(jìn)行在等級B重新寫入Y′和從等級A擦掉X的第一寫操作,接著進(jìn)行把Y寫到等級A中和從等級B擦掉Y′的寫操作,從而該計數(shù)器重新處于一等級含有新值而另一等級為0的正常狀態(tài)。
圖5中示出第三情況,在寫階段發(fā)生突然抽出,其中在等級B中寫入比X小的值Y′并且未擦掉值X。在此情況下,進(jìn)行把值X重寫到等級A中并且從等級B擦掉Y′的第一重寫操作。這是因為,計數(shù)器的修復(fù)總是對最高值(本情況中為值X)進(jìn)行。接著,進(jìn)行把值Y寫入等級B和從等級A擦掉X的寫操作。
圖6中示出第四情況,在寫階段和擦階段之間發(fā)生突然抽出,值Y已記錄到等級B中但值X尚未從等級A擦除。由于不能保證值Y的留置,進(jìn)行把值Y重新寫到等級B中以及從等級A擦掉值X的重寫操作。
圖7中示出第五情況,在擦階段發(fā)生突然抽出,值Y已寫到等級B中但值X尚未正確擦出并在等級A中找到值X′。從而必須進(jìn)行等級B中值Y的重寫操作從而能從等級A擦掉值X′。
在上面說明的所有情況中,由于二個等級都不含有值0,進(jìn)行計數(shù)器的修復(fù),并且在修復(fù)后二個等級中的一等級含有新數(shù)據(jù)值而另一等級含有0。應(yīng)注意,任何情況下計數(shù)器不再存在等級A或等級B中找到的最大值小于舊值(X)的狀態(tài)。
權(quán)利要求
1.一種用于在包括靈巧卡等和讀出器的卡交易系統(tǒng)中修改數(shù)據(jù)的方法,其中所述讀出器能在卡相對于所述讀出器位于確定位置時讀取所述卡,所述卡包含一個非易失性、可擦和可重寫存儲器,該存儲器包括至少一個單元用來記錄和通過所述卡執(zhí)行的交易相關(guān)的數(shù)據(jù)值,每次交易引起對所述數(shù)據(jù)值的修改,所述數(shù)據(jù)值在時間上是單調(diào)函數(shù),所述方法特征在于,在每次交易中,寫所述數(shù)據(jù)值的操作執(zhí)行把新數(shù)據(jù)值(Y)寫到所述存儲器中形成一個計數(shù)器的兩個預(yù)定義單元的第一單元(B)中,所述寫操作執(zhí)行對記錄在所述兩個單元的第二單元(A)的舊數(shù)據(jù)值(X)的擦除,從而,在正確完成所進(jìn)行的寫操作時所述第一單元含有所述新數(shù)據(jù)值而所述第二單元含有為零的值。
2.根據(jù)權(quán)利要求1所述的方法,其中每次寫操作時遞增所述兩個單元中的一個單元(A或B)中記錄的數(shù)據(jù)值。
3.根據(jù)權(quán)利要求2所述的方法,其中由于交易過程中所述卡的突然抽出,不能正確進(jìn)行所述寫操作,從而所述計數(shù)器的兩個等級都不具有等于零的值,該交易無效。
4.根據(jù)權(quán)利要求2所述的方法,還包括當(dāng)在所述新值的寫階段期間發(fā)生突然抽出時,通過進(jìn)行把所述新值(Y)重寫到所述第一單元(B)以及從所述第二單元(A)擦掉所述舊值(X)的重寫操作,修復(fù)所述計數(shù)器。
5.根據(jù)權(quán)利要求2所述的方法,還包括當(dāng)所述第一單元(B)含有所述舊數(shù)據(jù)值(X)和所述新數(shù)據(jù)值(Y)之間的不正確值(Y′)時,通過進(jìn)行在所述第一單元中重寫所述不正確的值和從所述第二單元擦除所述舊值的重寫操作、并且接著進(jìn)行在所述第二單元(A)寫所述新值和從所述第一單元擦掉所述不正確值的寫操作,來修復(fù)所述計數(shù)器。
6.根據(jù)權(quán)利要求2所述的方法,還包括,當(dāng)所述第一單元(B)含有小于所述舊值(X)的不正確數(shù)據(jù)值(Y′)時,通過進(jìn)行在所述第二單元(A)中重寫所述舊數(shù)據(jù)值(X)和擦除所述不正確數(shù)據(jù)值的重寫操作、并且接著進(jìn)行在所述第一單元寫入所述新數(shù)據(jù)值(Y)和從所述第二單元擦掉所述舊數(shù)據(jù)值的寫操作,來修復(fù)所述計數(shù)器。
7.根據(jù)權(quán)利要求2所述的方法,還包括,當(dāng)在所述新數(shù)據(jù)值的寫階段和所述舊數(shù)據(jù)值的擦除階段之間發(fā)生突然抽出時,通過進(jìn)行在所述第一單元(B)中重寫所述新數(shù)據(jù)值(Y)和從所述第二單元(A)擦掉所述舊數(shù)據(jù)值(X)的重寫操作,來修復(fù)所述計數(shù)器。
8.根據(jù)權(quán)利要求2所述的方法,還包括,當(dāng)在所述舊數(shù)據(jù)值(X)的擦除階段發(fā)生突然抽出并且在所述第二單元(A)中記錄不正確數(shù)據(jù)值(X′)時,通過進(jìn)行在所述第一單元(B)中重寫所述新數(shù)據(jù)值(Y)和從所述第二單元擦掉所述不正確的數(shù)據(jù)值,來修復(fù)所述計數(shù)器。
9.一種包括靈巧卡等和讀出器的卡交易系統(tǒng),其中所述讀出器能在卡相對于所述讀出器位于確定位置內(nèi)時讀所述卡,所述卡包含一個非易失性、可擦和可重寫存儲器,該存儲器包括至少一個單元用來記錄和通過所述卡執(zhí)行的交易相關(guān)的數(shù)據(jù)值,每次交易引起對所述數(shù)據(jù)值的修改,所述數(shù)據(jù)值在時間上是單調(diào)函數(shù),所述系統(tǒng)特征在于,所述存儲器包括形成一個計數(shù)器的第一預(yù)定義單元和第二預(yù)定義單元,每次交易產(chǎn)生一條在所述第一單元(B)中寫入新數(shù)據(jù)值(Y)和從所述第二單元(A)擦掉舊數(shù)據(jù)值(X)的寫指令,從而寫操作結(jié)束時,所述第一單元含有所述新數(shù)據(jù)值而所述第二單元含有為零的值。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述靈巧卡是非接觸式卡。
全文摘要
本發(fā)明涉及一種修改由存儲器卡和適于讀該卡的讀出器構(gòu)成的卡交易系統(tǒng)中的數(shù)據(jù)的方法,該卡包含一個非易失性、可擦和可重寫存儲器,該存儲器包括至少一個單元來記錄和通過所述卡完成的交易相關(guān)的數(shù)據(jù)值。每次交易造成時間上是單調(diào)函數(shù)的數(shù)據(jù)值的修改。每次交易下,數(shù)據(jù)值寫操作把新數(shù)據(jù)值(Y)寫到形成一個計數(shù)器的二個預(yù)定義存儲器單元中的第一單元(B)中,該寫操作擦掉第二單元(A)中記錄的先前數(shù)據(jù)值,從而正確完成該寫操作時第一單元包含新值而第二單元包含為零的值。
文檔編號G07F7/08GK1757048SQ200380105592
公開日2006年4月5日 申請日期2003年12月12日 優(yōu)先權(quán)日2002年12月12日
發(fā)明者尼古拉斯·龐戈 申請人:Ask股份有限公司