(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムと、マルチアプリケーションタイプのファイル構造に従いファイル内に複数の機能に対応するアプリケーションプログラムと前記アプリケーションプログラムに対応するデータを有する複数のファイルを格納するメモリと、前記オペレーティングシステムと各ファイルに含まれるプログラムを実行するＣＰＵとを備え、外部端末からの選択コマンドを受信すると、前記オペレーティングシステムが、選択コマンドによって指定されるファイルのプログラムを起動し、起動したプログラムが前記選択コマンド以降に受信するコマンドを処理するＩＣカードであって、
前記複数のファイルの少なくとも一つは、ファイルシステムタイプのファイル構造に従ったファイルデータと前記ファイルデータにアクセスするためのエミュレータプログラムとを有する第一のファイルであって、
前記ファイルシステムタイプのファイル構造に従ったファイルは、複数のファイルデータを階層状に有し、
前記エミュレータプログラムは、現在選択されているファイルデータ名を示す現在ファイル情報と、前記複数のファイルデータの階層関係を示す階層情報と、各ファイルデータが記憶されている前記メモリ上のアドレスを示すアドレス情報とを有し、
外部端末から前記第一のファイルを指定する第一の選択コマンドを受信すると、前記オペレーティングシステムが、前記第一のファイルのエミュレータプログラムを起動し、前記エミュレータプログラムが、前記現在ファイル情報を前記第一のファイルのファイル名に更新し、前記第一の選択コマンドに続いて、所定のファイルデータを指定する第二の選択コマンドを受信すると、前記第一のプログラムが、前記階層情報を参照して、前記所定のファイルデータが前記第一のファイルの配下であることを確認し、前記第一のファイルの配下である場合、前記現在ファイル情報を前記第二の選択コマンドによって指定されたファイルデータ名に更新し、その後、ファイルデータの読み出しを指示する読み出しコマンドを受信すると、前記エミュレータプログラムが、現在ファイル情報に書き込まれているファイルデータ名に対応するファイルデータを前記アドレス情報に基づいて前記メモリから読み出し、前記外部端末に送信することを特徴とするＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クレジット機能や電子マネー機能など複数の機能を有するマルチアプリケーションタイプのＩＣカードに関する。
【背景技術】
【０００２】
ＩＣカードは、プラスチックカードに、ＣＰＵとメモリ（ＲＯＭ、ＲＡＭなど）を内蔵するＬＳＩチップを埋め込んだカードである。従来の磁気カードと比較して、高いセキュリティを確保でき、また、大容量のデータを記憶できるので、クレジットカード、電子マネーなどの複数の機能を１枚のカードで実現できる。ＩＣカードは、ＩＣカード端末装置（以下、「外部端末」と称する）と通信する。そして、外部端末からのコマンドに従って、ＬＳＩチップ内のＣＰＵは、メモリに格納されるアプリケーションプログラム（ＯＳを含む）を実行することによって、メモリに格納されるデータファイルの読み出し及び書き込みを行う。
【０００３】
図８は、ＩＣカード端末装置（外部端末）を説明する図である。図８（ａ）は、外部端末の外観図、図８（ｂ）はブロック図である。マルチアプリケーションタイプのＩＣカード１は、クレジットカード機能や電子マネー機能などの複数の機能に対応するＬＳＩチップ２を内蔵する。ＬＳＩチップ２は、各機能に対応するアプリケーションプログラムを格納する。図８（ａ）に示されるように、外部端末１０は、例えば、ハンディタイプの端末であって、金額や暗証番号などの情報を入力するための入力部１４、液晶などを利用した表示部１５及び図示されないＩＣカード差込口などを備える。さらに、図８（ｂ）に示されるように、外部端末１０は、ＩＣカード１に対するデータの読み書きのためのリーダ／ライタ１１、ＩＣカード１との通信を制御するＩＦＤ（Ｉｎｔｅｒｆａｃｅ Ｄｅｖｉｃｅ）１２、及びマイクロコンピュータ１３を内蔵する。マイクロコンピュータ１３は、ＩＣカードに格納されるプログラムに対応する処理プログラムを格納するメモリと、この処理プログラムを実行し、ＩＣカードと通信する演算処理部（ＣＰＵ）とを含む。
【０００４】
図９は、ＩＣカードに格納されるファイルの構造の例を示す図である。図９のファイル構造は、ファイルシステムタイプと呼ばれる。図９では、ファイルは階層構造で構成され、最上位層のＭＦ（Ｍａｓｔｅｒ Ｆｉｌｅ）、その配下にＤＦ（Ｄｅｄｉｃａｔｅｄ Ｆｉｌｅ）及び／又はＥＦ（Ｅｌｅｍｅｎｔａｒｙ Ｆｉｌｅ）が従属する。ＤＦ配下には、少なくとも一つのＥＦが従属し、また、更に別のＤＦが従属してもよい。ＥＦは最下位層のファイルであり、ＥＦ内にバイナリ構造又はレコード構造のデータが格納される。
【０００５】
図１０は、ファイルシステムタイプのＩＣカードと外部端末とのプログラム通信の形態例を示す図である。ＩＣカード１は、図９に示すファイル及びＩＣカードＯＳ（オペレーティングシステム）を含む。外部端末１０の処理プログラムＲ１は、ＩＣカードとの通信制御のためのＩＦＤ（Ｉｎｔｅｒｆａｃｅ Ｄｅｖｉｃｅ）ドライバを介してＩＣカードＯＳと通信する。処理プログラムＲ１からのコマンドは、ＩＣカードＯＳによって処理され、ＩＣカードＯＳは、そのコマンドによって選択されたファイルにアクセスし、外部端末に対して応答する。
【０００６】
例えば、図９のＥＦ１−１−１の読み出し処理の場合、外部端末の処理プログラムＲ１は、ＩＣカードのＯＳ（オペレーティングシステム）に対して、以下に示すコマンドを順次送信する。
【０００７】
(１)ＤＦ１選択コマンド 
(２)ＤＦ１−１選択コマンド 
(３)ＤＦ１−１−１選択コマンド 
(４)ファイル読み込みコマンド
ＩＣカードＯＳは、上記（１）、（２）、（３）のコマンドに従って、ＤＦ１−１−１を選択し、上記（４）のコマンドに従って、選択されたＤＦ１−１−１内のデータを読み出し、外部端末に送信する。
【０００８】
図１１は、ＩＣカードに格納されるファイルの構造の別の例を示す図である。図１１のファイル構造は、マルチアプリケーションタイプと呼ばれる。図１１では、ＭＦの配下に、複数のＤＦが従属し、各ＤＦは、ＩＣカードの複数の機能それぞれに対応するアプリケーションプログラムとそれに対応するデータを格納する。近年、ＩＣカードのファイル構造は、上記ファイルシステムタイプに代わって、このマルチアプリケーションタイプに移行しつつある。
【０００９】
例えば、図１１において、ＤＦ１は、機能Ａに対応するアプリケーションプログラムＡＰＬ１（Ｃｏｄｅ及びＤａｔａ）、ＤＦ２は、機能Ｂに対応するアプリケーションプログラムＡＰＬ２（Ｃｏｄｅ及びＤａｔａ）、ＤＦ３は、機能Ｃに対応するアプリケーションプログラムＡＰＬ３（Ｃｏｄｅ及びＤａｔａ）を格納する。
【００１０】
図１２は、マルチアプリケーションタイプのＩＣカードと外部端末とのプログラム通信の形態例を示す図である。ＩＣカード１は、複数の機能Ａ、Ｂ、Ｃそれぞれに対応するカード側のアプリケーションプログラム（データも含む）ＡＰＬ１、ＡＰＬ２、ＡＰＬ３及びＩＣカードＯＳ（オペレーティングシステム）を含む。外部端末１０の処理プログラムＲ２は、ＩＣカードとの通信制御のためのＩＦＤ（Ｉｎｔｅｒｆａｃｅ Ｄｅｖｉｃｅ）ドライバ、さらには、ＩＣカードＯＳを介して、各アプリケーションプログラムと通信を行う。処理プログラムＲ２からのコマンドは、ＩＣカードＯＳによって、対応するアプリケーションプログラムに振り分けられ、各アプリケーションプログラムによって処理される。
【００１１】
例えば、外部端末の処理プログラムＲ２は、ＩＣカードＯＳ（オペレーティングシステム）に対して、まず、上記（１）のコマンド同様に、ＤＦを選択するコマンドを送信する。そして、ＩＣカードのＯＳがＤＦ１を選択すると、その後は、外部端末の処理プログラムＲ２は、ＩＣカードのＯＳではなく、選択されたＤＦ１のアプリケーションプログラムと、そのプログラム固有のコマンドを利用して通信を行う。従って、マルチアプリケーションタイプの構造タイプのＩＣカードは、上記ファイルシステムタイプのＩＣカードのＯＳに対して送信される下位層を選択するコマンド（２）、（３）やファイル読み出しコマンド（４）などをサポートしていない。
【００１２】
このように、ＩＣカードのファイル構造の種類が複数併存する場合、次のような問題が生じる。即ち、今後、マルチアプリケーションタイプのＩＣカードが普及するに伴って、比較的古いファイルシステムタイプのＩＣカード用の外部端末は、比較的新しいマルチアプリケーションタイプのＩＣカードにアクセスすることができない（もちろん、マルチアプリケーションタイプのＩＣカード用の外部端末は、ファイルシステムタイプのＩＣカードにアクセスすることができない）。
【００１３】
このような問題を解決するために、ファイルシステムタイプのＩＣカード用の外部端末の処理プログラムを、マルチアプリケーションタイプのＩＣカードに対応できるように改造することが考えられるが、膨大な作業とコストがかかることが予想される。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
従って、本発明の目的は、所定のファイル構造を有するＩＣカードに対して、それと異なるファイル構造を有するＩＣカード用の外部端末からアクセスできるようにすることである。
【００１５】
また、本発明の目的は、ファイルシステムタイプのＩＣカード用の外部端末がマルチアプリケーションタイプのＩＣカードにアクセスすることができるようなマルチアプリケーションタイプのＩＣカードを提供することにある。
【００１６】
上記目的を達成するために、マルチアプリケーションタイプのＩＣカードが、ファイルシステムタイプのＩＣカード用の外部端末からのコマンドを処理することができるエミュレータプログラムを実装する。これにより、ファイルシステムタイプのＩＣカード用の外部端末は、マルチアプリケーションタイプのＩＣカードにアクセスすることができるようになる。
【００１７】
好ましくは、上記目的を達成するための本発明のＩＣカードは、オペレーティングシステムと、マルチアプリケーションタイプのファイル構造に従いファイル内に複数の機能に対応するアプリケーションプログラムと前記アプリケーションプログラムに対応するデータを有する複数のファイルを格納するメモリと、前記オペレーティングシステムと各ファイルに含まれるプログラムを実行するＣＰＵとを備え、外部端末からの選択コマンドを受信すると、前記オペレーティングシステムが、選択コマンドによって指定されるファイルのプログラムを起動し、起動したプログラムが前記選択コマンド以降に受信するコマンドを処理するＩＣカードであって、前記複数のファイルの少なくとも一つは、ファイルシステムタイプのファイル構造に従ったファイルデータと前記ファイルデータにアクセスするためのエミュレータプログラムとを有する第一のファイルであって、前記ファイルシステムタイプのファイル構造に従ったファイルは、複数のファイルデータを階層状に有し、前記エミュレータプログラムは、現在選択されているファイルデータ名を示す現在ファイル情報と、前記複数のファイルデータの階層関係を示す階層情報と、各ファイルデータが記憶されている前記メモリ上のアドレスを示すアドレス情報とを有し、外部端末から前記第一のファイルを指定する第一の選択コマンドを受信すると、前記オペレーティングシステムが、前記第一のファイルのエミュレータプログラムを起動し、前記エミュレータプログラムが、前記現在ファイル情報を前記第一のファイルのファイル名に更新し、前記第一の選択コマンドに続いて、所定のファイルデータを指定する第二の選択コマンドを受信すると、前記第一のプログラムが、前記階層情報を参照して、前記所定のファイルデータが前記第一のファイルの配下であることを確認し、前記第一のファイルの配下である場合、前記現在ファイル情報を前記第二の選択コマンドによって指定されたファイルデータ名に更新し、その後、ファイルデータの読み出しを指示する読み出しコマンドを受信すると、前記エミュレータプログラムが、現在ファイル情報に書き込まれているファイルデータ名に対応するファイルデータを前記アドレス情報に基づいて前記メモリから読み出し、前記外部端末に送信することを特徴とする。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態について図面に従って説明する。しかしながら、本発明の技術的範囲はかかる実施の形態によって限定されるものではない。
【００１９】
本発明の実施の形態では、上述したマルチアプリケーションタイプのＩＣカードに、上述したファイルシステムタイプのＩＣカード用の外部端末からのファイルアクセスコマンドを処理するためのエミュレータプログラムが実装される。また、エミュレータプログラムは、ファイルシステムタイプのＩＣカードが格納するファイルデータを、エミュレータプログラム配下のファイルデータとして格納し、ファイルシステムタイプのＩＣカード用の外部端末からのファイルアクセスコマンドに従って、所定のデータにアクセスすることができる。
【００２０】
図１は、ファイルシステムタイプのファイル構造の例（図１（ａ））と、このファイルシステムタイプのファイル構造に対応するエミュレータプログラムを含むマルチアプリケーションタイプのファイル構造の例（図１（ｂ））を示す図である。図１（ａ）に示されるように、ＭＦ配下に、ＤＦ１、ＤＦ２、ＥＦ３が従属する場合、それぞれに対応するエミュレータプログラムを有するファイルＤＦ１、ＤＦ２、ＤＦ３が、図１（ｂ）のＭＦ配下に設けられる。そして、図１（ｂ）のファイルＤＦ１には、図１（ａ）のＤＦ１配下のファイルデータ（点線１）を有するエミュレータプログラムが格納される。従って、ＤＦ１内のエミュレータプログラムは、ファイルデータＥＦ１−２、ＥＦ１−１−１、ＥＦ１−１−２を有する。また、図１（ｂ）のＤＦ２には、図１（ａ）のＤＦ２配下のファイルデータ（点線２）を有するエミュレータプログラムが格納される。従って、ＤＦ２内のエミュレータプログラムは、ファイルデータＥＦ２−１、ＥＦ２−２、ＥＦ２−３を有する。さらに、図１（ｂ）のファイルＤＦ３には、図１（ａ）のファイルデータＥＦ３（点線３）を有するエミュレータプログラムが格納される。
【００２１】
図２は、エミュレータプログラムの有する情報を説明する図である。図２において、エミュレータプログラムは、カレントファイル位置情報、ファイル属性情報、ファイル階層情報、ファイルアドレス情報、ファイルデータを有する。ファイルデータは、実際に、ファイルデータＥＦ１−１−１、ＥＦ１−１−２、ＥＦ２−１、ＥＦ２−２、ＥＦ２−３、ＥＦ３を格納する領域である。
【００２２】
カレントファイル位置情報は、ファイルシステムタイプのＩＣカード用の外部端末からのファイルアクセスコマンドによって指定されるファイル名が書き込まれる領域である。ファイル属性情報は、各ファイルにアクセスするのに必要なパスワード、識別符号などである。図３は、ファイル属性情報テーブルの例である。図３に示されるように、テーブルは、各ＤＦ又はＥＦへのアクセスに対するパスワードの有無、パスワードが必要な場合は、そのパスワードを含む。
【００２３】
ファイル階層情報は、各エミュレートプログラムに含まれるファイルデータ間の階層関係である。図４は、ファイル階層情報テーブルの例である。図４に示されるように、テーブルは、ファイル構造における各ファイルの従属関係に基づいて、各ファイルの直上のファイル名（親ファイル名）及びその直下のファイル名（子ファイル名）を有する。なお、最下層のファイルＥＦは、当然ながら、子ファイルを有さない。
【００２４】
ファイルアドレス情報は、ファイルデータに格納される各ファイルのアドレスが格納される。図５は、ファイルアドレス情報テーブルの例である。テーブルは、各ファイルの種類（バイナリファイル、又はレコードファイル）を有する。そして、ファイルデータがバイナリファイルである場合は、ファイルアドレス情報は、各ファイルの先頭の番地（アドレス）と最後の番地の情報を有し、また、ファイルデータがレコードファイルの場合、レコードファイルを構成するレコードの番号と、各レコードの先頭番地と最後の番地の情報を有する。
【００２５】
各情報について、以下に説明するエミュレータプログラムの動作とともにさらに説明する。図６は、本発明の実施の形態におけるエミュレータプログラムの動作フローチャートである。図６において、ファイルシステムタイプのＩＣカード用の外部端末は、例えば、ＤＦ１選択コマンドを送信する（Ｓ１０）。
【００２６】
ＩＣカードのＯＳが、ＤＦ１選択コマンドを受信し、ＤＦ１内のエミュレータプログラムを起動する（Ｓ１２）。ここで、外部端末は、ＤＦ１がエミュレータプログラムであることを意識しておらず、あくまでも、図１（ａ）におけるファイルＤＦ１へのアクセスコマンドとして、ＤＦ１選択コマンドを送信する。一方、ＩＣカードは、図１（ｂ）のファイル構造を有するので、ＩＣカードＯＳが、ＤＦ１選択コマンドに基づいてファイルＤＦ１を選択することで、ファイルＤＦ１内のエミュレータプログラムが起動する。起動後、ＤＦ１内のエミュレータプログラムは、カレントファイル位置情報を、ＭＦからＤＦ１に変更する（Ｓ１４）。各エミュレータプログラムのカレントファイル位置情報の初期情報はＭＦであって、起動されると、各エミュレータプログラムを格納するＤＦ名に変更される。なお、ＩＣカードのＯＳ及びエミュレータプログラムは、外部端末からのコマンドに対して応答する。
【００２７】
続いて、外部端末は、ＤＦ１−１選択コマンドを送信する（Ｓ１６）。エミュレータプログラムが起動した後は、外部端末からのコマンドはエミュレータプログラムによって処理される。エミュレータプログラムは、ＤＦ１−１選択コマンドを受信すると、ファイル階層情報を参照し、ＤＦ１−１がＤＦ１配下のファイルであるか否か確認する（Ｓ１８）。エミュレータプログラムは、ＤＦ１−１がＤＦ１配下であれば、カレントファイル位置情報をＤＦ１からＤＦ１−１に変更する（Ｓ２０）。そうでない場合は、エラーを応答する。
【００２８】
さらに、外部端末は、ＥＦ１−１−１選択コマンドを送信する（Ｓ２２）。エミュレータプログラムは、同様に、ファイル階層情報を参照し、選択されたファイルがカレントファイル位置情報に記述されているファイルの配下に存在するか否か確認する（Ｓ２４）。エミュレータプログラムは、ＥＦ１−１−１がＤＦ１−１配下であれば、カレントファイル位置情報をＤＦ１−１からＥＦ１−１−１に変更する（Ｓ２６）。そうでない場合は、エラー応答する。
【００２９】
ファイルデータＥＦ１−１−１選択後、外部端末は、ファイル読み込みコマンドを送信する（Ｓ２８）。エミュレータプログラムは、ファイル読み込みコマンドを受信すると、ファイル属性情報を参照し、カレントファイル位置情報に記述されているファイル名に対応するファイル（この場合、ＥＦ１−１−１）に対して、パスワードなどのセキュリティ情報（例えば、パスワード）が登録されているか確認する（Ｓ３０）。
【００３０】
パスワードの登録がある場合、エミュレータプログラムは、外部端末に対してパスワードを要求する（Ｓ３２）。外部端末は、テンキーなどの入力部から入力されたパスワードを送信する（Ｓ３４）。エミュレータプログラムは、受信したパスワードと、ファイル属性情報に登録されているパスワードを照合する（Ｓ３６）。一致している場合は、カレントファイル位置情報に記述されているファイルをファイルデータから読み出し（Ｓ３８）、外部端末に送信する（Ｓ４０）。一致しない場合は、エラー応答する。パスワードが登録されていない場合は、パスワードの認証を行うことなく、カレントファイル位置情報に記述されているファイルをファイルデータから読み出し、外部端末に送信する。
【００３１】
カレントファイル位置情報に記述されているファイルをファイルデータから読み出す際、エミュレータプログラムは、ファイルアドレス情報を参照し、ファイルデータ内において、カレントファイル位置情報に記述されているファイルのアドレスを取得し、取得したアドレス領域に格納されるファイルを読み出す。
【００３２】
このように、マルチアプリケーションタイプのＩＣカードが、ファイルシステムタイプのＩＣカード用外部端末からのコマンドを処理することができるエミュレータプログラムを実装することにより、ファイルシステムタイプのＩＣカード用の外部端末は、マルチアプリケーションタイプのＩＣカードにアクセスすることができるようになる。        反対に言えば、マルチアプリケーションタイプのＩＣカードは、マルチアプリケーションタイプのＩＣカード用の外部端末と、ファイルシステムタイプのＩＣカード用の外部端末の両方と、アクセスすることが可能となる。
【００３３】
図７は、エミュレータプログラムを含むマルチアプリケーションタイプのファイル構造の別の例を示す図である。図７では、一つのエミュレータプログラムが、ＭＦ内に格納される。例えば、ＩＣカードの規格の一つであるＭＵＬＴＯＳを採用するＩＣカードにおいては、ＭＦにアプリケーションプログラムを実装し、全てのコマンドをＭＦ内のアプリケーションプログラムが処理するシェル（Ｓｈｅｌｌ）モードという特殊モードがある。このシェルモードを利用して、ＭＦ内のエミュレーションプログラムを実行することにより、上述同様に、ファイルシステムタイプのＩＣカード用の外部端末からのコマンドを処理することができるようになる。なお、上述の図１の実施例では、ＭＦ配下の各ＤＦに対してエミュレータプログラムがそれぞれ用意されたが、図７の場合、全てのファイルアクセスコマンドを処理する一つエミュレータプログラムがＭＦに用意される。
【産業上の利用可能性】
【００３４】
以上説明したように、本発明によれば、マルチアプリケーションタイプのＩＣカードが、ファイルシステムタイプのＩＣカード用の外部端末からのコマンドを処理することができるエミュレータプログラムを実装することにより、ファイルシステムタイプのＩＣカード用の外部端末は、マルチアプリケーションタイプのＩＣカードにアクセスすることができるようになる。
【００３５】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図面の簡単な説明】
【００３６】
【図１】図１は、ファイルシステムタイプのファイル構造の例と、このファイルシステムタイプのファイル構造に対応するエミュレータプログラムを含むマルチアプリケーションタイプのファイル構造の例を示す図である。
【図２】図２は、エミュレータプログラムの有する情報を説明する図である。
【図３】図３は、ファイル属性情報テーブルの例である。
【図４】図４は、ファイル階層情報テーブルの例である。
【図５】図５は、ファイルアドレス情報テーブルの例である。
【図６】図６は、本発明の実施の形態におけるエミュレータプログラムの動作フローチャートである。
【図７】図７は、エミュレータプログラムを含むマルチアプリケーションタイプのファイル構造の別の例を示す図である。
【図８】図８は、ＩＣカード端末装置（外部端末）を説明する図である。
【図９】図９は、ＩＣカードに格納されるファイルの構造の例（ファイルシステムタイプ）を示す図である。
【図１０】図１０は、ファイルシステムタイプのＩＣカードと外部端末とのプログラム通信の形態例を示す図である。
【図１１】図１１は、ＩＣカードに格納されるファイルの構造の別の例（マルチアプリケーションタイプ）の例を示す図である。
【図１２】図１２は、マルチアプリケーションタイプのＩＣカードと外部端末とのプログラム通信の形態例を示す図である。
【図１】
0004090350.tif 000002
【図２】
0004090350.tif 000003
【図３】
0004090350.tif 000004
【図４】
0004090350.tif 000005
【図５】
0004090350.tif 000006
【図６】
0004090350.tif 000007
【図７】
0004090350.tif 000008
【図８】
0004090350.tif 000009
【図９】
0004090350.tif 000010
【図１０】
0004090350.tif 000011
【図１１】
0004090350.tif 000012
【図１２】
0004090350.tif 000013