(57)【特許請求の範囲】
【請求項１】
メモリを複数のファイル群に分割し、この分割した各ファイルを階層構造にして、各ファイルのデータ管理を行なうファイル管理方式であって、
複数のファイル分設けられ、前記ファイルを利用可能にするための選択を行なった際、各ファイルに対して選択済であることを示す識別情報を付与する識別情報付与手段と、
ファイルへのアクセス時に各アクセス命令に前記識別情報付与手段で付与された識別情報を付加して指定する指定手段と、
この指定手段で指定された識別情報に基づきアクセスの対象となるファイルを認識するファイル認識手段と、
外部から入力される認証キー照合命令に呼応して、前記指定手段で指定された識別情報に対応するファイルのキー情報を選択的に照合する照合手段と、
前記ファイルの階層ごとに設けられ、前記照合手段の照合結果を前記メモリ内の前記指定手段で指定された識別情報に対応させて記憶する記憶手段と、
外部から入力される命令に呼応して、前記指定手段で指定された識別情報に対応するファイルのアクセス条件情報を参照する参照手段と、
この参照手段で参照したアクセス条件情報と、前記記憶手段に記憶され、前記指定手段で指定された識別情報に対応する照合結果とを比較する比較手段と、
この比較手段の比較結果に応じて前記ファイルに対するアクセスの可否を決定するアクセス可否決定手段と、
このアクセス可否決定手段によるアクセス可否決定結果を出力するアクセス可否決定結果出力手段と、
を具備したことを特徴とするファイル管理方式。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、たとえば、不揮発性メモリ、および、これらを制御するＣＰＵなどの制御素子を有するＩＣチップを内蔵した、いわゆるＩＣカードにおいて、上記メモリ内に分割設定される複数のファイルのデータ管理を行なうファイル管理方式に関する。
【０００２】
【従来の技術】
最近、携帯可能なデータ記憶媒体として、不揮発性のデータメモリ、および、これらを制御するＣＰＵなどの制御素子を有するＩＣチップを内蔵したＩＣカードが注目されている。
【０００３】
この種のＩＣカードは、たとえば、特開平３−２２４０４７号公報に記載されているように、内蔵するデータメモリを複数のファイルに分割し、かつ、個々のファイルには、利用アプリケーションの運用時に必要なデータなどが格納されるようになっており、外部装置からアプリケーション識別名などを入力することにより、選択的に対応するファイルのみが使用可能な状態となるようになっている。このため、複数のアプリケーションデータをファイル分けし、１枚のＩＣカードに格納することにより、多目的利用が可能なようになっている。
【０００４】
これらのアプリケーションファイルには、取引データなどのデータ格納のための複数のデータファイルと、暗証番号照合用のキー情報格納のためのキーファイルが所属できるようになっている。
【０００５】
現在、これらのファイルへのアクセス方法として、アプリケーションファイルを選択する時点で、当該ファイルにカレント（使用可能）なファイル識別番号を割当て、以降の各コマンドにて該識別番号を指定することにより、コマンドが対象とするアプリケーションファイルを識別することが考えられる。
【０００６】
【発明が解決しようとする課題】
ところで、各ファイルには、アクセス条件と呼ばれるファイル属性が設定されている。このアクセス条件とは、当該ファイルに対してアクセスする時点で必要とされるキー情報の照合状態を選択的に指定するものである。たとえば、あるファイルへのアクセスのために、ＩＣカード内のキー情報Ａの照合状態が必要であるとアクセス条件にて指定されていた場合には、このファイルへアクセスする以前に、キー情報Ａの照合を行なわなければならない。
【０００７】
前述したカレントなファイル識別番号を用いてアクセスを行なう場合、ファイル識別番号１にて当該ファイルへアクセスする際には、ファイルに対してファイル識別番号を設定した後に、このファイル識別番号を用いてキー情報Ａを照合して、初めてファイルへのアクセスが可能となる。ただし、この後、異なる外部アプリケーションにより、異なるファイル識別番号（たとえば、識別番号２）が設定された場合、上記ファイル識別番号１にて確立されたキー情報Ａの照合状態を受け継ぐとしたら、後者のアプリケーションは、キー情報Ａの照合状態を要求している前記ファイルに対し、キー情報Ａの照合を行なわずしてアクセス可能となり、セキュリティ維持に支障を来たす。
【０００８】
そこで、本発明は、メモリ内の複数のファイルに対するアクセスが効率よく行なわれるファイル管理方式を提供することを目的とする。
また、本発明は、メモリ内の複数のファイルに対して複数のアプリケーションがアクセスする場合においても、各アプリケーション個々の有するセキュリティ環境を維持できるファイル管理方式を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明のファイル管理方式は、メモリを複数のファイル群に分割し、この分割した各ファイルを階層構造にして、各ファイルのデータ管理を行なうファイル管理方式であって、複数のファイル分設けられ、前記ファイルを利用可能にするための選択を行なった際、各ファイルに対して選択済であることを示す識別情報を付与する識別情報付与手段と、ファイルへのアクセス時に各アクセス命令に前記識別情報付与手段で付与された識別情報を付加して指定する指定手段と、この指定手段で指定された識別情報に基づきアクセスの対象となるファイルを認識するファイル認識手段と、外部から入力される認証キー照合命令に呼応して、前記指定手段で指定された識別情報に対応するファイルのキー情報を選択的に照合する照合手段と、前記ファイルの階層ごとに設けられ、前記照合手段の照合結果を前記メモリ内の前記指定手段で指定された識別情報に対応させて記憶する記憶手段と、外部から入力される命令に呼応して、前記指定手段で指定された識別情報に対応するファイルのアクセス条件情報を参照する参照手段と、この参照手段で参照したアクセス条件情報と、前記記憶手段に記憶され、前記指定手段で指定された識別情報に対応する照合結果とを比較する比較手段と、この比較手段の比較結果に応じて前記ファイルに対するアクセスの可否を決定するアクセス可否決定手段と、このアクセス可否決定手段によるアクセス可否決定結果を出力するアクセス可否決定結果出力手段とを具備している。
【００１５】
【作用】
本発明によれば、上記構成により、アプリケーションにて、たとえば、ＩＣカード内の複数のファイルに対するアクセスが、アプリケーションによって効率よく行なわれる。また、選択されたファイルに対するアクセス条件を満足するための各種キー情報の照合状態も、各選択ファイルに対してのみ作用させることが可能になる。したがって、１枚のＩＣカードに対して複数のアプリケーションがアクセスする場合においても、個々の有するセキュリティ環境を維持できる。
【００１６】
【実施例】
以下、本発明の一実施例について図面を参照して説明する。
図１は、本実施例に係るＩＣカードが適用される、たとえば、金融システムあるいはショッピングシステムなどの端末装置として用いられるカード取扱装置の構成例を示すものである。すなわち、この装置は、ＩＣカード１をカードリーダ・ライタ２を介してＣＰＵなどからなる制御部３と接続可能とするとともに、制御部３にキーボード４、ＣＲＴディスプレイ装置５、プリンタ６、および、フロッピーディスク装置７を接続して構成される。
【００１７】
図２は、ＩＣカード１の構成例を示すものであり、制御部としての制御素子  （たとえば、ＣＰＵ）１１、記憶内容が消去可能な不揮発性のデータメモリ１２、ワーキングメモリ１３、プログラムメモリ１４、および、カードリーダ・ライタ２との電気的接触を得るためのコンタクト部１５によって構成されている。これらのうち、破線内の部分（制御素子１１、データメモリ１２、ワーキングメモリ１３、プログラムメモリ１４）は１つ（あるいは複数）のＩＣチップで構成されてＩＣカード本体内に埋設されている。
【００１８】
データメモリ１２は、各種データの記憶に使用され、たとえば、ＥＥＰＲＯＭなどで構成されている。ワーキングメモリ１３は、制御素子１１が処理を行なう際の処理データを一時的に保持するためのメモリであり、たとえば、ＲＡＭなどで構成される。プログラムメモリ１４は、たとえば、マスクＲＯＭで構成されており、制御素子１１のプログラムなどを記憶するものである。
【００１９】
データメモリ１２は、たとえば、図３に示すように、制御領域１２０、ディレクトリ１２１、空き領域１２２、および、エリア群１２３に分割されている。エリア群１２３は、複数のデータエリアおよびキーエリアを有することができ、かつ、データファイル（ＤＦ）と呼ばれる概念でグループ化することができる。なお、後述するＭＦ（マスターファイル）は、データファイルの１つの形態として一括管理される。
【００２０】
データファイルは、対応するアプリケーションにて使用されるデータエリア、および、キーエリアを一括して管理するためのファイルである。
データエリアは、たとえば、取引データなどのように、必要に応じて読み書きするためのデータを格納するエリアである。
【００２１】
キーエリアは、たとえば、暗証番号などの格納に利用されているエリアであり、書込み／書換え／照合の対象になり、読出しはできないようになっている。
なお、これらのエリアは、図３に示すように、エリア群１２３として一括して割当てられている。また、これらのファイルあるいはエリアは、データメモリ  １２内のディレクトリ１２１を用いることにより、それぞれの物理的位置などを制御素子１１が認識するようになっている。
【００２２】
さらに、図３の制御領域１２０には、エリア群１２３の先頭アドレス情報、および、空き領域１２２の先頭アドレス情報が格納されている。
図３のディレクトリ１２１は、図４に示すように、各データファイルおよびエリアに対応する各種定義情報が格納される。
【００２３】
図４（ａ）は、データファイルの名称を定義する情報である。この定義情報は、ディレクトリ１２１内でデータファイル名定義情報を識別するためのデータ  ＰＴＮ、本データファイルに割当てられたファイル通し番号ＤＦＳＮ、本データファイルを識別するためのデータＤＦＩＤ、本データファイルに付与されたファイル名ＤＦｎａｍｅおよびその長さを示すデータＮＬ、および、これらのデータ全ての正当性をチェックするためのデータＢＣＣからなる。
【００２４】
図４（ｂ）は、データファイルの管理情報を定義する情報である。この定義情報は、ディレクトリ１２１内でデータファイル名定義情報を識別するためのデータＰＴＮ、本データファイルに割当てられたファイル通し番号ＤＦＳＮ、本データファイルの親ファイルの通し番号ＰＦＳＮ、データファイルのサイズデータ  ＤＦＳ、本データファイルのタイプを示すデータＴＹＰＥ、データファイルのアクセス条件を示すデータＤＦＡＣ、本データファイルの状態を保持するためのデータＤＦＳＴ、本データファイルの配下に位置するデータファイルおよびエリアにより使用されているバイト数ＵＳ、および、これらのデータ全ての正当性をチェックするためのデータＢＣＣからなる。
【００２５】
なお、ＭＦ（マスターファイル）には上述したデータファイル名定義情報はない。
図５にデータＴＹＰＥのフォーマット例を示す。図示するように、データ    ＴＹＰＥは、１バイトによって構成されている。このうち、第１ビット目は、後述するキー情報の照合状態を共有させるか否かを示すものであり、本ビットが  “０”となっていれば共有することが可能であり、“１”であれば不可能であることを示す。
【００２６】
図４（ｃ）は、各種取引データなどを格納するエリアを定義する情報である。この定義情報は、ディレクトリ１２１内でエリア定義情報を識別するためのデータＰＴＮ、本エリアが属するデータファイルの通し番号ＤＦＳＮ、エリアに対してアクセスする際の識別番号ＡＩＤ、エリアの先頭アドレスを示すデータ      ＡＴＯＰ、エリアサイズを示すデータＡＳＩＺ、エリアのアクセス条件を示すデータＡＡＣ、エリアの状態を保持するデータＡＳＴ、および、これらのデータ全ての正当性をチェックするためのデータＢＣＣからなる。
【００２７】
図４（ｄ）は、各種キー情報を格納するエリアを定義する情報である。この定義情報は、ディレクトリ１２１内でキーエリア定義情報を識別するためのデータＰＴＮ、本エリアが属するデータファイルの通し番号ＤＦＳＮ、エリアに対してアクセスする際の識別番号ＫＩＤ、エリアの先頭アドレスを示すデータＫＴＯＰ、エリアサイズを示すデータＫＳＩＺ、キー情報の種別を示すデータＣＦ、キー情報のアクセス条件を示すデータＫＡＣ、キー情報の状態を保持するデータＫＳＴ、および、これらのデータ全ての正当性をチェックするためのデータＢＣＣからなる。
【００２８】
これらに使用されている識別情報ＰＴＮは、１バイトで構成されており、データファイルの名称を定義するもの（図４ａ）に対しては‘００’が、データファイルの管理情報を定義するもの（図４ｂ）に対しては‘０１’が、データエリアを定義するもの（図４ｃ）に対しては‘０２’が、また、キーエリアを定義するもの（図４ｄ）に対しては‘０３’が、それぞれ使用される。
【００２９】
図６は、ファイルの構造例を示している。同図において、ＤＦｎｎはデータファイル（ＤＦ）を、Ｄｎｎはデータエリアを、Ｋｎｎはキーエリアを、それぞれ示している。また、各データファイル，データエリア，キーエリアにそれぞれ付与されている＃ｎｎは、図７にて説明する定義情報の通し番号を示しており、また、（）カッコ内の数値はファイル識別情報（ＩＤ）、エリア識別情報（ＩＤ）である。
【００３０】
図６に示すように、ＩＣカード１内のデータメモリ１２において、ＭＦ（マスターファイル）の配下には、ＤＦ１およびＤＦ２（データファイル）、Ｋ００およびＫ０１（キーエリア）、Ｄ００およびＤ０１（データエリア）がそれぞれ設定されている。
【００３１】
ＤＦ１の配下には、ＤＦ１−１およびＤＦ１−２、Ｋ１１およびＫ１２、    Ｄ１１およびＤ１２がそれぞれ設定されている。
ＤＦ１−１の配下には、Ｋ１１１およびＫ１１２、Ｄ１１１およびＤ１１２が、また、ＤＦ１−２の配下には、Ｋ１２１およびＫ２１２、Ｄ１２１および
Ｄ１２２がそれぞれ設定されている。
【００３２】
ＤＦ２の配下には、ＤＦ２−１およびＤＦ２−２、Ｋ２１およびＫ２２、    Ｄ２１およびＤ２２がそれぞれ設定されている。
ＤＦ２−１の配下には、Ｋ２１１およびＫ２１２、Ｄ２１１およびＤ２１２が、また、ＤＦ２−２の配下には、Ｋ２２１およびＫ２２２、Ｄ２２１および
Ｄ２２２がそれぞれ設定されている。
【００３３】
これらの各種定義情報は、一括して図７に示すようにディレクトリ１２１に格納される。図示するように、各定義情報には、ファイル創成時にＤＦＳＮ（ファイル通し番号）が自動的に付与される。このＤＦＳＮ、および、データファイル定義情報に格納される親ファイルのシーケンス番号ＰＦＳＮにより、各ファイルの関連情報を制御素子１１が定義する。
【００３４】
たとえば、ＤＦ１−１のデータファイル定義情報（通し番号＃１３）は、    ＤＦＳＮが‘０３’、また、ＰＦＳＮが‘０１’となっている。すなわち、本データファイルは、ファイルシーケンス番号‘０３’が創成時に付与され、同時に本データファイルがＤＦ１の配下に創成されることを認識し、ＤＦ１のＤＦＳＮ（‘０１’）をＰＦＳＮとして付与する。
【００３５】
次に、図８により、各種状態情報を一時的に格納するための、ファイルステータス格納エリアのフォーマットを説明する。本ステータス情報は、制御素子１１内のメモリの所定領域にあり、図示するように、マトリクスとして制御素子１１が識別可能なようになっている。図中、縦方向にファイルのレベル（ＭＦを起点として、何階層目のＤＦかを示す）、および、横方向にサポートするファイル識別番号（識別情報）を対応付ける。
【００３６】
各要素の交点には、対応するファイルの識別情報（ＦＩＮＦｎｍ）、および、当該ファイルのステータス情報（ＳＴＳｎｍ）を対にして格納するようになっている。特に、ファイル識別情報は、図７に示す定義情報の通し番号、または、定義情報が格納されているアドレス情報を使用する。このとき、ｎはファイル識別番号、ｍはファイルのレベルを示すものであり、たとえば、図中、ＦＩＮＦ２１およびＳＴＳ２１は、ファイル識別番号２にて規定されたファイル群のうち、レベル１に該当するファイルの識別情報およびステータスを格納する。
【００３７】
図６によって例示したファイル構造例を用いて、ファイルステータスの格納例を説明する。たとえば、ＤＦ２−１に対し、ファイル識別番号２が割当てられた場合（ファイルの識別番号の割当てについては、後述するファイル選択コマンドにて行なわれる）には、図８中のＦＩＮＦ２０にＭＦの通し番号＃０１が、また、ＦＩＮＦ２１にＤＦ２の通し番号＃０８が、さらに、ＦＩＮＦ２２にＤＦ２−１の通し番号＃２６が、それぞれ格納されることになる（図９参照）。
【００３８】
図１０は、複数のファイル識別番号を使用することにより、複数のＤＦを選択した後の状態を示したものである。この図は、識別番号０を使用してＤＦ１−２（通し番号＃１８）を、識別番号１を使用してＤＦ１（通し番号＃０６）を、また、識別番号２を用いてＤＦ２−１（通し番号＃２６）を、それぞれ選択した後の状態を示しており、特に、これらの選択されたファイルを、その識別番号に対する“カレントＤＦ”と称する。
【００３９】
たとえば、識別番号０のカレントＤＦはＤＦ１−２であり、以降の入力されたコマンド電文にて識別番号０の指定されたものは、このＤＦ１−２がカレントファイルであるものとして内部的に選択される。
【００４０】
これらの照合状態を格納するフォーマットの例を図１１に示す。図示するように、第１ビット目から第７ビット目によってキー情報の照合状態を格納するとともに、第８ビット目の値により、この照合状態を他のファイル識別情報を用いたアクセスに対して参照させる（共有させる）か否かを規定するものである。特に、前者の照合状態は、後述するキー照合コマンドによって設定、解除される。また、共有されるか否かを示すビットは、後述するファイル選択コマンドによって選択されたファイルのパスを構成する各ＤＦタイプ情報（ＴＹＰＥ）に基づき設定される。
【００４１】
次に、各キーエリアに割当てられているキー情報の種別情報（ＣＦ）について説明する。このキー情報の種別情報は、たとえば、図１２に示すようなフォーマットになっている。図中の照合状態指示ビットのうち、いずれか１つのビットが“１”となっていて、他のビットは全て“０”となっている。値が“１”となっているビットの位置は、キー情報ごとに異なる。たとえば、図７中のＫ００の  ＣＦは、第７ビット目のみが“１”となっており、また、Ｋ０１のＣＦは、第６ビット目のみが“１”となっている。
【００４２】
次に、図１３によりＩＣカード１の動作概念を説明する。図示するように、  ＩＣカード１は、電気的活性化後に命令データ待ち状態に移る。この時点で命令データを待ち続け、入力されると、命令データの先頭にある機能コードを抽出し、対応する命令ルーチンに移る。この後、命令ルーチンにて処理を行ない、この処理結果を出力後、命令データ待ち状態に戻る。
【００４３】
図１４は、ファイルあるいはエリア創成コマンドの一例を示すものであり、  （ａ）はデータファイル創成コマンド、（ｂ）はデータエリア創成コマンド、  （ｃ）はキーエリア創成コマンドをそれぞれ示している。
【００４４】
図１５および図１６は、ファイル創成のための動作を説明するフローチヤートを示している。ＩＣカード１が、図１４に示すようなコマンド電文を受信すると、これらの機能コードから、ファイル創成コマンドであることを認識し、図１５および図１６に示すフローチヤートにしたがって処理が実行される。
【００４５】
まず、コマンド実行条件が整っているかを、コマンド電文中にて示されたファイル識別番号に対応する照合状態、および、カレントファイルに規定されているアクセス条件により判断する。この判断でアクセス不可と判断された場合には、アクセス条件異常を示す応答データを出力し、コマンド待ち状態に戻る。
【００４６】
アクセス可能と判断した場合には、次にコマンドにて指定された割当てＩＤ  （識別情報）が、現在のカレントデータファイル内に存在するかをチェックする。もし存在していれば、ＩＤ重複異常を示す応答データを出力し、コマンド待ち状態に戻る。そうでなければ、次のステップに移る。
【００４７】
なお、この場合、特にデータファイル創成コマンドであった場合には、このチェックの外に、コマンドにて指定されたデータファイル名が、ＩＣカード１内に存在しているかを更にチェックし、存在していれば、ＩＤ重複異常を示す応答データを出力し、コマンド待ち状態に戻る。
【００４８】
次に、当該コマンドにて与えられたファイルのサイズが正当であるか否かをチェックする。この場合、指定されたファイルサイズに生成される定義情報が使用するバイト数を合計したバイト数が、チェックの対象になる。
【００４９】
このとき、カレントとなっているデータファイルのファイルサイズを確認する。この場合、このカレントデータファイル定義情報にて規定されているファイルサイズ、および、使用サイズから、未使用サイズを計算することにより、コマンドにて指定されたファイルサイズを基に創成のために必要なサイズと比較する。これにより、未使用サイズよりも、創成に必要なサイズの方が大きい場合、ファイルサイズ異常を示す応答データを出力し、コマンド待ち状態に戻る。
【００５０】
正常な場合には、次に当該コマンドがデータファイル創成を要求しているか否かをチェックし、そうであれば、現在、他のデータファイルにより使用されていないシーケンス番号のうち、最小の値を求める。このとき、未使用番号が見つからない場合には、ファイル個数異常を示す応答データを出力し、コマンド待ち状態に戻る。そうでなければ、定義情報作成処理に移行する。
【００５１】
また、当該コマンドがデータファイル以外のファイル創成を要求していれば、コマンドにて指定されたファイルサイズ、および、制御領域１２０内に格納されているエリア群先頭アドレスにより、今回創成されるデータファイルの先頭アドレスを計算し、定義情報作成処理に移行する。
【００５２】
定義情報作成処理においては、データファイル創成であれば、データファイル用パターンを示すＰＴＮ、前回の処理において検索したファイルシーケンス番号ＤＦＳＮ、当該ファイルの親ファイルが有するファイルシーケンス番号ＰＦＳＮ、コマンドにて指定されたデータファイル名の長さＮＬ、データファイル名、ファイルサイズＤＦＳ、本ファイル選択時に出力すべきデータが格納されるデータファイルを特定するためのＡＩＤ、および、アクセス条件ＤＦＡＣを使用して、これを生成する。なお、データファイルステータスＤＦＳＴ、および、使用サイズＵＳは、それぞれ初期値が設定される。
【００５３】
また、データエリアであれば、データエリア用パターンを示すＰＴＮ、当該ファイルの親ファイルが有するファイルシーケンス番号ＤＦＳＮ、コマンドにて指定されたＡＩＤ、サイズＡＳＩＺ、キー情報の種別ＣＦ、アクセス条件ＡＡＣ、および、前回の処理にて計算したエリア先頭アドレスＡＴＯＰを使用して、これを生成する。なお、データエリアのステータスＡＳＴは、初期値が設定される。
【００５４】
また、キーエリアであれば、キーエリア用パターンを示すＰＴＮ、当該ファイルの親ファイルが有するファイルシーケンス番号ＤＦＳＮ、コマンドにて指定されたＫＩＤ、サイズＫＳＩＺ、アクセス条件ＫＡＣ、および、前回の処理にて計算したエリア先頭アドレスＫＴＯＰを使用して、これを生成する。なお、データエリアのステータスＫＳＴは、初期値が設定される。
【００５５】
作成した定義情報は、制御領域１２０に格納されているディレクトリポインタ（空き領域先頭アドレス）から、当該ファイル創成により更新されるエリア群先頭アドレスの直前までを対象に、格納される。このとき、該定義情報の書込みが正常に終了しなかった場合には、書込み異常を示す応答データを出力し、コマンド待ち状態に戻る。
【００５６】
定義情報の書込みが正常に終了すると、次にカレントファイルの使用サイズを更新する。このとき、更新が正常に終了しなかった場合には、書込み異常を示す応答データを出力し、コマンド待ち状態に戻る。
【００５７】
これを正常に終了すると、ディレクトリポインタ、および、エリア群先頭アドレスを更新する。このとき、更新が正常に終了しなかった場合には、書込み異常を示す応答データを出力し、コマンド待ち状態に戻る。また、これを正常に終了すると、正常終了を示す応答データを出力し、コマンド待ち状態に戻る。
【００５８】
次に、データファイルをカレント状態にするためのデータファイル選択動作について、図１７に示すフローチャートを用いて説明する。図１８に示すようなデータファイル選択コマンドを受信すると、当該コマンド内の機能コードにより、データファイル選択コマンドであることを認識し、図１７に示すフローチャートにしたがって処理が実行される。
【００５９】
まず、本コマンドにより指定されているファイル識別番号をサポートしているか否かを確認する。すなわち、図８の例では、識別番号０，１，２のいずれかであるかを確認する。もし、サポートしていないファイル識別番号であった場合には、ファイル識別番号異常を示す応答データを出力し、コマンド待ち状態に戻る。
【００６０】
もし、サポートされているファイル識別番号であった場合には、次に、本コマンドによって通知されたデータファイル名情報を抽出し、ディレクトリ１２１を検索することにより、指定されたデータファイルが存在するか否かを確認する。もし、存在しなければ、該当データファイル名無しを示す応答データを出力し、コマンド待ち状態に戻る。
【００６１】
もし、存在するのであれば、次のロジカルファイル識別番号割当て処理に移行する。ロジカルファイル識別番号割当て処理では、まず、本コマンドによって指定されたデータファイルのパスを確認する。図６におけるＤＦ２−１は、ファイルレベルが２であり、直上のファイルはＤＦ２、また、その直上にはＭＦが存在する。したがって、パスはＭＦ，ＤＦ２となる。このパスの検索は、コマンドによって指定されたデータファイルの親ファイルのシーケンス番号ＰＦＳＮを順に辿っていくと確認可能である。
【００６２】
次に、このパスを構成する複数ファイルの確認情報をそれぞれ抽出し、今回割当てのために指定されたファイル識別番号に対応する図８中の欄を順に確認し、対応するレベルに、今回検索されたパスを構成する各ファイルの確認情報と一致する箇所を除き、新たにＦＩＮＦを格納する。このとき、書換えられたＦＩＮＦに対応するＳＴＳは初期化される。この後、正常終了を示す応答データを出力し、コマンド待ち状態に戻る。
【００６３】
なお、このとき、パスを構成するＭＦまたはＤＦのＴＹＰＥの第１ビット目を参照し、これに対応するビット値を各対応するＳＴＳのＭＳＢに格納する。
これにより、前述した全てのコマンドで参照されるカレントデータファイルの情報が、コマンド実行時点で認識できる。
【００６４】
次に、キー情報の照合動作について、図１９に示すフローチャートを用いて説明する。図２０に示すようなキー照合コマンドが入力されると、まず、コマンド電文中のファイル識別番号を参照し、サポートしている値を指定したか否かをチェックする。もし、サポートしていなければ、ファイル識別番号指定異常を示す応答データを出力し、コマンド待ち状態に戻る。
【００６５】
もし、サポートしていれば、図８に示すファイルステータス格納エリアの情報に基づいて、指定されたファイル識別情報に対応するカレントデータファイルを確認する。
【００６６】
次に、カレントデータファイルのＤＦＳＮを有するキーエリア定義情報のうち、コマンドにて指定されたＫＩＤを有する定義情報を検索する。もし、存在しなければ、該当キーエリア無し異常を示す応答データを出力し、コマンド待ち状態に戻る。
【００６７】
なお、ここで識別番号とＩＤ指定部ＦＩＤ、および、実際にアクセスされるファイルの関係を図１０の例で説明する。たとえば、識別番号を“１”として指定し、ＩＤ指定部で“０３”を指定したとすると、識別番号“１”のＦＩＮＦには＃０６が記憶されており、データファイルＤＦ１が選択状態となっている。そして、ＩＤ指定部で“０３”が指定されたことにより、データファイルＤ１１がアクセスされることになる。
【００６８】
一方、識別番号を“０”とし、ＩＤ指定部で“０３”を指定すると、識別番号“０”のＦＩＮＦには＃１８が記憶され、データファイルＤＦ１−２が選択されている。そして、ＩＤ指定部で“０３”を指定すると、データファイルＤ１２１がアクセスされる。
【００６９】
このように、識別番号記憶部を複数設けることにより、複数のファイルを同時にカレント状態にすることができる。
上記定義情報の検索により、もし、見つかれば、この情報から、実際のキー情報が格納されている物理的位置を、ＫＴＯＰおよびＫＳＩＺより認識し、格納されているキー情報を抽出する。そして、このキー情報とコマンド電文中にあるキー情報とを比較する。もし、両者が一致していれば、当該定義情報内のＣＦを参照し、これにより指示されているビットと同位置の、対応するステータス情報  ＳＴＳ（ＳＴＳ００〜ＳＴＳ２２）内のビットを“１”にする。そして、正常終了を示す応答データを出力し、コマンド待ち状態に戻る。
【００７０】
上記キー情報の比較によって、不一致と判断した場合には、同様に対応するステータス情報ＳＴＳ内のビットを“０”にして、キー不一致異常を示す応答データを出力し、コマンド待ち状態に戻る。
【００７１】
次に、図２１により照合状態を参照する方法を説明する。先にも述べたように、各識別番号の各レベル個別に、照合状態を格納する領域を有しており、それぞれ１バイトにて構成されている。たとえば、ファイル識別番号２のカレントファイルは＃２６を通し番号に有するＤＦ２−１であるが、ファイル識別番号に対するレベル０の照合状態はＣに、レベル１の照合状態はＦに、そして、レベル２の照合状態はＩに、それぞれ格納される。
【００７２】
図２２に、図８にて示したファイルステータス格納エリアに対するデータ格納例を示す。図示するように、ファイル識別番号０に対応する各レベルには、ＭＦ（通し番号＃０１）、ＤＦ１（通し番号＃０６）、および、ＤＦ１−１（通し番号１３）のファイル確認情報が格納されている。これは、ファイル識別番号０に対応する最終カレントファイルが、ＤＦ１−１であることを示す。
【００７３】
特に、レベル１および２におけるＳＴＳｎｍには、Ｋ１１＊およびＫ１１１＊が格納されており、レベル０に関しては空白（初期状態）になっている。これは、ファイル識別番号０を使用したキー照合コマンドによって、まず、ＤＦ１が選択された後にＫ１１に格納されているキー情報が照合され、次に、ＤＦ１−１が選択された後にＫ１１１に格納されているキー情報が照合されたことを示している。
【００７４】
また、特に、アスタリスク（＊）が付加されているのは、ステータス情報    ＳＴＳのＭＳＢが“１”になっていることを示している。すなわち、ＤＦ１およびＤＦ１−１に対応するＴＹＰＥが、キー情報の照合状態を“共有しない”という属性を示していることを表している。また、識別番号０においては、特に、レベル０に対応するステータス情報ＳＴＳが空白になっている。これは、カレントファイルがＭＦの状態において、ファイル識別番号０を使用したキー照合コマンド処理が行なわれなかったことを示している。
【００７５】
また、ファイル識別番号１に対応する各レベルには、ＭＦ（通し番号＃０１）、および、ＤＦ２（通し番号＃０８）のファイル確認情報が格納されている。そして、レベル２に該当する箇所は、初期状態になっている。これは、ファイル識別番号１に対応する最終カレントファイルが、ＤＦ２であることを示す。
【００７６】
特に、レベル０におけるＳＴＳｎｍは、Ｋ００およびＫ０１が格納されている。これは、カレントファイルがＭＦの状態においてファイル識別番号１を使用したキー照合コマンドによって、ＭＦ配下のＫ００およびＫ０１内のキー情報が照合されていることを示している。さらに、レベル１におけるＳＴＳにはＫ２１が格納されている。これは、ファイル識別番号１を使用したファイル選択コマンドにおいてＤＦ２の選択を実行した後、やはりファイル識別番号１を使用したキー照合コマンドによって、ＤＦ２配下のＫ２１に格納されているキー情報を照合したことを示す。
【００７７】
なお、ファイル識別番号１に対応するレベル０および１におけるＳＴＳには、アスタリスク（＊）が付加されていない。これは、対応するステータス情報    ＳＴＳのＭＳＢが“０”であることを示している。すなわち、ＭＦおよびＤＦ２に対応するＴＹＰＥが、キー情報の照合状態を“共有する”という属性を示していることを表している。
【００７８】
また、ファイル識別番号２に対応する各レベルには、ＭＦ（通し番号＃０１）、ＤＦ２（通し番号＃０８）、および、ＤＦ２−１（通し番号＃２６）のファイル確認情報が格納されている。これは、ファイル識別番号２に対応する最終カレントファイルが、ＤＦ２−１であることを示す。
【００７９】
特に、レベル０およびレベル１におけるＳＴＳは空白になっている。これは、ＭＦおよびＤＦ２配下のキー情報が照合されていないことを示している。また、レベル２にはＫ２１２が格納されている。これは、ファイル識別番号２を使用したファイル選択コマンドにてＤＦ２−１の選択を実行した後、やはりファイル識別番号２を使用したキー照合コマンドによって、ＤＦ２−１配下のＫ２１２に格納されているキー情報を照合したことを示す。なお、このステータス情報ＳＴＳには、アスタリスク（＊）が付与されているのは、ＤＦ２−１のＴＹＰＥが、キー情報の照合状態を“共有しない”という属性を示していることを表している。
【００８０】
ここで、これらのステータス情報ＳＴＳの内容を、実際のコマンド受信により行なわれる、アクセス条件判定の際に参照する規則を以下に説明する。
規則（１）  コマンドにて指定された識別番号に対応するレベル０のＦＩＮＦが空白であった場合には、カレントファイル無しを意味する応答データを出力し、コマンド待ち状態に戻る。
【００８１】
規則（２）  指定された識別番号に対応するパスを参照し、これの一部を他の識別番号に対応するパスと共有していた場合、指定された識別番号に対応する全レベルのステータス情報ＳＴＳと、共有する部分に該当する他の識別番号内のステータス情報ＳＴＳのうち、アスタリスクが付いていないものとを論理和（ＯＲ）し、アクセス判定に使用する。
【００８２】
規則（３）  指定された識別番号に対応するパスを参照し、これの全てを含むパスを所有している他の識別番号に対応するパスが存在していた場合、他の識別番号内にあるアスタリスクが付いているステータス情報ＳＴＳを除き、指定された識別番号に対応する全レベルのステータス情報ＳＴＳと、当該他の識別番号に対応する全レベルのステータス情報ＳＴＳとを論理和し、アクセス判定に使用する。
【００８３】
たとえば、識別番号０を使用した場合、パスが＃０１／＃０６／＃１３となっている。このパスの一部を共有する最終的なキー情報の照合状態は、Ｋ００＆  Ｋ０１＆Ｋ１１＆Ｋ１１１となる。また、識別番号１を使用した場合においては、Ｋ００＆Ｋ０１＆Ｋ２１となり、また、識別番号２を使用した場合においては、Ｋ００＆Ｋ０１＆Ｋ２１＆Ｋ２１２となる。
【００８４】
なお、実施例では、キー情報の照合状態の共有の可否をデータファイルの属性（ＴＹＰＥ）として設定し、これを用いるようにしているが、たとえば、ＩＣカード全体として、この属性を設定してもよい。
【００８５】
また、前記実施例では、ファイルが選択されない限り、それに使用した識別番号に対応するレベル０のＦＩＮＦが設定されないようになっているが、ＩＣカードに対しての電気的活性化後、全ての識別番号に対応するレベル０のＦＩＮＦを＃０１、すなわち、ＭＦとしてもよい。
【００８６】
また、照合状態を抽出する規則（３）においては、
規則（３′）  指定された識別番号に対応するパスを参照し、これの全てを含むパスを所有している他の識別番号に対応するパスが存在していた場合、他の識別番号内にあるアスタリスクが付いているステータス情報ＳＴＳを除き、指定された識別番号に対応する全レベルのステータス情報ＳＴＳと、当該他の識別番号に対応するパスを共有している部分のみのステータス情報ＳＴＳとを論理和し、アクセス判定に使用する。
ようにしてもよい。
【００８７】
また、前記実施例では、ファイル管理を行なう装置としてＩＣカードを例示したが、筐体構成もカード状に限らず、棒状、ブロック状など、種々変更可能である。また、装置としても、携帯可能電子装置に限定されることなく、適用可能である。また、構成内容も、本発明の要旨を逸脱しない範囲で種々変更可能である。
【００８８】
また、前記実施例にて例示したＩＣカードは、外部装置とのデータ授受のためにコンタクト部を使用しているが、たとえば、光、電界、磁界などを用いて外部装置と接触せずに、これを行なう方法を用いてもよい。
【００８９】
【発明の効果】
以上詳述したように本発明によれば、アプリケーションにて、たとえば、ＩＣカード内の複数のファイルに対するアクセスが、アプリケーションによって効率よく行なわれるファイル管理方式を提供できる。
【００９０】
また、本発明によれば、選択されたファイルに対するアクセス条件を満足するための各種キー情報の照合状態も、各選択ファイルに対してのみ作用させることが可能になり、したがって、１枚のＩＣカードに対して複数のアプリケーションがアクセスする場合においても、個々の有するセキュリティ環境を維持できるファイル管理方式を提供できる。
【図面の簡単な説明】
【図１】本発明の一実施例に係るＩＣカードが適用されるカード取扱装置の構成例を示すブロック図。
【図２】ＩＣカードの構成例を示すブロック図。
【図３】データメモリの構成例を示すメモリマップ図。
【図４】各種定義情報のフォーマット例を示す図。
【図５】データＴＹＰＥのフォーマット例を示す図。
【図６】データメモリ内に設定されるファイルの構成例を示す図。
【図７】データメモリ内に設定されるディレクトリの構成例を示す図。
【図８】ファイルステータス格納エリアのフォーマット例を示す図。
【図９】ファイルステータス格納エリアのＤＦ２−１を選択した後の状態を示す図。
【図１０】ファイルステータス格納エリアの複数ＤＦを選択した後の状態を示す図。
【図１１】照合状態格納フォーマットの一例を示す図。
【図１２】キー情報の種別情報のフォーマット例を示す図。
【図１３】命令データ入力ルーチンを説明するフローチャート。
【図１４】ファイルまたはエリア創成コマンドのフォーマット例を示す図。
【図１５】ファイルおよびエリア創成動作を説明するフローチャート。
【図１６】ファイルおよびエリア創成動作を説明するフローチャート。
【図１７】データファイル選択動作を説明するフローチャート。
【図１８】データファイル選択コマンドのフォーマット例を示す図。
【図１９】キー情報照合動作を説明するフローチャート。
【図２０】キー照合コマンドのフォーマット例を示す図。
【図２１】ファイルステータス格納エリアの照合状態例を示す図。
【図２２】ファイルステータス格納エリアのデータ格納例を示す図。
【符号の説明】
１……ＩＣカード
２……カードリーダ・ライタ
３……制御部
４……キーボード
５……ＣＲＴディスプレイ装置
１１……制御素子
１２……データメモリ
１３……ワーキングメモリ
１４……プログラムメモリ
１５……コンタクト部
１２０……制御領域
１２１……ディレクトリ
１２３……エリア群
【図１】
0003594980.tif 000002
【図２】
0003594980.tif 000003
【図３】
0003594980.tif 000004
【図４】
0003594980.tif 000005
【図５】
0003594980.tif 000006
【図６】
0003594980.tif 000007
【図７】
0003594980.tif 000008
【図８】
0003594980.tif 000009
【図９】
0003594980.tif 000010
【図１０】
0003594980.tif 000011
【図１１】
0003594980.tif 000012
【図１２】
0003594980.tif 000013
【図１３】
0003594980.tif 000014
【図１４】
0003594980.tif 000015
【図１５】
0003594980.tif 000016
【図１６】
0003594980.tif 000017
【図１７】
0003594980.tif 000018
【図１８】
0003594980.tif 000019
【図１９】
0003594980.tif 000020
【図２０】
0003594980.tif 000021
【図２１】
0003594980.tif 000022
【図２２】
0003594980.tif 000023