(57)【要約】      （修正有）【課題】データメモリに記憶されているレコード単位のデータの管理を効率化することができる携帯可能電子装置としてのＩＣカードおよび携帯可能電子装置におけるデータ処理方法を提供する。【解決手段】データメモリにレコード単位のデータを格納するデータファイルを記憶するＩＣカードにおいて、リーダライタからデータメモリに記憶されている指定レコードへのアクセスを要求するコマンドを受信した場合、アクセスを要求されたレコードが共有データであるか否かを判断し、この判断により前記コマンドで指定されたレコードが共有データであると判断した場合、当該レコードのデータで指定される共有先のデータを当該レコードのデータとしてアクセスする。【選択図】図１５
2010072965.tif 000002
【特許請求の範囲】
【請求項１】
レコード単位のデータを格納するデータファイルを記憶する記憶手段と、
外部装置とのデータ通信を行うための通信手段と、
前記通信手段により指定レコードへのアクセスを要求するコマンドを受信した場合、アクセスが要求されたレコードが共有データであるか否かを判断する判断手段と、
この判断手段により前記コマンドで指定されたレコードが共有データであると判断した場合、当該レコードのデータとしての共有先を示す情報に基づいて、当該レコードの共有先のデータにアクセスする処理手段と、
を有することを特徴とする携帯可能電子装置。
【請求項２】
前記記憶手段は、前記データファイルに格納される各レコードに対してそれぞれ共有データであるか否かを示す状態識別子を記憶し、
前記判断手段は、前記状態識別子により前記コマンドで指定されたレコードが共有データであるか否かを判断する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
さらに、前記通信手段により指定レコードに共有データを設定することを要求するコマンドを受信した場合、指定レコードのデータに共有先を示す情報を書き込む共有設定手段を有する、
ことを特徴とする前記請求項１又は２の何れかに記載の携帯可能電子装置。
【請求項４】
前記共有設定手段は、前記指定レコードのデータに、共有先を示す情報として、共有先のレコードのアドレス情報を書き込む、
ことを特徴とする前記請求項３に記載の携帯可能電子装置。
【請求項５】
前記共有設定手段は、前記指定レコードのデータに、共有先を示す情報として、共有先のレコードを格納しているデータファイルを示す情報と当該データファイルにおけるレコード識別情報とを書き込む、
ことを特徴とする前記請求項３に記載の携帯可能電子装置。
【請求項６】
前記処理手段は、前記判断手段により読出しを要求するコマンドで指定されたレコードが共有データであると判断した場合、共有先のデータを読み出し、読み出したデータを当該レコードのデータとして前記外部装置へ送信する処理を行う、
ことを特徴とする前記請求項１乃至５の何れかに記載の携帯可能電子装置。
【請求項７】
前記処理手段は、前記判断手段により書換えを要求するコマンドで指定されたレコードが共有データであると判断された場合、共有先のデータを前記書換えを要求するコマンドで指定されるデータに書換える処理を行う、
ことを特徴とする前記請求項１乃至５の何れかに記載の携帯可能電子装置。
【請求項８】
前記各手段を有するモジュールと、
前記モジュールが埋設される本体と、
を有することを特徴とする前記請求項１乃至７の何れかに記載の携帯可能電子装置。
【請求項９】
データを記憶する記憶手段と外部装置とのデータ通信を行う通信手段とデータ処理を行う制御手段とを有する携帯可能電子装置におけるデータ処理方法であって、
レコード単位のデータを格納するデータファイルを記憶手段に記憶し、
前記通信手段により指定レコードへのアクセスを要求するコマンドを受信した場合、アクセスが要求されたレコードが共有データであるか否かを判断し、
この判断により前記コマンドで指定されたレコードが共有データであると判断した場合、当該レコードのデータとしての共有先を示す情報に基づいて当該レコードの共有先のデータにアクセスする、
ことを特徴とする携帯可能電子装置におけるデータ処理方法。
【請求項１０】
前記記憶手段には、前記データファイルに格納される各レコードに対してそれぞれ共有であるか否かを示す状態識別子を記憶し、
前記判断は、前記状態識別子により前記コマンドで指定されたレコードが共有データであるか否かを判断する、
ことを特徴とする前記請求項９に記載の携帯可能電子装置におけるデータ処理方法。
【請求項１１】
さらに、前記通信手段により指定レコードに共有データを設定することを要求するコマンドを受信した場合、前記指定レコードのデータに、共有先を示す情報を書き込む、
ことを特徴とする前記請求項９又は１０の何れかに記載の携帯可能電子装置におけるデータ処理方法。
【請求項１２】
さらに、前記通信手段により指定レコードに共有データを設定することを要求するコマンドを受信した場合、前記指定レコードのデータに、共有先を示す情報として、共有先のレコードのアドレス情報を書き込む、
ことを特徴とする前記請求項９又は１０の何れかに記載の携帯可能電子装置におけるデータ処理方法。
【請求項１３】
さらに、前記通信手段により指定レコードに共有データを設定することを要求するコマンドを受信した場合、前記指定レコードのデータに、共有先を示す情報として、共有先のレコードを格納しているデータファイルを示す情報と当該データファイルにおけるレコード識別情報とを書き込む、
ことを特徴とする前記請求項９又は１０の何れかに記載の携帯可能電子装置におけるデータ処理方法。
【請求項１４】
前記処理は、前記判断により読出しを要求するコマンドで指定されたレコードが共有データであると判断した場合、共有先のデータを読み出して、読み出したデータを当該レコードのデータとして前記外部装置へ送信する処理である、
ことを特徴とする前記請求項９乃至１３の何れかに記載の携帯可能電子装置におけるデータ処理方法。
【請求項１５】
前記処理は、前記判断により書換えを要求するコマンドで指定されたレコードが共有データであると判断した場合、共有先のデータを前記書換えを要求するコマンドで指定されるデータに書換える処理である、
ことを特徴とする前記請求項９乃至１３の何れかに記載の携帯可能電子装置におけるデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、書込み或いは書換えが可能な不揮発性メモリ、および、ＣＰＵなどを有するＩＣ（集積回路）チップを内蔵し、外部から供給されるコマンドに基づいて各種処理を実行するＩＣカード等の携帯可能電子装置、および、携帯可能電子装置におけるデータ処理方法に関する。
【背景技術】
【０００２】
近年、携帯可能な電子装置としてのＩＣカードが広く普及してきている。ＩＣカードは、ＣＰＵ、各種メモリおよび通信インターフェースなどを有するＩＣチップが内蔵されている。ＩＣカードは、データ記録部として磁気ストライブのみを有する磁気カードと比較すると、大量のデータを処理できる。このため、１つのＩＣカードが、複数の用途（たとえば、キャッシュカード、ＩＤカード、プリペイドカード、ポイントカード）で利用される運用形態が実現できる。このようなＩＣカードにおいて、各種の用途で使用する各種データは、各用途に対応するアプリケーションとして保持される。言い換えれば、ＩＣカードは、複数のアプリケーションを保持することにより複数の用途で使用可能となる。
【０００３】
上記のような各アプリケーションのデータは、ファイル形式でＩＣカード内のデータメモリに記憶される（たとえば、特許文献１）。このため、ＩＣカードのデータメモリ内には、複数のアプリケーションに対応する種々のファイルが記憶される。データメモリ内の各ファイルは、アプリケーションの識別情報などにより特定される。すなわち、外部装置は、ＩＣカードに対して、アプリケーションの識別情報を指定することにより、特定のファイルへのアクセスを要求する。
【０００４】
上記のような各アプリケーションの仕様はそれぞれ異なる。ただし、各アプリケーションで同じデータが必要となることも多い。このような異なる複数のアプリケーションで同じデータをそれぞれ記憶することは、データ管理の効率化（データ領域の節約、データの更新処理などの効率化、あるいは、各アプリケーション間の特定データにおける整合性の保証など）の観点からすると、好ましくない状態であると考えられる。
【特許文献１】特開平３−２２４０４７号公報
【特許文献２】特開平１１−２８２９８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明の一形態は、メモリに記憶するデータの管理を効率化することができる携帯可能電子装置および携帯可能電子装置におけるデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明の一形態としての携帯可能電子装置は、レコード単位のデータを格納するデータファイルを記憶する記憶手段と、外部装置とのデータ通信を行うための通信手段と、前記通信手段により指定レコードへのアクセスを要求するコマンドを受信した場合、アクセスが要求されたレコードが共有データであるか否かを判断する判断手段と、この判断手段により前記コマンドで指定されたレコードが共有データであると判断した場合、当該レコードのデータとしての共有先を示す情報に基づいて当該レコードの共有先のデータにアクセスする処理手段とを有する。
【０００７】
この発明の一形態としての携帯可能電子装置におけるデータ処理方法は、データを記憶する記憶手段と外部装置とのデータ通信を行う通信手段とデータ処理を行う制御手段とを有する携帯可能電子装置における方法であって、レコード単位のデータを格納するデータファイルを記憶手段に記憶し、前記制御手段は、前記通信手段により指定レコードへのアクセスを要求するコマンドを受信した場合、アクセスが要求されたレコードが共有データであるか否かを判断し、この判断により前記コマンドで指定されたレコードが共有データであると判断した場合、当該レコードのデータとしての共有先を示す情報に基づいて当該レコードの共有先のデータにアクセスする。
【発明の効果】
【０００８】
この発明の一形態によれば、メモリに記憶するデータの管理を効率化することができる携帯可能電子装置および携帯可能電子装置におけるデータ処理方法を提供できる。
【発明を実施するための最良の形態】
【０００９】
以下、この発明の実施の形態について図面を参照して説明する。  
図１は、本発明の実施の形態に係るＩＣカード（携帯可能電子装置）１を含むＩＣカードシステムの構成例を概略的に示すものである。  
図１に示すように、本ＩＣカードシステムは、情報センタ２、通信網３、ＰＣ４、リーダライタ５などにより構成されている。上記情報センタ２は、通信網３を介してＰＣ４に接続されている。上記情報センタ２は、本ＩＣカードシステムに利用されるデータを総括的に管理するサーバ装置である。本ＩＣカードシステムにおいて、上記情報センタ２は、各ＰＣ４に対する上位装置として機能する。また、上記通信網３は、たとえば、公衆電話網あるいは公衆無線通信網などの通信網である。
【００１０】
上記ＰＣ４は、パーソナルコンピュータなどの電子計算機である。上記ＰＣ４は、リーダライタ５に接続される。上記ＰＣ４は、上記リーダライタ５によりＩＣカード１へコマンドを送信する機能、ＩＣカード１から受信したデータを基に種々の処理を行う機能などを有している。  
上記ＰＣ４は、図１に示すように、演算部１１、ハードディスクドライブ（ＨＤＤ）１２、キーボード１３、および、ディスプレイ１４などを有している。
【００１１】
上記演算部１１は、ＣＰＵ１５、および、メモリ１６などを有している。上記ＣＰＵ１５は、演算処理などのデータ処理を行うユニットである。上記ＣＰＵ１５は、プログラムに従ってデータ処理を行う。上記メモリ１６は、作業用のデータを一時的に格納するワーキングメモリ、ＣＰＵ１５が実行するプログラムあるいは制御データなどが記憶されているプログラムメモリなどを有している。このような構成により、上記演算部１１では、ＣＰＵ１５が上記メモリ１６に記憶されているプログラムを実行することにより、種々の処理を実現している。
【００１２】
上記ハードディスクドライブ（ＨＤＤ）１２は、書換え可能な大容量の不揮発性メモリである。上記ＨＤＤ１２は、補助記憶装置として機能する。たとえば、上記ＨＤＤ１２には、機密情報としての電子データファイル１，２，３，・・・が格納される。これらのＨＤＤ１２に格納される電子データファイルのデータは、上記演算部１１による制御に従ってリーダライタ５を介してＩＣカード１へ送信できるようになっている。上記キーボード１３は、当該ＰＣ４の操作員が操作する操作部として機能する。上記キーボード１３は、操作員が種々の操作指示あるいはデータなどを入力するためのものである。上記ディスプレイ１４は、上記ＰＣ４の制御により種々の情報を表示する表示装置である。
【００１３】
上記リーダライタ５は、上記ＩＣカード１との通信を行うためのインターフェース装置である。上記リーダライタ５は、図示しない内部メモリおよび通信制御部などを有する外部装置である。また、上記リーダライタ５は、上記ＩＣカード１の通信方式に応じたインターフェースにより構成される。たとえば、上記ＩＣカード１が接触型のＩＣカードである場合、上記リーダライタ５は、ＩＣカード１のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。また、上記ＩＣカード１が非接触型のＩＣカードである場合、上記リーダライタ５は、ＩＣカード１との無線通信を行うためのアンテナおよび通信制御などにより構成される。上記リーダライタ５では、上記ＩＣカード１に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってリーダライタ５は、上記ＰＣ４による制御に基づいて上記ＩＣカード１の活性化（起動）、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
【００１４】
次に、上記ＩＣカード１のハードウエア構成例について説明する。  
上記ＩＣカード１は、上記リーダライタ５を介してＰＣ４などの上位装置から電力供給を受けた際、活性化される（動作可能な状態になる）ようになっている。例えば、上記ＩＣカード１が接触型の通信機能を具備している場合、つまり、ＩＣカード１が接触型のＩＣカードで構成される場合、上記ＩＣカード１は、通信インターフェースとしてのコンタクト部を介してリーダライタ５からの動作電源及び動作クロックの供給を受けて活性化される。
【００１５】
また、上記ＩＣカード１が非接触型の通信機能を具備している場合、つまり、上記ＩＣカード１が非接触式のＩＣカードで構成される場合、上記ＩＣカード１は、通信インターフェースとしてのアンテナ及び変復調回路などを介してリーダライタ５からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００１６】
図２は、本実施の形態に係るＩＣカード１のハードウエア構成例を概略的に示すブロック図である。  
上記ＩＣカード１は、本体Ｂを構成する筐体内にモジュールＭが内蔵されている。上記モジュールＭは、１つまたは複数のＩＣチップＣと通信用の外部インターフェース（通信部）とが接続された状態で一体的に形成され、ＩＣカード１の本体Ｂ内に埋設されている。また、上記ＩＣカード１のモジュールＭは、図２に示すように、ＣＰＵ（制御素子）２１、データメモリ２２、ワーキングメモリ２３、プログラムメモリ２４、および、通信部２５などを有してしている。また、図２に示す構成例では、本体Ｂには、磁気ストライプ２０が設けられている。
【００１７】
上記制御素子２１は、当該ＩＣカード１全体の制御を司るものである。上記ＣＰＵ２１は、上記プログラムメモリ２４あるいは上記データメモリ２２に記憶されている制御プログラムおよび制御データに基づいて動作することにより、種々の機能を実現する。たとえば、上記ＣＰＵ２１は、オペレーティングシステムのプログラムを実行することにより、当該ＩＣカード１の基本的な動作制御を行う。また、上記ＣＰＵ２１は、当該ＩＣカード１の利用目的に応じたアプリケーションプログラムを実行することにより、当該ＩＣカード１の運用形態に応じた種々の動作制御を行う。
【００１８】
上記データメモリ２２は、例えば、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read-Only  Memory）あるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。上記データメモリ２２には、当該ＩＣカード１の運用用途に応じた制御プログラムあるいは種々のデータが書込まれる。上記データメモリ２２には、当該ＩＣカード１の規格に応じた種々のファイルが定義され、それらのファイルに種々のデータが書き込まれる。上記データメモリ２２に格納されるファイルの例については、後述する。
【００１９】
上記ワーキングメモリ２３は、ＲＡＭなどの揮発性のメモリである。また、上記ワーキングメモリ２３は、ＣＰＵ２１が処理中のデータなどを一時保管するバッファとしても機能する。たとえば、上記ワーキングメモリ２３には、カレント状態となっているファイルあるいはアプリケーションを示す情報なども格納される。  
上記プログラムメモリ２４は、予め制御用のプログラムや制御データなどが記憶されているマスクＲＯＭなどの不揮発性のメモリである。上記プログラムメモリ２４には、当該ＩＣカードの製造段階で制御プログラムあるいは制御データなどが記憶された状態でＩＣカード１内に組み込まれる。上記プログラムメモリ２４に記憶されている制御プログラムあるいは制御データは、当該ＩＣカードの基本的な動作を司るものであり、予め当該ＩＣカード１の仕様に応じて組み込まれるものである。
【００２０】
上記通信部２５は、上記リーダライタ５を介して上記ＰＣ４と通信するためのインターフェースである。当該ＩＣカード１が接触型のＩＣカードとして実現される場合、上記通信部２５は、上記リーダライタ５と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、当該ＩＣカード１が非接触型のＩＣカードとして実現される場合、上記通信部２５は、上記リーダライタ５との無線通信を行うための変復調回路などの通信制御部および電波を送受信するためのアンテナなどにより構成される。
【００２１】
次に、上記データメモリ２２に格納されるファイルについて説明する。  
図３は、上記データメモリ２２に格納されるファイルの構成例を示す図である。  
図３では、複数のアプリケーションに関する情報が記憶される複数のファイルの構成例を示している。図３に示すようなファイル構成は、ＩＳＯ／ＩＥＣ７８１６−４で定義されている事項に基づくものである。図３に示すファイル構成では、ＩＳＯ／ＩＥＣ７８１６−４に定義される種々のファイルをツリー構造で管理する。
【００２２】
図３に示すように、上記データメモリ２２には、ＭＦ（Master File）、ＤＦ(Dedicated File)およびＥＦ(Elementary File)などからなる階層構造を有する複数のファイルが定義される。図３に示す例では、最上階層のマスターファイル（ＭＦ）３１の次の階層には、第１ＥＦ（キーＥＦ）３２、第１ＤＦ（ＤＦ１）３３、第２ＤＦ（ＤＦ２）３４および第３ＤＦ（ＤＦ３）３５が存在している。上記第１ＤＦ（ＤＦ１）３３の配下として、ＤＦ１の次の階層には、ＤＦ１の第１ＥＦ（ＥＦ１−１）３６、および、ＤＦ１の第２ＥＦ（ＥＦ１−２）３７が存在している。上記第２ＤＦ（ＤＦ２）３４の配下として、ＤＦ２の次の階層には、ＤＦ２の第１ＥＦ（ＥＦ２−１）３８、および、ＤＦ２の第２ＥＦ（ＥＦ２−２）３９が存在している。
【００２３】
上記ＭＦ３１は、上記データメモリ２２に格納されている各種ファイルに対するファイル構成において、最上位に位置する。上記各ＤＦ（ＤＦ１、ＤＦ２、ＤＦ３）は、それぞれアプリケーションに対応して設けられる。上記各ＤＦは、各アプリケーションに相当するフォルダとして機能する。このため、上記データメモリ２２には、少なくともアプリケーション数に相当する数のＤＦが定義される。上記各ＥＦは、実データを格納するデータファイルである。すなわち、ＤＦの配下の各ＥＦは、ＤＦが対応するアプリケーションで使用されるデータを格納する。また、ＥＦは、図３に示すように、ＭＦ３１直下の階層に設けることも可能である。図３に示す上記キーＥＦ３２は、アクセス権を確立するためのキー（鍵情報）などを格納するデータファイルである。
【００２４】
また、ＤＦに相当するアプリケーションの例としては、Ｘ社向けのアプリケーション、Ａ社向けのアプリケーション、および、Ｂ社向けのアプリケーションを想定する。例えば、図３に示すファイル構成において、Ｘ社向けのアプリケーション、Ａ社向けのアプリケーション、および、Ｂ社向けのアプリケーションとして、それぞれＤＦ１、ＤＦ２、ＤＦ３が設けられるものする。この場合、ＤＦ１の配下には、Ｘ社向けのアプリケーションで使用されるデータがＥＦ１−１およびＥＦ１−２に格納される。また、ＤＦ２の配下には、Ａ社向けのアプリケーションで使用されるデータがＥＦ２−１およびＥＦ２−２に格納される。
【００２５】
次に、上記データメモリ２２におけるデータ管理情報について説明する。  
図４は、図３に示すようなファイル構成例に対するデータメモリ２２におけるメモリマップの例を示す図である。図４に示すように、上記データメモリ２２には、制御領域２２ａ、ディレクトリ領域２２ｂ、エリア群領域２２ｃ、および、空き領域２２ｄが設けられている。上記制御領域２２ａには、データメモリ２２内に格納されているデータを管理するための制御情報が格納される。上記ディレクトリ領域２２ｂには、各ファイル（ＤＦおよびＥＦ）の定義情報が格納される。上記エリア群領域２２ｃは、各ＥＦの定義情報により定義されるデータエリア（つまり、各ＥＦのデータエリア）が設けられる。上記空き領域２２ｄは、未使用の記憶領域である。上記空き領域２２ｄは、ファイルの追加などに応じて適宜、ディレクトリ領域２２ｂあるいはエリア群領域２２ｃとして使用される領域である。
【００２６】
図４に示す例において、上記ディレクトリ領域２２ｂには、キーＥＦ、ＤＦ１、ＤＦ２、ＤＦ３、ＥＦ１−１、ＥＦ１−２、ＥＦ２−１、ＥＦ２−２に対する定義情報４１〜４７が格納される。エリア群領域２２ｃには、上記ディレクトリ領域２２ｂ内の定義情報で定義される各ＥＦのデータエリアが設けられている。さらに、上記エリア群領域２２ｃは、属するＤＦ毎にグループ化されている。
【００２７】
次に、ＤＦの定義情報について説明する。  
図５は、ＤＦの定義情報におけるフォーマットの構成例を示す図である。  
図５に示すように、上記各ＤＦの定義情報（ＤＦ定義情報）４２、４５、４８は、ファイル識別子部１０１、ＤＦ名部１０２、アクセス条件部１０３、アクセスカウンタ部１０４、ＤＦ優先順位部１０５、ＤＦ固有番号部１０６、ＤＦ固有情報部１０７、及びチェックバイト部１０８から構成されている。
【００２８】
上記ファイル識別子部１０１は、ＤＦのファイル種別を識別するための識別情報（ＤＦファイル識別子）を格納する。ＤＦファイル識別子は、たとえば、ＤＦとしてのファイルの種類毎に付与される情報である。上記ＤＦ名部１０２は、ＤＦに付与されているＤＦ名を格納する。ＤＦ名は、たとえば、利用者が各ＤＦを識別するための識別情報などとして利用される。上記アクセス条件部１０３は、照合条件を示す情報を格納する。照合条件は、対応するＤＦへアクセスする際に必須な条件である。上記アクセスカウンタ部１０４は、ＤＦへのアクセス回数を示す情報を格納する。アクセス回数は、対応するＤＦへのアクセスが行われるごとにカウントアップされる。
【００２９】
上記ＤＦ優先順位部１０５は、全ＤＦにおいて、対応するＤＦの優先順位を示す情報を格納する。優先順位は、各ＤＦに予め設定される。上記ＤＦ固有番号部１０６は、ＤＦ毎に与えられるＤＦ固有番号を格納する。上記ＤＦ固有番号は、当該ＤＦを作成する際に当該ＩＣカード１内で生成される各ＤＦに固有な番号情報である。たとえば、上記ＤＦ固有番号は、全ＤＦにおける当該ファイルの作成順で付与される作成番号を用いることが可能である。上記ＤＦ固有情報部１０７は、ＤＦ毎に固有な情報を格納している。上記チェックバイト部１０８は、ファイルチェックバイトを格納する。ファイルチェックバイトは、データの正当性をチェックするための情報である。
【００３０】
次に、ＥＦの定義情報について説明する。  
各ＥＦは、格納するデータの構造に応じた種々のファイル形式がある。たとえば、上記各ＥＦに格納されるデータ構造には、バイナリ型（Transparent structure）、レコード型（Record structure）、データオブジェクト型（TLV(Tag Length Value) structure）などがある。本実施の形態では、主として、ＥＦがレコード型のデータを格納するレコードＥＦであることを想定するものとする。レコードＥＦには、レコード単位で種々のデータが格納される。ここでは、ＥＦの定義情報の例としてレコードＥＦの定義情報の構成例について説明するものとする。
【００３１】
図６は、ＥＦの定義情報におけるフォーマットの構成例を示す図である。  
図６に示すように、上記各ＥＦの定義情報（ＥＦ定義情報）４１、４３、４４、４６、４７は、ファイル識別子部２０１、ＤＦ固有番号部２０２、ＥＦ−ＩＤ部２０３、レコードサイズ部２０４、レコード数部２０５、データエリア先頭アドレス部２０６、セキュリティ条件部２０７、共有の許可情報部２０８、共有時のセキュリティ条件情報部２０９、および、チェックバイト部２１０により構成されている。
【００３２】
上記ファイル識別子部２０１は、当該ＥＦのファイル種別を識別するためのＥＦ識別情報（ＥＦファイル識別子）を格納する。ＥＦファイル識別子は、各ＥＦとしてのファイルの種類毎にユニークな情報である。ＤＦ固有番号部２０２は、当該ＥＦが属しているＤＦを識別するためのＤＦ固有番号を格納している。上記ＤＦ固有番号は、上記ＤＦ定義情報におけるＤＦ固有番号部１０６に格納されるＤＦ固有番号と対応するものである。上記ＥＦ−ＩＤ部２０３は、当該ＥＦを識別するために付与される識別情報としてのＥＦ−ＩＤを格納している。ＥＦ−ＩＤは、各ＥＦに固有な識別情報である。上記レコードサイズ部２０４は、当該ＥＦにおけるレコードサイズを示すレコードサイズ情報を格納している。レコード数部２０５は、当該ＥＦにおけるレコード数を示すレコード数情報を格納している。データエリア先頭アドレス部２０６は、上記データメモリ２２上における当該ＥＦとしてのデータエリアの先頭アドレスを格納している。
【００３３】
上記セキュリティ条件部２０７は、当該ＥＦにアクセスするために必須な条件（照合条件）を格納している。上記共有の許可情報部２０８は、共有の許可あるいは不許可を示す情報を格納している。上記共有時のセキュリティ条件情報部２０９は、当該ＥＦが共有化される場合に当該ＥＦにアクセスするために必須な条件（照合条件）を格納している。上記チェックバイト部２１０は、ＥＦにおけるデータ全ての正当性をチェックするためのファイルチェックバイトを格納している。
【００３４】
次に、上記のようなＥＦ定義情報により定義されるＥＦのデータエリアにおけるレコード構造について説明する。  
図７は、上記のようなＥＦ定義情報により定義される１つのＥＦのデータエリアにおけるデータの構成例を示す図である。  
たとえば、ＥＦ１−１、ＥＦ１−２、ＥＦ２−１、ＥＦ２−２のデータエリア５１、５２、５４、５５は、図７に示すようなフォーマットの構成を有している。図７に示すように、各ＥＦのデータエリアには、レコード単位のデータフォーマットが定義される。これにより、各ＥＦのデータエリアには、レコード単位のデータ（レコード）を複数格納できるようになっている。各レコードは、図７に示すように、状態識別子３０１、データ長３０２、データ３０３、および、ファイルチェックバイト３０４から構成される。各レコードでは、これらのデータが順に書込まれる。たとえば、状態識別子３０１およびデータ長３０２は、所定のサイズで書込まれる。さらに、データ３０３は、データ長３０２で示される長さのデータである。
【００３５】
上記状態識別子３０１は、当該レコードの状態を識別するための情報である。即ち、当該レコードが作成された直後（初期状態）、上記状態識別子３０１は、「未書き込み」を示す情報となる。また、当該レコードにデータが書き込まれた場合、上記状態識別子３０１は「書き込み済」を示す情報となる。また、当該レコードが共有設定された場合、上記状態識別子３０１は、「共有」を示す情報となる。
【００３６】
上記データ長３０２は、データ３０３の長さを示す情報である。たとえば、上記データ長３０２は、上記状態識別子３０１が「未書き込み」を示す情報である場合（データ３０３が存在しない場合）、ゼロ（０）を示す情報となる。上記データ長３０２は、上記状態識別子３０１が「書き込み済」の場合、データ３０３の長さを示す情報となる。上記データ長３０２は、上記状態識別子３０１が「共有」の場合、データ３０３には共有先（リンク先）を示す情報が格納されるため、上記共有先を示す情報の長さを示す情報となる。  
上記データ３０３は、上記状態識別子３０１が「書き込み済」の場合、当該レコードにおける実データそのものとなる。また、上記データ３０３は、上記状態識別子３０１が「共有」を示す情報である場合、共有先を示す情報となる。共有先を示す情報は、後で詳細に説明するが、たとえば、共有先のレコードの先頭アドレスを示す情報、あるいは、共有先のレコードを特定するための共有先情報などである。
【００３７】
図８は、３つのレコード（Ｒ１、Ｒ２、Ｒ３）からなるデータエリアの構成例を示す図である。  
図８に示す各レコード（Ｒ１、Ｒ２、Ｒ３）において、上記状態識別子３０１は「書き込み済」を示す情報であり、上記データ長３０２はその後に続くデータ３０３の長さを示す情報である。また、レコードＲ１では、データ３０３として、口座情報識別子、口座情報長および口座情報値からなる口座情報と、磁気ストライプデータ識別子、磁気ストライプデータ長および磁気ストライプデータ値からなる磁気ストライプ情報とが格納されている。レコードＲ２では、データ３０３として、保有者氏名識別子、保有者氏名値長および保有者氏名とからなる保有者氏名情報が格納されている。レコードＲ３では、データ３０３として、有効期限識別子、有効期限長および有効期限からなる有効期限情報が格納されている。
【００３８】
次に、共有データの設定について説明する。  
上記ＩＣカード１は、上記リーダライタ５からのコマンドに応じて種々の処理を実行するものである。共有データの設定についても、上記ＩＣカード１は、上記リーダライタ５から命令（コマンド）に応じて共有データの設定処理を行う。  
図９は、共有データの設定を要求するコマンド（共有データ設定コマンド）の構成例を示す図である。  
図９に示すように、共有データ設定コマンド４００は、コマンドヘッダ部４０１、Ｌｃ部４０６およびデータ部４０７により構成されている。さらに、コマンドヘッダ部４０１は、ＣＬＡ部４０２、ＩＮＳ部４０３、Ｐ１部４０４およびＰ２部４０５により構成されている。上記コマンドヘッダ部４０１は、当該コマンドが共有データ設定コマンドであることを示す情報により構成される。ＣＬＡ部４０２およびＩＮＳ部４０３には当該コマンドの種類が共有データ設定コマンドであることを示す情報が格納され、Ｐ１部およびＰ２部には当該コマンドを実行する際のパラメータが格納される。上記Ｌｃ部は、データ部４０７の長さを示す情報が格納される。
【００３９】
上記データ部４０７には、共有データを作成するためのデータが格納される。図１０は、共有データ設定コマンド４００におけるデータ部４０７の例を示す図である。図１０に示す例では、「設定するＥＦのＥＦ−ＩＤ」、「共有するＥＦが所属するＤＦ名」、「共有するＥＦのＥＦ−ＩＤ」、および、「共有するＥＦのレコード番号」がデータ部４０７に格納されている。これらの各情報は、共有化される２つのレコードを特定するための情報である。図１０に示す例では、あるＤＦ（たとえばカレントＤＦ）に属するＥＦ内のレコードを既存の別のＤＦに属するＥＦ内のレコードに共有化（リンク）させるために必要な情報を示している。
【００４０】
図１０に示す例において、「設定するＥＦ」は、共有を設定するレコードを格納するＥＦである。つまり、「設定するＥＦのＥＦ−ＩＤ」は、共有を設定するレコードを格納するＥＦのＥＦ−ＩＤである。「共有するＥＦ」は、共有先のレコード（つまり共有を設定するレコードが参照すべきレコード）を格納するＥＦである。つまり、「共有するＥＦが所属するＤＦ名」は、共有先のレコードを格納するＥＦが所属するＤＦのＤＦ名である。「共有するＥＦのＥＦ−ＩＤ」は、共有先のレコードを格納するＥＦのＥＦ−ＩＤである。「共有するＥＦのレコード番号」は、共有先のレコード番号であり、「共有するＥＦのＥＦ−ＩＤ」で指定されるＥＦ内におけるレコード番号を示している。
【００４１】
上記ＩＣカード１のＣＰＵ２１は、図９に示すような共有データ設定コマンド４００を受信した場合、コマンドヘッダ部４０１により当該コマンドが共有データ設定コマンドであることを判別する。上記コマンドヘッダ部４０１により受信したコマンドが共有データ設定コマンドであることと判別した場合、ＩＣカード１のＣＰＵ２１は、図１０に示すような共有データ設定コマンドにおけるデータ部４０７の情報に基づいて共有データを作成する処理（共有データの設定処理）を実行する。この共有データの設定処理が完了すると、上記ＣＰＵ２１は、その処理結果を上記共有データ設定コマンド４００に対するレスポンスとしてリーダライタ５へ送信する。
【００４２】
図１１は、上記コマンドに対するレスポンスデータ６００の構成例を示す図である。図１１に示す例では、レスポンスデータ６００は、第１ステータスコード部６０１と第２ステータスコード部６０２とにより構成される。たとえば、上記共有データ設定コマンド４００に対しては、第１ステータスコード部６０１と第２ステータスコード部６０２とに共有データの設定処理の結果を示す情報が格納される。これにより、上記共有データ設定コマンド４００の送信元のリーダライタ５では、上記レスポンスデータ６００により当該ＩＣカード１内において共有データの設定ができたか否かを確認できる。
【００４３】
また、図１２は、共有データの設定処理により生成された１つのＥＦのデータエリアの構成例を示す図である。  
たとえば、図７に示すＥＦのデータエリアに対してレコードＲ２を別のレコードと共通化する共有データの設定処理を実行すると、図１２に示すようなＥＦのデータエリアが設定される。図１２に示す例では、レコードＲ２の状態識別子３０１が共有を示す情報となっており、かつ、データ３０３としては共有先を示す情報として共有先のエリアの先頭アドレス情報が格納されている。これにより、図１２に示すＥＦのデータエリアにおいてレコードＲ２にアクセスする場合、上記ＣＰＵ２１は、状態識別子３０１によりレコードＲ２が共通データであることを判別する。上記レコードＲ２が共有データであると判別すると、上記ＣＰＵ２１は、上記レコードＲ２のデータ３０３で示されるアドレス情報を参照することにより、レコードＲ２のデータとして共有先のデータへアクセスする。
【００４４】
次に、上記ＩＣカード１における種々の処理について説明する。  
上記ＩＣカード１は、上記のようなデータファイル（ＥＦ）内の各レコードへのアクセスを要求する種々のコマンドに応じて種々の処理を実行する。このような種々のコマンドは、外部装置（リーダライタ）５からＩＣカード１へ与えられる。たとえば、上記ＩＣカード１は、外部装置（リーダライタ）５から与えられる共有データ設定コマンドに応じて、特定のレコードを共有化するための共有データの設定処理を実行する。また、上記ＩＣカード１は、外部装置（リーダライタ）５から与えられる共有設定されているレコードを指定した読出しコマンドに応じて、共有先のレコードのデータを読出す処理を行う。また、上記ＩＣカード１は、外部装置（リーダライタ）５から与えられる共有設定されているレコードを指定したデータの書換えコマンドに応じて、共有先のレコードのデータを上記コマンドで指定されたデータに書き換える処理を行う。
【００４５】
以下、上記ＩＣカード１における共有データの設定処理、読出し処理、および、書込み処理について詳細に説明する。  
まず、上記共有データの設定処理について詳細に説明する。  
図１３および図１４は、共有データ設定コマンドを受信した場合の処理（共有データの設定処理）の流れを説明するためのフローチャートである。  
まず、外部装置としてのリーダライタ５は、ＩＣカード１に対して、特定のＥＦにおける特定のレコードを別のレコードと共有化させる共有データ設定コマンド４００を供給したものとする。すると、上記ＩＣカード１では、上記通信部２５により共有データ設定コマンド４００を受信する。受信したコマンドは、上記通信部２５から上記ＣＰＵ２１に供給される。上記ＣＰＵ２１は、当該コマンド４００のコマンドヘッダ部４０１におけるＣＬＡ部４０２及びＩＮＳ部４０３により当該コマンドが共有データ設定コマンドであることを判別する。
【００４６】
受信したコマンドが共有データ設定コマンド４００であると判断した場合、上記ＣＰＵ２１は、当該共有データ設定コマンド４００のデータ部４０７で指定されている「共有するＥＦが所属するＤＦ」を検出する処理を行う（ステップＳ１００〜Ｓ１０４）。なお、「共有するＥＦが所属するＤＦ」は、共有データ設定コマンド４００におけるデータ部４０７に格納される情報である。「共有するＥＦが所属するＤＦ」は、共有するレコードを格納しているデータファイルとしてのＥＦが所属しているＤＦである。ここでは、「共有するＥＦが所属するＤＦ」は、当該ＤＦのＤＦ名で指定されているものとする。
【００４７】
すなわち、上記ＣＰＵ２１は、図４に示すようなファイル定義情報領域２２ｂから各定義情報を順に読み込む（ステップＳ１００）。読み込んだ定義情報がＤＦの定義情報でない場合（ステップＳ１０１、ＮＯ）、上記ＣＰＵ２１は、次の定義情報が有るか否かを判断する（ステップＳ１０２）。この判断により次の定義情報が存在すると判断した場合（ステップＳ１０２、ＹＥＳ）、上記ＣＰＵ２１は、上記ステップＳ１００へ戻り、次の定義情報を読み込む。また、次の定義情報が存在しないと判断した場合（ステップＳ１０２、ＮＯ）、上記ＣＰＵ２１は、上記共有データの設定処理がエラーとなった旨を示すエラーレスポンスをリーダライタ５へ送信し（ステップＳ１０３）、当該処理を終了する。
【００４８】
また、読み込んだ定義情報がＤＦの定義情報である場合（ステップＳ１０１、ＹＥＳ）、上記ＣＰＵ２１は、当該定義情報で定義されているＤＦが上記共有データ設定コマンド４００のデータ部４０７で指定されている「共有するＥＦが所属するＤＦ」であるか否かを判断する（ステップＳ１０４）。ここでは、「共有するＥＦが所属するＤＦ」はＤＦ名で指定されるものとしている。このため、上記ＣＰＵ２１は、読み込んだＤＦ定義情報におけるＤＦ名と、当該コマンド４００で指定された「共有するＥＦが所属するＤＦ」のＤＦ名とが一致するか否かを判断する。
【００４９】
上記判断により読み込んだＤＦ定義情報のＤＦが「共有するＥＦが所属するＤＦ」のＤＦでないと判断した場合（ステップＳ１０４、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ１０２へ戻り、次の定義情報の検出を行う。  
また、上記判断により読み込んだＤＦ定義情報のＤＦが「共有するＥＦが所属するＤＦ」のＤＦであると判断した場合（ステップＳ１０４、ＹＥＳ）、上記ＣＰＵ２１は、当該ＤＦのＤＦ固有番号をワーキングメモリ２３に記憶する処理を行う（ステップＳ１０５）。すなわち、上記ＣＰＵ２１は、読み込んだＤＦ定義情報におけるＤＦ固有番号を抽出する。ＤＦ固有番号を抽出すると、上記ＣＰＵ２１は、「共有するＥＦが所属するＤＦ」を示す識別情報として当該ＤＦ固有番号をワーキングメモリ２３に保存する。
【００５０】
「共有するＥＦが所属するＤＦ」のＤＦ固有番号をワーキングメモリ２３に記憶すると、上記ＣＰＵ２１は、図４に示すようなファイル定義情報領域２２ｂにおいて次の定義情報が存在するか否か判断する（ステップＳ１０６）。次の定義情報が存在しないと判断した場合（ステップＳ１０６、ＮＯ）、上記ＣＰＵ２１は、上記共有データの設定処理がエラーとなった旨を示すエラーレスポンスをリーダライタ５へ送信し（ステップＳ１０３）、当該処理を終了する。また、次の定義情報が存在すると判断した場合（ステップＳ１０６、ＹＥＳ）、上記ＣＰＵ２１は、次の定義情報を読み込む（ステップＳ１０７）。上記ステップＳ１０７で次の定義情報を読み込むと、上記ＣＰＵ２１は、読み込んだ定義情報がＥＦの定義情報であるか否かを判断する（ステップＳ１０８）。
【００５１】
読み込んだ定義情報がＥＦの定義情報であると判断した場合（ステップＳ１０８、ＹＥＳ）、上記ＣＰＵ２１は、当該ＥＦ定義情報で定義されている所属先のＤＦを示すＤＦ固有番号が上記ステップＳ１０５でワーキングメモリ２３に記憶したＤＦ固有番号と一致するか否かを判断する（ステップＳ１０９）。上記判断により読み込んだＥＦ定義情報におけるＤＦ固有番号がワーキングメモリに記憶したＤＦ固有番号と一致しないと判断した場合（ステップＳ１０９、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ１０６へ戻り、次の定義情報の検出を行う。
【００５２】
なお、図４に示す定義情報の構成例では、各ＤＦに属するＥＦは従属先のＤＦのＤＦ定義情報に続いて書込まれている。このような場合、上記ステップＳ１０４で特定したＤＦ定義情報から次のＤＦ定義情報までの間に存在するＥＦ定義情報が所望のＥＦであると考えられる。このような構成では、上記ステップＳ１０８でＥＦ定義情報でないと判断した場合、あるいは、上記ステップＳ１０９でＤＦ固有番号が一致しないと判断した場合、所望のＥＦが検出できなかったことを意味するため、上記ＣＰＵ２１は、上記ステップＳ１０３へ進み、エラー処理を行うようにしても良い。
【００５３】
上記判断により読み込んだＥＦ定義情報におけるＤＦ固有番号がワーキングメモリ２３に記憶したＤＦ固有番号と一致すると判断した場合（ステップＳ１０９、ＹＥＳ）、上記ＣＰＵ２１は、当該ＥＦ定義情報におけるＥＦ−ＩＤが上記コマンドで指定されている「共有するＥＦのＥＦ−ＩＤ」と一致するか否かを判断する（ステップＳ１１０）。上記判断によりＥＦ−ＩＤが一致しないと判断した場合（ステップＳ１１０、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ１０６へ戻り、次の定義情報の検出を行う。
【００５４】
上記判断により読み込んだＥＦ定義情報におけるＥＦ−ＩＤが上記コマンドで指定されている「共有するＥＦのＥＦ−ＩＤ」と一致すると判断した場合、上記ＣＰＵ２１は、読み込んだＥＦ定義情報に基づいて共有が許可可能であるか否かを判断する（ステップＳ１１１）。すなわち、上記ＣＰＵ２１は、読み込んだＥＦ定義情報における共有の許可情報部２０８が共有を許可するものとなっているか否かにより、共有が許可可能か否かを判断する（ステップＳ１１３）。上記判断により共有が許可できないと判断した場合（ステップＳ１１１、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ１０３へ進み、エラーレスポンスをリーダライタ５に出力して、当該処理を終了する。
【００５５】
上記判断により共有が許可されると判断した場合（ステップＳ１１１、ＹＥＳ）、上記ＣＰＵ２１は、さらに、読み込んだＥＦ定義情報における共有時のセキュリティ条件情報部２０９の情報を共有セキュリティ条件としてワーキングメモリ２３に記憶する（ステップＳ１１３）。これは、後段で設定するＥＦが当該ＥＦとの共有セキュリティ条件を満たすか否かをチェックするための処理である。上記ワーキングメモリ２３に共有セキュリティ条件を記憶すると、上記ＣＰＵ２１は、共有するレコードの先頭アドレスを特定する処理を行う（ステップＳ１１４）。たとえば、上記ＣＰＵ２１は、上記共有データ設定コマンド４００のデータ部４０７で指定されている「共有するＥＦのレコード番号」により共有するレコードの先頭アドレスを計算し、計算したアドレス情報をワーキングメモリ２３に記憶する。
【００５６】
ここで、共有するレコードの先頭アドレスは、当該ＥＦのデータエリアの先頭アドレスと各レコードのデータ長とに基づいて計算される。ＥＦのデータエリアは、図６に示すようなＥＦ定義情報のデータエリア先頭アドレスで特定できる。このため、ＥＦのデータエリア内における各レコードの先頭アドレスは、データエリアの先頭アドレスに直前の各レコード全体の長さ（データサイズ）を加算することにより算出される。なお、１つのレコード全体の長さは、状態識別子３０１、データ長３０２、データ部３０３およびファイルチェックバイト３０４の各長さを合計したものである。ただし、状態識別子３０１、データ長３０２およびファイルチェックバイト３０４の長さはそれぞれ所定の長さであり、データ部３０３の長さは、データ長３０２で示される長さである。
【００５７】
以上の処理（ステップＳ１００〜Ｓ１１４）が共有するレコード（共有先のレコード）を特定するための処理である。従って、上記ステップ１１４までの処理が正常に完了すると、上記ＣＰＵ２１は、共有先のレコードにリンクさせるレコード（共有設定するレコード）を作成する処理を行う（ステップＳ１１５〜Ｓ１２４）。
【００５８】
すなわち、上記ワーキングメモリ２３に共有するレコードの先頭アドレスを記憶すると、上記ＣＰＵ２１は、再度、図４に示すようなファイル定義情報領域２２ｂから共有設定するレコードを格納するＥＦを特定する処理を行う（ステップＳ１１５〜Ｓ１２０）。たとえば、上記ＣＰＵ２１は、上記ファイル定義情報領域２２ｂから各定義情報を順に読み込む（ステップＳ１１５）。読み込んだ定義情報がＥＦ定義情報でない場合（ステップＳ１１６、ＮＯ）、上記ＣＰＵ２１は、次の定義情報が有るか否かを判断する（ステップＳ１１７）。この判断により次の定義情報が存在すると判断した場合（ステップＳ１１７、ＹＥＳ）、上記ＣＰＵ２１は、上記ステップＳ１１５へ戻り、次の定義情報を読み込む。また、次の定義情報が存在しないと判断した場合（ステップＳ１１７、ＮＯ）、上記ＣＰＵ２１は、設定するＥＦが検出できないために、共有データの設定処理がエラーとなった旨を示すエラーレスポンスをリーダライタ５へ送信し（ステップＳ１１８）、当該処理を終了する。
【００５９】
また、読み込んだ定義情報がＥＦ定義情報である場合（ステップＳ１１６、ＹＥＳ）、上記ＣＰＵ２１は、当該ＥＦ定義情報で定義されているＥＦが共有設定するレコードを格納するＥＦであるか否かを判断する（ステップＳ１１９）。たとえば、上記ＣＰＵ２１は、当該ＥＦ定義情報で定義されているＥＦのＥＦ−ＩＤが上記共有データ設定コマンド４００のデータ部４０７で指定されている「設定するＥＦのＥＦ−ＩＤ」と一致するか否かを判断する。上記判断により当該ＥＦ定義情報で定義されているＥＦが共有設定するレコードを格納するＥＦでないと判断した場合（ステップＳ１１９、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ１０６へ戻り、次の定義情報の検出を行う。
【００６０】
上記判断により当該ＥＦ定義情報で定義されているＥＦが共有設定するレコードを格納するＥＦであると判断した場合（ステップＳ１１９、ＹＥＳ）、上記ＣＰＵ２１は、当該ＥＦが属するＤＦが現在作業中のＤＦであるか否かを判断する（ステップＳ１２０）。たとえば、現在作業中のＤＦを示す情報は、カレントＤＦのＤＦ固有番号としてワーキングメモリ２３に保持されているものとする。つまり、上記ＣＰＵ２１は、当該ＥＦ定義情報におけるＤＦ固有番号がワーキングメモリ２３に記憶されているカレントＤＦのＤＦ固有番号と一致するか否かを判断する。上記判断により当該ＥＦが属するＤＦが現在作業中のＤＦでないと判断した場合（ステップＳ１２０、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ１０６へ戻り、次の定義情報の検出を行う。
【００６１】
また、上記判断により当該ＥＦが属するＤＦが現在作業中のＤＦであると判断した場合（ステップＳ１２０、ＹＥＳ）、上記ＣＰＵ２１は、当該ＥＦ定義情報で定義されているＥＦが上記ワーキングメモリ２３に記憶した共有セキュリティ条件を満たすか否かを判断する（ステップＳ１２１）。この判断により当該ＥＦが共有セキュリティ条件を満たさないと判断した場合（ステップＳ１２１、ＮＯ）、上記ＣＰＵ２１は、共有セキュリティ条件との不一致により共有データの設定処理がエラーとなった旨を示すエラーレスポンスをリーダライタ５へ送信し（ステップＳ１１８）、当該処理を終了する。
【００６２】
上記判断により当該ＥＦが共有セキュリティ条件を満たすと判断した場合（ステップＳ１２１、ＹＥＳ）、上記ＣＰＵ２１は、当該ＥＦ定義情報で示される当該ＥＦのデータエリアに上記共有先レコードにリンクさせるレコード（共有設定するレコード）を設定する処理を行う（ステップＳ１２２−Ｓ１２３）。共有設定するレコードは、図１２に示すレコードＲ２のように、状態識別子３０１が「共有」となり、データ３０３がリンク先の「先頭アドレス」となる。たとえば、共有設定するレコードは、上記共有データ設定コマンド４００におけるＰ１部で指定されるレコード番号により特定される。
【００６３】
従って、上記ＣＰＵ２１は、当該ＥＦ定義情報で定義されるＥＦのデータエリアにおいて、当該コマンド４００で指定されたレコード番号のレコードにおける状態識別子３０１に「共有」を示す情報を書き込む（ステップＳ１２２）。さらに、上記ＣＰＵ２１は、状態識別子３０１を「共有」としたレコードのデータ３０３に共有先（リンク先）のレコードにおける先頭アドレスを書き込む（ステップＳ１２３）。ここで、データ３０３に書き込む先頭アドレス（共有アドレス）は、上記ステップＳ１１４でワーキングメモリ２３に記憶したアドレス情報である。
【００６４】
以上のような一連の処理が正常に完了すると、上記ＣＰＵ２１は、上記共有データ設定コマンド４００に対するレスポンスとして正常終了を示すレスポンスデータを作成し、上記リーダライタ５へ送信する（ステップＳ１２４）。このような正常終了を示すレスポンスデータを送信した場合、上記ＣＰＵ２１は、共有データの設定処理を終了する。  
上記のような共有データの設定処理によれば、図９及び図１０に示すような共有データ設定コマンドに応じて、図１２のレコードＲ２に示すように、共有先を先頭アドレスで設定したレコードを設定できる。
【００６５】
次に、上記のようなレコードの読出し処理について詳細に説明する。  
図１５は、ＩＣカード１が読出しコマンドを受信した場合の処理（読出し処理）の流れを説明するためのフローチャートである。  
まず、外部装置としてのリーダライタ５が、ＩＣカード１に対して、指定のレコードの読出しを要求する読出しコマンドを供給したものとする。すると、上記ＩＣカード１は、上記リーダライタ５からの読出しコマンドに応じたデータの読出し処理を実行するようになっている。
【００６６】
図１６は、読出しコマンド７００の例である。図１６に示すように、読出しコマンド７００は、コマンドヘッダ部７０１とＬｅ部７０６とにより構成される。コマンドヘッダ部７０１は、ＣＬＡ部７０２、ＩＮＳ部７０３、Ｐ１部７０４およびＰ２部７０５により構成される。ＣＬＡ部７０２およびＩＮＳ部７０３は、当該コマンドが読出しコマンドであることを示す情報が格納される。Ｐ１部７０４およびＰ２部７０５は、当該読出しコマンドのパラメータを示す情報である。ここでは、Ｐ１部７０４には、読出し対象となるレコードを格納しているデータファイルとしてのＥＦを示すＥＦ−ＩＤが格納されるものとする。また、Ｐ２部７０５には、読出し対象となるレコードを示すレコード番号が格納されるものとする。
【００６７】
上記通信部２５により読出しコマンド７００を受信すると、上記ＣＰＵ２１は、当該コマンド７００のコマンドヘッダ部７０１におけるＣＬＡ部７０２及びＩＮＳ部７０３により当該コマンドが読出しコマンドであることを判断する。受信したコマンドが読出しコマンド７００であると判断した場合、上記ＣＰＵ２１は、当該読出しコマンド７００のＰ１部７０４で指定されている読出し対象のＥＦを検出する処理を行う（ステップＳ２００〜Ｓ２０４）。
【００６８】
すなわち、上記ＣＰＵ２１は、図４に示すようなファイル定義情報領域２２ｂから各定義情報を順に読み込む（ステップＳ２００）。読み込んだ定義情報がＥＦ定義情報でない場合（ステップＳ２０１、ＮＯ）、上記ＣＰＵ２１は、次の定義情報が有るか否かを判断する（ステップＳ２０２）。この判断により次の定義情報が存在すると判断した場合（ステップＳ２０２、ＹＥＳ）、上記ＣＰＵ２１は、上記ステップＳ２００へ戻り、次の定義情報を読み込む。また、次の定義情報が存在しないと判断した場合（ステップＳ２０２、ＮＯ）、上記ＣＰＵ２１は、上記読出しコマンドに対する読出し処理がエラーとなった旨を示すエラーレスポンスをリーダライタ５へ送信し（ステップＳ２０３）、当該処理を終了する。
【００６９】
また、読み込んだ定義情報がＥＦ定義情報である場合（ステップＳ２０１、ＹＥＳ）、上記ＣＰＵ２１は、当該ＥＦ定義情報で定義されているＥＦが上記読出しコマンド７００のＰ２部７０５で指定されているＥＦであるか否かを判断する（ステップＳ２０４）。ここでは、Ｐ２部７０５には指定するＥＦを示すＥＦ−ＩＤが格納されているものとする。このため、上記ＣＰＵ２１は、読み込んだＥＦ定義情報におけるＥＦ−ＩＤと、当該コマンド７００のＰ２部７０５で指定されたＥＦ−ＩＤとが一致するか否かを判断する。
【００７０】
上記判断により読み込んだＥＦ定義情報のＥＦが読出しコマンド７００で指定されたＥＦでないと判断した場合（ステップＳ２０４、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ２０２へ戻り、次の定義情報の検出を行う。  
また、上記判断により読み込んだＥＦ定義情報のＥＦが読出しコマンド７００で指定されたＥＦであると判断した場合（ステップＳ２０４、ＹＥＳ）、上記ＣＰＵ２１は、当該ＥＦ定義情報のＥＦが属するＤＦが現在作業中のＤＦであるか否かを判断する（ステップＳ２０５）。たとえば、現在作業中のＤＦを示す情報は、カレントＤＦのＤＦ固有番号としてワーキングメモリ２３に保持されているものとする。この場合、上記ＣＰＵ２１は、当該ＥＦ定義情報におけるＤＦ固有番号がワーキングメモリ２３に記憶されているカレントＤＦのＤＦ固有番号と一致するか否かを判断する。上記判断により当該ＥＦが属するＤＦが現在作業中のＤＦでないと判断した場合、つまり、当該ＥＦが現在作業中のＤＦに属するものではないと判断した場合（ステップＳ２０５、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ２０２へ戻り、次の定義情報の検出を行う。
【００７１】
上記判断により当該ＥＦ定義情報のＥＦが現在作業中のＤＦに属すると判断した場合（ステップＳ２０５、ＹＥＳ）、上記ＣＰＵ２１は、現在のセキュリティ状態が読み込んだＥＦ定義情報のセキュリティ条件を満たすか否かを判断する（ステップＳ２０６）。この判断によりセキュリティ条件を満たさないと判断した場合（ステップＳ２０６、ＮＯ）、上記ＣＰＵ２１は、上記読出しコマンドに対する読出し処理がエラーとなった旨を示すエラーレスポンスをリーダライタ５へ送信し（ステップＳ２０３）、当該処理を終了する。
【００７２】
また、上記判断によりセキュリティ条件を満たすを判断した場合（ステップＳ２０６、ＹＥＳ）、上記ＣＰＵ２１は、当該コマンド７００のＰ１部７０４に格納されているレコード番号で指定されるレコードに対して状態に応じて読出し処理を実行する（ステップＳ２０８〜Ｓ２１４）。各レコードは、上述したように、状態識別子３０１で示される３通りの状態を有する。すなわち、各レコードの状態識別子３０１は、「未書込み」、「書込み済」、あるいは、「共有」の何れかである。
【００７３】
当該コマンド７００で指定されたレコードの状態識別子が「未書込み」である場合（ステップＳ２０８、ＹＥＳ（「未書込み」））、上記ＣＰＵ２１は、上記読出すべきデータが存在しないため、エラーとなった旨を示すエラーレスポンスをリーダライタ５へ送信し（ステップＳ２０３）、当該処理を終了する。
【００７４】
また、当該コマンド７００で指定されたレコードの状態識別子が「書込み済」である場合（ステップＳ２０９、「書込み済」）、上記ＣＰＵ２１は、当該コマンド７００で指定されたレコードのデータ３０３を読出す（ステップＳ２１０）。この場合、上記ＣＰＵ２１は、読み出したデータをセットした正常終了を示すレスポンスデータを生成する(ステップＳ２１１)。正常終了を示すレスポンスデータを生成すると、上記ＣＰＵ２１は、生成した正常終了を示すレスポンスデータをリーダライタ５へ送信し（ステップＳ２１２）、当該処理を終了する。
【００７５】
また、当該コマンド７００で指定されたレコードの状態識別子が「共有」である場合（ステップＳ２０９、「共有」）、上記ＣＰＵ２１は、当該コマンド７００で指定されたレコードのデータ３０３としてのアドレス情報を読出す（ステップＳ２１３）。このアドレス情報は、上述したように、当該レコードの共有データとして共有先（リンク先）の先頭アドレスを示す情報である。従って、上記ＣＰＵ２１は、当該レコードのデータとして読み出したアドレスを先頭アドレスとする共有データを読み出す（ステップＳ２１４）。このような共有データを読出すと、上記ＣＰＵ２１は、共有先から読み出した共有データを読出しデータとしてセットした正常終了を示すレスポンスデータを生成する(ステップＳ２１５)。
【００７６】
これにより、正常終了を示すレスポンスデータを生成すると、上記ＣＰＵ２１は、生成した正常終了を示すレスポンスデータをリーダライタ５へ送信し（ステップＳ２１２）、当該処理を終了する。  
上記のようなデータの読出し処理によれば、共有設定されているレコードが読出し対象である読出しコマンドに対しては、当該レコードのデータに書込まれている共有先の先頭アドレスに基づいて、特定される共有先のレコードのデータを読み出すことができる。
【００７７】
次に、上記のようなレコードにおけるデータの書換え処理について詳細に説明する。  
図１７は、ＩＣカード１が書き換えコマンドを受信した場合の処理（書き換え処理）の流れを説明するためのフローチャートである。  
まず、外部装置としてのリーダライタ５が、ＩＣカード１に対して、指定のレコードのデータの書換えを要求する書き換えコマンドを供給したものとする。すると、上記ＩＣカード１は、上記リーダライタ５からの書き換えコマンドに応じたデータの書き換え処理を実行するようになっている。
【００７８】
図１８は、書き換えコマンド８００の例である。図１８に示すように、書き換えコマンド８００は、コマンドヘッダ部８０１とＬｅ部８０６とデータ部８０７とにより構成される。コマンドヘッダ部８０１は、ＣＬＡ部８０２、ＩＮＳ部８０３、Ｐ１部８０４およびＰ２部８０５により構成される。ＣＬＡ部８０２およびＩＮＳ部８０３は、当該コマンドが書換えコマンドであることを示す情報が格納される。Ｐ１部８０４およびＰ２部８０５は、当該書き換えコマンドのパラメータを示す情報である。ここでは、Ｐ１部８０４には、書き換え対象となるレコードを格納しているデータファイルとしてのＥＦを示すＥＦ−ＩＤが格納されるものとする。また、Ｐ２部８０５には、書き換え対象となるレコードを示すレコード番号が格納されるものとする。
【００７９】
上記通信部２５により書き換えコマンド８００を受信すると、上記ＣＰＵ２１は、当該コマンド８００のコマンドヘッダ部８０１におけるＣＬＡ部８０２及びＩＮＳ部８０３により当該コマンドが書き換えコマンドであることを判断する。受信したコマンドが書き換えコマンド８００であると判断した場合、上記ＣＰＵ２１は、当該書き換えコマンド８００のＰ１部８０４で指定されている書き換え対象のＥＦを検出する処理を行う（ステップＳ３００〜Ｓ３０４）。
【００８０】
すなわち、上記ＣＰＵ２１は、図４に示すようなファイル定義情報領域２２ｂから各定義情報を順に読み込む（ステップＳ３００）。読み込んだ定義情報がＥＦ定義情報でない場合（ステップＳ３０１、ＮＯ）、上記ＣＰＵ２１は、次の定義情報が有るか否かを判断する（ステップＳ３０２）。この判断により次の定義情報が存在すると判断した場合（ステップＳ３０２、ＹＥＳ）、上記ＣＰＵ２１は、上記ステップＳ３００へ戻り、次の定義情報を読み込む。また、次の定義情報が存在しないと判断した場合（ステップＳ３０２、ＮＯ）、上記ＣＰＵ２１は、上記書き換えコマンドに対する書換え処理がエラーとなった旨を示すエラーレスポンスをリーダライタ５へ送信し（ステップＳ３０３）、当該処理を終了する。
【００８１】
また、読み込んだ定義情報がＥＦ定義情報である場合（ステップＳ３０１、ＹＥＳ）、上記ＣＰＵ２１は、当該ＥＦ定義情報で定義されているＥＦが上記書換えコマンド８００のＰ２部８０５で指定されているＥＦであるか否かを判断する（ステップＳ３０４）。ここでは、Ｐ２部８０５には指定するＥＦを示すＥＦ−ＩＤが格納されているものとする。このため、上記ＣＰＵ２１は、読み込んだＥＦ定義情報におけるＥＦ−ＩＤと、当該コマンド８００のＰ２部８０５で指定されたＥＦ−ＩＤとが一致するか否かを判断する。
【００８２】
上記判断により読み込んだＥＦ定義情報のＥＦが書き換えコマンド８００で指定されたＥＦでないと判断した場合（ステップＳ３０４、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ３０２へ戻り、次の定義情報の検出を行う。  
また、上記判断により読み込んだＥＦ定義情報のＥＦが書換えコマンド８００で指定されたＥＦであると判断した場合（ステップＳ３０４、ＹＥＳ）、上記ＣＰＵ２１は、当該ＥＦ定義情報のＥＦが属するＤＦが現在作業中のＤＦであるか否かを判断する（ステップＳ３０５）。たとえば、現在作業中のＤＦを示す情報は、カレントＤＦのＤＦ固有番号としてワーキングメモリ２３に保持されているものとする。この場合、上記ＣＰＵ２１は、当該ＥＦ定義情報におけるＤＦ固有番号がワーキングメモリ２３に記憶されているカレントＤＦのＤＦ固有番号と一致するか否かを判断する。上記判断により当該ＥＦが属するＤＦが現在作業中のＤＦでないと判断した場合、つまり、当該ＥＦが現在作業中のＤＦに属するものではないと判断した場合（ステップＳ３０５、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ３０２へ戻り、次の定義情報の検出を行う。
【００８３】
上記判断により当該ＥＦ定義情報のＥＦが現在作業中のＤＦに属すると判断した場合（ステップＳ３０５、ＹＥＳ）、上記ＣＰＵ２１は、現在のセキュリティ状態が読み込んだＥＦ定義情報のセキュリティ条件を満たすか否かを判断する（ステップＳ３０６）。この判断によりセキュリティ条件を満たさないと判断した場合（ステップＳ３０６、ＮＯ）、上記ＣＰＵ２１は、上記書換えコマンドに対する書換え処理がエラーとなった旨を示すエラーレスポンスをリーダライタ５へ送信し（ステップＳ３０３）、当該処理を終了する。
【００８４】
また、上記判断によりセキュリティ条件を満たすを判断した場合（ステップＳ３０６、ＹＥＳ）、上記ＣＰＵ２１は、当該コマンド８００のＰ１部８０４に格納されているレコード番号で指定されるレコードに対して状態に応じて読出し処理を実行する（ステップＳ３０８〜Ｓ３１４）。各レコードは、上述したように、状態識別子３０１で示される３通りの状態を有する。すなわち、各レコードの状態識別子３０１は、「未書込み」、「書込み済」、あるいは、「共有」の何れかである。
【００８５】
当該コマンド８００で指定されたレコードの状態識別子が「未書込み」である場合（ステップＳ３０８、ＹＥＳ（未書込み））、上記ＣＰＵ２１は、上記読出すべきデータが存在しないため、エラーとなった旨を示すエラーレスポンスをリーダライタ５へ送信し（ステップＳ３０３）、当該処理を終了する。  
また、当該コマンド８００で指定されたレコードの状態識別子が「書込み済」である場合（ステップＳ３０９、「書込み済」）、上記ＣＰＵ２１は、当該コマンド８００で指定されたレコードのデータ３０３を当該コマンド８００のデータ部８０７に格納されていたデータに書き換える（ステップＳ３１０）。この書換え処理が正常に終了すれば、上記ＣＰＵ２１は、正常終了を示すレスポンスをリーダライタ５へ送信し（ステップＳ３１１）、当該処理を終了する。
【００８６】
また、当該コマンド７００で指定されたレコードの状態識別子が「共有」である場合（ステップＳ３０９、「共有」）、上記ＣＰＵ２１は、当該コマンド８００で指定されたレコードのデータ３０３としてのアドレス情報を読出す（ステップＳ３１２）。このアドレス情報は、上述したように、当該レコードの共有データとして共有先（リンク先）の先頭アドレスを示す情報である。従って、上記ＣＰＵ２１は、当該レコードのデータとして読み出したアドレスを先頭アドレスとする共有データを、当該コマンド８００のデータ部８０７に格納されていたデータに書き換える（ステップＳ３１３）。このような共有先のデータの書換え処理が正常に終了すれば、上記ＣＰＵ２１は、正常終了を示すレスポンスをリーダライタ５へ送信し（ステップＳ３１１）、当該処理を終了する。
【００８７】
上記のようなデータの書換え処理によれば、共有設定されているレコードが書換え対象である書換えコマンドに対しては、当該レコードのデータに書込まれている共有先の先頭アドレスに基づいて、特定される共有先のレコードのデータを当該コマンドで指定されたデータに書き換えることができる。
【００８８】
次に、上述した実施の形態の変形例について説明する。  
上記のような共有データの設定は、共有先をアドレスにより特定する手法に限定されるものではなく、共有先を特定できるものであれば良い。たとえば、共有先は、ＤＦ名（あるいはＤＦ固有番号）、ＥＦ−ＩＤおよびレコード番号により指定することも可能である。共有先をアドレスで指定する手法では、共有先をアドレスで直接的に特定できる。このため、アクセスが高速であることが考えられる。つまり、共有先をアドレスで直接的に指定するため、レコードの状態識別子が「共有」であっても、処理時間が遅くなるということはないと考えられる。
【００８９】
これに対して、共有先のレコードをＤＦ名、ＥＦ−ＩＤおよびレコード番号により特定する方法では、共有設定時に共有先のアドレスを計算する必要がない。また、共有先のレコードをＤＦ名、ＥＦ−ＩＤおよびレコード番号により特定する方法では、共有先のアドレスが変化しても、共有先のレコードを示す情報を再設定する必要がない。つまり、共有先のレコードをＤＦ名、ＥＦ−ＩＤおよびレコード番号により特定する方法は、レコードに対する共有設定が簡単に実行でき、運用上の自由度が高いと考えられる。
【００９０】
一般的に、データメモリの管理技術としては、データメモリにおけるメモリ領域を最適化する技術である。このようなメモリ管理技術は、使用しなくなったメモリ領域、あるいは、種々のデータ間における隙間のメモリ領域などを連続して利用可能なメモリ領域に再構築する。この結果として、上記のようなメモリ管理技術では、メモリ上における各種のデータの配置が再設定されることが多い。つまり、上記のようなメモリ管理技術では、各データが記憶されるメモリにおけるアドレスが変更されることが多い。従って、メモリ上のアドレスそのものを参照するデータは、メモリ領域におけるデータの再構築（最適化）とともに更新しなければならない。
【００９１】
たとえば、ＩＣカード１にも適用されるプログラミング言語としてJava（登録商標）と呼ばれるものがある。Javaでは、メモリ管理の機能として、ガーベジコレクション(garbage collection)と呼ばれる機能を有している。ガーベジコレクションは、プログラムが使用しなくなったメモリ領域、および、プログラム間の隙間のメモリ領域を集めて連続した利用可能なメモリ領域を増やす技術である。Java言語の実行環境(JVM)は、Javaプログラマがメモリ管理に気を使わなくてもいいように、自身がガーベジコレクション機能を持っている。
【００９２】
すなわち、上記ガーベジコレクションのようなデータを最適化するメモリ管理機能を有するＩＣカードでは、共有先を直接的にアドレスを指定する方法を適用すれば、データの最適化を実施する度に、共有先のアドレスを再計算する必要が生じる。この結果として、データの最適化処理自体、あるいは、データの最適化に伴うアドレスデータの再設定処理に時間がかかる。これに対して、共有先をＤＦ名、ＥＦ−ＩＤおよびレコード番号で指定する方法を適用したＩＣカードでは、データの最適化あるいはデータの最適化に伴うデータの再設定などに要する時間を短くできる。
【００９３】
以下、共有先を「ＤＦ名」と「ＥＦ−ＩＤ」と「レコード番号」とで指定する方法について説明する。  
図１９は、共有先を「ＤＦ名」と「ＥＦ−ＩＤ」と「レコード番号」とで指定する場合のレコードの構成例を示している。ここでは、共有先を示す「ＤＦ名」と「ＥＦ−ＩＤ」と「レコード番号」とからなる情報を共有先情報と称するものとする。  
図１９に示すような状態識別子が「共有」のレコード以外のデータは、たとえば、図１〜図１１に示すような構成のままで変更しなくても良い。状態識別子が「共有」のレコードは、図１９に示すレコードＲ２のように、データ３０３として、共有先情報（「ＤＦ名」、「ＥＦ−ＩＤ」及び「レコード番号」）が書込まれ、データ長３０２はデータ３０３としての共有先情報の長さを示す情報が書込まれる。
【００９４】
次に、共有先を共有先情報で指定する場合の各種処理について説明する。  
まず、共有先を共有先情報で指定する場合の共有データの設定処理について説明する。  
上記共有データの設定処理では、共有先が共有先情報で指定される場合、図１３および図１４に示す各処理のうちステップＳ１１４の処理が省略され、かつ、ステップＳ１２３の処理が状態識別子を「共有」としたレコードのデータに共有先情報を書き込むという処理に変更される。
【００９５】
なお、共有先情報は、図１０に示すような共有データ設定コマンド４００のデータ部４０７における「共有するＥＦが所属するＤＦ名」５０２、「共有するＥＦのＥＦ−ＩＤ」５０３および「共有するレコード番号」５０４である。これは、共有データの設定処理において、受信したコマンドのデータ部４０７における「ＤＦ名」、「ＥＦ−ＩＤ」および「レコード番号」をレコードのデータとして書き込むことを意味する。つまり、共有先を共有先情報で指定する場合、共有データの設定処理では、アドレス計算などが不要となり、コマンドのデータ部の一部をレコードのデータに書き込めば良い。これは、共有データの設定処理が簡単であることを意味している。
【００９６】
次に、共有先を共有先情報で指定する場合の読出し処理および書換え処理について説明する。  
共有先を共有先情報で指定する場合、上記読出し処理あるいは上記書換え処理では、状態識別子が「共有」のレコードのデータとしての共有先情報に基づいて共有先のレコードを特定する処理が必要となる。  
図２０は、処理対象のレコードの状態識別子が「共有」であった場合に、共有先のレコードを特定する処理の流れを説明するためのフローチャートである。すなわち、図２０に示す処理は、たとえば、図１５に示す読出し処理におけるステップＳ２１３、あるいは、図１７に示す書換え処理におけるステップＳ３１２の代りに実行される処理である。なお、図２０に示す各処理（ステップＳ４００〜Ｓ４１０）は、図１３に示すステップＳ１００〜Ｓ１１０の各処理と類似している。ただし、図２０に示す各処理（ステップＳ４００〜Ｓ４１１）は、共有先情報に基づいて共有先のレコードを特定する点が図１３に示すステップＳ１００〜Ｓ１１０の各処理と異なっている。
【００９７】
すなわち、処理対象のレコードの状態識別子が「共有」であった場合、上記ＣＰＵ２１は、当該レコードのデータとしての共有先情報で示される「共有するＥＦが所属するＤＦ」を検出する処理を行う（ステップＳ４００〜Ｓ４０４）。なお、「共有するＥＦが所属するＤＦ」は、ＤＦ名で指定されているものとする。この場合、上記ＣＰＵ２１は、図４に示すようなファイル定義情報領域２２ｂから各定義情報を順に読み込む（ステップＳ４００）。
【００９８】
読み込んだ定義情報がＤＦ定義情報でない場合（ステップＳ４０１、ＮＯ）、上記ＣＰＵ２１は、次の定義情報が有るか否かを判断する（ステップＳ４０２）。この判断により次の定義情報が存在すると判断した場合（ステップＳ４０２、ＹＥＳ）、上記ＣＰＵ２１は、上記ステップＳ４００へ戻り、次の定義情報を読み込む。また、次の定義情報が存在しないと判断した場合（ステップＳ４０２、ＮＯ）、上記ＣＰＵ２１は、上記処理がエラーとなった旨を示すエラーレスポンスをリーダライタ５へ送信し（ステップＳ４０３）、当該処理を終了する。
【００９９】
また、読み込んだ定義情報がＤＦ定義情報である場合（ステップＳ４０１、ＹＥＳ）、上記ＣＰＵ２１は、当該ＤＦ定義情報で定義されているＤＦ名が上記共有先情報で指定されている「共有するＥＦが所属するＤＦ名」と一致するか否かを判断する（ステップＳ４０４）。上記判断により読み込んだＤＦ定義情報のＤＦ名が共有先情報のＤＦ名と一致しないと判断した場合（ステップＳ４０４、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ４０２へ戻り、次の定義情報の検出を行う。
【０１００】
また、上記判断により読み込んだＤＦ定義情報のＤＦ名が共有先情報のＤＦ名と一致すると判断した場合（ステップＳ４０４、ＹＥＳ）、上記ＣＰＵ２１は、当該ＤＦ定義情報のＤＦ固有番号をワーキングメモリ２３に記憶する（ステップＳ４０５）。ワーキングメモリ２３にＤＦ固有番号を記憶すると、上記ＣＰＵ２１は、図４に示すようなファイル定義情報領域２２ｂにおいて次の定義情報が存在するか否か判断する（ステップＳ４０６）。次の定義情報が存在しないと判断した場合（ステップＳ４０６、ＮＯ）、上記ＣＰＵ２１は、処理がエラーとなった旨を示すエラーレスポンスをリーダライタ５へ送信し（ステップＳ４０３）、当該処理を終了する。
【０１０１】
また、次の定義情報が存在すると判断した場合（ステップＳ４０６、ＹＥＳ）、上記ＣＰＵ２１は、次の定義情報を読み込む（ステップＳ４０７）。上記ステップＳ４０７で次の定義情報を読み込むと、上記ＣＰＵ２１は、読み込んだ定義情報がＥＦ定義情報であるか否かを判断する（ステップＳ４０８）。読み込んだ定義情報がＥＦ定義情報であると判断した場合（ステップＳ４０８、ＹＥＳ）、上記ＣＰＵ２１は、当該ＥＦ定義情報で定義されている所属先のＤＦを示すＤＦ固有番号が上記ステップＳ４０５でワーキングメモリ２３に記憶したＤＦ固有番号と一致するか否かを判断する（ステップＳ４０９）。上記判断により読み込んだＥＦ定義情報におけるＤＦ固有番号がワーキングメモリ２３に記憶したＤＦ固有番号と一致しないと判断した場合（ステップＳ４０９、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ４０６へ戻り、次の定義情報の検出を行う。
【０１０２】
上記判断により読み込んだＥＦ定義情報におけるＤＦ固有番号がワーキングメモリ２３に記憶したＤＦ固有番号と一致すると判断した場合（ステップＳ４０９、ＹＥＳ）、上記ＣＰＵ２１は、当該ＥＦ定義情報におけるＥＦ−ＩＤが上記共有先情報における「共有するＥＦのＥＦ−ＩＤ」と一致するか否かを判断する（ステップＳ４１０）。上記判断によりＥＦ−ＩＤが一致しないと判断した場合（ステップＳ４１０、ＮＯ）、上記ＣＰＵ２１は、上記ステップＳ４０６へ戻り、次の定義情報の検出を行う。
【０１０３】
上記判断により読み込んだＥＦ定義情報におけるＥＦ−ＩＤが上記共有先情報におけるＥＦ−ＩＤと一致すると判断した場合（ステップＳ４１０、ＹＥＳ）、上記ＣＰＵ２１は、共有先のレコードの先頭アドレスを特定する処理を行う（ステップＳ４１１）。たとえば、上記ＣＰＵ２１は、上記共有先情報で指定されている「共有するレコード番号」により共有するレコードの先頭アドレスを計算する。
【０１０４】
ここで、共有先のレコードの先頭アドレスは、ＥＦのデータエリアの先頭アドレスと各レコードのデータ長とに基づいて計算される。ＥＦのデータエリアは、図６に示すようなＥＦ定義情報のデータエリア先頭アドレスで特定できる。このため、ＥＦのデータエリア内における各レコードの先頭アドレスは、データエリアの先頭アドレスに直前の各レコード全体の長さ（データサイズ）を加算することにより算出される。なお、１つのレコード全体の長さは、状態識別子３０１、データ長３０２、データ部３０３およびファイルチェックバイト３０４の各長さを合計したものである。ただし、状態識別子３０１、データ長３０２およびファイルチェックバイト３０４の長さはそれぞれ所定の長さであり、データ部３０３の長さは、データ長３０２で示される長さである。
【０１０５】
以上のような処理により、上記共有先情報で指定されている共有先のレコードの先頭アドレスが特定され、データの読出しあるいはデータの書換えが可能となる。上記のように、共有先情報を用いても、レコードの共有設定を行うことが可能である。共有先のアドレスが変更される可能性がある場合、上記のような共有先情報によりレコードの共有設定を行うことで、効率的なメモリ管理が実現できる。
【図面の簡単な説明】
【０１０６】
【図１】図１は、本発明の実施の形態に係るＩＣカード（携帯可能電子装置）を含むＩＣカードシステムの構成例を概略的に示すものである。
【図２】図２は、ＩＣカードのハードウエア構成例を概略的に示すブロック図である。
【図３】図３は、データメモリに格納されるファイルの構成例を示す図である。
【図４】図４は、図３に示すようなファイル構成例に対するデータメモリにおけるメモリマップの例を示す図である。
【図５】図５は、ＤＦ定義情報におけるフォーマットの例を示す図である。
【図６】図６は、ＥＦ定義情報におけるフォーマットの例を示す図である。
【図７】図７は、ＥＦ定義情報により定義される１つのＥＦのデータエリアにおける構成例を示す図である。
【図８】図８は、３つのレコードからなるデータエリアの構成例を示す図である。
【図９】図９は、共有データの設定を要求するコマンド（共有データ設定コマンド）の構成例を示す図である。
【図１０】図１０は、共有データ設定コマンドにおけるデータ部の例を示す図である。
【図１１】図１１は、共有データ設定コマンドに対するレスポンスデータの構成例を示す図である。
【図１２】図１２は、共有データの設定処理により生成された１つのＥＦのデータエリアの構成例を示す図である。
【図１３】図１３は、共有データ設定コマンドを受信した場合の処理（共有データの設定処理）の流れを説明するためのフローチャートである。
【図１４】図１４は、共有データ設定コマンドを受信した場合の処理（共有データの設定処理）の流れを説明するためのフローチャートである。
【図１５】図１５は、ＩＣカードが読出しコマンドを受信した場合の処理（読出し処理）の流れを説明するためのフローチャートである。
【図１６】図１６は、読出しコマンドの例である。
【図１７】図１７は、ＩＣカードが書き換えコマンドを受信した場合の処理（書き換え処理）の流れを説明するためのフローチャートである。
【図１８】図１８は、書き換えコマンドの例である。
【図１９】図１９は、共有先を「ＤＦ名」と「ＥＦ−ＩＤ」と「レコード番号」とからなる共有先情報で指定する場合のレコードの構成例を示している。
【図２０】図２０は、処理対象のレコードの状態識別子が「共有」であった場合に、共有先のレコードを特定する処理の流れを説明するためのフローチャートである。
【符号の説明】
【０１０７】
１…ＩＣカード、５…リーダライタ（外部装置）、Ｂ…本体、Ｍ…モジュール、Ｃ…ＩＣチップ、２１…ＣＰＵ（制御素子）、２２…データメモリ、２３…ワーキングメモリ、２４…プログラムメモリ、２５…通信部、２２ａ…制御領域、２２ｂ…ディレクトリ領域（ファイル定義情報領域）、２２ｃ…エリア群領域、２２ｄ…空き領域、１０１…ファイル識別子部、１０２…ＤＦ名部、１０３…アクセス条件部、１０４…アクセスカウンタ部、１０５…ＤＦ優先順位部、１０６…ＤＦ固有番号部、１０７…ＤＦ固有情報部、１０８…チェックバイト部、２０１…ファイル識別子部、２０２…ＤＦ固有番号部、２０３…ＥＦ−ＩＤ部、２０４…レコードサイズ部、２０５…レコード数部、２０６…データエリア先頭アドレス部、２０７…セキュリティ条件部、２０８…許可情報部、２０９…共有時のセキュリティ条件情報部、２１０…チェックバイト部、Ｒ１、Ｒ２、Ｒ３…レコード、３０１…状態識別子、３０２…データ長、３０３…データ、４００…共有データ設定コマンド、４０１…コマンドヘッダ部、４０７…データ部、７００…読出しコマンド、７０１…コマンドヘッダ部、８００…書換えコマンド、８０１…コマンドヘッダ部、８０７…データ部。
【図１】
2010072965.tif 000003
【図２】
2010072965.tif 000004
【図３】
2010072965.tif 000005
【図４】
2010072965.tif 000006
【図５】
2010072965.tif 000007
【図６】
2010072965.tif 000008
【図７】
2010072965.tif 000009
【図８】
2010072965.tif 000010
【図９】
2010072965.tif 000011
【図１０】
2010072965.tif 000012
【図１１】
2010072965.tif 000013
【図１２】
2010072965.tif 000014
【図１３】
2010072965.tif 000015
【図１４】
2010072965.tif 000016
【図１５】
2010072965.tif 000017
【図１６】
2010072965.tif 000018
【図１７】
2010072965.tif 000019
【図１８】
2010072965.tif 000020
【図１９】
2010072965.tif 000021
【図２０】
2010072965.tif 000022