(57)【要約】【課題】複数のファイルに対して効率よくアクセスすることができるＩＣカードおよび携帯可能電子装置を提供することを目的とする。【解決手段】実施形態によれば、ＩＣカードは、記憶手段と、格納手段と、受信手段と、設定手段とを有する。記憶手段は、識別情報により識別されるデータ単位のデータを記憶する。格納手段は、記憶手段に記憶したデータをグループ化したデータグループの定義情報を格納する。受信手段は、外部装置からコマンドを受信する。設定手段は、受信手段により複数のデータグループを選択させる選択命令を受信した場合、選択命令で選択される複数のデータグループをカレント状態に設定する。【選択図】図７
2014006631.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から与えられるコマンドに応じた処理を実行するＩＣカードにおいて、
識別情報により識別されるデータ単位のデータを複数個記憶する記憶手段と、
前記記憶手段に記憶したデータをグループ化したデータグループの定義情報を格納する格納手段と、
前記外部装置からコマンドを受信する受信手段と、
前記受信手段により複数のデータグループを選択させる選択命令を受信した場合、前記選択命令で選択される前記複数のデータグループをカレント状態に設定する設定手段と、
を備えるＩＣカード。
【請求項２】
前記カレント状態に設定されるデータグループは、階層構造で管理されるファイルである、
前記請求項１に記載のＩＣカード。
【請求項３】
前記アクセス対象となるデータは、ファイルである、
前記請求項２に記載のＩＣカード。
【請求項４】
前記アクセス対象となるデータは、ファイル内において識別子が付与されたデータである、
前記請求項２又は３に記載のＩＣカード。
【請求項５】
さらに、前記受信手段により指定するデータの取得を要求するコマンドを受信した場合、前記設定手段がカレント状態に設定するデータグループから前記コマンドで指定されたデータを取得するデータ取得手段と、
前記データ取得手段によって取得したデータを前記コマンドに対する応答として出力する出力手段と、を備える、
前記請求項１乃至４の何れか１項に記載のＩＣカード。
【請求項６】
さらに、前記受信手段により特定のデータへの書込みを要求するコマンドを受信した場合、前記設定手段がカレント状態に設定するデータグループから前記コマンドで指定されたデータにデータを書き込む書込手段と、
前記書込手段による書込み結果を前記コマンドに対する応答として出力する出力手段と、を備える、
前記請求項１乃至４の何れか１項に記載のＩＣカード。
【請求項７】
前記受信手段により特定のデータの検索を要求するコマンドを受信した場合、前記設定手段がカレント状態に設定するデータグループから前記特定のデータを検索する検索手段と、
前記検索手段による検索結果を前記コマンドに対する応答として出力する出力手段と、を備える、
前記請求項１乃至４の何れか１項に記載のＩＣカード。
【請求項８】
外部装置から与えられるコマンドに応じた処理を実行するＩＣカードにおいて、
識別情報により識別されるデータ単位のデータを複数個記憶する記憶手段と、前記記憶手段に記憶したデータをグループ化したデータグループの定義情報を格納する格納手段と、前記外部装置からコマンドを受信する受信手段と、前記受信手段により複数のデータグループを選択させる選択命令を受信した場合、前記選択命令で選択される前記複数のデータグループをカレント状態に設定する設定手段と、を備えるモジュールと、
前記モジュールを収納した本体と、
を備えるＩＣカード。
【請求項９】
外部装置から与えられるコマンドに応じた処理を実行する携帯可能電子装置において、
識別情報により識別されるデータ単位のデータを複数個記憶する記憶手段と、
前記記憶手段に記憶したデータをグループ化したデータグループの定義情報を格納する格納手段と、
前記外部装置からコマンドを受信する受信手段と、
前記受信手段により複数のデータグループを選択させる選択命令を受信した場合、前記選択命令で選択される前記複数のデータグループをカレント状態に設定する設定手段と、
を備える携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、および、携帯可能電子装置に関する。
【背景技術】
【０００２】
ＩＣカードは、何れかのファイルをカレント状態に設定し、カレント状態のファイルおよびカレント状態のファイルに従属するファイルに対して、外部装置からの命令に応じた処理を実行する機能を有する。しかしながら、従来のＩＣカードは、カレント状態に設定できるファイルが１つであるため、複数のファイルをアクセス対象とする処理を行う場合には、それらのファイルを順に選択してから処理を繰り返し実行する必要がある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＩＳＯ／ＩＥＣ  ７８１６−４
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するために、複数のファイルに対して効率よくアクセスすることができるＩＣカードおよび携帯可能電子装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
実施形態によれば、ＩＣカードは、記憶手段と、格納手段と、受信手段と、設定手段とを有する。記憶手段は、識別情報により識別されるデータ単位のデータを記憶する。格納手段は、記憶手段に記憶したデータをグループ化したデータグループの定義情報を格納する。受信手段は、外部装置からコマンドを受信する。設定手段は、受信手段により複数のデータグループを選択させる選択命令を受信した場合、選択命令で選択される複数のデータグループをカレント状態に設定する。
【図面の簡単な説明】
【０００６】
【図１】本実施形態に係るＩＣカードとＩＣカード処理装置とを有するＩＣカード処理システムの構成例を示す図である。
【図２】本実施形態に係るＩＣカードの構成例を示すブロック図である。
【図３】本実施形態に係るＩＣカードのＮＶＭに記憶されるファイルの管理構造の例を示す図である。
【図４】本実施形態に係るＩＣカードのＮＶＭに記憶されるファイルの構成例を示す図である。
【図５】本実施形態に係るＩＣカードにおけるカレント管理エリアの例を示す図である。
【図６】本実施形態に係るＩＣカードにおける選択処理およびデータ取得処理の流れを示す概略的に説明するための図である。
【図７】本実施形態に係るＩＣカードにおけるカレントファイルの選択処理の動作例を説明するためのフローチャートである。
【図８】本実施形態に係るＩＣカードにおけるデータ取得処理の動作例を説明するためのフローチャートである。
【図９】本実施形態に係るＩＣカードにおけるデータの書込処理の動作例を説明するためのフローチャートである。
【図１０】本実施形態に係るＩＣカードにおけるデータの検索処理の動作例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００７】
以下、本実施形態について、図面を参照して説明する。  
図1は、本実施形態に係る携帯可能電子装置としてのＩＣカード２と、ＩＣカード２と通信を行う外部装置としてのＩＣカード処理装置１とを有するＩＣカード処理システムの構成例を示すブロック図である。  
ＩＣカード処理装置１は、図１に示す構成例において、制御部１１、ディスプレイ１２、キーボード１３及びカードリーダライタ１４などを有する。
【０００８】
制御部１１は、ＩＣカード処理装置１全体の動作を制御するものである。制御部１１は、ＣＰＵなどのプロセッサ、種々のメモリ及び各種インターフェースなどにより構成される。たとえば、制御部１１は、パーソナルコンピュータ（ＰＣ）により構成されるようにしても良い。制御部１１では、プロセッサがメモリに記憶したプログラムを実行することにより種々の処理を実行する。
【０００９】
制御部１１は、カードリーダライタ１４によりＩＣカード２へ命令（コマンド）を送信する機能、ＩＣカード２から受信したデータを基に種々の処理を行う機能などを有する。たとえば、制御部１１は、カードリーダライタ１４を介してＩＣカード２にデータの書き込み命令を送信することによりＩＣカード２内の不揮発性メモリにデータを書き込む制御を行う。また、制御部１１は、ＩＣカード２に読み取り命令を送信することによりＩＣカード２からデータを読み出す制御を行う。
【００１０】
ディスプレイ１２は、制御部１１の制御により種々の情報を表示する表示装置である。キーボード１３は、ＩＣカード処理装置１の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。入力された操作指示やデータは、制御部１１へ送信される。
【００１１】
カードリーダライタ１４は、ＩＣカード２との通信を行うためのインターフェース装置である。カードリーダライタ１４は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、ＩＣカード２が接触型のＩＣカードである場合、カードリーダライタ１４は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１２】
また、ＩＣカード２が非接触型のＩＣカードである場合、カードリーダライタ１４は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御部などにより構成される。カードリーダライタ１４では、ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ１４は、制御部１１による制御に基づいてＩＣカード２の活性化（起動）、種々の命令の送信、及び送信した命令に対する応答（レスポンス）の受信などを行なう。
【００１３】
次に、ＩＣカード２について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの上位機器から電力などの供給を受けて活性化される（動作可能な状態になる）ようになっている。例えば、ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００１４】
また、ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００１５】
次に、ＩＣカード２の構成例について説明する。  
図２は、本実施形態に係るＩＣカード２の構成例を概略的に示すブロック図である。  
ＩＣカード２は、プラスチックなどで形成されたカード状の本体Ｃを有する。ＩＣカード２は、本体Ｃ内にモジュールＭが内蔵されている。モジュールＭは、１つまたは複数のＩＣチップＣａと通信用の外部インターフェース（ＵＡＲＴ）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設されている。
【００１６】
また、ＩＣカード２は、図２に示すように、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＮＶＭ２４、ＵＡＲＴ２５及びコプロセッサ（Ｃｏ-Ｐｒｏｃｅｓｓｏｒ）２６などを備えている。これらの各部は、データバスを介して互いに接続されている。ＩＣチップＣａは、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＮＶＭ２４、及びコプロセッサ（Ｃｏ-Ｐｒｏｃｅｓｓｏｒ）２６により構成され、モジュールＭは、ＩＣチップＣａをＵＡＲＴ２５に接続された状態で構成されている。
【００１７】
ＣＰＵ２１は、ＩＣカード２全体の制御を司る制御部として機能する。ＣＰＵ２１は、ＲＯＭ２２あるいはＮＶＭ２４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。ＣＰＵ２１は、プログラムを実行することにより、ＩＣカード２の基本的な動作制御およびＩＣカード２の運用形態に応じた種々の処理を行う。なお、ＩＣカード２の動作制御および処理などの各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。
【００１８】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００１９】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。たとえば、ＲＡＭ２３は、受信用バッファ、計算用バッファ、送信用バッファなどを備える。受信用バッファとしては、ＵＡＲＴ２５を通じてＩＣカード処理装置１から送信された命令を保持する。計算用バッファとしては、ＣＰＵ２１が種々の計算をするため一時的な結果を保持する。送信用バッファとしては、ＵＡＲＴ２５を通じてＩＣカード処理装置１に送信するためのデータを保持する。たとえば、ＣＰＵ２１は、受信用バッファに保持した命令を解釈し、命令に応じた処理を計算バッファを用いて実行し、実行した処理の結果を送信用バッファに格納する。
【００２０】
ＮＶＭ２４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ２４は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどにより構成される。ＮＶＭ２４は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、ＮＶＭ２４は、ファイル単位でデータを記憶する。ＮＶＭ２４に記憶される各ファイルは、ツリー構造で管理される。また、ＮＶＭ２４に記憶されるファイルおよびファイル内の各データは、それぞれ識別情報（ｔａｇ）により識別されるようにしても良い。
【００２１】
ＵＡＲＴ２５は、ＩＣカード処理装置１のカードリーダライタ１４との通信を行うためのインターフェースである。ＩＣカード２が接触型のＩＣカードとして実現される場合、ＵＡＲＴ２５は、ＩＣカード処理装置１のカードリーダライタ１４と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、ＩＣカード２が非接触型のＩＣカードとして実現される場合、ＵＡＲＴ２５は、ＩＣカード処理装置１のカードリーダライタ１４との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【００２２】
コプロセッサ２６は、乱数の発生又は暗号演算の処理など特定の処理をするプロセッサである。コプロセッサ２６は、ＣＰＵ２１から独立したハードウエアであり、ＣＰＵ２１の処理負担を軽減するためのものである。なお、コプロセッサ２６が担う処理は、ＣＰＵ２１がプログラムを実行することで実現されてもよい。
【００２３】
次に、ＩＣカード２のＮＶＭ２４に記憶されるファイルについて説明する。  
図３は、ＩＣカード２のＮＶＭ２４に記憶されるファイルの管理構造の例を示す図である。  
図３に示すように、ＩＣカード２のＮＶＭ２４に記憶される各ファイルは、ツリー構造で管理される。図３に示す例では、ＩＣカード２のＮＶＭ２４に記憶されるファイルは、ルートディレクトリであるＭＦ（マスターファイル）、ＭＦに従属するＤＦ（デディケイテッドファイル）、及び、ＤＦに従属するＥＦ（エレメンタリーファイル）として管理される。
【００２４】
ＤＦは、複数のＥＦをまとめたフォルダとして機能する。ＤＦは、配下のＥＦからデータグループを構成するものである。個々のＥＦをデータ単位とすれば、ＤＦは、所定のデータ単位の１又は複数のデータをデータグループとして定義するものとなる。また、各ＥＦは、データを記憶するファイルである。ＥＦは、所定のデータ単位のデータ（それぞれが識別情報（ｔａｇ）で識別されるデータ列）を複数個保存するものであっても良いし、１つのデータを保存するものであっても良い。個々のＥＦ内において識別情報が付与されるデータ列を所定のデータ単位のデータとすれば、ＤＦは、配下のＥＦおよび配下のＥＦに含まれるデータ列をデータグループとして定義するものとなる。また、複数のデータ列を含むＥＦをデータグループとして定義しても良い。
【００２５】
なお、図３に示す例は、ファイルに対するツリー構造の管理形態の一例を示すものであり、ＭＦの直下にＥＦが存在していても良いし、ＤＦの配下にＥＦが存在しなくとも良いし、ＤＦの配下にＤＦが存在しても良い。また、図３に示すような、ファイルの管理構造は、例えば、ＩＳＯ／ＩＥＣ７８１６−４で規定されるものであって良い。この場合、データグループとしてのＤＦは、ＩＳＯ／ＩＥＣ７８１６−４で規定されるＤＦに準拠するものとなる。
【００２６】
図３に示す例において、ＮＶＭ２４には、ＤＦとして、ＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃの定義情報が記憶される。さらに、ＮＶＭ２４には、ＤＦ−Ａに従属するＥＦとしてファイルＡ１（ＥＦ−Ａ１）及びファイルＡ２（ＥＦ−Ａ２）、ＤＦ−Ｂに従属するＥＦとしてファイルＢ１（ＥＦ−Ｂ１）、ＤＦ−Ｃに従属するＥＦとしてファイルＣ１（ＥＦ−Ｃ１）が記憶（定義）される。さらに、図３の示す例では、ファイルＣ１（ＥＦ−Ｃ１）には、識別子（Ｔａｇ）が「０ｘ０１」のデータが含まれる。
【００２７】
１つのファイルには、識別情報で特定されるデータ単位のデータが１又は複数個記憶される。たとえば、各ファイル（ＥＦ）は、識別子（Ｔａｇ）、データ長（Ｌｅｎｇｔｈ）、値（Ｖａｌｕｅ）により構成されるＴＬＶ形式のデータ（ＴＬＶデータ）が記憶される。ＥＦに格納されるＴＬＶデータは、識別子（Ｔａｇ）により特定される。１つのＥＦには、１つのＴＬＶデータを記憶するようにしても良いし、複数のＴＬＶデータを記憶するようにしても良い。さらに、ＥＦには、ＴＬＶデータが入れ子構造（親のＴＬＶデータの値（Ｖａｌｕｅ）の中に、１又は複数のＴＬＶデータが含まれる構造）になっているデータを記憶するようにしても良い。ただし、各ファイルのデータ形式は、ＴＬＶ形式に限定されるものではない。
【００２８】
図４は、ＩＣカード２のＮＶＭ２４に記憶される各ファイルの構成例を示す図である。  
図４に示す構成例において、各ファイルは、定義情報記憶領域３１に記憶されるそれぞれの定義情報と定義情報で定義されるデータ記憶領域３２における各データエリアとにより構成される。たとえば、ＤＦは、定義情報記憶領域３１に記憶されるＤＦ定義情報で定義され、ＥＦは、定義情報記憶領域３１に記憶されるＥＦ定義情報とそのＥＦ定義情報で定義されるデータ記憶領域３２におけるデータエリアとにより構成される。なお、図４に示す構成例は、図３に示す各ファイルに対応するものとなっている。
【００２９】
ＤＦ−Ａ定義情報、ＤＦ−Ｂ定義情報およびＤＦ−Ｃ定義情報は、それぞれＤＦ（ＤＦ−Ａ、ＤＦ−Ｂ、ＤＦ−Ｃ）の定義情報である。また、ＥＦ−Ａ１定義情報、ＥＦ−Ａ２定義情報、ＥＦ−Ｂ１定義情報およびＥＦ−Ｃ１定義情報は、それぞれＥＦ（ＥＦ−Ａ１、ＥＦ−Ａ２、ＥＦ−Ｂ１、ＥＦ−Ｃ１）の定義情報である。さらに、ＥＦ−Ａ１データエリア、ＥＦ−Ａ２データエリア、ＥＦ−Ｂ１データエリア、およびＥＦ−Ｃ１データエリアは、それぞれＥＦ−Ａ１定義情報、ＥＦ−Ａ２定義情報、ＥＦ−Ｂ１定義情報、およびＥＦ−Ｃ１定義情報によって定義されるファイル（ＥＦ−Ａ１、ＥＦ−Ａ２、ＥＦ−Ｂ１、ＥＦ−Ｃ１）としてのデータを格納するエリアである。
【００３０】
各ＤＦ定義情報は、たとえば、識別子、アクセス条件、ＤＦ固有番号、ロックステータス、およびファイルチェックバイトなどから構成される。識別子は、当該ＤＦを特定するためのユニークな識別情報である。アクセス条件は、当該ＤＦへのアクセスするための条件である。ＤＦ固有番号は、ＤＦごとに固有な番号が設定される。このＤＦ固有番号は、ＤＦごとに異なっており、ＤＦの創生時に内部的に設定される。ロックステータスは、当該ＤＦのロック状態を示す情報である。ファイルチェックバイトは当該ＤＦの正当性をチェックするための情報であり、たとえば、識別子からファイルチェックバイトまでのデータに対して排他的論理和（ｅｘｃｌｕｓｉｖｅ−ＯＲ）をとったときにゼロとなる値が設定される。
【００３１】
また、ＥＦ定義情報は、識別子、ＤＦ固有番号、ＥＦ−ＩＤ、サイズ、データエリア先頭アドレス、アクセス条件、およびファイルチェックバイトなどから構成される。識別子は、当該ＥＦを特定するためのユニークな識別情報である。ＤＦ固有番号は、当該ＥＦが属しているＤＦのＤＦ固有番号が格納される。サイズとしては、当該ＥＦのデータエリアのサイズが格納される。データエリア先頭アドレスとしては、当該ＥＦのデータエリアの先頭アドレスが格納される。アクセス条件としては、ＥＦへのアクセス条件が格納される。ファイルチェックバイトは、当該ＥＦの正当性をチェックするための情報であり、たとえば、識別子からファイルチェックバイトまでのデータに対して排他的論理和（ｅｘｃｌｕｓｉｖｅ−ＯＲ）をとったときにゼロとなる値が設定される。
【００３２】
次に、カレント状態の管理情報について説明する。
【００３３】
図５は、カレント状態の管理情報（カレントファイルの管理情報）の構成例を示す図である。  
図５に示すような、カレントファイルの管理情報は、たとえば、ＲＡＭ２３に設けたカレント管理エリア３３に格納される。カレント管理エリア３３は、カレント状態とするファイルを示す情報を格納する記憶エリアである。つまり、カレント管理エリアに書き込まれている情報が示すファイルは、カレント状態に設定（選択）されたファイルである。図５に示す例では、カレントファイルの管理情報は、カレント状態とする複数のＤＦを示す情報がＲＡＭ２３に設けたカレント管理エリア３３に格納されている。
【００３４】
ＩＣカード２は、ＩＣカード処理装置１から与えられるコマンドに対して、カレント状態となっているファイルをアクセス対象として処理を行うことができる。つまり、ＩＣカード２は、カレント管理エリア３３に格納されている情報が示すファイル(当該ファイルと当該ファイルに従属するファイル）を処理対象としてコマンドに応じた処理を実行する。
【００３５】
図５は、本実施形態に係るＩＣカード２のＲＡＭ２３に格納されているカレント管理エリア３３の例である。本実施形態に係るカレント管理エリア３３には、複数のファイルの情報を記憶する記憶領域が存在する。カレント管理エリア３３には、複数の記憶領域のそれぞれにカレント状態とするファイルを特定する情報を格納することができる。言い換えれば、本実施形態に係るカレント管理エリア３３には、カレント状態とする複数のファイルを特定する情報を格納できる。カレント状態とするファイルを特定する情報は、ファイルの識別子（たとえば、ＤＦの識別子）などを含む情報である。なお、本実施形態では、カレント状態のファイルを特定する情報は、ＤＦの識別子とするが、特定の情報に限定されるものではない。また、カレント管理エリア３３に格納することができるカレントファイルの個数は、特定の個数に限定されるものではない。
【００３６】
複数のＤＦをカレントファイルとして設定できないＩＣカードでは、複数のＤＦとその配下のＥＦを処理対象として処理を行うには、各ＤＦを順に選択し、選択したＤＦごとに処理を実行する必要がある。これに対して、図５に示すように、複数のＤＦをカレントファイルとして設定できるＩＣカード２は、複数のＤＦを一括して選択し、選択された複数のＤＦをカレントＤＦとして同時に管理することができる。この結果、本実施形態に係るＩＣカード２は、１つのコマンドに対する処理対象として複数のＤＦとその配下のＥＦとを処理対象とすることができる。
【００３７】
次に、ＩＣカード処理装置１がＩＣカード２からデータを取得する処理について説明する。  
図６は、ＩＣカード処理装置１がＩＣカード２から特定のデータを取得する処理例の流れを示す図である。
【００３８】
ここでは、ＩＣカード処理装置１がＩＣカード２から識別子（Ｔａｇ）が「０ｘ０１」のデータを取得する処理について説明するものとする。また、ＩＣカード処理装置１は、ＩＣカード２内のＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃの何れに目的のデータ（ここでは、Ｔａｇが「０ｘ０１」のデータを目的のデータとする）を含むファイル（即ち、Ｔａｇが「０ｘ０１」のデータを格納したファイル）があるか分からないものとする。
【００３９】
まず、ＩＣカード処理装置１の制御部１１は、ＩＣカード２から目的のデータ（Ｔａｇ「０ｘ０１」のデータ）を取得するために、当該データの検索範囲となるカレントファイルを選択する選択命令（ＳＥＬＥＣＴ  Ｃｏｍｍａｎｄ）を生成する。ここで、ＩＣカード処理装置１は、ＩＣカード２内のＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃの何れに目的のデータが存在するか判らない。このため、ＩＣカード処理装置１の制御部１１は、ＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃをカレントファイルとして選択させる選択命令（ＳＥＬＥＣＴ  Ｃｏｍｍａｎｄ）を生成する。ＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃの選択命令（ＳＥＬＥＣＴ  Ｃｏｍｍａｎｄ）を生成すると、ＩＣカード処理装置１の制御部１１は、カードリーダライタ１４を通じて生成した選択命令をＩＣカード２へ送信する。ＩＣカード２は、ＩＣカード処理装置１から送信された選択命令をＵＡＲＴ２５を通じて受信する。
【００４０】
ＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃの選択命令を受信すると、ＩＣカード２のＣＰＵ２１は、ＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃを一括してカレント状態（カレントファイル）に設定する選択処理を行う。選択処理として、ＩＣカード２のＣＰＵ２１は、ＮＶＭ２４の定義情報の記憶領域３１において、ＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃを検索する。たとえば、ＣＰＵ２１は、図４に示すような記憶領域３１を上から順にサーチする。
【００４１】
ＣＰＵ２１は、順に検出されるＤＦの定義情報に着目し、検出したＤＦの定義情報がＤＦ−Ａ、ＤＦ−Ｂ又はＤＦ−Ｃであるかを判定する。図４に示す例において、定義情報の記憶領域３１の１番上に存在するＤＦの定義情報は、ＤＦ−Ａの定義情報である。このため、ＣＰＵ２１は、最初にＤＦ−Ａの定義情報を検出する。ＤＦ−Ａの定義情報を検出すると、ＣＰＵ２１は、ＲＡＭ２３上にカレント管理エリア３３を確保し、当該カレント管理エリア３３における1つ目のファイル情報の記憶領域にＤＦ−Ａを示す情報を書き込む。ＤＦ−Ａを示す情報は、検出したＤＦ−Ａの定義情報に含まれる情報であれば良く、たとえば、ＤＦ−Ａの識別子を含む情報とする。
【００４２】
カレント管理エリア３３の1つ目のファイル情報の記憶領域にＤＦ−Ａを示す情報（ＤＦ−Ａの識別子）を書き込むと、ＣＰＵ２１は、次に検出されるＤＦの定義情報に着目し、検出したＤＦの定義情報がＤＦ−Ｂ又はＤＦ−Ｃであるかを判定する。図４に示す例において、定義情報の記憶領域３１の上から２番に存在するＤＦの定義情報は、ＤＦ−Ｂの定義情報である。２番目のＤＦ定義情報がＤＦ−Ｂの定義情報であると判定すると、ＣＰＵ２１は、ＲＡＭ２３上のカレント管理エリア３３の２つ目のファイル情報の記憶領域にＤＦ−Ｂを示す情報（ＤＦ−Ｂの識別子を含む情報）を書き込む。
【００４３】
カレント管理エリア３３の２つ目のファイル情報の情報領域にＤＦ−Ｂを示す情報（ＤＦ−Ｂの識別子）を書き込むと、ＣＰＵ２１は、次に検出されるＤＦの定義情報に着目し、検出したＤＦの定義情報がＤＦ−Ｃであるか否かを判定する。図４に示す例において、定義情報の記憶領域３１において上から３番に存在するＤＦの定義情報は、ＤＦ−Ｃの定義情報である。３番目のＤＦ定義情報がＤＦ−Ｃの定義情報であると判定すると、ＣＰＵ２１は、ＲＡＭ２３上のカレント管理エリア３３の３つ目のファイル情報の記憶領域にＤＦ−Ｃを示す情報（例えば、ＤＦ−Ｃの識別子の識別子を含む情報）を書き込む。
【００４４】
以上のプロセスにより、ＩＣカード２のＣＰＵ２１は、ＩＣカード処理装置１から受信した選択命令で指定された複数のＤＦ（即ち、ＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃ）を検索し、検索した各ＤＦの識別子を全てカレント管理エリア３３に書き込んだことになる。選択命令で指定された全ＤＦの選択に成功すると、ＩＣカード２のＣＰＵ２１は、「選択成功」を示すレスポンスデータを生成する。「選択成功」を示すレスポンスデータを生成すると、ＣＰＵ２１は、生成したレスポンスデータをＵＡＲＴ２５を通じてＩＣカード処理装置１へ送信する。
【００４５】
なお、選択命令で指定された何れかのＤＦの選択に失敗した場合（例えば、指定されたＤＦが存在しない場合）、ＣＰＵ２１は、「選択失敗」を示すレスポンスデータを生成し、生成したレスポンスデータをＵＡＲＴ２５を通じてＩＣカード処理装置２へ送信する。
【００４６】
カードリーダライタ１４が「選択成功」を示すレスポンスを受信すると、ＩＣカード処理装置１の制御部１１は、目的のデータ（Ｔａｇが「０ｘ０１」のデータ）の取得をＩＣカード２に要求するデータ取得命令（ＧＥＴ  ＤＡＴＡ  Ｃｏｍｍａｎｄ）を生成する。本実施形態では、ＩＣカード処理装置１の制御部１１は、Ｔａｇが「０ｘ０１」のデータをＩＣカード２から取得することを目的するものとする。したがって、ＩＣカード処理装置１の制御部１１は、Ｔａｇが「０ｘ０１」のデータを取得するデータ取得命令を生成する。データ取得命令を生成すると、ＩＣカード処理装置１の制御部１１は、カードリーダライタ１４により生成した取得命令をＩＣカード２へ送信する。
【００４７】
ＩＣカード処理装置１からのデータ取得命令をＵＡＲＴ２５が受信すると、ＣＰＵ２１は、当該データ取得命令で指定されるＴａｇが「０ｘ０１」のデータをカレント状態のファイルおよびカレントファイルに従属するファイルから検索する検索処理を行う。この場合、ＩＣカード２は、カレントファイルとしてＤＦ−Ａ、ＤＦ−Ｂ又はＤＦ−Ｃが設定されている。このため、ＩＣカード２のＣＰＵ２１は、検索範囲をＤＦ−Ａ、ＤＦ−Ｂ又はＤＦ−ＣとしてＴａｇが「０ｘ０１」のデータの検索処理を行う。
【００４８】
たとえば、ＣＰＵ２１は、カレント管理エリア３３の１番目のカレントファイルとしてのＤＦ−Ａに着目し、検索範囲をＤＦ−ＡとしてＴａｇが「０ｘ０１」のデータを検索する。図３に示す例では、ＤＦ−Ａには、ファイルＡ１（ＤＦ−Ａ１）とファイルＡ２（ＥＦ−Ａ２）とが存在する。このため、ＣＰＵ２１は、ファイルＡ１にＴａｇが「０ｘ０１」のデータが存在するか否かを判定する。図３に示す例では、ファイルＡ１にＴａｇが「０ｘ０１」のデータが存在しないので、ＣＰＵ２１は、ファイルＡ１にＴａｇが「０ｘ０１」のデータは存在しないと判定する。ファイルＡ１にＴａｇが「０ｘ０１」のデータが存在しないと判定すると、ＣＰＵ２１は、ファイルＡ２にＴａｇが「０ｘ０１」のデータが存在するか否かを判定する。図３の例では、ファイルＡ２にもＴａｇが「０ｘ０１」のデータは存在しないので、ＣＰＵ２１は、ファイルＡ２にＴａｇが「０ｘ０１」のデータは存在しないと判定する。
【００４９】
ＤＦ−Ａを検索範囲して目的のデータが検出できない場合、ＣＰＵ２１は、カレント管理エリア３３の２番目のカレントファイルとしてのＤＦ−Ｂに着目し、検索範囲をＤＦ−ＢとしてＴａｇが「０ｘ０１」のデータを検索する。図３に示す例では、ＤＦ−Ｂには、ファイルＢ１（ＤＦ−Ｂ１）が存在する。このため、ＣＰＵ２１は、ファイルＢ１にＴａｇが「０ｘ０１」のデータが存在するか否かを判定する。図３に示す例では、ファイルＢ１にはＴａｇが「０ｘ０１」のデータが存在しないので、ＣＰＵ２１は、ファイルＢ１にＴａｇが「０ｘ０１」のデータは存在しないと判定する。
【００５０】
ＤＦ−ＡおよびＤＦ−Ｂを検索範囲して目的のデータが検出できない場合、ＣＰＵ２１は、カレント管理エリア３３の３番目のカレントファイルとしてのＤＦ−Ｃに着目し、検索範囲をＤＦ−ＣとしてＴａｇが「０ｘ０１」のデータを検索する。図３に示す例では、ＤＦ−Ｃには、ファイルＣ１（ＤＦ−Ｃ１）が存在する。このため、ＣＰＵ２１は、ファイルＣ１にＴａｇが「０ｘ０１」のデータが存在するか否かを判定する。図３に示す例では、ファイルＣ１にはＴａｇが「０ｘ０１」のデータが存在するので、ＣＰＵ２１は、ファイルＣ１からＴａｇが「０ｘ０１」のデータを検出する。
【００５１】
ＤＦ−Ｃの検索範囲に含まれるファイルＣ１からＴａｇが「０ｘ０１」のデータを検出すると、ＣＰＵ２１は、検出したＴａｇが「０ｘ０１」のデータを読取る。Ｔａｇが「０ｘ０１」のデータを読取ると、ＣＰＵ２１は、読み取ったＴａｇが「０ｘ０１」のデータと「取得成功」を示すデータとを含むレスポンスデータを生成し、生成したレスポンスデータをＵＡＲＴ２５によりＩＣカード処理装置１へ送信する。
【００５２】
カードリーダライタ１４がＩＣカード２からＴａｇが「０ｘ０１」のデータと「取得成功」を示すデータとを含むレスポンスデータを受信すると、ＩＣカード処理装置１の制御部１１は、受信したレスポンスデータから目的とするＴａｇが「０ｘ０１」のデータを取得する。
【００５３】
また、Ｔａｇが「０ｘ０１」のデータがカレント状態のどのＤＦ内に存在しない場合、ＣＰＵ２１は、「取得失敗」を示すデータを含むレスポンスデータを生成し、生成したレスポンスデータをＵＡＲＴ２５によりＩＣカード処理装置１へ送信する。  
カードリーダライタ１４が「取得失敗」を示すデータを含むレスポンスデータを受信すると、ＩＣカード処理装置１の制御部１１は、カレントとして選択した検索範囲にはＴａｇが「０ｘ０１」のデータが存在しないものと判断する。
【００５４】
以上の流れによって、ＩＣカード処理装置１の制御部１１は、ＩＣカード２内にある複数のＤＦを同時にカレントファイルに選択し、カレントファイルとして選択した複数のＤＦを検索範囲（アクセス対象）として所望のデータをＩＣカード２に検索させることができる。
【００５５】
次に、ＩＣカード２における選択命令に対する処理について説明する。  
図７は、本実施形態に係るＩＣカード２における選択命令（たとえば、ＳＥＬＥＣＴ  Ｃｏｍｍａｎｄ）に応じた選択処理の流れを説明するためのフローチャートである。  
まず、ＩＣカード処理装置１が複数のＤＦ（例えば、ＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃ）をカレントファイルとして選択する選択命令（ＳＥＬＥＣＴ  Ｃｏｍｍａｎｄ）をＩＣカード２へ送信したものとする。ＩＣカード２は、ＵＡＲＴ２５によりＩＣカード処理装置１からの選択命令を受信する（ステップ１１）。
【００５６】
選択命令を受信すると、ＩＣカード２のＣＰＵ２１は、ＲＡＭ２３に設けたカレント管理エリア３３をクリアする（ステップ１２）。ＲＡＭ２３のカレント管理エリア３３をクリアすると、ＣＰＵ２１は、ＮＶＭ２４の記憶領域３１に定義情報が記憶されている先頭のＤＦを仮検索ＤＦとして設定する（ステップ１３）。図４に示す例では、先頭のＤＦは、ＤＦ−Ａである。また、仮検索ＤＦは、ＣＰＵ２１がカレントファイルとすべきＤＦ（選択ＤＦ）であるか否かを判定する対象となるＤＦである。
【００５７】
ＮＶＭ２４の記憶領域３１における先頭ＤＦを仮検索ＤＦに設定すると、ＣＰＵ２１は、仮検索ＤＦが当該選択命令によりカレントファイルに設定すべき選択ＤＦであるか判定する（ステップ１４）。たとえば、選択命令がカレントファイルとしてＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃを選択する場合、ＣＰＵ２１は、仮検索ＤＦがＤＦ−Ａ、ＤＦ−Ｂ又はＤＦ−Ｃであるか否かを判定する。
【００５８】
仮検索ＤＦが選択ＤＦであると判定した場合（ステップ１４、ＹＥＳ）、ＣＰＵ２１は、仮検索ＤＦを選択ＤＦするため、当該仮検索ＤＦを示す情報（例えば、当該ＤＦの識別子）をＲＡＭ２３に設けたカレント管理エリア３３に書き込む（ステップ１５）。すでにカレント管理エリア３３に何れかのＤＦを示す情報（例えば識別子）が書き込まれている場合、ＣＰＵ２１は、当該仮検索ＤＦを示す情報（例えば識別子）をカレント管理エリア３３に追記する。
【００５９】
仮検索ＤＦを示す情報をＲＡＭ２３に設けたカレント管理エリア３３に書き込んだ場合、ＣＰＵ２１は、選択命令で選択された全ての選択ＤＦを示す情報をカレント管理エリア３３に書き込んだか否かを判定する（ステップ１６）。選択命令がＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃを選択する場合、ＣＰＵ２１は、ＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃを示す情報（例えば、ＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃの識別子）を全てカレント管理エリア３３に書き込んだか否か（つまり、選択命令で指定された全ファイルをカレントファイルとして設定完了したか否か）を判定する。
【００６０】
選択命令で指定された全てのＤＦを示す情報のカレント管理エリア３３への書き込みが完了していないと判定した場合（ステップ１６、ＮＯ）、あるいは、上記ステップＳ１４で仮検索ＤＦが選択ＤＦでないと判定した場合（ステップ１４、ＮＯ）、ＣＰＵ２１は、現在設定している仮検索ＤＦがＮＶＭ２４の記憶領域３１に定義情報が記憶されている最後のＤＦであるか否かを判定する（ステップ１７）。すなわち、ＣＰＵ２１は、ＮＶＭ２４の記憶領域３１に定義情報が記憶されている全てのＤＦについて選択命令で指定された選択ＤＦであるか否かの判定が完了したか否かを判定する。
【００６１】
仮検索ＤＦがＮＶＭ２４の記憶領域３１に記憶されている最後のＤＦでないと判定すると（ステップ１７、ＮＯ）、ＣＰＵ２１は、仮検索ＤＦを現在設定している仮検索ＤＦの次のＤＦに設定変更する（ステップ１８）。仮検索ＤＦの設定を変更すると（新たな仮検索ＤＦを設定すると）、ＣＰＵ２１は、ステップ１４へ戻る。
【００６２】
また、選択命令で指定された全てのＤＦを示す情報をカレントファイルを示す情報としてカレント管理エリア３３に書き込んだと判定した場合（ステップ１６、ＹＥＳ）、ＣＰＵ２１は、「ファイルの選択成功（カレントファイルの設定完了）」を示すレスポンスを生成する。「ファイルの選択成功」を示すレスポンスを生成すると、生成したレスポンスをＵＡＲＴ２５を通じてＩＣカード処理装置１へ返信する（ステップ２０）。
【００６３】
また、選択命令で指定された全てのＤＦを示す情報のカレント管理エリア３３への書き込みが完了していない状態で（ステップ１６、ＮＯ）、かつ、仮検索ＤＦがＮＶＭ２４内にある最後のＤＦであると判定した場合（ステップ１７、ＹＥＳ）、ＣＰＵ２１は、ＣＰＵ２１は、選択命令に対する処理エラーとして「ファイルの選択失敗（カレントファイルの設定失敗）」を示すレスポンスを生成する。「ファイルの選択失敗」を示すレスポンスを生成すると、生成したレスポンスをＵＡＲＴ２５を通じてＩＣカード処理装置１へ送信する（ステップ１９）。
【００６４】
以上の処理によれば、ＩＣカードのＣＰＵは、ＩＣカード処理装置から与えられた選択命令で指定（選択）された複数のＤＦを示す情報をカレント管理エリアに書き込む。これにより、本実施形態に係るＩＣカードでは、複数のＤＦを同時にカレントファイルとして設定することができる。
【００６５】
なお、上述した処理例では、ＩＣカード２は、選択命令で指定される全てのＤＦを選択できないと「選択失敗」を含むレスポンスを送信する。しかし、他の態様としては、ＩＣカード２は、選択に成功したＤＦ名（又は、選択に失敗したＤＦ名）を含むレスポンスをＩＣカード処理装置１へ送信してもよい。この場合、ＩＣカード２は、選択に成功した一部のＤＦをカレント状態にしてもよい。
【００６６】
次に、ＩＣカード２におけるデータ取得命令に対する処理（データ取得処理）について説明する。  
図８は、本実施形態に係るＩＣカード２におけるデータ取得命令（例えば、ＧＥＴ  ＤＡＴＡ  Ｃｏｍｍａｎｄなどのリード系のコマンド）に応じたデータ取得処理の流れを説明するためのフローチャートである。  
まず、ＩＣカード処理装置１がデータ（例えば、Ｔａｇが「０ｘ０１」のデータ）の取得を要求するデータ取得命令（たとえば、ＧＥＴ  ＤＡＴＡ  Ｃｏｍｍａｎｄ）をＩＣカード２へ送信したものとする。ＩＣカード２は、ＵＡＲＴ２５によりＩＣカード処理装置１からのデータ取得命令を受信する（ステップ２１）。ここで、データ取得命令では、取得すべきデータ（又は読み込むべきファイル）がＴａｇなどの識別情報で指定されるものとする。
【００６７】
データ取得命令を受信すると、ＩＣカード２のＣＰＵ２１は、ＲＡＭ２３に設けたカレント管理エリア３３からカレントＤＦを示す情報（例えば、ＤＦの識別子）を取得する。カレント管理エリア３３からカレントＤＦを示す情報を取得すると、ＣＰＵ２１は、カレント管理エリア３３に記憶されている最初のカレントＤＦを探索対象ＤＦとして設定する（ステップ２２）。図５に示す例では、カレント管理エリア３３に最初に記憶されているカレントＤＦは、ＤＦ（ＤＦ−Ａ）である。また、仮ファイルは、ＣＰＵ２１がＴａｇを判定するファイルである。
【００６８】
探索対象ＤＦを設定すると、ＩＣカード２のＣＰＵ２１は、探索対象ＤＦの配下にある最初のファイルを仮ファイルに設定する（ステップ２３）。図４に示す記憶領域３１の例では、ＤＦ−Ａの配下にある最初の定義情報はＥＦ−Ａ１であるため、ＤＦ−Ａを探索対象ＤＦとした場合にはＥＦ−Ａ１が最初の仮ファイルとして設定される。
【００６９】
探索対象ＤＦの配下にある仮ファイルに設定すると、ＣＰＵ２１は、仮ファイルにデータ取得命令で指定されたデータが存在するか否かを判定する（ステップＳ２４）。データ取得命令では、取得すべきデータをデータの識別子「Ｔａｇ」で指定するようにして良い。たとえば、データ取得命令においてデータのＴａｇとして「０ｘ０１」が指定されている場合、ＣＰＵ２１は、Ｔａｇ「０ｘ０１」のデータが仮ファイルに存在するか否かを判定する。
【００７０】
仮ファイルに指定されたデータが存在しないと判定した場合（ステップ２４、ＮＯ）、ＣＰＵ２１は、仮ファイルが探索対象ＤＦ内にある最後のファイルであるか否かを判定する（ステップ２５）。つまり、ＣＰＵ２１は、探索対象ＤＦ内にある全てのファイルについて指定されたデータの存在をチェックしたか否かを判定する。
【００７１】
仮ファイルが探索対象ＤＦ内にある最後のファイルでないと判定すると（ステップ２５、ＮＯ）、ＣＰＵ２１は、仮ファイルを次のファイルに変更設定する（ステップ２６）。仮ファイルを現在の仮ファイルから次のファイル（新たなファイル）に変更すると、ＣＰＵ２１は、ステップ２４へ戻り、上述した処理を実行する。
【００７２】
また、仮ファイルに指定されたデータが存在すると判定した場合（ステップ２４、ＹＥＳ）、ＣＰＵ２１は、仮ファイルから指定されたデータを読み込む（ステップＳ２７）。指定されたデータを読み込むと、ＣＰＵ２１は、読み込んだデータ及び「取得成功」を示すデータを含むレスポンスを生成する。読み込んだデータ及び「取得成功」を示すデータを含むレスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスをＵＡＲＴ２５を通じてＩＣカード処理装置１へ送信する（ステップ２８）。
【００７３】
また、仮ファイルが探索対象ＤＦ内にある最後のファイルであると判定した場合（ステップ２５、ＹＥＳ）、ＣＰＵ２１は、現在の探索対象ＤＦが最後のカレントＤＦであるか否かを判断する（ステップ２９）。つまり、ＣＰＵ２１は、カレント管理エリア３３に記憶されている全てのカレントＤＦを探索対象ＤＦとしたデータ検索が完了したか否かを判定する。
【００７４】
探索対象ＤＦが最後のカレントＤＦでないと判定した場合（ステップ２９、ＮＯ）、ＣＰＵ２１は、探索対象ＤＦをカレント管理エリア３３に次のカレントＤＦに変更設定する（ステップ３０）。たとえば、ＣＰＵ２１は、探索対象ＤＦをカレント管理エリア３３において現在の探索対象ＤＦの次にカレントＤＦとして記憶されるＤＦに変更する。探索対象ＤＦを次のカレントＤＦ（新たなＤＦ）に変更すると、ＣＰＵ２１は、ステップ２３へ戻り、上述した処理を実行する。
【００７５】
また、探索対象ＤＦが最後のカレントＤＦであると判定した場合（ステップ２９、ＮＯ）、つまり、全てのカレントＤＦの配下にデータ取得命令で指定されたデータが存在しなかった場合、ＣＰＵ２１は、「取得失敗」を示すデータを含むレスポンスを生成する。「取得失敗」を示すデータを含むレスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスをＵＡＲＴ２５を通じてＩＣカード処理装置１へ送信する（ステップ３１）。
【００７６】
以上の処理によれば、ＩＣカードのＣＰＵは、ＩＣカード処理装置から与えられたデータ取得命令で指定されたデータを複数のカレントＤＦの配下から検索する。これにより、本実施形態に係るＩＣカードでは、複数のＤＦを順に選択する手続きなしで、１つのデータ取得命令に対して複数のＤＦからデータを検索することができる。
【００７７】
次に、ＩＣカード２によるデータの書込み命令に対する処理（書込処理）について説明する。  
ここでは、ＩＣカード処理装置１は、特定のファイル（又はデータ）にデータを書き込む処理について説明する。また、ＩＣカード処理装置１は、ＩＣカード２のＮＶＭ２４に記憶された複数のＤＦ（例えば、ＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃ）のうちどのＤＦの配下に書き込み対象とする特定のファイル（又はデータ）が存在するか分からないものとする。このような場合、本実施形態に係るＩＣカード２は、書込み対象とするファイルが存在するらしい複数のＤＦを同時にカレントファイルとして設定できる。
【００７８】
すなわち、複数のＤＦのうちどのＤＦに書込み対象となるファイルが存在するか不明である場合、ＩＣカード処理装置１は、選択命令により、ＩＣカード２に対して複数のＤＦをカレントファイルとして選択する。このような選択命令に対して、ＩＣカード２は、ＩＣカード２のＮＶＭ２４内に格納されている複数のＤＦを選択する。複数のＤＦをカレントファイルに設定した状態でＩＣカード処理装置１から書込命令を送信すると、ＩＣカード２は、カレントファイルに設定した複数のＤＦを検索範囲として書込み対象とするファイル（又はデータ）を検索する。これにより、ＩＣカード２は、複数のＤＦを書込み対象の検索範囲としてデータの書込み処理を行うことができる。
【００７９】
次に、ＩＣカード２における書込処理の流れについて説明する。  
図９は、本実施形態に係るＩＣカード２におけるデータの書込み命令（例えば、ＷＲＩＴＥ  Ｃｏｍｍａｎｄ、或いはＵＰＤＡＴＥ  Ｃｏｍｍａｎｄなどのライト系のコマンド）に対するデータの書込処理の流れを説明するためのフローチャートである。  
まず、ＩＣカード処理装置１がデータ（例えば、Ｔａｇが「０ｘ０１」のデータ）の書込みを要求する書込み命令（ＧＥＴ  ＤＡＴＡ  Ｃｏｍｍａｎｄ）をＩＣカード２へ送信したものとする。ＩＣカード２は、ＵＡＲＴ２５によりＩＣカード処理装置１からのデータの書込命令を受信する（ステップ４１）。ここでは、書込命令が、指定する識別子のファイル（ＥＦ）に指定するデータの書込み（或いは書き換え）を要求するコマンドであるものとして説明する。
【００８０】
上記のような書込命令をＩＣカード処理装置１から受信すると、ＣＰＵ２１は、ＲＡＭ２３に設けたカレント管理エリア３３からカレントＤＦを示す情報（例えば、ＤＦの識別子）を取得する。カレント管理エリア３３からカレントＤＦを示す情報を取得すると、ＣＰＵ２１は、カレント管理エリア３３に記憶されている最初のカレントＤＦを探索対象ＤＦとして設定する（ステップ４２）。図５に示す例では、カレント管理エリア３３に最初に記憶されるカレントＤＦは、ＤＦ（ＤＦ−Ａ）である。
【００８１】
探索対象ＤＦを設定すると、ＩＣカード２のＣＰＵ２１は、探索対象ＤＦの配下にある最初のファイルを仮ファイルに設定する（ステップ４３）。図４に示す記憶領域３１の例では、ＤＦ−Ａの配下にある最初の定義情報はＥＦ−Ａ１であるため、ＤＦ−Ａを探索対象ＤＦとした場合にはＥＦ−Ａ１が最初の仮ファイルとして設定される。
【００８２】
探索対象ＤＦの配下にある仮ファイルに設定すると、ＣＰＵ２１は、仮ファイルの識別子が書込命令で指定された識別子と一致するか否かを判定する（ステップ４４）。たとえば、書込対象のファイルとして、識別子「０ｘ０１」が指定された場合、ＣＰＵ２１は、仮ファイルの識別子が「０ｘ０１」である否かを判断する。なお、書込み対象として、所定単位のデータ（例えば、ＴＬＶ形式のデータオブジェクト）のＴａｇが指定された場合、ＣＰＵ２１は、仮ファイルに指定されたデータが存在するか否かを判定するようにすれば良い。
【００８３】
仮ファイルの識別子が書込命令で指定された識別子と一致しないと判定すると（ステップ４４、ＮＯ）、ＣＰＵ２１は、仮ファイルが探索対象ＤＦの配下にある最後のファイルであるいか否かを判定する（ステップ４５）。つまり、ＣＰＵ２１は、探索対象ＤＦの配下にある全てのファイルについて識別子をチェックしたか判定する。
【００８４】
仮ファイルが探索対象ＤＦの配下にある最後のファイルでないと判定した場合（ステップ４５、ＮＯ）、ＣＰＵ２１は、仮ファイルを探索対象ＤＦの配下にある次のファイルに設定する（ステップ４６）。仮ファイルの次のファイル（新たなファイル）に変更すると、ＣＰＵ２１は、ステップ３４へ戻り、上述の処理を実行する。
【００８５】
また、仮ファイルの識別子が書込命令で指定された識別子と一致すると判定した場合（ステップ４４、ＹＥＳ）、ＣＰＵ２１は、当該仮ファイルに当該書込命令で指定された書込データを書き込む処理を行う（ステップ４７）。仮ファイルに書込データを書き込むと、ＣＰＵ２１は、「書込成功」を示すデータを含むレスポンスを生成する。「書込成功」を示すデータを含むレスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスをＵＡＲＴ２５を通じてＩＣカード処理装置１へ送信する（ステップ４８）。
【００８６】
また、仮ファイルが探索対象ＤＦ内にある最後のファイルであると判定した場合（ステップ４５、ＹＥＳ）、ＣＰＵ２１は、現在の探索対象ＤＦが最後のカレントＤＦであるか否かを判断する（ステップ４９）。つまり、ＣＰＵ２１は、カレント管理エリア３３に記憶されている全てのカレントＤＦを探索対象ＤＦとしたファイル検索が完了したか否かを判定する。
【００８７】
探索対象ＤＦが最後のカレントＤＦでないと判定した場合（ステップ４９、ＮＯ）、ＣＰＵ２１は、探索対象ＤＦをカレント管理エリア３３に次のカレントＤＦに変更する（ステップ５０）。たとえば、ＣＰＵ２１は、探索対象ＤＦをカレント管理エリア３３において現在の探索対象ＤＦの次にカレントＤＦとして記憶されるＤＦに変更する。探索対象ＤＦを次のカレントＤＦ（新たなＤＦ）に変更すると、ＣＰＵ２１は、ステップ４３へ戻り、上述した処理を実行する。
【００８８】
また、探索対象ＤＦが最後のカレントＤＦであると判定した場合（ステップ４９、ＮＯ）、つまり、全てのカレントＤＦの配下に書込命令で指定されたデータの書込み対象となるファイルが存在しなかった場合、ＣＰＵ２１は、「書込失敗」を示すデータを含むレスポンスを生成する。「書込失敗」を示すデータを含むレスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスをＵＡＲＴ２５を通じてＩＣカード処理装置１へ送信する（ステップ５１）。
【００８９】
以上の処理によれば、ＩＣカードのＣＰＵは、ＩＣカード処理装置から与えられたデータの書込命令でデータの書込み対象として指定されたファイル或いはデータを複数のカレントＤＦの配下から検索する。これにより、本実施形態に係るＩＣカードでは、複数のＤＦを順に選択する手続きなしで、１つのデータの書込命令に対して複数のＤＦの配下をデータの書込み対象とした書込み処理を行うことができる。
【００９０】
次に、ＩＣカード２におけるデータの検索処理について説明する。  
ここでは、ＩＣカード処理装置１は、ＩＣカード２に対して特定のデータ（又はファイル）を検索させる処理について説明する。また、ＩＣカード処理装置１は、ＩＣカード２のＮＶＭ２４に記憶された複数のＤＦ（例えば、ＤＦ−Ａ、ＤＦ−Ｂ及びＤＦ−Ｃ）のうちどのＤＦの配下に、検索対象とするデータ（又はファイル）があるか分からないものとする。このような場合も、本実施形態に係るＩＣカード２は、データが存在するらしい複数のＤＦを同時にカレントファイルとして設定でき、複数のＤＦをデータの検索範囲として選択できる。
【００９１】
すなわち、複数のＤＦのうちどのＤＦに書込み対象となるファイルが存在するか不明である場合、あるいは、複数のＤＦを検索範囲して所望のデータが存在するか否かを判定したい場合、ＩＣカード処理装置１は、選択命令により、ＩＣカード２に対して複数のＤＦをカレントファイルとして選択する。このような選択命令に応じて、ＩＣカード２は、ＮＶＭ２４内に格納されている複数のＤＦをカレントファイルに設定する。複数のＤＦをカレントファイルに設定した状態でＩＣカード処理装置１から検索命令を送信すると、ＩＣカード２は、カレントファイルに設定した複数のＤＦを検索範囲としてデータ（又はファイル）を検索する。これにより、ＩＣカード２は、複数のＤＦを検索範囲としてデータの検索処理を行うことができる。
【００９２】
次に、ＩＣカード２におけるデータの検索処理の流れについて説明する。  
図１０は、本実施形態に係るＩＣカード２におけるデータの検索命令に対するデータの検索処理の流れを説明するためのフローチャートである。  
まず、ＩＣカード処理装置１がデータ（例えば、Ｔａｇが「０ｘ０１」のデータ）の検索を要求する検索命令をＩＣカード２へ送信したものとする。ＩＣカード２は、ＵＡＲＴ２５によりＩＣカード処理装置１からのデータの検索命令を受信する（ステップ６１）。ここでは、検索命令において、検索対象とするデータのＴａｇが指定されるものとして説明する。
【００９３】
上記のような検索命令をＩＣカード処理装置１から受信すると、ＣＰＵ２１は、ＲＡＭ２３に設けたカレント管理エリア３３からカレントＤＦを示す情報（例えば、ＤＦの識別子）を取得する。カレント管理エリア３３からカレントＤＦを示す情報を取得すると、ＣＰＵ２１は、カレント管理エリア３３に記憶されている最初のカレントＤＦを探索対象ＤＦとして設定する（ステップ６２）。図５に示す例では、カレント管理エリア３３に最初に記憶されるカレントＤＦは、ＤＦ（ＤＦ−Ａ）である。
【００９４】
探索対象ＤＦを設定すると、ＩＣカード２のＣＰＵ２１は、探索対象ＤＦの配下にある最初のファイルを仮ファイルに設定する（ステップ６３）。図４に示す記憶領域３１の例では、ＤＦ−Ａの配下にある最初の定義情報はＥＦ−Ａ１であるため、ＤＦ−Ａを探索対象ＤＦとした場合にはＥＦ−Ａ１が最初の仮ファイルとして設定される。
【００９５】
探索対象ＤＦの配下にある仮ファイルに設定すると、ＣＰＵ２１は、仮ファイルに検索命令で指定されたデータが存在するか否かを判定する（ステップＳ６４）。ここで、検索命令では、検索対象とするデータをデータの識別子「Ｔａｇ」で指定される。たとえば、検索命令においてデータのＴａｇとして「０ｘ０１」が指定されている場合、ＣＰＵ２１は、Ｔａｇが「０ｘ０１」のデータが仮ファイルに存在するか否かを判定する。
【００９６】
仮ファイルに指定されたデータが存在しないと判定した場合（ステップ６４、ＮＯ）、ＣＰＵ２１は、仮ファイルが探索対象ＤＦ内にある最後のファイルであるか否かを判定する（ステップ６５）。つまり、ＣＰＵ２１は、探索対象ＤＦ内にある全てのファイルについて指定されたデータの存在をチェックしたか否かを判定する。
【００９７】
仮ファイルが探索対象ＤＦ内にある最後のファイルでないと判定すると（ステップ６５、ＮＯ）、ＣＰＵ２１は、仮ファイルを次のファイルに変更する（ステップ６６）。仮ファイルを現在の仮ファイルから次のファイル（新たなファイル）に変更すると、ＣＰＵ２１は、ステップ６４へ戻り、上述した処理を実行する。
【００９８】
また、仮ファイルに指定されたデータが存在すると判定した場合（ステップ６４、ＹＥＳ）、ＣＰＵ２１は、検索対象となるデータが存在したこと（「指定データ有り」）を示すデータを含むレスポンスを生成する。「指定データ有り」を示すデータを含むレスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスをＵＡＲＴ２５を通じてＩＣカード処理装置１へ送信する（ステップ６８）。
【００９９】
また、仮ファイルが探索対象ＤＦ内にある最後のファイルであると判定した場合（ステップ６５、ＹＥＳ）、ＣＰＵ２１は、現在の探索対象ＤＦが最後のカレントＤＦであるか否かを判断する（ステップ６９）。つまり、ＣＰＵ２１は、カレント管理エリア３３に記憶されている全てのカレントＤＦを探索対象ＤＦとしたデータ検索が完了したか否かを判定する。
【０１００】
探索対象ＤＦが最後のカレントＤＦでないと判定した場合（ステップ６９、ＮＯ）、ＣＰＵ２１は、探索対象ＤＦをカレント管理エリア３３に次のカレントＤＦに変更設定する（ステップ７０）。たとえば、ＣＰＵ２１は、探索対象ＤＦをカレント管理エリア３３において現在の探索対象ＤＦの次にカレントＤＦとして記憶されるＤＦに変更する。探索対象ＤＦを次のカレントＤＦ（新たなＤＦ）に変更すると、ＣＰＵ２１は、ステップ６３へ戻り、上述した処理を実行する。
【０１０１】
また、探索対象ＤＦが最後のカレントＤＦであると判定した場合（ステップ６９、ＮＯ）、つまり、全てのカレントＤＦの配下に検索命令で指定されたデータが存在しなかった場合、ＣＰＵ２１は、指定されたデータが存在しないこと（「指定データ無し」）を示すデータを含むレスポンスを生成する。「指定データ無し」を示すデータを含むレスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスをＵＡＲＴ２５を通じてＩＣカード処理装置１へ送信する（ステップ７１）。
【０１０２】
以上の処理によれば、ＩＣカードのＣＰＵは、ＩＣカード処理装置から与えられた検索命令で指定された検索対象とするデータを複数のカレントＤＦの配下から検索する。これにより、本実施形態に係るＩＣカードでは、複数のＤＦを順に選択する手続きなしで、１つの検索命令に対して複数のＤＦからデータを検索することができる。
【０１０３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０４】
１…ＩＣカード処理装置（外部装置）、２…ＩＣカード（携帯可能電子装置）、１１…制御部、１２…ディスプレイ、１３…キーボード、１４…カードリーダライタ、Ｃ…本体、Ｃａ…ＩＣチップ、Ｍ…モジュール、２１…ＣＰＵ、２２…ＲＯＭ、２３…ＲＡＭ、２４…ＮＶＭ、２５…ＵＡＲＴ、２６…コプロセッサ。
【図１】
2014006631.tif 000003
【図２】
2014006631.tif 000004
【図３】
2014006631.tif 000005
【図４】
2014006631.tif 000006
【図５】
2014006631.tif 000007
【図６】
2014006631.tif 000008
【図７】
2014006631.tif 000009
【図８】
2014006631.tif 000010
【図９】
2014006631.tif 000011
【図１０】
2014006631.tif 000012