(57)【要約】【課題】アプリケーション内のデータに効率的にアクセスすることができる携帯可能電子装置、ＩＣカード、および携帯可能電子装置の制御方法を提供する。【解決手段】ＩＣカード１のＣＰＵ１１は、識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内にデータメモリ１４に記憶しておき、アクセス対象とするデータオブジェクトの識別子を指定し、かつ、データオブジェクトの検索範囲となるファイルを拡張する拡張アクセス命令をインターフェース１７により受信した場合、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索し、前記検索により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する。【選択図】図１
2011191808.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から与えられるコマンドに応じて処理を行う携帯可能電子装置において、
識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内に記憶する記憶手段と、
アクセス対象とするデータオブジェクトの識別子を指定し、かつ、データオブジェクトの検索範囲となるファイルを拡張する拡張アクセス命令に対して、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索する検索手段と、
前記検索手段により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する処理手段と、
を有することを特徴とする携帯可能電子装置。
【請求項２】
前記検索手段は、カレント状態のファイルと当該カンレト状態のファイルの直下の階層のファイルとを検索対象とする、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
前記検索手段は、カレント状態のファイルと当該カンレト状態のファイルの配下となるファイルのうち前記拡張アクセス命令で指定される一部のファイルを検索対象とする、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項４】
前記検索手段は、カレント状態のファイルと当該カンレト状態のファイルの配下となるファイルのうち前記拡張アクセス命令で指定される階層までのファイルを検索対象とする、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項５】
前記処理手段は、検索したデータオブジェクトへの処理結果と当該データオブジェクトが格納されているファイルを示す情報とを対応づけた情報を含むレスポンスデータを前記拡張アクセス命令の発信元の外部装置へ送信する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項６】
外部装置から与えられるコマンドに応じて処理を行うＩＣカードにおいて、
識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内に記憶する記憶手段と、アクセス対象とするデータオブジェクトの識別子を指定し、かつ、データオブジェクトの検索範囲となるファイルを拡張する拡張アクセス命令に対して、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索する検索手段と、前記検索手段により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する処理手段とを有するモジュールと、
前記モジュールを有する本体と、
を有することを特徴とするＩＣカード。
【請求項７】
外部装置から与えられるコマンドに応じて処理を行う携帯可能電子装置の制御方法であって、
識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内に記憶しておき、
アクセス対象とするデータオブジェクトの識別子を指定し、かつ、データオブジェクトの検索範囲となるファイルを拡張する拡張アクセス命令に対して、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索し、
前記検索により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する、
ことを特徴とする携帯可能電子装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、個人情報あるいは取引情報などのデータが記憶されるＩＣチップが内蔵されているＩＣカードあるいはＩＣタグなどの携帯可能電子装置、ＩＣカード、および携帯可能電子装置の制御方法などに関する。
【背景技術】
【０００２】
近年、接触式および非接触式ＩＣカードなどの携帯可能電子装置は、様々な用途に利用されている。このようなＩＣカードには、使用用途に応じた個人情報、あるいは取引情報などの種々のデータが内部メモリに記憶される。接触式および非接触式ＩＣカードは、予め規定されている読出しコマンドが外部から与えられた場合に、内部メモリに記憶しているデータを読み出す処理を行う。つまり、外部装置は、予め規定されている読出しコマンドをＩＣカードに供給することにより、その読出しコマンドの応答として読出したデータをＩＣカードから受信する。
【０００３】
たとえば、ＩＳＯ／ＩＥＣ７８１６−４では、汎用な読出しコマンドとして、以下の種類のコマンドが規定されている。  
（１）ＲＥＡＤ  ＢＩＮＡＲＹ  コマンド
（２）ＲＥＡＤ  ＲＥＣＯＲＤ  コマンド
（３）ＧＥＴ  ＤＡＴＡ  コマンド
これらの各コマンドは、それぞれデータの読出し手順が異なる。例えば、（３）の「ＧＥＴ  ＤＡＴＡ  コマンド」では、ＩＣカード内に記録されているデータオブジェクトを識別子（Ｔａｇ）により検索して読み出す処理を行う。なお、データオブジェクトとは、識別子情報（Ｔａｇ）、長さ情報（Ｌｅｎｇｔｈ）、およびデータ本体（Ｖａｌｕｅ）で構成されるＴＬＶ構造のデータである。
【０００４】
また、一般的なＩＣカードでは、インストールされたアプリケーション毎にＤＥＤＩＣＡＴＥＤ  ＦＩＬＥ（以下、ＤＦ）が内部メモリ上に定義される。各アプリケーションで使用するファイル等のデータは、各アプリケーションに対応するＤＦ内に格納される。例えば、ＩＳＯ／ＩＥＣ７８１６−４で規定されている「ＧＥＴ  ＤＡＴＡコマンド」に対する処理では、ＩＣカードは、選択されているＤＦ（カレント状態のＤＦ）内を検索範囲として、「Ｔａｇ」をキーワードにデータオブジェクトを検索し、検索されたデータオブジェクトを読み出す。すなわち、上記「ＧＥＴ  ＤＡＴＡコマンド」では、選択されているＤＦ以外のＤＦは検索範囲外となるため、カレント状態のＤＦ以外のＤＦに存在するデータオブジェクトを検索（読出し）できない。このように、従来のＩＣカードでは、コマンドを受信した場合、選択されているＤＦ以外のＤＦに格納されているデータに対して直接的にアクセスことができないようになっている。
【０００５】
しかしながら、上述した「ＧＥＴ  ＤＡＴＡコマンド」では、データオブジェクトの識別子である「Ｔａｇ」を指定するだけでデータオブジェクトを検索して読み出すことができる。このため、上記「ＧＥＴ  ＤＡＴＡコマンド」は、データファイル（ＥＬＥＭＥＮＴＡＲＹ  ＦＩＬＥ）（以下、ＥＦと称する）の指定とＥＦ内のデータ指定を行う必要がある「ＲＥＡＤ  ＢＩＮＡＲＹコマンド」、あるいは「ＲＥＡＤ  ＲＥＣＯＲＤコマンド」よりも、簡便に使用することができる。
【０００６】
一方、ＩＣカードのアプリケーションは、年々複雑になってきており、扱うデータの量も増加している。このような状況では、アプリケーションに対応するＤＦにはその配下に１つ、或いは複数のサブＤＦが定義され、それらのサブＤＦにデータを分類して格納したり管理したりすることが多く行われるようになってきている。しかしながら、複数のサブＤＦにデータを分散すると、「ＧＥＴ  ＤＡＴＡコマンド」でデータを検索したり読み出したりする場合、読出対象のデータオブジェクトを持つサブＤＦをその都度選択する処理工程が必要となるため、処理手順全体が複雑化するという短所がある。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】ＩＳＯ／ＩＥＣ  ７８１６−４
【発明の概要】
【発明が解決しようとする課題】
【０００８】
この発明の一形態は、データに効率的にアクセスすることができる携帯可能電子装置、ＩＣカード、および携帯可能電子装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
この発明の一形態としての携帯可能電子装置は、外部装置から与えられるコマンドに応じて処理を行うものにおいて、識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内に記憶する記憶手段と、データオブジェクトの検索対象とするデータオブジェクトの識別子を指定し、かつ、アクセス範囲となるファイルを拡張する拡張アクセス命令に対して、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索する検索手段と、前記検索手段により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する処理手段とを有する。
【００１０】
この発明の他の形態としてのＩＣカードは、外部装置から与えられるコマンドに応じて処理を行うものにおいて、識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内に記憶する記憶手段と、アクセス対象とするデータオブジェクトの識別子を指定し、かつ、データオブジェクトの検索範囲となるファイルを拡張する拡張アクセス命令に対して、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索する検索手段と、前記検索手段により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する処理手段とを有するモジュールと、前記モジュールを有する本体とを有する。
【００１１】
この発明の他の形態としての携帯可能電子装置の制御方法は、外部装置から与えられるコマンドに応じて処理を行う携帯可能電子装置の制御方法であって、識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内に記憶しておき、アクセス対象とするデータオブジェクトの識別子を指定し、かつ、データオブジェクトの検索範囲となるファイルを拡張する拡張アクセス命令に対して、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索し、前記検索により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する。
【発明の効果】
【００１２】
この発明の一形態によれば、データに効率的にアクセスすることができる携帯可能電子装置、ＩＣカード、および携帯可能電子装置の制御方法を提供できる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態に係るＩＣカードおよびＩＣカードを含むシステムの構成例を示すブロック図。
【図２】非接触式ＩＣカードの全体の構成例を示す図。
【図３】ＩＣカードにおけるアプリケーションの構成例を示す図。
【図４】１つのアプリケーションの複数のＤＦに同じ識別子のデータオブジェクトが存在する例を示す図。
【図５】１つのアプリケーションの複数のＤＦに同じ識別子のデータオブジェクトが存在する例を示す図。
【図６】第１の動作例を説明するためのフローチャート。
【図７】アクセス対象のデータオブジェクトと当該データオブジェクトを格納するＤＦを示す情報とを対応づけたデータ構成例を示す図。
【図８】第２の動作例を説明するためのフローチャート。
【発明を実施するための形態】
【００１４】
以下、この発明に係る実施の形態について図面を参照しつつ説明する。  
図１は、この発明の実施の形態に係る携帯可能電子装置としてのＩＣカード１およびＩＣカード１を含むＩＣカードシステムの構成例を示すブロック図である。  
上記ＩＣカード１は、外部装置としてのＩＣカード処理装置２からの電源供給により動作可能な状態となる。動作可能となったＩＣカード１は、上記ＩＣカード処理装置２からのコマンドに応じて種々の処理を行う。上記ＩＣカード処理装置２は、ＩＣカード１を動作させるための電源を供給するとともに、当該ＩＣカード１に対して種々の処理を要求するコマンドを供給する。上記ＩＣカード処理装置２がＩＣカード１に対して供給するコマンドは、用途あるいは運用形態などに応じた処理を要求するものである。
【００１５】
また、上記ＩＣカード１は、アンテナあるいは無線通信部等により上記ＩＣカード処理装置２と非接触の状態で無線通信を行う非接触式の携帯可能電子装置（非接触式ＩＣカード）であっても良し、上記ＩＣカード処理装置２と物理的に接触して通信を行う接触式の携帯可能電子装置（接触式ＩＣカード）であっても良い。さらには、上記ＩＣカード１は、非接触式ＩＣカードとしての通信機能と接触式ＩＣカードとしての通信機能とを有する複合型のＩＣカード（デュアルインターフェースＩＣカード）であっても良い。なお、この実施の形態では、主に、非接触式ＩＣカードを想定して説明する。非接触式ＩＣカードと接触式ＩＣカードとはＩＣカード処理装置２との通信方式等が異なるだけである。このため、以下に説明する実施の形態は、接触式ＩＣカードにも同様に適用できる。
【００１６】
上記ＩＣカード１の構成例について説明する。  
図１に示すように、上記ＩＣカード１は、ＣＰＵ１１、プログラムメモリ１２、ワーキングメモリ１３、データメモリ１４、通信制御部１５、電源部１６、および、インターフェース（アンテナあるいはコンタクト部）１７などを有している。  
また、上記ＩＣカード１は、カード状の本体Ｃにより構成される。上記ＩＣカード１を形成するカード状の本体Ｃには、１つ（あるいは複数）のＩＣチップ１ａとインターフェース１７とが埋設される。上記ＩＣチップ１ａは、ＣＰＵ１１、プログラムメモリ１２、ワーキングメモリ１３、データメモリ１４、通信制御部１５および電源部１６などを有している。上記ＩＣチップ１ａは、上記インターフェース１７に接続された状態でモジュール化され、当該ＩＣカード１を形成するカード状の本体Ｃ内に埋設される。たとえば、図２は、非接触式ＩＣカード全体の構成例を示す図である。図２に示す非接触式ＩＣカードは、カード状の本体Ｃを有している。この本体Ｃ内には、図２に点線で示すように、１つ（あるいは複数）のＩＣチップ１ａとインターフェース１７としてのアンテナとを有するモジュールＭが埋め込まれている。
【００１７】
上記ＣＰＵ１１は、ＩＣカード１全体の制御を司るものである。上記ＣＰＵ１１は、上記プログラムメモリ１２あるいはデータメモリ１４に記憶されている制御プログラムおよび制御データなどに基づいて動作する。たとえば、上記ＣＰＵ１１は、上記プログラムメモリ１２に記憶されている基本的な動作を司る制御プログラムを実行することにより、外部装置から与えられるコマンドに応じた処理を実行する。これにより、外部装置から上記データメモリ１４へのデータの書込みを要求するコマンドが与えられれば、上記ＣＰＵ１１は、上記データメモリ１４へのデータの書き込み処理を実行する。また、外部装置から上記データメモリ１４に記憶されているデータの読み出しを要求するコマンドが与えられれば、上記ＣＰＵ１１は、上記データメモリ１４からのデータの読み出し処理を実行する。さらに、上記ＣＰＵ１１は、当該ＩＣカード１の用途などに応じてインストールされる処理プログラムを実行することにより、用途に応じた処理を実現するようになっている。
【００１８】
上記プログラムメモリ１２は、読み出し専用のメモリ（ＲＯＭ：リードオンリーメモリ）により構成される。上記プログラムメモリ１２には、予め基本動作を司る制御プログラムおよび制御データなどが記憶されている。上記プログラムメモリ１２には、予め当該ＩＣカード１の仕様に応じた制御プログラム及び制御データが記憶される。たとえば、上記ＣＰＵ１１は、上記プログラムメモリ１２に記憶される制御プログラムにより外部から与えられるコマンドに応じた処理を実現する。
【００１９】
上記ワーキングメモリ１３は、揮発性のメモリ（ＲＡＭ；ランダムアクセスメモリ）により構成される。上記ワーキングメモリ１３は、データを一時保管するバッファメモリとして機能する。例えば、上記ワーキングメモリ１３には、ＩＣカード処理装置（外部装置）２との通信処理において、送受信されるデータが一時的に保管される。また、上記ワーキングメモリ１３には、種々の書込みデータなどを一時的に保持するメモリとしても利用される。
【００２０】
上記データメモリ（不揮発性メモリ）１４は、データの書き込みが可能な不揮発性のメモリである。上記データメモリ１４は、例えば、ＥＥＰＲＯＭあるいはフラッシュメモリなどにより構成される。上記データメモリ１４には、当該ＩＣカード１の使用目的に応じた種々の情報が記憶される。  
たとえば、当該ＩＣカードの使用目的に応じたアプリケーション（処理プログラムおよび運用データなど）は、上記データメモリ１４に書込まれる。当該ＩＣカード１が複数の使用目的に使用される場合、上記データメモリ１４には、各使用目的に応じた複数のアプリケーションが記憶される。また、当該ＩＣカード１の使用目的に応じたアプリケーションは、上記データメモリ１４上に定義された使用目的ごとのプログラムファイル（ＤＦ；Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ）およびデータファイル（ＥＦ；Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ）などの各ファイルに記憶される。これらのファイルは、階層構造で管理される。これらのファイルの構成は、たとえば、ＩＳＯ／ＩＥＣ７８１６−４に基づくものである。なお、これらのファイルに格納されるデータの構成例については、後で詳細に説明するものとする。
【００２１】
上記通信制御部１５は、上記インターフェース１７を介して外部装置（たとえば、ＩＣカード処理装置２）とのデータ通信を制御するものである。たとえば、当該ＩＣカードが非接触型のＩＣカードであれば、外部装置からデータを受信する場合、上記通信制御部１５は、インターフェース１７としてのアンテナにより受信した電波としての送信データを復調し、復調した信号を上記ＣＰＵ１１に供給する。また、外部装置へデータを送信する場合、上記通信制御部１５は、上記ＣＰＵ１１から与えられるデータを変調し、変調したデータを上記インターフェース１７としてのアンテナにより電波として発信する。なお、接触式ＩＣカードでは、インターフェース１７として、アンテナの代わりに、外部装置の接触端子部と物理的・電気的に接触するコンタクト部を介して外部装置とのデータ通信を行う。
【００２２】
上記電源部１６は、当該ＩＣカード１の各部を動作させるための上記インターフェース１７を介して受信する電力およびクロックパルスを供給する。たとえば、当該ＩＣカードが非接触型のＩＣカードであれば、上記電源部１６は、上記インターフェース１７としてのアンテナにより受信した電波から電力およびクロックパルスを生成し、当該ＩＣカード内の各部に供給するようになっている。また、上記電源部１６からの電力供給により起動した場合、上記ＣＰＵ１１は、当該ＩＣカード１の処理状態をリセットする処理を行うようになっている。なお、当該ＩＣカード１が接触型のＩＣカードであれば、上記電源部１６はインターフェース１７を介して外部装置から直接的に供給される電力およびクロックパルスにより各部へ供給するようになっている。
【００２３】
次に、上記ＩＣカード処理装置２について説明する。  
上記ＩＣカード処理装置２は、図１に示すように、制御装置２１およびカードリーダライタ２２を有している。上記制御装置２１は、パーソナルコンピュータ（ＰＣ）などにより構成される。上記制御装置２１は、ＣＰＵなどの演算処理部、ＲＡＭ、ＲＯＭ、不揮発性メモリおよびハードディスクドライブなどの各種メモリ、通信インターフェースなどの各種インターフェースなどにより構成される。上記制御装置２１では、上記演算処理部がメモリに記憶されている各種の制御プログラムを実行することにより各種の処理を実現している。また、上記制御装置２１は、ＩＣカード１とのデータ通信を行う上記カードリーダライタ２２とのデータの入出力を行うようになっている。
【００２４】
たとえば、上記制御装置２１には、上記ＩＣカード１を用いた各種の処理に応じた制御プログラムが予め記憶されている。上記制御装置２１では、上記のような制御プログラムを実行することにより上記ＩＣカード１を用いた各種の処理を実行する。たとえば、上記ＩＣカード１を用いた各種の処理において、上記制御装置２１は、所定のコマンドを所定の手順で供給する。上記制御装置２１では、上記のような各コマンドに対するＩＣカード１からの各レスポンス（コマンドに対する処理結果等を示す情報）に基づいて各種の処理を行うようになっている。
【００２５】
上記カードリーダライタ２２は、上記ＩＣカード１とのデータ通信を行う通信手段として機能する。上記カードリーダライタ２２は、上記ＩＣカード１の通信方式に応じた通信方式によるデータ通信を行うためのものである。つまり、上記カードリーダライタ２２を介して制御装置２１は、上記ＩＣカード１とのデータ通信を実現している。
【００２６】
上記ＩＣカード１が非接触型のＩＣカードである場合、上記カードリーダライタ２２は、上記ＩＣカード１との無線によるデータ通信を行うためのアンテナおよび通信制御部（変復調回路等）などにより構成される。非接触型のＩＣカード１へデータを送信する場合、上記カードリーダライタ２２では、通信制御部により上記制御装置２１から与えられる送信データを変調し、変調した信号を電波としてアンテナにより発信する。また、非接触型のＩＣカード１からデータを受信する場合、上記カードリーダライタ２２では、アンテナにより受信した電波としての信号を通信制御部により復調し、復調したデータを受信データとして上記制御装置２１へ供給する。また、上記カードリーダライタ２２では、上記のようなデータの送受信とともに、上記ＩＣカード１を動作させるための電源およびクロックパルスとなる電波をアンテナにより発信するようになっている。
【００２７】
また、上記ＩＣカード１が接触型のＩＣカードである場合、上記カードリーダライタ２２は、ＩＣカード１と物理的に接触してデータ通信を行うためのコンタクト部および通信制御部などにより構成される。接触型のＩＣカードとのデータの送受信を行う場合、上記カードリーダライタ２２では、上記コンタクト部がＩＣカード１側に設けられているコンタクト部と物理的に接触して各種のデータ通信を行う。また、上記カードリーダライタ２２では、ＩＣカード１に物理的に接触しているコンタクト部を介して当該ＩＣカード１に対して電力およびクロックパルスを供給するようになっている。
【００２８】
次に、上記データメモリ１４に記憶されるファイルについて説明する。  
本実施の形態では、上述したようにデータメモリ１４内の各ファイルがＩＳＯ／ＩＥＣ  ７８１６で規定されているファイル構造となっているものとする。ＩＳＯ／ＩＥＣ  ７８１６では、ＭＦ（Ｍａｓｔｅｒ  Ｆｉｌｅ）、ＤＦ（Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ）、ＥＦ（Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ）などからなる階層構造のファイル構成が規定されている。
【００２９】
ＭＦは、階層構造の最上位に位置するファイルである。ＭＦの下層にＤＦあるいはＥＦが設けられる。通常、１つのＩＣカード１には、１つのＭＦが設けられる。ＤＦは、例えば、アプリケーションごとに設定されるファイルである。ＤＦの下層には、サブＤＦあるいはＥＦを設定することが可能である。１つのアプリケーションでは、上位層の１つのＤＦに各アプリケーションで利用するデータを格納できるとともに、下層に設けたサブのＤＦあるいはＥＦにデータを分散して格納することも可能である。各ＥＦは、それぞれ実データを記憶するためのデータファイルである。
【００３０】
たとえば、ＤＦ及びＥＦには、アプリケーションで利用するデータをデータオブジェクト単位で格納できる。データオブジェクトは、当該データの種別を示す識別子（Ｔａｇ）と、当該データの長さを示す長さ情報（Ｌｅｎｇｔｈ）と、当該データそのものを示すデータ部（Ｖａｌｕｅ）とから構成されるＴＬＶ構造を有するデータである。このようなＴＬＶ構造のデータオブジェクトには、識別子（Ｔａｇ）を指定したコマンドによりアクセスが可能である。
【００３１】
たとえば、ＩＳＯ／ＩＥＣ  ７８１６−４では、読出対象とするデータオブジェクトを識別子で指定するＧＥＴ  ＤＡＴＡコマンドが規定されている。ＩＳＯ／ＩＥＣ  ７８１６−４で規定されているＧＥＴ  ＤＡＴＡコマンド（以下、通常のＧＥＴ  ＤＡＴＡコマンドと称する）では、選択状態（カレント状態）のＤＦ内におけるデータオブジェクトを読出対象とする。また、ＩＳＯ／ＩＥＣ  ７８１６−４では、書換え対象とするデータオブジェクトを識別子で指定するＰＵＴ  ＤＡＴＡコマンドも規定されている。ＩＳＯ／ＩＥＣ  ７８１６−４で規定されているＰＵＴ  ＤＡＴＡコマンドでは、選択状態（カレント状態）のＤＦ内におけるデータオブジェクトを書込み対象とする。
【００３２】
図３は、ＩＣカード１のデータメモリ１４に記憶される複数のＤＦの構成例を示す図である。  
図３に示す構成例において、ＭＦの直下には、アプリケーションＤＦ１とアプリケーションＤＦ２とが存在する。アプリケーションＤＦ１とアプリケーションＤＦ２とは、それぞれが各アプリケーションに対応するメインのＤＦである。ＭＦの直下に存在するアプリケーションＤＦ１は、配下に３個のサブＤＦ１−１、１−２及び１−３を有している。当該アプリケーションで使用するデータは、ＤＦ１と、ＤＦ１の配下にある３つのサブＤＦに分散して格納されている。図３に示すようなファイル構成によれば、アプリケーションＤＦの配下に設けた複数のサブＤＦによりデータを分類して格納したり管理したりすることが可能となる。
【００３３】
通常のＧＥＴ  ＤＡＴＡコマンドでは、選択状態（カレント状態）のＤＦ内のみを読出対象とするデータオブジェクトの検索範囲とする。このため、図３に示すようなデータ構成のアプリケーションにおける所望のデータオブジェクトを読み出す場合、通常のＧＥＴ  ＤＡＴＡコマンドは、検索範囲がカレント状態のＤＦに限定されるため、読出対象とするデータオブジェクトが読み出されるまで、当該アプリケーションの各ＤＦを順に選択状態してから送信されなければならない。
【００３４】
たとえば、図３に示すように、サブＤＦ１−３に所望のデータオブジェクト（識別子：ＴａｇＡ）が格納されていると仮定する。この場合、ＩＣカード処理装置２は、まず、当該アプリケーションの上位階層ＤＦであるアプリケーションＤＦ１をＩＣカード１に選択させる。アプリケーションＤＦ１を選択した状態のＩＣカード１に対して、ＩＣカード処理装置２は、所望のデータオブジェクトの識別子（ＴａｇＡ）を指定した通常のＧＥＴ  ＤＡＴＡコマンドを供給する。これにより、ＩＣカード１は、アプリケーションＤＦ１内で通常のＧＥＴ  ＤＡＴＡコマンドで指定された識別子のデータオブジェクトを読出対象として検索する。ここで、アプリケーションＤＦ１に指定のデータオブジェクトが存在しなければ、ＩＣカード１は、ＩＣカード処理装置２に検索失敗（指定のデータオブジェクトが存在しない旨）を通知する。
【００３５】
次に、ＩＣカード処理装置２は、ＩＣカード１にサブＤＦ１−１を選択させ、所望のデータオブジェクトの識別子（ＴａｇＡ）を指定した通常のＧＥＴ  ＤＡＴＡコマンドを供給する。この通常のＧＥＴ  ＤＡＴＡコマンドを受信したＩＣカード１は、サブＤＦ１−１内で指定された識別子のデータオブジェクトを読出対象として検索する。サブＤＦ１−１に指定のデータオブジェクトが存在しなければ、ＩＣカード１は、ＩＣカード処理装置２に検索失敗（指定のデータオブジェクトが存在しない旨）を通知する。
【００３６】
次に、ＩＣカード処理装置２は、ＩＣカード１にサブＤＦ１−２を選択させ、所望のデータオブジェクトの識別子（ＴａｇＡ）を指定した通常のＧＥＴ  ＤＡＴＡコマンドを供給する。この通常のＧＥＴ  ＤＡＴＡコマンドを受信したＩＣカード１は、サブＤＦ１−２内で指定された識別子のデータオブジェクトを読出対象として検索する。サブＤＦ１−２に指定のデータオブジェクトが存在しなければ、ＩＣカード１は、ＩＣカード処理装置２に検索失敗（指定のデータオブジェクトが存在しない旨）を通知する。
【００３７】
さらに、ＩＣカード処理装置２は、ＩＣカード１にサブＤＦ１−３を選択させ、所望のデータオブジェクトの識別子（ＴａｇＡ）を指定した通常のＧＥＴ  ＤＡＴＡコマンドを供給する。この通常のＧＥＴ  ＤＡＴＡコマンドを受信したＩＣカード１は、サブＤＦ１−３内で指定された識別子のデータオブジェクトを読出対象として検索する。ここで、サブＤＦ１−３に指定のデータオブジェクトが存在すれば、ＩＣカード１は、当該データオブジェクトを読み出してＩＣカード処理装置２へ出力する。所望のデータオブジェクト読み出した後にカレント状態のＤＦをアプリケーションＤＦ１に戻す場合、ＩＣカード処理装置２は、ＩＣカード１にアプリケーションＤＦ１を選択させる。
【００３８】
上述のように、通常のＧＥＴ  ＤＡＴＡコマンドでは、アプリケーションが複数のＤＦを有する場合、個々のＤＦを選択してからＤＦごとにデータオブジェクトの検索処理を実行しなければならない。そこで、本実施の形態では、通常のＧＥＴ  ＤＡＴＡコマンドの機能（指定データオブジェクトの検索範囲）を拡張したＧＥＴ  ＤＡＴＡコマンド（拡張ＧＥＴ  ＤＴＡコマンド）を定義する。
【００３９】
拡張ＧＥＴ  ＤＡＴＡコマンドでは、複数のＤＦを検索対象として読出対象のデータオブジェクトを検索する。たとえば、アプリケーションＤＦ１がカレント（選択状態）である場合、拡張ＧＥＴ  ＤＡＴＡコマンドを受信したＩＣカード１は、アプリケーションＤＦ１とＤＦ１に属する各サブＤＦを検索対象として指定された識別子のデータオブジェクトを検索する。図３に示す例のように、ＤＦ１−３に指定された識別子のデータオブジェクトが存在する場合、アプリケーションＤＦ１がカレントであっても、ＩＣカード１は、ＤＦ１の配下のサブＤＦ１−３に格納されたデータオブジェクトを検索して読み出すことが可能となる。
【００４０】
上記拡張ＧＥＴ  ＤＡＴＡコマンドのようなデータオブジェクトの検索範囲を拡張する拡張コマンド（拡張アクセス命令）は、たとえば、通常のコマンドにおける一部のパラメータを変更することにより指定できるようにしても良い。以下の説明では、拡張コマンドの例として、主に、通常のＧＥＴ  ＤＡＴＡコマンドを拡張した拡張ＧＥＴ  ＤＴＡコマンドの例について説明するが、本実施の形態は、これに限定されるものではない。本実施の形態は、ＩＳＯ／ＩＥＣ  ７８１６−４で規定されているような、データオブジェクトを指定する通常のコマンドを拡張して複数のＤＦが検索範囲となるようなコマンド（拡張コマンド）を提供することが可能である。たとえば、ＩＳＯ／ＩＥＣ  ７８１６−４で規定されているＰＵＴ  ＤＡＴＡコマンドを拡張することにより、複数のＤＦが検索範囲となる拡張ＰＵＴ  ＤＡＴＡコマンドを提供することが可能である。
【００４１】
図４は、アプリケーションＤＦと当該アプリケーションＤＦに属するサブＤＦに同じ識別子のデータオブジェクトが存在する例を示している。  
図４に示す構成例において、ＭＦの直下に存在するアプリケーションＤＦ１は、配下に３個のサブＤＦ１−１、１−２及び１−３を有する。さらに、図４に示す構成例では、アプリケーションＤＦ１と、当該アプリケーションＤＦ１の配下にあるサブＤＦ１−２とに、同じ識別子（Ｔａｇ：Ａ）のデータオブジェクトが存在している。つまり、アプリケーションＤＦ１とその配下のサブＤＦ１−１、１−２及び１−３とを検索範囲とすると、同一の識別子（Ｔａｇ：Ａ）で検出されるデータオブジェクトが複数となる。
【００４２】
図５は、アプリケーションＤＦの直下のサブＤＦと当該サブＤＦの直下のサブＤＦ（アプリケーションＤＦの２つ下の階層のＤＦ）とに同じ識別子のデータオブジェクトが存在する例を示している。  
図５に示す構成例において、ＭＦの直下に存在するアプリケーションＤＦ１は、直下の階層に２個のサブＤＦ１−１およびサブＤＦ１−２を有する。さらに、図５に示す構成例では、アプリケーションＤＦ１直下のサブＤＦ１−１は、直下の階層にサブＤＦ１−１−１およびサブＤＦ１−１−２を有し、アプリケーションＤＦ１直下のサブＤＦ１−２は、直下の階層にサブＤＦ１−２−１およびサブＤＦ１−２−２を有する。つまり、アプリケーションＤＦ１は、配下に６個のサブＤＦ１−１、１−２、１−１−１、１−１−２、１−２−１、および１−２−２を有する。
【００４３】
当該アプリケーションＤＦ１の配下では、サブＤＦ１−１とサブＤＦ２−１−１に、同じ識別子（Ｔａｇ：Ａ）のデータオブジェクトが存在している。つまり、図５に示す構成例では、アプリケーションＤＦ１の配下の全サブＤＦを検索範囲とすれば、異なる複数の階層のＤＦから同一の識別子（Ｔａｇ：Ａ）を有するデータオブジェクトが複数検出される。
【００４４】
通常、同一のＤＦには、同一の識別子のデータオブジェクトが存在しない。ただし、異なるＤＦには、図４或は図５に示すように、同一の識別子のデータオブジェクトが存在する可能性がある。このような場合を想定すると、拡張コマンドでは、最初に検索されたデータオブジェクトのみをアクセス対象とするようにしても良いし、検索範囲となる全ＤＦから検出される全てのデータオブジェクトをアクセス対象とするようにしても良い。以下、拡張ＧＥＴ  ＤＡＴＡコマンドに対する処理を想定して、前者を第１の動作例として説明し、後者を第２の動作例として説明するものとする。
【００４５】
まず、第１の動作例について説明する。  
第１の動作例では、ＩＣカード１は、拡張コマンドが検索範囲とするＤＦを順番に検索し、最初に検索されたデータオブジェクトにアクセスする。たとえば、第１の動作例では、拡張ＧＥＴ  ＤＡＴＡコマンドを受信したＩＣカード１は、検索対象となる複数のＤＦを順に検索することにより、最初に検索された指定の識別子のデータオブジェクトを読み出す。従って、第１の動作例では、図４に示すようなアプリケーションに対して識別子（ＴａｇＡ）を指定した拡張ＧＥＴ  ＤＡＴＡコマンドを受信した場合、ＩＣカード１が上位階層のＤＦから検索するものとすると、先に検索されるアプリケーションＤＦ１内のＴａｇＡのデータオブジェクトが読み出される。なお、ＤＦの検索順番は、上位階層のＤＦからの順番となることが想定されるが、ＤＦの検索順番は運用形態に応じて設定できるようにしても良い。
【００４６】
また、複数のＤＦに同一の識別子のデータオブジェクトが存在する可能性を考慮し、連続する拡張ＧＥＴ  ＤＡＴＡコマンドにより複数のＤＦから同一の識別子のデータオブジェクトを順次読み出させるようにしても良い。たとえば、連続して拡張ＧＥＴ  ＤＡＴＡコマンドを受信した場合、直前に読み出したデータオブジェクトを格納しているＤＦを最後の検索順番（あるいは検索対象外）として、データオブジェクトを検索するようにすれば良い。この場合、図４に示すデータのアプリケーションに対しては、１回目の拡張ＧＥＴ  ＤＡＴＡコマンドに対してアプリケーションＤＦ１に格納されているＴａｇＡのデータオブジェクトを出力し、連続する２回目の拡張ＧＥＴ  ＤＡＴＡコマンドに対する応答としてサブＤＦ１−２に格納されているＴａｇＡのデータオブジェクトを出力するようにできる。
【００４７】
図６は、第１の動作例を説明するためのフローチャートである。  
まず、ＩＣカード１は、ＩＣカード処理装置２から送信されたコマンドをインターフェース１７により受信する。ＩＣカード処理装置２からコマンドを受信した場合、ＩＣカード１のＣＰＵ１１は、受信したコマンドが拡張コマンドであるか否かを判断する（ステップＳ１１）。受信コマンドが拡張コマンドでない場合、ＩＣカード１のＣＰＵ１１は、通常のコマンド処理を実行する。
【００４８】
受信したコマンドが拡張コマンドである場合、ＣＰＵ１１は、検索範囲とするＤＦを選定する（ステップＳ１２）。ここでは、検索範囲として選定されたＤＦの数をＮ個とする。検索範囲とするＤＦの範囲は、予め規定しておくようにしても良いし、拡張コマンドにおいて指定できるようにしても良い。たとえば、予め検索範囲を規定する形態としては、カレント状態のＤＦ（カレントＤＦ）とカレントＤＦの直下の階層のＤＦとを検索範囲としても良いし、カレントＤＦとカレントＤＦの配下の全ＤＦとを検索範囲としても良いし、カレントＤＦが属するアプリケーションの全ＤＦを検索範囲としても良い。
【００４９】
また、各拡張コマンドで検索範囲のＤＦを指定する形態としては、検索範囲とするＤＦの条件をパラメータで指定するようにすれば良い。たとえば、検索範囲とするＤＦの条件としては、たとえば、階層数を指定したり、検索範囲とするＤＦを示すキーワード（たとえば、ＤＦ名の一部、あるいは、識別情報の一部などのＤＦを示す情報の一部）を指定したりすることができる。
【００５０】
たとえば、検索範囲とするＤＦの階層数は、以下のような指定方法が考えられる。  
検索階層数を「１」に指定した拡張コマンドでは、現在選択されているＤＦ（カレントＤＦ）のみを検索範囲とする。検索階層数を「２」に指定した拡張コマンドでは、カレントＤＦとカレントＤＦの次の階層（直下の階層）のＤＦとを検索範囲とする。検索階層数を「３」に指定した拡張コマンドでは、カレントＤＦ、カレントＤＦの直下の階層のＤＦ、およびカレントＤＦの２つ下の階層のＤＦを検索範囲とする。また、検索階層数を「無制限」に指定した拡張コマンドでは、現在選択されているＤＦ（カレントＤＦ）の配下となる全ＤＦを検索範囲とする。なお、ＭＦをカレント状態として、検索階層数を「無制限」とすることにより、当該ＩＣカード内の全ＤＦが検索範囲として指定できるようにしても良い。
【００５１】
また、キーワードにより検索範囲とするＤＦを指定する場合、拡張コマンドでは、たとえば、ＤＦ名の一部、ＤＦの識別情報の一部、あるいは、ＤＦの識別番号の範囲などをキーワードとして指定することにより、指定したキーワードに基づく検索で選出されるＤＦを検索範囲とすることが可能である。
【００５２】
受信した拡張コマンドが検索範囲とするＮ個のＤＦを選定すると、ＣＰＵ１１は、それらのＤＦに対する検索順番を決定する（ステップＳ１３）。検索順番は、所定の規定にしたがって決定される。たとえば、検索順番は、カレントＤＦを基準に上位階層から下位階層の順番で、同階層内ではＤＦの識別番号の順あるいは更新された日時の順に並べるようにしても良い。
【００５３】
検索範囲のＤＦに対する検索順番が決定すると、ＣＰＵ１１は、変数ｎを初期化（ｎ＝０）する（ステップＳ１４）。変数ｎを初期化（ｎ＝０）すると、ＣＰＵ１１は、初期化した変数ｎをインクリメント（ｎ＝ｎ＋１）する（ステップＳ１５）。変数ｎをインクリメントすると、ＣＰＵ１１は、検索順番がｎ番目のＤＦにおいて拡張コマンドで指定された識別子のデータオブジェクトを検索する（ステップＳ１６）。
【００５４】
検索したｎ番目のＤＦに指定された識別子のデータオブジェクトがない場合（ステップＳ１７、ＮＯ）、ＣＰＵ１１は、変数ｎが検索範囲のＤＦ数としてのＮ個に達したか否かを判断する（ステップＳ１８）。変数ｎがＮでない場合（ステップＳ１８、ＮＯ）、ＣＰＵ１１は、上記ステップＳ１５へ戻って変数ｎをインクリメントし、ステップＳ１５〜Ｓ１７の処理を再度行う。すなわち、指定された識別子のデータオブジェクトを発見するか、あるいは、変数ｎがＮに達するまで、ＩＣカード１のＣＰＵ１１は、上記ステップＳ１５〜Ｓ１８の処理を繰り返し行う。
【００５５】
ｎ番目のＤＦにおいて指定された識別子のデータオブジェクトを発見した場合（ステップＳ１７、ＹＥＳ）、ＣＰＵ１１は、検索した指定のデータオブジェクトにアクセスし、当該拡張コマンドで要求された処理を行う（ステップＳ１９）。  
たとえば、拡張コマンドが拡張ＧＥＴ  ＤＡＴＡコマンドであれば、ＣＰＵ１１は、検索した指定のデータオブジェクトを読み出す処理を行う。また、受信した拡張コマンドが拡張ＰＵＴ  ＤＡＴＡコマンドであれば、ＣＰＵ１１は、検索した指定のデータオブジェクトを書き換える処理を行う。
【００５６】
当該拡張コマンドで指定された識別子のデータオブジェクトに要求された処理を実行すると、ＣＰＵ１１は、処理結果（アクセス結果）を示す情報をセットしたレスポンスデータを生成し、生成したレスポンスデータをＩＣカード処理装置２へ送信する（ステップＳ２０）。上記処理結果には、アクセスしたデータオブジェクトの所在を示す情報（当該データオブジェクトが格納されているＤＦを示す情報）を添付するようにしても良い。
【００５７】
また、検索したＤＦからデータオブジェクトが発見されない状態のままで変数ｎがＮに達した場合（ステップＳ１８、ＹＥＳ）、ＣＰＵ１１は、当該拡張コマンドで指定された識別子のデータオブジェクトが検索範囲のＤＦには存在しない旨を処理結果（アクセス結果）を示す情報としてセットしたレスポンスデータをＩＣカード処理装置２へ送信する（ステップＳ２１）。
【００５８】
上記第１の動作例では、ＩＣカード１は、拡張コマンドが検索範囲とする複数のＤＦを順番に検索し、最初に発見した指定の識別子のデータオブジェクトにアクセスする。たとえば、拡張ＧＥＴ  ＤＡＴＡコマンドを受信した場合、第１の動作例のＩＣカード１は、検索対象となる複数のＤＦを順番に検索し、最初に発見した指定の識別子のデータオブジェクトを読み出す。これにより、第１の動作例によれば、指定の識別子のデータオブジェクトを発見した時点でコマンド処理が実行でき、検索範囲とする全てのＤＦを必ずしも検索する必要がなく、高速な処理が期待できる。たとえば、アプリケーションの複数ＤＦ内で指定の識別子のデータオブジェクトが１つだけであることが明らかな場合、或は、最初に発見されるデータオブジェクトだけにアクセスすれば良い場合などでは、第１の動作例により効率的な処理が実現できる。
【００５９】
また、上記第１の動作例では、１つのアプリケーションに指定の識別子のデータオブジェクトが複数存在する場合、ＩＣカード１は、連続して受信する拡張コマンドに対して順次、各データオブジェクトにアクセスする。たとえば、連続して拡張ＧＥＴ  ＤＡＴＡコマンドを受信した場合、第１の動作例のＩＣカード１は、検索対象となる複数のＤＦに対する検索順番を設定し、前回アクセスしたデータオブジェクトが存在するＤＦの次のＤＦから指定の識別子のデータオブジェクトを順番に検索し、最初に発見した指定の識別子のデータオブジェクトを読み出す。これにより、第１の動作例によれば、連続して受信する拡張コマンドに対し、１つのアプリケーションを構成する複数ＤＦに存在する同一の識別子のデータオブジェクトに順番にアクセスできる。
【００６０】
次に、第２の動作例について説明する。  
第２の動作例では、ＩＣカード１は、拡張コマンドが検索範囲とするＤＦを全て検索し、その結果として検索範囲の全ＤＦから検索された全てのデータオブジェクトにアクセスする。たとえば、第２の動作例では、拡張ＧＥＴ  ＤＡＴＡコマンドを受信したＩＣカード１は、検索範囲となる複数のＤＦを全て検索することにより、検索範囲となる複数のＤＦから検索された指定の識別子のデータオブジェクトを全て読み出す。
【００６１】
従って、第２の動作例では、図４に示すようなアプリケーションに対して識別子（ＴａｇＡ）を指定した拡張ＧＥＴ  ＤＡＴＡコマンドを受信した場合、当該拡張ＧＥＴ  ＤＡＴＡコマンドが図４に示す全ＤＦを検索範囲とすれば、ＩＣカード１は、アプリケーションＤＦ１内のＴａｇＡのデータオブジェクトとサブＤＦ１−２内のＴａｇＡのデータオブジェクトとを読み出す。
【００６２】
また、第２の動作例では、図５に示すようなアプリケーションに対して識別子（ＴａｇＡ）を指定した拡張ＧＥＴ  ＤＡＴＡコマンドを受信した場合、当該拡張ＧＥＴ  ＤＡＴＡコマンドが図５に示す全ＤＦを検索範囲とすれば、ＩＣカード１は、サブＤＦ１−１内のＴａｇＡのデータオブジェクトとサブＤＦ２−１−１内のＴａｇＡのデータオブジェクトとを読み出す。
【００６３】
また、拡張ＧＥＴ  ＤＡＴＡコマンドに対するレスポンスとしては、図４或は図５に示すように、複数のＤＦに同一の識別子のデータオブジェクトが存在する可能性を考慮し、アクセスした各データオブジェクトと各データオブジェクトの所在を示す情報とを組合せた情報を送信するようにしても良い。  
図７は、データオブジェクトと当該データオブジェクトを格納しているＤＦのＤＦ名とを対応づけたものである。図７に示す例は、図４に示すＴａｇＡのデータオブジェクトの検索結果であることを想定している。
【００６４】
図７に示す例において、ＴａｇＡは、読出し対象とするデータオブジェクトの識別子であり、ＴａｇＢは、読出し対象のデータオブジェクトを格納しているＤＦのＤＦ名を示すデータオブジェクトの識別子である。すなわち、図７に示す例において、アプリケーションＤＦ１内のＴａｇＡのデータオブオブジェクトは、アプリケーションＤＦ１内のＴａｇＢのデータオブジェクトで示されるＤＦ名のＤＦに格納されていることを示す。また、図７に示す例において、サブＤＦ１−２内のＴａｇＡのデータオブオブジェクトは、サブＤＦ１−２内のＴａｇＢのデータオブジェクトで示されるＤＦ名のＤＦに格納されていることを示している。
【００６５】
拡張ＧＥＴ  ＤＡＴＡコマンドに対して、ＩＣカード１では、図７に示すように、読出し対象のデータオブジェクトと当該データオブジェクトが格納されているＤＦを示す情報とを組み合わせた情報をレスポンスとして出力する。これにより、拡張ＧＥＴ  ＤＡＴＡコマンドの発信元のＩＣカード処理装置２では、同一識別子の複数のデータオブジェクトが読み出された場合であっても、各データオブジェクトがどのＤＦから読み出されたものかを明確に識別できる。
【００６６】
図８は、第２の動作例を説明するためのフローチャートである。  
まず、ＩＣカード１は、ＩＣカード処理装置２から送信されたコマンドをインターフェース１７により受信する。ＩＣカード処理装置２からコマンドを受信した場合、ＩＣカード１のＣＰＵ１１は、受信したコマンドが拡張コマンドであるか否かを判断する（ステップＳ３１）。受信コマンドが拡張コマンドでない場合、ＩＣカード１のＣＰＵ１１は、通常のコマンド処理を実行する。
【００６７】
受信したコマンドが拡張コマンドである場合、ＣＰＵ１１は、検索範囲とするＤＦを選定する（ステップＳ３２）。ここでは、検索範囲として選定されたＤＦの数をＮ個とする。検索範囲とするＤＦは、上記第１の動作例で説明したように、予め規定しておくようにしても良いし、拡張コマンドにおけるパラメータで指定できるようにしても良い。例えば、予め検索範囲を規定する形態としては、カレントＤＦとその直下の階層のＤＦを検索範囲としても良いし、カレントＤＦとその配下の全ＤＦを検索範囲としても良いし、カレントＤＦが属するアプリケーションの全ＤＦを検索範囲としても良い。また、拡張コマンドで検索範囲のＤＦを指定する形態としては、上述した第１の動作例と同様に、検索範囲とするＤＦの条件をパラメータで指定するようにすれば良い。たとえば、検索範囲とするＤＦの条件としては、階層数を指定したり、キーワード（ＤＦを示す情報の一部、たとえば、ＤＦ名の一部、あるいは識別番号の一部など）を指定したりすることができる。
【００６８】
受信した拡張コマンドが検索範囲とするＮ個のＤＦを選定すると、ＣＰＵ１１は、それらのＤＦに対する検索順番を決定する（ステップＳ３３）。第２の動作例では、検索範囲の全ＤＦを検索するため、検索順番は任意の順番であっても良い。検索範囲のＤＦに対する検索順番が決定すると、ＣＰＵ１１は、変数ｎを初期化（ｎ＝０）する（ステップＳ３４）。変数ｎを初期化（ｎ＝０）すると、ＣＰＵ１１は、初期化した変数ｎをインクリメント（ｎ＝ｎ＋１）する（ステップＳ３５）。変数ｎをインクリメントすると、ＣＰＵ１１は、検索順番がｎ番目のＤＦから拡張コマンドで指定された識別子のデータオブジェクトを検索する（ステップＳ３６）。
【００６９】
ｎ番目のＤＦにおいて指定された識別子のデータオブジェクトを発見した場合（ステップＳ３７、ＹＥＳ）、ＣＰＵ１１は、検索した指定のデータオブジェクトにアクセスし、当該拡張コマンドで要求された処理を行う（ステップＳ３８）。たとえば、拡張コマンドが拡張ＧＥＴ  ＤＡＴＡコマンドであれば、ＣＰＵ１１は、検索した指定のデータオブジェクトを読み出す処理を行う。また、受信した拡張コマンドが拡張ＰＵＴ  ＤＡＴＡコマンドであれば、ＣＰＵ１１は、検索した指定のデータオブジェクトを書き換える処理を行う。当該拡張コマンドで指定された識別子のデータオブジェクトに要求された処理を実行すると、ＣＰＵ１１は、処理結果（アクセス結果）を示す情報をワーキングメモリ１３などに一時的に保持する（ステップＳ３９）。この際、ワーキングメモリ１３には、アクセス結果として、図７に示すように、アクセスしたデータオブジェクトと当該データオブジェクトが格納されているＤＦを示す情報とを格納する。
【００７０】
処理結果を示す情報をワーキングメモリ１３に保持した場合、あるいは、検索したｎ番目のＤＦに指定された識別子のデータオブジェクトがない場合（ステップＳ３７、ＮＯ）、ＣＰＵ１１は、変数ｎが検索範囲のＤＦ数としてのＮ個に達したか否かを判断する（ステップＳ４０）。変数ｎがＮでない場合（ステップＳ４０、ＮＯ）、ＣＰＵ１１は、上記ステップＳ３５へ戻って変数ｎをインクリメントし、ステップＳ３５〜Ｓ４０の処理を再度行う。
【００７１】
すなわち、指定された識別子のデータオブジェクトを発見するか、あるいは、変数ｎがＮに達するまで、ＩＣカード１のＣＰＵ１１は、上記ステップＳ３５〜Ｓ４０の処理を繰り返し行う。この結果として、ＩＣカード１は、当該拡張コマンドが検索範囲する全てのＤＦを検索し、全てのＤＦにおいて指定された識別子のデータオブジェクトにアクセスすることができる。
【００７２】
また、変数ｎがＮに達した場合（ステップＳ４０、ＹＥＳ）、ＣＰＵ１１は、ワーキングメモリ１３に保持している当該拡張コマンドで指定された識別子のデータオブジェクトへのアクセス結果を示す情報を、処理結果（アクセス結果）としてセットしたレスポンスデータをＩＣカード処理装置２へ送信する（ステップＳ４１）。
【００７３】
ここで、検索範囲のＤＦに指定された識別子のデータオブジェクトが存在しなかった場合、つまり、ワーキングメモリ１３にアクセス結果が保持されていない場合、ＣＰＵ１１は、当該拡張コマンドで指定された識別子のデータオブジェクトが検索範囲のＤＦには存在しない旨を処理結果（アクセス結果）を示す情報としてセットしたレスポンスデータをＩＣカード処理装置２へ送信するようにしても良い。
【００７４】
上記のように、第２の動作例では、ＩＣカード１は、拡張コマンドが検索範囲とするＤＦを全て検索し、その結果として検索範囲の全ＤＦから検索された全てのデータオブジェクトにアクセスし、その各データオブジェクトへのアクセス結果をレスポンスとして出力する。たとえば、第２の動作例では、拡張ＧＥＴ  ＤＡＴＡコマンドを受信したＩＣカード１は、検索範囲となる複数のＤＦを全て検索することにより、検索範囲となる複数のＤＦから検索された指定の識別子のデータオブジェクトを全て読み出し、それらの読み出した全データオブジェクトの情報をレスポンスとして出力する。これにより、第２の動作例では、１つのアプリケーションに対応する複数のＤＦに同一の識別子のデータオブジェクトが存在する場合であっても、それらの同一識別子の複数のデータオブジェクトに一括してアクセスでき、効率的な処理が実現できる。
【００７５】
また、第２の動作例では、拡張コマンドに対するレスポンスとして、検索対象とする複数のＤＦに同一の識別子のデータオブジェクトが存在する可能性を考慮し、アクセスした各データオブジェクトと各データオブジェクトの所在を示す情報とを組合せた情報を送信する。これにより、拡張コマンドの発信元の上位装置では、アクセス対象としたデータオブジェクトが複数であった場合であっても、各データオブジェクトがどのＤＦに格納されているのかを明確に認識できる。
【００７６】
上記のように、本実施の形態のＩＣカード処理システムでは、ＩＳＯ／ＩＥＣ  ７８１６−４に規定されたＧＥＴ  ＤＡＴＡコマンドあるいはＰＵＴ  ＤＡＴＡコマンドなどの機能を拡張した拡張ＧＥＴ  ＤＡＴＡコマンドあるいは拡張ＰＵＴ  ＤＡＴＡコマンドなどの拡張コマンドを受信した場合、ＩＣカードは、選択されているカレントＤＦだけでなく、カレントＤＦの配下のＤＦも検索範囲として、指定された識別子のデータオブジェクトを検索してアクセスする。これにより、複数のＤＦによりデータを分散して格納しているアプリケーションであってもデータオブジェクトに対して効率的にアクセスすることででき、コマンドを使用する手順の簡略化あるいは処理の高速化が図れる。
【符号の説明】
【００７７】
Ｃ…本体、Ｍ…モジュール、１…ＩＣカード、１ａ…ＩＣチップ、２…ＩＣカード処理装置、１１…ＣＰＵ、１２…プログラムメモリ、１３…ワーキングメモリ、１４…データメモリ、１５…通信制御部、１６…電源部、１７…インターフェース、２１…制御装置、２２…カードリーダライタ。
【図１】
2011191808.tif 000003
【図２】
2011191808.tif 000004
【図３】
2011191808.tif 000005
【図４】
2011191808.tif 000006
【図５】
2011191808.tif 000007
【図６】
2011191808.tif 000008
【図７】
2011191808.tif 000009
【図８】
2011191808.tif 000010