JP4196721B2 - IC card and application setting method thereof - Google Patents

IC card and application setting method thereof Download PDF

Info

Publication number
JP4196721B2
JP4196721B2 JP2003125646A JP2003125646A JP4196721B2 JP 4196721 B2 JP4196721 B2 JP 4196721B2 JP 2003125646 A JP2003125646 A JP 2003125646A JP 2003125646 A JP2003125646 A JP 2003125646A JP 4196721 B2 JP4196721 B2 JP 4196721B2
Authority
JP
Japan
Prior art keywords
identification information
application
information
applet
table information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003125646A
Other languages
Japanese (ja)
Other versions
JP2004334316A (en
Inventor
学 三露
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toppan Inc
Original Assignee
Toppan Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toppan Inc filed Critical Toppan Inc
Priority to JP2003125646A priority Critical patent/JP4196721B2/en
Publication of JP2004334316A publication Critical patent/JP2004334316A/en
Application granted granted Critical
Publication of JP4196721B2 publication Critical patent/JP4196721B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、一般的には、マルチアプリケーション型のICカードに関し、特に、優先順の高いアプリケーションを実行可能に設定できる技術に関する。
【0002】
【従来の技術】
近年、複数のアプリケーションを実行できるマルチアプリケーション型のICカードが開発されている。このICカードは、例えばMULTOS(登録商標)規格のカード用OS(Operation System)やJava(登録商標)等のOSが組み込まれて、内部メモリ(例えばフラッシュEEPROM)に格納された複数のアプリケーション(Javaではアプレット)から選択されたアプリケーションを実行する機能を有する。
【0003】
このようなマルチアプリケーション型のICカードであれば、例えばクレジットカード、商品やサービスの販売用のポイントカード、あるいは鉄道などの自動改札で使用される定期券やプリペイドカードなどの各種の機能を1枚のカードに統合したマルチ機能カードを実現することができる。
【0004】
【発明が解決しようとする課題】
マルチアプリケーション型のICカードでは、内部のCPUが指定された機能を実現するアプリケーション(又はアプレット)を選択して実行する。各アプリケーションのそれぞれには、例えば5〜16バイトのAID(Application ID)と称する識別情報が割り当てられている。この各AIDは、テーブル情報として例えばフラッシュEEPROM等の内部メモリに保存されている。CPUは、外部から指定されたAIDに対応するAIDをテーブル情報から検索し、検索されたAIDに対応するアプリケーションを実行可能に設定する。
【0005】
ここで、CPUは、テーブル情報を検索するときに、固定的に順序が設定されたAIDを順次検索していく。このため、使用形態に従って、選択される確率が高いアプリケーションがあるにもかかわらず、CPUは、常にテーブル情報の先頭から検索する。従って、特にICカードの内部に用意されるアプリケーション数が多くなると、指定のアプリケーションを選択して設定する処理時間が、アプリケーションの実行効率に影響することになる。
【0006】
そこで、本発明の目的は、マルチアプリケーション型のICカードにおいて、指定のアプリケーションを選択して設定する処理時間の短縮化を図ることができるICカードを提供することにある。
【0007】
【課題を解決するための手段】
本発明の観点は、マルチアプリケーション型のICカードにおいて、指定のアプリケーションを選択して実行可能に設定する処理時間の短縮化を実現するためのアプリケーションテーブル情報の構成に関する。
【0008】
請求項1に係る発明は、複数のアプリケーションを記憶する第1のメモリ手段と、前記各アプリケーションを識別する識別情報群を含むテーブル情報であって、優先的に設定可能なアプリケーションに対応する識別情報を有する優先テーブル情報を記憶する第2のメモリ手段と、外部からの指示に応じて、優先的に前記優先テーブル情報から該当する識別情報を検索し、検索された当該識別情報に対応するアプリケーションを前記第1のメモリ手段から読出して実行可能に設定する制御手段とを備えたICカードである。
【0009】
このような構成であれば、全ての識別情報ではなく、優先テーブル情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【0010】
請求項2に係る発明は、前記ICカードにおいて、前記第2のメモリ手段は、前記テーブル情報として、前記優先テーブル情報に含まれる識別情報以外の識別情報を含む通常テーブル情報を記憶し、前記制御手段は前記優先テーブル情報から該当する識別情報を検索できないときには、前記通常テーブル情報から検索する構成である。
【0011】
このような構成であれば、テーブル情報を優先テーブル情報と通常テーブル情報とに分割することにより、優先テーブル情報から優先的に検索して、次に通常テーブル情報を検索するため、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【0012】
請求項3に係る発明は、前記ICカードにおいて、前記第2のメモリ手段は、前記テーブル情報として、前記優先テーブル情報に含まれる識別情報を含む全識別情報を含む通常テーブル情報を記憶し、前記制御手段は、前記優先テーブル情報から該当する識別情報を検索できないときには、前記通常テーブル情報から検索する構成である。
【0013】
このような構成であれば、優先テーブル情報としては通常テーブル情報から選択された識別情報をコピーすることにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【0014】
請求項4に係る発明は、複数のアプリケーションを記憶する第1のメモリ手段と、前記各アプリケーションを識別する識別情報群を含むテーブル情報を記憶する第2のメモリ手段と、前記各アプリケーションのそれぞれの使用頻度を示す使用頻度情報を記憶する第3のメモリ手段と、外部からの指示に応じて前記テーブル情報から該当する識別情報を検索し、検索された当該識別情報に対応するアプリケーションを前記第1のメモリ手段から読出して実行可能に設定するときに、前記使用頻度情報に基づいて相対的に高い使用頻度を示す識別情報を前記テーブル情報から優先的に検索する制御手段とを備えたICカードである。
【0015】
このような構成であれば、全ての識別情報ではなく、使用頻度の高いアプリケーションに対応する識別情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【0016】
請求項5に係る発明は、請求項6に係るICカードにおいて、前記制御手段は、前記第1のメモリ手段から読出して実行可能に設定したアプリケーションに対応し、前記第3のメモリ手段に記憶された前記使用頻度情報を更新し、相対的に高い使用頻度を示すアプリケーションに対応する識別情報の検索優先順位が高くなるように前記第2のメモリ手段に記憶された前記テーブル情報を更新する構成である。
【0017】
このような構成であれば、テーブル情報を検索したときに、常に使用頻度の高いアプリケーションに対応する識別情報の検索順位が高くなるため、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【0018】
請求項6に係る発明は、複数のアプリケーションを選択的に実行するICカードに適用するアプリケーション設定方法であって、外部からの指示に応じて、優先的に設定可能なアプリケーションに対応する識別情報を有する優先テーブル情報から該当する識別情報を検索する第1の検索ステップと、前記第1の検索ステップにより検索された識別情報に対応するアプリケーションを実行可能に設定する第1の設定ステップと、前記第1の検索ステップにより検索できない場合には、前記優先テーブル情報に含まれない識別情報を有する通常テーブル情報から該当する識別情報を検索する第2の検索ステップと、前記第2の検索ステップにより検索された識別情報に対応するアプリケーションを実行可能に設定する第2の設定ステップとを有する手順を実行するアプリケーション設定方法である。
【0019】
このような構成であれば、全ての識別情報ではなく、優先テーブル情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【0020】
請求項7に係る発明は、複数のアプリケーションを選択的に実行するICカードに適用するアプリケーション設定方法であって、前記ICカードは、前記各アプリケーションに対応する識別情報群であって、アプリケーションの使用頻度を示す使用頻度情報に基づいて当該識別情報群の検索順序が設定されたテーブル情報を有し、外部からの指示に応じて前記テーブル情報から該当する識別情報を検索する検索ステップと、前記検索ステップにより検索された識別情報に対応するアプリケーションを実行可能に設定する設定ステップと、前記設定ステップにより設定されたアプリケーションに対応する前記使用頻度情報を更新する第1の更新ステップと、前記第1の更新ステップにより更新された使用頻度情報に従って、相対的に高い使用頻度を示す識別情報の検索順位が高くなるように前記テーブル情報を更新する第2の更新ステップとを有する手順を実行するアプリケーション設定方法である。
【0021】
このような構成であれば、全ての識別情報ではなく、使用頻度の高いアプリケーションに対応する識別情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【0022】
【発明の実施の形態】
以下図面を参照して、本発明の実施の形態を説明する。
【0023】
(ICカードの構成)
図1は、各実施形態に関するICカードの構成を示すブロック図である。
【0024】
ICカード10は、ICチップの中に、大別して制御を司るマイクロプロセッサ(CPU)100と、ICメモリ110,120,130が組み込まれた構成であり、マルチアプリケーション型のICカード(マルチ機能カードまたは統合カード)を想定する。
【0025】
CPU100は、後述するように、ここではJava(登録商標)のOSの制御に基づいて、複数のアプリケーション(アプレット)を選択的に実行し、各アプリケーション毎の機能を実現する。具体的には、CPU100は、対応するアプリケーションを実行することにより、本ICカードを例えばクレジットカード、商品やサービスの販売用のポイントカード、あるいは鉄道などの自動改札で使用される定期券やプリペイドカードとして機能させる。
【0026】
ICメモリとしては、RAM110,ROM120,及びフラッシュEEPROM130がある。RAM110は主として、CPU100がアプリケーションを実行する上でのワークメモリとして使用される。ROM120は主として、OS(ここではJavaを想定する)を格納している。フラッシュEEPROM130は、複数のアプリケーション用のファイル、及び本実施形態に関係するテーブル情報(図2を参照)を格納している。
【0027】
ICカード10は、各種の端末装置(使用形態により異なる)に組み込まれるリーダ/ライタ20と接触又は非接触で接続し、コマンド及びデータの入出力を行なう。具体的には、ICカード10は、リーダ/ライタ20から、例えばAPDU(Application Protocol Data Unit)というインターフェース規格によるコマンドを受付けることにより、フラッシュEEPROM130に用意されたアプリケーション(アプレット)を実行する。当該コマンドは、後述するように、実行すべきアプリケーションを指定するための識別情報であるAID(Application ID)を含む。また、ICカード10は、アプリケーションを実行したときの各種のデータをRAM110に格納する。リーダ/ライタ20は、当該RAM110から各種のデータを読出す。
【0028】
(第1の実施形態のテーブル情報の構造)
本実施形態は、CPU100は、JavaのOSの制御に基づいて、複数のアプレットを選択的に実行することを想定する。各アプレットを選択するためのテーブル情報は、アプレットテーブルと表記する。
【0029】
本実施形態では、図2に示すように、アプレットテーブルはフラッシュEEPROM130に格納されており、優先アプレットテーブル200と通常アプレットテーブル210とに分割管理される。優先アプレットテーブル200は、後述する所定の条件で選択されたAID(Applet N:N=1〜9)が、所定の順序で設定される。また、通常アプレットテーブル210は、ICカード10にインストールされたアプリケーションに対応するAIDが、当該インストール順に設定される。
【0030】
具体的には、優先アプレットテーブル200は、図3(A)に示すように、時間的に最近使用されたアプレットに対応するAID(Applet2,3,8)が設定される。ここでは、優先アプレットテーブル200のサイズは、上限が3つまでとする。一方、通常アプレットテーブル210は、いわば暫く使用されないアプレットに対応するAID(Applet1,4,5〜7,9)が設定される。いずれのアプレットテーブル200,210も、Index0を先頭として、Index番号の順番で検索される。
【0031】
(アプレット設定の手順)
以下図3から図5、及び図6と図7のフローチャートを参照して、第1の実施形態に関するアプレット設定の手順を説明する。
【0032】
まず、ICカード10は、例えばクレジットカード用の端末装置(リーダ/ライタ)20と接触又は非接触状態で接続すると、端末装置20から例えばAPDUのインターフェース規格によるコマンドが送信される。CPU100は、当該コマンドに含まれるAID(アプレットの識別情報)を取得すると、該当するアプレットを選択して実行可能に設定する処理を実行する。具体的には、CPU100は、フラッシュEEPROM130から該当するアプレットを選択して、RAM110に設定する。これにより、CPU100は、例えばクレジットカード機能を実現するためのアプレット(即ち、アプリケーション)を実行することになる。
【0033】
アプレット設定手順としては、CPU100は、図3(A)に示すような優先アプレットテーブル200の先頭(Index=0)から検索を開始する(ステップS1)。ここで、優先アプレットテーブル200には、アプレットを示すAIDがセットされていなければ(ヒットしない場合)、CPU100は通常アプレットテーブル210の検索に移行する(ステップS2のNO,S7)。
【0034】
CPU100は、優先アプレットテーブル200にセットされているAIDを先頭から順次チェックし、該当するアプレットに対応するAID(ここでは、Applet8とする)を検索する(ステップS3,S4)。CPU100は、該当するAIDを検索すると(ヒットすると)、後述するように、当該優先アプレットテーブル200の更新処理を実行する(ステップS5)。
【0035】
さらに、CPU100は、該当するAID(Applet8)を端末装置20に返し、所定のアプレット設定処理に移行する(ステップS6)。即ち、フラッシュEEPROM130から該当するAID(Applet8)のアプレットを選択して、実行可能なようにRAM110に設定する。
【0036】
一方、CPU100は、優先アプレットテーブル200には該当するAIDがなければ、図3(B)に示すような通常アプレットテーブル210の先頭(Index=0)から検索を開始する(ステップS7)。即ち、CPU100は、通常アプレットテーブル210にセットされているAIDを先頭から順次チェックし、該当するアプレットに対応するAIDを検索する(ステップS8〜S10)。
【0037】
ここで、通常アプレットテーブル210にも、該当するAIDがセットされていない場合(該当するアプレットがインストールされていない)、CPU100はNULL(機能不可)を端末装置20に返す(ステップS8のNO,S12)。
【0038】
CPU100は、該当するAIDを検索すると(ヒットすると)、後述するように、当該通常アプレットテーブル210の更新処理を実行する(ステップS11)。そして、CPU100は、該当するAIDを端末装置20に返し、所定のアプレット設定処理に移行する(ステップS6)。
【0039】
(テーブル更新処理)
次に、図7のフローチャートを参照して、優先アプレットテーブル200の更新処理(図6のステップS5)の手順を説明する。
【0040】
CPU100は、図3(A)に示すように、優先アプレットテーブル200の先頭ではなく、ここでは第3番目(Index=2)にある該当AID(Applet8)を検索した場合を想定する(ステップS21のNO)。CPU100は、図4(A)に示すように、当該AID(Applet8)を優先アプレットテーブル200の先頭(Index=0)に設定する(ステップS22)。
【0041】
従って、CPU100は、当該AID(Applet8)をRAM110のレジスタ(Temp Applet)に移動させた後、先頭(Index=0)にあったAID(Applet2)を次の位置(Index=1)に移動させて、また次の位置(Index=1)にあったAID(Applet3)を当該AID(Applet8)の位置(Index=2)に移動させる。そして、最後にRAM110のレジスタ(Temp Applet)に待避させた当該AID(Applet8)を先頭(Index=0)に設定する。なお、当然ながら、図4(B)に示すように、通常アプレットテーブル210の設定順序については、変更しない。
【0042】
また、図9のフローチャートを参照して、該当AID(ここではApplet5とする)を通常アプレットテーブル210から検索した場合に、優先及び通常アプレットテーブル200,210の更新処理(ステップS11)の手順を説明する。
【0043】
ここでは、図4(B)に示すように、CPU100は、該当AID(Applet5)が優先アプレットテーブル200には無く、通常アプレットテーブル210の3番目(Index=2)から検索され、実行された場合を想定する。このとき、優先アプレットテーブル200は、図4(A)に示すように、先頭(Index=0)から3番目の位置(Index=2)まで、各AID(Applet8,2,3)が設定されている。
【0044】
まず、CPU100は、優先アプレットテーブル200の最後尾の位置(Index=N)に設定されているAID(Applet3)を、RAM110のレジスタ(Temp Applet)に移動させる(ステップS30,S31)。ここで、Nは、優先アプレットテーブル200の設定サイズ(ここでは、上限3つ)に従って「2」となる。
【0045】
次に、CPU100は、優先アプレットテーブル200の位置(Index−1)に設定されているAID(Applet2)を、最後尾の位置(Index=2)に移動させる(ステップS32のYES,S33)。これを繰り返すことにより、優先アプレットテーブル200の先頭位置(Index=0)を空ける(ステップS34,S32のNO)。
【0046】
さらに、CPU100は、図4(B)に示すように、通常アプレットテーブル210にある該当AID(Applet5)を、優先アプレットテーブル200の先頭(Index=0)に移動させる(ステップS35)。これにより、優先アプレットテーブル200は、図5(A)に示すように、先頭から3番目の位置(Index=2)まで、各AID(Applet5,8,2)が設定される。
【0047】
次に、CPU100は、通常アプレットテーブル210から移動させた該当AID(Applet5)の位置(Index=M,ここではMは2)に、それより上位のAID(Applet4)を移動させる(ステップS36〜S38)。これを繰り返すことにより、通常アプレットテーブル210の先頭位置(Index=0)を空ける(ステップS39,S37のNO)。
【0048】
そして、CPU100は、図5(B)に示すように、RAM110のレジスタ(Temp Applet)にセットされたAID(Applet3)を、通常アプレットテーブル210の先頭(Index=0)に移動させる(ステップS40)。
【0049】
以上要するに本実施形態のアプレット設定方法であれば、CPU100は、端末装置20からのコマンド(外部からの指示)に応じて、該当するアプレットのAIDを、最初に優先アプレットテーブル200から検索し、無ければ通常アプレットテーブル210から検索する。ここで、優先アプレットテーブル200は、時間的に最近使用されたアプレットのAIDが設定されている。一般的に、最近使用されたアプレットは繰り返し使用されることが多いため、優先アプレットテーブル200から該当するAIDをヒットさせられる確率が高い。
【0050】
さらに、優先アプレットテーブル200から該当するAIDをヒットした場合に、当該テーブル200内で、今回ヒットしたAIDを先頭に移動させるテーブル更新処理を実行する。また、通常アプレットテーブル210から該当するAIDをヒットした場合には、今回ヒットしたAIDを優先アプレットテーブル200の先頭に移動させるテーブル更新処理を実行する。従って、優先アプレットテーブル200には、時間的に最近使用されたアプレットのAIDが、常に先頭である最優先順位に設定される。また、通常アプレットテーブル210には、やはり最近使用された順序で設定される。これにより、本実施形態のICカード10は、インストールされいる全アプレットを検索することなく、外部からコマンドで指定されたアプレットを短時間で選択して実行可能に設定することができる。
【0051】
(変形例)
図8は、本実施形態の変形例に関する図である。
【0052】
本実施形態は、アプレットテーブル情報を、優先アプレットテーブル200と通常アプレットテーブル210とに分割管理し、テーブル200には最近利用したAIDを割り当て、210には全アプレットの各AIDを割り当てる方式である。
【0053】
本変形例は、図8(A)に示すように、優先アプレットテーブル200の設定内容は本実施形態と同様であるが、同図(B)に示すように、通常アプレットテーブル210には全アプレットに対応するAIDの全てが設定されている構成である。このような構成であれば、優先アプレットテーブル200から、通常アプレットテーブル210にAIDを移動させる処理を省略できる効果がある。優先アプレットテーブル200には、通常アプレットテーブル210から選択された優先のAIDがコピーされることになる。
【0054】
以下、本変形例に関するテーブル更新処理の手順を、図10に示すフローチャートを参照して説明する。なお、本変形例では当該AID(Applet5)が選択され、アプレット(即ち、アプリケーション)がCPU100で実行されたものとする。
【0055】
まず、CPU100は、優先アプレットテーブル200の最後尾の位置(Index=N)に設定されているAID(Applet8)を、RAM110のレジスタ(Temp Applet)に移動させる(ステップS41,S42)。ここで、Nは、優先アプレットテーブル200の設定サイズ(ここでは、上限3つ)に従って、「2」となる。
【0056】
次に、CPU100は、優先アプレットテーブル200の位置(Index−1)に設定されているAID(Applet3)を、最後尾の位置(Index=2)に移動させる(ステップS43のYES,S44)。これを繰り返すことにより、優先アプレットテーブル200の先頭位置(Index=0)を空ける(ステップS45,S43のNO)。
【0057】
さらに、CPU100は、図8(B)に示すように、通常アプレットテーブル210にある該当AID(Applet5)を、優先アプレットテーブル200の先頭(Index=0)にコピーさせる(ステップS46)。これにより、優先アプレットテーブル200の先頭には、今回の検索でヒットしたAID(Applet5)が設定される。なお、本変形例では、図8(B)に示すように、通常アプレットテーブル210には、優先アプレットテーブル200の最後尾のAIDを含む全てのAIDが設定されているため、先の実施形態のようにRAM110のレジスタ(Temp Applet)に待避させたAIDを通常アプレットテーブル210に移動させる必要は無い。
【0058】
また、別の変形例として、優先アプレットテーブル200には、通常アプレットテーブル210から移動又はコピーされたAID以外に、予め外部(ユーザも含む)から指定されたアプレットのAIDが固定的に設定される構成でもよい。予め使用されることが想定されるアプレットについては、優先アプレットテーブル200にAIDを固定的に設定することにより、アプレットを実行可能に設定する処理時間の短縮化を図ることができる。具体的には、例えばプログラム(アプレット又はアプリケーション)などを、ICカード10にダウンロードするためのアプレットのAIDなどである。
【0059】
(第2の実施形態)
以下、図11から図14を参照して、第2の本実施形態に関するアプレット設定処理を説明する。
【0060】
本実施形態は、フラッシュEEPROM130には、図12に示すように、各アプレットを選択するためのテーブル情報として、単一のアプレットテーブル230が格納される。また、フラッシュEEPROM130には、図11に示すように、各アプレットの使用頻度を示す使用頻度テーブル情報220が格納される。
【0061】
本実施形態では、ICカード10のCPU100は、使用頻度テーブル情報220からアプレットごとの使用頻度を算出し、アプレットテーブル230上で使用頻度の高い順にアプレットのAIDを並び替える。これにより、常に、CPU100は、アプレットテーブル230の先頭から使用頻度の高い順にAIDを検索することができる。
【0062】
以下、主として図13及び図14のフローチャートを参照して、本実施形態のアプレット設定処理の手順を説明する。
【0063】
まず、ICカード10は、例えばクレジットカード用の端末装置(リーダ/ライタ)20と接触又は非接触状態で接続すると、例えばAPDUのインターフェース規格によるコマンドが送信される。CPU100は、当該コマンドに含まれるAID(アプレットの識別情報)を取得すると、該当するアプレットを選択して実行可能に設定する処理を実行する。
【0064】
本実施形態のアプレット設定手順としては、CPU100は、図12に示すようなアプレットテーブル230の先頭(Index=0)から検索を開始する(ステップS51)。アプレットを示すAIDがセットされていなければ(ヒットしない場合)、CPU100は、NULL(機能不可)を端末装置20に返す(ステップS52のNO,S57)。
【0065】
CPU100は、アプレットテーブル230にセットされているAIDを先頭から順次チェックし、該当するアプレットに対応するAID(例えばApplet5とする)を検索する(ステップS52,S53)。CPU100は、該当するAIDを検索すると(ヒットすると)、後述するように、当該アプレットテーブル230の更新処理を実行する(ステップS53のYES,S55)。CPU100は、該当するAIDがヒットするまで、アプレットテーブル230を検索する(ステップS53のNO,S54)。
【0066】
さらに、CPU100は、該当するAID(Applet5)を端末装置20に返し、所定のアプレット設定処理に移行する(ステップS56)。即ち、フラッシュEEPROM130から該当するAID(Applet5)のアプレットを選択して、実行可能なようにRAM110に設定する。
【0067】
(テーブル更新処理)
次に、図14のフローチャートを参照して、アプレットテーブル230の更新処理(図13のステップS55)の手順を説明する。
【0068】
まず、CPU100は、アプレットテーブル230から該当アプレットのAID(Applet5)をヒットさせると、図11に示す使用頻度テーブル情報220を参照して、該当AID(Applet5)の使用頻度(Faとする)を更新(インクリメント)する(ステップS61)。
【0069】
次に、CPU100は、アプレットテーブル230において、該当AID(Index=1)より上位の位置(Index=0)にあるAID(ここではApplet2)を選択する(ステップS62)。CPU100は、使用頻度テーブル情報220を参照して、該当AID(Applet5)の使用頻度(Fa)と、ステップS62で選択したAID(Applet2)の使用頻度(Fb)との大小を比較する(ステップS63)。
【0070】
比較結果が該当AID(Applet5)の使用頻度(Fa)の方が小さい場合には、アプレットテーブル230の順位を変更する必要が無いため、テーブル更新処理は終了となる(ステップS63のNO)。
【0071】
一方、今回選択したアプレットの該当AID(Applet5)の使用頻度(Fa)の方が仕様頻度(Fb)より大きくなると、CPU100は、アプレットテーブル230の順位を変更する処理を実行する(ステップS63のYES)。即ち、CPU100は、上位の位置(Index=0)にあるAID(Applet2)と、該当AID(Applet5)の位置(Index=1)とを入れ替える(ステップS64)。従って、アプレットテーブル230では、元の位置(Index=1)より一つ上位(Index=0)に該当AID(Applet5)が設定されて、次の位置(Index=1)にApplet2のAIDが設定される。このような更新処理が繰り返されることにより、アプレットテーブル230は、使用頻度の高い順に、先頭から各AIDが設定される(ステップS65)。
【0072】
以上要するに本実施形態のアプレット設定方法であれば、CPU100は、端末装置20からのコマンド(外部からの指示)に応じて、該当するアプレットのAIDを、使用頻度の高い順に設定されたアプレットテーブル230から検索する。一般的に、使用頻度の高いアプレットは繰り返し使用されることが多いため、アプレットテーブル230の相対的に上位の位置から該当するAIDをヒットする確率が高くなる。従って、本実施形態のICカード10は、インストールされいる全アプレットを検索することなく、外部からコマンドで指定されたアプレットを短時間で選択して実行可能に設定することができる。
【0073】
なお、本実施形態は、前述の第1の実施形態と比較して、各アプレットごとの使用頻度を管理するテーブル情報220が必要となるが、一方で、優先テーブル情報のような特別のテーブル情報を要することなく、単一のテーブル情報230によりアプレットの設定処理を実行できる。
【0074】
なお、各本実施形態及び変形例において、いわゆるJavaOSを適用したJavaカードを想定したが、これに限定されること無く、他のOS規格によるマルチアプリケーション型のICカードにも適用することができる。
【0075】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0076】
【発明の効果】
以上詳述したように本発明によれば、マルチアプリケーション型のICカードにおいて、指定のアプリケーション(またはアプレット)を選択して設定する処理時間の短縮化を図ることができるICカードを提供することができる。
【0077】
具体的には、請求項1に係る発明であれば、優先テーブル情報から優先的に指定のアプリケーションの識別情報を検索する構成により、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。請求項2に係る発明であれば、テーブル情報を優先テーブル情報と通常テーブル情報とに分割することにより、優先テーブル情報から優先的に検索して、次に通常テーブル情報を検索するため、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。請求項3に係る発明であれば、優先テーブル情報としては通常テーブル情報から選択された識別情報をコピーすることにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。請求項4に係る発明であれば、全ての識別情報ではなく、使用頻度の高いアプリケーションに対応する識別情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。請求項5に係る発明であれば、テーブル情報を検索したときに、常に使用頻度の高いアプリケーションに対応する識別情報の検索順位が高くなるため、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。請求項6に係る発明であれば、全ての識別情報ではなく、優先テーブル情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。請求項7に係る発明であれば、全ての識別情報ではなく、使用頻度の高いアプリケーションに対応する識別情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【図面の簡単な説明】
【図1】 本発明の第1及び第2の各実施形態に関するICカードの構成を示すブロック図。
【図2】 第1の実施形態に関するテーブル情報の構造を説明するための図。
【図3】 同実施形態に関する優先及び通常の各テーブル情報の機能を説明するための図。
【図4】 同実施形態に関する優先アプレットテーブルの更新処理を説明するための図。
【図5】 同実施形態に関する通常アプレットテーブルの更新処理を説明するための図。
【図6】 同実施形態に関するアプレット設定処理の手順を説明するためのフローチャート。
【図7】 同実施形態に関する優先アプレットテーブルの更新処理を説明するためのフローチャート。
【図8】 同実施形態の変形例に関する優先及び通常アプレットテーブルの構成を説明するための図。
【図9】 同実施形態に関する優先及び通常アプレットテーブルの更新処理を説明するためのフローチャート。
【図10】 同変形例に関する優先及び通常アプレットテーブルの更新処理を説明するためのフローチャート。
【図11】 第2の実施形態に関するアプレットの使用頻度テーブル情報の構成を示す図。
【図12】 第2の実施形態に関するアプレットテーブルの構成を示す図。
【図13】 第2の実施形態に関するアプレット設定処理の手順を説明するためのフローチャート。
【図14】 第2の実施形態に関するアプレットテーブルの更新処理を説明するためのフローチャート。
【符号の説明】
10…ICカード、20…端末装置(リーダ/ライタ)、100…CPU、
110…RAM、120…ROM、130…フラッシュEEPROM、
200…優先アプレットテーブル、210…通常アプレットテーブル、
220…使用頻度テーブル情報、230…アプレットテーブル。
[0001]
BACKGROUND OF THE INVENTION
The present invention generally relates to a multi-application type IC card, and more particularly to a technique capable of setting an application having a high priority order to be executable.
[0002]
[Prior art]
In recent years, multi-application type IC cards capable of executing a plurality of applications have been developed. This IC card includes, for example, a plurality of applications (Java) in which an OS such as a MULTIS (registered trademark) standard OS (Operation System) for cards and Java (registered trademark) is incorporated and stored in an internal memory (for example, flash EEPROM). Has a function of executing an application selected from an applet.
[0003]
With such a multi-application type IC card, for example, one function such as a credit card, a point card for selling goods and services, or a commuter pass or prepaid card used in an automatic ticket gate such as a railroad. It is possible to realize a multi-function card integrated with the card.
[0004]
[Problems to be solved by the invention]
In a multi-application type IC card, an internal CPU selects and executes an application (or applet) that realizes a designated function. For example, identification information called AID (Application ID) of 5 to 16 bytes is assigned to each application. Each AID is stored as table information in an internal memory such as a flash EEPROM. The CPU searches the table information for the AID corresponding to the AID designated from the outside, and sets the application corresponding to the searched AID to be executable.
[0005]
Here, when retrieving the table information, the CPU sequentially retrieves the AIDs whose order is fixedly set. For this reason, the CPU always searches from the top of the table information even though there is an application with a high probability of being selected according to the usage pattern. Therefore, especially when the number of applications prepared in the IC card increases, the processing time for selecting and setting a designated application affects the execution efficiency of the application.
[0006]
SUMMARY OF THE INVENTION An object of the present invention is to provide an IC card that can shorten the processing time for selecting and setting a designated application in a multi-application type IC card.
[0007]
[Means for Solving the Problems]
An aspect of the present invention relates to a configuration of application table information for realizing a reduction in processing time for selecting and setting a specified application to be executable in a multi-application type IC card.
[0008]
The invention according to claim 1 is table information including first memory means for storing a plurality of applications and an identification information group for identifying the applications, and identification information corresponding to applications that can be set preferentially And a second memory means for storing the priority table information, and according to an instruction from the outside, the corresponding identification information is preferentially searched from the priority table information, and an application corresponding to the searched identification information is An IC card comprising control means for reading from the first memory means and setting it to be executable.
[0009]
With such a configuration, it is possible to shorten the processing time for selecting and setting an application that has a high possibility of being specified by searching with priority table information instead of all identification information. .
[0010]
According to a second aspect of the present invention, in the IC card, the second memory means stores, as the table information, normal table information including identification information other than identification information included in the priority table information, and the control The means is configured to search from the normal table information when the corresponding identification information cannot be searched from the priority table information.
[0011]
In such a configuration, the table information is divided into priority table information and normal table information, so that the priority table information can be preferentially searched, and then the normal table information can be searched. The processing time for selecting and setting a highly applicable application can be shortened.
[0012]
The invention according to claim 3 is the IC card, wherein the second memory means stores normal table information including all identification information including identification information included in the priority table information as the table information, The control means is configured to search from the normal table information when the corresponding identification information cannot be searched from the priority table information.
[0013]
With such a configuration, as the priority table information, the identification information selected from the normal table information is copied, thereby shortening the processing time for selecting and setting the application that is likely to be specified. it can.
[0014]
The invention according to claim 4 is a first memory means for storing a plurality of applications, a second memory means for storing table information including an identification information group for identifying each application, and each of the applications. Third memory means for storing usage frequency information indicating the usage frequency, and the corresponding identification information is searched from the table information in response to an instruction from the outside, and the application corresponding to the searched identification information is the first Control means for preferentially retrieving identification information indicating a relatively high use frequency from the table information based on the use frequency information when reading from the memory means and setting it to be executable is there.
[0015]
With such a configuration, processing time for selecting and setting an application that has a high possibility of being specified by searching preferentially from identification information corresponding to a frequently used application instead of all identification information. Can be shortened.
[0016]
According to a fifth aspect of the present invention, in the IC card according to the sixth aspect, the control means corresponds to an application that is read from the first memory means and set to be executable, and is stored in the third memory means. And updating the table information stored in the second memory means so as to increase the search priority of identification information corresponding to an application having a relatively high usage frequency. is there.
[0017]
With such a configuration, when searching for table information, the search order of identification information corresponding to frequently used applications always increases, so the process of selecting and setting applications that are likely to be specified Time can be shortened.
[0018]
The invention according to claim 6 is an application setting method applied to an IC card that selectively executes a plurality of applications, and identification information corresponding to an application that can be set preferentially in response to an instruction from the outside. A first search step for searching for corresponding identification information from the priority table information, a first setting step for setting an application corresponding to the identification information searched by the first search step to be executable, If the search cannot be performed by one search step, the second search step searches for the corresponding identification information from the normal table information having the identification information not included in the priority table information, and the second search step searches. A second setting step for setting the application corresponding to the identification information to be executable Procedure an application setting method of execution.
[0019]
With such a configuration, it is possible to shorten the processing time for selecting and setting an application that has a high possibility of being specified by searching with priority table information instead of all identification information. .
[0020]
The invention according to claim 7 is an application setting method applied to an IC card that selectively executes a plurality of applications, wherein the IC card is an identification information group corresponding to each application, and the use of the application A search step having table information in which a search order of the identification information group is set based on use frequency information indicating a frequency, and searching for the corresponding identification information from the table information according to an instruction from the outside; and the search A setting step of setting the application corresponding to the identification information retrieved in the step to be executable, a first updating step of updating the usage frequency information corresponding to the application set in the setting step, and the first According to the usage frequency information updated by the update step, relatively high usage frequency Which is the application setting method for performing a procedure and a second updating step of updating the table information so that the search order of the identification information increases indicating.
[0021]
With such a configuration, processing time for selecting and setting an application that has a high possibility of being specified by searching preferentially from identification information corresponding to a frequently used application instead of all identification information. Can be shortened.
[0022]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
[0023]
(Configuration of IC card)
FIG. 1 is a block diagram illustrating a configuration of an IC card according to each embodiment.
[0024]
The IC card 10 has a configuration in which a microprocessor (CPU) 100 that performs control broadly and IC memories 110, 120, and 130 are incorporated in an IC chip. A multi-application type IC card (multi-function card or An integrated card).
[0025]
As will be described later, the CPU 100 selectively executes a plurality of applications (applets) based on the control of the OS of Java (registered trademark), and realizes a function for each application. Specifically, the CPU 100 executes the corresponding application, thereby using the IC card as a credit card, a point card for selling goods or services, or a commuter pass or a prepaid card used in an automatic ticket gate such as a railway. To function as.
[0026]
The IC memory includes a RAM 110, a ROM 120, and a flash EEPROM 130. The RAM 110 is mainly used as a work memory when the CPU 100 executes an application. The ROM 120 mainly stores an OS (here, Java is assumed). The flash EEPROM 130 stores a plurality of application files and table information related to the present embodiment (see FIG. 2).
[0027]
The IC card 10 is connected to a reader / writer 20 incorporated in various terminal devices (varies depending on usage forms) in contact or non-contact manner, and inputs and outputs commands and data. Specifically, the IC card 10 executes an application (applet) prepared in the flash EEPROM 130 by receiving, for example, a command according to an interface standard called APDU (Application Protocol Data Unit) from the reader / writer 20. As will be described later, the command includes an AID (Application ID) that is identification information for designating an application to be executed. Further, the IC card 10 stores various data when the application is executed in the RAM 110. The reader / writer 20 reads various data from the RAM 110.
[0028]
(Structure of the table information of the first embodiment)
In the present embodiment, it is assumed that the CPU 100 selectively executes a plurality of applets based on the control of the Java OS. Table information for selecting each applet is referred to as an applet table.
[0029]
In the present embodiment, as shown in FIG. 2, the applet table is stored in the flash EEPROM 130, and is divided and managed into a priority applet table 200 and a normal applet table 210. In the priority applet table 200, AIDs (Applet N: N = 1 to 9) selected under a predetermined condition to be described later are set in a predetermined order. In the normal applet table 210, AIDs corresponding to applications installed on the IC card 10 are set in the order of installation.
[0030]
Specifically, as shown in FIG. 3A, the priority applet table 200 is set with AIDs (Applets 2, 3, and 8) corresponding to applets that have recently been used in terms of time. Here, the size of the priority applet table 200 is limited to three. On the other hand, in the normal applet table 210, AIDs (Applets 1, 4, 5 to 7, 9) corresponding to applets that are not used for a while are set. Both applet tables 200 and 210 are searched in the order of Index numbers, starting with Index0.
[0031]
(Applet setting procedure)
The applet setting procedure according to the first embodiment will be described below with reference to FIGS. 3 to 5 and the flowcharts of FIGS.
[0032]
First, when the IC card 10 is connected to, for example, a credit card terminal device (reader / writer) 20 in a contact or non-contact state, a command based on, for example, the APDU interface standard is transmitted from the terminal device 20. When the CPU 100 acquires AID (applet identification information) included in the command, the CPU 100 executes processing for selecting the corresponding applet and setting it to be executable. Specifically, the CPU 100 selects a corresponding applet from the flash EEPROM 130 and sets it in the RAM 110. Thereby, the CPU 100 executes an applet (that is, an application) for realizing a credit card function, for example.
[0033]
As an applet setting procedure, the CPU 100 starts a search from the top (Index = 0) of the priority applet table 200 as shown in FIG. 3A (step S1). Here, if an AID indicating an applet is not set in the priority applet table 200 (when there is no hit), the CPU 100 shifts to the normal applet table 210 search (NO in step S2, S7).
[0034]
The CPU 100 sequentially checks the AIDs set in the priority applet table 200 from the top, and searches for an AID (here, Applet 8) corresponding to the corresponding applet (steps S3 and S4). When the CPU 100 searches for the corresponding AID (hits), the CPU 100 executes an update process of the priority applet table 200 as described later (step S5).
[0035]
Further, the CPU 100 returns the corresponding AID (Applet8) to the terminal device 20, and proceeds to a predetermined applet setting process (step S6). That is, an applet having a corresponding AID (Applet 8) is selected from the flash EEPROM 130 and set in the RAM 110 so as to be executable.
[0036]
On the other hand, if there is no corresponding AID in the priority applet table 200, the CPU 100 starts the search from the head (Index = 0) of the normal applet table 210 as shown in FIG. 3B (step S7). That is, the CPU 100 sequentially checks the AID set in the normal applet table 210 from the top, and searches for the AID corresponding to the corresponding applet (steps S8 to S10).
[0037]
Here, when the corresponding AID is not set in the normal applet table 210 (the corresponding applet is not installed), the CPU 100 returns NULL (function impossible) to the terminal device 20 (NO in step S8, S12). ).
[0038]
When the CPU 100 searches for the corresponding AID (hits), the CPU 100 executes an update process of the normal applet table 210 as described later (step S11). Then, the CPU 100 returns the corresponding AID to the terminal device 20, and proceeds to a predetermined applet setting process (step S6).
[0039]
(Table update process)
Next, the procedure of the update process of the priority applet table 200 (step S5 in FIG. 6) will be described with reference to the flowchart in FIG.
[0040]
As shown in FIG. 3A, the CPU 100 assumes a case where the corresponding AID (Applet8) in the third (Index = 2) is searched instead of the top of the priority applet table 200 (step S21). NO). As shown in FIG. 4A, the CPU 100 sets the AID (Applet8) to the top (Index = 0) of the priority applet table 200 (step S22).
[0041]
Therefore, after moving the AID (Applet8) to the register (Temp Applet) of the RAM 110, the CPU 100 moves the AID (Applet2) at the head (Index = 0) to the next position (Index = 1). In addition, the AID (Applet3) at the next position (Index = 1) is moved to the position (Index = 2) of the AID (Applet8). Finally, the AID (Applet8) saved in the register (Temp Applet) of the RAM 110 is set to the head (Index = 0). Of course, as shown in FIG. 4B, the setting order of the normal applet table 210 is not changed.
[0042]
In addition, with reference to the flowchart of FIG. 9, the procedure of the update process (step S11) of the priority and normal applet tables 200 and 210 when the corresponding AID (here, Applet 5) is searched from the normal applet table 210 will be described. To do.
[0043]
Here, as shown in FIG. 4B, the CPU 100 does not have the corresponding AID (Applet5) in the priority applet table 200, but is searched and executed from the third (Index = 2) of the normal applet table 210. Is assumed. At this time, as shown in FIG. 4A, the priority applet table 200 is set with each AID (Applet 8, 2, 3) from the head (Index = 0) to the third position (Index = 2). Yes.
[0044]
First, the CPU 100 moves the AID (Applet3) set at the last position (Index = N) of the priority applet table 200 to the register (Temp Applet) of the RAM 110 (steps S30 and S31). Here, N becomes “2” according to the set size (here, the upper limit is 3) of the priority applet table 200.
[0045]
Next, the CPU 100 moves the AID (Applet2) set in the position (Index-1) of the priority applet table 200 to the last position (Index = 2) (YES in Step S32, S33). By repeating this, the head position (Index = 0) of the priority applet table 200 is made free (NO in steps S34 and S32).
[0046]
Further, as shown in FIG. 4B, the CPU 100 moves the corresponding AID (Applet5) in the normal applet table 210 to the head (Index = 0) of the priority applet table 200 (step S35). As a result, as shown in FIG. 5A, the priority applet table 200 is set with each AID (Applet 5, 8, 2) from the top to the third position (Index = 2).
[0047]
Next, the CPU 100 moves the higher AID (Applet4) to the position (Index = M, where M is 2) of the corresponding AID (Applet5) moved from the normal applet table 210 (steps S36 to S38). ). By repeating this, the head position (Index = 0) of the normal applet table 210 is made free (NO in steps S39 and S37).
[0048]
Then, as shown in FIG. 5B, the CPU 100 moves the AID (Applet3) set in the register (Temp Applet) of the RAM 110 to the head (Index = 0) of the normal applet table 210 (step S40). .
[0049]
In short, in the applet setting method of the present embodiment, the CPU 100 first searches the priority applet table 200 for the AID of the corresponding applet in response to a command from the terminal device 20 (an instruction from the outside). For example, the normal applet table 210 is searched. Here, the priority applet table 200 is set with AIDs of applets that have been recently used in terms of time. In general, recently used applets are often used repeatedly, and thus there is a high probability that the corresponding AID is hit from the priority applet table 200.
[0050]
Further, when a corresponding AID is hit from the priority applet table 200, a table update process is performed in which the currently hit AID is moved to the top in the table 200. When the corresponding AID is hit from the normal applet table 210, a table update process for moving the hit AID to the top of the priority applet table 200 is executed. Therefore, in the priority applet table 200, the AID of the applet recently used in terms of time is always set to the highest priority order at the top. The normal applet table 210 is also set in the order used recently. As a result, the IC card 10 of this embodiment can select and set an applet designated by an external command in a short time without searching for all installed applets.
[0051]
(Modification)
FIG. 8 is a diagram related to a modified example of the present embodiment.
[0052]
In the present embodiment, the applet table information is divided and managed into a priority applet table 200 and a normal applet table 210, a recently used AID is assigned to the table 200, and each AID of all applets is assigned to 210.
[0053]
In this modified example, as shown in FIG. 8A, the setting contents of the priority applet table 200 are the same as those in the present embodiment. However, as shown in FIG. All the AIDs corresponding to are set. With such a configuration, there is an effect that the process of moving the AID from the priority applet table 200 to the normal applet table 210 can be omitted. The priority AID selected from the normal applet table 210 is copied to the priority applet table 200.
[0054]
Hereinafter, the procedure of the table update process regarding this modification will be described with reference to the flowchart shown in FIG. In this modification, it is assumed that the AID (Applet5) is selected and the applet (that is, application) is executed by the CPU 100.
[0055]
First, the CPU 100 moves the AID (Applet8) set at the end position (Index = N) of the priority applet table 200 to the register (Temp Applet) of the RAM 110 (Steps S41 and S42). Here, N is “2” in accordance with the set size (here, the upper limit is 3) of the priority applet table 200.
[0056]
Next, the CPU 100 moves the AID (Applet3) set in the position (Index-1) of the priority applet table 200 to the last position (Index = 2) (YES in Step S43, S44). By repeating this, the head position (Index = 0) of the priority applet table 200 is made free (NO in steps S45 and S43).
[0057]
Further, as shown in FIG. 8B, the CPU 100 copies the corresponding AID (Applet5) in the normal applet table 210 to the head (Index = 0) of the priority applet table 200 (step S46). As a result, the AID (Applet5) hit in the current search is set at the top of the priority applet table 200. In this modification, as shown in FIG. 8B, all the AIDs including the last AID of the priority applet table 200 are set in the normal applet table 210. Thus, it is not necessary to move the AID saved in the register (Temp Applet) of the RAM 110 to the normal applet table 210.
[0058]
As another modification, in the priority applet table 200, in addition to the AID moved or copied from the normal applet table 210, the AID of the applet designated in advance from the outside (including the user) is fixedly set. It may be configured. For applets that are assumed to be used in advance, the processing time for setting applets to be executable can be shortened by fixedly setting the AID in the priority applet table 200. Specifically, for example, an AID of an applet for downloading a program (applet or application) or the like to the IC card 10.
[0059]
(Second Embodiment)
Hereinafter, an applet setting process according to the second embodiment will be described with reference to FIGS.
[0060]
In the present embodiment, as shown in FIG. 12, a single applet table 230 is stored in the flash EEPROM 130 as table information for selecting each applet. Further, as shown in FIG. 11, usage frequency table information 220 indicating the usage frequency of each applet is stored in the flash EEPROM 130.
[0061]
In the present embodiment, the CPU 100 of the IC card 10 calculates the usage frequency for each applet from the usage frequency table information 220 and rearranges the AIDs of the applets on the applet table 230 in descending order of usage frequency. Thus, the CPU 100 can always search for AIDs in descending order of use frequency from the top of the applet table 230.
[0062]
Hereinafter, the procedure of the applet setting process of this embodiment will be described mainly with reference to the flowcharts of FIGS.
[0063]
First, when the IC card 10 is connected to, for example, a credit card terminal device (reader / writer) 20 in a contact or non-contact state, a command based on, for example, an APDU interface standard is transmitted. When the CPU 100 acquires AID (applet identification information) included in the command, the CPU 100 executes processing for selecting the corresponding applet and setting it to be executable.
[0064]
As an applet setting procedure of this embodiment, the CPU 100 starts a search from the top (Index = 0) of the applet table 230 as shown in FIG. 12 (step S51). If the AID indicating the applet is not set (if it does not hit), the CPU 100 returns NULL (function impossible) to the terminal device 20 (NO in step S52, S57).
[0065]
The CPU 100 sequentially checks the AID set in the applet table 230 from the top, and searches for an AID (for example, Applet 5) corresponding to the applet (steps S52 and S53). When the CPU 100 searches for the corresponding AID (when hit), the CPU 100 executes an update process of the applet table 230 as described later (YES in step S53, S55). The CPU 100 searches the applet table 230 until the corresponding AID is hit (NO in step S53, S54).
[0066]
Further, the CPU 100 returns the corresponding AID (Applet5) to the terminal device 20, and proceeds to a predetermined applet setting process (step S56). That is, an applet having a corresponding AID (Applet 5) is selected from the flash EEPROM 130 and set in the RAM 110 so as to be executable.
[0067]
(Table update process)
Next, the procedure of the update process of the applet table 230 (step S55 in FIG. 13) will be described with reference to the flowchart in FIG.
[0068]
First, when the CPU 100 hits the AID (Applet5) of the applet from the applet table 230, the CPU 100 updates the usage frequency (referred to as Fa) of the corresponding AID (Applet5) with reference to the usage frequency table information 220 shown in FIG. (Increment) (step S61).
[0069]
Next, in the applet table 230, the CPU 100 selects an AID (in this case, Applet2) at a position (Index = 0) higher than the corresponding AID (Index = 1) (step S62). The CPU 100 refers to the usage frequency table information 220 and compares the usage frequency (Fa) of the corresponding AID (Applet5) with the usage frequency (Fb) of the AID (Applet2) selected in step S62 (step S63). ).
[0070]
If the comparison result indicates that the usage frequency (Fa) of the corresponding AID (Applet5) is smaller, it is not necessary to change the order of the applet table 230, and thus the table update process ends (NO in step S63).
[0071]
On the other hand, when the usage frequency (Fa) of the corresponding AID (Applet5) of the applet selected this time becomes larger than the specification frequency (Fb), the CPU 100 executes a process of changing the order of the applet table 230 (YES in step S63). ). That is, the CPU 100 replaces the AID (Applet2) at the upper position (Index = 0) with the position (Index = 1) of the corresponding AID (Applet5) (step S64). Accordingly, in the applet table 230, the corresponding AID (Applet5) is set one level higher than the original position (Index = 1) (Index = 0), and the AID of Applet2 is set to the next position (Index = 1). The By repeating such an updating process, each AID is set from the top in the applet table 230 in descending order of use frequency (step S65).
[0072]
In short, in the applet setting method according to the present embodiment, the CPU 100 sets the AID of the corresponding applet in the order of frequency of use according to the command from the terminal device 20 (external instruction). Search from. In general, frequently used applets are frequently used repeatedly, so that the probability of hitting the corresponding AID from a relatively higher position in the applet table 230 increases. Therefore, the IC card 10 of this embodiment can select and set an applet designated by a command from outside in a short time without searching for all installed applets.
[0073]
Note that this embodiment requires table information 220 for managing the usage frequency for each applet as compared with the first embodiment described above. On the other hand, special table information such as priority table information is required. Therefore, the applet setting process can be executed with the single table information 230.
[0074]
In each of the embodiments and modifications, a Java card to which a so-called Java OS is applied is assumed. However, the present invention is not limited to this, and can be applied to a multi-application type IC card according to another OS standard.
[0075]
Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the components without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.
[0076]
【The invention's effect】
As described above in detail, according to the present invention, it is possible to provide an IC card capable of shortening the processing time for selecting and setting a designated application (or applet) in a multi-application type IC card. it can.
[0077]
Specifically, with the invention according to claim 1, the processing time for selecting and setting an application that has a high possibility of being specified by a configuration in which the identification information of the specified application is preferentially searched from the priority table information. Can be shortened. In the invention according to claim 2, the table information is divided into priority table information and normal table information, so that the priority table information is searched first and then the normal table information is searched. It is possible to shorten the processing time for selecting and setting an application having a high possibility of being processed. In the invention according to claim 3, by copying the identification information selected from the normal table information as the priority table information, the processing time for selecting and setting the application that is highly likely to be specified is shortened. be able to. If it is the invention which concerns on Claim 4, it will select and set the application with high possibility of being specified by searching preferentially from the identification information corresponding to the application with high use frequency instead of all the identification information. Processing time can be shortened. In the invention according to claim 5, when the table information is searched, the search order of the identification information corresponding to the application that is frequently used is always high. Therefore, the application that is likely to be specified is selected and set. Processing time can be shortened. If it is the invention which concerns on Claim 6, it will shorten the processing time which selects and sets the application with high possibility of being specified by searching with priority table information preferentially instead of all identification information. Can do. If it is the invention which concerns on Claim 7, it will select and set the application with high possibility of being specified by searching preferentially from the identification information corresponding to the application with high use frequency instead of all the identification information. Processing time can be shortened.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an IC card according to first and second embodiments of the present invention.
FIG. 2 is a view for explaining the structure of table information related to the first embodiment;
FIG. 3 is a diagram for explaining functions of priority and normal table information related to the embodiment;
FIG. 4 is a view for explaining a priority applet table update process according to the embodiment;
FIG. 5 is a diagram for explaining a normal applet table update process according to the embodiment;
FIG. 6 is an exemplary flowchart for explaining the procedure of applet setting processing according to the embodiment;
FIG. 7 is a flowchart for explaining a priority applet table update process according to the embodiment;
FIG. 8 is a view for explaining the configuration of priority and normal applet tables according to a modification of the embodiment.
FIG. 9 is a flowchart for explaining priority and normal applet table update processing according to the embodiment;
FIG. 10 is a flowchart for explaining priority and normal applet table update processing according to the modification.
FIG. 11 is a diagram showing a configuration of applet use frequency table information according to the second embodiment.
FIG. 12 is a diagram showing a configuration of an applet table according to the second embodiment.
FIG. 13 is a flowchart for explaining the procedure of applet setting processing according to the second embodiment;
FIG. 14 is a flowchart for explaining applet table update processing according to the second embodiment;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 ... IC card, 20 ... Terminal device (reader / writer), 100 ... CPU,
110 ... RAM, 120 ... ROM, 130 ... flash EEPROM,
200 ... Priority applet table, 210 ... Normal applet table,
220 ... Use frequency table information, 230 ... Applet table.

Claims (7)

複数のアプリケーションを記憶する第1のメモリ手段と、
前記各アプリケーションを識別する識別情報群を含むテーブル情報であって、優先的に設定可能なアプリケーションに対応する識別情報を有する優先テーブル情報を記憶する第2のメモリ手段と、
外部からの指示に応じて、優先的に前記優先テーブル情報から該当する識別情報を検索し、検索された当該識別情報に対応するアプリケーションを前記第1のメモリ手段から読出して実行可能に設定する制御手段と
を具備したことを特徴とするICカード。
First memory means for storing a plurality of applications;
Second memory means for storing priority table information including identification information group for identifying each application and having identification information corresponding to a preferentially settable application;
Control for preferentially retrieving corresponding identification information from the priority table information in accordance with an instruction from the outside, and reading an application corresponding to the retrieved identification information from the first memory means and setting it to be executable And an IC card.
前記第2のメモリ手段は、前記テーブル情報として、前記優先テーブル情報に含まれる識別情報以外の識別情報を含む通常テーブル情報を記憶し、
前記制御手段は、前記優先テーブル情報から該当する識別情報を検索できないときには、前記通常テーブル情報から検索することを特徴とする請求項1に記載のICカード。
The second memory means stores normal table information including identification information other than the identification information included in the priority table information as the table information,
2. The IC card according to claim 1, wherein the control means searches from the normal table information when the corresponding identification information cannot be searched from the priority table information.
前記第2のメモリ手段は、前記テーブル情報として、前記優先テーブル情報に含まれる識別情報を含む全識別情報を有する通常テーブル情報を記憶し、
前記制御手段は、前記優先テーブル情報から該当する識別情報を検索できないときには、前記通常テーブル情報から検索することを特徴とする請求項1に記載のICカード。
The second memory means stores normal table information having all identification information including identification information included in the priority table information as the table information,
2. The IC card according to claim 1, wherein the control means searches from the normal table information when the corresponding identification information cannot be searched from the priority table information.
複数のアプリケーションを記憶する第1のメモリ手段と、
前記各アプリケーションを識別する識別情報群を含むテーブル情報を記憶する第2のメモリ手段と、
前記各アプリケーションのそれぞれの使用頻度を示す使用頻度情報を記憶する第3のメモリ手段と、
外部からの指示に応じて前記テーブル情報から該当する識別情報を検索し、検索された当該識別情報に対応するアプリケーションを前記第1のメモリ手段から読出して実行可能に設定するときに、前記使用頻度情報に基づいて相対的に高い使用頻度を示す識別情報を前記テーブル情報から優先的に検索する制御手段と
を具備したことを特徴とするICカード。
First memory means for storing a plurality of applications;
Second memory means for storing table information including an identification information group for identifying each application;
Third memory means for storing usage frequency information indicating the usage frequency of each application;
When the corresponding identification information is searched from the table information according to an instruction from the outside, and the application corresponding to the searched identification information is read from the first memory means and set to be executable, the use frequency An IC card comprising: control means for preferentially searching identification information indicating a relatively high use frequency based on information from the table information.
前記制御手段は、前記第1のメモリ手段から読出して実行可能に設定したアプリケーションに対応し、前記第3のメモリ手段に記憶された前記使用頻度情報を更新し、
相対的に高い使用頻度を示すアプリケーションに対応する識別情報の検索優先順位が高くなるように前記第2のメモリ手段に記憶された前記テーブル情報を更新することを特徴とする請求項4に記載のICカード。
The control means corresponds to an application that is read from the first memory means and set to be executable, and updates the use frequency information stored in the third memory means,
5. The table information stored in the second memory means is updated so that the search priority of identification information corresponding to an application showing a relatively high use frequency becomes higher. IC card.
複数のアプリケーションを選択的に実行するICカードに適用するアプリケーション設定方法であって、
外部からの指示に応じて、優先的に設定可能なアプリケーションに対応する識別情報を有する優先テーブル情報から該当する識別情報を検索する第1の検索ステップと、
前記第1の検索ステップにより検索された識別情報に対応するアプリケーションを実行可能に設定する第1の設定ステップと、
前記第1の検索ステップにより検索できない場合には、前記優先テーブル情報に含まれない識別情報を有する通常テーブル情報から該当する識別情報を検索する第2の検索ステップと、
前記第2の検索ステップにより検索された識別情報に対応するアプリケーションを実行可能に設定する第2の設定ステップと
を有する手順を実行することを特徴とするアプリケーション設定方法。
An application setting method applied to an IC card that selectively executes a plurality of applications,
A first search step of searching for corresponding identification information from priority table information having identification information corresponding to an application that can be preferentially set according to an instruction from the outside;
A first setting step for setting an application corresponding to the identification information searched in the first search step to be executable;
A second search step of searching for the corresponding identification information from the normal table information having identification information not included in the priority table information, when the search cannot be performed by the first search step;
And a second setting step for setting the application corresponding to the identification information searched in the second search step to be executable.
複数のアプリケーションを選択的に実行するICカードに適用するアプリケーション設定方法であって、
前記ICカードは、
前記各アプリケーションに対応する識別情報群であって、アプリケーションの使用頻度を示す使用頻度情報に基づいて当該識別情報群の検索順序が設定されたテーブル情報を有し、
外部からの指示に応じて前記テーブル情報から該当する識別情報を検索する検索ステップと、
前記検索ステップにより検索された識別情報に対応するアプリケーションを実行可能に設定する設定ステップと、
前記設定ステップにより設定されたアプリケーションに対応する前記使用頻度情報を更新する第1の更新ステップと、
前記第1の更新ステップにより更新された使用頻度情報に従って、相対的に高い使用頻度を示す識別情報の検索順位が高くなるように前記テーブル情報を更新する第2の更新ステップと
を有する手順を実行することを特徴とするアプリケーション設定方法。
An application setting method applied to an IC card that selectively executes a plurality of applications,
The IC card is
An identification information group corresponding to each application, the table information in which the search order of the identification information group is set based on the usage frequency information indicating the usage frequency of the application,
A search step for searching for relevant identification information from the table information in accordance with an instruction from the outside;
A setting step for setting an application corresponding to the identification information searched in the search step to be executable;
A first update step of updating the use frequency information corresponding to the application set by the setting step;
Executing a procedure having a second update step of updating the table information so that a search order of identification information indicating a relatively high use frequency becomes higher according to the use frequency information updated by the first update step An application setting method characterized by:
JP2003125646A 2003-04-30 2003-04-30 IC card and application setting method thereof Expired - Fee Related JP4196721B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003125646A JP4196721B2 (en) 2003-04-30 2003-04-30 IC card and application setting method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003125646A JP4196721B2 (en) 2003-04-30 2003-04-30 IC card and application setting method thereof

Publications (2)

Publication Number Publication Date
JP2004334316A JP2004334316A (en) 2004-11-25
JP4196721B2 true JP4196721B2 (en) 2008-12-17

Family

ID=33502849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003125646A Expired - Fee Related JP4196721B2 (en) 2003-04-30 2003-04-30 IC card and application setting method thereof

Country Status (1)

Country Link
JP (1) JP4196721B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI747561B (en) 2020-10-19 2021-11-21 創意電子股份有限公司 Performance calculation system, performance calculation method, and electronic device

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044801A (en) * 2001-07-27 2003-02-14 Dainippon Printing Co Ltd Portable information processor provided with a plurality of information transmitting means
JP4765579B2 (en) * 2005-11-25 2011-09-07 株式会社日立製作所 Information distribution method
US8410908B2 (en) 2005-12-30 2013-04-02 Nokia Corporation Method and device for emulating multiple RFID tags within a single mobile electronic device
KR100757533B1 (en) 2006-06-19 2007-09-11 주식회사 케이티프리텔 Smart card for supporting high speed communication
JP4967543B2 (en) * 2006-09-01 2012-07-04 大日本印刷株式会社 Information recording medium, information recording medium application execution method and program
EP2273748A1 (en) * 2009-07-09 2011-01-12 Gemalto SA Method of managing an application embedded in a secured electronic token
WO2011111307A1 (en) * 2010-03-11 2011-09-15 パナソニック株式会社 Near field communication device, application program, host and near field communication system
JP2011215833A (en) * 2010-03-31 2011-10-27 Toshiba Corp Portable electronic device and ic card
EP3147779A4 (en) * 2014-05-29 2017-05-31 Agoop Corp. Program and information processing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI747561B (en) 2020-10-19 2021-11-21 創意電子股份有限公司 Performance calculation system, performance calculation method, and electronic device

Also Published As

Publication number Publication date
JP2004334316A (en) 2004-11-25

Similar Documents

Publication Publication Date Title
JP3820999B2 (en) Proximity communication system and proximity communication method, data management apparatus and data management method, storage medium, and computer program
JP4196721B2 (en) IC card and application setting method thereof
EP0451936A1 (en) Program control system for portable data storage device
US6286757B1 (en) Portable electronic apparatus
US20080284572A1 (en) Data control system, control server, data control method, and program
JP4443699B2 (en) Portable electronic device and method for controlling portable electronic device
KR100273614B1 (en) Ic card
JP2004348234A (en) Portable electronic medium, issuing apparatus of portable electronic medium, issuing system of portable electronic medium, and issuing method of portable electronic medium
US7346730B2 (en) Mobile electronic device
CN109669628B (en) Data storage management method and device based on flash equipment
JP7563536B1 (en) IC card, semiconductor chip, internal state restoration method, and computer program
JP2012133656A (en) Portable electronic apparatus and ic card
JP6769150B2 (en) Electronic information storage media, information processing methods, and information processing programs
JP2008146343A (en) Ic card, and method for calling update program
JP6915338B2 (en) IC card
JP7363844B2 (en) How to manage access to secure elements and data objects
JP6948021B2 (en) Electronic information storage media, information processing methods, and information processing programs
JP2003150913A (en) Portable electronic device, file selecting method of portable electronic device and host device
JP7468765B1 (en) ELECTRONIC INFORMATION STORAGE MEDIUM, IC CHIP, IC CARD, ALL-IN-ONE DATA UPDATE METHOD, AND PROGRAM
JP7010084B2 (en) Token device used for IC payment
JP4517607B2 (en) Electronic device and method for updating the program
JP6933446B2 (en) Electronic information storage media, information processing methods, and information processing programs
JP2005234898A (en) Multi-application ic card with application packaged in rom, and program
JP2005025441A (en) Method for updating application program of ic card
JP2004227306A (en) Ic card with download program erasing function and download program erasing method with the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060320

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080902

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080909

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080922

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131010

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees