(57)【要約】【課題】国際規格や業界標準と互換性のある命令を使用しながら、ＩＣカードの書き込み及び読み込みに必要な処理時間を短縮して高速化された処理を可能とするＩＣカードにおけるメモリ管理方法、及びＩＣカードの提供。【解決手段】複数同一の長さで配置されそれぞれレコード番号により識別可能なレコードを保持し、データファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂを格納保持するメモリと、前記データファイルｆ１，ｆ２，ｆ３ａ内の前記レコードと同一のレコード長を有する共有データファイルｆ３ｂ内の共有レコードを当該データファイルｆ１，ｆ２，ｆ３ａのデータとして参照するデータファイル参照手段と、前記ファイル識別子と前記レコード番号とから、前記データファイル参照手段により特定された前記データに対して読み出し、書き換え又は追記の実行命令を受信して当該実行命令に従い前記実行命令を行う実行命令処理手段と、を具備する特徴的構成手段の採用。【選択図】  図１
2004310573.tif 000002
【特許請求の範囲】
【請求項１】
複数バイトを書き換え単位とする不揮発性を有したメモリを内蔵するＩＣカードに適用されて、それぞれ識別可能なファイル識別子が付与されたデータファイルが保持しかつ、前記メモリに複数同一の長さで配置されそれぞれレコード番号により識別可能なレコードを参照する場合に、前記データファイルの保持する前記レコードから共有データファイルが備える共有レコードを参照するメモリ管理方法であって、
前記ＩＣカードにおいて、
前記ファイル識別子と、前記レコード番号と、を引数とした読み出し、書き換え又は追記の実行命令を受信し、
前記データファイルが保持する前記レコード番号により識別された１以上の前記レコードと、同一のレコード長を持つ前記共有データファイルの共有レコードを参照して、
参照された当該共有レコードに記録されたデータに対して、前記実行命令に対応した読み出し、書き換え又は追記の実行を可能に当該データファイルの管理を行う、
ことを特徴とするＩＣカードにおけるメモリ管理方法。
【請求項２】
前記共有データファイルの共有レコードの参照は、
前記データファイルにおいて、保持する前記レコード毎に、前記共有レコードを参照先として設定されたレコード共有状態を示すレコード識別子を随時更新可能に格納する参照管理情報を保持しておき、
当該レコード識別子から、当該レコードが当該共有レコードを参照先とするレコード共有状態に設定された場合に、
当該レコードのデータとして、該当する当該共有レコードを参照する、
ことを特徴とする請求項１に記載のＩＣカードにおけるメモリ管理方法。
【請求項３】
前記読み出し、書き換え又は追記の実行は、
前記参照管理情報中に、合わせて前記レコードの当該参照先として設定された前記共有データファイルの前記ファイル識別子と、当該参照先の前記共有レコードの前記レコード番号とを格納しておき、
前記共有レコード状態を示した前記レコードの当該参照管理情報が読み出されたときに、
当該ファイル識別子と、当該レコード番号から特定される当該共有データファイルの当該共有レコードに対して前記実行命令に対応した読み出し、書き換え又は追記を実行する、
ことを特徴とする請求項２に記載のＩＣカードにおけるメモリ管理方法。
【請求項４】
前記読み出し、書き換え又は追記の実行は、
前記参照管理情報中に、合わせて前記レコードへアクセス権を管理するアクセス権情報を保持しておき、
前記共有レコード状態を示した前記レコードへの当該参照管理情報が読み出されたときに、
先に受信した前記実行命令に対して、前記アクセス権情報を基に、当該レコードへのアクセス権を確認して、
当該アクセス権を満たす場合にのみ、当該レコードに対する当該実行命令に対応した読み出し、書き換え又は追記を実行する、
ことを特徴とする請求項２又は３に記載のＩＣカードにおけるメモリ管理方法。
【請求項５】
前記レコードの参照は、
予め、前記複数のデータファイルを、前記ＩＣカード内において唯一のディレクトリ識別子が付与されたディレクトリに属するツリー構造として格納しておくとともに、前記実行命令の対象として選択指定された当該データファイルの属する当該ディレクトリの当該ディレクトリ識別子を、チャネル番号により識別可能なチャネル管理情報として随時更新可能に保持しておき、
前記チャネル番号と前記ファイル識別子と前記レコード番号を受信したときに、当該チャネル番号により特定される当該チャネル管理情報から、前記ディレクトリ識別子を読み出し、
当該ディレクトリ識別子から特定される前記ディレクトリに属する前記データファイルを、前記ファイル識別子から特定し、
当該データファイルから、前記レコード番号により特定される前記レコードを参照する、
ことを特徴とする請求項１、２、３又は４に記載のＩＣカードにおけるメモリ管理方法。
【請求項６】
前記読み出し、書き換え又は追記の実行は、
前記チャネル管理情報中に、合わせて受信した前記実行命令の実行可否を管理するセキュリティステータス情報を当該チャネル管理情報が更新されるまで保持可能に格納しておき、
当該チャネル管理情報が読み出されたときに、
前記実行命令の対象となる前記レコードの前記アクセス権情報と前記セキュリティステータス情報とから、当該レコードへのアクセス権を確認して、
当該アクセス権を満たす場合にのみ、前記実行命令を実行する、
ことを特徴とする請求項５に記載のＩＣカードにおけるメモリ管理方法。
【請求項７】
前記データファイルの管理は、
ブロック群番号で識別可能な２以上のブロック群からなる当該データファイルに、当該ブロック群番号を新規に更新された当該ブロック群から順次昇順に付番して、
最新の前記ブロック群番号と当該ブロック群番号により特定されるブロック群数とブロック群長とを前記データファイル毎のデータファイル管理情報として保持して、
前記実行命令を受信したときには、
当該実行命令対象となる前記データファイルの前記データファイル管理情報を読み出して、
当該実行命令が前記読み出し命令であったときには、
（最新のブロック群番号−１）×ブロック群長
により求められる最新のブロック群の格納位置を算出し、
当該格納位置に記録された前記最新のブロック群の読み出しを実行する一方、
当該実行命令が前記書き換え命令であったときには、
｛（最新のブロック群番号＋ブロック群数−２）ｍｏｄ  ブロック群数｝×ブロック群長
により求められる最旧のブロック群の格納位置を算出し、
当該格納位置に記録された当該最旧のブロック群の書き換えを実行するとともに、
前記データファイル管理情報の前記最新ブロック群番号を、
｛（最新のブロック群番号＋ブロック群数−２）ｍｏｄ  ブロック群数｝＋１
により算出された値に更新する、
ことを特徴とする請求項１、２、３、４、５又は６に記載のＩＣカードにおけるメモリ管理方法。
【請求項８】
前記データファイルの管理は、
世代番号を有する前記データファイル管理情報を前記データファイル毎に二つ保持して、
同一の前記データファイルに基づく当該二つのデータファイル管理情報がそれぞれ有する世代番号の初期値として異なる値を設定しておき、
一方、当該データファイル管理情報を読み出すときには、
前記世代番号が大きい当該データファイル管理情報を読み出して、
他方、当該データファイル管理情報を更新するときには、
前記世代番号が小さい当該データファイル管理情報を当該更新の対象として検出して、
前記世代番号が大きい前記データファイル管理情報の有する当該世代番号より大きい値を更新後の当該世代番号として設定する、
ことを特徴とする請求項７に記載のＩＣカードにおけるメモリ管理方法。
【請求項９】
前記データファイルの管理は、
当該データファイルについて、当該データファイルの作成のときに固定的に先頭の前記レコードから昇順に付番された順編成レコード構造を持つ一般データファイルと、新規に更新された前記レコード番号から昇順に付番され前記レコード長がファイル毎に一定である循環レコード構造を持つ循環データファイルと、で当該データファイルを分別管理して、
一つの当該循環データファイル及び所要の前記一般データファイルの前記参照先として設定された前記共有レコードを保持する前記共有データファイルを参照するにあたり、
当該共有データファイルは、当該一般データファイルのレコード共有状態に設定された複数レコードと、前記循環データファイルのレコード共有状態に設定された一つのレコードと、を特定の順番で並べた前記共有レコードを有する前記ブロック群を当該循環データファイルの前記総レコード数分保持しておき、
前記チャネル番号と追記データと前記レコード番号と前記共有データファイルの前記ファイル識別子とともに前記追記の実行命令を受信したときには、
当該レコード番号に基づく前記データファイルが前記一般データファイルの場合には、前記最新のブロック群の格納位置を算出して、
当該格納位置の前記ブロック群に対して前記追記レコードを用いた追記を実行し、
一方、前記チャネル番号に基づく前記データファイルが前記循環データファイルの場合には、前記最旧のブロック群の格納位置を算出して、
当該格納位置の前記ブロック群に対して前記追記データによる追記を実行するとともに、前記ブロック群番号の更新処理を行う、
ことを特徴とする請求項７及び８に記載のＩＣカードにおけるメモリ管理方法。
【請求項１０】
前記データファイルの管理は、
前記読み出しの実行命令による当該読み込みが失敗したときには、前記最旧のブロック群の読み出しを実行して、
前記実行命令により前記データ領域が更新される際には、予め、前記最旧のブロック群を読み取り、
｛（最新のブロック群番号＋ブロック群数−２）ｍｏｄ  ブロック群数｝×ブロック群長＋１
により求められる格納位置で特定される領域に当該読み取ったブロック群の複製を行う、
ことを特徴とする請求項９に記載のＩＣカードにおけるメモリの管理方法。
【請求項１１】
複数バイトを書き換え単位とする不揮発性を有したメモリを内蔵するＩＣカードであって、
複数同一の長さで配置されそれぞれレコード番号により識別可能なレコードからなり、それぞれ識別可能なファイル識別子が付与されたデータファイルを格納保持する前記メモリと、
当該データファイル内の前記レコードと同一のレコード長を有する共有データファイル内の共有レコードを当該データファイルのデータとして参照するデータファイル参照手段と、
前記ファイル識別子と前記レコード番号とから、当該データファイル参照手段により特定された前記データに対して読み出し、書き換え又は追記の実行命令を受信して、当該実行命令に従い対応する読み出し、書き換え又は追記の当該実行命令を行う実行命令処理手段と、を具備する、
ことを特徴とするＩＣカード
【請求項１２】
前記データファイルは、
保持する前記レコード毎に、前記データファイル参照手段により前記共有レコードを参照先として設定されたレコード共有状態を示すとともに、随時更新可能なレコード識別子を格納する参照管理情報を具備する、
ことを特徴とする請求項１１に記載のＩＣカード。
【請求項１３】
前記参照管理情報は、
前記参照先の前記共有データファイルの前記ファイル識別子と、当該参照先の前記共有レコードのレコード番号とを含む、
ことを特徴とする請求項１２に記載のＩＣカード。
【請求項１４】
前記参照管理情報は、
前記レコードに対するアクセスの許否を確認可能に格納されたアクセス権情報を含む、
ことを特徴とする請求項１２又は１３に記載のＩＣカード。
【請求項１５】
前記メモリは、
前記データファイルを、前記ＩＣカード内において唯一のディレクトリ識別子が付与されたディレクトリに属するツリー構造として保持管理して、
前記ディレクトリ識別子と識別可能に付与されたチャネル番号とを、新規に同一の当該チャネル番号とともに他の前記ディレクトリ識別子を受信して更新されるまで継続保持して、前記データファイルが属する前記ディレクトリの選択状況を示すチャネル管理情報を保有する、
メモリ管理手段を具備する、
ことを特徴とする請求項１１、１２、１３又は１４に記載のＩＣカード。
【請求項１６】
前記チャネル管理情報は、
前記実行命令の実行可否を管理するセキュリティステータス情報を当該チャネル管理情報が更新されるまで継続保持する、
ことを特徴とする請求項１５に記載のＩＣカード。
【請求項１７】
前記実行命令処理手段は、
前記メモリ管理手段に、ブロック群番号で識別可能な２以上のブロック群からなる前記データファイルの、新規に更新された当該ブロック群から順次昇順に付番される最新の当該ブロック群番号と、当該ブロック番号により特定されるブロック群数とブロック群長とを前記データファイル毎に保持するデータファイル管理情報を保有するとともに、
前記実行命令を受信したときに、当該実行命令対象となる前記データファイルの前記データファイル管理情報を用いて、
（最新のブロック群番号−１）×ブロック群長
により最新のブロック群の格納位置を算出する処理手段と、
｛（最新のブロック群番号＋ブロック群数−２）ｍｏｄ  ブロック群数｝×ブロック群長
により最旧のブロック群の格納位置を算出する処理手段と、
前記データファイルのデータ領域に更新があった場合に、
｛（最新のブロック群番号＋ブロック群数−２）ｍｏｄ  ブロック群数｝＋１
により算出された値に当該最新のブロック群番号を更新する処理手段と、を具備する、
ことを特徴とする請求項１１、１２、１３、１４、１５又は１６に記載のＩＣカード。
【請求項１８】
前記データファイル管理情報は、
世代番号を有して前記データファイル毎に二つ保持され、
同一の前記データファイルに基づく当該二つのファイル管理情報がそれぞれ有する世代番号の初期値として異なる値が設定されて、
当該世代番号が小さい当該データファイル管理情報に対して、他方の当該データファイル管理情報の有する前記世代番号より大きい値を新規の前記世代番号として設定されて順次更新される、
ことを特徴とする請求項１７に記載のＩＣカード。
【請求項１９】
前記メモリ管理手段は、
前記データファイルとして、
データファイル作成時に固定的に先頭の前記レコードから昇順に付番された順編成レコード構成を持つ一般データファイルと、
新規に更新された前記レコード番号から昇順に付番され前記レコード長がデータファイル毎に一定である循環レコード構造を持つ循環データファイルと、
所要の前記一般データファイルの前記参照先として設定されて、当該一般データファイルのレコード共有状態に設定された複数レコードと、前記循環データファイルのレコード共有状態に設定された一つのレコードと、からなる前記共有レコードを有する前記ブロック群を当該循環データファイルの前記総レコード数分保持する、共有データファイルと、を保持して、
当該共有データファイルの前記データファイル管理情報として、前記循環データファイルの前記レコード番号付与順番と等しく新規に書き込まれた前記ブロック群から昇順に付与された最新の前記ブロック群番号と、当該ブロック群数と、当該ブロック長と、前記ファイル参照手段による参照先として対応する前記循環レコード番号とを具備する、
ことを特徴とする請求項１７又は１８に記載のＩＣカード。
【請求項２０】
前記メモリ管理手段は、
前記ブロック群数を、前記循環データファイルのレコード数＋１として保持し、
前記実行命令処理手段により前記ブロック群が更新される際には、前記最旧のブロック群の格納位置を算出する処理手段により当該更新前に読み取られた当該ブロック群を、
｛（最新のブロック群番号＋ブロック群数−２）ｍｏｄ  ブロック群数｝×ブロック群長＋１
により算出される格納位置に当該ブロック群を複製するよう機能構築される、
ことを特徴とする請求項１９に記載のＩＣカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＣカードにおけるメモリ管理方法、及びＩＣカードに関し（ＩＣ：Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、詳しくは、不揮発性メモリを内蔵するＩＣカードにおいてＩＳＯ規格（ＩＳＯ：Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ）のファイル構造及びコマンドを保ちつつ、複数ファイルにより共有されたデータ領域に書き込みを行うためのＩＣカードにおけるメモリ管理方法、及びその実施に直接使用するＩＣカードに係わる。
【０００２】
【従来の技術】
ＩＣカードは、主にＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ  ）やフラッシュメモリなどの不揮発性メモリが搭載され、この不揮発性メモリの書き換え単位（以下、ブロックという）は数十バイト以上であり、その書き換えに要する処理時間は数十ミリ秒程度である。
【０００３】
また、ＩＣカードは、複数のファイルを保持可能なファイル構造が国際規格であるＩＳＯ／ＩＥＣ  ７８１６−４  （ＩＳＯ：Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ／ＩＥＣ：Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ  ）で規定されており、従来、このデータファイルに含まれるデータや管理するための情報は、前記ブロックの境界とは関係なく配置されていた。
【０００４】
【非特許文献】
ＩＳＯ／ＩＥＣ  ７８１６−４：１９９５，  “Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｃａｒｄｓ  −  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ（ｓ）  ｃａｒｄｓ  ｗｉｔｈ  ｃｏｎｔａｃｔｓ  −  Ｐａｒｔ  ４：  Ｉｎｔｅｒｉｎｄｕｓｔｒｙ  ｃｏｍｍａｎｄｓ  ｆｏｒ  ｉｎｔｅｒｃｈａｎｇｅ”
【０００５】
さらに、ＩＣカードは搭載可能なメモリの制限や、互換性の観点から、同国際規格で規定されている命令は、多くの場合、少数のファイル、あるいは、少数の管理情報のみを対象に処理を行っていた。
【０００６】
このような性質を持つＩＣカードを用いたアプリケーションでは、データの性質やセキュリティの観点から、保持すべきデータを複数のファイルに分けてＩＣカードに保持させ、ＩＣカードを利用する際には、複数の命令を実行することで、複数のファイルの読み出し、書き出し又は追記や照合を行って、アプリケーションに必要なデータの読み出し、書き換え又は追記や、認証・照合処理を可能としていた。
【０００７】
ＩＣカードの利用の形態として、交通機関の切符や、コンサートなどのチケット、コンビニエンスストアなどで買い物の決済に使用されることが多くなっている。その際、ＩＣカード利用者を待たせないためには、できる限り短時間でＩＣカードのメモリの読み書きの処理を行って迅速にこの処理を終了することが望まれる。
【０００８】
そこで、従来、データを書き込んだ部分を極力書き換えないようにしたり、複数のブロックに分散しないようなファイル管理方法を用いたり、複数のファイルの書き換えをまとめて行う特殊な命令を用いたり、素子の特性を調整することによりデータの消去時間を短縮するなどして、処理時間を短くする方法があった。
【０００９】
【発明が解決しようとする課題】
しかしながら、従来のＩＣカードにおいてメモリの読み書きの処理を行うには、複数の命令を実行し、複数ファイルの操作が必要であるために、分散配置されたブロックを複数書き換えることとなり、長い処理時間が必要であった。
【００１０】
また、特に非接触ＩＣカードにおいては、書き込み途中に電力供給を絶たれる場合が想定され、このようなときに、安全にＩＣカード内のデータを書き込み前の状態に復帰させる処理（以下、書き込み保証という）が必要であるが、この書き込み保証の機能を実現するためには、データの二重化等、さらに多くの書き換え処理が必要となり、処理時間増加の要因の一つとなっていた。
【００１１】
さらに、命令やファイル構造の特殊化は、従来のＩＣカードや他のＩＣカードとの互換性がなくなり、また、特別なハードウェアを必要とするものであるために、システムの導入や維持に必要なコストが高額になるという欠点があった。
【００１２】
ここにおいて、本発明が解決すべき主要な目的は、次のとおりである。
【００１３】
即ち、本発明の第１の目的は、国際規格や業界標準と互換性のある命令を使用しながらも、ＩＣカードの書き込み及び読み込みに必要な処理時間を短縮して高速化された処理を可能とするＩＣカードにおけるメモリ管理方法、及びＩＣカードを提供せんとするものである。
【００１４】
本発明の第２の目的は、非接触ＩＣカードにおいて、処理時間の増加を最小限に抑えたまま、ファイルの書き込み保証を実現したＩＣカードにおけるメモリ管理方法、及びＩＣカードを提供せんとするものである。
【００１５】
本発明の第３の目的は、既に利用者に配布された従来のＩＣカードにおいて、ＩＣカード上の不揮発性メモリにプログラムを追加するだけで、ＩＣカードの処理時間を高速化することが可能なＩＣカードにおけるメモリ管理方法及びＩＣカードを提供せんとするものである。
【００１６】
本発明の他の目的は、明細書、図面、特に特許請求の範囲の各請求項の記載から、自ずと明らかとなろう。
【００１７】
【課題を解決するための手段】
まず、本発明方法においては、課題の解決にあたり、ファイル識別子と、レコード番号と、を引数とした読み出し、書き換え又は追記の実行命令を受信し、データファイルが保持する当該レコード番号により識別された１以上のレコードと、同一のレコード長を持つ共有データファイルの共有レコードを参照して、参照された当該レコードに記録されたデータに対して、当該実行命令に対応した読み出し、書き換え又は追記の実行可能に当該データファイルの管理を行う、という特徴的構成手法を講じる。
【００１８】
一方、本発明装置においては、課題の解決にあたり、複数同一の長さで配置されそれぞれレコード番号により識別可能なレコードを有して、それぞれ識別可能なファイル識別子が付与されたデータファイルを格納保持するメモリと、当該データファイル内の前記レコードと同一のレコード長を有する前記他のデータファイルである共有データファイル内の前記共有レコードを当該データファイルの実データとして参照するファイル参照手段と、前記ファイル識別子と前記レコード番号とから特定されるデータ領域に対して読み出し、書き換え又は追記の実行命令を受信して、当該実行命令に従い対応する読み出し、書き換え又は追記の前記実行命令を行う実行命令処理手段と、を具備させる、という特徴的構成手段を講じる。
【００１９】
さらに、具体的詳細に述べると、当該課題の解決では、本発明が次に列挙する上位概念から下位概念に亙る新規な特徴的構成手法及び手段を採用することにより、前記目的を達成するよう為される。
【００２０】
即ち、本発明方法の第１の特徴は、複数バイトを書き換え単位とする不揮発性を有したメモリを内蔵するＩＣカードに適用されて、それぞれ識別可能なファイル識別子が付与されたデータファイルが保持しかつ、前記メモリに複数同一の長さで配置されそれぞれレコード番号により識別可能なレコードを参照する場合に、前記データファイルの保持する前記レコードから共有データファイルが備える共有レコードを参照するメモリ管理方法であって、前記ＩＣカードにおいて、前記ファイル識別子と、前記レコード番号と、を引数とした読み出し、書き換え又は追記の実行命令を受信し、前記データファイルが保持する前記レコード番号により識別された１以上の前記レコードと、同一のレコード長を持つ前記共有データファイルの共有レコードを参照して、参照された当該共有レコードに記録されたデータに対して、前記実行命令に対応した読み出し、書き換え又は追記の実行を可能に当該データファイルの管理を行ってなる、ＩＣカードにおけるメモリ管理方法の構成採用にある。
【００２１】
本発明方法の第２の特徴は、上記本発明方法の第１の特徴における前記共有データファイルの共有レコードの参照を、前記データファイルにおいて、保持する前記レコード毎に、前記共有レコードを参照先として設定されたレコード共有状態を示すレコード識別子を随時更新可能に格納する参照管理情報を保持しておき、当該レコード識別子から、当該レコードが当該共有レコードを参照先とするレコード共有状態に設定された場合に、当該レコードのデータとして、該当する当該共有レコードを参照してなる、ＩＣカードにおけるメモリ管理方法の構成採用にある。
【００２２】
本発明方法の第３の特徴は、上記本発明方法の第２の特徴における前記読み出し、書き換え又は追記の実行を、前記参照管理情報中に、合わせて前記レコードの当該参照先として設定された前記共有データファイルの前記ファイル識別子と、当該参照先の前記共有レコードの前記レコード番号とを格納しておき、前記共有レコード状態を示した前記レコードの当該参照管理情報が読み出されたときに、当該ファイル識別子と、当該レコード番号から特定される当該共有データファイルの当該共有レコードに対して前記実行命令に対応した読み出し、書き換え又は追記を実行してなる、ＩＣカードにおけるメモリ管理方法の構成採用にある。
【００２３】
本発明方法の第４の特徴は、上記本発明方法の第２又は第３の特徴における前記読み出し、書き換え又は追記の実行を、前記参照管理情報中に、合わせて前記レコードへのアクセス権を管理するアクセス権情報を保持しておき、前記共有レコード状態を示した前記レコードの当該参照管理情報が読み出されたときに、先に受信した前記実行命令に対して、前記アクセス権情報を基に、当該レコードへのアクセス権を確認して、当該アクセス権を満たす場合にのみ、当該レコードに対する当該実行命令に対応した読み出し、書き換え又は追記を実行してなる、ＩＣカードにおけるメモリ管理方法の構成採用にある。
【００２４】
本発明方法の第５の特徴は、上記本発明方法の第１、第２、第３又は第４の特徴における前記レコードの参照を、予め、前記複数のデータファイルを、前記ＩＣカード内において唯一のディレクトリ識別子が付与されたディレクトリに属するツリー構造として格納しておくとともに、前記実行命令の対象として選択指定された当該データファイルの属する当該ディレクトリの当該ディレクトリ識別子を、チャネル番号により識別可能なチャネル管理情報として随時更新可能に保持しておき、前記チャネル番号と前記ファイル識別子と前記レコード番号を受信したときに、当該チャネル番号により特定される当該チャネル管理情報から、前記ディレクトリ識別子を読み出し、当該ディレクトリ識別子から特定される前記ディレクトリに属する前記データファイルを、前記ファイル識別子から特定し、当該データファイルから、前記レコード番号により特定される前記レコードを参照してなる、ＩＣカードにおけるメモリ管理方法の構成採用にある。
【００２５】
本発明方法の第６の特徴は、上記本発明方法の第５の特徴における前記読み出し、書き換え又は追記の実行を、前記チャネル管理情報中に、合わせて受信した前記実行命令の実行可否を管理するセキュリティステータス情報を当該チャネル管理情報が更新されるまで保持可能に格納しておき、当該チャネル管理情報が読み出されたときに、前記実行命令の対象となる前記レコードの前記アクセス権情報と前記セキュリティステータス情報とから、当該レコードへのアクセス権を確認して、当該アクセス権を満たす場合にのみ、前記実行命令を実行してなる、ＩＣカードにおけるメモリ管理方法の構成作用にある。
【００２６】
本発明方法の第７の特徴は、上記本発明方法の第１、第２、第３、第４、第５又は第６の特徴における前記データファイルの管理を、ブロック群番号で識別可能な２以上のブロック群からなる当該データファイルに、当該ブロック群番号を新規に更新された当該ブロック群から順次昇順に付番して、最新の前記ブロック群番号と当該ブロック群番号により特定されるブロック群数とブロック群長とを前記データファイル毎のデータファイル管理情報として保持して、前記実行命令を受信したときには、当該実行命令対象となる前記データファイルの前記データファイル管理情報を読み出して、当該実行命令が前記読み出し命令であったときには、
（最新のブロック群番号−１）×ブロック群長
により求められる最新のブロック群の格納位置を算出し、当該格納位置に記録された前記最新のブロック群の読み出しを実行する一方、当該実行命令が前記書き換え命令であったときには、
｛（最新のブロック群番号＋ブロック群数−２）ｍｏｄ  ブロック群数｝×ブロック群長
により求められる最旧のブロック群の格納位置を算出し、当該格納位置に記録された当該最旧のブロック群の書き換えを実行するとともに、前記データファイル管理情報の前記最新ブロック群番号を、
｛（最新のブロック群番号＋ブロック群数−２）ｍｏｄ  ブロック群数｝＋１
により算出された値に更新してなる、ＩＣカードにおけるメモリ管理方法の構成採用にある。
【００２７】
本発明方法の第８の特徴は、上記本発明方法の第７の特徴における前記データファイルの管理を、世代番号を有する前記データファイル管理情報を前記データファイル毎に二つ保持して、同一の前記データファイルに基づく当該二つのデータファイル管理情報がそれぞれ有する世代番号の初期値として異なる値を設定しておき、一方、当該データファイル管理情報を読み出すときには、前記世代番号が大きい当該データファイル管理情報を読み出して、他方、当該データファイル管理情報を更新するときには、前記世代番号が小さい当該データファイル管理情報を当該更新の対象として検出して、前記世代番号が大きい前記データファイル管理情報の有する当該世代番号より大きい値を更新後の当該世代番号として設定してなる、ＩＣカードにおけるメモリ管理方法の構成採用にある。
【００２８】
本発明方法の第９の特徴は、上記本発明方法の第７又は第８の特徴における前記データファイルの管理を、当該データファイルについて、当該データファイルの作成のときに固定的に先頭の前記レコードから昇順に付番された順編成レコード構造を持つ一般データファイルと、新規に更新された前記レコード番号から昇順に付番され前記レコード長がファイル毎に一定である循環レコード構造を持つ循環データファイルと、で当該データファイルを分別管理して、一つの当該循環データファイル及び所要の前記一般データファイルの前記参照先として設定された前記共有レコードを保持する前記共有データファイルを参照するにあたり、当該共有データファイルは、当該一般データファイルのレコード共有状態に設定された複数レコードと、前記循環データファイルのレコード共有状態に設定された一つのレコードと、を特定の順番で並べた前記共有レコードを有する前記ブロック群を当該循環データファイルの前記総レコード数分保持しておき、前記チャネル番号と追記データと前記レコード番号と前記共有データファイルの前記ファイル識別子とともに前記追記の実行命令を受信したときには、当該レコード番号に基づく前記データファイルが前記一般データファイルの場合には、前記最新のブロック群の格納位置を算出して、当該格納位置の前記ブロック群に対して前記追記レコードを用いた追記を実行し、一方、前記チャネル番号に基づく前記データファイルが前記循環データファイルの場合には、前記最旧のブロック群の格納位置を算出して、当該格納位置の前記ブロック群に対して前記追記データによる追記を実行するとともに、前記ブロック群番号の更新処理を行ってなる、ＩＣカードにおけるメモリ管理方法の構成採用にある。
【００２９】
本発明方法の第１０の特徴は、上記本発明方法の第９の特徴における前記データファイルの管理を、前記読み出しの実行命令による当該読み込みが失敗したときには、前記最旧のブロック群の読み出しを実行して、前記実行命令により前記データ領域が更新される際には、予め、前記最旧のブロック群を読み取り、
｛（最新のブロック群番号＋ブロック群数−２）ｍｏｄ  ブロック群数｝×ブロック群長＋１
により求められる格納位置で特定される領域に当該読み取ったブロック群の複製を行ってなる、ＩＣカードにおけるメモリ管理方法の構成採用にある。
【００３０】
一方、本発明装置の第１の特徴は、複数バイトを書き換え単位とする不揮発性を有したメモリを内蔵するＩＣカードであって、複数同一の長さで配置されそれぞれレコード番号により識別可能なレコードからなり、それぞれ識別可能なファイル識別子が付与されたデータファイルを格納保持する前記メモリと、当該データファイル内の前記レコードと同一のレコード長を有する共有データファイル内の共有レコードを当該データファイルのデータとして参照するデータファイル参照手段と、前記ファイル識別子と前記レコード番号とから、当該データファイル参照手段により特定された前記データに対して読み出し、書き換え又は追記の実行命令を受信して、当該実行命令に従い対応する読み出し、書き換え又は追記の当該実行命令を行う実行命令処理手段と、を具備してなる、ＩＣカードの構成採用にある。
【００３１】
本発明装置の第２の特徴は、上記本発明装置の第１の特徴における前記データファイルが、保持する前記レコード毎に、前記データファイル参照手段により前記共有レコードを参照先として設定されたレコード共有状態を示すとともに、随時更新可能なレコード識別子を格納する参照管理情報を具備してなる、ＩＣカードの構成採用にある。
【００３２】
本発明装置の第３の特徴は、上記本発明装置の第２の特徴における前記参照管理情報が、前記参照先の前記共有データファイルの前記ファイル識別子と、当該参照先の前記共有レコードのレコード番号とを含んでなる、ＩＣカードの構成採用にある。
【００３３】
本発明装置の第４の特徴は、上記本発明装置の第２又は第３の特徴における前記参照管理情報が、前記レコードに対するアクセスの許否を確認可能に格納されたアクセス権情報を含んでなる、ＩＣカードの構成採用にある。
【００３４】
本発明装置の第５の特徴は、上記本発明装置の第１、第２、第３又は第４の特徴における前記メモリが、前記データファイルを、前記ＩＣカード内において唯一のディレクトリ識別子が付与されたディレクトリに属するツリー構造として保持管理して、前記ディレクトリ識別子と識別可能に付与されたチャネル番号とを、新規に同一の当該チャネル番号とともに他の前記ディレクトリ識別子を受信して更新されるまで継続保持して、前記データファイルが属する前記ディレクトリの選択状況を示すチャネル管理情報を保有する、メモリ管理手段を具備してなる、ＩＣカードの構成採用にある。
【００３５】
本発明装置の第６の特徴は、上記本発明装置の第５の特徴における前記チャネル管理情報が、前記実行命令の実行可否を管理するセキュリティステータス情報を当該チャネル管理情報が更新されるまで継続保持してなる、ＩＣカードの構成採用にある。
【００３６】
本発明装置の第７の特徴は、上記本発明装置の第１、第２、第３、第４、第５又は第６の特徴における前記実行命令処理手段が、前記メモリ管理手段に、ブロック群番号で識別可能な２以上のブロック群からなる前記データファイルの、新規に更新された当該ブロック群から順次昇順に付番される最新の当該ブロック群番号と、当該ブロック番号により特定されるブロック群数とブロック群長とを前記ファイル毎に保持するデータファイル管理情報を保有するとともに、前記実行命令を受信したときに、当該実行命令対象となる前記データファイルの前記データファイル管理情報を用いて、
（最新のブロック群番号−１）×ブロック群長
により最新のブロック群の格納位置を算出する処理手段と、
｛（最新のブロック群番号＋ブロック群数−２）ｍｏｄ  ブロック群数｝×ブロック群長
により最旧のブロック群の格納位置を算出する処理手段と、前記ファイルのデータ領域に更新があった場合に、
｛（最新のブロック群番号＋ブロック群数−２）ｍｏｄ  ブロック群数｝＋１
により算出された値に当該最新のブロック群番号を更新する処理手段と、を具備してなる、ＩＣカードの構成採用にある。
【００３７】
本発明装置の第８の特徴は、上記本発明装置の第７の特徴における前記データファイル管理情報が、世代番号を有して前記データファイル毎に二つ保持され、同一の前記データファイルに基づく当該二つのファイル管理情報がそれぞれ有する世代番号の初期値として異なる値が設定されて、当該世代番号が小さい当該データファイル管理情報に対して、他方の当該データファイル管理情報の有する前記世代番号より大きい値を新規の前記世代番号として設定されて順次更新されてなる、ＩＣカードの構成採用にある。
【００３８】
本発明装置の第９の特徴は、上記本発明装置の第７又は第８の特徴における前記メモリ管理手段が、前記データファイルとして、データファイル作成時に固定的に先頭の前記レコードから昇順に付番された順編成レコード構成を持つ一般データファイルと、新規に更新された前記レコード番号から昇順に付番され前記レコード長がデータファイル毎に一定である循環レコード構造を持つ循環データファイルと、所要の前記一般データファイルの前記参照先として設定されて、当該一般データファイルのレコード共有状態に設定された複数レコードと、前記循環データファイルのレコード共有状態に設定された一つのレコードと、からなる前記共有レコードを有する前記ブロック群を当該循環データファイルの前記総レコード数分保持する、共有データファイルと、を保持して、当該共有データファイルの前記データファイル管理情報として、前記循環データファイルの前記レコード番号付与順番と等しく新規に書き込まれた前記ブロック群から昇順に付与された最新の前記ブロック群番号と、当該ブロック群数と、当該ブロック長と、前記データファイル参照手段による参照先として対応する前記循環レコード番号とを具備してなる、ＩＣカードの構成採用にある。
【００３９】
本発明装置の第１０の特徴は、上記本発明装置の第９の特徴における前記メモリ管理手段が、前記ブロック群数を、前記循環データファイルのレコード数＋１として保持し、前記実行命令処理手段により前記ブロック群が更新される際には、前記最旧のブロック群の格納位置を算出する処理手段により当該更新前に読み取られた当該ブロック群を、
｛（最新のブロック群番号＋ブロック群数−２）ｍｏｄ  ブロック群数｝×ブロック群長＋１
により算出される格納位置に当該ブロック群を複製するよう機能構築されてなる、ＩＣカードの構成採用にある。
【００４０】
【発明の実施の形態】
以下、本発明の実施の形態につき、添付図面を参照しつつ、装置例を説明し、次いで、同装置例に基づき具現化される方法例を順に挙げて説明する。
【００４１】
（装置例）
まず、図１は、本発明の装置例に係るＩＣカードの機能構成図及び、それを動作させるためのリーダライタと情報処理端末の機能構成図である。
【００４２】
同図に示すように本装置例に係るＩＣカードαは、その内部に当該ＩＣカードαの機能構成を得るためのＩＣチップ１と、同ＩＣカードαが非接触型として機能する場合に、外部のリーダライタβとの間で無線による通信を行うためのアンテナ２とを具備する。また、リーダライタβは情報通信端末γに接続され、ＩＣカードαとの各種データの入出力可能に構成される。
【００４３】
ここで、リーダライタβは、ＩＣカードαや情報処理端末γと通信を行う機能と、実際にＩＣカードαと無線で通信するためにデータを送受する機能を具備する。
【００４４】
また、情報処理端末γにおいては、パーソナルコンピュータやワークステーションなどで構成され、ＩＣカードα及びリーダライタβの機能を得るための各種プログラムの実行、それらプログラムの実行に伴って各種データの入出力、またそれらプログラムや書き換え不要なデータ並びにプログラムの実行に伴って
生成されるデータの記憶、及び、外部入力手段、外部出力手段のそれぞれ機能を具備して構成される。
【００４５】
さらに、ＩＣカードαのＩＣチップ１は、ＩＣカードαの機能を実現するため、各種通信処理、後述するメモリ内のデータファイル参照手段として、また、データファイルの読み出し、書き換え又は追記の実行命令を受信してこの実行命令に則した入出力を行う実行命令処理手段としてＣＰＵ１１（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ）を備える。
【００４６】
さらに、ＩＣチップ１には、データファイルを格納保持するメモリとして、上記プログラムや書き換え不要なデータを保持するためのＲＯＭ１２（ＲＯＭ：Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と、プログラムの実行に伴って生成されるデータを一時的に記憶するＲＡＭ１３（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、プログラムの実行に伴って生成されるデータを追記可能に記憶するＥＥＰＲＯＭ１４（ＥＥＰＲＯＭ：Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ  ）とを搭載して、加えて、リーダライタβから電波信号を使って通信するためのＲＦ部１５から構成される。
【００４７】
本装置例で示すＥＥＰＲＯＭ１４は、例えば６４バイトの書き換え単位（以下ブロックと言う）を持ち、１バイトだけを書き換えるときにも、６４バイト全てを書き換える必要があるものとする。
【００４８】
なお、本装置例において採用するＩＣカードαは、非接触方式によりリーダライタβと通信を行うものとして示したが、ＩＣカードαとリーダライタβとの接続形態を電気的な接続として有線（オンライン）の方式をとる接触方式により通信を行うものとしても構わない。
【００４９】
次に、図２は、本装置例に係るＥＥＰＲＯＭにおいて採用されるデータファイル構造を示す図である。
同図に示すように、ＩＣカードαでは、例えば、ディレクトリｄ０，ｄ１，ｄ２，ｄ３（ルートディレクトリｄ０）を用いて、このディレクトリｄ１，ｄ２，ｄ３にそれぞれ属するデータファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂ及び鍵ファイルｋ１，ｋ２，ｋ３等にツリー構造が設定されて管理される。例えば、ディレクトリｄ１にはデータファイルｆ１及び鍵ファイルｋ１が存在する。
【００５０】
ここで、データファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂは、レコード構造を持ち、アプリケーションを管理するためのデータが保存される。鍵ファイルｋ１，ｋ２，ｋ３には、データファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂのアクセス権を制御するための鍵情報が保存される。さらに、データファイルｆ１，ｆ２は一般データファイル形式、ｆ３ａは循環データファイル形式及びｆ３ｂは共有データファイル形式の各ファイル形式により構成される。
【００５１】
一般データファイル形式（以下一般データファイルｆ１，ｆ２という）は、レコード位置が固定されたデータファイル形式であり、循環データファイル形式（以下循環データファイルｆ３ａという）は、レコード位置を、レコードの追記をするたびに新しいものから順に並べ替えるファイル形式、共有データファイル形式（以下共有データファイルｆ３ｂという）は、複数の一般データファイルｆ１，ｆ２のレコードと一つの循環データファイルｆ３ａをまとめて仮想的に一つのファイルとしたものである。
【００５２】
また、共有データファイルｆ３ｂの各レコード（以下共有レコードという）は、例えば共有レコード１，２が一般データファイルｆ１のレコード１，２と、共有レコード３が一般データファイルｆ２のレコード３と、共有レコード４が循環データファイルのレコード３の最新レコードと共有している。
【００５３】
次に、図３は、本装置例に係るＥＥＰＲＯＭにおけるディレクトリ及びデータファイルの管理情報の論理構成を示す図である。なお、本装置例に係るＩＣカードαにおいて適用されるデータファイルは、実データが格納されるデータ領域データとファイル管理領域からなり、まずデータファイル管理領域にて管理されるデータファイル管理情報について詳細に説明する。
【００５４】
まず、同図（ａ）に示すように、本装置例において、ディレクトリｄ０，ｄ１（ＩＤ＝０１０１ｈ），ｄ２（ＩＤ＝０１０２ｈ），ｄ３（ＩＤ＝０１０３ｈ）は、それぞれ各ディレクトリ毎にディレクトリ管理情報として不揮発性メモリであるＥＥＰＲＯＭ１４に保持され、例えば、１バイトの種別である「０１ｈ」（「ｈ」は１６進表記を表す。以下同じ）、２バイトのディレクトリＩＤ「０１０１ｈ」、２バイトの所属ファイルアドレス「ＸＸＸＸｈ」、２バイトの次ディレクトリアドレス「ＸＸＸＸｈ」からなる。なお、「ＸＸＸＸｈ」については、任意のアドレスが設定されるものであり、以下の記載についても同様である。
【００５５】
ここで、種別は、管理情報の種類を示し、例えばディレクトリ管理情報を一意に示す種別として「０１ｈ」とする。ディレクトリＩＤはＩＣカード内において個別に識別可能なディレクトリの識別子を示す。所属ファイルアドレスは、本ディレクトリに所属するファイル群の一つの先頭アドレスである。次ディレクトリアドレスは、次に位置するディレクトリを示す管理情報の先頭のアドレスである。
【００５６】
次に、同図（ｂ）は、一般データファイルｆ１，ｆ２をそれぞれ管理するためにＥＥＰＲＯＭ１４に保持される一般データファイル管理情報を示す。一般データファイルｆ１，ｆ２は、アプリケーションで用いるデータを保持、管理するものであるが、例えば一般データファイル管理情報として、同一ディレクトリｄ１内で他のデータファイルと重複しない２バイトの識別子であるファイルＩＤ「０００１ｈ」を割り振られる。
【００５７】
また、一般データファイルｆ１，ｆ２は、そのデータファイル毎に固定長、固定総レコード数のレコードの集合からなり、各レコードは参照管理情報として、「００ｈ」を除く１バイトのレコード識別子（以下タグという）、１バイトのデータ長、データの内容を有して、先頭から順番に１バイトで、１から始まるレコード番号が固定的に割り振られる。
【００５８】
さらに、一般データファイルｆ１，ｆ２はそれぞれ各データファイル毎に、一般データファイル管理情報として、１バイトの種別「０２ｈ」、２バイトのファイルＩＤ「０００１ｈ」、２バイトのデータアドレス「００００ｈ」、１バイトのレコード数「０５ｈ」、１バイトのレコード長「１０ｈ」、２バイトのセキュリティ属性「０００００００１ｂ」（「ｂ」は２進表記を表す。以下同じ）、２バイトの次ファイルアドレスからなる。
【００５９】
種別「０２ｈ」は、管理情報の種類を示し、ここでは一般データファイル管理情報であることを示す。また、ファイルＩＤ「０００１ｈ」は、例えばディレクトリ内で重複がなくデータファイルを個別に識別可能に付与されるデータファイルの識別子を示す。データアドレス「００００ｈ」は、当該一般データファイルｆ１のデータが保存されるデータブロック群の先頭アドレスとする。
【００６０】
また、レコード数「０５ｈ」は、一般データファイルｆ１で保持できるレコード数の総数であり、レコード長「１０ｈ」は、保持するレコードの長さである。セキュリティ属性「０００００００１ｂ」は、後に述べるセキュリティステータスと対にしてアクセス判定を可能するためのファイルアクセス権管理用のデータである。次ファイルアドレス「ＸＸＸＸｈ」は、同一の例えばディレクトリｄ１に属する次のファイル管理情報の先頭アドレスである。ここで、自データファイル例えば一般データファイルｆ２が最後であるならば、「ＦＦＦＦｈ」が格納される。
【００６１】
続いて、同図（ｂ）は、本装置例における循環データファイルｆ３ａの管理情報を示す。循環データファイルｆ３ａは、アプリケーションで用いるデータを保持管理して、同一の例えばディレクトリｄ３内で、他のデータファイルと重複のない２バイトの識別子のファイルＩＤ例えば「０００４」を付与される。
【００６２】
ここで、循環データファイルｆ３ａは、各データファイル毎に設定された固定長、固定総レコード数のレコードの集合から構成される。各レコードは参照管理情報として「００ｈ」を除く１バイトのタグ、１バイトのデータ長、データの内容からなるものであるが、循環データファイルｆ３ａのレコードは、新しいものから順番に１バイトで１から始まるレコード番号が、動的に割り振られる。
【００６３】
循環データファイルｆ３ａの管理情報は、一般データファイルｆ１，ｆ２の管理情報「０２ｈ」の他に２バイトの循環開始レコード例えば「ＦＦｈ」が付加される。循環データファイルの種別は「０３ｈ」とした。循環開始レコード番号「ＦＦｈ」は、確保されたデータブロック群内の複数レコードの何番目が最も新しいレコードかを示す。本循環データファイルｆ３ａを他のデータファイルと共有する場合の循環開始レコード番号は「ＦＦｈ」とする。
【００６４】
一方、図３（ｄ）は、共有データファイルｆ３ｂの管理情報である。共有データファイルｆ３ｂは、複数のデータファイルに一括してアクセスする場合に用いられる。また、例えば同一ディレクトリｄ３内で、他のデータファイルｆ３ａ，・・・と重複のない２バイトの識別子であるファイルＩＤを例えば「０００４ｈ」として割り振られる。
【００６５】
また、各レコードは、それぞれ特定の一般データファイルｆ１，ｆ２又は循環データファイルｆ３ａのレコードから参照される共有レコードからなる。ただし、参照されるレコードの長さは全て等しいものとし、１つの共有データファイルｆ３ｂを参照する循環データファイルｆ３ａは一つに限定される。各レコードは参照管理情報としての「００ｈ」を除く１バイトのタグ、１バイトのデータ長、データの内容からなり、レコード番号は先頭から順番に１バイトで表され、１から順に始まり、固定的に割り振られる。
【００６６】
さらに、一般データファイルｆ１，ｆ２の特定のレコードは、特定のレコード番号が割り当てられて、循環データファイルｆ３ａのレコードは、特定の一つのレコード番号に割り当てられる。
【００６７】
ここで、共有データファイル管理情報は、連続したメモリ領域に二つ保持されるものであり、その内容は、一般データファイルｆ１，ｆ２の管理情報で用いられたものの他に、１バイトの循環レコード番号「０４ｈ」、１バイトの循環開始ブロック群番号「０１ｈ」、１バイトの循環レコード数「０３ｈ」、２バイトのブロック群長「００４０ｈ」、２バイトの世代番号「０００２ｈ」、そして、レコード毎に、２バイトの参照しているディレクトリＩＤ「０１０１ｈ」，「０１０１ｈ」，「０１０２ｈ」，「０１０３ｈ」、と組になる２バイトのセキュリティ属性「０００００００１ｂ」，「０００００００１ｂ」，「００００００１０ｂ」，「０００００１００ｂ」からなる。
【００６８】
共有データファイルの種別は、例えば「０４ｈ」と「０５ｈ」とする。循環レコード番号「０４ｈ」は循環データファイルｆ３ｂに対応する共有データファイルのレコード番号を示し、循環開始ブロック群番号「０１ｈ」は、循環データファイルｆ１ｂの最も新しいレコードを含むブロック群の番号を示し、循環レコード数「０３ｈ」は、循環するレコードの数を示す。
【００６９】
さらに、二つ保持した循環データファイル管理情報で、世代番号が大きい方が新しい管理情報であることを示して、参照しているディレクトリＩＤ「０１０１ｈ」，「０１０１ｈ」，「０１０２ｈ」，「０１０３ｈ」は、各レコードにおいて共有するデータファイルが属するディレクトリｄ１，ｄ２，ｄ３のディレクトリＩＤを示し、同じく、セキュリティ属性「０００００００１ｂ」，「０００００００１ｂ」，「００００００１０ｂ」，「０００００１００ｂ」は、各レコードにおいて共有するデータファイルのセキュリティ属性を示す。
【００７０】
また、同図（ｅ）は、鍵ファイルｋ１，ｋ２，ｋ３の管理情報を示すものである。鍵ファイルｋ１，ｋ２，ｋ３は、それぞれアクセス権を制御するために用いるものであり、例えば鍵ファイルｋ１には同一ディレクトリｄ１において重複のない２バイトの識別子である「００１１ｈ」をファイルＩＤとして付与される。鍵ファイルｋ１，ｋ２，ｋ３は、１６種類の異なる鍵を作成可能な鍵区分を有する。
【００７１】
鍵ファイルｋ１の管理情報は、１バイトの種別「０６ｈ」、２バイトのファイルＩＤ「００１１ｈ」、２バイトのデータアドレス「００５０ｈ」、１バイトの鍵の長さ「１０ｈ」、１バイトの鍵区分「０１ｈ」、２バイトの次ファイルアドレス「ＸＸＸＸｈ」からなる。
【００７２】
ここで、種別は、データファイル管理情報の種類を示し、鍵ファイルｋ１，ｋ２，ｋ３の種別は０６ｈである。データアドレス「００５０ｈ」は、鍵の内容が保持されるデータブロック群のアドレスを示し、鍵の長さ「１０ｈ」は、保持する鍵の長さのバイト数を示す。また、鍵区分は、「０１ｈ」〜「１０ｈ」の１６種類からなり、次ファイルアドレス「ＸＸＸＸｈ」は同一ディレクトリｄ１に属する次のデータファイルの管理情報の先頭アドレスである。
【００７３】
次に、図４は、本装置例に係るＥＥＰＲＯＭの物理構成図である。
まず、同図に示すように、ディレクトリｄ１，ｄ２，ｄ３及び各データファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂ及び鍵ファイルｋ１，ｋ２，ｋ３は、ＥＥＰＲＯＭ１４において実データが保持されるデータ領域と、それぞれの各管理情報を保持する管理情報領域とで構成される。
【００７４】
同図に示すように、例えば、各ディレクトリ内のファイルのデータファイルのデータは、最下位から順にディレクトリｄ１が、「００００ｈ」〜「００５Ｆｈ」、ディレクトリｄ２が「００６０ｈ」〜「００ＣＦｈ」、ディレクトリｄ３が「００Ｄ０ｈ」〜「０２３Ｆｈ」に配置されて、各管理情報は、最上位から順に配置される。
【００７５】
ここで、一般データファイルｆ１，ｆ２及び循環データファイルｆ３ａのレコードは、それぞれディレクトリｄ１，ｄ２のデータ領域と管理情報領域とに保持されて、そのレコードは下位アドレスから順に保存されて、各レコードの保存形式は、タグ、長さ、データで構成される。
【００７６】
ここで、一般データファイルｆ１，ｆ２の参照管理情報を含むレコードは、共有データファイルｆ３ｂに格納された共有レコードを参照先としてレコード共有状態に設定された場合、タグは、「００ｈ」となり、各データは１，２バイト目が参照先ファイルのあるディレクトリＩＤ「０１０３ｈ」、３，４バイト目が参照先ファイルＩＤ「０００４ｈ」、５バイト目が参照先レコード番号「０００１ｈ」、「０００２ｈ」又は「０００３ｈ」を格納している。
【００７７】
また、循環データファイルｆ３ａのレコードが共有データファイルｆ３ｂに格納された共有レコードを参照している場合、物理的に先頭に位置するレコードのタグは「００ｈ」となり、データは１，２バイト目が参照先ファイルのあるディレクトリＩＤ「０１０３ｈ」、３，４バイト目が参照先ファイルＩＤ「０００４ｈ」となり、その他のレコードは無視される。
【００７８】
さらに、共有データファイルｆ３ｂについては、そのレコード長を１６バイト（１０ｈ）として、ブロック長は６４バイト（４０ｈ）としている。したがって、共有データファイルｆ３ｂのデータ領域には、４つのブロック群を含む。ここで、共有データファイルｆ３ｂの各ブロックの先頭から順にレコード１，２，３，４として、一般データファイルｆ１，ｆ２及び循環データファイルｆ３ａについても同様に構成するレコードを先頭から順次、レコード１，２，・・・と呼ぶ。
【００７９】
それにより、共有データファイルｆ３ｂのデータ領域の共有レコード１及び共有レコード２は、一般データファイルｆ１（ファイルＩＤ＝０００１ｈ）のレコード１及びレコード２であり、共有レコード３は、一般データファイルｆ２（ファイルＩＤ＝０００２ｈ）のレコード３、共有レコード４は循環データファイルｆ３ａ（ファイルＩＤ＝０００３ｈ）のそれぞれから参照されたものである。
【００８０】
続いて、共有データファイルｆ３ｂのデータ領域は、連続する複数のブロック群を構成することにより管理されている。ここで説明するブロック群とは、参照されているレコードそれぞれの内容を保持するメモリ領域であり、例えば、ブロックの境界を先頭に下位から上位アドレスに向かって割り当てられる領域のことである。
【００８１】
ここで、ブロック長を「ＢｌｏｃｋＳｉｚｅ」、レコード長を「ＲｅｃＬｅｎ」、レコード数（レコードの総数）を「ＲｅｃＮｕｍ」とすると、ブロック群の長さ「ＢｌｏｃｋＬｅｎ」は、
ＢｌｏｃｋＬｅｎ＝ＢｌｏｃｋＳｉｚｅ×｛（ＲｅｃＬｅｎ×ＲｅｃＮｕｍ）％ＢｌｏｃｋＳｉｚｅ｝
である。ただし、Ｘ％ＹはＸをＹで割った値を切り上げたものである。
【００８２】
共有データファイルｆ３ｂは、このブロック群を参照している循環データファイルｆ３ａのレコード数＋１個の複数ブロック群用いて管理されてなる。一般データファイルｆ１，ｆ２の各レコードは、各ブロック群に、レコード番号に従って下位から順に割り当てられている。
【００８３】
また、循環データファイルｆ３ａのレコードが保持される位置は、循環開始ブロック群番号から始まるブロック群を第１レコードに対応するブロック群として、参照される循環データファイルｆ３ａのレコード番号に従って、１レコードずつ各ブロック群に割り当てられ、個別のブロック群内では、参照されるレコード番号に従って割り当てられる。
【００８４】
さらに、共有データファイルｆ３ｂのデータ領域は、循環データファイルｆ３ａのレコード数３に１を加えた４つのブロック群からなっており、循環データファイルｆ３ａの開始レコード番号が１であるため、共有データファイルｆ３ｂの先頭のブロック群から順に循環データファイルｆ３ａの各レコードが割り当てられ、残りの１つのブロック群（ここでは４つ目の最後尾のブロック群）はバックアップ用となる。
【００８５】
次に、図５は、本装置例に係るＲＡＭにおけるチャネル、一時共有データファイルの管理情報、及び一時ファイルデータの論理構成を示す図である。本装置例に適用されるＩＣカードαは、同図に示すように、メモリ管理手段として、チャネルと呼ぶアクセス権を保持する環境を複数保持し、ＲＡＭ１３上に保持されるチャネルごとにディレクトリ、セキュリティ状態を管理するよう機能構成される。
【００８６】
まず、同図（ａ）に示すように、チャネル管理情報は、２バイトのディレクトリＩＤ、２バイトのディレクトリアドレス、２バイトのセキュリティステータスから構成される。ディレクトリＩＤ「０１０１ｈ」は、現在当該チャネルとして格納保持しているディレクトリｄ１のＩＤであり、更新可能に保持されるものである。また、ディレクトリアドレス「ＸＸＸＸｈ」は、同じくこのチャネルに格納されるディレクトリｄ１の管理情報の先頭アドレスを示す。セキュリティステータス「００００００００ｂ」は、このチャネルにおけるセキュリティ状態を示している。
【００８７】
さらに、ＲＡＭ１３には、処理途中の状態を保持するために、同図（ｂ）に示した一時共有データファイル管理情報及び同図（ｃ）に示した一時ファイルデータを保持している。一時共有データファイル管理情報は、管理情報内のデータを書き換える際にバッファとして用いるものであり、一時ファイルデータは、ブロック群を書き換える際にバッファとして用いることが可能に構成される。
【００８８】
（方法例）
続いて、以上のように構成されたＩＣカードαにおいて、データファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂ毎に設定されたアクセス権の制御方法、ディレクトリｄ１，ｄ２，ｄ３を選択するディレクトリ選択の選択手順、鍵ファイルｋ１，ｋ２，ｋ３を用いた鍵照合の手順及びデータファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂの読み出し手順を順に追って説明する。
【００８９】
まず、本実施形態例におけるＩＣカードαは、データファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂ毎に保持するセキュリティ属性と、チャネル毎に保持するセキュリティステータス、そして鍵ファイル毎に保持する鍵区分を使ってデータファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂへのアクセス制御を行う。
【００９０】
データファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂ毎に保持したセキュリティ属性は、どの鍵で照合したらアクセス可能であるのかを示すものであり、一方チャネル毎に設定されたセキュリティステータスは、現在どの鍵で照合したかどうかを示している。例えば、鍵区分「０１ｈ」の鍵を照合したとすると、セキュリティステータスの該当ビットを「１」として、「０００００００１ｂ」となる。
【００９１】
この状態でセキュリティ属性が「０００００００１ｂ」のデータファイルｆ１をアクセスする場合、このセキュリティステータス「０００００００１ｂ」とセキュリティ属性「０００００００１ｂ」の論理積を計算して、その結果が「０００００００１ｂ」となることから、アクセス可能と判断する。
【００９２】
また、この状態で、セキュリティ属性が「００００００１０ｂ」のデータファイルｆ２をアクセスする場合は、論理積の結果が「００００００００ｂ」となるため、アクセス不可と判断することが可能となり、予め設定されたセキュリティ属性、セキュリティステータス及び鍵ファイルにしたがって、データファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂへのアクセス制御が可能となる。
【００９３】
次に、図６は、本発明の方法例に係るディレクトリの選択手順を示すフローチャートである。同図を用いて各種データファイルを格納するディレクトリｄ１，ｄ２，ｄ３を選択する手順を説明する。
【００９４】
本方法例によるＩＣカードαは、上位装置である、例えば情報処理端末γから引数として、１バイトのチャネル番号（以下Ｃｈという）、２バイトのディレクトリＩＤ（以下ＤｉｒＩＤという）を持つディレクトリ選択命令を受信する。
【００９５】
ＩＣカードαはディレクトリ選択命令を受信すると、最初のディレクトリであるディレクトリｄ１の管理情報内の次ディレクトリアドレス「ＸＸＸＸｈ」からディレクトリｄ２，・・・と順次たどることにより、ディレクトリ管理情報内のディレクトリＩＤが受信した引数「ＤｉｒＩＤ」と等しいディレクトリ管理情報を検索する（ＳＴ１）。
【００９６】
ＳＴ１の後、「ＤｉｒＩＤ」と合致するディレクトリＩＤの検出を確認して（ＳＴ２）、所望のディレクトリＩＤが検出されなかった場合には、ディレクトリ指定誤りの異常終了を情報処理端末γにリーダライタβを介して送信して（ＳＴ３）終了する。ＳＴ２にて、引数「ＤｉｒＩＤ」と合致するディレクトリＩＤが検出された場合には、そのディレクトリ管理情報の先頭アドレスを「ＤｉｒＡｄｄｒ」に代入する（ＳＴ４）。
【００９７】
引数「Ｃｈ」で特定されるチャネル管理情報内のディレクトリアドレスに「ＤｉｒＡｄｄｒ」を（ＳＴ５）、ディレクトリＩＤに「ＤｉｒＩＤ」を（ＳＴ６）それぞれ書き込み、全ての処理が正常に終了した場合には、正常終了応答を情報処理端末γに送信して（ＳＴ７）ディレクトリの選択処理を終了する。
【００９８】
続いて、図７は、本方法例に係る鍵の照合手順を示すフローチャートである。本方法例において適用するＩＣカードαは、引数として１バイトのチャネル番号「Ｃｈ」、２バイトの鍵ファイルのＩＤ（以下ＫｅｙＩＤという）、複数バイトの鍵内容（以下ＫｅｙＶａｌｕｅという）、１バイトの鍵の長さ（以下ＫｅｙＬｅｎという）を持つ鍵照合命令を上位装置である情報処理端末γからリーダライタβを介して受け取る。
【００９９】
そこで、まず、同図に示すように、「Ｃｈ」にて特定されるチャネル管理情報内にあるディレクトリＩＤを「ＤｉｒＩＤ」に、ディレクトリアドレスを「ＤｉｒＡｄｄｒ」に、セキュリティステータスを「ＳＳ」として代入する（ＳＴ１１）。代入された「ＤｉｒＡｄｄｒ」のアドレスから始まるディレクトリ管理情報を読み込み、さらにこのディレクトリ管理情報中の所属ファイルアドレスをたどり、ファイルＩＤが「ＫｅｙＩＤ」と等しく、かつ種別が「０６ｈ」である鍵ファイル管理情報を探す（ＳＴ１２）。
【０１００】
ＳＴ１２の後、鍵ファイルが検出されたかどうか確認して（ＳＴ１３）、検出されなかった場合は、鍵ファイルＩＤの指定誤りの異常応答を上位装置に送信して（ＳＴ１４）鍵の照合手順の処理を終了する。一方、所望の鍵ファイルが検出された場合には、その鍵ファイル管理情報の先頭アドレスを「ＫｅｙＡｄｄｒ」に代入する（ＳＴ１５）。
【０１０１】
「ＫｅｙＡｄｄｒ」で特定されるアドレスから始まる鍵ファイル管理情報内のデータアドレスをＫｅｙＶａｌｕｅ´に代入して（ＳＴ１６）、先に情報通信端末γから受け取った「ＫｅｙＶａｌｕｅ」とこの「ＫｅｙＶａｌｕｅ´」が等しいどうか例えば「ＫｅｙＬｅｎ」の長さから確認する（ＳＴ１７）。
【０１０２】
「ＫｅｙＶａｌｕｅ」と「ＫｅｙＶａｌｕｅ´」が等しくない場合、鍵照合不一致として鍵内容不一致異常終了応答を情報通信端末γに送信し（ＳＴ１８）、鍵照合の処理を終了する。一方、「ＫｅｙＶａｌｕｅ」と「ＫｅｙＶａｌｕｅ´」が等しい場合には、「ＫｅｙＡｄｄｒ」のアドレスから始まる鍵ファイル管理情報内の鍵区分を「ＫｅｙＫｉｎｄ」とおく（ＳＴ１９）。
【０１０３】
さらに、引数として先に受け取った「ＳＳ」の「ＫｅｙＫｉｎｄ」ビット目を「１」に置き換える（ＳＴ２０）。ＳＴ２０まで、全て正常に終了したときには、正常終了応答を上位装置である情報通信端末γにリーダライタβを介して送信して（ＳＴ２１）、鍵の照合処理を終了する。
【０１０４】
次に、図８は、本方法例に係るデータファイルの読み出し手順を示すフローチャートである。同図を用いて各データファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂを読み出す手順を説明する。
まず、本方法例にて適用するＩＣカードαは、引数として、１バイトのチャネル番号「Ｃｈ」、２バイトのデータファイルのファイルＩＤ（以下ＦｉｌｅＩＤという）、１バイトのレコード番号（以下ＲｅｃＮｏ）を持つ読み出し命令を上位装置情報通信端末γから受け取る。
【０１０５】
受け取った「Ｃｈ」により特定されるチャネル管理情報内にあるディレクトリＩＤを「ＤｉｒＩＤ」、ディレクトリアドレスを「ＤｉｒＡｄｄｒ」、セキュリティステータスを「ＳＳ」にそれぞれ代入して（ＳＴ３１）、「ＤｉｒＡｄｄｒ」で特定されるアドレスから始まるディレクトリ管理情報内に格納された所属ファイルアドレスからデータファイル管理情報を順次たどっていき、種別が「０２ｈ」、「０３ｈ」、「０４ｈ」又は「０５ｈ」でファイルＩＤがＦｉｌｅＩＤと等しいデータファイル管理情報を探す（ＳＴ３２）。
【０１０６】
ＳＴ３２の後に、データファイル管理情報が検出されたかどうかを確認して（ＳＴ３３）、検出されなかった場合には、ファイルＩＤ指定誤りの異常終了応答を情報通信端末γに送信して、データファイル読み出しの処理を終了する。一方、所望のデータファイル管理情報が検出されたときには、このデータファイル管理情報の先頭アドレスを「ＦｉｌｅＡｄｄｒ」とおく（ＳＴ３５）。
【０１０７】
さらに、「ＦｉｌｅＡｄｄｒ」で特定されるデータファイル管理情報内の種別を「ＦｉｌｅＫｉｎｄ」として（ＳＴ３６）、先ず、この「ＦｉｌｅＫｉｎｄ」に代入された値が、一般データファイルｆ１，ｆ２を示す「０２ｈ」であるかどうかを確認する（ＳＴ３７）。ここで、「ＦｉｌｅＫｉｎｄ」が「０２ｈ」であった場合には、該当する一般データファイルｆ１又はｆ２の読み出しを行う（ＳＴ３８）。
【０１０８】
「ＦｉｌｅＫｉｎｄ」の値が、「０２ｈ」でない場合には、さらに、循環データファイルｆ３ａを示す「０３ｈ」であるかどうか確認して（ＳＴ３９）、「０３ｈ」であれば、循環データファイルｆ３ａの読み出し処理を行い（ＳＴ４０）、循環データファイルｆ３ａを示す「０３ｈ」でなければ、引続き、「ＦｉｌｅＫｉｎｄ」が「０４ｈ」又は「０５ｈ」であるかどうか確認する（ＳＴ４１）。
【０１０９】
この「ＦｉｌｅＫｉｎｄ」が、共有データファイルｆ３ｂの種別として設定された「０４ｈ」又は「０５ｈ」であれば、共有データファイルｆ３ｂの読み出し処理を行い（ＳＴ４２）、「ＦｉｌｅＫｉｎｄ」が以上の「０２ｈ」〜「０５ｈ」のいずれにも該当しないときには、データファイル種別の指定誤りとして異常終了を情報処理端末γに送信して（ＳＴ４３）読み出し処理を終了する。
【０１１０】
さらに、ＳＴ３８、ＳＴ４０及びＳＴ４２にて行う一般データファイルｆ１，ｆ２、循環データファイルｆ３ａ及び共有データファイルｆ３ｂの読み出し処理について順に説明する。
【０１１１】
図９は、本方法例に係る一般データファイルの読み出し手順を示すフローチャートである。同図に示すように、ＳＴ３８にて一般データファイルｆ１，ｆ２を読み出す処理を実行するにあたり、まず、「ＦｉｌｅＡｄｄｒ」で始まる一般データファイル管理情報を特定して、この一般データファイル管理情報内に格納されたセキュリティ属性と、先に「Ｃｈ」にて特定されるチャネル管理情報内のセキュリティステータスを代入された「ＳＳ」との論理積を算出して結果を「Ａｎｓ」に代入する（ＳＴ５１）。
【０１１２】
ＳＴ５１の後、この論理積の結果「Ａｎｓ」が「００００００００ｂ」であるかどうかを確認して（ＳＴ５２）、「Ａｎｓ」が「００００００００ｂ」の場合には、アクセス権不足としてアクセス権誤り異常終了を情報処理端末γに送信して（ＳＴ５３）一般データファイルの読み出し処理を終了する。
【０１１３】
一方、ＳＴ５２で論理積の結果「Ａｎｓ」が「００００００００ｂ」でない場合には、「ＦｉｌｅＡｄｄｒ」のアドレスにより特定される一般データファイル管理情報内のデータアドレスを「ＤａｔａＡｄｄｒ」、レコード長を「ＲｅｃＬｅｎ」としてそれぞれ代入する（ＳＴ５４）。
【０１１４】
続いて、読み出すべきレコードのアドレス「ＲｅｃＡｄｄｒ」を、
ＲｅｃＡｄｄｒ＝ＤａｔａＡｄｄｒ＋ＲｅｃＬｅｎ×（ＲｅｃＮｏ−１）
の式から算出して（ＳＴ５５）、この「ＲｅｃＡｄｄｒ」から始まるデータの１バイト目を「タグ」（以下、「Ｔａｇ」という）として（ＳＴ５６）、この「Ｔａｇ」が「００ｈ」かどうか確認する（ＳＴ５７）。
【０１１５】
ここで、「Ｔａｇ」が「００ｈ」ではない場合、通常のレコードとして「ＲｅｃＡｄｄｒ」から「ＲｅｃＬｅｎ」分のデータと、一般データファイルの読み出しの正常終了の通知を合わせて情報処理端末γに送信して（ＳＴ５８）、一般データファイルの読み出しを正常に終了する。
【０１１６】
一方、「Ｔａｇ」が「００ｈ」であった場合には、共有データファイルｆ３ｂからのレコードの参照であると判断して、「ＲｅｃＡｄｄｒ」で特定されるアドレスから始まるレコードの、例えば第３バイトから第４バイトを共有データファイルｆ３ｂの属するディレクトリｄ３のディレクトリＩＤ（以下ＬＤｉｒＩＤ）とし、第５バイトと第６バイトを共有データファイルｆ３ｂのファイルＩＤ（以下ＬＦｉｌｅＩＤ）とし、第７バイトを共有データファイルｆ３ｂの参照先レコード番号（以下ＬＲｅｃＮｏ）とする（ＳＴ５９）。
【０１１７】
ＳＴ５９の後、一般データファイルから共有レコードの読み出し処理を行う（ＳＴ６０）ものであるが、一般データファイルから共有レコードの読み出し処理を行うにあたっては、以下にさらに詳細に説明する。
図１０は、本方法例に係る一般データファイルからの共有レコード読み出し手順を示すフローチャートである。ＳＴ６０について同図を参照して説明する。
【０１１８】
まず、「ＬＤｉｒＩＤ」をディレクトリＩＤとするディレクトリ管理情報を、「ＤｉｒＡｄｄｒ」を先頭アドレスとするディレクトリ管理情報内の次ディレクトリアドレスから順位たどって探し、検出したディレクトリ管理情報の先頭アドレスを「ＬＤｉｒＡｄｄｒ」とする（ＳＴ６１）。
【０１１９】
次いで、この「ＬＤｉｒＡｄｄｒ」で始まるディレクトリ管理情報内の所属ファイルアドレスをたどり、種別が「０４ｈ」又は「０５ｈ」であり、かつ、ファイルＩＤが「ＬＦｉｌｅＩＤ」で特定される共有データファイル管理情報を検索し（ＳＴ６２）、その結果、二つの共有データファイルの管理情報が検出された確認する（ＳＴ６３）。
【０１２０】
ＳＴ６３にて共有データファイル管理情報が一つしか検出されなかった場合には、検出した共有データファイル管理情報の先頭アドレスを「ＬＦｉｌｅＡｄｄｒ」とする（ＳＴ６４）ものであるが、二つの共有データファイル管理情報が検出されたときには、種別が「０４ｈ」である共有データファイル管理情報の先頭アドレスを「ＬＦｉｌｅＡｄｄｒ１」とし、種別が「０５ｈ」の共有データファイル管理情報の先頭アドレスを「ＬＦｉｌｅＡｄｄｒ２」とする（ＳＴ６５）。
【０１２１】
次いで、「ＬＦｉｌｅＡｄｄｒ１」と「ＬＦｉｌｅＡｄｄｒ２」とで始まる二つの共有データファイル管理情報内の世代番号を比較して、大きいほうの管理情報の先頭アドレスを「ＬＦｉｌｅＡｄｄｒ」とする（ＳＴ６６）ことで、「ＬＦｉｌｅＡｄｄｒ」を決定する。
【０１２２】
ＳＴ６４又はＳＴ６６により「ＬＦｉｌｅＡｄｄｒ」が決定された後に、この「ＬＦｉｌｅＡｄｄｒ」のアドレスを先頭アドレスとする共有データファイル管理情報内のデータアドレスを「ＬＤａｔａＡｄｄｒ」、循環開始ブロック群番号を「ＬＳｔａｒｔＢｌｏｃｋ」、レコード長を「ＬＲｅｃＬｅｎ」、レコード数を「ＬＲｅｃＮｕｍ」、ブロック群長を「ＬＢｌｏｃｋＬｅｎ」、循環レコード数を「ＬＲＲｅｃＮｕｍ」とする（ＳＴ６７）。
【０１２３】
ＳＴ６７にて代入した値を用いて、まず、最新ブロック群の先頭アドレス「ＬＢｌｏｃｋＡｄｄｒ」を、
ＬＢｌｏｃｋＡｄｄｒ＝ＬＤａｔａＡｄｄｒ＋ＬＢｌｏｃｋＬｅｎ×（ＬＳｔａｒｔＢｌｏｃｋ−１）
の式より算出する（ＳＴ６８）。
【０１２４】
引続き、レコード番号「ＬＲｅｃＮｏ」で示されるレコードの先頭アドレス「ＬＲｅｃＡｄｄｒ」を、
ＬＲｅｃＡｄｄｒ＝ＬＢｌｏｃｋＡｄｄｒ＋ＬＲｅｃＬｅｎ×（ＬＲｅｃＮｏ−１）
の式により算出する（ＳＴ６９）
【０１２５】
ここで、ＳＴ６９より求めた「ＬＲｅｃＡｄｄｒ」のアドレスを先頭アドレスとするレコードが実際に読み出せるかどうか確認して（ＳＴ７０）、実際にデータとして読み出せた場合には、この「ＬＲｅｃＡｄｄｒ」から「ＬＲｅｃＬｅｎ」長さ分のデータを読み出し、正常終了の通知ともに情報処理端末γに応答する（ＳＴ７１）。
【０１２６】
一方、実データとしてメモリ上から、算出することで得た「ＬＲｅｃＡｄｄｒ」から始まるレコードを読み出せなかった場合には、バックアップブロック群の先頭アドレス「ＬＢＢｌｏｃｋＡｄｄｒ」を、
ＬＢＢｌｏｃｋＡｄｄｒ＝ＬＤａｔａＡｄｄｒ＋ＢｌｏｃｋＬｅｎ×｛（ＬＳａｒｔＢｌｏｃｋ＋ＬＲＲｅｃＮｕｍ−１）ｍｏｄ（ＬＲＲｅｃＮｕｍ＋１）｝の式より算出して求める（ＳＴ７２）。
【０１２７】
さらに、レコード番号「ＬＲｅｃＮｏ」で示されるレコードの先頭アドレス「ＬＲｅｃＡｄｄｒ」を、
ＬＲｅｃＡｄｄｒ＝ＬＢＢｌｏｃｋＡｄｄｒ＋ＬＲｅｃＬｅｎ×（ＬＲｅｃＮｏ−１）
の式を用いて算出する（ＳＴ７３）。
【０１２８】
「ＬＲｅｃＡｄｄｒ」のアドレスを先頭アドレスとするレコードから、「ＬＲｅｃＬｅｎ」長さ分のデータを読み出して、正常終了の通知とともに情報処理端末γに送信して応答し（ＳＴ７４）、一般データファイル内の共有レコード読み出し処理を終了する。
【０１２９】
次に、図１１は、本方法例に係る循環データファイルの読み出し手順を示すフローチャートである。同図に示すように、前述のＳＴ４０にて循環データファイルｆ３ａを読み出す処理を実行するにあたり、まず、「ＦｉｌｅＡｄｄｒ」で始まるデータファイル管理情報内のセキュリティ属性と、先に「Ｃｈ」にて特定されるチャネル管理情報内のセキュリティステータスである「ＳＳ」との論理積を算出してその結果を「Ａｎｓ」とする（ＳＴ８１）。
【０１３０】
次に、この「Ａｎｓ」が「００００００００ｂ」であるかどうかを確認して（ＳＴ８２）、「００００００００ｂ」であった場合には、アクセス権不足としてアクセス権誤りの異常終了を情報通信端末γに応答として送信して（ＳＴ８３）、循環データファイルの読み出し処理を終了する。
【０１３１】
一方、「Ａｎｓ」が「００００００００ｂ」でない場合には、「ＦｉｌｅＡｄｄｒ」で始まる循環データファイル管理情報内の循環開始レコード番号を「ＲｅｃＳｔａｒｔ」、データアドレスを「ＤａｔａＡｄｄｒ」とおき（ＳＴ８４）、この「ＲｅｃＳｔａｒｔ」が「ＦＦｈ」であるかどうかを確認して（ＳＴ８５）、「ＦＦｈ」でない場合、「ＦｉｌｅＡｄｄｒ」で始まる循環データファイル管理情報内のレコード長を「ＲｅｃＬｅｎ」、レコード数を「ＲｅｃＮｕｍ」とおく（ＳＴ８６）。
【０１３２】
引続き、所望の読み出す対象レコードの先頭アドレス「ＲｅｃＡｄｄｒ」を、ＲｅｃＡｄｄｒ＝ＤａｔａＡｄｄｒ＋ＲｅｃＬｅｎ×（ＲｅｃＳｔａｒｔ−１）
の式を用いて算出して（ＳＴ８７）、この算出した「ＲｅｃＡｄｄｒ」から始まるレコードの「ＲｅｃＬｅｎ」で示される長さ分を読み出し、これを正常終了の応答とともに情報処理端末γに送信して読み出し処理を終了する（ＳＴ８８）。
【０１３３】
一方、ＳＴ８５において「ＲｅｃＳｔａｒｔ」が「ＦＦｈ」であった場合には、「ＤａｔａＡｄｄｒ」を先頭アドレスとするレコードの第３バイトから第４バイトを共有データファイルの属するディレクトリＩＤ（以下ＬＤｉｒＩＤという）とし、第５バイトと第６バイトを共有データファイルのファイルＩＤ（以下ＬＦｉｌｅＩＤという）とする（ＳＴ８９）。
【０１３４】
その後、循環データファイルから共有レコードの読み出し処理を行う（ＳＴ９０）ものであるが、循環データファイルからの共有レコード読み出し手順の詳細については、以下のような手順を順次実行するものである。
図１２は、本方法例に係る循環データファイルからの共有レコード読み出し手順を示すフローチャートである。ＳＴ９０について同図を参照して説明する。
【０１３５】
まず、同図に示したＳＴ９１〜ＳＴ９６の過程により共有データファイル管理情報の先頭アドレス「ＬＦｉｌｅＡｄｄｒ」を決定するものであるが、この手順については、図１０に示した一般データファイル内共有レコードの読み出し手順のＳＴ６１〜ＳＴ６６と同一のものであり、説明の繰り返しを避けるため、ここでの説明を省略する。
【０１３６】
ＳＴ９４又はＳＴ９６までの過程を経て「ＬＦｉｌｅＡｄｄｒ」が決定された後、「ＬＦｉｌｅＡｄｄｒ」で示されたアドレスから始まる共有データファイル管理情報内のデータアドレスを「ＬＤａｔａＡｄｄｒ」、循環開始ブロック群番号を「ＬＳｔａｒｔＢｌｏｃｋ」、レコード長を「ＬＲｅｃＬｅｎ」、レコード数を「ＬＲｅｃＮｕｍ」、循環レコード数を「ＬＲＲｅｃＮｕｍ」、ブロック群長を「ＬＢｌｏｃｋＬｅｎ」、循環レコード番号を「ＬＲＲｅｃＮｏ」とおく（ＳＴ９７）。
【０１３７】
以上の代入された値を用いて、最新のブロック群の先頭アドレス「ＬＢｌｏｃｋＡｄｄｒ」は、
ＬＢｌｏｃｋＡｄｄｒ＝ＬＤａｔａＡｄｄｒ＋ＬＢｌｏｃｋＬｅｎ×（ＬＳｔａｒｔＢｌｏｃｋ−１）
により算出する（ＳＴ９８）。
【０１３８】
さらに、レコード番号「ＬＲＲｅｃＮｏ」で示されるレコードの先頭アドレス「ＬＲｅｃＡｄｄｒ」を、
ＬＲｅｃＡｄｄｒ＝ＬＢｌｏｃｋＡｄｄｒ＋ＬＲｅｃＬｅｎ×（ＬＲＲｅｃＮｏ−１）
により算出して（ＳＴ９９）、算出された「ＬＲｅｃＡｄｄｒ」を先頭アドレスとして始まるデータが実際のメモリ上にて読み出せるか確認する（ＳＴ１００）。
【０１３９】
ここで、「ＬＲｅｃＡｄｄｒ」から始まるデータが実際に読み出せた場合には、この「ＬＲｅｃＡｄｄｒ」から始まるデータを「ＬＲｅｃＬｅｎ」分読み出して、情報処理装置γに正常終了の通知とともに送信して読み出し処理を終了する（ＳＴ１０１）。
【０１４０】
一方、「ＬＲｅｃＡｄｄｒ」から始まるデータが読み出せなかったときには、バックアップブロック群の先頭アドレス「ＬＢＢｌｏｃｋＡｄｄｒ」を、
ＬＢＢｌｏｃｋＡｄｄｒ＝ＬＤａｔａＡｄｄｒ＋ＬＢｌｏｃｋＬｅｎ×｛（ＬＳｔａｒｔＢｌｏｃｋ＋ＬＲＲｅｃＮｕｍ−１）ｍｏｄ（ＬＲＲｅｃＮｕｍ＋１）｝
から算出する（ＳＴ１０２）。
【０１４１】
続いて、レコード番号「ＬＲＲｅｃＮｏ」で示されるレコードの先頭アドレス「ＬＲｅｃＡｄｄｒ」を、
ＬＲｅｃＡｄｄｒ＝ＬＢＢｌｏｃｋＡｄｄｒ＋ＬＲｅｃＬｅｎ×（ＬＲＲｅｃＮｏ−１）
から算出して（ＳＴ１０３）、「ＬＲｅｃＡｄｄｒ」の先頭アドレスから始まるデータを「ＬＲｅｃＬｅｎ」分だけ読み出し、正常終了の通知とともに情報処理端末γに応答として送信して（ＳＴ１０４）、読み出し処理を終了する。
【０１４２】
続いて、図１３は、本方法例に係る共有データファイルの読み出し手順を示すフローチャートである。同図に示すように、前述のＳＴ４２にて共有データファイルｆ３ｂを読み出す処理を実行するにあたり、まず、「ＤｉｒＡｄｄｒ」を先頭アドレスとするディレクトリ管理情報内の所属ファイルアドレスから、データファイル管理情報をたどり、「ＦｉｌｅＡｄｄｒ」を先頭アドレスとして、かつ、種別が「０４ｈ」又は「０５ｈ」であり、「ＦｉｌｅＩＤ」をファイルＩＤとする共有データファイル管理情報を検索する（ＳＴ１１１）。
【０１４３】
ここで、共有データファイル管理情報が検出されたか確認して（ＳＴ１１２）、共有データファイル管理情報が検出された場合、この検出された共有データファイル管理情報の先頭アドレスを「ＦｉｌｅＡｄｄｒ´」とする（ＳＴ１１３）。
【０１４４】
「ＦｉｌｅＡｄｄｒ」を先頭アドレスとする共有データファイル管理情報と、「ＦｉｌｅＡｄｄｒ´」を先頭アドレスとする共有データファイル管理情報とで保持する世代番号を比較して、世代番号の大きい方の共有データファイル管理情報の先頭アドレスを改めて「ＦｉｌｅＡｄｄｒ」とする（ＳＴ１１４）。
【０１４５】
次に、ＳＴ１１２にて共有データファイル管理情報が検出されなかった場合、又は、ＳＴ１１４を経て一意に「ＦｉｌｅＡｄｄｒ」が決定された後に、この「ＦｉｌｅＡｄｄｒ」を先頭アドレスとする共有データファイル管理情報内のレコード番号「ＲｅｃＮｏ」のディレクトリＩＤを「ＬＤｉｒＩＤ」に、セキュリティ属性を「ＳＡ」に代入する（ＳＴ１１５）。
【０１４６】
続いて、チャネル管理情報内でディレクトリＩＤが「ＬＤｉｒＩＤ」と等しいものを検索して、その検索されたチャネル管理情報内のセキュリティステータスと「ＳＡ」との論理積を算出して、「Ａｎｓ」とし（ＳＴ１１６）、この「Ａｎｓ」が「００００００００ｂ」であるかどうか確認する（ＳＴ１１７）。
【０１４７】
ここで、「Ａｎｓ」が「００００００００ｂ」であった場合、この共有データファイルについてのアクセス権不足としてアクセス権誤りの異常終了を情報処理端末γに応答して（ＳＴ１１８）処理を終了する。
【０１４８】
一方、「Ａｎｓ」が「００００００００ｂ」でなかった場合には、「ＦｉｌｅＡｄｄｒ」を先頭アドレスとする共有データファイル管理情報内の循環開始ブロック群番号を「ＳｔａｒｔＢｌｏｃｋ」、データアドレスを「ＤａｔａＡｄｄｒ」、レコード数を「ＲｅｃＮｕｍ」、レコード長を「ＲｅｃＬｅｎ」、ブロック群長を「ＢｌｏｃｋＬｅｎ」、循環レコード数を「ＲｅｃＮｕｍ」とする（ＳＴ１１９）。
【０１４９】
以上、代入された値を用いて、読み出すブロック群の先頭アドレス「ＢｌｏｃｋＡｄｄｒ」は、
ＢｌｏｃｋＡｄｄｒ＝ＤａｔａＡｄｄｒ＋ＢｌｏｃｋＬｅｎ×（ＳｔａｒｔＢｌｏｃｋ−１）
の式により算出して（ＳＴ１２０）、この算出した「ＢｌｏｃｋＡｄｄｒ」のアドレスを先頭アドレスとしたブロック群が読み出せるかを確認する（ＳＴ１２１）。
【０１５０】
「ＢｌｏｃｋＡｄｄｒ」を先頭アドレスとするブロック群が読み出せた場合には、先に受け渡されたレコード番号「ＲｅｃＮｏ」で示されるレコードの先頭アドレス「ＲｅｃＡｄｄｒ」を、
ＲｅｃＡｄｄｒ＝ＢｌｏｃｋＡｄｄｒ＋ＲｅｃＬｅｎ×（ＲｅｃＮｏ−１）
の式を用いて算出する（ＳＴ１２２）。
【０１５１】
この算出した「ＲｅｃＡｄｄｒ」を先頭アドレスとして長さ「ＲｅｃＬｅｎ」分のデータを読み出し、読み出したデータを情報処理端末γに送信するとともに、正常終了の応答をして（ＳＴ１２３）、共有データファイルｆ３ｂの読み出し処理を終了する。
【０１５２】
一方、ＳＴ１２１にて「ＢｌｏｃｋＡｄｄｒ」から始まるデータが読み出せない場合には、バックアップブロック群の先頭アドレス「ＢＢｌｏｃｋＡｄｄｒ」を、
ＢＢｌｏｃｋＡｄｒ＝ＤａｔａＡｄｄｒ＋ＢｌｏｃｋＬｅｎ×｛（ＳｔａｒｔＢｌｏｃｋ＋ＲＲｅｃＮｕｍ−１）ｍｏｄ（ＲＲｅｃＮｕｍ＋１）｝
の式を用いて算出する（ＳＴ１２４）。
【０１５３】
引続き、先に受け渡されたレコード番号「ＲｅｃＮｏ」で示されるレコードの先頭アドレス「ＲｅｃＡｄｄｒ」を、
ＲｅｃＡｄｄｒ＝ＢＢｌｏｃｋＡｄｄｒ＋ＲｅｃＲｅｎ×（ＲｅｃＮｏ−１）の式を用いて算出し（ＳＴ１２５）、この「ＲｅｃＡｄｄｒ」を先頭アドレスとして「ＲｅｃＬｅｎ」長さ分のデータを読み出し、正常終了の通知とともに情報処理端末γに応答として送信して（ＳＴ１２６）、読み出し処理を終了する。
【０１５４】
続いて、図１４は、本方法例に係るデータファイルの追記・書き換え手順を示すフローチャートである。同図を用いて各データファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂを追記又は書き換える手順を説明する。
まず、本方法例におけるＩＣカードαは、引数として１バイトのチャネル番号（以下Ｃｈという）、２バイトのデータファイルのＩＤ（以下ＦｉｌｅＩＤという）、１バイトのレコード番号（以下ＲｅｃＮｏという）、複数バイトの書き換えデータ（以下ＷｒｉｔｅＤａｔａという）を持つ追記又は書き換え命令を情報処理端末γから受け取る。
【０１５５】
以下、同図に示した過程を経るものであるが、ＳＴ１３１〜ＳＴ１４３の過程は、図８に示したＳＴ３１〜ＳＴ４３の各過程と対応しており、読み出し命令を追記又は書き換え命令と置き換えるものであり、繰り返しを避けるため説明は省略する。また、ＳＴ１３８、ＳＴ１４０及びＳＴ１４２の各処理過程については、以下に順を追って説明する。
【０１５６】
図１５は、本方法例に係る一般データファイルの追記・書き換え手順を示すフローチャートである。同図に示すように、ＳＴ１３８にて一般データファイルｆ１，ｆ２を追記又は書き換え処理を実行するにあたり、図９にて示したＳＴ５１〜ＳＴ５７に対応するＳＴ１５１〜ＳＴ１５７の過程を順次行う。
【０１５７】
その後、ＳＴ１５７において「Ｔａｇ」が「０１ｈ」と等しくない場合に、「ＲｅｃＡｄｄｒ」を先頭アドレスとして「ＲｅｃＬｅｎ」分の長さに「ＷｒｉｔｅＤａｔａ」を書き込み、情報処理端末γに応答として正常終了の通知を送信して（ＳＴ１５８）、一般データファイルｆ１，ｆ２の追記又は書き込み手順を終了する。
【０１５８】
一方、ＳＴ１５７において「Ｔａｇ」が「０１ｈ」であった場合には、ＳＴ５９と同様に、「ＲｅｃＡｄｄｒ」から始まるレコードの第３バイトから第４バイトを共有データファイルｆ３ｂの属するディレクトリｄ３のディレクトリＩＤ、ファイルＩＤ、レコード番号を取り出して、それぞれ「ＬＤｉｒＩＤ」、「ＬＦｉｌｅＩＤ」、「ＬＲｅｃＮｏ」とする（ＳＴ１５９）。
【０１５９】
続いて、一般データファイルからの共有レコードの追記又は書き換え処理（ＳＴ１６０）について説明する。
図１６は、本方法例に係る一般データファイルからの共有レコードの追記・書き換え手順を示すフローチャートである。ＳＴ１６０について同図を参照して説明するが、同図ＳＴ１６１〜ＳＴ１６７は図１０のＳＴ６１〜ＳＴ６７に対応するものであり、説明を省略する。
【０１６０】
ＳＴ１６７の後に、最新のブロック群の先頭アドレス「ＬＢｌｏｃｋＡｄｄｒ」を、
ＬＢｌｏｃｋＡｄｄｒ＝ＬＤａｔａＡｄｄｒ＋ＬＢｌｏｃｋＬｅｎ×（ＬＳｔａｒｔＢｌｏｃｋ−１）
の式により算出して、さらに、バックアップブロック群の先頭アドレス「ＬＢＢｌｏｃｋＡｄｄｒ」を、
ＬＢＢｌｏｃｋＡｄｄｒ＝ＬＤａｔａＡｄｄｒ＋ＬＢｌｏｃｋＬｅｎ×｛（ＬＳｔａｒｔＢｌｏｃｋ＋ＬＲＲｅｃＮｕｍ−１）ｍｏｄ（ＬＲＲｅｃＮｕｍ＋１）｝
の式より代入して算出する（ＳＴ１６８）。
【０１６１】
その後、一時ファイルデータ内のレコード番号「ＬＲｅｃＮｏ」で示されるレコードの先頭アドレス「ＬＴＲｅｃＤａｔａ」を、
ＬＴＲｅｃＤａｔａ＝ＬＲｅｃＬｅｎ×（ＬＲｅｃＮｏ−１）
の式より算出して（ＳＴ１６９）、ＳＴ１６８にて算出した「ＬＢｌｏｃｋＡｄｄｒ」を先頭アドレスとするブロック群が読み出せるかどうか確認する（ＳＴ１７０）。
【０１６２】
ここで、「ＬＢｌｏｃｋＡｄｄｒ」から始まるブロック群が読み出せない場合には、「ＬＢＢｌｏｃｋＡｄｄｒ」から始まるブロック群を一時ファイルデータに複製して（ＳＴ１７１）、一方、読み出せる場合には、読み出したブロック群を一時ファイルデータとともに、「ＬＢＢｌｏｃｋＡｄｄｒ」から始まるブロック群とに複製する（ＳＴ１７２）。
【０１６３】
ＳＴ１７１又はＳＴ１７２を経て一時ファイルデータに複製が完了した後に、この一時ファイルデータの「ＬＴＲｅｃＤａｔａ」からレコード長「ＬＲｅｃＬｅｎ」分だけ「ＷｒｉｔｅＤａｔａ」を書き込み（ＳＴ１７３）、一時ファイルデータの内容を「ＬＢｌｏｃｋＡｄｄｒ」に複製して（ＳＴ１７４）、情報処理端末γに正常終了の応答を送信して（ＳＴ１７５）、追記又は書き換えの処理を終了する。
【０１６４】
次に、図１７は、本方法例に係る循環データファイルの書き換え手順を示すフローチャートである。同図に示すように、前述のＳＴ１４０にて循環データファイルｆ３ａの書き換え処理を実行するにあたり、まず、ＳＴ１８１〜ＳＴ１８５までは、図１１に示したＳＴ８１〜ＳＴ８５と同一のものであり、説明を省略する。
【０１６５】
ＳＴ１８５にて、「ＲｅｃＳｔａｒｔ」が「ＦＦｈ」でない場合には、「ＦｉｌｅＡｄｄｒ」を先頭アドレスとする循環データファイル管理情報内のレコード長を「ＲｅｃＬｅｎ」、レコード数を「ＲｅｃＮｕｍ」とおき（ＳＴ１８６）、書き換える所望のレコードの先頭アドレスを「ＲｅｃＡｄｄｒ」を、
ＲｅｃＡｄｄｒ＝ＤａｔａＡｄｄｒ＋ＲｅｃＬｅｎ×｛（ＲｅｃＳｔａｒｔ＋ＲｅｃＮｕｍ＋ＲｅｃＮｏ−１）ｍｏｄ  ＲｅｃＮｕｍ｝
の式より算出する（ＳＴ１８８）。
【０１６６】
この算出した「ＲｅｃＡｄｄｒ」を先頭アドレスとするレコードに対して、長さ「ＲｅｃＬｅｎ」分の領域に「ＷｒｉｔｅＤａｔａ」を書き込み、以上の処理が正常に終了した後に書き換えの正常終了通知を情報処理端末γに応答として送信する（ＳＴ１８９）。
【０１６７】
一方、ＳＴ１８５にて「ＲｅｃＳｔａｒｔ」が「ＦＦｈ」であった場合には、循環レコード内の共有レコードの書き換え処理を実行するものであるが、まず、「ＤｉｒＡｄｄｒ」から始まるレコードの第３バイトから第４バイトを共有データファイルの属するディレクトリｄ３のディレクトリＩＤ（以下ＬＤｉｒＩＤという）とし、第５バイトと第６バイトを共有データファイルのファイルＩＤ（以下ＬＦｉｌｅＩＤという）とする（ＳＴ１９０）。
【０１６８】
ここで、先に受け渡されたレコード番号「ＲｅｃＮｏ」が「０１ｈ」であるかどうか確認して（ＳＴ１９１）、「ＲｅｃＮｏ」が「０１ｈ」でなければレコード番号指定誤りとして異常応答を送信して（ＳＴ１９２）、循環ファイルの書き換え処理を終了する。一方、ＳＴ１９１にて「ＲｅｃＮｏ」が「０１ｈ」であった場合には、循環データファイルから共有レコードの書き換え処理を行う（ＳＴ１９３）。
【０１６９】
図１８は、本方法例に係る循環データファイルからの共有レコード書き換え手順を示すフローチャートである。
引続き、ＳＴ１９３の循環データファイルの書き換え手順について詳細に説明するものであるが、同図に示したＳＴ２０１〜ＳＴ２０６については、図１２に示したＳＴ９１〜ＳＴ９６の処理手順と同様のものであり、説明を省略する。
【０１７０】
ＳＴ２０４又はＳＴ２０６にて「ＬＦｉｌｅＡｄｄｒ」が一意に決定された後に、この「ＬＦｉｌｅＡｄｄｒ」を先頭アドレスとする共有データファイル管理情報内のデータアドレスを「ＬＤａｔａＡｄｄｒ」、循環開始ブロック群番号を「ＬＳｔａｒｔＢｌｏｃｋ」、レコード長を「ＬＲｅｃＬｅｎ」、ブロック長を「ＬＢｌｏｃｋＬｅｎ」、循環レコード数を「ＬＲＲｅｃＮｕｍ」とおく（ＳＴ２０７）。
【０１７１】
続いて、例えばレコード番号１で示される最新のブロック群の先頭アドレス「ＬＢｌｏｃｋＡｄｄｒ」を、
ＬＢｌｏｃｋＡｄｄｒ＝ＬＤａｔａＡｄｄｒ＋ＬＢｌｏｃｋＬｅｎ×（ＬＳｔａｒｔＢｌｏｃｋ−１）
の式より算出する。
【０１７２】
加えて、バックアップブロック群の先頭アドレス「ＬＢＢｌｏｃｋＡｄｄｒ」を、
ＬＢＢｌｏｃｋＡｄｄｒ＝ＬＤａｔａＡｄｄｒ＋ＬＢｌｏｃｋＬｅｎ×｛（ＬＳｔａｒｔＢｌｏｃｋ＋ＬＲＲｅｃＮｕｍ−１）ｍｏｄ（ＬＲＲｅｃＮｕｍ＋１）｝
の式に先に代入した値を用いて算出する（ＳＴ２０８）。
【０１７３】
ここで、算出して求めた「ＬＢｌｏｃｋＡｄｄｒ」を先頭アドレスとするデータの領域が実際に読めるものであるか確認して（ＳＴ２０９）、読み出せない場合には、「ＬＢＢｌｏｃｋＡｄｄｒ」を先頭アドレスとするブロック群の内容を一時ファイルデータに複製する（ＳＴ２１０）。一方、「ＬＢＢｌｏｃｋＡｄｄｒ」から始まるブロック群が読み出せた場合には、このブロック群の内容を一時ファイルデータと、「ＬＢＢｌｏｃｋＡｄｄｒ」から始まるブロック群とに複製する（ＳＴ２１１）。
【０１７４】
ＳＴ２１０又はＳＴ２１１を経て、一時ファイルデータに新規なデータを複製した後に、一時ファイルデータ内のレコード番号「ＬＲｅｃＮｏ」で示されるレコードの先頭アドレス「ＬＴＲｅｃＤａｔａ」を、
ＬＴＲｅｃＤａｔａ＝ＬＲｅｃＬｅｎ×（ＬＲｅｃＮｏ−１）
の式より算出する（ＳＴ２１２）。
【０１７５】
その後、一時ファイルデータ内の「ＬＴＲｅｃＤａｔａ」からレコード長「ＬＲｅｃＬｅｎ」分に「ＷｒｉｔｅＤａｔａ」を書き込み（ＳＴ２１３）、引続き、一時ファイルデータの内容を「ＬＢｌｏｃｋＡｄｄｒ」を先頭アドレスとするブロック群に複製し（ＳＴ２１４）、情報処理端末γに正常終了の応答を送信して（ＳＴ２１５）、書き換え処理を終了する。
【０１７６】
続いて、図１９は、本方法例に係る共有データファイルの書き換え手順を示すフローチャートである。同図に示すように、前述のＳＴ１４２にて共有データファイルｆ３ｂを書き換える処理を実行するにあたっては、まず、ＳＴ２２１〜ＳＴ２２９までは、図１３に示したＳＴ１１１〜ＳＴ１１９と同様の手順であり、その説明を省略する。
【０１７７】
ＳＴ２２９にて代入された値を用いて、最新ブロック群の先頭アドレス「ＢｌｏｃｋＡｄｄｒ」を、
ＢｌｏｃｋＡｄｄｒ＝ＤａｔａＡｄｄｒ＋ＢｌｏｃｋＬｅｎ×｛（ＳｔａｒｔＢｌｏｃｋ＋ＲＲｅｃＮｕｍ−１）ｍｏｄ（ＲＲｅｃＮｕｍ＋１）｝
の式より算出する。
【０１７８】
さらに、バックアップブロック群の先頭アドレス「ＢＢｌｏｃｋＡｄｄｒ」を、
ＢＢｌｏｃｋＡｄｄｒ＝ＤａｔａＡｄｄｒ＋ＢｌｏｃｋＬｅｎ×｛（ＳｔａｒｔＢｌｏｃｋ＋ＲＲｅｃＮｕｍ−１）ｍｏｄ（ＲＲｅｃＮｕｍ＋１）｝
の式を用いて算出する（ＳＴ２３０）。ここで、算出して求めた「ＢｌｏｃｋＡｄｄｒ」を先頭アドレスとするブロック群がよみだせるものであるか確認する（ＳＴ２３１）。
【０１７９】
ＳＴ２３１にて「ＢｌｏｃｋＡｄｄｒ」から始まるブロック群が読み出せない場合には、「ＢＢｌｏｃｋＡｄｄｒ」から始まるブロック群を一時ファイルデータに複製して（ＳＴ２３２）、一方、読み出せるものであれば、このブロック群の内容を一時ファイルデータと、「ＢＢｌｏｃｋＡｄｄｒ」を先頭アドレスとする領域とに複製する（ＳＴ２３３）。
【０１８０】
ＳＴ２３２又はＳＴ２３３を経て一時ファイルデータに複製がされた後に、一時データファイル内のレコード番号「ＲｅｃＮｏ」で示されるレコードの先頭アドレス「ＴＲｅｃＤａｔａ」を、
ＴＲｅｃＤａｔａ＝ＲｅｃＬｅｎ×（ＲｅｃＮｏ−１）
の式により算出する（ＳＴ２３４）。
【０１８１】
引続き、一時ファイルデータ内の「ＴＲｅｃＤａｔａ」からレコード長「ＲｅｃＬｅｎ」分に「ＷｒｉｔｅＤａｔａ」を書き込み（ＳＴ２３５）、一時ファイルデータの内容を「ＢｌｏｃｋＡｄｄｒ」に複製し（ＳＴ２３６）、ＳＴ２３６の処理が終了した後に、情報処理端末γに正常終了の応答を送信して（ＳＴ２３７）、書き換え処理を終了する。
【０１８２】
次に、本方法例に係るデータファイルｆ１，ｆ２，ｆ３ａ，ｆ３ｂの追記手順について説明するものの、追記命令を受信した後に所定のデータファイル指定の手順については図１４に示した手順と同様のフローを用いるものであり、その説明は省略する。また、特に一般データファイルｆ１，ｆ２の追記手順については合わせて図１５及び図１６の手順に従うものとする。ここでは、循環データファイルｆ３ａ及び共有データファイルｆ３ｂの追記について順に説明する。
【０１８３】
図２０は、本方法例に係る循環データファイルの追記手順を示すフローチャートである。同図に示すように、前述のＳＴ１４０にて循環データファイルｆ３ｂの追記処理を実行するにあたり、まず、引数として受け渡されたレコード番号「ＲｅｃＮｏ」が「０１ｈ」であるかどうか確認して（ＳＴ２４１）、「０１ｈ」でない場合には、レコード番号誤りとして異常応答を送信して（ＳＴ２４２）、追記の処理を終了する。
【０１８４】
一方、ＳＴ２４１にて「ＲｅｃＮｏ」が「０１ｈ」であった場合には、以下ＳＴ２４３〜ＳＴ２４７の過程、即ち、図１１に示したＳＴ８１〜ＳＴ８５又は図１７のＳＴ１８１〜ＳＴ１８５と同様の手順を踏むものであり、ここでの説明は省略する。
【０１８５】
引続き、ＳＴ２４７にて「ＲｅｃＳｔａｒｔ」が「ＦＦｈ」ではなかった場合には、まず、「ＦｉｌｅＡｄｄｒ」を先頭アドレスとする循環データファイル管理情報内のレコード長を「ＲｅｃＬｅｎ」、レコード数を「ＲｅｃＮｕｍ」とおく（ＳＴ２４８）。
【０１８６】
次いで、追記の対象となるレコードのアドレス「ＲｅｃＡｄｄｒ」を、
ＲｅｃＡｄｄｒ＝ＤａｔａＡｄｄｒ＋ＲｅｃＬｅｎ×｛（ＲｅｃＳｔａｒｔ＋ＲｅｃＮｕｍ−２）ｍｏｄ  ＲｅｃＮｕｍ｝
の式により算出して（ＳＴ２４９）、「ＲｅｃＡｄｄｒ」から長さ「ＲｅｃＬｅｎ」分の領域に「ＷｒｉｔｅＤａｔａ」を書き込む（ＳＴ２５０）。
【０１８７】
その後、新規に更新するための新しい循環開始レコード番号「ＲｅｃＮｕｍ´」を、
ＲｅｃＮｕｍ´＝（ＲｅｃＳｔａｒｔ＋ＲｅｃＮｕｍ−２）ｍｏｄ  ＲｅｃＮｕｍ−１
の式を用いて算出する（ＳＴ２５１）。
【０１８８】
続いて、「ＦｉｌｅＡｄｄｒ」から始まる循環データファイル管理情報内の循環開始レコード番号を「ＲｅｃＮｕｍ´」に更新書き換えて（ＳＴ２５２）、ＳＴ２５２の完了後に正常終了の通知として、情報処理端末γに応答を送信して（ＳＴ２５３）、追記処理を終了する。
【０１８９】
一方、ＳＴ２４７にて「ＲｅｃＳｔａｒｔ」が「ＦＦｈ」であった場合には、まず、「ＤａｔａＡｄｄｒ」から始まるレコードの第３バイトから第４バイトを共有データファイルの属するディレクトリのディレクトリＩＤを「ＬＤｉｒＩＤ」、第５バイトと第６バイトを共有データファイルのファイルＩＤを「ＬＦｉｌｅＩＤ」とおき（ＳＴ２５４）、循環データファイルから共有レコードの追記処理を実行する（ＳＴ２５５）。
【０１９０】
図２１は、本方法例に係る循環データファイルからの共有レコード追記手順を示すフローチャートである。
引続き、ＳＴ２５５の循環データファイルの追記手順について詳細に説明するが、同図に示したＳＴ２６１〜ＳＴ２６９については、図１８に示したＳＴ２０１〜ＳＴ２０９と同様の処理であり、その説明を省略するものであるが、ＳＴ２６６において世代番号を比較した際、世代番号が小さい共有データファイル管理情報の先頭アドレスを「ＬＦｉｌｅＡｄｄｒ´」とする。
【０１９１】
ＳＴ２６９の後、「ＬＢＢｌｏｃｋＡｄｄｒ」を先頭アドレスとするブロック群が読み出せない場合には、「ＬＢＢｌｏｃｋＡｄｄｒ」から始まるブロック群の内容を「ＬＢｌｏｃｋＡｄｄｒ」を先頭アドレスとするブロック群と、一時ファイルデータとに複製し（ＳＴ２７０）、一方、読み出せる場合には、この「ＬＢｌｏｃｋＡｄｄｒ」から始まるブロック群の内容を一時ファイルデータに複製する（ＳＴ２７１）。
【０１９２】
ＳＴ２７０又はＳＴ２７１を経て、一時データファイルに複製がされた後に、この一時ファイルデータ内のレコード番号「ＬＲＲｅｃＮｏ」で示されるレコードの先頭アドレス「ＬＴＲｅｃＡｄｄｒ」を、
ＬＴＲｅｃＡｄｄｒ＝ＬＲｅｃＬｅｎ×（ＬＲＲｅｃＮｏ−１）
の式より算出する（ＳＴ２７２）。
【０１９３】
その後、一時ファイルデータ内においてＳＴ２７２にて算出した「ＬＴＲｅｃＡｄｄｒ」を先頭アドレスとしてレコード長「ＬＲｅｃＬｅｎ」分の領域に「ＷｒｉｔｅＤａｔａ」を書き込み（ＳＴ２７３）、また、この一時データファイルの内容を「ＬＢＢｌｏｃｋＡｄｄｒ」から始まるブロック群に複製する（ＳＴ２７４）とともに、「ＬＦｉｌｅＡｄｄｒ」から始まる共有データファイル管理情報を一時共有データファイル管理情報に複製する（ＳＴ２７５）。
【０１９４】
続いて、新規に更新するための新しい循環開始ブロック番号「ＬＳｔａｒｔＢｌｏｃｋ´」を、
（ＬＳｔａｒｔＢｌｏｃｋ＋ＬＲＲｅｃＮｕｍ−１）ｍｏｄ（ＬＲＲｅｃＮｕｍ＋１）
の式を用いて算出する。
【０１９５】
加えて、この共有データファイル管理情報内の既存の世代番号「ＬＨＮｕｍ」に対して新しい世代番号「ＬＨＮｕｍ´」を、
ＬＨＮｕｍ´＝ＬＨＮｕｍ＋１
の式より算出して（ＳＴ２７６）、一時共有データファイル管理情報内の循環開始ブロック群番号を「ＬＳｔａｒｔＢｌｏｃｋ´に、世代番号を「ＬＨＮｕｍ´」に変更する（ＳＴ２７７）。
【０１９６】
その後、一時共有データファイル管理情報を、ＳＴ２６６にて決定した「ＬＦｉｌｅＡｄｄｒ´」を先頭アドレスとするブロック群に複製して（ＳＴ２７８）、以上、ＳＴ２７８までの処理が完了した後に、情報処理端末γに正常終了の通知として応答を送信し（ＳＴ２７９）、循環データファイル内の共有レコード追記処理を終了する。
【０１９７】
続いて、図２２は、本方法例に係る共有データファイルの追記手順を示すフローチャートである。同図に示すように、前述のＳＴ１４２にて共有データファイルｆ３ｂを追記する処理を実行するにあたっては、まず、ＳＴ２８１〜ＳＴ２８７までの手順は図１９に示したＳＴ２２１〜ＳＴ２２７までの手順と同様のものであり、その説明は省略するものであるが、ＳＴ２８４において世代番号を比較した際に、世代番号が小さい共有データファイル管理情報の先頭アドレスを「ＬＦｉｌｅＡｄｄｒ´」とする。
【０１９８】
ＳＴ２８７において論理積の解「Ａｎｓ」が「００００００００ｂ」であった場合には、ＳＴ２２８同様に、情報処理端末γに対して、アクセス権不足による異常終了である旨通知する応答を為す（ＳＴ２８８）。一方、「００００００００ｂ」ではない場合には、「ＦｉｌｅＡｄｄｒ」を先頭アドレスとする共有データファイル管理情報内の循環開始ブロック群番号を「ＳｔａｒｔＢｌｏｃｋ」、データアドレスを「ＤａｔａＡｄｄｒ」、レコード数を「ＲｅｃＮｕｍ」、レコード長を「ＲｅｃＬｅｎ」、ブロック群長を「ＢｌｏｃｋＬｅｎ」、循環レコード数を「ＲＲｅｃＮｕｍ」、循環レコード番号を「ＲＲｅｃＮｏ」とおく（ＳＴ２８９）。
【０１９９】
続いて、先に引数として受け渡された追記対象を示す「ＲｅｃＮｏ」が、循環レコード番号「ＲＲｅｃＮｏ」と等しいものであるかどうか確認して（ＳＴ２９０）、等しくない場合は、一般レコードの追記手順を実行して（ＳＴ２９１）、等しい場合には、循環レコードの追記を行う（ＳＴ２９２）。ここで、ＳＴ２９１の手順は図１９に示したＳＴ２３０〜ＳＴ２３７の手順に従い実行可能なものである。
【０２００】
図２３は、共有データファイルの循環レコードの追記手順を示すフローチャートである。図２２に示したＳＴ２９２については、図２３を参照して説明する。
同図に示すとおり、まず、最新ブロック群の先頭アドレス「ＢｌｏｃｋＡｄｄｒ」を、
ＢｌｏｃｋＡｄｄｒ＝ＤａｔａＡｄｄｒ＋ＢｌｏｃｋＬｅｎ×（ＳｔａｒｔＢｌｏｃｋ−１）
の式より算出する。
【０２０１】
さらに、バックアップブロック群の先頭アドレス「ＢＢｌｏｃｋＡｄｄｒ」を、
ＢＢｌｏｃｋＡｄｄｒ＝ＤａｔａＡｄｄｒ＋ＢｌｏｃｋＬｅｎ×｛（ＳｔａｒｔＢｌｏｃｋ＋ＲＲｅｃＮｕｍ−１）ｍｏｄ（ＲＲｅｃＮｕｍ＋１）｝
の式を用いて算出する（ＳＴ３０１）。
【０２０２】
次いで、算出した「ＢｌｏｃｋＡｄｄｒ」を先頭アドレスとするブロック群が読み出せるかどうかを確認して（ＳＴ３０２）、読み出せない場合には、「ＢＢｌｏｃｋＡｄｄｒ」を先頭アドレスとするブロック群の内容を、「ＢｌｏｃｋＡｄｄｒ」から始まるブロック群と一時ファイルデータとに複製する（ＳＴ３０３）。一方、読み出せる場合には、この「ＢｌｏｃｋＡｄｄｒ」から始まるブロック群の内容を一時ファイルデータに複製する（ＳＴ３０４）。
【０２０３】
ＳＴ３０３又はＳＴ３０４にて複製された一時ファイルデータ内のレコード番号「ＲＲｅｃＮｏ」で示されるレコードの先頭アドレス「ＴＲｅｃＡｄｄｒ」を、
ＴＲｅｃＡｄｄｒ＝ＲｅｃＬｅｎ×（ＲＲｅｃＮｏ−１）
の式より算出して（ＳＴ３０５）、「ＴＲｅｃＡｄｄｒ」からレコード長「ＲｅｃＬｅｎ」分の領域に「ＷｒｉｔｅＤａｔａ」を書き込む（ＳＴ３０６）。
【０２０４】
さらに、一時共有データファイル管理情報の内容を「ＢＢｌｏｃｋＡｄｄｒ」から始まるブロック群に複製した（ＳＴ３０７）後に、「ＦｉｌｅＡｄｄｒ」から始まる共有データファイル管理情報の内容を一時共有データファイル管理情報に複製する（ＳＴ３０８）。
【０２０５】
続いて、新規に更新する新しい循環開始ブロック群番号「ＳｔａｒｔＢｌｏｃｋ´」を、
ＳｔａｒｔＢｌｏｃｋ´＝（ＳｔａｒｔＢｌｏｃｋ＋ＲＲｅｃＮｕｍ−１）ｍｏｄ（ＲＲｅｃＮｕｍ＋１）
の式を用いて算出する。
【０２０６】
さらに合わせて、既存の世代番号「ＬＨＮｕｍ」に対して新しい世代番号「ＬＨＮｕｍ´」を、
ＬＨＮｕｍ´＝ＬＨＮｕｍ＋１
の式より算出して（ＳＴ３０９）、一時共有データファイル管理情報内の循環開始ブロック群番号を「ＳｔａｒｔＢｌｏｃｋ´」に、世代番号を「ＬＨＮｕｍ´」にそれぞれ更新する（ＳＴ３１０）。
【０２０７】
その後、一時共有データファイル管理情報をＳＴ２８４にて決定した「ＬＦｉｌｅＡｄｄｒ´」を先頭アドレスとするブロック群に複製して（ＳＴ３１１）、ＳＴ３１１まで完了した後に、正常終了の通知として応答を情報処理端末γに送信して（ＳＴ３１２）、追記処理を終了する。
【０２０８】
以上、本発明の実施の形態につき、装置例及び方法例を挙げて説明したが、本発明は、必ずしも上述した手段及び手法にのみ限定されるものではなく、後述の効果を有する範囲内において、適宜、変更実施可能なものである。
【０２０９】
【発明の効果】
以上、詳細に説明したように、本発明によれば、ＥＥＰＲＯＭなど一般的な不揮発性メモリを搭載したＩＣカードにおいて、複数のファイルに分散したデータを一つの共有データファイルとして一度読み書きすることにより、その処理時間を大幅に短縮することが可能となり、処理時間を延ばすことなくカードに蓄積するデータの読み書き頻度やデータの長さに応じて、複数のファイルにデータを分散させて管理することができる。
【０２１０】
また、ＩＣカードに複数の事業者が相乗りしている交通機関の切符や、公共機関が発行するＩＤカードに民間が相乗りするなどのように、一枚のＩＣカードに複数の事業者のサービスを載せる場合にも、共通するデータを共有データファイルとして利用することで、処理時間を短縮することができる。
【０２１１】
さらに、非接触方式のＩＣカードにデータを書き込む途中に、電力が無くなる場合に、必要な書き込み保証の機能を共有データファイルに対して実現することにより、交通機関の切符として利用される場合等、リーダライタにＩＣカードをかざして通るときなど、電力供給が不安定な利用場面でも、安心してデータの書き換えが可能となる。
【０２１２】
しかも、共有データファイル以外のデータファイルは、国際規格ＩＳＯ／ＩＥＣ７８１６に準拠したＩＣカードと互換性を保つことが可能であり、ＩＣカードの不揮発性メモリに、例えば本発明に基づくプログラムを追加することにより、従来機能を拡張することが可能となる。
【図面の簡単な説明】
【図１】本発明の装置例に係るＩＣカードの機能構成図及び、それを動作させるためのリーダライタと情報処理端末の機能構成図である。
【図２】図１に示したＥＥＰＲＯＭにおいて採用されるデータファイル構造を示す図である。
【図３】同上、ＥＥＰＲＯＭにおけるディレクトリ及びデータファイルの管理情報の論理構成を示す図である。
【図４】同上、ＥＥＰＲＯＭの物理構成図である。
【図５】同上、ＲＡＭにおけるチャネル、一時共有データファイルの管理情報、及び一時ファイルデータの論理構成を示す図である。
【図６】本発明の方法例に係るディレクトリの選択手順を示すフローチャートである。
【図７】同上、鍵の照合手順を示すフローチャートである。
【図８】同上、データファイルの読み出し手順を示すフローチャートである。
【図９】同上、一般データファイルの読み出し手順を示すフローチャートである。
【図１０】同上、一般データファイルからの共有レコード読み出し手順を示すフローチャートである。
【図１１】同上、循環データファイルの読み出し手順を示すフローチャートである。
【図１２】同上、循環データファイルからの共有レコード読み出し手順を示すフローチャートである。
【図１３】同上、共有データファイルの読み出し手順を示すフローチャートである。
【図１４】同上、データファイルの追記・書き換え手順を示すフローチャートである。
【図１５】同上、一般データファイルの追記・書き換え手順を示すフローチャートである。
【図１６】同上、一般データファイルからの共有レコードの追記・書き換え手順を示すフローチャートである。
【図１７】同上、循環データファイルの書き換え手順を示すフローチャートである。
【図１８】同上、循環データファイルからの共有レコード書き換え手順を示すフローチャートである。
【図１９】同上、共有データファイルの書き換え手順を示すフローチャートである。
【図２０】同上、循環データファイルの追記手順を示すフローチャートである。
【図２１】同上、循環データファイルからの共有レコード追記手順を示すフローチャートである。
【図２２】同上、共有データファイルの追記手順を示すフローチャートである。
【図２３】同上、共有データファイルの循環レコードの追記手順を示すフローチャートである。
【符号の説明】
α…ＩＣカード
β…リーダライタ
γ…情報処理端末
１…ＩＣチップ
２…アンテナ
１１…ＣＰＵ
１２…ＲＯＭ
１３…ＲＡＭ
１４…ＥＥＰＲＯＭ
１５…ＲＦ部
ｄ０…ディレクトリ（ルートディレクトリ）
ｄ１，ｄ２，ｄ３…ディレクトリ
ｆ１，ｆ２…一般データファイル
ｆ３ａ…循環データファイル
ｆ３ｂ…共有データファイル
ｋ１，ｋ２，ｋ３…鍵ファイル
【図１】
2004310573.tif 000003
【図２】
2004310573.tif 000004
【図３】
2004310573.tif 000005
【図４】
2004310573.tif 000006
【図５】
2004310573.tif 000007
【図６】
2004310573.tif 000008
【図７】
2004310573.tif 000009
【図８】
2004310573.tif 000010
【図９】
2004310573.tif 000011
【図１０】
2004310573.tif 000012
【図１１】
2004310573.tif 000013
【図１２】
2004310573.tif 000014
【図１３】
2004310573.tif 000015
【図１４】
2004310573.tif 000016
【図１５】
2004310573.tif 000017
【図１６】
2004310573.tif 000018
【図１７】
2004310573.tif 000019
【図１８】
2004310573.tif 000020
【図１９】
2004310573.tif 000021
【図２０】
2004310573.tif 000022
【図２１】
2004310573.tif 000023
【図２２】
2004310573.tif 000024
【図２３】
2004310573.tif 000025