(57)【要約】【課題】データファイルに対する不正なアクセスによるリスクを軽減し、データのセキュリティ性を向上させることができるＩＣカード１およびＩＣカード１におけるデータ管理方法を提供する。【解決手段】ＩＣカード１は、１つのデータを分割した複数の分割データをそれぞれデータの一部として格納した複数のデータファイルをデータメモリ１４に記憶しておき、前記複数のファイルにおける一部のデータを順に指定するコマンドをＩＣカード処理装置２から受信した場合、ＣＰＵ１１は、当該コマンドにより指定される順番で前記複数のファイルの一部に格納されている各データに対して順にアクセスすることにより複数の分割データを１つのデータとしてアクセス対象とする。【選択図】図１
2011060136.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からのコマンドに応じて処理を行う携帯可能電子装置であって、
前記外部装置との通信を行う通信手段と、
１つのデータを分割した複数のデータをそれぞれデータの一部として格納した複数のファイルを記憶するデータ記憶手段と、
前記通信手段により前記複数のファイルにデータの一部として格納されている複数のデータを順に指定するコマンドを受信した場合、当該コマンドにより指定される各データを前記複数のファイルから順に特定し、特定した各データを順に結合したデータ全体に対して当該コマンドで要求される処理を実行する処理手段と、
を有することを特徴とする携帯可能電子装置。
【請求項２】
前記処理手段は、前記通信手段により前記複数のファイルにデータの一部として格納されている複数のデータを順に指定する読出しコマンドを受信した場合、当該読出しコマンドにより指定される各データを前記複数のファイルから順に特定し、特定した各データを順に読み出して結合したデータ全体を当該読出しコマンドに応じた読出し処理の結果として出力する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
前記データ記憶手段は、１つのデータを複数に分割した各データをそれぞれ１つのレコードとして別のレコードとともに格納した複数のレコード型ファイルを記憶し、
前記処理手段は、前記通信手段により前記複数のレコード型ファイルにレコードとして格納されている複数のデータを順に指定する読出しコマンドを受信した場合、当該読出しコマンドにより指定される各レコードを前記複数のレコード型ファイルから順に特定し、特定した各レコードを順に読み出して結合したデータ全体を当該読出しコマンドに応じた読出し処理の結果として出力する、
ことを特徴とする前記請求項２に記載の携帯可能電子装置。
【請求項４】
前記コマンドは、レコード型ファイルを識別する識別情報とファイル内のレコードを識別するレコード管理番号とを順に指定することにより複数のレコードを順に指定するものである、
ことを特徴とする前記請求項３に記載の携帯可能電子装置。
【請求項５】
さらに、前記データ記憶手段に記憶されているレコード型ファイルごとにカレント状態のレコードを設定する設定手段を有し、
前記コマンドは、レコード型ファイルを識別する識別情報を順に指定することにより複数のレコード型ファイルにおけるカレント状態のレコードを順に指定するものである、
ことを特徴とする前記請求項３に記載の携帯可能電子装置。
【請求項６】
前記データ記憶手段は、１つのデータを複数に分割した各データをそれぞれ一群のデータにおける一部のデータとして格納した複数の透過型ファイルを記憶し、
前記処理手段は、前記通信手段により前記複数の透過型ファイルにデータの一部として格納されている複数のデータを順に指定する読出しコマンドを受信した場合、当該読出しコマンドにより指定される各データを前記複数の透過型ファイルから順に特定し、特定した各データを順に読み出して結合させたデータ全体を当該読出しコマンドに応じた読出し処理の結果として出力する、
ことを特徴とする前記請求項２に記載の携帯可能電子装置。
【請求項７】
さらに、１つのデータを分割した複数のデータの格納先を示すリンク情報を登録する登録手段を有し、
前記処理手段は、前記通信手段により前記リンク情報を指定するデータの読出しを要求するコマンドを受信した場合、当該コマンドにより指定されたリンク情報に従って前記複数のファイルに一部のデータとして格納されている各データを順に特定し、特定した各データを順に結合したデータ全体に対して当該コマンドで要求される処理を実行する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項８】
外部装置からのコマンドに応じて処理を行う携帯可能電子装置であって、
前記外部装置との通信を行う通信手段と、１つのデータを分割した複数のデータをそれぞれデータの一部として格納した複数のファイルを記憶するデータ記憶手段と、前記通信手段により前記複数のファイルにデータの一部として格納されている複数のデータを順に指定するコマンドを受信した場合、当該コマンドにより指定される各データを前記複数のファイルから順に特定し、特定した各データを順に結合したデータ全体に対して当該コマンドで要求される処理を実行する処理手段とを有するモジュールと、
前記モジュールを有する本体と、
を有することを特徴とする携帯可能電子装置。
【請求項９】
外部装置からのコマンドに応じて処理を行う携帯可能電子装置におけるデータ管理方法であって、
１つのデータを分割した複数のデータをそれぞれデータの一部として格納した複数のファイルをデータメモリに記憶しておき、
前記複数のファイルにデータの一部として格納されている複数のデータを順に指定するコマンドを受信した場合、当該コマンドにより指定される各データを前記複数のファイルから順に特定し、
前記特定した当該コマンドで指定される各データを順に結合したデータ全体に対して当該コマンドで要求される処理を実行する、
を有することを特徴とする携帯可能電子装置におけるデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、個人情報あるいは取引情報などが記憶されているＩＣチップが内蔵されているＩＣカードあるいはＩＣタグなどの携帯可能電子装置、および、上記携帯可能電子装置におけるデータ管理方法などに関する。
【背景技術】
【０００２】
一般に、ＩＣカードなどの携帯可能電子装置は、多様な分野で利用され、高いセキュリティ性が要求される運用形態で利用されることが多い。例えば、接触式あるいは非接触式ＩＣカードでは、個人情報あるいは取引情報などのセキュリティ性が高い情報を不揮発性メモリに記録することが多い。
【０００３】
従来のＩＣカードでは、たとえば、重要なデータを格納したファイルへアクセスを制限する場合、ＩＣカードの管理者あるいは所有者のみが知り得る「鍵」による照合あるいは認証が成功したことを条件として、ファイルへのアクセスを許可するようなセキュリティ制御を実施している。つまり、従来のＩＣカードでは、ファイルのデータを不正に読み出されたり、改竄されたりすることから保護するために「鍵」による保護が行われている。
【０００４】
しかしながら、近年では、ＩＣカードにおけるＥＥＰＲＯＭあるいはフラッシュメモリ等の不揮発性メモリに記録されているデータ自体が直接的に不正に読み出される危険性も無視できなくなっている。このため、ＩＣカード内の不揮発性メモリに記憶されているデータ自体が不正に読み出されても、正しいデータ全体が容易に特定できないようにする手立てを講じることも重要になってきている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ＩＳＯ／ＩＥＣ７８１６−４
【発明の概要】
【発明が解決しようとする課題】
【０００６】
この発明の一形態は、不正アクセスによるリスクを軽減し、データのセキュリティ性を向上させることができる携帯可能電子装置および携帯可能電子装置におけるデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明の一形態としての携帯可能電子装置は、外部装置からのコマンドに応じて処理を行うものであって、前記外部装置との通信を行う通信手段と、１つのデータを分割した複数のデータをそれぞれデータの一部として格納した複数のファイルを記憶するデータ記憶手段と、前記通信手段により前記複数のファイルにデータの一部として格納されている複数のデータを順に指定するコマンドを受信した場合、当該コマンドにより指定される各データを前記複数のファイルから順に特定し、特定した各データを順に結合したデータ全体に対して当該コマンドで要求される処理を実行する処理手段とを有する。
【０００８】
この発明の他の形態としての携帯可能電子装置は、外部装置からのコマンドに応じて処理を行うものであって、前記外部装置との通信を行う通信手段と、１つのデータを分割した複数のデータをそれぞれデータの一部として格納した複数のファイルを記憶するデータ記憶手段と、前記通信手段により前記複数のファイルにデータの一部として格納されている複数のデータを順に指定するコマンドを受信した場合、当該コマンドにより指定される各データを前記複数のファイルから順に特定し、特定した各データを順に結合したデータ全体に対して当該コマンドで要求される処理を実行する処理手段とを有するモジュールと、前記モジュールを有する本体とを有する。
【０００９】
この発明の他の形態としての携帯可能電子装置におけるデータ管理方法は、外部装置からのコマンドに応じて処理を行う携帯可能電子装置における方法であって、１つのデータを分割した複数のデータをそれぞれデータの一部として格納した複数のファイルをデータメモリに記憶しておき、前記複数のファイルにデータの一部として格納されている複数のデータを順に指定するコマンドを受信した場合、当該コマンドにより指定される各データを前記複数のファイルから順に特定し、前記特定した当該コマンドで指定される各データを順に結合したデータ全体に対して当該コマンドで要求される処理を実行する。
【発明の効果】
【００１０】
この発明の一形態によれば、不正アクセスによるリスクを軽減し、データのセキュリティ性を向上させることができる携帯可能電子装置および携帯可能電子装置におけるデータ管理方法を提供できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、携帯可能電子装置としてのＩＣカードおよびＩＣカードを含むＩＣカードシステムの構成例を示すブロック図である。
【図２】図２は、非接触式ＩＣカード全体の構成例を示す図である。
【図３】図３は、１つのデータを３つの分割データに分割した状態を示す図である。
【図４】図４は、１つのデータを３つに分割した分割データをそれぞれ３つの異なるレコードＥＦに格納した状態を模式的に示す図である。
【図５】図５は、図４に示す３つの分割データを１つのデータとして読み出すためのコマンドの一例である。
【図６】図６は、ＩＣカードにおける第１のデータ管理方法で管理されるデータの読出し処理の流れを説明するためのフローチャートである。
【図７】図７は、３つの分割データを３つの異なる透過型ＥＦに格納した状態を模式的に示す図である。
【図８】図８は、図７に示す３つの分割データを３つの透過型ＥＦから１つのデータとして読み出すためのコマンドの一例である。
【図９】図９は、ＩＣカードにおける第２のデータ管理方法で管理されるデータの読出し処理の流れを説明するためのフローチャートである。
【図１０】図１０は、３つの分割データを３つの異なるレコードＥＦに格納した状態を模式的に示す図である。
【図１１】図１１は、第３のデータ管理方法において分割して格納されているデータを読み出すコマンドの一例である。
【図１２】図１２は、ＩＣカードにおける第３のデータ管理方法で管理されるデータの読出し処理の流れを説明するためのフローチャートである。
【図１３】図１３は、３つの分割データを３つの異なるレコードＥＦに格納した状態を模式的に示す図である。
【図１４】図１４は、リンク情報の構成例を示す図である。
【図１５】図１５は、リンク情報を指定するコマンドの構成例を示す図である。
【図１６】図１６は、ＩＣカードにおける第４のデータ管理方法で管理されるデータの読出し処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【００１２】
以下、この発明の実施の形態について図面を参照して詳細に説明する。  
図１は、この発明の実施の形態に係る携帯可能電子装置としてのＩＣカード１およびＩＣカード１を含むＩＣカードシステムの構成例を示すブロック図である。  
上記ＩＣカード１は、外部装置あるいは上位装置としてのＩＣカード処理装置２からの電源供給により動作可能な状態となる。動作可能となったＩＣカード１は、上記ＩＣカード処理装置２からのコマンドに応じて種々の処理を行う。上記ＩＣカード処理装置２は、ＩＣカード１を動作させるための電源を供給するとともに、当該ＩＣカード１に対して種々の処理を要求するコマンドを供給する。上記ＩＣカード処理装置２がＩＣカード１に対して供給するコマンドは、用途あるいは運用形態などに応じた処理を要求するものである。
【００１３】
また、上記ＩＣカード１は、アンテナあるいは無線通信部等により上記ＩＣカード処理装置２と非接触の状態で無線通信を行う非接触式の携帯可能電子装置（非接触式ＩＣカード）であっても良し、上記ＩＣカード処理装置２と物理的、電気的に接触して通信を行う接触式の携帯可能電子装置（接触式ＩＣカード）であっても良い。さらには、上記ＩＣカード１は、非接触式ＩＣカードとしての通信機能と接触式ＩＣカードとしての通信機能とを有する複合型のＩＣカード（デュアルインターフェースＩＣカード）であっても良い。なお、非接触式ＩＣカードと接触式ＩＣカードとはＩＣカード処理装置２との通信方式等が異なるだけである。このため、以下に説明する実施の形態は、非接触式ＩＣカードおよび接触式ＩＣカードに同様に適用できる。
【００１４】
上記ＩＣカード１の構成例について説明する。  
図１に示すように、上記ＩＣカード１は、ＣＰＵ１１、プログラムメモリ１２、ワーキングメモリ１３、データメモリ１４、通信制御部１５、電源部１６、および、インターフェース（アンテナあるいはコンタクト部）１７などを有している。  
また、上記ＩＣカード１は、カード状の本体Ｃにより構成される。上記ＩＣカード１を形成するカード状の本体Ｃには、１つ（あるいは複数）のＩＣチップ１ａとインターフェース１７とが埋設される。上記ＩＣチップ１ａは、ＣＰＵ１１、プログラムメモリ１２、ワーキングメモリ１３、データメモリ１４、通信制御部１５および電源部１６などを有している。上記ＩＣチップ１ａは、上記インターフェース１７に接続された状態でモジュール化され、当該ＩＣカード１を形成するカード状の本体Ｃ内に埋設される。たとえば、図２は、非接触式ＩＣカード全体の構成例を示す図である。図２に示す非接触式ＩＣカードは、カード状の本体Ｃを有している。この本体Ｃ内には、図２に点線で示すように、１つ（あるいは複数）のＩＣチップ１ａとインターフェース１７としてのアンテナとを有するモジュールＭが埋め込まれている。
【００１５】
上記ＣＰＵ１１は、ＩＣカード１全体の制御を司るものである。上記ＣＰＵ１１は、上記プログラムメモリ１２あるいはデータメモリ１４に記憶されている制御プログラムおよび制御データなどに基づいて動作する。たとえば、上記ＣＰＵ１１は、上記プログラムメモリ１２に記憶されている基本的な動作を司る制御プログラムを実行することにより、外部装置から与えられるコマンドに応じた処理を実行する。これにより、外部装置から上記データメモリ１４へのデータの書込みを要求するコマンドが与えられれば、上記ＣＰＵ１１は、上記データメモリ１４へのデータの書き込み処理を実行する。また、外部装置から上記データメモリ１４に記憶されているデータの読み出しを要求するコマンドが与えられれば、上記ＣＰＵ１１は、上記データメモリ１４からのデータの読み出し処理を実行する。さらに、上記ＣＰＵ１１は、当該ＩＣカード１の用途などに応じてインストールされる処理プログラムを実行することにより、用途に応じた処理を実現するようになっている。
【００１６】
上記プログラムメモリ１２は、読み出し専用のメモリ（ＲＯＭ：リードオンリーメモリ）により構成される。上記プログラムメモリ１２には、予め基本動作を司る制御プログラムおよび制御データなどが記憶されている。上記プログラムメモリ１２には、予め当該ＩＣカード１の仕様に応じた制御プログラム及び制御データが記憶される。たとえば、上記ＣＰＵ１１は、上記プログラムメモリ１２に記憶される制御プログラムにより外部から与えられるコマンドに応じた処理を実現する。
【００１７】
上記ワーキングメモリ１３は、揮発性のメモリ（ＲＡＭ；ランダムアクセスメモリ）により構成される。上記ワーキングメモリ１３は、データを一時保管するバッファメモリとして機能する。例えば、上記ワーキングメモリ１３には、ＩＣカード処理装置（外部装置）２との通信処理において、送受信されるデータが一時的に保管される。また、上記ワーキングメモリ１３には、種々の書込みデータなどを一時的に保持するメモリとしても利用される。
【００１８】
上記データメモリ（不揮発性メモリ）１４は、データの書き込みが可能な不揮発性のメモリである。上記データメモリ１４は、例えば、ＥＥＰＲＯＭあるいはフラッシュメモリなどにより構成される。上記データメモリ１４には、当該ＩＣカード１の使用目的に応じた種々の情報が記憶される。当該ＩＣカードの使用目的に応じたアプリケーション（処理プログラムおよび運用データなど）は、上記データメモリ１４に書込まれる。当該ＩＣカード１が複数の使用目的に使用される場合、上記データメモリ１４には、各使用目的に応じた複数のアプリケーションが記憶される。たとえば、当該ＩＣカード１の使用目的に応じたアプリケーションは、上記データメモリ１４上に定義された使用目的ごとのプログラムファイル（ＤＦ；Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ）およびデータファイル（ＥＦ；Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ）などの各ファイルに記憶される。このようなファイル構成は、たとえば、ＩＳＯ／ＩＥＣ７８１６−４に基づくものである。
【００１９】
また、上記データファイル（ＥＦ）の形式（構造）としては、レコード型のファイルあるいは透過型のファイルがある。レコード型のファイルは、複数のレコード単位のデータが格納される。このようなレコード型のファイルには、ファイル内のレコードごとにアクセスすることが可能である。また、上記透過型のファイル内のデータには、当該ファイル内のデータ位置を表すオフセット値を指定してアクセスすることが可能である。なお、データファイル（ＥＦ）の構成例については、後で詳細に説明する。
【００２０】
上記通信制御部１５は、上記インターフェース１７を介して外部装置（たとえば、ＩＣカード処理装置２）とのデータ通信を制御するものである。たとえば、当該ＩＣカードが非接触型のＩＣカードであれば、外部装置からデータを受信する場合、上記通信制御部１５は、インターフェース１７としてのアンテナにより受信した電波としての送信データを復調し、復調した信号を上記ＣＰＵ１１に供給する。また、外部装置へデータを送信する場合、上記通信制御部１５は、上記ＣＰＵ１１から与えられるデータを変調し、変調したデータを上記インターフェース１７としてのアンテナにより電波として発信する。なお、接触式ＩＣカードでは、インターフェース１７として、アンテナの代わりに、外部装置の接触端子部と物理的・電気的に接触するコンタクト部を介して外部装置とのデータ通信を行う。
【００２１】
上記電源部１６は、当該ＩＣカード１の各部を動作させるための上記インターフェース１７を介して受信する電力およびクロックパルスを供給する。たとえば、当該ＩＣカードが非接触型のＩＣカードであれば、上記電源部１６は、上記インターフェース１７としてのアンテナにより受信した電波から電力およびクロックパルスを生成し、当該ＩＣカード内の各部に供給するようになっている。また、上記電源部１６からの電力供給により起動した場合、上記ＣＰＵ１１は、当該ＩＣカード１の処理状態をリセットする処理を行うようになっている。なお、当該ＩＣカード１が接触型のＩＣカードであれば、上記電源部１６はインターフェース１７を介して外部装置から直接的に供給される電力およびクロックパルスにより各部へ供給するようになっている。
【００２２】
次に、上記ＩＣカード処理装置２について説明する。  
上記ＩＣカード処理装置２は、図１に示すように、制御装置２１およびカードリーダライタ２２を有している。上記制御装置２１は、パーソナルコンピュータ（ＰＣ）などにより構成される。上記制御装置２１は、ＣＰＵなどの演算処理部、ＲＡＭ、ＲＯＭ、不揮発性メモリおよびハードディスクドライブなどの各種メモリ、通信インターフェースなどの各種インターフェースなどにより構成される。上記制御装置２１では、上記演算処理部がメモリに記憶されている各種の制御プログラムを実行することにより各種の処理を実現している。また、上記制御装置２１は、ＩＣカード１とのデータ通信を行う上記カードリーダライタ２２とのデータの入出力を行うようになっている。
【００２３】
たとえば、上記制御装置２１には、上記ＩＣカード１を用いた各種の処理に応じた制御プログラムが予め記憶されている。上記制御装置２１では、上記のような制御プログラムを実行することにより上記ＩＣカード１を用いた各種の処理を実行する。たとえば、上記ＩＣカード１を用いた各種の処理において、上記制御装置２１は、所定のコマンドを所定の手順で供給する。上記制御装置２１では、上記のような各コマンドに対するＩＣカード１からの各レスポンス（コマンドに対する処理結果等を示す情報）に基づいて各種の処理を行うようになっている。
【００２４】
上記カードリーダライタ２２は、上記ＩＣカード１とのデータ通信を行う通信手段として機能する。上記カードリーダライタ２２は、上記ＩＣカード１の通信方式に応じた通信方式によるデータ通信を行うためのものである。つまり、上記カードリーダライタ２２を介して制御装置２１は、上記ＩＣカード１とのデータ通信を実現している。
【００２５】
上記ＩＣカード１が非接触型のＩＣカードである場合、上記カードリーダライタ２２は、上記ＩＣカード１との無線によるデータ通信を行うためのアンテナおよび通信制御部（変復調回路等）などにより構成される。非接触型のＩＣカード１へデータを送信する場合、上記カードリーダライタ２２では、通信制御部により上記制御装置２１から与えられる送信データを変調し、変調した信号を電波としてアンテナにより発信する。また、非接触型のＩＣカード１からデータを受信する場合、上記カードリーダライタ２２では、アンテナにより受信した電波としての信号を通信制御部により復調し、復調したデータを受信データとして上記制御装置２１へ供給する。また、上記カードリーダライタ２２では、上記のようなデータの送受信とともに、上記ＩＣカード１を動作させるための電源およびクロックパルスとなる電波をアンテナにより発信するようになっている。
【００２６】
また、上記ＩＣカード１が接触型のＩＣカードである場合、上記カードリーダライタ２２は、ＩＣカード１と物理的に接触してデータ通信を行うためのコンタクト部および通信制御部などにより構成される。接触型のＩＣカードとのデータの送受信を行う場合、上記カードリーダライタ２２では、上記コンタクト部がＩＣカード１側に設けられているコンタクト部と物理的に接触して各種のデータ通信を行う。また、上記カードリーダライタ２２では、ＩＣカード１に物理的に接触しているコンタクト部を介して当該ＩＣカード１に対して電力およびクロックパルスを供給するようになっている。
【００２７】
次に、上記データメモリ１４に記憶されるファイルについて説明する。  
上記データメモリ１４には、階層構造の構成となるファイルにデータが記憶される。本実施の形態では、上記データメモリ１４には、ＩＳＯ／ＩＥＣ  ７８１６で規定されているファイル構成で各ファイルが記憶されるものとする。ＩＳＯ／ＩＥＣ  ７８１６では、ＭＦ（Ｍａｓｔｅｒ  Ｆｉｌｅ）、ＤＦ（Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ）、ＥＦ（Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ）などからなる階層構造のファイル構成が規定されている。ＭＦは、階層構造の最上位に位置するファイルであり、ＭＦの下層にＤＦあるいはＥＦが設けられる。ＤＦは、例えば、アプリケーションごとに設定されるファイルであり、当該アプリケーションで利用するデータを格納するＥＦが下層に設けられる。各ＥＦは、それぞれ実データを記憶するデータファイルである。
【００２８】
また、データファイルとしてのＥＦは、所定の形式でデータを格納する。たとえば、ＩＳＯ／ＩＥＣ７８１６−４では、ＥＦの形式として以下のような種類が規定されている。
【００２９】
（１）固定長順編成レコードファイル。
【００３０】
（２）可変長順編成レコードファイル。
【００３１】
（３）固定長循環順編成レコードファイル。
【００３２】
（４）透過型ファイル。
【００３３】
ＩＳＯ／ＩＥＣ７８１６−４の規格に準じたＩＣカードでは、データメモリ１４において、上記（１）〜（４）の何れかの形式のＥＦでデータを格納する。これらの形式のＥＦ内のデータには、ＩＣカード処理装置２からＩＣカード１に対して与えられるコマンドによってアクセスされる。
【００３４】
（１）〜（３）の形式のＥＦは、レコード型のファイルである。（１）〜（３）の形式のＥＦ（以下、レコードＥＦとも称する）には、レコード単位の複数のデータが格納可能である。このため、レコードＥＦに格納されるレコード単位のデータは、ＥＦを識別するための情報（ファイル識別情報（ＩＤ））とレコードを識別する情報（レコード管理番号）とにより特定される。
【００３５】
たとえば、ＩＣカード処理装置２がＩＣカード１に対してレコードＥＦに格納されているレコードへのアクセスを要求するコマンドにおいては、ファイル識別情報（ＩＤ）とレコード管理番号とによりアクセス対象のレコードが指定される。このようなコマンドを受信した場合、ＩＣカード１では、ファイル識別情報（ＩＤ）とレコード管理番号とによりアクセス対象のデータの記録場所（領域）を特定し、当該コマンドで要求された処理（例えば、当該領域に対するデータの読み出し、書き込み或いは書き換え）を実行する。
【００３６】
また、（２）の形式のレコードＥＦ（可変長順編成レコードファイル）に対しては、各レコードデータの長さを任意に指定することができる。（２）以外の形式のレコードＥＦ（固定長順編成レコードファイル、固定長循環順編成レコードファイル）では、各レコードデータの長さはファイルに依存する。さらに、（３）の形式のレコードＥＦ（固定長循環順編成レコードファイル）においては、データを順次追記するという概念が含まれる。すなわち、固定長循環順編成レコードファイルとしてのＥＦは、ファイルにレコードデータが追加書き込みされる毎に、最も古いレコードデータが削除される。この場合、当該ＥＦの各レコードデータには、新しい順、あるいは、古い順にレコード管理番号が付け替えられる。
【００３７】
また、（４）の形式のＥＦは、透過型のデータファイルである。（４）の形式のＥＦ（以下、透過型ＥＦとも称する）では、データをレコード単位ではなく、一群のデータとして格納する。このため、透過型ＥＦ内のデータには、データの先頭位置（アドレス）を示す情報によりアクセス対象のデータを指定できる。
【００３８】
たとえば、ＩＣカード処理装置２がＩＣカード１に対して透過型ＥＦに格納されているデータへのアクセスを要求するコマンドにおいては、ファイル識別情報（ＩＤ）と当該ファイル内のデータ部における先頭位置からのオフセット値（データの先頭アドレス）とによりアクセス対象のデータを指定する。このようなコマンドを受信した場合、ＩＣカード１では、ファイル識別情報（ＩＤ）と当該ファイル内のデータ部における先頭位置からのオフセット値（データの先頭アドレス）とによりアクセス対象のデータの記録場所（領域）を特定し、当該コマンドで要求された処理（例えば、当該領域に対するデータの読み出し、書き込み或いは書き換え）を実行する。なお、透過型ＥＦは、通常、データの長さを任意に指定することができる。
【００３９】
次に、本ＩＣカード１におけるデータの管理方法について説明する。  
本実施の形態では、１つのデータを複数のデータに分割し、分割したデータをばらばらの状態（連結しない状態）でデータメモリ１４内に記憶する。たとえば、分割したデータは、複数のファイルなどに記憶される。以下に、本ＩＣカード１に適用可能な分割したデータの記録方法および管理方法（データ管理方法）の例として、第１〜第４のデータ管理方法について説明する。
【００４０】
まず、第１のデータ管理方法について説明する。  
第１のデータ管理方法は、１つのデータを複数に分割し、分割したデータを別々のレコードＥＦに格納する手法である。図３は、１つのデータＤを３つの分割データＤａ、Ｄｂ、Ｄｃに分割した状態を示す図である。なお、以下に説明する各データ管理方法では、具体的な例として、図３に示すように、１つのデータＤを３分割したデータＤａ、Ｄｂ、Ｄｃを管理する手法について説明するものとする。
【００４１】
図４は、データＤを３つに分割した分割データＤａ、データＤｂ、データＤｃをそれぞれ３つの異なるレコードＥＦに格納した状態を模式的に示す図である。図４に示す例では、データＤａは、ＥＦ識別情報が「０００３」のＥＦ１−１におけるレコード管理番号が「００２」のレコードに格納されている。データＤｂは、ＥＦ識別情報が「００１２」のＥＦ１−２におけるレコード管理番号が「００１」のレコードに格納されている。データＤｃは、ＥＦ識別情報が「０１３８」のＥＦ１−３におけるレコード管理番号が「００３」のレコードに格納されている。
【００４２】
また、図４に示すように各レコードＥＦには、データＤａ、Ｄｂ、Ｄｃ以外の別のレコードデータも格納されている。このため、各レコードＥＦあるいは各レコードデータを読み出せたとしても、どのようにレコードデータを組み合わせれば元の正しいデータとなるかは、容易には判別できない。  
さらに、第１のデータ管理方法では、各データＤａ、Ｄｂ、Ｄｃの格納場所を示す情報をＩＣカード１内には保持せずに、各データＤａ、Ｄｂ、Ｄｃがどこに格納されているかはＩＣカード処理装置（上位装置）２あるいはＩＣカード処理装置の操作者が認識しているものとする。このような形態によれば、ＩＣカード１をどのように解析しても、元の正しいデータＤを特定することが困難となる。
【００４３】
図５は、図４に示すように３つのデータＤａ、Ｄｂ、Ｄｃとして分割して格納されたデータＤを読み出すためのコマンドの一例である。  
図５に示すコマンドでは、各データＤａ、Ｄｂ、Ｄｃが格納されている領域（レコード）を示すＥＦ識別番号とレコード管理番号とが順に指定されている。ここでは、上位装置としてのＩＣカード処理装置２あるいはＩＣカード処理装置２の正当な操作者が分割された各データＤａ、Ｄｂ、Ｄｃがそれぞれどこに格納されているかを予め知っていることを前提としている。このため、ＩＣカード処理装置２では、データの読出しを要求するコマンドコードをセットしたコマンドにおいて、各データＤａ、Ｄｂ、Ｄｃが格納されているＥＦ識別番号とレコード管理番号とを順に指定する。このようなコマンドを受信したＩＣカード１では、ＥＦ識別番号とレコード管理番号とで指定された各データＤａ、Ｄｂ、Ｄｃを順に読み出し、それらのデータＤａ、Ｄｂ、Ｄｃを順に連結したデータＤを読出し結果（コマンドの処理結果）としてＩＣカード処理装置２へ送信する。この結果として、ＩＣカード処理装置２は、図３に示すようなデータＤを読出しコマンドに対するレスポンスとして取得できる。
【００４４】
次に、第１のデータ管理方法で管理されるデータの読出し処理について説明する。  
図６は、ＩＣカード１における第１のデータ管理方法で管理されるデータの読出し処理の流れを説明するためのフローチャートである。  
ここでは、まず、ＩＣカード１は、インターフェース１７により図５に示すようなデータの読出しコマンドを受信したものとする。すると、ＩＣカード１のＣＰＵ１１は、受信したコマンドのコマンドデータにより受信したコマンドがデータの読出しを要求することであることを判断する。受信コマンドがデータの読出しを要求するコマンドであると判断すると、ＣＰＵ１１は、読出しデータを格納するためのデータバッファをクリア（初期化）し（ステップＳ１１）、変数Ｎに初期値（Ｎ＝１）を設定する（ステップＳ１２）。なお、データバッファの記憶領域は、たとえば、ワーキングメモリ１３内に確保される。また、変数Ｎの値はワーキングメモリ１３あるいはデータメモリ１４に格納される。
【００４５】
変数Ｎの値を設定すると、ＣＰＵ１１は、受信した読出しコマンド内にＮ番目のデータを指定するＮ番目のＥＦ識別情報（ＥＦ識別情報Ｎ）とＮ番目のレコード管理番号（レコード管理番号Ｎ）とがあるか否かを判断する（ステップＳ１３）。たとえば、変数Ｎが「Ｎ＝１」であれば、ＣＰＵ１１は、受信した読出しコマンド内に１番目のデータを示すＥＦ識別情報１とレコード管理番号１とがあるか否かを判断する。
【００４６】
受信した読出しコマンド内にＮ番目のデータを指定するＥＦ識別情報Ｎとレコード管理番号Ｎとがあると判断した場合（ステップＳ１３、ＹＥＳ）、ＣＰＵ１１は、ＥＦ識別情報ＮのＥＦを検索する処理を行う（ステップＳ１４）。この検索結果としてＥＦ識別情報ＮのＥＦが検出できた場合（ステップＳ１４、ＯＫ）、ＣＰＵ１１は、検出したＥＦ識別情報ＮのＥＦにおけるレコード管理番号Ｎのレコードデータを読み出す処理を行う（ステップＳ１５）。
【００４７】
たとえば、図５に示すコマンド例の場合、Ｎ＝１であれば、ＩＤが「０００３」のＥＦを検索し、ＩＤが「０００３」のＥＦにおけるレコード管理番号が「００２」のレコードデータを読み出す。また、図５に示すコマンド例の場合、Ｎ＝２であれば、ＩＤが「００１２」のＥＦにおけるレコード管理番号が「００１」のレコードデータを読み出す。また、図５に示すコマンド例の場合、Ｎ＝３であれば、ＩＤが「０１３８」のＥＦにおけるレコード管理番号が「００３」のレコードデータを読み出す。
【００４８】
上記ＥＦ識別情報ＮのＥＦにおけるレコード管理番号Ｎのレコードデータを読み出した場合（ステップＳ１５、ＯＫ）、ＣＰＵ１１は、読み出したレコード管理番号Ｎのレコードデータをデータバッファに追記する（ステップＳ１６）。これにより、データバッファには、Ｎ番目までの各データが順に追記されたデータが格納される。読み出したレコードデータをデータバッファに格納すると、ＣＰＵ１１は、変数Ｎをインクリメント（Ｎ＝Ｎ＋１）とし（ステップＳ１７）、上記ステップＳ１３からの処理を繰り返し実行する。
【００４９】
上記ステップＳ１３において受信した読出しコマンド内にＮ番目のＥＦ識別情報（ＥＦ識別情報Ｎ）とＮ番目のレコード管理番号（レコード管理番号Ｎ）とがないと判断した場合（ステップＳ１３、ＮＯ）、ＣＰＵ１１は、変数Ｎの値が初期値（「１」）よりも大きい値（つまり、初期値以外の値）であるか否かを判断する（ステップＳ１８）。
【００５０】
変数Ｎの値が初期値よりも大きい値である場合（ステップＳ１８、ＹＥＳ）、ＣＰＵ１１は、データバッファに格納しているデータを読出し処理の結果としてＩＣカード処理装置２へ出力し（ステップＳ１９）、当該処理を終了する。この場合、データバッファには、当該コマンドで指定された全てのデータ（分割データ）が順に追記されたデータ（復元されたデータ）全体が格納される。従って、ＩＣカード１は、当該読出しコマンドの処理結果として、分割して保持しているデータを１つのデータとして出力できる。
【００５１】
また、上記ステップＳ１８で変数Ｎの値が初期値よりも大きい値でない（つまり、初期値）であると判断した場合（ステップＳ１８、ＮＯ）、ＣＰＵ１１は、コマンドで読出し対象のデータが指定されていないものとして当該受信コマンドに対する処理結果をエラーとし、エラーコードをセットしたレスポンスをＩＣカード処理装置２へ送信し（ステップＳ２０）、処理を終了する。  
また、上記ＥＦ識別情報ＮのＥＦが検出できなかった場合（ステップＳ１４、ＥＲＲＯＲ）、あるいは、上記レコード管理番号Ｎのレコードデータが読み出せなった場合（ステップＳ１５、ＥＲＲＯＲ）、ＣＰＵ１１は、当該受信コマンドに対する処理結果をエラーとし、エラーコードをセットしたレスポンスをＩＣカード処理装置２へ送信し（ステップＳ２０）、処理を終了する。
【００５２】
上記のような第１のデータ管理方法では、分割した各データをそれぞれ複数のレコードＥＦにおける一部のレコードデータに格納し、それらの各データの格納場所をＩＣカード処理装置（上位装置）が指定する。このため、第１のデータ管理方法が適用されたＩＣカード１は、どのように解析しても元の正しいデータＤを特定することが困難となる。また、第１のデータ管理方法が適用されたＩＣカードは、上位装置から複数の分割データを順に指定するコマンドを受信した場合、それらの指定された各データに順にアクセスすることにより、当該コマンドで要求される処理を分割して複数のレコードＥＦに格納されている１つのデータに対する処理として実行することができる。この結果として、当該ＩＣカードでは、セキュリティ性が高いデータ管理を実現しつつ、効率的なデータ処理を行うことが可能となる。
【００５３】
次に、第２のデータ管理方法について説明する。  
第２のデータ管理方法は、１つのデータを複数に分割し、分割したデータを別々の透過型ＥＦに格納する手法である。ここでは、第２のデータ管理方法によって、図３に示すような１つのデータＤを３分割したデータＤａ、Ｄｂ、Ｄｃを管理する手法について説明するものとする。
【００５４】
図７は、データＤを３つに分割したデータＤａ、データＤｂ、データＤｃをそれぞれ３つの異なる透過型ＥＦ（ＥＦ２−１、ＥＦ２−２、ＥＦ２−３）に格納した状態を模式的に示す図である。図７に示す例では、データＤａは、ＥＦ識別情報が「１００２」のＥＦ２−１内におけるアドレス「Ｘ」からの記憶領域に格納されている。データＤｂは、ＥＦ識別情報が「１０１６」のＥＦ２−２内におけるアドレス「Ｙ」からの記憶領域に格納されている。データＤｃは、ＥＦ識別情報が「１１２３」のＥＦ２−３内におけるアドレス「Ｚ」からの記憶領域に格納されている。
【００５５】
また、図７に示すように各透過型ＥＦのデータ部には、データＤａ、Ｄｂ、Ｄｃ以外の別のデータも格納されている。このため、各透過型ＥＦのデータを全て読み出せたとしても、どのようにデータを組み合わせれば元の正しいデータとなるかは、容易には判別できない。さらに、第２のデータ管理方法では、各データＤａ、Ｄｂ、Ｄｃの格納場所を示す情報をＩＣカード１内には保持せず、各データＤａ、Ｄｂ、Ｄｃがどこに格納されているかはＩＣカード処理装置（上位装置）２あるいはＩＣカード処理装置の操作者が認識しているものとする。このような形態によれば、ＩＣカード１をどのように解析しても、元の正しいデータＤを特定することが困難となる。
【００５６】
図８は、図７に示すように、３つのデータＤａ、Ｄｂ、Ｄｃとして透過型ＥＦに分割して格納しているデータＤを読み出すためのコマンドの一例である。  
図８に示すコマンドでは、各データＤａ、Ｄｂ、Ｄｃを格納しているＥＦのＥＦ識別番号、ＥＦ内におけるデータの先頭アドレス（当該ＥＦのデータ部における先頭位置からのオフセット値）、および、データの長さをそれぞれ順に指定するように構成されている。ここでは、上位装置としてのＩＣカード処理装置２あるいはＩＣカード処理装置２の正当な操作者が分割された各データＤａ、Ｄｂ、Ｄｃがそれぞれどこに格納されているかを予め知っていることを前提としている。このため、ＩＣカード処理装置２では、データの読出しを要求するコマンドコードをセットしたコマンドにおいて、各データＤａ、Ｄｂ、Ｄｃが格納されているＥＦ識別番号、先頭アドレス（オフセット値）及びデータ長を順に指定する。
【００５７】
このようなコマンドを受信したＩＣカード１では、ＥＦ識別番号、先頭アドレス（オフセット値）及びデータ長により各データＤａ、Ｄｂ、Ｄｃの記憶領域を順に特定して読み出し、それらのデータＤａ、Ｄｂ、Ｄｃを順に連結したデータＤを読出し結果（コマンドの処理結果）としてＩＣカード処理装置２へ送信する。この結果として、ＩＣカード処理装置２は、図３に示すようなデータＤを読出しコマンドに対するレスポンスとして取得できる。
【００５８】
次に、第２のデータ管理方法で管理されるデータの読出し処理について説明する。  
図９は、ＩＣカード１における第２のデータ管理方法で管理されるデータの読出し処理の流れを説明するためのフローチャートである。  
ここでは、まず、ＩＣカード１は、インターフェース１７により図８に示すようなデータの読出しコマンドを受信したものとする。すると、ＩＣカード１のＣＰＵ１１は、受信したコマンドのコマンドコードにより受信したコマンドがデータの読出しを要求することであることを判断する。受信コマンドがデータの読出しを要求するコマンドであると判断すると、ＣＰＵ１１は、読出しデータを格納するためのデータバッファをクリア（初期化）し（ステップＳ３１）、変数Ｎに初期値（Ｎ＝１）を設定する（ステップＳ３２）。なお、データバッファの記憶領域は、たとえば、ワーキングメモリ１３内に確保される。また、変数Ｎの値はワーキングメモリ１３あるいはデータメモリ１４に格納される。
【００５９】
変数Ｎの値を設定すると、ＣＰＵ１１は、受信した読出しコマンド内にＮ番目のデータを指定するＮ番目のＥＦ識別情報（ＥＦ識別情報Ｎ）、Ｎ番目の先頭アドレス情報（アドレス（オフセット値）Ｎ）及びＮ番目の長さ情報（長さＮ）があるか否かを判断する（ステップＳ３３）。たとえば、変数Ｎが「Ｎ＝１」であれば、ＣＰＵ１１は、受信した読出しコマンド内に１つ目のデータを指定するＥＦ識別情報１、アドレス（オフセット値）１および長さ１があるか否かを判断する。
【００６０】
受信した読出しコマンド内にＮ番目のデータを指定するＥＦ識別情報Ｎ、アドレスＮおよび長さＮがあると判断した場合（ステップＳ３３、ＹＥＳ）、ＣＰＵ１１は、ＥＦ識別情報１のＥＦを検索する処理を行う（ステップＳ３４）。この検索結果としてＥＦ識別情報ＮのＥＦが検出できた場合（ステップＳ３４、ＯＫ）、ＣＰＵ１１は、当該ＥＦにおけるデータ部の先頭から「アドレス（オフセット値）Ｎ」分の位置を先頭とする「長さＮ」分のデータを読み出す処理を行う（ステップＳ３５）。
【００６１】
たとえば、図８に示すコマンド例の場合、Ｎ＝１であれば、ＩＤが「１００２」のＥＦを検索し、ＩＤが「１００２」のＥＦにおけるデータ部の先頭からアドレス（オフセット）「００」分の位置を先頭とする長さ「０４」分のデータ（データＤａ）を読み出す。また、図８に示すコマンド例において、Ｎ＝２であれば、ＩＤが「１０１６」のＥＦにおけるデータ部の先頭からアドレス（オフセット）「１３」分の位置を先頭とする長さ「０５」分のデータ（データＤｂ）を読み出す。また、図８に示すコマンド例において、Ｎ＝３であれば、ＩＤが「１１２３」のＥＦにおけるデータ部の先頭からアドレス（オフセット）「０７」分の位置を先頭とする長さ「０６」分のデータ（データＤｃ）を読み出す。
【００６２】
上記のようにコマンド内でＮ番目に指定されたデータを読み出した場合（ステップＳ３５、ＯＫ）、ＣＰＵ１１は、読み出したＮ番目のデータをデータバッファに追記する（ステップＳ３６）。これにより、データバッファには、Ｎ番目までの各データが順に追記されたデータが格納される。読み出したデータをデータバッファに格納すると、ＣＰＵ１１は、変数Ｎをインクリメント（Ｎ＝Ｎ＋１）とし（ステップＳ３７）、上記ステップＳ３３からの処理を繰り返し実行する。
【００６３】
上記ステップＳ３３において受信した読出しコマンド内にＮ番目のＥＦ識別情報（ＥＦ識別情報Ｎ）、Ｎ番目のアドレス情報（アドレスＮ）およびＮ番目の長さ情報（長さＮ）がないと判断した場合（ステップＳ３３、ＮＯ）、ＣＰＵ１１は、変数Ｎの値が初期値（「１」）よりも大きい値（つまり、初期値以外の値）であるか否かを判断する（ステップＳ３８）。変数Ｎの値が初期値よりも大きい値である場合（ステップＳ３８、ＹＥＳ）、ＣＰＵ１１は、データバッファに格納しているデータを上記読出しコマンドに対するデータの読出し処理の結果としてＩＣカード処理装置２へ出力し（ステップＳ３９）、処理を終了する。この場合、データバッファには、当該読出しコマンドで指定された全てのデータ（分割データ）が順に追記されたデータ（復元されたデータ）全体が格納される。従って、ＩＣカード１は、当該読出しコマンドの処理結果として、分割して保持しているデータを１つのデータとして出力できる。
【００６４】
また、上記ステップＳ３８で変数Ｎの値が初期値よりも大きい値でない（つまり、初期値）であると判断した場合（ステップＳ３８、ＮＯ）、ＣＰＵ１１は、当該読出しコマンドでは読出し対象のデータが指定されていないものと判断して、当該コマンドに対する処理結果をエラーとし、エラーコードをセットしたレスポンスをＩＣカード処理装置２へ送信し（ステップＳ４０）、処理を終了する。  
また、上記ＥＦ識別情報ＮのＥＦが検出できなかった場合（ステップＳ３４、ＥＲＲＯＲ）、あるいは、指定の先頭アドレスから指定の長さ分のデータが読み出せなった場合（ステップＳ３５、ＥＲＲＯＲ）、ＣＰＵ１１は、当該読出しコマンドに対する処理結果をエラーとし、エラーコードをセットしたレスポンスをＩＣカード処理装置２へ送信し（ステップＳ４０）、処理を終了する。
【００６５】
上記のような第２のデータ管理方法では、分割した各データをそれぞれ複数の透過型ＥＦの一部に格納し、それらの各データの格納場所をＩＣカード処理装置（上位装置）が指定する。このため、第２のデータ管理方法が適用されたＩＣカード１は、どのように解析しても元の正しいデータＤを特定することが困難となる。また、第２のデータ管理方法が適用されたＩＣカードは、上位装置から複数の分割データを順に指定するコマンドを受信した場合、それらの指定された各データに順にアクセスすることにより、当該コマンドで要求される処理を分割して複数の透過型ＥＦに格納されている１つのデータに対する処理として実行することができる。この結果として、当該ＩＣカードでは、セキュリティ性が高いデータ管理を実現しつつ、効率的なデータ処理を行うことが可能となる。
【００６６】
次に、第３のデータ管理方法について説明する。  
第３のデータ管理方法は、１つのデータを複数に分割し、分割したデータを別々のレコードＥＦに格納する手法である。ここでは、第３のデータ管理方法によって、図３に示すような１つのデータＤを３分割したデータＤａ、Ｄｂ、Ｄｃを管理する手法について説明するものとする。  
図１０は、データＤを３つに分割したデータＤａ、データＤｂ、データＤｃをそれぞれ３つの異なるレコードＥＦ（ＥＦ３−１、ＥＦ３−２、ＥＦ３−３）に格納した状態を模式的に示す図である。図１０に示す例は、第１のデータ管理方法で説明した図４に示す例と同様に、分割した各データを複数のレコードＥＦにおける一部のレコードデータにそれぞれ格納している状態を示している。
【００６７】
すなわち、第３のデータ管理方法においても、第１のデータ管理方法と同様、各レコードＥＦあるいは各レコードデータを読み出せたとしても、どのようにレコードデータを組み合わせれば元の正しいデータとなるかは、容易には判別できない。また、第３のデータ管理方法も、各データＤａ、Ｄｂ、Ｄｃの格納場所を示す情報をＩＣカード１内には保持せずに、各データＤａ、Ｄｂ、Ｄｃがどこに格納されているかはＩＣカード処理装置（上位装置）２あるいはＩＣカード処理装置の操作者が認識しているものとする。このような形態では、上述した第１のデータ管理方法と同様に、ＩＣカード１をどのように解析しても、元の正しいデータＤを特定することが困難である。
【００６８】
ただし、図１０に示すように、第３のデータ管理方法では、レコードＥＦごとにカレント状態のレコードを設定できるようになっている。各レコードＥＦにおけるカレントのレコードは、上位装置としてのＩＣカード処理装置２により指定される。すなわち、第３のデータ管理方法では、分割された３つのデータが３つのレコードＥＦにそれぞれ格納されている場合、ＩＣカード処理装置２は、各レコードＥＦについて、分割されたデータが格納されているレコードをカレント状態（被選択状態）にする。このような状態であれば、ＩＣカード処理装置２は、カレント指定のコマンドで、複数のレコードＥＦに分割して格納されている１つのデータに対する処理を要求することが可能となる。
【００６９】
図１１は、第３のデータ管理方法において分割して格納されているデータを読み出すコマンドの一例である。図１１は、図１０に示すようにカレント状態が設定された３つのレコードＥＦから３つのデータＤａ、Ｄｂ、ＤｃからなるデータＤを読み出すためのコマンドの一例である。  
図１１に示すコマンドでは、各データＤａ、Ｄｂ、Ｄｃが格納されているＥＦ識別番号のみを順に指定している。この場合、図１１に示すコマンドのコマンドコードでは、カレント状態のレコードの読出しを要求するコマンドであることを示しているものとする。すなわち、図１１に示すコマンドでは、複数のレコードＥＦに分割して格納されている１つのデータにアクセスする場合、上位装置としてのＩＣカード処理装置２が分割された各データＤａ、Ｄｂ、Ｄｃが格納されているレコードを各レコードＥＦにおけるカレント状態としておくことを前提としている。
【００７０】
このように読み出すべき各レコードをカレント状態に設定しておけば、ＩＣカード処理装置２では、データの読出しを要求するコマンドコードをセットしたコマンドにおいて、各データＤａ、Ｄｂ、Ｄｃが格納されているレコードＥＦのＥＦ識別番号のみを順に指定すれば良い。このようなコマンドを受信したＩＣカード１では、ＥＦ識別番号で指定された各レコードＥＦからカレント状態のレコードデータを各データＤａ、Ｄｂ、Ｄｃとして順に読み出し、それらのデータＤａ、Ｄｂ、Ｄｃを順に連結したデータＤを読出し結果（コマンドの処理結果）としてＩＣカード処理装置２へ送信する。この結果として、ＩＣカード処理装置２は、図３に示すようなデータＤを読出しコマンドに対するレスポンスとして取得できる。
【００７１】
次に、第３のデータ管理方法で管理されるデータの読出し処理について説明する。  
図１２は、ＩＣカード１における第３のデータ管理方法で管理されるデータの読出し処理の流れを説明するためのフローチャートである。  
ここでは、ＩＣカード処理装置２は、図１１に示すようなデータの読出しコマンドを送信する前に、各レコードＥＦに分割して可能したデータ部としての各レコードをカレント状態に設定しているものとする。なお、ＩＣカード処理装置２は、ＩＣカード１に対してカレント状態のレコードを指定するコマンドを供給することにより、各レコードＥＦにおけるカレント状態のレコードが設定可能である。
【００７２】
図１０に示すように各レコードＥＦにおいてカレントのレコードが設定されている状態において、ＩＣカード１は、インターフェース１７により図１１に示すようなデータの読出しコマンドを受信したものとする。すると、ＩＣカード１のＣＰＵ１１は、受信したコマンドのコマンドコードにより受信したコマンドがデータの読出しを要求するものであることを判断する。受信コマンドがデータの読出しを要求するコマンドであると判断すると、ＣＰＵ１１は、読出しデータを格納するためのデータバッファをクリア（初期化）し（ステップＳ５１）、変数Ｎに初期値（Ｎ＝１）を設定する（ステップＳ５２）。なお、データバッファの記憶領域は、たとえば、ワーキングメモリ１３内に確保される。また、変数Ｎの値はワーキングメモリ１３あるいはデータメモリ１４に格納される。
【００７３】
変数Ｎの値を設定すると、ＣＰＵ１１は、受信した読出しコマンド内にＮ番目のデータを指定するＮ番目のＥＦ識別情報（ＥＦ識別情報Ｎ）があるか否かを判断する（ステップＳ５３）。たとえば、変数Ｎが「Ｎ＝１」であれば、ＣＰＵ１１は、受信した読出しコマンド内に１番目のデータを指定するＥＦ識別情報１があるか否かを判断する。  
受信した読出しコマンド内にＥＦ識別情報Ｎがあると判断した場合（ステップＳ５３、ＹＥＳ）、ＣＰＵ１１は、ＥＦ識別情報ＮのＥＦを検索する処理を行う（ステップＳ５４）。この検索結果としてＥＦ識別情報ＮのＥＦが検出できた場合（ステップＳ５４、ＯＫ）、ＣＰＵ１１は、検出したＥＦにおいてカレント状態のレコードがあるか否かを判断する（ステップＳ５５）。
【００７４】
この判断により検出したＥＦにカレント状態のレコードがあると判断した場合（ステップＳ５５、ＹＥＳ）、ＣＰＵ１１は、当該ＥＦ識別情報ＮのＥＦにおけるカレント状態のレコードデータを読み出す処理を行う（ステップＳ５６）。たとえば、図１１に示すコマンド例の場合、Ｎ＝１であれば、ＩＤが「０００３」のＥＦを検索し、ＩＤが「０００３」のＥＦにおけるカレント状態のレコードデータ（図１０に示す例では、レコード管理番号が「００２」のレコードデータ）を読み出す。また、図１１に示すコマンド例の場合、Ｎ＝２であれば、ＩＤが「００１２」のＥＦにおけるカレント状態のレコードデータ（図１０に示す例では、レコード管理番号が「００１」のレコードデータ）を読み出す。また、図１１に示すコマンド例の場合、Ｎ＝３であれば、ＩＤが「０１３８」のＥＦにおけるカレント状態のレコードデータ（図１０に示す例では、レコード管理番号が「００３」のレコードデータ）を読み出す。
【００７５】
上記ＥＦ識別情報ＮのＥＦにおけるカレント状態のレコードデータを読み出した場合（ステップＳ５６）、ＣＰＵ１１は、読み出したレコードデータをデータバッファに追記する（ステップＳ５７）。これにより、データバッファには、Ｎ番目までの各データが順に追記されたデータが格納される。読み出したレコードデータをデータバッファに格納すると、ＣＰＵ１１は、変数Ｎをインクリメント（Ｎ＝Ｎ＋１）とし（ステップＳ３８）、上記ステップＳ５３からの処理を繰り返し実行する。
【００７６】
上記ステップＳ５３において受信した読出しコマンド内にＮ番目のデータを指定するＮ番目のＥＦ識別情報（ＥＦ識別情報Ｎ）がないと判断した場合（ステップＳ５３、ＮＯ）、ＣＰＵ１１は、変数Ｎの値が初期値（「１」）よりも大きい値（つまり、初期値以外の値）であるか否かを判断する（ステップＳ５９）。
【００７７】
変数Ｎの値が初期値よりも大きい値である場合（ステップＳ５９、ＹＥＳ）、ＣＰＵ１１は、データバッファに格納しているデータを読出し処理の結果としてＩＣカード処理装置２へ出力し（ステップＳ６０）、当該処理を終了する。この場合、データバッファには、当該コマンドで指定された全てのデータ（分割データ）が順に追記されたデータ（復元されたデータ）全体が格納される。従って、ＩＣカード１は、当該読出しコマンドの処理結果として、分割して保持しているデータを１つのデータとして出力できる。
【００７８】
また、上記ステップＳ５９で変数Ｎの値が初期値よりも大きい値でない（つまり、初期値）であると判断した場合（ステップＳ５９、ＮＯ）、ＣＰＵ１１は、コマンドで読出し対象のデータが指定されていないものとして当該受信コマンドに対する処理結果をエラーとし、エラーコードをセットしたレスポンスをＩＣカード処理装置２へ送信し（ステップＳ６１）、処理を終了する。  
また、上記ＥＦ識別情報Ｎが検出できなかった場合（ステップＳ５４、ＥＲＲＯＲ）、あるいは、検出したＥＦにカレント状態のレコードが存在しなかった場合（ステップＳ５５、ＮＯ）、ＣＰＵ１１は、当該受信コマンドに対する処理結果をエラーとし、エラーコードをセットしたレスポンスをＩＣカード処理装置２へ送信し（ステップＳ６１）、処理を終了する。
【００７９】
上記のような第３のデータ管理方法では、分割した各データをそれぞれ複数のレコードＥＦにおける一部のレコードデータに格納し、各レコードＥＦにおいて分割した各データを格納したレコードをＩＣカード処理装置（上位装置）がカンレトとして指定する。この状態において、ＩＣカードは、上位装置から複数の分割データをＥＦ識別情報で順に指定するコマンドを受信した場合、それらの指定された各ＥＦにおけるカレント状態のレコードデータに順にアクセスすることにより、当該コマンドで要求される処理を分割して複数のレコードＥＦに格納されている１つのデータに対する処理として実行することができる。この結果として、当該ＩＣカードでは、セキュリティ性が高いデータ管理を実現しつつ、効率的なデータ処理を行うことが可能となる。
【００８０】
次に、第４のデータ管理方法について説明する。  
第４のデータ管理方法は、１つのデータを複数に分割し、分割したデータを別々のレコードＥＦに格納する手法である。ここでは、第４のデータ管理方法によって、図３に示すような１つのデータＤを３分割したデータＤａ、Ｄｂ、Ｄｃを管理する手法について説明するものとする。
【００８１】
図１３は、データＤを３つに分割したデータＤａ、データＤｂ、データＤｃをそれぞれ３つの異なるレコードＥＦ（ＥＦ３−１、ＥＦ３−２、ＥＦ３−３）に格納した状態を模式的に示す図である。図１３に示す例では、第１のデータ管理方法で説明した図４に示す例と同様に、分割した各データを複数のレコードＥＦにおける一部のレコードデータに格納している。すなわち、第４のデータ管理方法においても、第１のデータ管理方法と同様、各レコードＥＦあるいは各レコードデータを読み出せたとしても、どのようにレコードデータを組み合わせれば元の正しいデータとなるかは、容易には判別できないようになっている。
【００８２】
第４のデータ管理方法では、分割した各データを示す情報（分割したデータを復元するための情報）をＩＣカード１内に記録する。たとえば、分割した各データを複数のＥＦ内に格納する場合、ＩＣカード１には、分割した各データを格納した格納場所（たとえば、ＥＦ識別情報とレコード管理番号）および格納順（連結する順序）に関する情報が記録される。ここでは、上記のような分割して格納したデータを１つのデータに復元するための情報をリンク情報と称するものとする。このようなリンク情報は、高いセキュリティ性が高い情報である。このため、リンク情報は、たとえば、データメモリ１４におけるセキュアな記憶領域に記憶される。また、リンク情報は、暗号化してデータメモリ１４に記憶するようにしても良い。
【００８３】
図１４は、リンク情報の構成例を示す図である。  
図１４は、分割した各データＤａ、Ｄｂ、Ｄｃが図１３に示すように複数のレコードＥＦに格納されている場合のデータＤに関するリンク情報の例を示している。図１４に示すリンク情報の例は、識別情報としてのリンク番号が「１」に設定され、各データＤａ、Ｄｂ、Ｄｃが格納されているＥＦ識別番号とレコード管理番号とを順に示す構成となっている。このようなリンク情報を参照すれば、ＩＣカード１では、ＥＦ識別番号とレコード管理番号とで特定される各データＤａ、Ｄｂ、Ｄｃを順にアクセスでき、それらのデータＤａ、Ｄｂ、Ｄｃを順に連結したデータＤをアクセス対象のデータとして取り扱うことが可能となる。
【００８４】
なお、リンク情報は、図１３に示すように分割した複数のデータを複数のレコードＥＦに格納した場合だけでなく、図７に示すように分割した複数のデータを複数の透過型ＥＦに格納した場合にも適用できる。この場合、リンク情報としては、たとえば、図８に示すコマンドコード以外の部分のように、各データＤａ、Ｄｂ、Ｄｃの領域を示す情報を順に並べたもので実現できる。
【００８５】
図１５は、リンク情報を指定するコマンドの構成例を示す図である。  
上記のようなリンク情報を有するＩＣカードに対して、ＩＣカード処理装置２では、コマンドにおいて分割した各データを指定するのではなく、リンク情報をリンク番号等により指定すれば良い。図１５に示すコマンド例では、コマンドコードととともに、リンク情報を識別するためのリンク番号が指定されている。このようなコマンドを受信したＩＣカード１では、指定されたリンク情報に基づいて各データの格納場所（ＥＦ識別番号とレコード管理番号）を順に特定し、それらの格納場所に格納された各データＤａ、Ｄｂ、Ｄｃを順にアクセスし、それらのデータＤａ、Ｄｂ、Ｄｃを順に連結したデータＤに対するアクセス結果（コマンドの処理結果）をＩＣカード処理装置２へ送信する。たとえば、ＩＣカード処理装置２は、図３に示すようなデータＤに関するリンク情報を指定した読出しコマンドにより、データＤを読出しコマンドに対するレスポンスとして取得することが可能となる。
【００８６】
上記のように、第４のデータ管理方法では、分割した各データＤａ、Ｄｂ、Ｄｃの格納場所を示す情報がリンク情報としてＩＣカード１内に登録される。このため、ＩＣカード処理装置（上位装置）２では、ＩＣカード１に対して、分割して格納されている各データをそれぞれ直接的に指定しなくとも、リンク情報を指定するだけでデータＤを指定したコマンドが構成できる。ここでは、上位装置側でＩＣカード１内に複数のデータＤａ、Ｄｂ、Ｄｃに分割して格納したデータＤにアクセスする制御が容易になることを意味している。この場合も、データ自体（例えば、データＤ）は、分割して複数のＥＦに別のデータとともに格納されるため、各ＥＦが解析されても、元の正しいデータＤを特定することが困難となる。
【００８７】
次に、第４のデータ管理方法で管理されるデータの読出し処理について説明する。  
図１６は、ＩＣカード１における第４のデータ管理方法で管理されるデータの読出し処理の流れを説明するためのフローチャートである。  
ここでは、まず、ＩＣカード１は、インターフェース１７により図１５に示すようなリンク情報が指定されたデータの読出しコマンドを受信したものとする。すると、ＩＣカード１のＣＰＵ１１は、受信したコマンドのコマンドコードにより受信したコマンドがデータの読出しを要求することであることを判断する。この場合、ＣＰＵ１１は、当該コマンド内においてリンク番号が指定され、かつ、指定されたリンク番号が存在するか否かを判断する（ステップＳ７１）。
【００８８】
この判断により指定されたリンク番号が存在すると判断した場合（ステップＳ７１、ＹＥＳ）、ＣＰＵ１１は、読出しデータを格納するためのデータバッファをクリア（初期化）し（ステップＳ７２）、変数Ｎに初期値（Ｎ＝１）を設定する（ステップＳ７３）。なお、データバッファの記憶領域は、たとえば、ワーキングメモリ１３内に確保される。また、変数Ｎの値はワーキングメモリ１３あるいはデータメモリ１４に格納される。
【００８９】
変数Ｎの値を設定すると、ＣＰＵ１１は、受信したコマンドで指定されたリンク情報内にＮ番目のデータを指定するＮ番目のＥＦ識別情報（ＥＦ識別情報Ｎ）とＮ番目のレコード管理番号（レコード管理番号Ｎ）とがあるか否かを判断する（ステップＳ７４）。たとえば、変数Ｎが「Ｎ＝１」であれば、ＣＰＵ１１は、受信した読出しコマンドで指定されたリンク情報内に１番目のデータを示すＥＦ識別情報１とレコード管理番号１とがあるか否かを判断する。
【００９０】
受信した読出しコマンドで指定されたリンク情報内にＮ番目のデータを指定するＥＦ識別情報Ｎとレコード管理番号Ｎとがあると判断した場合（ステップＳ７４、ＹＥＳ）、ＣＰＵ１１は、ＥＦ識別情報ＮのＥＦを検索する処理を行う（ステップＳ７５）。この検索結果としてＥＦ識別情報ＮのＥＦが検出できた場合（ステップＳ７５、ＯＫ）、ＣＰＵ１１は、検出したＥＦ識別情報ＮのＥＦにおけるレコード管理番号Ｎのレコードデータを読み出す処理を行う（ステップＳ７６）。
【００９１】
たとえば、図１５に示すコマンドで指定される図１４に示すようなリンク情報である場合、Ｎ＝１であれば、ＩＤが「０００３」のＥＦを検索し、ＩＤが「０００３」のＥＦにおけるレコード管理番号が「００２」のレコードデータを読み出す。また、図１４に示すリンク情報である場合、Ｎ＝２であれば、ＩＤが「００１２」のＥＦにおけるレコード管理番号が「００１」のレコードデータを読み出す。また、図１４に示すリンク情報である場合、Ｎ＝３であれば、ＩＤが「０１３８」のＥＦにおけるレコード管理番号が「００３」のレコードデータを読み出す。
【００９２】
上記ＥＦ識別情報ＮのＥＦにおけるレコード管理番号Ｎのレコードデータを読み出した場合（ステップＳ７６、ＯＫ）、ＣＰＵ１１は、読み出したレコード管理番号Ｎのレコードデータをデータバッファに追記する（ステップＳ７７）。これにより、データバッファには、Ｎ番目までの各データが順に追記されたデータが格納される。読み出したレコードデータをデータバッファに格納すると、ＣＰＵ１１は、変数Ｎをインクリメント（Ｎ＝Ｎ＋１）とし（ステップＳ７８）、上記ステップＳ７４からの処理を繰り返し実行する。
【００９３】
上記ステップＳ７４において受信した読出しコマンドで指定されたリンク情報内にＮ番目のデータを指定するＮ番目のＥＦ識別情報（ＥＦ識別情報Ｎ）とＮ番目のレコード管理番号（レコード管理番号Ｎ）とがないと判断した場合（ステップＳ７４、ＮＯ）、ＣＰＵ１１は、変数Ｎの値が初期値（「１」）よりも大きい値（つまり、初期値以外の値）であるか否かを判断する（ステップＳ７９）。
【００９４】
変数Ｎの値が初期値よりも大きい値である場合（ステップＳ７９、ＹＥＳ）、ＣＰＵ１１は、データバッファに格納しているデータを読出し処理の結果としてＩＣカード処理装置２へ出力し（ステップＳ８０）、当該処理を終了する。この場合、データバッファには、当該コマンドで指定されたリンク情報で示される全てのデータが順に追記されたデータ（復元されたデータ）全体が格納される。従って、ＩＣカード１は、当該読出しコマンドの処理結果として、分割して保持しているデータを１つのデータとして出力できる。
【００９５】
また、上記ステップＳ７９で変数Ｎの値が初期値よりも大きい値でない（つまり、初期値）であると判断した場合（ステップＳ７９、ＮＯ）、ＣＰＵ１１は、コマンドで読出し対象のデータが指定されていないものとして当該受信コマンドに対する処理結果をエラーとし、エラーコードをセットしたレスポンスをＩＣカード処理装置２へ送信し（ステップＳ８１）、処理を終了する。
【００９６】
また、上記ＥＦ識別情報ＮのＥＦが検出できなかった場合（ステップＳ７５、ＥＲＲＯＲ）、あるいは、上記レコード管理番号Ｎのレコードデータが読み出せなった場合（ステップＳ７６、ＥＲＲＯＲ）、ＣＰＵ１１は、当該受信コマンドに対する処理結果をエラーとし、エラーコードをセットしたレスポンスをＩＣカード処理装置２へ送信し（ステップＳ８１）、処理を終了する。
【００９７】
上記のように、第４のデータ管理方法が適用されるＩＣカード１は、分割した各データをそれぞれ複数のＥＦの一部に格納し、それらの分割した各データの格納場所および順序をリンク情報として登録しておく。この状態において、ＩＣカード１は、ＩＣカード処理装置（上位装置）から上記リンク情報を指定するコマンドを受信した場合、その指定されたリンク情報に基づいて分割して格納されている各データに順にアクセスすることにより、当該コマンドで要求される処理を分割して複数のＥＦに格納されている１つのデータに対する処理として実行することができる。この結果として、当該ＩＣカード１では、セキュリティ性が高いデータ管理を実現しつつ、効率的なデータ処理を行うことが可能となる。
【００９８】
上述したような各データ管理方法によれば、物理的あるいは電気的な解析手段などによってＩＣカードのデータメモリに記録されているデータファイルの記録内容が不正に第三者に知られた場合であっても、それらの不正に知られたデータが直ちに意味のある情報とならない様に、元のデータを分割して複数のデータファイルに分割して記録（管理）できる。
【符号の説明】
【００９９】
Ｃ…本体、Ｍ…モジュール、１…ＩＣカード、１ａ…ＩＣチップ、２…ＩＣカード処理装置、１１…ＣＰＵ、１２…プログラムメモリ、１３…ワーキングメモリ、１４…データメモリ、１５…通信制御部、１６…電源部、１７…インターフェース、２１…制御装置、２２…カードリーダライタ。
【図１】
2011060136.tif 000003
【図２】
2011060136.tif 000004
【図３】
2011060136.tif 000005
【図４】
2011060136.tif 000006
【図５】
2011060136.tif 000007
【図６】
2011060136.tif 000008
【図７】
2011060136.tif 000009
【図８】
2011060136.tif 000010
【図９】
2011060136.tif 000011
【図１０】
2011060136.tif 000012
【図１１】
2011060136.tif 000013
【図１２】
2011060136.tif 000014
【図１３】
2011060136.tif 000015
【図１４】
2011060136.tif 000016
【図１５】
2011060136.tif 000017
【図１６】
2011060136.tif 000018