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