ここから,本発明の好適な実施形態を記載する。なお,以下の記載は本発明の技術的範囲を束縛するものでなく,理解を助けるために記述するものである。
図1は,本実施形態に係るICカード1のハードウェア構成を説明する図である。本実施形態に係るICカード1は,プラスチックなどのカード基材にICチップ2を埋め込んだカード媒体である。図1では,コンタクト端子2aを介して外部のホスト装置と物理的に接触して通信する接触型としてICカード1を図示しているが,ICカード1は,リーダライタと非接触で通信する非接触型であってもよい。また,図1では,ICカード1の外形は,ISO/IEC 7816のID−1型であるが, ETSI TS 102 221等で規格化されている小型の形態(Plug-in UICC,Mini-UICC,4FF)でもよい。
図1に図示したように,ICカード1に埋め込まれるICチップ2は,データの入出力を行うI/O24,各種演算を行うCPU(Central Processing Unit)20,一時的にデータを記憶する際に用いるメモリであるRAM(Random Access Memory)22,ICカード1が備えるコマンドのプログラムなどを記憶するROM(Read-Only Memory)21に加え,データを記憶する電気的に書き換え可能なメモリであるNVM23を備える。
図2は,本実施形態に係るICカード1のブロック図である。図2で図示したように,本実施形態に係るICカード1は,ICカード1のCPU20を動作させるコンピュータプログラムとして,インストールコマンド13,削除コマンド12,リスト出力コマンド11およびカードコンテントマネージャ10をROM21に記憶する。インストールコマンド13は,NVM23にカードコンテント17をインストールする処理を実行するコマンドで,削除コマンド12は,NVM23からカードコンテント17を削除する処理を実行するコマンドである。リスト出力コマンド11は,NVM23にインストールされたカードコンテント17それぞれが有する出力対象のデータをリスト形式で出力する処理を実行するコマンドで,本実施形態に係るリスト出力コマンド11は,カードコンテンツのインストール順に,カードコンテント17それぞれが有する出力対象のデータを出力する。カードコンテントマネージャ10は,NVM23にインストールされたカードコンテント17に係る情報を管理する処理を少なくとも実行する。なお,インストールコマンド13,削除コマンド12およびリスト出力コマンド11を記憶させるメモリはNVM23でもよい。
本実施形態に係るICカード1のNVM23には,カードコンテント17として,複数の実行可能ファイル17a(以下,「ELF17a」と記す。「ELF17a」は,Executable Load Fileの略。)と複数のアプリケーションインスタンス17b(以下,「AP」と記す。「AP」は,Application instanceの略。)がインストールされている。一つのELF17aは,AP17bが利用するためのプログラムとなる少なくとも一つの実行可能モジュールを含み,AP17bは,ELF17aに含まれる一つの実行可能モジュールと,アプリケーションデータから構成されている。
図2において,[]で括って記載している番号は,カードコンテント17がNVM23にインストールされた順番を示すインデックス番号で,これ以降,カードコンテント17に割り振られているインデックス番号を[]で括って記載する。ICカード1のNVM23には,カードコンテント17として,ELF17aとAP17bがインストールされるため,ELF17aにはELF17a用のインデックス番号が割り振られ,AP17bにはAP17b用のインデックス番号が割り振られる。
図2に従えば,ICカード1は,ELF17aとして,最初にNVM23にインストールされたELF17aであるELF17a[1],4番目にNVM23にインストールされたELF17aであるELF17a[4],および,5番目にNVM23にインストールされたELF17aであるELF17a[5]の3つがNVM23にインストールされている。なお,2番目にNVM23にインストールされたELF17a[2],および,3番目にNVM23にインストールされたELF17a[3]はNVM23から削除されており,図2では図示されていない。また,図2に従えば,ICカード1は,AP17bとして,最初にNVM23にインストールされたAP17bであるAP17b[1],3番目にNVM23にインストールされたAP17bであるAP17b[3],4番目にNVM23にインストールされたAP17bであるAP17b[4],および,6番目にNVM23にインストールされたAP17bであるAP17b[6]の4つがNVM23にインストールされている。なお,2番目にNVM23にインストールされたAP17b[2],および,5番目にNVM23にインストールされたAP17b[5]はNVM23から削除されており,図2では図示されていない。
また,本実施形態に係るICカード1は,カードコンテント17の管理に用いるレジストリ14をNVM23に記憶し,このレジストリ14は,カードコンテント17にアクセスするときに参照されるリファレンステーブル15と,カードコンテント17のインストール順に,ICカードに実装されているカードコンテント17それぞれが有する出力対象のデータを出力するときに参照されるインデックステーブル16を,カードコンテント17の種別ごとに有する。
ICカード1が有するレジストリ14に含まれるリファレンステーブル15について説明する。図3は,リファレンステーブル15を説明する図である。
図3(a)はリファレンステーブル15の構成を説明する図で,リファレンステーブル15は,NVM23にインストールしたカードコンテンツのインデックス番号とカードコンテンツのエントリー情報を含むリファレンス情報を要素の値として記憶する配列型のテーブルで,リファレンステーブル15には,NVM23にインストールしたカードコンテント17ごとにリファレンス情報が記憶される。リファレンス情報に含まれるインデックス番号は,カードコンテント17がNVM23にインストールされた順番を示すデータである。リファレンス情報に含まれるエントリー情報は,NVM23にインストールしたカードコンテント17にアクセスするための情報で,例えば,NVM23にインストールしたカードコンテント17の先頭アドレスである。なお,本実施形態に係るICカード1は,カードコンテント17して,ELF17aとAP17bをNVM23に記憶するため,本実施形態に係るICカード1のレジストリ14には,ELF用リファレンステーブル15aとAP用リファレンステーブル15bが含まれている。
カードコンテント17の削除やカードコンテント17のインストールが実行されたとき,リファレンステーブル15はカードコンテントマネージャ10によって更新される。カードコンテント17の削除が実行されると,カードコンテントマネージャ10は,削除されたカードコンテント17のリファレンス情報をリファレンステーブル15から削除する。また,カードコンテント17のインストールが実行されると,カードコンテントマネージャ10は,インストールされたカードコンテント17のリファレンス情報をリファレンステーブル15に追加する。
図3(b)は,図2に基づくELF用リファレンステーブル15aを説明する図である。図2では,ELF17a[1],ELF17a[4]およびELF17a[5]がICカード1のNVM23にインストールされているため,図4(b)で図示したELF用リファレンステーブル15aには,ELF17a[1],ELF17a[4]およびELF17a[5]それぞれのリファレンス情報が記憶されている。図3(b)では,ELF17a[1]に係るリファレンス情報は最初の要素(要素番号が「1」の要素)に記憶され,ELF17a[5]に係るリファレンス情報は2番目の要素(要素番号が「2」の要素)に記憶され,そして,ELF17a[4]に係るリファレンス情報は4番目の要素(要素番号が「4」の要素)に記憶されている。
図3(b)において,ELF17aのリファレンス情報がELF17aのインストール順に並んでおらず,また,ELF17aのリファレンス情報が書き込まれている要素の間に空要素が存在するのは,新たなELF17aをNVM23にインストールすると,カードコンテントマネージャ10によって,ELF17aのリファレンス情報が書き込まれていない最初の要素に,新たにインストールされたELF17aのリファレンス情報が書き込まれるためである。
図3(c)は,図2に基づくAP用リファレンステーブル15bを説明する図である。図2では,AP17b[1],AP17b[3],AP17b[4]およびAP17b[6]がICカード1のNVM23にインストールされているため,図3(c)で図示したAP用リファレンステーブル15bには,AP17b[1],AP17b[3],AP17b[4]およびAP17b[6]それぞれのリファレンス情報が記憶されている。図3(c)では,AP17b[1]に係るリファレンス情報は最初の要素(要素番号が「1」の要素)に記憶され,AP17b[4]に係るリファレンス情報は2番目の要素(要素番号が「2」の要素)に記憶され,AP17b[3]に係るリファレンス情報は3番目の要素(要素番号が「3」の要素)に記憶され,そして,AP17b[6]に係るリファレンス情報は5番目の要素(要素番号が「5」の要素)に記憶されている。
ELF用リファレンステーブル15aと同様に,図3(c)において,AP17bのリファレンス情報がAP17bのインストール順に並んでおらず,また,AP17bのリファレンス情報が書き込まれている要素の間に空要素が存在するのは,新たなAP17bをNVM23にインストールすると,カードコンテントマネージャ10によって,AP17bのリファレンス情報が書き込まれていない最初の要素に,新たにインストールされたAP17bのリファレンス情報が書き込まれるためである。
ICカード1が有するレジストリ14に含まれるインデックステーブル16について説明する。図4は,インデックステーブル16を説明する図である。
図4(a)はインデックステーブル16の構成を説明する図で,インデックステーブル16は,リファレンス情報を記憶しているリファレンステーブル15の要素番号を要素の値として記憶する配列型のテーブルで,インデックステーブル16には,先頭から順に,リファレンス情報を記憶しているリファレンステーブル15の要素番号がカードコンテント17のインストール順で記述される。
カードコンテント17の削除やカードコンテント17のインストールが実行されたとき,インデックステーブル16はカードコンテントマネージャ10によって更新される。カードコンテント17の削除が実行されると,カードコンテントマネージャ10は,削除したコンテンツのリファレンス情報を記憶していたリファレンステーブル15の要素の要素番号をインデックステーブル16から削除した後,リファレンステーブル15の要素番号を削除することで空要素になったインデックステーブル16の要素を詰める処理を実行する。また,カードコンテント17のインストールが実行されると,カードコンテントマネージャ10は,インストールしたカードコンテント17のリファレンス情報を記憶させたリファレンステーブル15の要素番号を,インデックステーブル16の末尾(リファレンステーブル15の要素番号を記憶していない先頭の要素になる)に追加する。カードコンテント17の削除やカードコンテント17のインストールが実行されると,カードコンテントマネージャ10がこのようにインデックステーブル16を更新することで,カードコンテント17の削除やカードコンテント17のインストールが実行された後であっても,インデックステーブル16では,カードコンテント17のリファレンス情報を記憶しているリファレンステーブル15の要素番号がカードコンテント17のインストール順で並ぶことになる。よって,インデックステーブル16の先頭から順に,インデックステーブル16に記憶されているリファレンステーブルの要素番号を用いてカードコンテント17が有する出力対象のデータを取得して出力すれば,カードコンテント17がインストール順でNVM23に配置されていない状態であっても,カードコンテント17のインストール順に,ICカード1に実装されているカードコンテント17それぞれが有する出力対象のデータを出力できる。
図4(b)は,ELF用インデックステーブル16aを説明する図である。図3(b)で図示したELF用リファレンステーブル15aには,ELF17a[1]のリファレンス情報が最初の要素に,ELF17a[5]のリファレンス情報が2番目の要素に,そして,ELF17a[4]のリファレンス情報が4番目の要素に記憶されているため,図4(b)で図示したELF用インデックステーブル16aでは1行目から3行目までに,リファレンス情報を記憶しているELF用インデックステーブル16aの要素番号がELF17aのインストール順に記憶され,ELF用インデックステーブル16aの内容は「1,4,2」になっている。
図4(c)は,AP用インデックステーブル16bを説明する図である。図3(c)で図示したAP用リファレンステーブル15bには,AP17b[1]のリファレンス情報が最初の要素に,AP17b[4]のリファレンス情報が2番目の要素に,AP17b[3]のリファレンス情報が3番目の要素に,そして,AP17b[6]のリファレンス情報が5番目の要素記憶されているため,図4(c)で図示したAP用インデックステーブル16bでは1行目から4行目までに,リファレンス情報を記憶しているAP用リファレンステーブル15bの要素番号がAP17bのインストール順に記憶され,AP用リファレンステーブル15bの内容は「1,3,2,5」になっている。
ICカード1が備えるコマンドについて説明する。ICカード1が備えるインストールコマンド13は,カードコンテント17をNVM23にインストールするためのコマンドである。非特許文献1の規格では,カードコンテント17をNVM23にインストールするコマンドとして,ELF17aをNVM23にインストールするためのコマンドと,AP17bをNVM23にインストールするためのコマンドが定義されている。また,ICカード1が備える削除コマンド12は,カードコンテント17をNVM23から削除するためのコマンドである。また,ICカード1が備えるリスト出力コマンド11は,カードコンテント17のインストール順に,ICカードに実装されているカードコンテント17それぞれが有する出力対象のデータを出力するコマンドである。
ICカード1が備えるカードコンテントマネージャ10について説明する。ICカード1が備えるカードコンテントマネージャ10は,ICカード1に実装されたオペレーティングシステムが有する機能の一つで,NVM23にインストールされたカードコンテント17に係る情報を管理する処理として,カードコンテント17の追加またはカードコンテント17の削除が実行されると,これらの内容に基づいて,リファレンステーブル15およびインデックステーブル16を更新する処理を実行する。なお,本実施形態において,削除コマンド12とインストールコマンド13が,リファレンステーブル15とインデックステーブル16を更新せず,カードコンテントマネージャ10がリファレンステーブル15とインデックステーブル16を更新するように構成しているのは,ICカード1に実装されているICチップ2が有するリソース(例えば,NVM23)は,オペレーティングシステムによって管理されるからである。
図5は,ICカード1の動作を説明する図,図6は,カードコンテント17を削除するときの動作を説明する図,図7は,カードコンテント17をインストールするときの動作を説明する図,図8は,カードコンテント17それぞれが有する出力対象のデータをリスト形式で出力するときの動作を説明する図,図9は,リファレンステーブル15を更新する処理の内容を説明する図,図10は,インデックステーブル16を更新する処理の内容を説明する図である。
ICカード1は,図外の端末装置からコマンドAPDUを受信すると(S1),ICカード1が受信したコマンドAPDUを解析して,ICカード1が受信したコマンドAPDUに対応するコマンドを特定し(S2),ICカード1が受信したコマンドAPDUに対応するコマンドを実行して(S3),図5の手順は終了する。なお,図5で図示した処理を実行するプログラムは,ICカード1に実装されたオペレーティングシステムになる。
本実施形態に係るICカード1は,図2で図示した以外の複数のコマンドを備えることになるが,ここでは,ICカード1が受信したコマンドAPDUに対応するコマンドが,図2で図示した3つのコマンド,すなわち,インストールコマンド13,削除コマンド12およびリスト出力コマンド11の場合についてのみ説明する。
図6を参照して,カードコンテント17を削除するときの動作を説明する。図5のS2において,ICカード1が受信したコマンドAPDUに対応するコマンドが削除コマンド12の場合,図5のS3において,ICカード1は,ICカード1が受信したコマンドAPDUに対応するコマンドとして削除コマンド12を実行する(S10)。
削除コマンド12は,削除コマンド12のコマンドAPDUで指定されたカードコンテント17をNVM23から削除する(S11)。カードコンテント17をNVM23から削除する具体的な処理の内容は任意であるが,例えば,カードコンテント17をNVM23から削除する処理として,削除コマンド12のコマンドAPDUで指定されたカードコンテント17が配置されているNVM23の領域すべてを初期値に書き換える処理が実行される。
削除コマンド12は,削除コマンド12のコマンドAPDUで指定されたカードコンテント17をNVM23から削除すると,カードコンテントマネージャ10を呼び出し,カードコンテントマネージャ10は,削除コマンド12がNVM23から削除したカードコンテント17の種別に対応するリファレンステーブル15から,削除コマンド12がNVM23から削除したカードコンテント17のリファレンス情報を削除することで,NVM23から削除したカードコンテント17の種別に対応するリファレンステーブル15を更新する(S12)。
次に,カードコンテントマネージャ10は,削除コマンド12がNVM23から削除したカードコンテント17の種別に対応するインデックステーブル16から,削除コマンド12がNVM23から削除したカードコンテント17のリファレンス情報を記憶していたリファレンステーブル15の要素の要素番号を削除した後,リファレンステーブル15の要素番号を削除することで空要素になったインデックステーブル16の要素を詰める処理を実行することで,削除コマンド12がNVM23から削除したカードコンテント17の種別に対応するインデックステーブル16を更新する(S13)。
次に,カードコンテントマネージャ10はインデックステーブル16を更新すると,削除コマンド12に処理を戻し,削除コマンド12は,削除コマンド12のレスポンスを図外の端末装置へ送信し(S14),図6の手順は終了する。
図9(a)は,ELF17aを削除する前のELF用リファレンステーブル15aで,図9(a)で図示したELF用リファレンステーブル15aには,ELF17a[1]のリファレンス情報が最初の要素に,ELF17a[2]のリファレンス情報が2番目の要素に,ELF17a[3]のリファレンス情報が3番目の要素に,そして,ELF17a[4]のリファレンス情報が4番目の要素にそれぞれ書き込まれている。
図9(b)は,ELF17aを削除した後のELF用リファレンステーブル15aである。カードコンテントマネージャ10は,ELF17a[2]がNVM23から削除されると,2番目の要素に書き込まれているELF17a[2]のリファレンス情報を削除し,更に,ELF17a[3]がNVM23から削除されると,3番目の要素に書き込まれているELF17a[3]のリファレンス情報を削除することで,図9(a)で図示したELF用リファレンステーブル15aは,図9(b)で図示しELF用リファレンステーブル15aに更新される。
図10(a)は,ELF17aを削除する前のELF用インデックステーブル16aである。図10(a)で図示したELF用インデックステーブル16aには,ELF17a[1]のリファレンス情報が記憶されているリファレンステーブル15の要素番号(ここでは,「1」)が最初の要素に,ELF17a[2]のリファレンス情報が記憶されているリファレンステーブル15の要素番号(ここでは,「2」)が2番目の要素に,ELF17a[3]のリファレンス情報が記憶されているリファレンステーブル15の要素番号(ここでは,「3」)が3番目の要素に,そして,ELF17a[4]のリファレンス情報が記憶されているリファレンステーブル15の要素番号(ここでは,「4」)が4番目の要素に書き込まれている。
図10(b)は,ELF17aを削除した後のELF用インデックステーブル16aである。カードコンテントマネージャ10は,NVM23から削除されたELF17a[2]のリファレンス情報をELF用インデックステーブル16aから削除すると,NVM23から削除されたELF17a[2]のリファレンス情報を記憶していたELF用リファレンステーブル15aの要素番号(ここでは,「2」になる)をELF用インデックステーブル16aから削除した後,削除したELF用リファレンステーブル15aの要素番号を記憶し空要素になったELF用インデックステーブル16aの要素(ここでは,要素番号が「2」の要素)を詰める処理を行い,2番目の要素以降に記憶されているELF用リファレンステーブル15aの要素番号(ここでは,「3」,「4」)それぞれをここでは上方向にシフトさせる。更に,カードコンテントマネージャ10は,NVM23から削除されたELF17a[3]のリファレンス情報をELF用インデックステーブル16aから削除すると,NVM23から削除されたELF17a[3]のリファレンス情報を記憶していたELF用リファレンステーブル15aの要素番号(ここでは,「3」になる)をELF用インデックステーブル16aから削除した後,ELF用リファレンステーブル15aの要素番号を削除したELF用インデックステーブル16aの要素(ここでは,要素番号が「3」の要素)を詰める処理を行い,3番目の要素以降に記憶されているELF用リファレンステーブル15aの要素番号(ここでは「4」)をシフトさせることで,図10(a)で図示したELF用インデックステーブル16aは,図10(b)で図示したELF用インデックステーブル16aに更新され,その内容は「1,4」になる。
図7を参照して,カードコンテント17をインストールするときの動作を説明する。図5のS2において,ICカード1が受信したコマンドAPDUに対応するコマンドがインストールコマンド13の場合,図5のS3において,ICカード1は,ICカード1が受信したコマンドAPDUに対応するコマンドとしてインストールコマンド13を実行する(S20)。
インストールコマンド13は,インストールコマンド13のコマンドAPDUに含まれるデータをNVM23に書き込むことで,カードコンテント17をNVM23にインストールする(S21)。なお,インストールコマンド13は,インストールコマンド13のコマンドAPDUに含まれるデータをNVM23に書き込む領域は,この時点で他のカードコンテント17が書き込まれていない領域になる。
インストールコマンド13は,インストールコマンド13のコマンドAPDUで指定されたカードコンテント17をNVM23から削除すると,カードコンテントマネージャ10を呼び出し,カードコンテントマネージャ10は,インストールされたカードコンテント17に割り振るインストール番号を決定する(S22)。インストールされたカードコンテント17に割り振るインストール番号を決定する手法は任意であるが,本実施形態に係るカードコンテントマネージャ10は,カードコンテント17がNVM23にインストールされた順番を示すインデックス番号をカウンタするためのカウンタをカードコンテント17の種別ごとに有し,インストールコマンド13から呼び出されると,インストールコマンド13がNVM23にインストールしたカードコンテント17の種別に対応するカウンタを一つだけカウントアップし,インストールコマンド13がNVM23にインストールしたカードコンテント17のインデックス番号として,カウントアップ後のカウンタの値を取得する。
次に,カードコンテントマネージャ10は,S22で決定したインデックス番号,NVM23にインストールしたカードコンテント17のエントリー情報(例えば,先頭アドレス)を含むリファレンス情報を生成する(S23)。
次に,カードコンテントマネージャ10は,インストールコマンド13がNVM23にインストールしたカードコンテント17の種別に対応するリファレンステーブル15からリファレンス情報が書き込まれていない要素を検索し,リファレンス情報が書き込まれていない最初の要素に,S23で生成したリファレンス情報を書き込むことで,インストールコマンド13NVM23にインストールしたカードコンテント17の種別に対応するリファレンステーブル15を更新する(S24)。
カードコンテントマネージャ10は,インストールコマンド13がNVM23にインストールしたカードコンテント17の種別に対応するリファレンステーブル15を更新すると,NVM23にインストールしたカードコンテント17の種別に対応するインデックステーブル16から,リファレンステーブル15の要素番号を記憶していない要素を検索し,リファレンステーブル15の要素番号を記憶していない先頭の要素に,S24において,カードコンテント17のリファレンス情報を記憶させたリファレンステーブル15の要素番号を記憶させることで,インストールしたカードコンテント17のリファレンス情報を記憶させたリファレンステーブル15の要素番号をインデックステーブル16の末尾に追加し,NVM23にインストールしたカードコンテント17の種別に対応するインデックステーブル16を更新する(S25)。
カードコンテントマネージャ10は,インストールコマンド13がNVM23にインストールしたカードコンテント17の種別に対応するインデックステーブル16を更新すると,インストールコマンド13に処理を戻し,インストールコマンド13は,I/O24を利用して,インストールコマンド13のレスポンスを図外の端末装置へ送信し(S26),図7の手順は終了する。
図9(c)は,ELF17aをインストールした後のELF用リファレンステーブル15aである。カードコンテントマネージャ10は,ELF17a[5]がNVM23にインストールされると,ELF用リファレンステーブル15aからリファレンス情報が書き込まれていない要素を検索し,リファレンス情報が書き込まれていない最初の要素(ここでは,2番目の要素)に,NVM23にインストールしたELF17a[5]のリファレンス情報を書き込むことで,図9(b)で図示したELF用リファレンステーブル15aは,図9(c)で図示したELF用リファレンステーブル15aに更新される。
図10(c)は,ELF17aをインストールした後のELF用インデックステーブル16aである。カードコンテントマネージャ10は,NVM23にインストールしたELF17a[5]のリファレンス情報をELF用リファレンステーブル15aに追加すると,NVM23にインストールしたELF17a[5]のリファレンス情報を追加したELF用リファレンステーブル15aの要素番号を,リファレンステーブル15の要素番号(ここでは,「2」になる)を記憶していないELF用インデックステーブル16aの最初の要素(ここでは,3番目の要素)に追加することで,図10(b)で図示したELF用インデックステーブル16aは,図10(c)で図示したELF用インデックステーブル16aに更新され,その内容は「1,4,2」になる。
図8を参照して,カードコンテント17それぞれが有する出力対象のデータをリスト形式で出力するときの動作を説明する。図5のS2において,ICカード1が受信したコマンドAPDUに対応するコマンドがリスト出力コマンド11の場合,ICカード1は,図5のS3において,ICカード1が受信したコマンドAPDUに対応するコマンドとしてリスト出力コマンド11を実行する。
リスト出力コマンド11は,ICカード1のNMV23に実装されているカードコンテント17それぞれが有する出力対象のデータを,カードコンテント17のインストール順に並べたリスト形式のデータをRAM22に生成する処理(S30)を実行する。
リスト形式のデータをRAM22に生成する処理(S30)において,リスト出力コマンド11は,インデックステーブル16の最初から順次実行するループ処理(S300)を実行する。ループ処理(S300)において,リスト出力コマンド11は,ループ回数に対応したインデックステーブル16の要素に記憶されているリファレンステーブル15の要素番号を取得する(S301)。例えば,ループ回数が1回目の場合,インデックステーブル16の最初の要素に記憶されているリファレンステーブル15の要素番号を取得し,ループ回数が2回目の場合,インデックステーブル16の2番目の要素に記憶されているリファレンステーブル15の要素番号を取得する。次に,リスト出力コマンド11は,インデックステーブル16から取得したリファレンステーブル15の要素番号に対応する要素に記憶されているリファレンス情報を取得し(S302),リファレンステーブル15から取得したリファレンス情報に含まれるエントリー情報を参照して,カードコンテント17にアクセスする(S303)。そして,リスト出力コマンド11は,アクセスしたカードコンテント17から出力対象のデータを取得してRAM22に格納する(S304)。なお,ループ処理(S300)は,ループ回数に対応したインデックステーブル16の行にリファレンステーブル15の要素番号が記憶されていない場合に終了する。
リファレンス情報が記憶されているリファレンステーブル15の要素番号がカードコンテント17のインストール順で記述されているため,図10で示したループ処理(S30)をリスト出力コマンド11が実行することで,ICチップ2のRAM22には,カードコンテント17が有する出力対象のデータをカードコンテント17のインストール順に並べたリスト形式のデータが生成される。
リスト出力コマンド11は,ループ処理(S30)を実行して,カードコンテント17が有する出力対象のデータをカードコンテント17のインストール順に並べたリスト形式のデータをRAM22に生成すると,I/O24を利用して,リスト出力コマンド11のレスポンスとして,RAM22に形成したリスト形式のデータを先頭から出力して(S31),図10の手順は終了する。例えば,出力対象のデータをライフサイクルに係るデータとしたとき,図4(b)で図示したELF用インデックステーブル16aに基づけば,ELF17a[1]のライフサイクルに係るデータ,ELF17a[4]のライフサイクルに係るデータ,そして,ELF17a[2]のライフサイクルに係るデータが順に出力されることになる。