(57)【要約】【課題】  １つのコマンドにより複数のシステム内メモリを書き換える場合に，電源断などで一部のシステム内メモリが書き換えられないような状況が発生したときであっても，リーダライタまたはホストコントローラの処理を複雑にすることなく，すでに書き換えたシステム内メモリを元に戻し，以前の状態を保持することの可能なＩＣカード，情報処理システム，集積回路チップ，およびデータ処理装置を提供する。【解決手段】  リーダライタは，複数のファイルシステムに対して複数のコマンドパケットが連結された１つのコマンドパケットを送信し，ＩＣカードは，１つのコマンドパケットを受信して分解し，分解されたコマンドパケットを対応するファイルシステムに渡すとともに，複数のファイルシステムからの複数のレスポンスパケットを連結し，１つのレスポンスパケットとしてリーダライタに送信する。【選択図】  図３
2007206959.tif 000002
【特許請求の範囲】
【請求項１】
複数のファイルシステムを記憶するＩＣカードであって，
前記複数のファイルシステムが記憶される複数のシステム領域と，ファイルシステム全体の管理データが記憶されるシステム連携データ領域とを含むメモリと，
前記システム連携データに基づいて，前記複数のファイルシステムのデータを制御するカード制御部と，
を含み，
前記カード制御部は，前記複数のファイルシステムに対する複数のコマンドパケットが連結された１つのコマンドパケットを分解し，分解されたコマンドパケットを対応する前記ファイルシステムに渡すとともに，前記複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとすることを特徴とする，ＩＣカード。
【請求項２】
前記各ファイルシステムは，
前記各ファイルシステム内のデータを記憶するシステム内メモリと，
前記システム内メモリを管理するメモリ管理部と，
前記メモリ管理部を通じて前記システム内メモリにアクセスし，レスポンスパケットにレスポンスデータをセットするコマンド処理部と，
前記コマンドパケットおよびレスポンスパケットの暗号処理を行う暗号処理部と，
を含むことを特徴とする，請求項１に記載のＩＣカード。
【請求項３】
前記カード制御部は，
前記複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとするとともに，前記システム連携データ領域内のシステム全体の管理データを更新することを特徴とする，請求項１に記載のＩＣカード。
【請求項４】
前記複数のファイルシステムは，相互にアクセスを禁止されていることを特徴とする，請求項１に記載のＩＣカード。
【請求項５】
複数のファイルシステムを記憶するＩＣカードと，前記ＩＣカードとの間で通信を行い情報を処理する情報処理装置とを含む情報処理システムであって，
前記情報処理装置は，複数のファイルシステムに対して複数のコマンドパケットが連結された１つのコマンドパケットを送信し，
前記ＩＣカードは，前記１つのコマンドパケットを受信して分解し，分解されたコマンドパケットを対応する前記ファイルシステムに渡すとともに，前記複数のファイルシステムからの複数のレスポンスパケットを連結し，１つのレスポンスパケットとして前記情報処理装置に送信することを特徴とする，情報処理システム。
【請求項６】
前記各ファイルシステムは，
前記各ファイルシステム内のデータを記憶するシステム内メモリと，
前記システム内メモリを管理するメモリ管理部と，
前記メモリ管理部を通じて前記システム内メモリにアクセスし，レスポンスパケットにレスポンスデータをセットするコマンド処理部と，
前記コマンドパケットおよびレスポンスパケットの暗号処理を行う暗号処理部と，
を含むことを特徴とする，請求項５に記載の情報処理システム。
【請求項７】
前記ＩＣカードは，
前記複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとするとともに，システム全体の管理データを更新することを特徴とする，請求項５に記載の情報処理システム。
【請求項８】
前記複数のファイルシステムは，相互にアクセスを禁止されていることを特徴とする，請求項５に記載の情報処理システム。
【請求項９】
複数のファイルシステムを記憶するメモリを備えた集積回路チップであって，
前記複数のファイルシステムが記憶される複数のシステム領域と，ファイルシステム全体の管理データが記憶されるシステム連携データ領域とを含むメモリと，
前記システム連携データに基づいて，前記複数のファイルシステムのデータを制御する制御部と，
を含み，
前記制御部は，前記複数のファイルシステムに対する複数のコマンドパケットが連結された１つのコマンドパケットを分解し，分解されたコマンドパケットを対応する前記ファイルシステムに渡すとともに，前記複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとすることを特徴とする，集積回路チップ。
【請求項１０】
前記各ファイルシステムは，
前記各ファイルシステム内のデータを記憶するシステム内メモリと，
前記システム内メモリを管理するメモリ管理部と，
前記メモリ管理部を通じて前記システム内メモリにアクセスし，レスポンスパケットにレスポンスデータをセットするコマンド処理部と，
前記コマンドパケットおよびレスポンスパケットの暗号処理を行う暗号処理部と，
を含むことを特徴とする，請求項９に記載の集積回路チップ。
【請求項１１】
前記制御部は，
前記複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとするとともに，前記システム連携データ領域内のシステム全体の管理データを更新することを特徴とする，請求項９に記載の集積回路チップ。
【請求項１２】
前記複数のファイルシステムは，相互にアクセスを禁止されていることを特徴とする，請求項９に記載の集積回路チップ。
【請求項１３】
複数のファイルシステムを記憶するメモリを備えた集積回路チップを搭載したデータ処理装置であって，
前記集積回路チップは，
前記複数のファイルシステムが記憶される複数のシステム領域と，ファイルシステム全体の管理データが記憶されるシステム連携データ領域とを含むメモリと，
前記システム連携データに基づいて，前記複数のファイルシステムのデータを制御する制御部と，
を含み，
前記制御部は，前記複数のファイルシステムに対する複数のコマンドパケットが連結された１つのコマンドパケットを分解し，分解されたコマンドパケットを対応する前記ファイルシステムに渡すとともに，前記複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとすることを特徴とする，データ処理装置。
【請求項１４】
前記各ファイルシステムは，
前記各ファイルシステム内のデータを記憶するシステム内メモリと，
前記システム内メモリを管理するメモリ管理部と，
前記メモリ管理部を通じて前記システム内メモリにアクセスし，レスポンスパケットにレスポンスデータをセットするコマンド処理部と，
前記コマンドパケットおよびレスポンスパケットの暗号処理を行う暗号処理部と，
を含むことを特徴とする，請求項１３に記載のデータ処理装置。
【請求項１５】
前記制御部は，
前記複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとするとともに，前記システム連携データ領域内のシステム全体の管理データを更新することを特徴とする，請求項１３に記載のデータ処理装置。
【請求項１６】
前記複数のファイルシステムは，相互にアクセスを禁止されていることを特徴とする，請求項１３に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＩＣカード，情報処理システム，集積回路チップ，およびデータ処理装置にかかり，特に，ＩＣカード内に複数のファイルシステムが存在する状況で，１つのコマンドにより複数のファイルシステム内のメモリ（システム内メモリ）を書き換える場合に，電源断などで一部のシステム内メモリが書き換えられないような状況が発生したとき，すでに書き換えたシステム内メモリを元に戻し，以前の状態を保持する技術に関する。
【背景技術】
【０００２】
ＩＣカードを用いた情報処理システムとして，ＩＣカードの単一のメモリ領域上にサービス提供元事業者ごとのファイルシステムを割り当て，単一のＩＣカードを複数の事業者で共有する情報処理システムが実現されている（例えば，特許文献１参照。）。このような情報処理システムにおけるＩＣカードの構成例を，図１２を参照しながら説明する。図１２に示したように，ＩＣカード７００においてそれぞれのファイルシステム７１０，７２０は，内部からのアクセスはメモリ管理システムで隔離されており，また，外部からの通信パケットによるアクセスは暗号通信機能で離隔されている。ＩＣカード７００の読み取りおよび書き込みを行う装置（リーダライタ）は，個別に暗号化されたそれぞれのファイルシステム７１０，７２０に対応するコマンドをコマンドパケットとしてＩＣカード７００に送り，ＩＣカード７００ではそのコマンドを各ファイルシステム７１０，７２０内で処理する。
【０００３】
【特許文献１】特開２００５−１９６４１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで，ＩＣカード内に複数のファイルシステムが存在する状況で，１つのコマンドにより複数のシステム内メモリを書き換える場合に，電源断などで一部のシステム内メモリが書き換えられないような状況が発生したとき，ＩＣカード内の１つのファイルシステムにおけるロールバックは保証されていたが，複数システム間でのロールバックは保証されていなかった。このため，ＩＣカード内の処理が複数に分かれてしまい，どこまでロールバックすればよいかアプリケーションによって異なり，リーダライタまたはホストコントローラの処理が複雑になっていた。
【０００５】
本発明は，上記背景技術が有する問題点に鑑みてなされたものであり，本発明の目的は，１つのコマンドにより複数のシステム内メモリを書き換える場合に，電源断などで一部のシステム内メモリが書き換えられないような状況が発生したときであっても，リーダライタまたはホストコントローラの処理を複雑にすることなく，すでに書き換えたシステム内メモリを元に戻し，以前の状態を保持することの可能な，新規かつ改良されたＩＣカード，情報処理システム，集積回路チップ，およびデータ処理装置を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するため，本発明の第１の観点によれば，複数のファイルシステムを記憶するＩＣカードが提供される。本発明のＩＣカードは，前記複数のファイルシステムが記憶される複数のシステム領域と，ファイルシステム全体の管理データが記憶されるシステム連携データ領域とを含むメモリと，前記システム連携データに基づいて，前記複数のファイルシステムのデータを制御するカード制御部と，を含む。そして，前記カード制御部は，前記複数のファイルシステムに対する複数のコマンドパケットが連結された１つのコマンドパケットを分解し，分解されたコマンドパケットを対応する前記ファイルシステムに渡すとともに，前記複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとすることを特徴とする。
【０００７】
かかるＩＣカードによれば，例えばリーダライタなど外部から送信される１つのコマンドパケットが複数のファイルシステムに対するものである場合に，そのコマンドパケットを分解し，分解されたコマンドパケットを対応するファイルシステムに渡すとともに，複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとして外部に送信することが可能である。このようにして，それぞれのファイルシステムにおける処理が確実に終了したことを確認した後に，システム全体の管理データを更新することが可能である。従来技術では，これらの処理がファイルシステムごとに別々に実行されるため，途中で電源断などの異常が発生すると，どの時点までロールバックすればよいか判断が難しいという問題が生じていた。この点，本発明によれば，ＩＣカード内の処理や外部のリーダライタやホストコントローラの処理を複雑にすることなく，すでに書き換えたシステム内メモリを元に戻し，以前の状態を保持することが可能である。
【０００８】
本発明のＩＣカードにおいて，各ファイルシステムおよびカード制御部は具体的には例えば以下のように構成されて，メモリアクセス処理およびメモリアクセスコミット処理を行うことが可能である。
【０００９】
前記各ファイルシステムの一構成例としては，前記各ファイルシステムは，前記各ファイルシステム内のデータを記憶するシステム内メモリと，前記システム内メモリを管理するメモリ管理部と，前記メモリ管理部を通じて前記システム内メモリにアクセスし（メモリアクセス処理），レスポンスパケットにレスポンスデータをセットするコマンド処理部と，前記コマンドパケットおよびレスポンスパケットの暗号処理（暗号化処理・復号処理）を行う暗号処理部と，を含む構成を採用することができる。
【００１０】
また，前記カード制御部は，例えば，前記複数のファイルシステムからの複数のレスポンスパケットに応じて，前記システム連携データ領域内のシステム全体の管理データを更新する（メモリアクセスコミット処理）ことが可能である。
【００１１】
また，前記複数のファイルシステムは，相互にアクセスを禁止されているものとすることが可能である。かかる構成によれば，このＩＣカードを利用したサービス提供者が個別にシステムを構築し，サービスを開始したそれぞれのサービスを１枚のＩＣカードに入れることができ，各サービスを連携させて安全な決済サービスを構築することが可能である。
【００１２】
上記課題を解決するため，本発明の第２の観点によれば，複数のファイルシステムを記憶するＩＣカードと，前記ＩＣカードとの間で通信を行い情報を処理する情報処理装置とを含む情報処理システムが提供される。本発明の情報処理システムにおいて，前記情報処理装置は，複数のファイルシステムに対して複数のコマンドパケットが連結された１つのコマンドパケットを送信する。そして，前記ＩＣカードは，前記１つのコマンドパケットを受信して分解し，分解されたコマンドパケットを対応する前記ファイルシステムに渡すとともに，前記複数のファイルシステムからの複数のレスポンスパケットを連結し，１つのレスポンスパケットとして前記情報処理装置に送信することを特徴とする。
【００１３】
かかるシステムによれば，情報処理装置（例えば，リーダライタ）から送信される１つのコマンドパケットが複数のファイルシステムに対するものである場合に，そのコマンドパケットを分解し，分解されたコマンドパケットを対応するファイルシステムに渡すとともに，複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとして外部に送信することが可能である。このようにして，それぞれのファイルシステムにおける処理が確実に終了したことを確認した後に，システム全体の管理データを更新することが可能である。従来技術では，これらの処理がファイルシステムごとに別々に実行されるため，途中で電源断などの異常が発生すると，どの時点までロールバックすればよいか判断が難しいという問題が生じていた。この点，本発明によれば，ＩＣカード内の処理や情報処理装置（例えば，リーダライタ）やホストコントローラの処理を複雑にすることなく，すでに書き換えたシステム内メモリを元に戻し，以前の状態を保持することが可能である。
【００１４】
本発明の情報処理システムにおいて，ＩＣカードは，具体的には例えば以下のように構成されて，メモリアクセス処理およびメモリアクセスコミット処理を行うことが可能である。
【００１５】
ＩＣカードの各ファイルシステムの一構成例としては，前記各ファイルシステムは，前記各ファイルシステム内のデータを記憶するシステム内メモリと，前記システム内メモリを管理するメモリ管理部と，前記メモリ管理部を通じて前記システム内メモリにアクセスし（メモリアクセス処理），レスポンスパケットにレスポンスデータをセットするコマンド処理部と，前記コマンドパケットおよびレスポンスパケットの暗号処理（暗号化処理・復号処理）を行う暗号処理部と，を含む構成を採用することができる。
【００１６】
また，前記ＩＣカードは，前記複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとするとともに，システム全体の管理データを更新する（メモリアクセスコミット処理）ことが可能である。
【００１７】
また，前記複数のファイルシステムは，相互にアクセスを禁止されているものとすることが可能である。かかる構成によれば，このＩＣカードを利用したサービス提供者が個別にシステムを構築し，サービスを開始したそれぞれのサービスを１枚のＩＣカードに入れることができ，各サービスを連携させて安全な決済サービスを構築することが可能である。
【００１８】
上記課題を解決するため，本発明の第３の観点によれば，複数のファイルシステムを記憶するメモリを備えた集積回路チップが提供される。本発明の集積回路チップは，前記複数のファイルシステムが記憶される複数のシステム領域と，ファイルシステム全体の管理データが記憶されるシステム連携データ領域とを含むメモリと，前記システム連携データに基づいて，前記複数のファイルシステムのデータを制御する制御部と，を含む。そして，前記制御部は，前記複数のファイルシステムに対する複数のコマンドパケットが連結された１つのコマンドパケットを分解し，分解されたコマンドパケットを対応する前記ファイルシステムに渡すとともに，前記複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとすることを特徴とする。
【００１９】
上記課題を解決するため，本発明の第４の観点によれば，複数のファイルシステムを記憶するメモリを備えた集積回路チップを搭載したデータ処理装置が提供される。本発明のデータ処理装置において，前記集積回路チップは，前記複数のファイルシステムが記憶される複数のシステム領域と，ファイルシステム全体の管理データが記憶されるシステム連携データ領域とを含むメモリと，前記システム連携データに基づいて，前記複数のファイルシステムのデータを制御する制御部と，を含む。そして，前記制御部は，前記複数のファイルシステムに対する複数のコマンドパケットが連結された１つのコマンドパケットを分解し，分解されたコマンドパケットを対応する前記ファイルシステムに渡すとともに，前記複数のファイルシステムからの複数のレスポンスパケットを連結し１つのレスポンスパケットとすることを特徴とする。
【発明の効果】
【００２０】
以上のように，本発明によれば，情報処理装置（例えば，リーダライタ）から送信される１つのコマンドパケットが複数のファイルシステムに対するものである場合に，それぞれのファイルシステムにおける処理が確実に終了したことを確認した後に，システム全体の管理データを更新し，処理結果を返信することが可能である。このようにして，ＩＣカード内の処理や情報処理装置（例えば，リーダライタ）の処理を複雑にすることなく，すでに書き換えたシステム内メモリを元に戻し，以前の状態を保持することが可能である。
【発明を実施するための最良の形態】
【００２１】
以下に添付図面を参照しながら，本発明にかかるＩＣカード，情報処理システム，集積回路チップ，およびデータ処理装置の好適な実施形態について詳細に説明する。なお，本明細書および図面において，実質的に同一の機能構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００２２】
（１）システム構成（図１）
図１は，本実施形態にかかる情報処理システムの構成を示す説明図である。
本実施形態にかかる情報処理システムは，図１に示したように，ＩＣカード１００と，コントローラＡ２００と，コントローラＢ３００と，リーダライタ４５０を備えたコントローラＣ４００と，を含んで構成されている。以下，各システム構成要素について説明する。
【００２３】
ＩＣカード１００は，カード型のデータ通信装置であってもよく，また，ＩＣカード機能を有する集積回路チップを携帯電話機等の情報通信端末機器（データ処理装置）に内蔵したものであってもよい。ＩＣカードが機器に内蔵される場合であっても，機器に着脱可能に構成される場合であっても，本明細書では便宜上「ＩＣカード」と称する場合がある。また，ＩＣカード機能を有する集積回路チップは，例えば携帯電話機やＰＤＡなどの携帯端末，あるいはパーソナルコンピュータ（ＰＣ）などの情報処理端末に搭載されて外部機器とデータ通信を行う。この場合，リーダライタ装置と有線あるいは無線で接続するためのインタフェース以外に，外部機器接続用のインタフェースを備えている。
【００２４】
ＩＣカード１００には，１つ以上のファイルシステムが格納されている。本実施形態では，一例として，ＩＣカード内のファイルシステムが２つであり，上位コントローラが２つの場合を想定して説明する。ＩＣカード１００の構成については，図２を参照しながらさらに後述する。
【００２５】
コントローラＡ２００，コントローラＢ３００は上位コントローラであり，コントローラＣ４００を介してＩＣカード１００と通信する。コントローラＡ２００，コントローラＢ３００には，ＩＣカード１００内のファイルシステムに対応したアプリケーションが含まれている。コントローラＡ２００，コントローラＢ３００は，ＩＣカード１００内のファイルシステムと暗号鍵を共有する。
【００２６】
コントローラＣ４００は下位コントローラであり，上位コントローラであるコントローラＡ２００，コントローラＢ３００とリーダライタ４５０との間でパケットの受け渡しを行う。コントローラＣ４００は，コントローラＡ２００，コントローラＢ３００それぞれからの２つのコマンドパケットを連結して１つのコマンドパケットとする。また，コントローラＣ４００は，コントローラＡ２００およびコントローラＢ３００に対する１つのレスポンスパケットをそれぞれに対するレスポンスパケットに分解する。また，コントローラＣ４００は，ＩＣカード１００と通信するリーダライタ４５０を直接制御する。
【００２７】
リーダライタ４５０は，ＩＣカード１００と直接通信を行い，ＩＣカード１００に記録されたデータの読み出しおよび書き込みを行う機能を有する。ＩＣカード１００とリーダライタ４５０との間のデータ通信は，例えば電磁誘導の原理に基づく無線通信により実現される。リーダライタ４５０はコントローラＣ４００に接続されている。リーダライタ４５０とホスト４００とは一体の構成であってもよく，また，ケーブル等を介して空間的に離隔された構成であってもよい。
【００２８】
（２）ＩＣカード１００の構成（図２）
図２は，ＩＣカード１００に記憶されるデータの構成を示す説明図である。
ＩＣカード１００のメモリには，図２に示したように，ファイルシステム１１０，１２０と，１つのシステム連携データ領域１４０とが含まれている。なお，ファイルシステムの数は１つ以上の任意数であるが，本実施形態では一例として，２つのファイルシステムを記憶する場合について説明する。ファイルシステム１１０，１２０には内部データと管理データが登録されている。システム連携データ領域１４０にはシステム全体の管理データが含まれる。
【００２９】
ＩＣカード１００には，アクセス制御を行うためにメモリ管理機能（後述のメモリ管理部１３０）と暗号通信機能（後述の暗号処理部１１８，１２８）が含まれている。メモリ管理機能は，ＩＣカード内部のメモリアクセス制御を行う。あるシステムから別システムへのメモリアクセスは禁止し，すべてのシステムからシステム連携データ領域へのメモリアクセスは許可する。また，暗号通信機能は，外部からの通信パケットにおけるメモリアクセス制御を行う。あるシステム内のデータへのアクセスには，そのデータに対応する事前に生成された鍵を必要とする。
【００３０】
（３）機能ブロック図（図３）
図３は，ＩＣカード１００を機能面から見た構成を示す説明図である。
ＩＣカード１００内部には，図３に示したように，ファイルシステム１１０，１２０と，メモリ管理部１３０と，システム連携データ領域１４０と，カード制御部１５０と，コマンド受信部１６０と，レスポンス送信部１７０と，が含まれている。ファイルシステム１１０，１２０と，システム連携データ領域１４０は，図１に対応するものである。
【００３１】
ファイルシステム１１０は，システムＡの管理データ１１２と，システムＡ用の機能部として，メモリ管理部１１４と，コマンド処理部１１６と，暗号処理部１１８とを含む。また，ファイルシステム１２０は，システムＢの管理データ１２２と，システムＢ用の機能部として，メモリ管理部１２４と，コマンド処理部１２６と，暗号処理部１２８とを含む。
【００３２】
暗号処理部１１８，１２８は，外部からの通信パケットにおけるメモリアクセス制御を行う。ファイルシステム１１０，１２０内のデータへのアクセスには，そのデータに対応する事前に生成された鍵を必要とする。そして，暗号処理部１１８，１２８でレスポンスパケットの暗号化処理を行い，その結果をカード制御部１５０へ渡す。カード制御部１５０は，結果を見て，システム連携データ領域１４０内のシステム全体の管理データを更新する（メモリアクセスコミット処理）。その後，レスポンスパケットを連結し，レスポンス送信部１７０でレスポンスパケットを送信する。
【００３３】
カード制御部１５０は，システム連携データ１４０に基づいて，ファイルシステム１１０，１２０のデータを制御する。カード制御部１３０は，ファイルシステム１１０，１２０に対する複数のコマンドパケットが連結された１つのコマンドパケットを分解し，分解されたコマンドパケットを対応するファイルシステム１１０，１２０に渡すとともに，ファイルシステム１１０，１２０からの複数のレスポンスパケットを連結し１つのレスポンスパケットとする。具体的な処理シーケンスについては，図７〜図１１を参照しながらさらに後述する。
【００３４】
メモリ管理部１３０は，ＩＣカード１００内部のメモリアクセス制御を行う。メモリ管理部１３０は，ファイルシステム１１０からファイルシステム１２０へ，またはその逆のメモリアクセスは禁止し，ファイルシステム１１０，１２０からシステム連携データ領域１４０へのメモリアクセスは許可する。
【００３５】
コマンド受信部１６０は，コマンドを受信するとそのコマンドパケットをカード制御部１５０へ渡す。カード制御部１５０では，連結されたコマンドパケットを分解し，そのパケットの先頭を解釈して，対応するシステムの暗号処理部１１８，１２８へ渡す。暗号処理部では，コマンドパケットの復号処理を行い，その結果をコマンド処理部１１６，１２６へ渡す。コマンド処理部１１６，１２６は，メモリ管理部１１４，１２４を通じてデータおよびシステム内の管理データ１１２，１２２へアクセスし（メモリアクセス処理），レスポンスパケットにレスポンスデータをセットする。
【００３６】
（４）パケット構造（図４〜図６）
本実施形態におけるメモリアクセス用のパケットは，２つの暗号化されたパケットで構成される。アクセス対象のシステムに対して相互認証処理などを行うことで鍵を事前に生成し，上位コントローラであるコントローラＡ２００，コントローラＢ３００と，ＩＣカード１００で共有する。図４はコマンドパケットを示し，図５はレスポンスパケットを示す。また，図６は，図４のコマンドパケット５００と図５のレスポンスパケットにおける各フィールドの名称および説明をまとめたものである。
【００３７】
コマンドパケット５００は，図４に示したように，パケット全体の長さを表すＬＥＮフィールド５０２と，パケット連結コマンドを表すＰＬＵＳＣＭＤフィールド５０４と，システムＡ用のフィールド５０６〜５１４と，システムＢ用のフィールド５１６〜５２４を含んで構成される。
【００３８】
システムＡ用のフィールドとしては，システムＡのコマンドパケット長を表すＬＥＮ＿Ａフィールド５０６と，メモリアクセスコマンド（ＷＲＩＴＥ／ＲＥＡＤ）を表すＭＥＭＣＭＤフィールド５０８と，システムＡの識別子を表すＳＹＳ＿Ａフィールド５１０と，システムＡ内の対象データのアドレスを表すＤＥＳＴ＿Ａフィールド５１２と，ＷＲＩＴＥ時のデータを表すＷＲＩＴＥＤＡＴＡ＿Ａフィールド５１４と，を含む。
【００３９】
システムＢ用のフィールドとしては，システムＢのコマンドパケット長を表すＬＥＮ＿Ｂフィールド５１６と，メモリアクセスコマンド（ＷＲＩＴＥ／ＲＥＡＤ）を表すＭＥＭＣＭＤフィールド５１８と，システムＢの識別子を表すＳＹＳ＿Ｂフィールド５２０と，システムＢ内の対象データのアドレスを表すＤＥＳＴ＿Ｂフィールド５２２と，ＷＲＩＴＥ時のデータを表すＷＲＩＴＥＤＡＴＡ＿Ｂフィールド５２４と，を含む。
【００４０】
なお図４に示した一例では，複数のファイルシステムが同じ構造を持っている場合について示したが，本発明はこれに限定されない。例えば，異なる方式の共通鍵暗号を利用することも可能である。この場合例えば，一方のファイルシステムでは６４ビット鍵のブロック暗号を使用するのに対し，もう一方のファイルシステムでは１２８ビット鍵のブロック暗号を使用することが可能である。以下の図についても同様である。
【００４１】
レスポンスパケット６００は，図５に示したように，パケット全体の長さを表すＬＥＮフィールド６０２と，パケット連結レスポンスを表すＰＬＵＳＲＥＳフィールド６０４と，システムＡ用のフィールド６０６〜６１４と，システムＢ用のフィールド６１６〜６２４を含んで構成される。
【００４２】
システムＡ用のフィールドとしては，システムＡのレスポンスパケット長を表すＬＥＮ＿Ａフィールド６０６と，メモリアクセスレスポンス（ＷＲＩＴＥ／ＲＥＡＤ）を表すＭＥＭＲＥＳフィールド６０８と，システムＡの識別子を表すＳＹＳ＿Ａフィールド６１０と，コマンド処理結果を表すＳＴ＿Ａフィールド６１２と，ＲＥＡＤ時のデータを表すＲＥＡＤＤＡＴＡ＿Ａフィールド６１４と，を含む。
【００４３】
システムＢ用のフィールドとしては，システムＢのレスポンスパケット長を表すＬＥＮ＿Ｂフィールド６１６と，メモリアクセスレスポンス（ＷＲＩＴＥ／ＲＥＡＤ）を表すＭＥＭＲＥＳフィールド６１８と，システムＢの識別子を表すＳＹＳ＿Ｂフィールド６２０と，コマンド処理結果を表すＳＴ＿Ｂフィールド６２２と，ＲＥＡＤ時のデータを表すＲＥＡＤＤＡＴＡ＿Ｂフィールド６２４と，を含む。
【００４４】
（５）シーケンス（図７）
図７は，処理シーケンスを示す流れ図である。
コントローラＣ４００がシーケンスを開始する。コントローラＣ４００は，上位コントローラのＡ２００に相互認証コマンドを要求する（ステップＳ１０２）。コントローラＡ２００は相互認証コマンドＡをコントローラＣ４００に送信する（ステップＳ１０４）。コントローラＣ４００は相互認証コマンドＡをリーダライタ経由でＩＣカード１００へ送信する（ステップＳ１０６）。ＩＣカード１００は，システムＡ１１０で相互認証処理を行い，その結果を相互認証レスポンスＡとして返送する（ステップＳ１０８）。コントローラＣ４００は，その相互認証レスポンスＡを上位コントローラＡへ渡し（ステップＳ１１０），相互認証処理結果をもらう（ステップＳ１１４）。
【００４５】
上位コントローラＢに対しても同様の処理を行う（ステップＳ１１６〜Ｓ１２６）。すなわち，コントローラＣ４００は，上位コントローラのＢ３００に相互認証コマンドを要求する（ステップＳ１１６）。コントローラＢ３００は相互認証コマンドＢをコントローラＣ４００に送信する（ステップＳ１１８）。コントローラＣ４００は相互認証コマンドＢをリーダライタ経由でＩＣカード１００へ送信する（ステップＳ１１８）。ＩＣカード１００は，システムＢ１２０で相互認証処理を行い，その結果を相互認証レスポンスＢとして返送する（ステップＳ１２０）。コントローラＣ４００は，その相互認証レスポンスＢを上位コントローラＢへ渡し（ステップＳ１２４），相互認証処理結果をもらう（ステップＳ１２６）。
【００４６】
この時点で，上位コントローラＡ２００およびコントローラＢ３００と，ＩＣカード１００内の対応するシステムとは，それぞれ同一の鍵を共有している。
【００４７】
次に，コントローラＣ４００は，上位のコントローラＡ２００，コントローラＢからメモリアクセスコマンドをそれぞれ取得し，それらを連結して，１つのパケットとしてＩＣカード１００へ送信する。
【００４８】
まず，コントローラＣ４００は，上位コントローラのＡ２００にメモリアクセスコマンドを要求する（ステップＳ１２８）。コントローラＡ２００はメモリアクセスコマンドＡをコントローラＣ４００に送信する（ステップＳ１２８）。同様に，コントローラＣ４００は，上位コントローラのＢ３００にメモリアクセスコマンドを要求する（ステップＳ１３０）。コントローラＢ３００はメモリアクセスコマンドＢをコントローラＣ４００に送信する（ステップＳ１３２）。
【００４９】
そして，コントローラＣ４００は，メモリアクセスコマンドＡとメモリアクセスコマンドＢを連結して（ステップＳ１３４）。１つのパケットとしてＩＣカード１００へ送信する（ステップＳ１３６）。
【００５０】
ＩＣカード１００では受信したパケットを分離し，それぞれのシステムで保持する鍵によりパケットを復号し，メモリアクセス処理を行う（ステップＳ１３８）。さらに，２つのレスポンスを受け取り（ステップＳ１４０），これらを連結して１つのパケットとして，コントローラＣ４００へ返送する（ステップＳ１４２）。なお，ＩＣカード内部の処理については，図８を参照しながらさらに後述する。
【００５１】
そして，コントローラＣ４００はそのレスポンスを分離し，上位のコントローラへレスポンス処理を要求し，そのレスポンス処理結果をもらう。
【００５２】
まず，コントローラＣ４００は，上位コントローラのＡ２００にメモリアクセスレスポンス処理を要求する（ステップＳ１４６）。コントローラＡ２００はメモリアクセスレスポンス処理結果ＡをコントローラＣ４００に送信する（ステップＳ１４８）。同様に，コントローラＣ４００は，上位コントローラのＢ３００にメモリアクセスレスポンス処理を要求する（ステップＳ１５０）。コントローラＢ３００はメモリアクセスレスポンス処理結果ＢをコントローラＣ４００に送信する（ステップＳ１５２）。
【００５３】
以上，処理シーケンスについて説明した。次いで，上記のＩＣカード内部の処理（ステップＳ１３８，Ｓ１４０）について詳述する。
【００５４】
（６）メモリアクセスコマンドの処理シーケンス（図８）
図８は，メモリアクセスコマンドの処理シーケンスを示す説明図である。
メモリアクセスコマンドにおいてメモリ管理部１３０が行う処理は，各システム内でのメモリアクセス処理とメモリアクセスコミット処理に分かれている。
【００５５】
（メモリリードの場合）
メモリアクセス処理でシステム内の管理データから内部データを取り出し，コミット処理では何も行わない。
【００５６】
（メモリライトの場合）
メモリアクセス処理でシステム内の管理データと内部データを更新し，コミット処理でシステム全体の管理データを更新する。以下，図８を参照しながら説明する。
【００５７】
カード制御部１５０は，コマンドパケットを受信すると（ステップＳ２０２），最初のコマンドパケットについて対応するシステムにパケットを渡す（ステップＳ２０４）。本実施形態では，まずシステムＡにパケットを渡し，次にシステムＢにパケットを渡すものとして説明する。
【００５８】
カード制御部１５０から暗号処理部１１８に対して，暗号化されたコマンドパケットＡが送られる（ステップＳ２０６）。暗号処理部１１８は，パケットを復号して（ステップＳ２０８），コマンドパケットＡをコマンド処理部１１６に渡す（ステップＳ２１０）。コマンド処理部１１６では，以下のコマンド処理が行われる。まず，コマンド処理部１１６は，メモリ管理部１１４に対して，メモリアクセス要求を行う（ステップＳ２１２）。メモリ管理部１１４はメモリアクセス処理を行い（ステップＳ２１４），アクセス結果Ａをコマンド処理部１１６に返送する（ステップＳ２１６）。コマンド処理部１１６は，暗号処理部１１８に対してレスポンスパケットＡを送信する（ステップＳ２１８）。暗号処理部１１８はパケットを暗号化し（ステップＳ２２０），その暗号化されたレスポンスパケットＡをカード制御部１５０に送る（ステップＳ２２２）。
【００５９】
次のコマンドパケットについて，対応するシステム（システムＢ）へパケットを渡し（ステップＳ２２４），システムＢに対しても同様の処理を行う（ステップＳ２２６〜Ｓ２４２）。すなわち，カード制御部１５０から暗号処理部１２８に対して，暗号化されたコマンドパケットＢが送られる（ステップＳ２２６）。暗号処理部１２８は，パケットを復号して（ステップＳ２２８），コマンドパケットＢをコマンド処理部１２６に渡す（ステップＳ２３０）。コマンド処理部１２６では，以下のコマンド処理が行われる。まず，コマンド処理部１２６は，メモリ管理部１２４に対して，メモリアクセス要求を行う（ステップＳ２３２）。メモリ管理部１２４はメモリアクセス処理を行い（ステップＳ２３４），アクセス結果Ｂをコマンド処理部１２６に返送する（ステップＳ２３６）。コマンド処理部１２６は，暗号処理部１２８に対してレスポンスパケットＢを送信する（ステップＳ２３８）。暗号処理部１２８はパケットを暗号化し（ステップＳ２４０），その暗号化されたレスポンスパケットＢをカード制御部１５０に送る（ステップＳ２４２）。
【００６０】
暗号化されたレスポンスパケットＡ，Ｂが送られた後，カード制御部１５０は，メモリ管理部１１４，１２４に対して，メモリアクセスコミット要求を出す（ステップＳ２４４）。メモリ管理部１１４，１２４はメモリアクセスコミット処理を行い（ステップＳ２４６），コミット結果をカード制御部１５０に送る（ステップＳ２４８）。
【００６１】
コミット結果を受け取ったカード制御部１５０は，２つレスポンスパケットＡ，Ｂをマージして（ステップＳ２５０），レスポンスパケットを送信する（ステップＳ２５２）。
【００６２】
（７）メモリ管理部（図９）
図９は，メモリアクセス処理およびメモリアクセスコミット処理を示す説明図である。
メモリ管理部１３０では，電源断に対応するため，不揮発性メモリ上で管理データを二重に保持している。これらを有効面，無効面と呼ぶ。システムＡ１１０ではＴＢＬ＿Ａ１，ＴＢＬ＿Ａ２を，システムＢ１２０ではＴＢＬ＿Ｂ１，ＴＢＬ＿Ｂ２を保持し，システム連携データ領域１４０内の管理データＳＷで上記管理データの有効面を指し示す。
【００６３】
メモリライトにおけるメモリアクセス処理では，それぞれのシステムの管理データの無効面を更新する（ステップＳ３０２，Ｓ３０４）。無効面を更新することで，電源断が発生しても外部から見えるデータには変化がない。次のメモリアクセスコミット処理では，全システムの有効面を指し示す管理データＳＷを更新する（ステップＳ３０６）。以上の処理で，システム全体の管理テーブルが更新されたものとして扱う。
【００６４】
（８）電源断後の復旧処理（図１０，図１１）
図１０，図１１は，電源断後の復旧処理を示す説明図である。
電源断後の復旧処理は，起動時のメモリ管理部１３０の初期化処理に含まれている。
【００６５】
図９において有効面と無効面を持つ管理データ（ＴＢＬ＿Ａ１，ＴＢＬ＿Ａ２，ＴＢＬ＿Ｂ１，ＴＢＬ＿Ｂ２）には，それぞれカウンターとチェックブロックが含まれている。カウンターは管理データが更新されるたびに加算される。チェックブロックは管理データのエラーを検出し，管理データが更新されるたびに再計算される。また，ＳＷにはエラー検出のためチェックブロックが含まれている。
【００６６】
メモリ管理部１３０の初期化は，ＳＷ，ＴＢＬ＿Ａ，ＴＢＬ＿Ｂの順番でエラーチェックを行い，ＴＢＬ＿ＡとＴＢＬ＿Ｂの管理データの有効面を選択する処理である。エラーが発生した場合，ＴＢＬ＿ＡまたはＴＢＬ＿Ｂのエラーとカウンターの内容にしたがって，ＴＢＬ＿ＡまたはＴＢＬ＿Ｂの有効面が選択される。２面ともエラーが発生している場合は異常終了とし，ＩＣカードを正常起動させないようにする。
【００６７】
具体的には図１０に示したように，まずＳＷのエラーチェックを行う（ステップＳ４０２）。ＳＷにエラーがある場合には，ＴＢＬ＿Ａ選択処理（ステップＳ４０４），ＴＢＬ＿Ｂ選択処理（ステップＳ４０６）を順に行い，ＳＷを更新する（Ｓ４０８）。
【００６８】
ＳＷのエラーチェック（ステップＳ４０２）でエラーがない場合には，ＴＢＬ＿Ａ（ＳＷ）のエラーチェックを行う（ステップＳ４１０）。そして，ＴＢＬ＿Ａ（ＳＷ）にエラーがある場合には，ＴＢＬ＿Ａ選択処理（ステップＳ４１２）を行い，ＳＷを更新する（Ｓ４１４）。
【００６９】
ＴＢＬ＿Ａ（ＳＷ）のエラーチェック（ステップＳ４１０）でエラーがない場合には，ＴＢＬ＿Ｂ（ＳＷ）のエラーチェックを行う（ステップＳ４１６）。そして，ＴＢＬ＿Ｂ（ＳＷ）にエラーがある場合には，ＴＢＬ＿Ｂ選択処理（ステップＳ４１８）を行い，ＳＷを更新する（Ｓ４２０）。また，ＴＢＬ＿Ｂ（ＳＷ）にエラーがない場合には，正常終了する。
【００７０】
図１０に示した処理において，ＴＢＬ＿ＡまたはＴＢＬ＿Ｂの選択処理が行われた場合，選択された有効面をＳＷへ反映させ，次回起動時は正常処理が行われるようにする。
【００７１】
具体的には図１１に示したように，ＴＢＬ＿１とＴＢＬ＿２のエラーチェックを行う（ステップＳ５０２）。そして，ＴＢＬ＿１とＴＢＬ＿２がともにエラーのときには異常終了する。
【００７２】
また，ＴＢＬ＿１とＴＢＬ＿２のエラーチェック（ステップＳ５０２）により，ＴＢＬ＿１とＴＢＬ＿２にともにエラーがない場合には，ＴＢＬ＿１とＴＢＬ＿２のカウンター比較を行う（ステップＳ５０４）。ＴＢＬ＿１≧ＴＢＬ＿２の場合にはＴＢＬ＿１を選択し（ステップＳ５０６），ＴＢＬ＿１＜ＴＢＬ＿２の場合にはＴＢＬ＿２を選択する（ステップＳ５０８）。
【００７３】
また，ＴＢＬ＿１とＴＢＬ＿２のエラーチェック（ステップＳ５０２）により，ＴＢＬ＿１またはＴＢＬ＿２のいずれかがエラーのときは，ＴＢＬ＿１とＴＢＬ＿２のいずれがエラーかを判定する（ステップＳ５１０）。ＴＢＬ＿２がエラーの場合にはＴＢＬ＿１を選択し（ステップＳ５１２），ＴＢＬ＿１がエラーの場合にはＴＢＬ＿２を選択する（ステップＳ５１４）。
【００７４】
（本実施形態の効果）
１つのコマンドパケットが複数のファイルシステムに対するものである場合，例えば，ＩＣカード内で，一方のシステムには電子マネーサービスが，もう一方のシステムにはチケットサービスが登録されている状態で，電子マネーでチケットを購入するような場合，電子マネーからチケットの代金を引き，チケットサービスにバリューを書き込む。従来技術では，これらの処理が別々に実行されるため，途中で電源断などの異常が発生すると，チケットがうまく購入できなかったのか，購入できて使われた状態なのか判断するために，リーダライタやホストコントローラの処理が複雑になる。この点，本実施形態によれば，このような中途半端な状態を避けることができる。
【００７５】
さらに，個別にファイルシステムを構築しサービスを開始したそれぞれのサービスを１枚のＩＣカードに入れ，連携させて安全な決済サービスが構築できる。
【００７６】
以上，添付図面を参照しながら本発明にかかるＩＣカード，情報処理システム，集積回路チップ，およびデータ処理装置の好適な実施形態について説明したが，本発明はかかる例に限定されない。当業者であれば，特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【００７７】
（産業上の利用可能性）
本発明はＩＣカード，情報処理システム，集積回路チップ，およびデータ処理装置に利用可能であり，特に，ＩＣカード内に複数のファイルシステムが存在する状況で，１つのコマンドにより複数のファイルシステム内のメモリ（システム内メモリ）を書き換える場合に，電源断などで一部のシステム内メモリが書き換えられないような状況が発生したとき，すでに書き換えたシステム内メモリを元に戻し，以前の状態を保持する技術に利用可能である。
【図面の簡単な説明】
【００７８】
【図１】本発明の一実施形態にかかる情報処理システムを示す説明図である。
【図２】本発明の一実施形態にかかるＩＣカードを示す説明図である。
【図３】本発明の一実施形態にかかるＩＣカードの制御方法を示す説明図である。
【図４】コマンドパケットを示す説明図である。
【図５】レスポンスパケットを示す説明図である。
【図６】パケット要素を示す説明図である。
【図７】ＩＣカードの制御シーケンスを示す説明図である。
【図８】メモリアクセスコマンドの処理シーケンスを示す説明図である。
【図９】メモリアクセス処理およびメモリアクセスコミット処理を示す説明図である。
【図１０】電源断後の復旧処理を示す説明図である。
【図１１】電源断後の復旧処理を示す説明図である。
【図１２】従来のＩＣカードを示す説明図である。
【符号の説明】
【００７９】
１００  ＩＣカード
１１０  システムＡ
１１２  管理データ
１１４  メモリ管理部
１１６  コマンド処理部
１１８  暗号処理部
１２０  システムＢ
１２２  管理データ
１２４  メモリ管理部
１２６  コマンド処理部
１２８  暗号処理部
１３０  メモリ管理部
１４０  システム連携データ領域
１５０  カード制御部
１６０  コマンド受信部
１７０  レスポンス送信部
２００  コントローラＡ
３００  コントローラＢ
４００  コントローラＣ
４５０  リーダライタ
５００  コマンドパケット
６００  レスポンスパケット
【図１】
2007206959.tif 000003
【図２】
2007206959.tif 000004
【図３】
2007206959.tif 000005
【図４】
2007206959.tif 000006
【図５】
2007206959.tif 000007
【図６】
2007206959.tif 000008
【図７】
2007206959.tif 000009
【図８】
2007206959.tif 000010
【図９】
2007206959.tif 000011
【図１０】
2007206959.tif 000012
【図１１】
2007206959.tif 000013
【図１２】
2007206959.tif 000014