在智能卡的非易失性存儲(chǔ)器中寫入數(shù)據(jù)的制作方法
【專利摘要】本發(fā)明尤其涉及適用于在智能卡的非易失性存儲(chǔ)器中寫入數(shù)據(jù)的方法。本發(fā)明還涉及能夠?qū)嵤┰摲椒ǖ闹悄芸捌溆?jì)算機(jī)程序、包括該計(jì)算機(jī)程序的存儲(chǔ)介質(zhì)以及包括智能卡和能夠在該卡中進(jìn)行寫入的設(shè)備的系統(tǒng)。
【專利說明】在智能卡的非易失性存儲(chǔ)器中寫入數(shù)據(jù)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及在智能卡的非易失性存儲(chǔ)器中寫入數(shù)據(jù)。
【背景技術(shù)】
[0002]智能卡通常都包括非易失性存儲(chǔ)器和易失性存儲(chǔ)器。
[0003]“非易失性存儲(chǔ)器”是一種能夠在無需外部電力的情況下存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器。非易失性存儲(chǔ)器可為可編程的(例如EEPROM存儲(chǔ)器,flash存儲(chǔ)器等)或不可編程的(例如ROM存儲(chǔ)器,其內(nèi)容是一次性定義的且在制造時(shí)就已經(jīng)決定的)。可編程非易失性存儲(chǔ)器常用于存儲(chǔ)隨智能卡改變而變化的數(shù)據(jù)或者應(yīng)用程序,例如包括不同目錄和子目錄的文件系統(tǒng)、具有卡片持有者特定數(shù)據(jù)(名字、聯(lián)系人信息等)的文件、Java卡的小應(yīng)用程序等。智能卡具有容量典型值約為8KB至256KB的可編程非易失性存儲(chǔ)器(通常為EEPR0M)。不可編程非易失性存儲(chǔ)器常用于存儲(chǔ)操作系統(tǒng),以及(更多地)用于存儲(chǔ)不太可能隨著智能卡改變而變化的數(shù)據(jù)。智能卡一般具有約為64KB至512KB容量的ROM。當(dāng)然,也可以采用其他種類的RAM,EEPROM或ROM。一些智能卡使用flash存儲(chǔ)器來代替ROM和EEPROM兩者。
[0004]“易失性”存儲(chǔ)器(例如RAM存儲(chǔ)器)是當(dāng)外部電源中斷對(duì)其供電時(shí)便會(huì)丟失其內(nèi)容的存儲(chǔ)器。一般來說,易失性存儲(chǔ)器要比非易失性存儲(chǔ)器快得多,尤其是寫入操作。例如,寫入EERPOM或flash存儲(chǔ)器一般要比寫入RAM慢得多。易失性存儲(chǔ)器用于例如在軟件執(zhí)行期間存儲(chǔ)暫時(shí)數(shù)據(jù)(狀態(tài)變量,計(jì)算結(jié)果等)。智能卡一般都包括RAM存儲(chǔ)器,其容量通常介于2KB和8KB之間。該大部分RAM通常是由變量(尤其是卡片操作系統(tǒng)所使用的)和不同的應(yīng)用程序所占據(jù)。部分RAM通常由緩沖區(qū)(buffer)所占據(jù),其大小通常為幾百字節(jié)并專用于接收命令。
[0005]智能卡一般不允許外部部件通過絕對(duì)尋址的方式對(duì)任何存儲(chǔ)器進(jìn)行寫入操作。相反,智能卡一般可提供接口(例如IS07816-4接口),外部部件可通過該接口發(fā)送命令至卡片(包括讀取或?qū)懭朊?。該命令可在緩沖區(qū)中接收??ㄆ旧碡?fù)責(zé)執(zhí)行所接收到的命令,并且它可選擇處理它們或者拒絕處理它們,禁止某些訪問,使某些訪問需要認(rèn)證等。根據(jù)IS07816-4標(biāo)準(zhǔn)的T = O協(xié)議,該協(xié)議是最為普通的協(xié)議,該命令包含五個(gè)字節(jié)(類字節(jié),指令字節(jié),以及三個(gè)參數(shù)字節(jié)P1,P2和P3),后面可選地跟隨著數(shù)據(jù)(例如所要寫入卡片的數(shù)據(jù))。任意這種數(shù)據(jù)的長(zhǎng)度通常由字節(jié)P3指定,并因此不超過255個(gè)字節(jié)(加上前面的5個(gè)字節(jié))可一次發(fā)送。然而,這需要至少260字節(jié)的緩沖區(qū)。其他變型和其他協(xié)議同樣存在(例如T = I協(xié)議,在理論上它可以一條命令來發(fā)送和接收多達(dá)64KB的數(shù)據(jù))。
[0006]假設(shè)緩沖區(qū)的大小相當(dāng)小,并在T = O協(xié)議的限定下,通常就不能將非常長(zhǎng)的指令發(fā)送至卡片。如果要將多于255個(gè)字節(jié)寫入卡片上的文件中(T = O),則該數(shù)據(jù)通常要?jiǎng)澐譃檩^小的子集(例如具有255字節(jié)的數(shù)據(jù)塊),并且發(fā)送與數(shù)據(jù)塊的塊數(shù)一樣多的寫入命令。
[0007]例如,可以使用UPDATE BINARY命令(IS07816-4標(biāo)準(zhǔn)的指令0xD6),它允許寫入所謂的“透明(transparent)”文件。這是一種EF (基本文件)類型的文件,它可通過指定目標(biāo)(在0x0000,表示文件的起始位置,和對(duì)應(yīng)于文件大小并減去至少一個(gè)字節(jié)的地址之間,如果你想要修改文件的最后一個(gè)字節(jié))進(jìn)行寫入。然而,這不僅需要發(fā)送部件計(jì)算數(shù)據(jù)子集(255字節(jié)的塊),還需要發(fā)送部件計(jì)算目標(biāo)文件中各個(gè)數(shù)據(jù)塊所要寫入的地址,這是不切實(shí)際的。
[0008]已知的還有使用UPDATE RECORD命令(IS07816-4標(biāo)準(zhǔn)的指令OxDC),這允許創(chuàng)建一個(gè)包括多個(gè)記錄的EF文件且其中各個(gè)記錄都由索引標(biāo)識(shí)。各個(gè)記錄都有可能具有不同的大小(取決于卡片)。然而,這需要計(jì)算記錄索引,這是不切實(shí)際的。此外,有時(shí)需要寫入一種大小的數(shù)據(jù)塊(例如11字節(jié)的數(shù)據(jù)塊),然而讀取另一種大小的數(shù)據(jù)塊(例如13字節(jié)的數(shù)據(jù)塊);在這種情況下,記錄文件的結(jié)構(gòu)就顯得非常不切實(shí)際的,這是因?yàn)橐x取的數(shù)據(jù)分布在多個(gè)記錄和記錄部分之間。
[0009]已知的還有使用I3UT DATA命令(IS07816-4標(biāo)準(zhǔn)的指令OxDA)。該標(biāo)準(zhǔn)規(guī)定:根據(jù)所選擇的對(duì)象(PUT DATA命令要寫入的),有可能執(zhí)行“寫入一次(writing once) ”操作或“升級(jí)”操作或“追加”操作。然而,在該標(biāo)準(zhǔn)中沒有指定“追加”操作的過程。
【發(fā)明內(nèi)容】
[0010]本發(fā)明旨在改進(jìn)該狀況。
[0011]本發(fā)明的一方面涉及一種在智能卡的非易失性存儲(chǔ)器中寫入數(shù)據(jù)的方法,包括:
[0012]/a/在智能卡的易失性存儲(chǔ)器的緩沖區(qū)中接收寫入命令,
[0013]/b/通過智能卡比較與寫入命令相關(guān)聯(lián)的目標(biāo)標(biāo)識(shí)參數(shù)和存儲(chǔ)在智能卡非易失性存儲(chǔ)器中的目標(biāo)標(biāo)識(shí)參數(shù),
[0014]/c/如果比較是肯定的,則:
[0015]/Cl/將嵌入在寫入命令中所要寫入的數(shù)據(jù)從緩沖區(qū)以存儲(chǔ)在非易失性存儲(chǔ)器中的預(yù)定地址寫入至與該寫入命令相關(guān)聯(lián)的目標(biāo),
[0016]/c2/計(jì)算對(duì)應(yīng)于存儲(chǔ)的預(yù)定地址和寫入數(shù)據(jù)大小之和的地址,
[0017]/c3/將計(jì)算得到的地址存儲(chǔ)在非易失性存儲(chǔ)器中替代預(yù)定地址,
[0018]/d/如果比較是否定的,則:
[0019]/dl/將嵌入在寫入命令中所要寫入的數(shù)據(jù)從緩沖區(qū)以默認(rèn)地址寫入至與該寫入命令相關(guān)聯(lián)的目標(biāo),
[0020]/d2/計(jì)算對(duì)應(yīng)于默認(rèn)地址和寫入數(shù)據(jù)大小之和的地址,
[0021]/d3/將計(jì)算得到的地址存儲(chǔ)在非易失性存儲(chǔ)器中作為預(yù)定地址。
[0022]該方法的優(yōu)點(diǎn)在于,它提供了一種在智能卡中寫入大量數(shù)據(jù)的簡(jiǎn)單方式。它允許將長(zhǎng)度大于緩沖區(qū)大小的數(shù)據(jù)以及超過T = O協(xié)議限定的255字節(jié)限制的數(shù)據(jù)寫入卡片,同時(shí)無需部件發(fā)送數(shù)據(jù)來計(jì)算地址或索引。這尤其適用于在諸如“match-on-card”技術(shù)的生物計(jì)量技術(shù)中使用卡片,以允許卡片自身來驗(yàn)證生物計(jì)量數(shù)據(jù)。確實(shí),生物計(jì)量數(shù)據(jù)(例如指紋或面部識(shí)別數(shù)據(jù))可以非常龐大,高達(dá)幾KB。
[0023]本發(fā)明的一方面涉及一種包含一系列指令的計(jì)算機(jī)程序,當(dāng)它被智能卡的處理器執(zhí)行時(shí)可實(shí)施根據(jù)本發(fā)明一方面的方法。
[0024]本發(fā)明的一方面涉及一種適用于存儲(chǔ)根據(jù)本發(fā)明一方面的計(jì)算機(jī)程序的非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
[0025]本發(fā)明的一方面涉及一種智能卡,它包括非易失性存儲(chǔ)器,易失性存儲(chǔ)器、包含在易失性存儲(chǔ)器中的緩沖區(qū),以及用于處理寫入非易失性存儲(chǔ)器的寫入命令的電路,該電路設(shè)置為處理存儲(chǔ)在緩沖區(qū)中的命令,所述命令與標(biāo)識(shí)存儲(chǔ)在非易失性存儲(chǔ)器中的目標(biāo)的參數(shù)相關(guān)聯(lián)且寫入非易失性存儲(chǔ)器中,所述電路設(shè)置為將標(biāo)識(shí)存儲(chǔ)在非易失性存儲(chǔ)器中的目標(biāo)的參數(shù)和該目標(biāo)內(nèi)的預(yù)定地址存儲(chǔ)在非易失性存儲(chǔ)器中,該電路設(shè)置為當(dāng)處理寫入命令時(shí)比較與寫入命令相關(guān)聯(lián)的目標(biāo)標(biāo)識(shí)參數(shù)與存儲(chǔ)在非易失性存儲(chǔ)器中的目標(biāo)標(biāo)識(shí)參數(shù),以及,如果比較是肯定的,則將嵌入在寫入命令中所要寫入的數(shù)據(jù)從緩沖區(qū)以存儲(chǔ)在非易失性存儲(chǔ)器中的預(yù)定地址寫入至與寫入命令相關(guān)聯(lián)的目標(biāo),計(jì)算對(duì)應(yīng)于存儲(chǔ)的預(yù)定地址和寫入數(shù)據(jù)大小之和的地址,并將計(jì)算得到的地址存儲(chǔ)在非易失性存儲(chǔ)器中替代預(yù)定地址,該電路設(shè)置為,如果比較是否定的,則將嵌入在寫入命令中所要寫入的數(shù)據(jù)從緩沖區(qū)以默認(rèn)地址寫入至與寫入命令相關(guān)聯(lián)的目標(biāo),計(jì)算對(duì)應(yīng)于默認(rèn)地址和寫入數(shù)據(jù)大小之和的地址,并將計(jì)算得到的地址存儲(chǔ)在非易失性存儲(chǔ)器中作為預(yù)定地址。
[0026]本發(fā)明的一方面涉及包括電子設(shè)備和根據(jù)本發(fā)明一方面的智能卡的系統(tǒng),該電子設(shè)備設(shè)置為將要通過該設(shè)備寫入智能卡的數(shù)據(jù)劃分為子集,使得各個(gè)子集的大小最多等于預(yù)定值,構(gòu)建一組與卡片的同一目標(biāo)相關(guān)的寫入命令,各個(gè)寫入命令包括各自所要寫入的數(shù)據(jù)子集,并將以此方式構(gòu)建的各個(gè)寫入命令發(fā)送至卡片。
[0027]通過以非限制的方式對(duì)某些實(shí)施例的描述,本發(fā)明的其他特征、目標(biāo)和優(yōu)點(diǎn)將變得明顯。
【專利附圖】
【附圖說明】
[0028]通過參考下述附圖有助于更好地理解本發(fā)明,其中:
[0029]圖1圖示了實(shí)施根據(jù)本發(fā)明一個(gè)實(shí)施例的方法的六個(gè)連續(xù)步驟;
[0030]圖2圖示了包括便攜式計(jì)算機(jī)、連接至該計(jì)算機(jī)的智能卡讀取器以及根據(jù)本發(fā)明一個(gè)實(shí)施例的智能卡的系統(tǒng);
[0031]圖3示意性地圖示了根據(jù)本發(fā)明一個(gè)實(shí)施例的智能卡的架構(gòu)。
【具體實(shí)施方式】
[0032]一個(gè)可能的實(shí)施例涉及一種在智能卡的非易失性存儲(chǔ)器(例如EEPROM或flash存儲(chǔ)器)中寫入數(shù)據(jù)的方法。該方法包括接收寫入命令。該命令可能為例如格式為10S7816-4標(biāo)準(zhǔn)的PUT DATA命令的命令,然而以下文指定的方式在功能上進(jìn)行修改。可能的是對(duì)此寫入命令使用不同于10S7816-4標(biāo)準(zhǔn)中為指令碼INS所指定的數(shù)值OxDA或OxDB (例如未使用的指令碼),以便允許使用常用的PUT DATA命令。該接收寫入的命令因此可包括包含諸如命令類型(在根據(jù)10S7816-4標(biāo)準(zhǔn)的命令的情況下它的指令碼INS)的不同的參數(shù)的報(bào)頭以及所要寫入的數(shù)據(jù)。此命令從卡片的外部部件(例如銀行終端、移動(dòng)電話、或連接至計(jì)算機(jī)的智能卡讀取器)接收在智能卡易失性存儲(chǔ)器(例如RAM)的緩沖區(qū)中。尤其是,它可能通過智能卡的I/O接口(例如使用由10S7816-3標(biāo)準(zhǔn)指定的I/O觸點(diǎn))來接受。
[0033]該方法包括通過智能卡來比較與寫入命令相關(guān)聯(lián)的目標(biāo)標(biāo)識(shí)參數(shù)和存儲(chǔ)在智能卡非易失性存儲(chǔ)器中的目標(biāo)標(biāo)識(shí)參數(shù)。該命令因此可與卡片的某些目標(biāo)相關(guān)聯(lián),例如一 EF文件。這一關(guān)聯(lián)的效果在于該命令將其所包含的數(shù)據(jù)寫入與其相關(guān)聯(lián)目標(biāo)中。根據(jù)本發(fā)明一個(gè)實(shí)施例,存儲(chǔ)在非易失性存儲(chǔ)器中的目標(biāo)標(biāo)識(shí)參數(shù)可標(biāo)識(shí)由另一(寫入)命令所指向?qū)懭胫悄芸ǖ纳弦荒繕?biāo)。該另一命令是相同類型的命令,例如它具有相同的指令碼,這意味著與10S7816-4標(biāo)準(zhǔn)所定義的INS字節(jié)相同,區(qū)別僅在于例如其參數(shù)(例如T = O協(xié)議中定義的參數(shù)P1,P2和P3)和數(shù)據(jù)(在T = O協(xié)議的情況下為該命令第五字節(jié)之后的字節(jié))。當(dāng)該卡片作初始化時(shí)(例如在卡片首次使用或者無論何時(shí)它連接至電源期間),都有可能將作為存儲(chǔ)在非易失性存儲(chǔ)器中的目標(biāo)標(biāo)識(shí)參數(shù)的默認(rèn)值進(jìn)行保存,該默認(rèn)值可對(duì)應(yīng)于任意可能目標(biāo)(例如零值,或?yàn)榇巳我夂蛻T常選擇的任何其他值)。因此,在默認(rèn)值和與寫入命令相關(guān)聯(lián)的目標(biāo)標(biāo)識(shí)參數(shù)之間的比較必然為否定的。
[0034]如果比較為肯定的,這意味著寫入命令試圖寫入與相同類型的上一寫入命令寫入的目標(biāo)相同的目標(biāo),該方法可執(zhí)行下述步驟。
[0035]第一步驟包括將所要寫入的數(shù)據(jù)(它包含在寫入命令中)從緩沖區(qū)(在接收到寫入命令后它們作為寫入命令的一部分存儲(chǔ)至該緩沖區(qū))以存儲(chǔ)在非易失性存儲(chǔ)器中的預(yù)定地址寫入至與該寫入命令相關(guān)聯(lián)的目標(biāo)。因此,該卡片可從非易失性存儲(chǔ)器中讀取該預(yù)定地址的數(shù)值,然后以預(yù)定地址寫入至目標(biāo)。此預(yù)定地址優(yōu)選為該目標(biāo)內(nèi)部的相對(duì)地址。因此,該卡片可寫入等于目標(biāo)地址(表示為絕對(duì)地址)和預(yù)定地址之和的絕對(duì)地址。當(dāng)然,該卡片可執(zhí)行安全機(jī)制,以確保寫入操作發(fā)生于相關(guān)目標(biāo)的內(nèi)部(例如通過檢查等于預(yù)定地址和所要寫入的數(shù)據(jù)大小之和減去I的地址確實(shí)位于該目標(biāo)內(nèi)部)。
[0036]第二步驟包括計(jì)算對(duì)應(yīng)于存儲(chǔ)的預(yù)定地址和寫入數(shù)據(jù)大小之和的地址。該地址對(duì)應(yīng)于緊隨上一寫入字節(jié)之后的地址。
[0037]第三步驟包括將計(jì)算得到的地址存儲(chǔ)在非易失性存儲(chǔ)器中替代預(yù)定地址。這樣,假設(shè)相同類型的這一命令與同一目標(biāo)相關(guān)聯(lián),且緊接著剛剛寫入的數(shù)據(jù)進(jìn)行寫入,那么對(duì)相同類型的寫入命令的下一次調(diào)用,無需部件(例如移動(dòng)電話)負(fù)責(zé)構(gòu)建和發(fā)送需要存儲(chǔ)前一地址或計(jì)算新地址的寫入命令。
[0038]如果比較為否定的,這意味著寫入命令所要寫入的目標(biāo)與調(diào)用的相同類型的上一寫入命令所寫入的目標(biāo)不同,或者如果這一類型的寫入命令被首次調(diào)用,則該方法可執(zhí)行下述步驟。
[0039]第一步驟包括將嵌入在寫入命令中所要寫入的數(shù)據(jù)從緩沖區(qū)以默認(rèn)地址寫入至與該寫入命令相關(guān)聯(lián)的目標(biāo)。該默認(rèn)地址有利地為該目標(biāo)內(nèi)的相對(duì)地址。然后,卡片可寫入至等于目標(biāo)的地址(表示為絕對(duì)地址)和默認(rèn)地址之和的絕對(duì)地址。當(dāng)然,該卡片可執(zhí)行安全機(jī)制,以確保寫入操作發(fā)生在相關(guān)目標(biāo)的內(nèi)部(例如通過檢查等于默認(rèn)地址和所要寫入數(shù)據(jù)的大小之和減I的地址確實(shí)位于目標(biāo)內(nèi)部)。
[0040]第二步驟包括計(jì)算對(duì)應(yīng)于目標(biāo)地址和寫入數(shù)據(jù)大小之和的地址。該地址對(duì)應(yīng)于緊隨上一寫入字節(jié)之后的地址。
[0041]第三步驟包括將計(jì)算得到的地址存儲(chǔ)在非易失性存儲(chǔ)器中作為預(yù)定地址。這樣,假設(shè)相同類型的這一命令與相同目標(biāo)相關(guān)聯(lián),且緊接著剛剛寫入的數(shù)據(jù)進(jìn)行寫入,那么相同類型的寫入命令的下一次調(diào)用,無需部件(例如移動(dòng)電話)負(fù)責(zé)構(gòu)建和發(fā)送需要存儲(chǔ)前一地址或計(jì)算新地址的寫入命令。
[0042]一個(gè)可能的實(shí)施例涉及一種將與寫入命令關(guān)聯(lián)的目標(biāo)標(biāo)識(shí)參數(shù)嵌入在寫入命令中的方法。這樣,能夠例如使用參數(shù)Pl和P2來存儲(chǔ)目標(biāo)(例如IS07816-4標(biāo)準(zhǔn)中所定義的基本文件EF)的標(biāo)識(shí)符(文件ID,簡(jiǎn)稱為FID,如IS07816-4標(biāo)準(zhǔn)中定義的那樣)。例如,如果該命令基于IS07816-4標(biāo)準(zhǔn)中定義的UPDATE BINARY命令,參數(shù)Pl和P2,它們應(yīng)該表示所要寫入的目標(biāo)的內(nèi)部地址,就不再需要并用標(biāo)識(shí)要寫入的目標(biāo)的文件ID替代。
[0043]一個(gè)可能的實(shí)施例涉及將與寫入命令相關(guān)聯(lián)的目標(biāo)標(biāo)識(shí)參數(shù)存儲(chǔ)在易失性存儲(chǔ)器中并通過智能卡的目標(biāo)選擇命令進(jìn)行更新的方法。例如,有可能使用IS07816-4標(biāo)準(zhǔn)所定義的SELECT命令(對(duì)于指令碼INS它使用值0xA4)以選擇下一寫入命令所自動(dòng)寫入的EF,而無需進(jìn)行明確指出它所要寫入的目標(biāo)寫入命令。
[0044]一個(gè)可能的實(shí)施例涉及一種默認(rèn)地址是零地址的方法。因此,每次根據(jù)本發(fā)明一個(gè)實(shí)施例的寫入命令寫入至目標(biāo)且當(dāng)所調(diào)用的相同類型的上一寫入命令(如果存在)寫入至另一目標(biāo)時(shí),以及每次該類型的寫入命令被首次調(diào)用(例如在特定會(huì)話中的首次或者將卡片連接至電源之后的首次或者自從制造出卡片算起的真正首次),該方法寫入零地址。很顯然,這是相對(duì)于所討論的目標(biāo)的零地址并且它對(duì)應(yīng)于該目標(biāo)的起始。
[0045]作為選擇的,有可能使用不同于零的默認(rèn)地址。例如,如果通過根據(jù)本發(fā)明一個(gè)實(shí)施例的寫入命令所要寫入的目標(biāo)的結(jié)構(gòu)使得只有特定的地址可被寫入,并且其不位于該目標(biāo)的起始位置(它包含例如由卡片本身所管理的管理數(shù)據(jù)),有可能使用該目標(biāo)內(nèi)的有效地址作為默認(rèn)值。
[0046]當(dāng)默認(rèn)值對(duì)所有目標(biāo)共用并當(dāng)該方法通過軟件實(shí)現(xiàn)時(shí),該值可存儲(chǔ)在實(shí)際代碼中(該代碼例如可存儲(chǔ)在ROM中)。
[0047]默認(rèn)地址可隨著目標(biāo)類型的不同而改變(例如,卡片根據(jù)每個(gè)目標(biāo)類型來存儲(chǔ)不同的默認(rèn)地址)。這種情況下,例如,不同的默認(rèn)值可以表格的形式存儲(chǔ)在ROM中。如果它們能夠改變或者如果卡片開發(fā)者不能夠預(yù)測(cè)所使用的目標(biāo)的類型,則它們可以表格形式存儲(chǔ)在EEPROM或flash存儲(chǔ)器中。目標(biāo)的類型可為,例如:存儲(chǔ)指紋的透明EF文件,存儲(chǔ)面部識(shí)別數(shù)據(jù)的透明EF文件,存儲(chǔ)數(shù)據(jù)的透明EF文件,存儲(chǔ)位置的透明EF文件,存儲(chǔ)地理地址的透明EF文件(例如街道號(hào),街道名,城市,國(guó)家)等。可以看出,目標(biāo)類型并不一定(雖然可能)對(duì)應(yīng)于文件類型(例如IS07816-4 “透明EF”文件類型),而是可以對(duì)應(yīng)于更低一級(jí)的細(xì)分,該細(xì)分對(duì)應(yīng)于這些文件的內(nèi)容,所述細(xì)分并不按照智能卡操作系統(tǒng)的定義,而是依照使用智能卡的部件的定義。這種情況下,在EEPROM或flash存儲(chǔ)器中的表格一般就更為合適。
[0048]對(duì)于默認(rèn)值來說,還有可能與各個(gè)特定目標(biāo)相關(guān)聯(lián)(即,對(duì)于各個(gè)目標(biāo)實(shí)例來說,這意味著相同類型的兩個(gè)不同目標(biāo)可與兩個(gè)不同的默認(rèn)值相關(guān)聯(lián))。因此,包含指紋的兩個(gè)透明的EF文件可與不同的默認(rèn)值相關(guān)聯(lián)。在創(chuàng)建目標(biāo)時(shí),該默認(rèn)值可設(shè)置為零(或其它數(shù)值,這取決于目標(biāo)的類型,如上述段落所述),然后可進(jìn)行更新。默認(rèn)值可存儲(chǔ)于目標(biāo)內(nèi)或與目標(biāo)一起存儲(chǔ)在可重復(fù)寫入的非易失性存儲(chǔ)器(例如EEPROM或flash存儲(chǔ)器)中。在一個(gè)可能的實(shí)施例中,智能卡僅存儲(chǔ)一個(gè)預(yù)定數(shù)值,并不考慮目標(biāo)的數(shù)量。每次根據(jù)本發(fā)明一個(gè)實(shí)施例的寫入命令寫入新目標(biāo)(意味著該目標(biāo)并不是由相同類型的上一命令執(zhí)行時(shí)所寫入的目標(biāo)或?yàn)槌跏嫉哪繕?biāo))時(shí),對(duì)預(yù)定值進(jìn)行重新初始化。在這種情況下,更新指定目標(biāo)所存儲(chǔ)的默認(rèn)值可以通過拷貝與該目標(biāo)相關(guān)聯(lián)的預(yù)定值來實(shí)現(xiàn),以便將預(yù)定值用作默認(rèn)值。因此,如果外部的部件使用相同類型的寫入命令來寫入第一目標(biāo)、寫入第二目標(biāo),然后再次寫入第一目標(biāo),則它在最初寫入的位置之后寫入第一目標(biāo),不會(huì)覆蓋最初的寫入值。在智能卡對(duì)默認(rèn)值實(shí)施自動(dòng)更新的情況下,有利的是在卡片內(nèi)部提供重新初始化默認(rèn)值的命令,它例如可賦予在創(chuàng)建目標(biāo)時(shí)所賦予的數(shù)值。因此,有可能通過根據(jù)本發(fā)明一個(gè)實(shí)施例的寫入命令,替換之前使用根據(jù)本發(fā)明一個(gè)實(shí)施例的寫入命令寫入至目標(biāo)的數(shù)據(jù)。
[0049]一個(gè)可能的實(shí)施例涉及一種將命令編碼為根據(jù)IS07816-4標(biāo)準(zhǔn)的APDU命令的方法。寫入命令可為APDU命令,并且選擇命令也可為APDU命令(根據(jù)IS07816-4標(biāo)準(zhǔn)它可以為SELECT命令)。用于重新初始化默認(rèn)值的命令,如果存在的話,也可為APDU命令。
[0050]圖1圖示了根據(jù)本發(fā)明一個(gè)實(shí)施例的方法的重復(fù)使用。根據(jù)本發(fā)明一個(gè)實(shí)施例,讀取器RDR發(fā)送第一寫入命令WRITE (FID_1,DATA_1)至智能卡SC。智能卡第一次接收到WRITE指令,并寫入具有標(biāo)識(shí)符FID_1的文件。因此,它將數(shù)據(jù)DATA_1寫入文件的起始位置。讀取器發(fā)送第二寫入命令WRITE (FID_1,DATA_2)至智能卡。然后,該卡片在數(shù)據(jù)DATA_1后寫入數(shù)據(jù)DATA_2。讀取器發(fā)送第三寫入命令WRITE (FID_1,DATA_3)至智能卡。然后,該卡片在數(shù)據(jù)DATA_2后寫入數(shù)據(jù)DATA_3。讀取器發(fā)送第四寫入命令WRITE (FID_2,DATA_4)至智能卡。該卡片檢測(cè)它已經(jīng)接收到命令以寫入與剛才寫入的文件不同的文件。因此,它將數(shù)據(jù)DATA_4寫入具有標(biāo)識(shí)符FID_2的文件的起始位置。讀取器發(fā)送第五寫入命令WRITE (FID_2,DATA_5)至智能卡。然后,該卡片將數(shù)據(jù)DATA_5寫入在具有標(biāo)識(shí)符FID_2的文件中數(shù)據(jù)DATA_4之后。讀取器發(fā)送第六寫入命令WRITE (FID_1,DATA_6)至智能卡。該卡片檢測(cè)它已經(jīng)接收到命令以寫入與剛才寫入的文件不同的文件。它查詢具有標(biāo)識(shí)符FID_1的文件的默認(rèn)地址,該默認(rèn)地址通過對(duì)所述文件的先前寫入進(jìn)行更新,因此,它在數(shù)據(jù)DATA_3后寫入數(shù)據(jù)DATA_6。
[0051]該操作尤其有利于支持多任務(wù)處理的設(shè)備上運(yùn)行多個(gè)應(yīng)用并且這些應(yīng)用可發(fā)送寫入命令至卡片。卡片然后可交替寫入不同的文件,并且設(shè)備上的應(yīng)用無需擔(dān)心文件組織的細(xì)節(jié)或者計(jì)算寫入的地址。在一種極端的情況下,無需彼此相互間通信的多種應(yīng)用可能需要在智能卡上寫入同一文件,例如記錄事件發(fā)生的日志文件。所有應(yīng)用都不能由它自身來確定它應(yīng)當(dāng)寫入新事件的地址。
[0052]在另一實(shí)施例中(未示出),智能卡包含兩個(gè)空目標(biāo)(01和02)。該方法包括接收連續(xù)的寫入命令(例如用于寫入下述生物計(jì)量數(shù)據(jù)Dl至D7):
[0053]Write (01, Dl),
[0054]Write (01, D2),
[0055]Write (01, D3),
[0056]Write (02, D4),
[0057]Write (02, D5),
[0058]Write(01,D6),然后
[0059]Write (01,D7)。
[0060]然后,數(shù)據(jù)Dl,D2和D3在目標(biāo)01中并置,而目標(biāo)02仍然是空的,然后數(shù)據(jù)D4和D5在目標(biāo)02中并置(數(shù)據(jù)Dl,D2和D3仍在目標(biāo)01中),以及最后目標(biāo)01的數(shù)據(jù)Dl,D2和D3被丟失(覆蓋),數(shù)據(jù)D6和D7在目標(biāo)01中并置替代數(shù)據(jù)Dl至D3。一旦目標(biāo)改變(例如當(dāng)FID改變時(shí)),那么寫入就位于新選擇目標(biāo)的起始位置并且覆蓋舊數(shù)據(jù)。如果數(shù)據(jù)Dl至D3的并置長(zhǎng)于數(shù)據(jù)D6和D7的并置,則剩余部分在物理上仍留在智能卡的存儲(chǔ)器中(在D7數(shù)據(jù)之后),而在邏輯方面來看它不被認(rèn)為存在于目標(biāo)Ol中。例如,目標(biāo)01可包括指示其當(dāng)前大小的參數(shù)(在本示例中對(duì)應(yīng)于數(shù)據(jù)D6和D7的并置的大小),并且超出此大小的存儲(chǔ)的任意信息都可被忽略。不刪除剩余部分減少了非易失性存儲(chǔ)器中寫入操作的次數(shù)(刪除是一種形式的寫入),這可能特別有利于更快的處理(更少的寫入操作)或者延長(zhǎng)非易失性存儲(chǔ)器的壽命(每次寫入操作都會(huì)使存儲(chǔ)器退化,存儲(chǔ)器僅能保證確保一定次數(shù)的寫入周期)。
[0061]一個(gè)可能的實(shí)施例涉及一種通過諸如移動(dòng)電話、銀行終端等的電子設(shè)備在智能卡的非易失性存儲(chǔ)器中寫入數(shù)據(jù)的方法。
[0062]該方法包括通過電子設(shè)備將要寫入的數(shù)據(jù)劃分為子集。這些子集中的各個(gè)子集的大小最多等于預(yù)定值。根據(jù)一個(gè)實(shí)施例,該值可定義為例如可以一個(gè)寫入命令發(fā)送所要寫入的數(shù)據(jù)的最大量,該寫入命令的大小等于在智能卡的易失性存儲(chǔ)器中的緩沖區(qū)的大小(接收該命令)和命令的最大大小(例如,在T = O中寫入命令最多為260字節(jié),因此,能夠發(fā)送不超過255字節(jié))之間的最小值。
[0063]例如,用于驗(yàn)證生物計(jì)量護(hù)照(這是一種特定形式的智能卡)的終端能夠捕獲聲稱為護(hù)照持有者的人員的指紋(例如在機(jī)場(chǎng)的邊境管制處)并將它劃分成連續(xù)的255字節(jié)分段。如果以字節(jié)表示的指紋大小不是255的倍數(shù),則在分段中的至少一個(gè)分段會(huì)較小,例如最后分段。因此,各個(gè)分段對(duì)應(yīng)于上述子集中的一個(gè)子集。
[0064]該方法包括構(gòu)建一組與智能卡的同一目標(biāo)相關(guān)聯(lián)的寫入命令,各個(gè)寫入命令都包括所要寫入數(shù)據(jù)的各自子集。
[0065]例如,該命令可通過置于各個(gè)數(shù)據(jù)子集之前創(chuàng)建,例如,各個(gè)255字節(jié)的數(shù)據(jù)塊各自表示一部分指紋數(shù)據(jù),且具有寫入命令的頭部。
[0066]頭部可采用{CLA,INS,P1,P2,P3}的形式,其中值CLA,INS,Pl,P2和P3各自都為一個(gè)字節(jié),從而使得命令的大小為260字節(jié)。P3可能等于OxFF,以指示所要寫入的255字節(jié)的數(shù)據(jù)跟隨在5個(gè)頭部字節(jié)之后。Pl和P2可能等于零。作為替換的,Pl| |P2可表示寫入命令所要寫入數(shù)據(jù)的文件的標(biāo)識(shí)符。INS字節(jié)例如可為不由IS07816-4標(biāo)準(zhǔn)所指定的任意值或者由涉及的智能卡指定但并不使用的任意值。IS07816-4標(biāo)準(zhǔn)并不需要執(zhí)行它所指定的所有指令。這一最后選項(xiàng)(標(biāo)準(zhǔn)指令碼的重新使用不能在卡片中預(yù)先使用)使得卡片并不嚴(yán)格遵循IS07816-4標(biāo)準(zhǔn)。這一不符合性并不必然是一個(gè)問題,這取決于應(yīng)用。分類字節(jié)(CLA)可采用任何適當(dāng)?shù)闹怠?br>
[0067]該方法包括由電子設(shè)備發(fā)送各個(gè)寫入命令至智能卡。設(shè)備依照數(shù)據(jù)子集在所要寫入數(shù)據(jù)中占據(jù)的順序(在劃分之前)依次發(fā)送包含這些子集的命令。因此,在智能卡的非易失性存儲(chǔ)器中寫入的數(shù)據(jù)完全相同于所想寫入的數(shù)據(jù)。
[0068]最后,依據(jù)根據(jù)本發(fā)明一個(gè)實(shí)施例的方法,該方法包括通過智能卡來處理所接收到的各個(gè)命令。
[0069]根據(jù)另一實(shí)施例,設(shè)備陸續(xù)接收或獲取所要寫入智能卡的數(shù)據(jù),并當(dāng)數(shù)據(jù)到達(dá)時(shí)將數(shù)據(jù)發(fā)送至該卡片(通過陸續(xù)構(gòu)建寫入命令)。在這種情況下,除非它一次接收到超過255字節(jié)(在T = O協(xié)議的情況下),或者超過智能卡緩沖區(qū)大小(如果它小于260字節(jié)),該設(shè)備就不需要?jiǎng)?chuàng)建子集。
[0070]如果智能卡緩沖區(qū)小于260字節(jié),就有利于將緩沖區(qū)的大小發(fā)送至用戶設(shè)備。這一大小可能出現(xiàn)在例如IS07816所指定的ATR(復(fù)位應(yīng)答)的空閑字節(jié)中。一般來說,限制因素是T = O所限制的255字節(jié)大小而不是緩沖區(qū)的大小(它一般至少為255字節(jié)),因此在這種情況下就無需發(fā)送緩沖區(qū)的大小。
[0071]一個(gè)可能的實(shí)施例涉及包括一系列指令的計(jì)算機(jī)程序,當(dāng)由智能卡的處理器執(zhí)行時(shí)可實(shí)施根據(jù)本發(fā)明一個(gè)實(shí)施例的方法。這些指令可以是例如匯編語言形式的指令或者高級(jí)語言形式的指令,以便適用于具有可通過更高級(jí)語言(例如C或Java)編程的處理器的智能卡。
[0072]一個(gè)可能的實(shí)施例涉及存儲(chǔ)根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算機(jī)程序的非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。存儲(chǔ)介質(zhì)可以是例如智能卡的ROM、flash存儲(chǔ)器或EEPR0M。
[0073]一個(gè)可能的實(shí)施例涉及一種智能卡SC,它包括非易失性存儲(chǔ)器EEPR0M,易失性存儲(chǔ)器RAM,易失性存儲(chǔ)器內(nèi)的緩沖區(qū)BUF,以及用于處理在非易失性存儲(chǔ)器中的寫入命令的電路PROC和ROM。
[0074]電路可包括智能卡處理器和存儲(chǔ)器(例如ROM),它包含可由處理器執(zhí)行的軟件以及實(shí)施根據(jù)本發(fā)明一個(gè)實(shí)施例的方法。圖3所示的處理器PROC是集成電路的形式(采用雙列直插式封裝)。然而,這僅僅只是示意性表達(dá),因?yàn)橹悄芸ㄌ幚砥饕话愣技稍谕瑯影ǘ喾N存儲(chǔ)器(RAM,EEPROM,ROM……)的微控制器中。微控制器典型為從晶片中切割出的電路芯片(或者半導(dǎo)體材料塊)并以常用方法貼附成模塊的形式。電路還可以完全電子方式來實(shí)現(xiàn),沒有任何處理器或軟件(例如使用硬連線邏輯或FPGA)。
[0075]電路設(shè)置為處理存儲(chǔ)在緩沖區(qū)中的命令。該命令與標(biāo)識(shí)參數(shù)相關(guān)聯(lián)。該標(biāo)識(shí)參數(shù)可存儲(chǔ)在易失性存儲(chǔ)器中。標(biāo)識(shí)參數(shù)標(biāo)示出存儲(chǔ)在非易失性存儲(chǔ)器中的目標(biāo)。命令必須寫入該目標(biāo)。該電路還設(shè)置為存儲(chǔ)目標(biāo)EF的標(biāo)識(shí)參數(shù)FID至非易失性存儲(chǔ)器中。目標(biāo)EF存儲(chǔ)在非易失性存儲(chǔ)器中(它可以是與命令相關(guān)聯(lián)的上文的目標(biāo),或另一目標(biāo))。該電路設(shè)置為存儲(chǔ)預(yù)定地址ADDR至非易失性存儲(chǔ)器。預(yù)定地址是位于目標(biāo)EF內(nèi)部的地址。該電路設(shè)置為,當(dāng)處理寫入命令時(shí),比較與寫入命令相關(guān)聯(lián)的目標(biāo)標(biāo)識(shí)參數(shù)和存儲(chǔ)在非易失性存儲(chǔ)器中的目標(biāo)EF的標(biāo)識(shí)參數(shù)FID。
[0076]如果比較為肯定的,則電路設(shè)置為將嵌入在寫入命令中所要寫入的數(shù)據(jù)從緩沖區(qū)以存儲(chǔ)在非易失性存儲(chǔ)器中的預(yù)定地址寫入至與寫入命令相關(guān)聯(lián)的目標(biāo)。電路設(shè)置為計(jì)算對(duì)應(yīng)于存儲(chǔ)的預(yù)定地址ADDR和寫入數(shù)據(jù)大小之和的地址。電路設(shè)置為將計(jì)算的地址存儲(chǔ)在非易失性存儲(chǔ)器中替代預(yù)定地址ADDR。
[0077]如果比較為否定的,則電路設(shè)置為將嵌入在寫入命令中所要寫入的數(shù)據(jù)從緩沖區(qū)以默認(rèn)地址寫入至與寫入命令相關(guān)聯(lián)的目標(biāo)。電路設(shè)置為計(jì)算對(duì)應(yīng)于默認(rèn)地址和寫入數(shù)據(jù)大小之和的地址。電路設(shè)置為將計(jì)算的地址存儲(chǔ)在非易失性存儲(chǔ)器中作為預(yù)定地址。
[0078]—個(gè)可能的實(shí)施例涉及一種包括電子設(shè)備(例如與卡片讀取器RDR匹配的計(jì)算機(jī)PC)和根據(jù)本發(fā)明一個(gè)可能實(shí)施例的智能卡SC的系統(tǒng)。電子設(shè)備設(shè)置為將要通過該設(shè)備寫入智能卡的數(shù)據(jù)劃分為子集,使得各個(gè)子集的大小最多等于預(yù)定值。電子設(shè)備設(shè)置為構(gòu)建與卡片的同一目標(biāo)相關(guān)聯(lián)的一組寫入命令,各個(gè)寫入命令包括各自所要寫入的數(shù)據(jù)子集。電子設(shè)備設(shè)置為將以該方法所構(gòu)建的各個(gè)寫入命令發(fā)送至卡片。
[0079]相關(guān)于本發(fā)明方法進(jìn)行描述的實(shí)施例可轉(zhuǎn)化為根據(jù)本發(fā)明的智能卡和系統(tǒng),以及根據(jù)本發(fā)明的程序的計(jì)算機(jī)程序和用于存儲(chǔ)的介質(zhì),反之亦然。
[0080]上文已經(jīng)通過特定示例對(duì)本發(fā)明做出了說明,但并不限于這些示例。尤其是,本發(fā)明可應(yīng)用于所有形式的智能卡(具有或不具有觸點(diǎn)的卡片、安全USB密鑰、電子標(biāo)識(shí)卡、SIM卡、銀行卡、訪問卡、安全令牌、生物計(jì)量護(hù)照、行駛記錄儀、健康卡、電子簽證、SecureMMC卡,等等)。發(fā)送寫入命令至智能卡的電子設(shè)備可包括各種設(shè)備(自動(dòng)柜員機(jī)、自動(dòng)收費(fèi)機(jī)、POS支付終端、健康卡讀取器、智能卡個(gè)人化站、智能卡制造機(jī)、移動(dòng)電話、安裝有智能卡讀取器的計(jì)算機(jī)、生物計(jì)量護(hù)照驗(yàn)證站,等等)。
[0081]根據(jù)一個(gè)實(shí)施例的寫入命令可為菊花鏈型,這意味著特別是當(dāng)緩沖區(qū)的大小大于命令的最大大小時(shí),有可能接連陸續(xù)發(fā)送多個(gè)命令,并且僅當(dāng)接受到這些命令中的最后一個(gè)命令時(shí)寫入非易失性存儲(chǔ)器。例如,如果緩沖區(qū)可包含三個(gè)命令,并且所要寫入的數(shù)據(jù)需要十二個(gè)命令,則智能卡可將三個(gè)命令的序列串連起來并因此僅執(zhí)行四個(gè)寫入步驟而不是十二個(gè)(但是具有3倍的數(shù)據(jù))。
[0082]雖然給出的示例本質(zhì)上是基于T = O協(xié)議的示例,但本發(fā)明也適用其他協(xié)議。例如,根據(jù)本發(fā)明一個(gè)實(shí)施例的寫入命令可為根據(jù)T= I協(xié)議的命令,其中卡片只要簡(jiǎn)單地驗(yàn)證命令不超過它緩沖區(qū)的大小。
【權(quán)利要求】
1.一種適用于在智能卡的非易失性存儲(chǔ)器中寫入數(shù)據(jù)的方法,包括: /a/在智能卡的易失性存儲(chǔ)器的緩沖區(qū)中接收寫入命令, /b/通過智能卡來比較與寫入命令相關(guān)聯(lián)的目標(biāo)標(biāo)識(shí)參數(shù)和存儲(chǔ)在智能卡非易失性存儲(chǔ)器中的目標(biāo)標(biāo)識(shí)參數(shù), /c/如果比較是肯定的,則: /cl/將嵌入在寫入命令中所要寫入的數(shù)據(jù)從緩沖區(qū)以其值存儲(chǔ)在非易失性存儲(chǔ)器中的預(yù)定地址寫入至與該寫入命令相關(guān)聯(lián)的目標(biāo), /c2/計(jì)算對(duì)應(yīng)于存儲(chǔ)的預(yù)定地址和寫入數(shù)據(jù)大小之和的地址, /c3/將計(jì)算得到的地址存儲(chǔ)在非易失性存儲(chǔ)器中替代預(yù)定地址, /d/如果比較是否定的,則: /dl/將嵌入在寫入命令中所要寫入的數(shù)據(jù)從緩沖區(qū)以默認(rèn)地址寫入至與寫入命令相關(guān)聯(lián)的目標(biāo), /d2/計(jì)算對(duì)應(yīng)于默認(rèn)地址和寫入數(shù)據(jù)大小之和的地址, /d3/將計(jì)算的地址存儲(chǔ)在非易失性存儲(chǔ)器中作為預(yù)定地址。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述與寫入命令相關(guān)聯(lián)的目標(biāo)標(biāo)識(shí)參數(shù)嵌入在寫入命令中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述與寫入命令相關(guān)聯(lián)的目標(biāo)標(biāo)識(shí)參數(shù)存儲(chǔ)在易失性存儲(chǔ)器中,并由智能卡的目標(biāo)選擇命令進(jìn)行更新。
4.根據(jù)上述任一權(quán)利要求所述的方法,其特征在于,所述默認(rèn)地址是零地址。
5.根據(jù)上述任一權(quán)利要求所述的方法,其特征在于,所述命令被編碼為根據(jù)IS07816-4標(biāo)準(zhǔn)的APDU命令。
6.一種通過電子設(shè)備在智能卡的非易失性存儲(chǔ)器中寫入數(shù)據(jù)的方法,該方法包括: /a/通過設(shè)備將所要寫入的數(shù)據(jù)劃分為子集,使得各個(gè)子集的大小最多等于預(yù)定值, /b/構(gòu)建與卡片的同一目標(biāo)相關(guān)聯(lián)的一組寫入命令,各個(gè)寫入命令包含各自所要寫入的數(shù)據(jù)子集, /c/通過設(shè)備將各個(gè)寫入命令發(fā)送至智能卡, /d/依據(jù)根據(jù)權(quán)利要求1至5中任一項(xiàng)所述方法,由智能卡處理所接收到的各個(gè)命令。
7.一種包含一系列指令的計(jì)算機(jī)程序,當(dāng)它被智能卡的處理器執(zhí)行時(shí)實(shí)施根據(jù)權(quán)利要求I至5任一項(xiàng)所述方法。
8.一種存儲(chǔ)根據(jù)權(quán)利要求7所述的計(jì)算機(jī)程序的非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
9.一種智能卡(SC),包括非易失性存儲(chǔ)器(EEPROM),易失性存儲(chǔ)器(RAM)、易失性存儲(chǔ)器內(nèi)的緩沖區(qū)(BUF),以及用于處理非易失性存儲(chǔ)器中的寫入命令的電路(PROC,ROM),所述電路(PROC,ROM)設(shè)置為處理存儲(chǔ)在緩沖區(qū)(BUF)中的且與標(biāo)識(shí)目標(biāo)的標(biāo)識(shí)參數(shù)相關(guān)聯(lián)的命令,所述目標(biāo)存儲(chǔ)在命令將要寫入的非易失性存儲(chǔ)器(EEPROM)中,所述電路(PR0C,ROM)設(shè)置為在非易失性存儲(chǔ)器(EEPROM)中,一方面存儲(chǔ)目標(biāo)(EF)的標(biāo)識(shí)參數(shù)(FID),目標(biāo)(EF)存儲(chǔ)在在非易失性存儲(chǔ)器(EEPROM)中,以及另一方面存儲(chǔ)目標(biāo)(EF)內(nèi)的預(yù)定地址(ADDR),電路(PROC,ROM)設(shè)置為當(dāng)處理寫入命令時(shí)比較與寫入命令相關(guān)聯(lián)的目標(biāo)標(biāo)識(shí)參數(shù)與存儲(chǔ)在非易失性存儲(chǔ)器(EEPROM)中的目標(biāo)標(biāo)識(shí)參數(shù)(FID),并且,如果比較是肯定的,則將嵌入在寫入命令中所要寫入的數(shù)據(jù)從緩沖區(qū)(BUF)以存儲(chǔ)在非易失性存儲(chǔ)器(EEPROM)中的預(yù)定地址(ADDR)寫入至與寫入命令相關(guān)聯(lián)的目標(biāo),計(jì)算對(duì)應(yīng)于存儲(chǔ)的預(yù)定地址(ADDR)和寫入數(shù)據(jù)大小之和的地址,并將計(jì)算得到的地址存儲(chǔ)在非易失性存儲(chǔ)器(EEPROM)中替代預(yù)定地址(ADDR),如果比較是否定的,電路(PR0C,R0M)設(shè)置為將嵌入在寫入命令中所要寫入的數(shù)據(jù)從緩沖區(qū)(BUF)以默認(rèn)地址寫入至與寫入命令相關(guān)聯(lián)的目標(biāo),計(jì)算對(duì)應(yīng)于默認(rèn)地址和寫入數(shù)據(jù)大小之和的地址,并將計(jì)算得到的地址存儲(chǔ)在非易失性存儲(chǔ)器(EEPROM)中作為預(yù)定地址。
10.一種包括電子設(shè)備(PC,PDR)和根據(jù)權(quán)利要求9的智能卡(SC)的系統(tǒng),所述電子設(shè)備(PC,PDR)設(shè)置為通過設(shè)備(PC,PDR)將寫入智能卡(SC)的數(shù)據(jù)劃分為子集,使得各個(gè)子集的大小最多等于預(yù)定值,構(gòu)建與卡片(SC)的同一目標(biāo)相關(guān)聯(lián)的一組寫入命令,各個(gè)寫入命令包括各自所 要寫入的數(shù)據(jù)子集,并將以該方法所構(gòu)建的各個(gè)寫入命令發(fā)送至卡片(SC)。
【文檔編號(hào)】G11C16/10GK104205132SQ201280067071
【公開日】2014年12月10日 申請(qǐng)日期:2012年11月30日 優(yōu)先權(quán)日:2011年12月2日
【發(fā)明者】邁克爾·巴塞, 蓋奧弗雷·斯皮諾 申請(qǐng)人:茂福公司