説明

携帯可能電子装置および携帯可能電子装置の制御方法

【課題】各種のデータ構造を有する各種のEFに対してカレントEF指定による効率的なコマンド処理が実現できるICカードを提供する。
【解決手段】ICカード2は、各種のデータ構造を有する各種のEFごとに設けられたテーブル23a、23b、23cにそれぞれカレントEFを設定しておき、カレントEFが指定されているコマンドを受信した場合、当該コマンドがアクセス対象とするEFのデータ構造に対するカレントEFが設定されていれば、当該コマンドがアクセス対象とするEFのデータ構造に対応するカレントEFをアクセス対象として当該コマンドで要求された処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、たとえば、書込みあるいは書換えが可能な不揮発性メモリおよびCPUなどの制御素子を具備し、外部からのコマンドに応じた処理を行うICカードなどの携帯可能電子装置および携帯可能電子装置の制御方法に関する。
【背景技術】
【0002】
従来、ICカードなどの携帯可能電子装置のデータメモリには、種々のデータ形式でデータを格納するデータファイルが記憶される。たとえば、ICカードでは、データファイルに格納されるデータ構造として、バイナリ型(Transparent structure)、レコード型(Record structure)、データオブジェクト型(TLV(Tag Length Value) structure)などがある。一方、外部からのコマンドに応じた処理を行うICカードの処理システムでは、特定のデータ構造のデータファイルをアクセス対象とするコマンドがある。たとえば、バイナリ型(Transparent structure)のデータをアクセス対象とするバイナリ系コマンド、レコード型(Record structure)のデータをアクセス対象とするレコード系コマンド、データオブジェクト型(TLV(Tag Length Value) structure)のデータをアクセス対象とするデータオブジェクト系コマンドなどがある。
【0003】
また、従来のICカードでは、データメモリに記憶されている種々のデータファイルに対して、1つのカレントファイルだけでファイルへのアクセス制御を行うようになっている。従って、従来のICカードでは、常に、直前に実行したコマンドでアクセスしたファイルがカレントファイルとなる。たとえば、直前に実行したコマンドがレコード系コマンドである場合、カレントファイルは、レコード型のデータが格納されているデータファイルとなる。この状態では、カレントファイルがレコード型のデータであるため、カレントファイルをアクセス対象として指定したバイナリ系コマンドあるいはデータオブジェクト系コマンドで要求された処理が実行できないという状況となる。言い換えると、従来のICカードでは、カレントファイルのデータ構造とは異なるデータ構造のデータファイルにアクセスする場合、アクセス対象とするデータ構造のデータファイルをカレントファイルとして選択した後に、再度、カレントファイルのデータ構造に適合するコマンドを実行させる必要がある。この結果として、所望の処理を実行するのに時間がかかることがある。
【特許文献1】特開平7−160547号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
この発明の一形態では、各種のデータファイルに対して効率的なコマンド処理が実現できる携帯可能電子装置および携帯可能電子装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
この発明の一形態としての携帯可能電子装置は、外部装置との通信を行う通信手段と、複数種類の形式からなるデータが格納されるデータファイルを記憶する第1の記憶手段と、各種のデータ形式ごとにカレントとなるファイルを示す情報を記憶する第2の記憶手段と、前記通信手段によりカレントファイルを指定したコマンドを受信した場合、当該コマンドが適用されるデータ形式を判断する判断手段と、この判断手段により判断したデータ形式に対応するカレントファイルを前記第2の記憶手段に記憶されている情報に基づいて特定する特定手段と、この特定手段により特定したカレントファイルをアクセス対象として前記コマンドで要求されている処理を行う処理手段とを有する。
【0006】
この発明の一形態としての携帯可能電子装置の制御方法は、外部装置との通信を行う通信部と、複数種類の形式からなるデータが格納されるデータファイルを記憶するデータメモリと、を有する携帯可能電子装置に用いられる方法であって、各種のデータ形式ごとにカレントとなるファイルを示す情報を記憶手段に記憶しておき、前記通信手段によりカレントファイルを指定したコマンドを受信した場合、当該コマンドが適用されるデータ形式を判断し、この判断により判断したデータ形式に対応するカレントファイルを前記記憶手段に記憶されている情報に基づいて特定し、この特定したカレントファイルをアクセス対象として前記コマンドで要求されている処理を行う。
【発明の効果】
【0007】
この発明の一形態によれば、各種のデータファイルに対して効率的なコマンド処理が実現できる携帯可能電子装置および携帯可能電子装置の制御方法を提供できる。
【発明を実施するための最良の形態】
【0008】
以下、この発明の実施の形態について図面を参照して説明する。
図1は、本実施の形態に係るICカード(携帯可能電子装置)2、および、ICカード2との通信機能を有する外部装置としてのICカード処理装置1の構成例を概略的に示すブロック図である。
まず、上記ICカード処理装置1の構成について説明する。
上記ICカード処理装置1は、図1に示すように、端末装置11、カードリーダライタ12、キーボード13、ディスプレイ14、および、プリンタ15などを有している。
【0009】
上記端末装置11は、ICカード処理装置1全体の動作を制御するものである。上記端末装置11は、CPU、種々のメモリ及び各種インターフェースなどにより構成される。たとえば、上記端末装置11は、パーソナルコンピュータ(PC)により構成される。
上記端末装置11は、上記カードリーダライタ12によりICカード2へコマンドを送信する機能、ICカード2から受信したデータを基に種々の処理を行う機能などを有している。たとえば、上記端末装置11は、カードリーダライタ12を介してICカード2にデータの書き込みコマンドを送信することによりICカード2内の不揮発性メモリにデータを書き込む制御を行う。また、上記端末装置11は、ICカード2に読み取りコマンドを送信することによりICカード2からデータを読み出す制御を行う。
【0010】
上記カードリーダライタ12は、上記ICカード2との通信を行うためのインターフェース装置である。上記カードリーダライタ12は、上記ICカード2の通信方式に応じたインターフェースにより構成される。たとえば、上記ICカード2が接触型のICカードである場合、上記カードリーダライタ12は、ICカード2のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。また、上記ICカード2が非接触型のICカードである場合、上記カードリーダライタ12は、ICカード2との無線通信を行うためのアンテナおよび通信制御などにより構成される。上記カードリーダライタ12では、上記ICカード2に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ12は、上記端末装置11による制御に基づいて上記ICカード2の活性化(起動)、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
【0011】
上記キーボード13は、当該ICカード処理装置1の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。上記ディスプレイ14は、上記端末装置11の制御により種々の情報を表示する表示装置である。上記プリンタ15は、処理結果などの各種データを印刷出力するためのものである。
【0012】
次に、上記ICカード2のハードウエア構成例について説明する。
上記ICカード2は、上記ICカード処理装置1などの上位機器から電力などの供給を受けた際、活性化される(動作可能な状態になる)ようになっている。例えば、上記ICカード2が接触型の通信によりICカード処理装置1と接続される場合、つまり、ICカード2が接触型のICカードで構成される場合、上記ICカード2は、通信インターフェースとしてのコンタクト部を介してICカード処理装置1からの動作電源及び動作クロックの供給を受けて活性化される。
【0013】
また、上記ICカード2が非接触型の通信方式によりICカード処理装置1と接続される場合、つまり、上記ICカード2が非接触式のICカードで構成される場合、上記ICカード2は、通信インターフェースとしてのアンテナ及び変復調回路などを介してICカード処理装置1からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【0014】
図2は、本実施の形態に係るICカード2のハードウエア構成例を概略的に示すブロック図である。
上記ICカード2は、本体Bを構成する筐体内にモジュールMが内蔵されている。上記モジュールMは、1つまたは複数のICチップCと通信用の外部インターフェース(通信インターフェース)とが接続された状態で一体的に形成され、ICカード2の本体B内に埋設されている。また、上記ICカード2のモジュールMは、図2に示すように、制御素子21、データメモリ22、ワーキングメモリ23、プログラムメモリ24、および、通信部25などを有してしている。
【0015】
上記制御素子21は、当該ICカード2全体の制御を司るものである。上記制御素子21は、上記プログラムメモリ24あるいは上記データメモリ22に記憶されている制御プログラムおよび制御データに基づいて動作することにより、種々の機能を実現する。たとえば、上記制御素子21は、オペレーティングシステムのプログラムを実行することにより、当該ICカード2の基本的な動作制御を行う。また、上記制御素子21は、当該ICカード2の利用目的に応じたアプリケーションプログラムを実行することにより、当該ICカード2の運用形態に応じた種々の動作制御を行う。
【0016】
上記データメモリ22は、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)あるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。上記データメモリ22には、当該ICカード2の運用用途に応じた制御プログラムあるいは種々のデータが書込まれる。上記データメモリ22には、当該ICカード2の規格に応じた種々のファイルが定義され、それらのファイルに種々のデータが書き込まれる。上記データメモリ22に格納されるファイルの例については、後述する。
【0017】
上記ワーキングメモリ23は、RAMなどの揮発性のメモリである。また、上記ワーキングメモリ23は、制御素子21が処理中のデータなどを一時保管するバッファとしても機能する。また、上記ワーキングメモリ23には、カレント状態となっているファイルを示す情報を格納するためのテーブル23a、23b、23cが設けられる。各テーブル23a、23b、23cは、それぞれファイルタイプ(各種データ構造)ごとのカレントファイルを示す情報が格納される。
【0018】
上記プログラムメモリ24は、予め制御用のプログラムや制御データなどが記憶されているマスクROMなどの不揮発性のメモリである。上記プログラムメモリ24には、当該ICカードの製造段階で制御プログラムあるいは制御データなどが記憶された状態でICカード2内に組み込まれる。つまり、上記プログラムメモリ24に記憶されている制御プログラムあるいは制御データは、当該ICカードの基本的な動作を司るものであり、予め当該ICカード2の仕様に応じて組み込まれるものである。
【0019】
上記通信部25は、上記ICカード処理装置1のカードリーダライタ12との通信を行うためのインターフェースである。当該ICカード2が接触型のICカードとして実現される場合、上記通信部25は、上記ICカード処理装置1のカードリーダライタ12と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、当該ICカード2が非接触型のICカードとして実現される場合、通信部25は、上記ICカード処理装置1のカードリーダライタ12との無線通信を行うための変復調回路などの通信制御部および電波を送受信するためのアンテナなどにより構成される。
【0020】
次に、上記データメモリ22に格納されるファイルについて説明する。
図3は、上記データメモリ22に格納されるファイルの構造例を示す図である。
図3に示すように、上記データメモリ22には、MF(Master File)、DF(Dedicated File)およびEF(Elementary File)などからなる階層構造を有する複数のファイル群が定義される。図3に示す例では、最上階層のマスターファイル(MF)41の次の階層に第1DF(DF1)42および第2DF(DF2)43が存在している。また、第1DF(DF1)42の配下としてDF1の次の階層には、第1EF(EF1−1)、第2EF(EF1−2)、および、第3EF(EF1−3)が存在している。また、図3に示す例では、EF1−1は、識別子(SFI:Short EFID)が「00001」と定義され、EF1−2は、識別子(SFI)が「00002」と定義され、EF1−3は、識別子(SFI)が「00003」と定義されている。
【0021】
上記各EFは、各種のデータを格納するためのデータファイルである。上記各EFに格納されるデータには、複数種類のデータ構造がある。たとえば、上記各EFに格納されるデータ構造は、バイナリ型(Transparent structure)、レコード型(Record structure)、データオブジェクト型(TLV(Tag Length Value) structure)の3種類に分類されるものとする。ここでは、バイナリ型のデータが格納されるEFをバイナリEFと称し、レコード型のデータが格納されるEFをレコードEFと称し、データオブジェクト型のデータが格納されるEFをデータオブジェクトEFと称するものとする。また、図3に示す例では、EF1−1がバイナリEFであり、EF1−2がレコードEFであり、EF1−3がデータオブジェクトEFであるものとする。
【0022】
次に、上記のようなファイルにアクセスするためのコマンドについて説明する。
上記ICカード2は、外部装置(ICカード処理装置)1から与えられるコマンドに応じて動作する。従って、上記ICカード2は、外部装置1からのコマンドに応じて特定のファイルに対するアクセス(読出し、書込み、更新、削除など)を行う。上記のようなコマンドは、所定のフォーマットで構成される。たとえば、本ICカード2に与えられるコマンドは、コマンドの種類、および、アクセス対象のファイルなどを示す情報が所定のファーマットで格納されるようになっている。
【0023】
図4は、コマンドフォーマットの例を示す図である。
図4に示す例では、コマンドは、「CLA」部、「INS」部、「P1」部、「P2」部、「Lc」部、「Data」部、「Le」部などの情報から構成されている。上記「CLA」部および上記「INS」部には、コマンドの種類を示す情報が格納される。
【0024】
上記「P1」部および上記「P2」部には、当該コマンドの処理パラメータを示す情報が格納される。上記「P1」部には、データのアクセス対象とすべきファイル(EF)を指定する情報(SFIを示す情報)が格納される。上記「P2」部には、たとえば、上記「P1」部で指定されるEFにおけるデータのアクセス開始位置(アドレス)を示す情報としてのオフセット値などが格納される。
【0025】
また、上記「Lc」部には、たとえば、「Data」部の長さを示す情報あるいは書込むべきデータ全体の長さを示す情報が格納される。上記「Data」部には、書込みデータなどが格納される。ただし、バイナリデータとして書込むべきデータ全体の長さが、「Data」部に格納しきれない長さである場合、上記「Data」部には、書込むべきデータのうち最初の部分のデータが格納される。また、例えば、リード系のコマンドなどの「Data」が不要なコマンドでは「Data」部が省略される。
【0026】
また、上記のようなコマンドには、特定のデータ形式のファイルをアクセス対象とするものがある。たとえば、バイナリ型のデータに対してアクセスを要求するコマンド(以下、バイナリ系コマンドとも称する)、レコード型のデータに対してアクセスを要求するコマンド(以下、レコード系コマンドとも称する)、データオブジェクト型のデータに対してアクセスを要求するコマンド(以下、データオブジェクト系コマンドとも称する)などがある。なお、カレントファイルを指定するためのセレクトコマンドなどのコマンドは、アクセス対象とするファイルのデータ構造が限定されないようになっている。
【0027】
図5は、各種のデータ構造のファイルにアクセスするためのコマンドの例を示す図である。
図5に示すように、バイナリEFに対してアクセスするためのコマンドには、バイナリデータの読出しを要求するリードバイナリ(READ BINARY)、バイナリデータの書込みを要求するライトバイナリ(WRITE BINARY)、バイナリデータの更新を要求するアップデートバイナリ(UPDATE BINARY)、バイナリデータの削除を要求するイレーズバイナリ(ERASE BINARY)などのコマンドがある。
【0028】
また、レコードEFに対してアクセスするためのコマンドには、レコードデータの読出しを要求するリードレコード(READ RECORD)、レコードデータの書込みを要求するライトレコード(WRITE RECORD)、レコードデータの追記を要求するアペンドレコード(APPEND RECORD)、レコードデータの更新を要求するアップデートレコード(UPDATE RECORD)などのコマンドがある。
また、データオブジェクトEFに対してアクセスするためのコマンドには、データの取得を要求するゲットデータ(GET DATA)、データの格納を要求するプットデータ(PUT DATA)などのコマンドがある。
【0029】
次に、本ICカード2におけるカレントファイルの設定について説明する。
上述したようなアクセス対象とするファイルのデータ構造が限定される各種のコマンドは、異なるデータ構造(適合しないデータ構造)のファイルを指定している場合、当該コマンド処理が正常に実行されずに異常終了となる。すなわち、アクセス対象とするファイルのデータ構造が限定される各種のコマンドでは、必ず適合するデータ構造のファイルを指定した状態でなければならない。
【0030】
仮に、1つのカレントファイルだけでファイルへのアクセス制御を行うと、常に、直前に実行したコマンドでアクセスしたファイルがカレントファイルとなる。たとえば、直前に実行したコマンドがレコードEFに対するアクセスである場合(つまり、1つのカレントファイルがレコード型EFである場合)、カレントファイルを指定したバイナリ系コマンドあるいはデータオブジェクト系コマンドは、アクセス対象のファイルのデータ構造がレコード型であるため、正常に実行されない。言い換えると、直前のコマンドとは異なるデータ構造のファイルへのアクセスを要求するコマンドは、当該コマンドが適合するデータ構造のファイルの何れかをアクセス対象のファイルとして必ず指定しなければならない。
【0031】
これに対して、本ICカード2では、上記ワーキングメモリ23内に各データ形式ごとのカレントファイルを示す情報を可能するためのテーブル23a、23b、23cが設けられる。各テーブル23a、23b、23cには、各データ形式(バイナリ型、レコード型、データオブジェクト型)ごとのカレントファイルを示す情報が格納される。たとえば、テーブル23aには、バイナリ型のEF群におけるカレントファイルを示す情報が格納され、テーブル23bには、レコード型のEF群におけるカレントファイルを示す情報が格納され、テーブル23cには、データオブジェクト型のEF群におけるカレントファイルを示す情報が格納される。
【0032】
上記のような複数のテーブルで各データ構造ごとにカレントファイルを設定することにより、データ構造の異なるファイル群に対して各種のコマンドを用いて効率的にアクセスすることができる。すなわち、EFのデータ構造ごとにカレントEFを設定すると、直前のコマンドとは異なるデータ構造のEFへのアクセスを要求するコマンドが、特定のファイルを指定していなくても(カレントEF指定であっても)、当該データ構造のEFのうち最後にアクセスした当該データ構造のEF(当該データ構造のカレントEF)をアクセス対象とすることが可能となる。
【0033】
次に、上記のように構成されるICカード2における処理例について説明する。
【0034】
まず、セレクトコマンドによるカレントEFの設定処理について説明する。
図6は、セレクトコマンドに対する処理例を説明するためのフローチャートである。
まず、上記ICカード2が上記ICカード処理装置1からのコマンドを受信すると(ステップS10、YES)、上記制御素子21は、受信したコマンドの種類を判別する。受信したコマンドがカレントEFを指定するセレクトコマンドであった場合(ステップS11、YES)、上記制御素子21は、セレクトコマンドで指定されたEFが存在するか否かを判断する(ステップS12)。
【0035】
当該セレクトコマンドで指定されたEFが存在しないと判断した場合(ステップS12、NO)、上記制御素子21は、当該セレクトコマンドに対する応答として指定されたEFが存在しない旨の応答を上記ICカード処理装置1へ通知し、当該セレクトコマンドに対する処理を異常終了とする(ステップS13)。
当該セレクトコマンドで指定されたEFが存在すると判断した場合(ステップS12、YES)、上記制御素子21は、当該EFに格納されているデータの構造(EFの種類)を判定する。
【0036】
すなわち、当該セレクトコマンドで指定されたEFがバイナリ型のデータが格納されているバイナリEFであると判定した場合(ステップS14、YES)、上記制御素子21は、当該セレクトコマンドで指定されたEFを示す情報をバイナリEFのカレントEFを示すテーブル23aに格納する(ステップS15)。これにより、当該ICカード2では、ICカード処理装置1から供給されたセレクトコマンドで指定されたEF(バイナリEF)がバイナリEFのカレントEFとして設定される。この場合、上記制御素子21は、当該セレクトコマンドに対する処理が正常に終了したことを示す応答を上記ICカード処理装置1へ送信し、処理を正常終了する(ステップS19)。
【0037】
また、当該セレクトコマンドで指定されたEFがレコード構造のデータが格納されているレコードEFであると判定した場合(ステップS16、YES)、上記制御素子21は、当該セレクトコマンドで指定されたEFを示す情報をレコードEFのカレントEFを示すテーブル23bに格納する(ステップS17)。これにより、当該ICカード2では、上記ICカード処理装置1から供給されたセレクトコマンドで指定されたEF(レコードEF)がレコードEFのカレントEFとして設定される。この場合、上記制御素子21は、当該セレクトコマンドに対する処理が正常に終了したことを示す応答を上記ICカード処理装置1へ送信し、処理を正常終了する(ステップS19)。
【0038】
また、当該セレクトコマンドで指定されたEFがバイナリEFでなくレコードEFでもないと判定した場合、つまり、当該セレクトコマンドで指定されたEFがデータオブジェクト構造のデータが格納されているデータオブジェクトEFであると判定した場合(ステップS16、NO)、上記制御素子21は、当該セレクトコマンドで指定されたEFを示す情報をデータオブジェクトEFのカレントEFを示すテーブル23cに格納する(ステップS18)。これにより、当該ICカード2では、上記ICカード処理装置1から供給されたセレクトコマンドで指定されたEF(データオブジェクトEF)がデータオブジェクトEFのカレントEFとして設定される。この場合、上記制御素子21は、当該セレクトコマンドに対する処理が正常に終了したことを示す応答を上記ICカード処理装置1へ送信し、処理を正常終了する(ステップS19)。
【0039】
上記のように、ICカード2は、特定のEFを選択することを要求するセレクトコマンドを受信した場合、指定されたEFのデータ構造を判別し、指定されたEFを当該EFのデータ構造に対応するカレントEFとして設定する。これにより、データ構造ごとにカレントEFを設定することでき、データ構造ごとのカレントEFに対するアクセスが可能となる。
【0040】
次に、EFを指定したコマンドに対する処理について説明する。
図7は、特定のEFが指定されているコマンドに対する処理例を説明するためのフローチャートである。
まず、上記ICカード2が上記ICカード処理装置1からのコマンドを受信すると(ステップS20、YES)、上記制御素子21は、受信したコマンドでアクセス対象とする特定のEFが指定されているか否かを判別する。受信したコマンドにおいて特定のEFが指定されている場合(ステップS21、YES)、上記制御素子21は、当該コマンドで指定されたEFが存在するか否かを判断する(ステップS22)。
【0041】
当該コマンドで指定されたEFが存在しないと判断した場合(ステップS22、NO)、上記制御素子21は、当該コマンドに対する応答として指定されたEFが存在しない旨の応答を上記ICカード処理装置1へ通知するとともに、当該コマンドに対する処理を異常終了とする(ステップS23)。
当該コマンドで指定されたEFが存在すると判断した場合(ステップS22、YES)、上記制御素子21は、当該コマンドで指定されたEFに格納されているデータの構造(EFの種類)を判定する。
【0042】
すなわち、当該コマンドで指定されたEFがバイナリ型のデータが格納されているバイナリEFであると判定した場合(ステップS24、YES)、上記制御素子21は、当該コマンドがバイナリEFをアクセス対象とするコマンドであるか否かを判断する(ステップS25)。たとえば、図5に示すように、レコード系コマンドあるいはデータオブジェクト系コマンドでは、バイナリEFをアクセス対象としない。このため、当該コマンドがレコード系コマンドあるいはデータオブジェクト系コマンドである場合、上記制御素子21は、当該コマンドがバイナリEFをアクセス対象とするコマンドでないと判断する。
【0043】
上記判断により当該コマンドがバイナリEFをアクセス対象とするコマンドでないと判断した場合(ステップS25、NO)、上記制御素子21は、当該コマンドで指定されたEFが無効である旨をICカード処理装置1へ通知するとともに、当該コマンドを異常終了とする(ステップS23)。
また、上記判断により当該コマンドがバイナリEFをアクセス対象とするコマンドであると判断した場合(ステップS25、YES)、上記制御素子21は、指定されたEFをバイナリEFのカレントEFに設定する(ステップS26)。当該コマンドで指定されたEFをバイナリEFのカレントEFに設定すると、上記制御素子21は、バイナリEFのカレントEFに設定したEFをアクセス対象としてコマンドで要求された処理を実行する(ステップS32)。当該コマンドで要求された処理を実行すると、上記制御素子21は、その実行結果をICカード処理装置1へ通知し、処理を終了する(ステップS33)。
【0044】
また、当該コマンドで指定されたEFがレコード型のデータが格納されているレコードEFであると判定した場合(ステップS27、YES)、上記制御素子21は、当該コマンドがレコードEFをアクセス対象とするコマンドであるか否かを判断する(ステップS28)。たとえば、図5に示すように、バイナリ系コマンドあるいはデータオブジェクト系コマンドでは、レコードEFをアクセス対象としない。このため、当該コマンドがバイナリ系コマンドあるいはデータオブジェクト系コマンドである場合、上記制御素子21は、当該コマンドがレコードEFをアクセス対象とするコマンドでないと判断する。
【0045】
上記判断により当該コマンドがレコードEFをアクセス対象とするコマンドでないと判断した場合(ステップS28、NO)、上記制御素子21は、当該コマンドで指定されたEFが無効である旨をICカード処理装置1へ通知するとともに、当該コマンドを異常終了とする(ステップS23)。
また、上記判断により当該コマンドがレコードEFをアクセス対象とするコマンドであると判断した場合(ステップS28、YES)、上記制御素子21は、指定されたEFをレコードEFのカレントEFに設定する(ステップS29)。当該コマンドで指定されたEFをレコードEFのカレントEFに設定すると、上記制御素子21は、レコードEFのカレントEFに設定したEFをアクセス対象としてコマンドで要求された処理を実行する(ステップS32)。当該コマンドで要求された処理を実行すると、上記制御素子21は、その実行結果をICカード処理装置1へ通知し、処理を終了する(ステップS33)。
【0046】
また、当該コマンドで指定されたEFがバイナリEFでもなくレコードEFでもないと判定した場合、つまり、当該コマンドで指定されたEFがデータオブジェクト型のデータが格納されているデータオブジェクトEFであると判定した場合(ステップ27、NO)、上記制御素子21は、当該コマンドがデータオブジェクトEFをアクセス対象とするコマンドであるか否かを判断する(ステップS30)。たとえば、図5に示すように、バイナリ系コマンドあるいはレコード系コマンドでは、データオブジェクトEFをアクセス対象としない。このため、当該コマンドがバイナリ系コマンドあるいはレコード系コマンドである場合、上記制御素子21は、当該コマンドがデータオブジェクトEFをアクセス対象とするコマンドでないと判断する。
【0047】
上記判断により当該コマンドがデータオブジェクトEFをアクセス対象とするコマンドでないと判断した場合(ステップS30、NO)、上記制御素子21は、当該コマンドで指定されたEFが無効である旨をICカード処理装置1へ通知するとともに、当該コマンドを異常終了とする(ステップS23)。
また、上記判断により当該コマンドがデータオブジェクトEFをアクセス対象とするコマンドであると判断した場合(ステップS30、YES)、上記制御素子21は、指定されたEFをデータオブジェクトEFのカレントEFに設定する(ステップS31)。当該コマンドで指定されたEFをデータオブジェクトEFのカレントEFに設定すると、上記制御素子21は、データオブジェクトEFのカレントEFに設定したEFをアクセス対象としてコマンドで要求された処理を実行する(ステップS32)。当該コマンドで要求された処理を実行すると、上記制御素子21は、その実行結果をICカード処理装置1へ通知し、処理を終了する(ステップS33)。
【0048】
上記のように、ICカード2は、特定のEFが指定されているコマンドを受信した場合、指定されたEFのデータ構造を判別し、当該コマンドがアクセス対象とするEFの種別が指定されているEFのデータ構造と矛盾しなければ、指定されたEFを当該EFのデータ構造に対応するカレントEFとして設定し、当該データ構造のEFのカレントEFをアクセス対象として当該コマンドで要求された処理を実行する。これにより、データ構造ごとにカレントEFを設定することでき、指定されたEFをカレントEFとしたコマンド処理が可能となる。
【0049】
次に、カレントEFを指定したコマンドに対する処理について説明する。
図8は、カレントEFが指定されているコマンドに対する処理例を説明するためのフローチャートである。
まず、上記ICカード2が上記ICカード処理装置1からのコマンドを受信すると(ステップS40、YES)、上記制御素子21は、受信したコマンドでアクセス対象とするEFがカレントEFに指定されているか否かを判別する(ステップS41)。
【0050】
すなわち、受信したコマンドにおいてカレントEFが指定されている場合(ステップS41、YES)、上記制御素子21は、まず、当該コマンドがバイナリEFをアクセス対象とするバイナリ系コマンドであるか否かを判断する(ステップS42)。たとえば、受信したコマンドが図5に示すようなバイナリ系コマンドである場合、上記制御素子21は、当該コマンドがバイナリEFをアクセス対象とするコマンドであると判断する。
【0051】
上記判断により当該コマンドがバイナリEFをアクセス対象とするバイナリ系コマンドであると判断した場合(ステップS42、YES)、上記制御素子21は、バイナリEFに対するカレントEFが存在するか否かを判断する(ステップS43)。つまり、上記制御素子21は、バイナリEFのカレントEFを示す情報が格納されるテーブル23aにカレントEFを示す情報が格納されているか否かを判断する。
【0052】
上記判断により当該コマンドがアクセス対象するデータ構造のEFに対するカレントEFが存在しないと判断した場合、つまり、バイナリEFに対するカレントEFが設定されていない場合(ステップS43、NO)、上記制御素子21は、当該コマンドに対する応答として指定されたカレントEFが存在しない旨の応答を上記ICカード処理装置1へ通知するとともに、当該コマンドに対する処理を異常終了とする(ステップS44)。
上記判断により当該コマンドがアクセス対象とするデータ構造のEFに対するカレントEFが存在すると判断した場合、つまり、バイナリEFに対するカレントEFが設定されている場合(ステップS43、YES)、上記制御素子21は、上記テーブル23aに格納されているバイナリEFのカレントEFを示す情報に基づいてアクセス対象とするバイナリEFのカレントEFを特定する(ステップS45)。当該コマンドがアクセス対象とするカレントEF(バイナリEFに対するカレントEF)を特定すると、上記制御素子21は、バイナリEFのカレントEFをアクセス対象として当該コマンドが要求している処理を実行する(ステップS52)。当該コマンドで要求された処理を実行すると、上記制御素子21は、その実行結果をICカード処理装置1へ通知し、処理を終了する(ステップS53)。
【0053】
また、受信したコマンドがバイナリ系コマンドでない場合(ステップS41、NO)、上記制御素子21は、当該コマンドがレコードEFをアクセス対象とするレコード系コマンドであるか否かを判断する(ステップS46)。たとえば、受信したコマンドが図5に示すようなレコード系コマンドである場合、上記制御素子21は、当該コマンドがレコードEFをアクセス対象とするコマンドであると判断する。
【0054】
上記判断により当該コマンドがレコードEFをアクセス対象とするレコード系コマンドであると判断した場合(ステップS46、YES)、上記制御素子21は、レコードEFに対するカレントEFが存在するか否かを判断する(ステップS47)。つまり、上記制御素子21は、レコードEFのカレントEFを示す情報が格納されるテーブル23bにカレントEFを示す情報が格納されているか否かを判断する。
【0055】
上記判断により当該コマンドがアクセス対象とするデータ構造のEFに対するカレントEFが存在しないと判断した場合、つまり、レコードEFに対するカレントEFが設定されていない場合(ステップS47、NO)、上記制御素子21は、当該コマンドに対する応答として指定されたカレントEFが存在しない旨の応答を上記ICカード処理装置1へ通知するとともに、当該コマンドに対する処理を異常終了とする(ステップS44)。
上記判断により当該コマンドがアクセス対象とするデータ構造のEFに対するカレントEFが存在すると判断した場合、つまり、レコードEFに対するカレントEFが設定されている場合(ステップS47、YES)、上記制御素子21は、上記テーブル23bに格納されているレコードEFのカレントEFを示す情報に基づいてアクセス対象とするレコードEFのカレントEFを特定する(ステップS48)。当該コマンドがアクセス対象とするカレントEF(レコードEFに対するカレントEF)を特定すると、上記制御素子21は、レコードEFのカレントEFをアクセス対象として当該コマンドが要求している処理を実行する(ステップS52)。当該コマンドで要求された処理を実行すると、上記制御素子21は、その実行結果をICカード処理装置1へ通知し、処理を終了する(ステップS53)。
【0056】
また、受信したコマンドがバイナリ系コマンドでなくレコード系コマンドでもない場合(ステップS46、NO)、上記制御素子21は、当該コマンドがデータオブジェクトEFをアクセス対象とするデータオブジェクト系コマンドであるか否かを判断する(ステップS49)。たとえば、受信したコマンドが図5に示すようなデータオブジェクト系コマンドである場合、上記制御素子21は、当該コマンドがデータオブジェクトEFをアクセス対象とするコマンドであると判断する。
【0057】
上記判断により当該コマンドがデータオブジェクトEFをアクセス対象とするデータオブジェクト系コマンドであると判断した場合(ステップS49、YES)、上記制御素子21は、データオブジェクトEFに対するカレントEFが存在するか否かを判断する(ステップS50)。つまり、上記制御素子21は、データオブジェクトEFのカレントEFを示す情報が格納されるテーブル23cにカレントEFを示す情報が格納されているか否かを判断する。
【0058】
上記判断により当該コマンドがアクセス対象とするデータ構造のEFに対するカレントEFが存在しないと判断した場合、つまり、データオブジェクトEFに対するカレントEFが設定されていない場合(ステップS50、NO)、上記制御素子21は、当該コマンドに対する応答として指定されたカレントEFが存在しない旨の応答を上記ICカード処理装置1へ通知するとともに、当該コマンドに対する処理を異常終了とする(ステップS44)。
【0059】
上記判断により当該コマンドがアクセス対象とするデータ構造のEFに対するカレントEFが存在すると判断した場合、つまり、データオブジェクトEFに対するカレントEFが設定されている場合(ステップS50、YES)、上記制御素子21は、上記テーブル23bに格納されているデータオブジェクトEFのカレントEFを示す情報に基づいてアクセス対象とするデータオブジェクトEFのカレントEFを特定する(ステップS51)。当該コマンドがアクセス対象とするカレントEF(データオブジェクトEFに対するカレントEF)を特定すると、上記制御素子21は、データオブジェクトEFのカレントEFをアクセス対象として当該コマンドが要求している処理を実行する(ステップS52)。当該コマンドで要求された処理を実行すると、上記制御素子21は、その実行結果をICカード処理装置1へ通知し、処理を終了する(ステップS53)。
【0060】
上記のように、ICカード2は、カレントEFが指定されているコマンドを受信した場合、当該コマンドがアクセス対象とするEFのデータ構造に対するカレントEFが設定されていれば、当該コマンドがアクセス対象とするEFのデータ構造に対応するカレントEFをアクセス対象として当該コマンドで要求された処理を実行する。これにより、カレントEFを指定したコマンドに対して、当該コマンドがアクセス対象とするデータ構造に対するカレントEFをアクセス対象として処理を実行できる。この結果として、データ構造が異なる各種のEFをアクセス対象とする各種のコマンドが任意の順序で与えられる場合であっても、各データ構造ごとに設定されるカレントEFにより効率的なコマンド処理が実現できる。
【図面の簡単な説明】
【0061】
【図1】本実施の形態に係るICカードとICカード処理装置の構成例を概略的に示すブロック図。
【図2】本実施の形態に係るICカードのハードウエア構成例を概略的に示すブロック図。
【図3】データメモリに格納されるファイルの構造例を示す図。
【図4】コマンドフォーマットの例を示す図。
【図5】各種のデータ構造のファイル(EF)にアクセスするためのコマンドの例を示す図。
【図6】特定のEFをカレントEFに指定するためのセレクトコマンドに対する処理例を説明するためのフローチャート。
【図7】特定のEFが指定されているコマンドに対する処理例を説明するためのフローチャート。
【図8】カレントEFが指定されているコマンドに対する処理例を説明するためのフローチャート。
【符号の説明】
【0062】
B…本体、M…モジュール、C…ICチップ、1…ICカード処理装置(外部装置)、2…ICカード、11…端末装置、12…カードリーダライタ、21…制御素子、22…データメモリ(第1の記憶手段)、23…ワーキングメモリ、23a、23b、23c…テーブル(第2の記憶手段)、24…プログラムメモリ、25…通信部

【特許請求の範囲】
【請求項1】
外部装置との通信を行う通信手段と、
複数種類の形式からなるデータが格納されるデータファイルを記憶する第1の記憶手段と、
各種のデータ形式ごとにカレントとなるファイルを示す情報を記憶する第2の記憶手段と、
前記通信手段によりカレントファイルを指定したコマンドを受信した場合、当該コマンドで要求されている処理が適用されるデータ形式を判断する判断手段と、
この判断手段により判断したデータ形式に対応するカレントファイルを前記第2の記憶手段に記憶されている情報に基づいて特定する特定手段と、
この特定手段により特定したカレントファイルをアクセス対象として前記コマンドで要求されている処理を行う処理手段と、
を有することを特徴とする携帯可能電子装置。
【請求項2】
さらに、前記通信手段によりセレクトコマンドを受信した場合、当該セレクトコマンドで指定されたファイルを当該ファイルのデータ形式に対応するカレントファイルに設定する設定手段を有する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
さらに、前記通信手段によりファイル指定のコマンドを受信した場合、当該コマンドで指定されたファイルを当該ファイルのデータ形式に対応するカレントファイルに設定する設定手段を有する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項4】
さらに、前記各手段を有するモジュールと、
前記モジュールが内蔵された本体と、
を具備することを特徴する請求項1乃至3の何れかに記載の携帯可能電子装置。
【請求項5】
外部装置との通信を行う通信部と、複数種類の形式からなるデータが格納されるデータファイルを記憶するデータメモリと、を有する携帯可能電子装置に用いられる制御方法であって、
各種のデータ形式ごとにカレントとなるファイルを示す情報を記憶手段に記憶しておき、
前記通信手段によりカレントファイルを指定したコマンドを受信した場合、当該コマンドが適用されるデータ形式を判断し、
この判断により判断したデータ形式に対応するカレントファイルを前記記憶手段に記憶されている情報に基づいて特定し、
この特定したカレントファイルをアクセス対象として前記コマンドで要求されている処理を行う、
ことを特徴とする携帯可能電子装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate