説明

携帯可能電子装置、ICカード、および携帯可能電子装置の制御方法

【課題】アプリケーション内のデータに効率的にアクセスすることができる携帯可能電子装置、ICカード、および携帯可能電子装置の制御方法を提供する。
【解決手段】ICカード1のCPU11は、識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内にデータメモリ14に記憶しておき、アクセス対象とするデータオブジェクトの識別子を指定し、かつ、データオブジェクトの検索範囲となるファイルを拡張する拡張アクセス命令をインターフェース17により受信した場合、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索し、前記検索により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、個人情報あるいは取引情報などのデータが記憶されるICチップが内蔵されているICカードあるいはICタグなどの携帯可能電子装置、ICカード、および携帯可能電子装置の制御方法などに関する。
【背景技術】
【0002】
近年、接触式および非接触式ICカードなどの携帯可能電子装置は、様々な用途に利用されている。このようなICカードには、使用用途に応じた個人情報、あるいは取引情報などの種々のデータが内部メモリに記憶される。接触式および非接触式ICカードは、予め規定されている読出しコマンドが外部から与えられた場合に、内部メモリに記憶しているデータを読み出す処理を行う。つまり、外部装置は、予め規定されている読出しコマンドをICカードに供給することにより、その読出しコマンドの応答として読出したデータをICカードから受信する。
【0003】
たとえば、ISO/IEC7816−4では、汎用な読出しコマンドとして、以下の種類のコマンドが規定されている。
(1)READ BINARY コマンド
(2)READ RECORD コマンド
(3)GET DATA コマンド
これらの各コマンドは、それぞれデータの読出し手順が異なる。例えば、(3)の「GET DATA コマンド」では、ICカード内に記録されているデータオブジェクトを識別子(Tag)により検索して読み出す処理を行う。なお、データオブジェクトとは、識別子情報(Tag)、長さ情報(Length)、およびデータ本体(Value)で構成されるTLV構造のデータである。
【0004】
また、一般的なICカードでは、インストールされたアプリケーション毎にDEDICATED FILE(以下、DF)が内部メモリ上に定義される。各アプリケーションで使用するファイル等のデータは、各アプリケーションに対応するDF内に格納される。例えば、ISO/IEC7816−4で規定されている「GET DATAコマンド」に対する処理では、ICカードは、選択されているDF(カレント状態のDF)内を検索範囲として、「Tag」をキーワードにデータオブジェクトを検索し、検索されたデータオブジェクトを読み出す。すなわち、上記「GET DATAコマンド」では、選択されているDF以外のDFは検索範囲外となるため、カレント状態のDF以外のDFに存在するデータオブジェクトを検索(読出し)できない。このように、従来のICカードでは、コマンドを受信した場合、選択されているDF以外のDFに格納されているデータに対して直接的にアクセスことができないようになっている。
【0005】
しかしながら、上述した「GET DATAコマンド」では、データオブジェクトの識別子である「Tag」を指定するだけでデータオブジェクトを検索して読み出すことができる。このため、上記「GET DATAコマンド」は、データファイル(ELEMENTARY FILE)(以下、EFと称する)の指定とEF内のデータ指定を行う必要がある「READ BINARYコマンド」、あるいは「READ RECORDコマンド」よりも、簡便に使用することができる。
【0006】
一方、ICカードのアプリケーションは、年々複雑になってきており、扱うデータの量も増加している。このような状況では、アプリケーションに対応するDFにはその配下に1つ、或いは複数のサブDFが定義され、それらのサブDFにデータを分類して格納したり管理したりすることが多く行われるようになってきている。しかしながら、複数のサブDFにデータを分散すると、「GET DATAコマンド」でデータを検索したり読み出したりする場合、読出対象のデータオブジェクトを持つサブDFをその都度選択する処理工程が必要となるため、処理手順全体が複雑化するという短所がある。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】ISO/IEC 7816−4
【発明の概要】
【発明が解決しようとする課題】
【0008】
この発明の一形態は、データに効率的にアクセスすることができる携帯可能電子装置、ICカード、および携帯可能電子装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
この発明の一形態としての携帯可能電子装置は、外部装置から与えられるコマンドに応じて処理を行うものにおいて、識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内に記憶する記憶手段と、データオブジェクトの検索対象とするデータオブジェクトの識別子を指定し、かつ、アクセス範囲となるファイルを拡張する拡張アクセス命令に対して、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索する検索手段と、前記検索手段により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する処理手段とを有する。
【0010】
この発明の他の形態としてのICカードは、外部装置から与えられるコマンドに応じて処理を行うものにおいて、識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内に記憶する記憶手段と、アクセス対象とするデータオブジェクトの識別子を指定し、かつ、データオブジェクトの検索範囲となるファイルを拡張する拡張アクセス命令に対して、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索する検索手段と、前記検索手段により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する処理手段とを有するモジュールと、前記モジュールを有する本体とを有する。
【0011】
この発明の他の形態としての携帯可能電子装置の制御方法は、外部装置から与えられるコマンドに応じて処理を行う携帯可能電子装置の制御方法であって、識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内に記憶しておき、アクセス対象とするデータオブジェクトの識別子を指定し、かつ、データオブジェクトの検索範囲となるファイルを拡張する拡張アクセス命令に対して、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索し、前記検索により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する。
【発明の効果】
【0012】
この発明の一形態によれば、データに効率的にアクセスすることができる携帯可能電子装置、ICカード、および携帯可能電子装置の制御方法を提供できる。
【図面の簡単な説明】
【0013】
【図1】本実施の形態に係るICカードおよびICカードを含むシステムの構成例を示すブロック図。
【図2】非接触式ICカードの全体の構成例を示す図。
【図3】ICカードにおけるアプリケーションの構成例を示す図。
【図4】1つのアプリケーションの複数のDFに同じ識別子のデータオブジェクトが存在する例を示す図。
【図5】1つのアプリケーションの複数のDFに同じ識別子のデータオブジェクトが存在する例を示す図。
【図6】第1の動作例を説明するためのフローチャート。
【図7】アクセス対象のデータオブジェクトと当該データオブジェクトを格納するDFを示す情報とを対応づけたデータ構成例を示す図。
【図8】第2の動作例を説明するためのフローチャート。
【発明を実施するための形態】
【0014】
以下、この発明に係る実施の形態について図面を参照しつつ説明する。
図1は、この発明の実施の形態に係る携帯可能電子装置としてのICカード1およびICカード1を含むICカードシステムの構成例を示すブロック図である。
上記ICカード1は、外部装置としてのICカード処理装置2からの電源供給により動作可能な状態となる。動作可能となったICカード1は、上記ICカード処理装置2からのコマンドに応じて種々の処理を行う。上記ICカード処理装置2は、ICカード1を動作させるための電源を供給するとともに、当該ICカード1に対して種々の処理を要求するコマンドを供給する。上記ICカード処理装置2がICカード1に対して供給するコマンドは、用途あるいは運用形態などに応じた処理を要求するものである。
【0015】
また、上記ICカード1は、アンテナあるいは無線通信部等により上記ICカード処理装置2と非接触の状態で無線通信を行う非接触式の携帯可能電子装置(非接触式ICカード)であっても良し、上記ICカード処理装置2と物理的に接触して通信を行う接触式の携帯可能電子装置(接触式ICカード)であっても良い。さらには、上記ICカード1は、非接触式ICカードとしての通信機能と接触式ICカードとしての通信機能とを有する複合型のICカード(デュアルインターフェースICカード)であっても良い。なお、この実施の形態では、主に、非接触式ICカードを想定して説明する。非接触式ICカードと接触式ICカードとはICカード処理装置2との通信方式等が異なるだけである。このため、以下に説明する実施の形態は、接触式ICカードにも同様に適用できる。
【0016】
上記ICカード1の構成例について説明する。
図1に示すように、上記ICカード1は、CPU11、プログラムメモリ12、ワーキングメモリ13、データメモリ14、通信制御部15、電源部16、および、インターフェース(アンテナあるいはコンタクト部)17などを有している。
また、上記ICカード1は、カード状の本体Cにより構成される。上記ICカード1を形成するカード状の本体Cには、1つ(あるいは複数)のICチップ1aとインターフェース17とが埋設される。上記ICチップ1aは、CPU11、プログラムメモリ12、ワーキングメモリ13、データメモリ14、通信制御部15および電源部16などを有している。上記ICチップ1aは、上記インターフェース17に接続された状態でモジュール化され、当該ICカード1を形成するカード状の本体C内に埋設される。たとえば、図2は、非接触式ICカード全体の構成例を示す図である。図2に示す非接触式ICカードは、カード状の本体Cを有している。この本体C内には、図2に点線で示すように、1つ(あるいは複数)のICチップ1aとインターフェース17としてのアンテナとを有するモジュールMが埋め込まれている。
【0017】
上記CPU11は、ICカード1全体の制御を司るものである。上記CPU11は、上記プログラムメモリ12あるいはデータメモリ14に記憶されている制御プログラムおよび制御データなどに基づいて動作する。たとえば、上記CPU11は、上記プログラムメモリ12に記憶されている基本的な動作を司る制御プログラムを実行することにより、外部装置から与えられるコマンドに応じた処理を実行する。これにより、外部装置から上記データメモリ14へのデータの書込みを要求するコマンドが与えられれば、上記CPU11は、上記データメモリ14へのデータの書き込み処理を実行する。また、外部装置から上記データメモリ14に記憶されているデータの読み出しを要求するコマンドが与えられれば、上記CPU11は、上記データメモリ14からのデータの読み出し処理を実行する。さらに、上記CPU11は、当該ICカード1の用途などに応じてインストールされる処理プログラムを実行することにより、用途に応じた処理を実現するようになっている。
【0018】
上記プログラムメモリ12は、読み出し専用のメモリ(ROM:リードオンリーメモリ)により構成される。上記プログラムメモリ12には、予め基本動作を司る制御プログラムおよび制御データなどが記憶されている。上記プログラムメモリ12には、予め当該ICカード1の仕様に応じた制御プログラム及び制御データが記憶される。たとえば、上記CPU11は、上記プログラムメモリ12に記憶される制御プログラムにより外部から与えられるコマンドに応じた処理を実現する。
【0019】
上記ワーキングメモリ13は、揮発性のメモリ(RAM;ランダムアクセスメモリ)により構成される。上記ワーキングメモリ13は、データを一時保管するバッファメモリとして機能する。例えば、上記ワーキングメモリ13には、ICカード処理装置(外部装置)2との通信処理において、送受信されるデータが一時的に保管される。また、上記ワーキングメモリ13には、種々の書込みデータなどを一時的に保持するメモリとしても利用される。
【0020】
上記データメモリ(不揮発性メモリ)14は、データの書き込みが可能な不揮発性のメモリである。上記データメモリ14は、例えば、EEPROMあるいはフラッシュメモリなどにより構成される。上記データメモリ14には、当該ICカード1の使用目的に応じた種々の情報が記憶される。
たとえば、当該ICカードの使用目的に応じたアプリケーション(処理プログラムおよび運用データなど)は、上記データメモリ14に書込まれる。当該ICカード1が複数の使用目的に使用される場合、上記データメモリ14には、各使用目的に応じた複数のアプリケーションが記憶される。また、当該ICカード1の使用目的に応じたアプリケーションは、上記データメモリ14上に定義された使用目的ごとのプログラムファイル(DF;Dedicated File)およびデータファイル(EF;Elementary File)などの各ファイルに記憶される。これらのファイルは、階層構造で管理される。これらのファイルの構成は、たとえば、ISO/IEC7816−4に基づくものである。なお、これらのファイルに格納されるデータの構成例については、後で詳細に説明するものとする。
【0021】
上記通信制御部15は、上記インターフェース17を介して外部装置(たとえば、ICカード処理装置2)とのデータ通信を制御するものである。たとえば、当該ICカードが非接触型のICカードであれば、外部装置からデータを受信する場合、上記通信制御部15は、インターフェース17としてのアンテナにより受信した電波としての送信データを復調し、復調した信号を上記CPU11に供給する。また、外部装置へデータを送信する場合、上記通信制御部15は、上記CPU11から与えられるデータを変調し、変調したデータを上記インターフェース17としてのアンテナにより電波として発信する。なお、接触式ICカードでは、インターフェース17として、アンテナの代わりに、外部装置の接触端子部と物理的・電気的に接触するコンタクト部を介して外部装置とのデータ通信を行う。
【0022】
上記電源部16は、当該ICカード1の各部を動作させるための上記インターフェース17を介して受信する電力およびクロックパルスを供給する。たとえば、当該ICカードが非接触型のICカードであれば、上記電源部16は、上記インターフェース17としてのアンテナにより受信した電波から電力およびクロックパルスを生成し、当該ICカード内の各部に供給するようになっている。また、上記電源部16からの電力供給により起動した場合、上記CPU11は、当該ICカード1の処理状態をリセットする処理を行うようになっている。なお、当該ICカード1が接触型のICカードであれば、上記電源部16はインターフェース17を介して外部装置から直接的に供給される電力およびクロックパルスにより各部へ供給するようになっている。
【0023】
次に、上記ICカード処理装置2について説明する。
上記ICカード処理装置2は、図1に示すように、制御装置21およびカードリーダライタ22を有している。上記制御装置21は、パーソナルコンピュータ(PC)などにより構成される。上記制御装置21は、CPUなどの演算処理部、RAM、ROM、不揮発性メモリおよびハードディスクドライブなどの各種メモリ、通信インターフェースなどの各種インターフェースなどにより構成される。上記制御装置21では、上記演算処理部がメモリに記憶されている各種の制御プログラムを実行することにより各種の処理を実現している。また、上記制御装置21は、ICカード1とのデータ通信を行う上記カードリーダライタ22とのデータの入出力を行うようになっている。
【0024】
たとえば、上記制御装置21には、上記ICカード1を用いた各種の処理に応じた制御プログラムが予め記憶されている。上記制御装置21では、上記のような制御プログラムを実行することにより上記ICカード1を用いた各種の処理を実行する。たとえば、上記ICカード1を用いた各種の処理において、上記制御装置21は、所定のコマンドを所定の手順で供給する。上記制御装置21では、上記のような各コマンドに対するICカード1からの各レスポンス(コマンドに対する処理結果等を示す情報)に基づいて各種の処理を行うようになっている。
【0025】
上記カードリーダライタ22は、上記ICカード1とのデータ通信を行う通信手段として機能する。上記カードリーダライタ22は、上記ICカード1の通信方式に応じた通信方式によるデータ通信を行うためのものである。つまり、上記カードリーダライタ22を介して制御装置21は、上記ICカード1とのデータ通信を実現している。
【0026】
上記ICカード1が非接触型のICカードである場合、上記カードリーダライタ22は、上記ICカード1との無線によるデータ通信を行うためのアンテナおよび通信制御部(変復調回路等)などにより構成される。非接触型のICカード1へデータを送信する場合、上記カードリーダライタ22では、通信制御部により上記制御装置21から与えられる送信データを変調し、変調した信号を電波としてアンテナにより発信する。また、非接触型のICカード1からデータを受信する場合、上記カードリーダライタ22では、アンテナにより受信した電波としての信号を通信制御部により復調し、復調したデータを受信データとして上記制御装置21へ供給する。また、上記カードリーダライタ22では、上記のようなデータの送受信とともに、上記ICカード1を動作させるための電源およびクロックパルスとなる電波をアンテナにより発信するようになっている。
【0027】
また、上記ICカード1が接触型のICカードである場合、上記カードリーダライタ22は、ICカード1と物理的に接触してデータ通信を行うためのコンタクト部および通信制御部などにより構成される。接触型のICカードとのデータの送受信を行う場合、上記カードリーダライタ22では、上記コンタクト部がICカード1側に設けられているコンタクト部と物理的に接触して各種のデータ通信を行う。また、上記カードリーダライタ22では、ICカード1に物理的に接触しているコンタクト部を介して当該ICカード1に対して電力およびクロックパルスを供給するようになっている。
【0028】
次に、上記データメモリ14に記憶されるファイルについて説明する。
本実施の形態では、上述したようにデータメモリ14内の各ファイルがISO/IEC 7816で規定されているファイル構造となっているものとする。ISO/IEC 7816では、MF(Master File)、DF(Dedicated File)、EF(Elementary File)などからなる階層構造のファイル構成が規定されている。
【0029】
MFは、階層構造の最上位に位置するファイルである。MFの下層にDFあるいはEFが設けられる。通常、1つのICカード1には、1つのMFが設けられる。DFは、例えば、アプリケーションごとに設定されるファイルである。DFの下層には、サブDFあるいはEFを設定することが可能である。1つのアプリケーションでは、上位層の1つのDFに各アプリケーションで利用するデータを格納できるとともに、下層に設けたサブのDFあるいはEFにデータを分散して格納することも可能である。各EFは、それぞれ実データを記憶するためのデータファイルである。
【0030】
たとえば、DF及びEFには、アプリケーションで利用するデータをデータオブジェクト単位で格納できる。データオブジェクトは、当該データの種別を示す識別子(Tag)と、当該データの長さを示す長さ情報(Length)と、当該データそのものを示すデータ部(Value)とから構成されるTLV構造を有するデータである。このようなTLV構造のデータオブジェクトには、識別子(Tag)を指定したコマンドによりアクセスが可能である。
【0031】
たとえば、ISO/IEC 7816−4では、読出対象とするデータオブジェクトを識別子で指定するGET DATAコマンドが規定されている。ISO/IEC 7816−4で規定されているGET DATAコマンド(以下、通常のGET DATAコマンドと称する)では、選択状態(カレント状態)のDF内におけるデータオブジェクトを読出対象とする。また、ISO/IEC 7816−4では、書換え対象とするデータオブジェクトを識別子で指定するPUT DATAコマンドも規定されている。ISO/IEC 7816−4で規定されているPUT DATAコマンドでは、選択状態(カレント状態)のDF内におけるデータオブジェクトを書込み対象とする。
【0032】
図3は、ICカード1のデータメモリ14に記憶される複数のDFの構成例を示す図である。
図3に示す構成例において、MFの直下には、アプリケーションDF1とアプリケーションDF2とが存在する。アプリケーションDF1とアプリケーションDF2とは、それぞれが各アプリケーションに対応するメインのDFである。MFの直下に存在するアプリケーションDF1は、配下に3個のサブDF1−1、1−2及び1−3を有している。当該アプリケーションで使用するデータは、DF1と、DF1の配下にある3つのサブDFに分散して格納されている。図3に示すようなファイル構成によれば、アプリケーションDFの配下に設けた複数のサブDFによりデータを分類して格納したり管理したりすることが可能となる。
【0033】
通常のGET DATAコマンドでは、選択状態(カレント状態)のDF内のみを読出対象とするデータオブジェクトの検索範囲とする。このため、図3に示すようなデータ構成のアプリケーションにおける所望のデータオブジェクトを読み出す場合、通常のGET DATAコマンドは、検索範囲がカレント状態のDFに限定されるため、読出対象とするデータオブジェクトが読み出されるまで、当該アプリケーションの各DFを順に選択状態してから送信されなければならない。
【0034】
たとえば、図3に示すように、サブDF1−3に所望のデータオブジェクト(識別子:TagA)が格納されていると仮定する。この場合、ICカード処理装置2は、まず、当該アプリケーションの上位階層DFであるアプリケーションDF1をICカード1に選択させる。アプリケーションDF1を選択した状態のICカード1に対して、ICカード処理装置2は、所望のデータオブジェクトの識別子(TagA)を指定した通常のGET DATAコマンドを供給する。これにより、ICカード1は、アプリケーションDF1内で通常のGET DATAコマンドで指定された識別子のデータオブジェクトを読出対象として検索する。ここで、アプリケーションDF1に指定のデータオブジェクトが存在しなければ、ICカード1は、ICカード処理装置2に検索失敗(指定のデータオブジェクトが存在しない旨)を通知する。
【0035】
次に、ICカード処理装置2は、ICカード1にサブDF1−1を選択させ、所望のデータオブジェクトの識別子(TagA)を指定した通常のGET DATAコマンドを供給する。この通常のGET DATAコマンドを受信したICカード1は、サブDF1−1内で指定された識別子のデータオブジェクトを読出対象として検索する。サブDF1−1に指定のデータオブジェクトが存在しなければ、ICカード1は、ICカード処理装置2に検索失敗(指定のデータオブジェクトが存在しない旨)を通知する。
【0036】
次に、ICカード処理装置2は、ICカード1にサブDF1−2を選択させ、所望のデータオブジェクトの識別子(TagA)を指定した通常のGET DATAコマンドを供給する。この通常のGET DATAコマンドを受信したICカード1は、サブDF1−2内で指定された識別子のデータオブジェクトを読出対象として検索する。サブDF1−2に指定のデータオブジェクトが存在しなければ、ICカード1は、ICカード処理装置2に検索失敗(指定のデータオブジェクトが存在しない旨)を通知する。
【0037】
さらに、ICカード処理装置2は、ICカード1にサブDF1−3を選択させ、所望のデータオブジェクトの識別子(TagA)を指定した通常のGET DATAコマンドを供給する。この通常のGET DATAコマンドを受信したICカード1は、サブDF1−3内で指定された識別子のデータオブジェクトを読出対象として検索する。ここで、サブDF1−3に指定のデータオブジェクトが存在すれば、ICカード1は、当該データオブジェクトを読み出してICカード処理装置2へ出力する。所望のデータオブジェクト読み出した後にカレント状態のDFをアプリケーションDF1に戻す場合、ICカード処理装置2は、ICカード1にアプリケーションDF1を選択させる。
【0038】
上述のように、通常のGET DATAコマンドでは、アプリケーションが複数のDFを有する場合、個々のDFを選択してからDFごとにデータオブジェクトの検索処理を実行しなければならない。そこで、本実施の形態では、通常のGET DATAコマンドの機能(指定データオブジェクトの検索範囲)を拡張したGET DATAコマンド(拡張GET DTAコマンド)を定義する。
【0039】
拡張GET DATAコマンドでは、複数のDFを検索対象として読出対象のデータオブジェクトを検索する。たとえば、アプリケーションDF1がカレント(選択状態)である場合、拡張GET DATAコマンドを受信したICカード1は、アプリケーションDF1とDF1に属する各サブDFを検索対象として指定された識別子のデータオブジェクトを検索する。図3に示す例のように、DF1−3に指定された識別子のデータオブジェクトが存在する場合、アプリケーションDF1がカレントであっても、ICカード1は、DF1の配下のサブDF1−3に格納されたデータオブジェクトを検索して読み出すことが可能となる。
【0040】
上記拡張GET DATAコマンドのようなデータオブジェクトの検索範囲を拡張する拡張コマンド(拡張アクセス命令)は、たとえば、通常のコマンドにおける一部のパラメータを変更することにより指定できるようにしても良い。以下の説明では、拡張コマンドの例として、主に、通常のGET DATAコマンドを拡張した拡張GET DTAコマンドの例について説明するが、本実施の形態は、これに限定されるものではない。本実施の形態は、ISO/IEC 7816−4で規定されているような、データオブジェクトを指定する通常のコマンドを拡張して複数のDFが検索範囲となるようなコマンド(拡張コマンド)を提供することが可能である。たとえば、ISO/IEC 7816−4で規定されているPUT DATAコマンドを拡張することにより、複数のDFが検索範囲となる拡張PUT DATAコマンドを提供することが可能である。
【0041】
図4は、アプリケーションDFと当該アプリケーションDFに属するサブDFに同じ識別子のデータオブジェクトが存在する例を示している。
図4に示す構成例において、MFの直下に存在するアプリケーションDF1は、配下に3個のサブDF1−1、1−2及び1−3を有する。さらに、図4に示す構成例では、アプリケーションDF1と、当該アプリケーションDF1の配下にあるサブDF1−2とに、同じ識別子(Tag:A)のデータオブジェクトが存在している。つまり、アプリケーションDF1とその配下のサブDF1−1、1−2及び1−3とを検索範囲とすると、同一の識別子(Tag:A)で検出されるデータオブジェクトが複数となる。
【0042】
図5は、アプリケーションDFの直下のサブDFと当該サブDFの直下のサブDF(アプリケーションDFの2つ下の階層のDF)とに同じ識別子のデータオブジェクトが存在する例を示している。
図5に示す構成例において、MFの直下に存在するアプリケーションDF1は、直下の階層に2個のサブDF1−1およびサブDF1−2を有する。さらに、図5に示す構成例では、アプリケーションDF1直下のサブDF1−1は、直下の階層にサブDF1−1−1およびサブDF1−1−2を有し、アプリケーションDF1直下のサブDF1−2は、直下の階層にサブDF1−2−1およびサブDF1−2−2を有する。つまり、アプリケーションDF1は、配下に6個のサブDF1−1、1−2、1−1−1、1−1−2、1−2−1、および1−2−2を有する。
【0043】
当該アプリケーションDF1の配下では、サブDF1−1とサブDF2−1−1に、同じ識別子(Tag:A)のデータオブジェクトが存在している。つまり、図5に示す構成例では、アプリケーションDF1の配下の全サブDFを検索範囲とすれば、異なる複数の階層のDFから同一の識別子(Tag:A)を有するデータオブジェクトが複数検出される。
【0044】
通常、同一のDFには、同一の識別子のデータオブジェクトが存在しない。ただし、異なるDFには、図4或は図5に示すように、同一の識別子のデータオブジェクトが存在する可能性がある。このような場合を想定すると、拡張コマンドでは、最初に検索されたデータオブジェクトのみをアクセス対象とするようにしても良いし、検索範囲となる全DFから検出される全てのデータオブジェクトをアクセス対象とするようにしても良い。以下、拡張GET DATAコマンドに対する処理を想定して、前者を第1の動作例として説明し、後者を第2の動作例として説明するものとする。
【0045】
まず、第1の動作例について説明する。
第1の動作例では、ICカード1は、拡張コマンドが検索範囲とするDFを順番に検索し、最初に検索されたデータオブジェクトにアクセスする。たとえば、第1の動作例では、拡張GET DATAコマンドを受信したICカード1は、検索対象となる複数のDFを順に検索することにより、最初に検索された指定の識別子のデータオブジェクトを読み出す。従って、第1の動作例では、図4に示すようなアプリケーションに対して識別子(TagA)を指定した拡張GET DATAコマンドを受信した場合、ICカード1が上位階層のDFから検索するものとすると、先に検索されるアプリケーションDF1内のTagAのデータオブジェクトが読み出される。なお、DFの検索順番は、上位階層のDFからの順番となることが想定されるが、DFの検索順番は運用形態に応じて設定できるようにしても良い。
【0046】
また、複数のDFに同一の識別子のデータオブジェクトが存在する可能性を考慮し、連続する拡張GET DATAコマンドにより複数のDFから同一の識別子のデータオブジェクトを順次読み出させるようにしても良い。たとえば、連続して拡張GET DATAコマンドを受信した場合、直前に読み出したデータオブジェクトを格納しているDFを最後の検索順番(あるいは検索対象外)として、データオブジェクトを検索するようにすれば良い。この場合、図4に示すデータのアプリケーションに対しては、1回目の拡張GET DATAコマンドに対してアプリケーションDF1に格納されているTagAのデータオブジェクトを出力し、連続する2回目の拡張GET DATAコマンドに対する応答としてサブDF1−2に格納されているTagAのデータオブジェクトを出力するようにできる。
【0047】
図6は、第1の動作例を説明するためのフローチャートである。
まず、ICカード1は、ICカード処理装置2から送信されたコマンドをインターフェース17により受信する。ICカード処理装置2からコマンドを受信した場合、ICカード1のCPU11は、受信したコマンドが拡張コマンドであるか否かを判断する(ステップS11)。受信コマンドが拡張コマンドでない場合、ICカード1のCPU11は、通常のコマンド処理を実行する。
【0048】
受信したコマンドが拡張コマンドである場合、CPU11は、検索範囲とするDFを選定する(ステップS12)。ここでは、検索範囲として選定されたDFの数をN個とする。検索範囲とするDFの範囲は、予め規定しておくようにしても良いし、拡張コマンドにおいて指定できるようにしても良い。たとえば、予め検索範囲を規定する形態としては、カレント状態のDF(カレントDF)とカレントDFの直下の階層のDFとを検索範囲としても良いし、カレントDFとカレントDFの配下の全DFとを検索範囲としても良いし、カレントDFが属するアプリケーションの全DFを検索範囲としても良い。
【0049】
また、各拡張コマンドで検索範囲のDFを指定する形態としては、検索範囲とするDFの条件をパラメータで指定するようにすれば良い。たとえば、検索範囲とするDFの条件としては、たとえば、階層数を指定したり、検索範囲とするDFを示すキーワード(たとえば、DF名の一部、あるいは、識別情報の一部などのDFを示す情報の一部)を指定したりすることができる。
【0050】
たとえば、検索範囲とするDFの階層数は、以下のような指定方法が考えられる。
検索階層数を「1」に指定した拡張コマンドでは、現在選択されているDF(カレントDF)のみを検索範囲とする。検索階層数を「2」に指定した拡張コマンドでは、カレントDFとカレントDFの次の階層(直下の階層)のDFとを検索範囲とする。検索階層数を「3」に指定した拡張コマンドでは、カレントDF、カレントDFの直下の階層のDF、およびカレントDFの2つ下の階層のDFを検索範囲とする。また、検索階層数を「無制限」に指定した拡張コマンドでは、現在選択されているDF(カレントDF)の配下となる全DFを検索範囲とする。なお、MFをカレント状態として、検索階層数を「無制限」とすることにより、当該ICカード内の全DFが検索範囲として指定できるようにしても良い。
【0051】
また、キーワードにより検索範囲とするDFを指定する場合、拡張コマンドでは、たとえば、DF名の一部、DFの識別情報の一部、あるいは、DFの識別番号の範囲などをキーワードとして指定することにより、指定したキーワードに基づく検索で選出されるDFを検索範囲とすることが可能である。
【0052】
受信した拡張コマンドが検索範囲とするN個のDFを選定すると、CPU11は、それらのDFに対する検索順番を決定する(ステップS13)。検索順番は、所定の規定にしたがって決定される。たとえば、検索順番は、カレントDFを基準に上位階層から下位階層の順番で、同階層内ではDFの識別番号の順あるいは更新された日時の順に並べるようにしても良い。
【0053】
検索範囲のDFに対する検索順番が決定すると、CPU11は、変数nを初期化(n=0)する(ステップS14)。変数nを初期化(n=0)すると、CPU11は、初期化した変数nをインクリメント(n=n+1)する(ステップS15)。変数nをインクリメントすると、CPU11は、検索順番がn番目のDFにおいて拡張コマンドで指定された識別子のデータオブジェクトを検索する(ステップS16)。
【0054】
検索したn番目のDFに指定された識別子のデータオブジェクトがない場合(ステップS17、NO)、CPU11は、変数nが検索範囲のDF数としてのN個に達したか否かを判断する(ステップS18)。変数nがNでない場合(ステップS18、NO)、CPU11は、上記ステップS15へ戻って変数nをインクリメントし、ステップS15〜S17の処理を再度行う。すなわち、指定された識別子のデータオブジェクトを発見するか、あるいは、変数nがNに達するまで、ICカード1のCPU11は、上記ステップS15〜S18の処理を繰り返し行う。
【0055】
n番目のDFにおいて指定された識別子のデータオブジェクトを発見した場合(ステップS17、YES)、CPU11は、検索した指定のデータオブジェクトにアクセスし、当該拡張コマンドで要求された処理を行う(ステップS19)。
たとえば、拡張コマンドが拡張GET DATAコマンドであれば、CPU11は、検索した指定のデータオブジェクトを読み出す処理を行う。また、受信した拡張コマンドが拡張PUT DATAコマンドであれば、CPU11は、検索した指定のデータオブジェクトを書き換える処理を行う。
【0056】
当該拡張コマンドで指定された識別子のデータオブジェクトに要求された処理を実行すると、CPU11は、処理結果(アクセス結果)を示す情報をセットしたレスポンスデータを生成し、生成したレスポンスデータをICカード処理装置2へ送信する(ステップS20)。上記処理結果には、アクセスしたデータオブジェクトの所在を示す情報(当該データオブジェクトが格納されているDFを示す情報)を添付するようにしても良い。
【0057】
また、検索したDFからデータオブジェクトが発見されない状態のままで変数nがNに達した場合(ステップS18、YES)、CPU11は、当該拡張コマンドで指定された識別子のデータオブジェクトが検索範囲のDFには存在しない旨を処理結果(アクセス結果)を示す情報としてセットしたレスポンスデータをICカード処理装置2へ送信する(ステップS21)。
【0058】
上記第1の動作例では、ICカード1は、拡張コマンドが検索範囲とする複数のDFを順番に検索し、最初に発見した指定の識別子のデータオブジェクトにアクセスする。たとえば、拡張GET DATAコマンドを受信した場合、第1の動作例のICカード1は、検索対象となる複数のDFを順番に検索し、最初に発見した指定の識別子のデータオブジェクトを読み出す。これにより、第1の動作例によれば、指定の識別子のデータオブジェクトを発見した時点でコマンド処理が実行でき、検索範囲とする全てのDFを必ずしも検索する必要がなく、高速な処理が期待できる。たとえば、アプリケーションの複数DF内で指定の識別子のデータオブジェクトが1つだけであることが明らかな場合、或は、最初に発見されるデータオブジェクトだけにアクセスすれば良い場合などでは、第1の動作例により効率的な処理が実現できる。
【0059】
また、上記第1の動作例では、1つのアプリケーションに指定の識別子のデータオブジェクトが複数存在する場合、ICカード1は、連続して受信する拡張コマンドに対して順次、各データオブジェクトにアクセスする。たとえば、連続して拡張GET DATAコマンドを受信した場合、第1の動作例のICカード1は、検索対象となる複数のDFに対する検索順番を設定し、前回アクセスしたデータオブジェクトが存在するDFの次のDFから指定の識別子のデータオブジェクトを順番に検索し、最初に発見した指定の識別子のデータオブジェクトを読み出す。これにより、第1の動作例によれば、連続して受信する拡張コマンドに対し、1つのアプリケーションを構成する複数DFに存在する同一の識別子のデータオブジェクトに順番にアクセスできる。
【0060】
次に、第2の動作例について説明する。
第2の動作例では、ICカード1は、拡張コマンドが検索範囲とするDFを全て検索し、その結果として検索範囲の全DFから検索された全てのデータオブジェクトにアクセスする。たとえば、第2の動作例では、拡張GET DATAコマンドを受信したICカード1は、検索範囲となる複数のDFを全て検索することにより、検索範囲となる複数のDFから検索された指定の識別子のデータオブジェクトを全て読み出す。
【0061】
従って、第2の動作例では、図4に示すようなアプリケーションに対して識別子(TagA)を指定した拡張GET DATAコマンドを受信した場合、当該拡張GET DATAコマンドが図4に示す全DFを検索範囲とすれば、ICカード1は、アプリケーションDF1内のTagAのデータオブジェクトとサブDF1−2内のTagAのデータオブジェクトとを読み出す。
【0062】
また、第2の動作例では、図5に示すようなアプリケーションに対して識別子(TagA)を指定した拡張GET DATAコマンドを受信した場合、当該拡張GET DATAコマンドが図5に示す全DFを検索範囲とすれば、ICカード1は、サブDF1−1内のTagAのデータオブジェクトとサブDF2−1−1内のTagAのデータオブジェクトとを読み出す。
【0063】
また、拡張GET DATAコマンドに対するレスポンスとしては、図4或は図5に示すように、複数のDFに同一の識別子のデータオブジェクトが存在する可能性を考慮し、アクセスした各データオブジェクトと各データオブジェクトの所在を示す情報とを組合せた情報を送信するようにしても良い。
図7は、データオブジェクトと当該データオブジェクトを格納しているDFのDF名とを対応づけたものである。図7に示す例は、図4に示すTagAのデータオブジェクトの検索結果であることを想定している。
【0064】
図7に示す例において、TagAは、読出し対象とするデータオブジェクトの識別子であり、TagBは、読出し対象のデータオブジェクトを格納しているDFのDF名を示すデータオブジェクトの識別子である。すなわち、図7に示す例において、アプリケーションDF1内のTagAのデータオブオブジェクトは、アプリケーションDF1内のTagBのデータオブジェクトで示されるDF名のDFに格納されていることを示す。また、図7に示す例において、サブDF1−2内のTagAのデータオブオブジェクトは、サブDF1−2内のTagBのデータオブジェクトで示されるDF名のDFに格納されていることを示している。
【0065】
拡張GET DATAコマンドに対して、ICカード1では、図7に示すように、読出し対象のデータオブジェクトと当該データオブジェクトが格納されているDFを示す情報とを組み合わせた情報をレスポンスとして出力する。これにより、拡張GET DATAコマンドの発信元のICカード処理装置2では、同一識別子の複数のデータオブジェクトが読み出された場合であっても、各データオブジェクトがどのDFから読み出されたものかを明確に識別できる。
【0066】
図8は、第2の動作例を説明するためのフローチャートである。
まず、ICカード1は、ICカード処理装置2から送信されたコマンドをインターフェース17により受信する。ICカード処理装置2からコマンドを受信した場合、ICカード1のCPU11は、受信したコマンドが拡張コマンドであるか否かを判断する(ステップS31)。受信コマンドが拡張コマンドでない場合、ICカード1のCPU11は、通常のコマンド処理を実行する。
【0067】
受信したコマンドが拡張コマンドである場合、CPU11は、検索範囲とするDFを選定する(ステップS32)。ここでは、検索範囲として選定されたDFの数をN個とする。検索範囲とするDFは、上記第1の動作例で説明したように、予め規定しておくようにしても良いし、拡張コマンドにおけるパラメータで指定できるようにしても良い。例えば、予め検索範囲を規定する形態としては、カレントDFとその直下の階層のDFを検索範囲としても良いし、カレントDFとその配下の全DFを検索範囲としても良いし、カレントDFが属するアプリケーションの全DFを検索範囲としても良い。また、拡張コマンドで検索範囲のDFを指定する形態としては、上述した第1の動作例と同様に、検索範囲とするDFの条件をパラメータで指定するようにすれば良い。たとえば、検索範囲とするDFの条件としては、階層数を指定したり、キーワード(DFを示す情報の一部、たとえば、DF名の一部、あるいは識別番号の一部など)を指定したりすることができる。
【0068】
受信した拡張コマンドが検索範囲とするN個のDFを選定すると、CPU11は、それらのDFに対する検索順番を決定する(ステップS33)。第2の動作例では、検索範囲の全DFを検索するため、検索順番は任意の順番であっても良い。検索範囲のDFに対する検索順番が決定すると、CPU11は、変数nを初期化(n=0)する(ステップS34)。変数nを初期化(n=0)すると、CPU11は、初期化した変数nをインクリメント(n=n+1)する(ステップS35)。変数nをインクリメントすると、CPU11は、検索順番がn番目のDFから拡張コマンドで指定された識別子のデータオブジェクトを検索する(ステップS36)。
【0069】
n番目のDFにおいて指定された識別子のデータオブジェクトを発見した場合(ステップS37、YES)、CPU11は、検索した指定のデータオブジェクトにアクセスし、当該拡張コマンドで要求された処理を行う(ステップS38)。たとえば、拡張コマンドが拡張GET DATAコマンドであれば、CPU11は、検索した指定のデータオブジェクトを読み出す処理を行う。また、受信した拡張コマンドが拡張PUT DATAコマンドであれば、CPU11は、検索した指定のデータオブジェクトを書き換える処理を行う。当該拡張コマンドで指定された識別子のデータオブジェクトに要求された処理を実行すると、CPU11は、処理結果(アクセス結果)を示す情報をワーキングメモリ13などに一時的に保持する(ステップS39)。この際、ワーキングメモリ13には、アクセス結果として、図7に示すように、アクセスしたデータオブジェクトと当該データオブジェクトが格納されているDFを示す情報とを格納する。
【0070】
処理結果を示す情報をワーキングメモリ13に保持した場合、あるいは、検索したn番目のDFに指定された識別子のデータオブジェクトがない場合(ステップS37、NO)、CPU11は、変数nが検索範囲のDF数としてのN個に達したか否かを判断する(ステップS40)。変数nがNでない場合(ステップS40、NO)、CPU11は、上記ステップS35へ戻って変数nをインクリメントし、ステップS35〜S40の処理を再度行う。
【0071】
すなわち、指定された識別子のデータオブジェクトを発見するか、あるいは、変数nがNに達するまで、ICカード1のCPU11は、上記ステップS35〜S40の処理を繰り返し行う。この結果として、ICカード1は、当該拡張コマンドが検索範囲する全てのDFを検索し、全てのDFにおいて指定された識別子のデータオブジェクトにアクセスすることができる。
【0072】
また、変数nがNに達した場合(ステップS40、YES)、CPU11は、ワーキングメモリ13に保持している当該拡張コマンドで指定された識別子のデータオブジェクトへのアクセス結果を示す情報を、処理結果(アクセス結果)としてセットしたレスポンスデータをICカード処理装置2へ送信する(ステップS41)。
【0073】
ここで、検索範囲のDFに指定された識別子のデータオブジェクトが存在しなかった場合、つまり、ワーキングメモリ13にアクセス結果が保持されていない場合、CPU11は、当該拡張コマンドで指定された識別子のデータオブジェクトが検索範囲のDFには存在しない旨を処理結果(アクセス結果)を示す情報としてセットしたレスポンスデータをICカード処理装置2へ送信するようにしても良い。
【0074】
上記のように、第2の動作例では、ICカード1は、拡張コマンドが検索範囲とするDFを全て検索し、その結果として検索範囲の全DFから検索された全てのデータオブジェクトにアクセスし、その各データオブジェクトへのアクセス結果をレスポンスとして出力する。たとえば、第2の動作例では、拡張GET DATAコマンドを受信したICカード1は、検索範囲となる複数のDFを全て検索することにより、検索範囲となる複数のDFから検索された指定の識別子のデータオブジェクトを全て読み出し、それらの読み出した全データオブジェクトの情報をレスポンスとして出力する。これにより、第2の動作例では、1つのアプリケーションに対応する複数のDFに同一の識別子のデータオブジェクトが存在する場合であっても、それらの同一識別子の複数のデータオブジェクトに一括してアクセスでき、効率的な処理が実現できる。
【0075】
また、第2の動作例では、拡張コマンドに対するレスポンスとして、検索対象とする複数のDFに同一の識別子のデータオブジェクトが存在する可能性を考慮し、アクセスした各データオブジェクトと各データオブジェクトの所在を示す情報とを組合せた情報を送信する。これにより、拡張コマンドの発信元の上位装置では、アクセス対象としたデータオブジェクトが複数であった場合であっても、各データオブジェクトがどのDFに格納されているのかを明確に認識できる。
【0076】
上記のように、本実施の形態のICカード処理システムでは、ISO/IEC 7816−4に規定されたGET DATAコマンドあるいはPUT DATAコマンドなどの機能を拡張した拡張GET DATAコマンドあるいは拡張PUT DATAコマンドなどの拡張コマンドを受信した場合、ICカードは、選択されているカレントDFだけでなく、カレントDFの配下のDFも検索範囲として、指定された識別子のデータオブジェクトを検索してアクセスする。これにより、複数のDFによりデータを分散して格納しているアプリケーションであってもデータオブジェクトに対して効率的にアクセスすることででき、コマンドを使用する手順の簡略化あるいは処理の高速化が図れる。
【符号の説明】
【0077】
C…本体、M…モジュール、1…ICカード、1a…ICチップ、2…ICカード処理装置、11…CPU、12…プログラムメモリ、13…ワーキングメモリ、14…データメモリ、15…通信制御部、16…電源部、17…インターフェース、21…制御装置、22…カードリーダライタ。

【特許請求の範囲】
【請求項1】
外部装置から与えられるコマンドに応じて処理を行う携帯可能電子装置において、
識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内に記憶する記憶手段と、
アクセス対象とするデータオブジェクトの識別子を指定し、かつ、データオブジェクトの検索範囲となるファイルを拡張する拡張アクセス命令に対して、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索する検索手段と、
前記検索手段により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する処理手段と、
を有することを特徴とする携帯可能電子装置。
【請求項2】
前記検索手段は、カレント状態のファイルと当該カンレト状態のファイルの直下の階層のファイルとを検索対象とする、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
前記検索手段は、カレント状態のファイルと当該カンレト状態のファイルの配下となるファイルのうち前記拡張アクセス命令で指定される一部のファイルを検索対象とする、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項4】
前記検索手段は、カレント状態のファイルと当該カンレト状態のファイルの配下となるファイルのうち前記拡張アクセス命令で指定される階層までのファイルを検索対象とする、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項5】
前記処理手段は、検索したデータオブジェクトへの処理結果と当該データオブジェクトが格納されているファイルを示す情報とを対応づけた情報を含むレスポンスデータを前記拡張アクセス命令の発信元の外部装置へ送信する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項6】
外部装置から与えられるコマンドに応じて処理を行うICカードにおいて、
識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内に記憶する記憶手段と、アクセス対象とするデータオブジェクトの識別子を指定し、かつ、データオブジェクトの検索範囲となるファイルを拡張する拡張アクセス命令に対して、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索する検索手段と、前記検索手段により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する処理手段とを有するモジュールと、
前記モジュールを有する本体と、
を有することを特徴とするICカード。
【請求項7】
外部装置から与えられるコマンドに応じて処理を行う携帯可能電子装置の制御方法であって、
識別子を有するデータオブジェクトを階層構造で管理される複数のファイル内に記憶しておき、
アクセス対象とするデータオブジェクトの識別子を指定し、かつ、データオブジェクトの検索範囲となるファイルを拡張する拡張アクセス命令に対して、カレント状態のファイルと当該カレント状態のファイルに属するファイルとを検索範囲としてアクセス対象とするデータオブジェクトを検索し、
前記検索により検索されたデータオブジェクトに対して前記拡張アクセス命令で命令された処理を実行する、
ことを特徴とする携帯可能電子装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−191808(P2011−191808A)
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【出願番号】特願2010−54909(P2010−54909)
【出願日】平成22年3月11日(2010.3.11)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】