專利名稱:修改智能卡的指令集的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及修改智能卡的指令集的方法。更具體地,本發(fā)明涉及修改智能卡的個別指令的方法。
智能卡,也稱作IC卡(IC=集成電路),是用于進行支付的電子設(shè)備??ㄉ系募呻娐钒糜谔幚頂?shù)據(jù)的微處理器之類。智能卡上的處理器通常提供有包含諸如讀、寫、更新等用于對包含在卡中的(支付)數(shù)據(jù)進行操作的指令(命令)的指令集。通常采用諸如歐洲標準EN726規(guī)定的標準指令集。然而,這一指令集對于指令的數(shù)目與范圍畢竟是有限的。隨著涉及智能卡的電子支付系統(tǒng)的發(fā)展,經(jīng)常產(chǎn)生在卡上增加新功能或改變現(xiàn)有功能的要求。這種改變通常蘊含智能卡的指令集的修改。這通常會涉及卡上的集成電路的重新設(shè)計,這不僅是昂貴的并且還使現(xiàn)有的卡作廢。此外,改變標準的指令集會危及其與標準的相容性。
由于這些與其它原因,便產(chǎn)生了能修改智能卡的指令集而基本上不偏離現(xiàn)有指令集的需求。
因此,本發(fā)明的目的為克服先有技術(shù)的上述及其它缺點及提供有可能修改智能卡的指令集而不增加命令的方法。本發(fā)明的另一目的為在智能卡上增加新功能,這些新功能是基于原來的指令集的。
為了達到這些與其它目的,本發(fā)明提供了修改智能卡的處理器的指令集的方法,該智能卡還包括用于存儲文件及與這些文件關(guān)聯(lián)的屬性組的存儲器,各屬性確定集中的指令的性質(zhì),該方法包括在屬性組中插入對應(yīng)于要修改的指令的新屬性的步驟,所述新屬性確定相應(yīng)的指令的修改后的性質(zhì)。
這便是,按照本發(fā)明,指令是通過修改它們的屬性而修改的。由于屬性可以組織成與特定的文件關(guān)聯(lián)的組,本發(fā)明的方法允許有選擇地修改指令,即修改特定文件。屬性通常確定存取條件或所關(guān)心的指令要使用的特定的鍵。然而,屬性可包含規(guī)定進一步的操作的機器碼(或?qū)C器碼的指針),該操作執(zhí)行特定的功能(諸如密碼過程)。通過在屬性中插入新操作或修改后的操作,可以修改指令的功能而不徹底地改變指令。
應(yīng)理解插入屬性可包含替換現(xiàn)有的屬性。通常,可為存儲屬性保留存儲器單元。插入新屬性通常包含將新屬性存儲在對應(yīng)的存儲器單元中,在這一情況中改寫了早先存儲在該存儲器單元中的任何信息。
按照本發(fā)明的方法可應(yīng)用在下述情況中,其中指令集的屬性組包括包含第一屬性的第一表及包含第二屬性的第二表,第一表中包含對第二表的引用,而其中的新屬性是插入第二表的。這一第一表可諸如包括所述特定的鍵,而第二表則包含要與所關(guān)心的指令一起使用的過程(操作)。應(yīng)指出第一表可用包含引用的庫登記表參照。通過在第二表中插入新的屬性,能以最小的屬性改變達到修改。
現(xiàn)代智能卡可擁有至少兩個不同的數(shù)據(jù)文件,諸如用于智能卡的不同應(yīng)用。在這一情況中,屬性組可包括與各自的數(shù)據(jù)文件關(guān)聯(lián)的子組。本發(fā)明允許將新屬性插入有限數(shù)目的子組中,從而使指令修改特定于單個數(shù)據(jù)文件。以這一方式,可達到指令的極大靈活性。
圖1以透視圖示出用于支付與識別目的的智能卡。
圖2示意性地示出圖1的智能卡的集成電路。
圖3示意性地示出諸如圖2的智能卡等智能卡的指令集的屬性表。
圖4示意性地示出與圖3的屬性表關(guān)聯(lián)的鍵表。
圖5示意性地示出與圖3的屬性表及圖4的鍵表關(guān)聯(lián)的過程表。
圖6示意性地示出智能卡的分層文件結(jié)構(gòu)的示例。
圖1中以示例方式示意性地示出的智能卡或IC卡1包括其中嵌入了集成電路的基板2。集成電路上設(shè)置有用于接觸讀卡器之類的觸點3。應(yīng)指出本發(fā)明也能應(yīng)用在所謂無觸點智能卡的情況中。
在圖2中以示例方式示意性地示出的集成電路10包括處理器11、存儲器12及輸入/輸出電路13。存儲器可包括用于臨時存儲數(shù)據(jù)的易失性(RAM)存儲器部分及用于永久性或半永久性存儲數(shù)據(jù)的非易失性(ROM)存儲器部分。后一部分最好是EEPROM(電可擦除只讀存儲器)型存儲器。存儲在非易失性部分中的數(shù)據(jù)可包含編程數(shù)據(jù)(指令、程序)及支付數(shù)據(jù),即關(guān)于錢款交易的數(shù)據(jù)。應(yīng)理解可以設(shè)置獨立的存儲器(未示出)來存儲處理器11的指令集。
處理器11可以是具有諸如按照歐洲標準EN726的標準指令集的微處理器。應(yīng)理解也可采用其它標準或非標準的指令集。下面將參照圖3進一步說明指令集。
輸入/輸出電路13處理處理器11與諸如讀卡器等外部設(shè)備(未示出)之間的通信??砂m當(dāng)緩沖器的輸入/輸出電路13通過數(shù)據(jù)總線與處理器11連接。處理器11與存儲器12可用同一數(shù)據(jù)總線連接。
圖3中以示例方式示意性地示出并一般性地用參照數(shù)字100指示的屬性表包括若干部分,它們與不同的文件關(guān)聯(lián)(稍后將參照圖6說明智能卡的可能的文件結(jié)構(gòu))。與文件A(圖6中21)關(guān)聯(lián)的第一部分包括字段111、121及131。第一字段111包含文件指示符,這里用“文件A”表示。第二字段121包含指令表,即包含智能卡的指令集或至少對指令集的指令的引用的表。應(yīng)理解指令完完全全地包括處理器執(zhí)行的機器碼。在所示的實例中,示出了指令“讀”、“寫”及“更新”。第三字段131包含字段121中的指令的屬性。這便是,對于第二字段121的各指令,在第三字段131中可有一項,該項構(gòu)成進一步規(guī)定指令的功能的一組屬性。這些屬性中可包括諸如存取條件及鍵號,它們在圖3中分別用AC與KEYNR表示。存取條件可包括ALWAYS(永遠)、NEVER(永不)、PR0TECTED(受保護)及諸如此類。鍵號可引用圖4中所描繪的鍵表中的項。表100的第三字段131從而可構(gòu)成引用另一表(圖4中所示)的屬性的庫登記表。
雖然為了簡明起見屬性表100的第一、第二及第三字段在圖3中示出為鄰接的字段,在實際的實施例中這些字段很可能存儲在智能卡的存儲器12的不同的不鄰接的單元中。
列出在字段131中的屬性完全與文件A對應(yīng),如字段111中所指定的。這便是,字段131的屬性只對文件A有效。這一結(jié)構(gòu)允許指令對于不同的(數(shù)據(jù))文件具有不同的功能性。這一文件可包含對于智能卡的特定應(yīng)用(功能)的數(shù)據(jù)。典型的應(yīng)用為“錢包”、“使用費程序”(“royalty program”)及“進入”,分別用于進行或接收支付、收集使用費款及獲許進入建筑物等。即使在這一應(yīng)用中也可使用一個以上的數(shù)據(jù)文件,從而可存在一個以上的關(guān)聯(lián)屬性組。由于屬性是對數(shù)據(jù)文件特定的結(jié)果,指令的功能至少對于屬性所定義的部分是對數(shù)據(jù)文件特定的。從而,指令“讀”的存取條件可在包含諸如錢包數(shù)據(jù)(電子貨幣存儲器)的文件與包含該智能卡的用戶的個人數(shù)據(jù)的文件之間有所不同。下面將參照圖4與5進一步說明這一點。
圖3中用AC象征性地示出的實施存取條件可包含在庫屬性表100中,也可包含在獨立的表(未示出)中。類似地,圖4中所示的鍵(鍵1、鍵2、…)可包含在屬性表100中,為了說明本發(fā)明,假定只是數(shù)字(1,2,…)的項KEYNR(鍵號)引用圖4的鍵表200。
圖4的鍵表200中的各項包含鍵號(KEYNR)、鍵(鍵1、鍵2、…)及過程標識或過程號(圖4與5中用PRONR表示)。各過程標識依次引用過程表300中的項。過程表300中的各項包含過程號及過程(操作),在圖5中用諸如DES或RSA表示。這一過程可以是諸如DES及RSA等密碼過程或數(shù)據(jù)上的一些其它操作。
按照本發(fā)明,可以通過修改它們的屬性來修改智能卡的指令。從而通過修改過程表300中的項,便可得到新功能或現(xiàn)有功能的修改。圖5中,在過程表的第二項上輸入新功能(諸如將數(shù)據(jù)乘以公共因子或從數(shù)據(jù)中減一)。從而如果在鍵表200中選擇了鍵號3,過程號2指向的便是新功能。每次執(zhí)行涉及使用鍵3的指令時,便調(diào)用該新功能。
應(yīng)理解可以用諸如直接從圖3的表100等以各種方式進行新功能的引用。并且鍵表200可包含“啞”鍵,以便允許使用該表而實際上不使用鍵。
替代在過程表300中插入新功能,可插入指向在存儲新的或修改的代碼的存儲器單元的指針。
如上所述,在庫屬性表(圖3中100)中,對于不同文件可存在不同屬性。按照本發(fā)明的方法通過修改單個數(shù)據(jù)文件的屬性而允許靈活的指令集。
智能卡可包括分層目錄結(jié)構(gòu)來組織它們的文件。圖6中示出這一結(jié)構(gòu)的示例。主文件20具有三個子文件21、22及23。即,主文件可包含對子文件的引用,或者這些引用存儲在其它地方(如在公共目錄中)。一組屬性與主文件20關(guān)聯(lián)。所有三個子文件21、22與23有可能具有獨立的屬性組,如圖3中所示。然而,如果一組屬性與文件20關(guān)聯(lián),所述屬性組可應(yīng)用于層次中相對于主文件20較低的所有文件上。這便是,同一組屬性可同樣與文件21、22及23關(guān)聯(lián)。換言之,如果通過修改與某一文件關(guān)聯(lián)的(一組屬性的)一種屬性而改變一條指令,則這一修改可對相對于所述文件較低層次的所有文件都適用。這便允許為諸如特定的卡應(yīng)用改變指令,其中該應(yīng)用包含若干文件。
如上所述,按照本發(fā)明是通過替換與/或修改屬性來達到指令的修改的。從而本發(fā)明的方法能使用標準指令(標準卡功能)來進行非標準操作。本發(fā)明還提供智能卡的修改的指令集以及設(shè)置有修改的指令集的智能卡。屬性表中新屬性的實際插入是通過將新屬性存儲在適當(dāng)?shù)拇鎯ζ鲉卧贤瓿傻摹1硎拘聦傩缘臄?shù)據(jù)可通過讀卡器/寫卡器從計算機傳送到卡的存儲器上。參見圖2,數(shù)據(jù)是以常見的方式通過I/O單元13傳送到存儲器12上的。
熟悉本技術(shù)的人員應(yīng)理解上述實施例只是作為示例給出的,許多修改與增加都是可能的而不脫離本發(fā)明的范圍。
權(quán)利要求
1.一種修改智能卡(1)的處理器(11)的指令集的方法,該智能卡還包括用于存儲文件(21,22)及與這些文件關(guān)聯(lián)的屬性組(如存取、鍵號、鍵1)的存儲器(12),各屬性規(guī)定該指令集中的指令(如“讀”)的性質(zhì),該方法包括將與要修改的指令對應(yīng)的新屬性(如新功能)插入屬性組中的步驟,所述新屬性規(guī)定相應(yīng)的指令的修改后的性質(zhì)。
2.按照權(quán)利要求1的方法,其中該屬性組組織成引用另一表(200、300)的第一表(100)及其中將新屬性(新功能)插入到另一表(如300)中。
3.按照權(quán)利要求1或2的方法,其中新屬性的插入涉及替換現(xiàn)有的屬性。
4.按照前述權(quán)利要求之一的方法,其中智能卡(1)的存儲器(12)至少包括兩個文件(如21、22),一組屬性(如131)與各文件關(guān)聯(lián),將新屬性插入有限數(shù)目的組中。
5.按照前述權(quán)利要求之一的方法,其中這些文件(如21、22)是分層組織的,各組屬性與至少一個文件(如20)及相對于所述文件(20)的層次較低的所有文件(如21、22)關(guān)聯(lián)。
6.按照前述權(quán)利要求之一的方法,其中一組屬性與智能卡(1)的所有文件關(guān)聯(lián)。
7.用按照前述權(quán)利要求之一的方法修改的智能卡(1)的指令集。
8.智能卡(1),包括存儲器(12)及具有用按照權(quán)利要求1至6之一的方法修改的指令集的處理器(11)。
全文摘要
本發(fā)明提供修改與/或擴展智能卡(1)的指令集(讀、寫)的方法。利用與某些文件及與現(xiàn)有指令集的命令關(guān)聯(lián)的屬性表(100、200、300)來修改指令的功能。從而,不需要使用附加的即非標準的指令便能實現(xiàn)非標準的功能。
文檔編號G06F9/38GK1211329SQ97192316
公開日1999年3月17日 申請日期1997年2月11日 優(yōu)先權(quán)日1996年2月16日
發(fā)明者A·菲肯 申請人:皇家Kpn公司