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