(57)【要約】【課題】安全かつ迅速に相互認証を行うことができるようにする。【解決手段】第一の相互認証開始コマンドを取得すると、認証処理部のマスタ鍵生成部は、ステップＳ３２において、相互認証の相手となる情報処理端末固有の鍵を生成するための鍵情報であるマスタ鍵を、第一のデータ、ルート鍵、および、アクセス先に指定されたディレクトリのディレクトリ鍵を縮退することにより生成する。マスタ鍵が生成されると認証処理部は、ステップＳ３３において、暗号化部を制御し、情報処理端末のIDを、ステップＳ３２の処理により生成されたマスタ鍵を用いて暗号化させ、情報処理端末固有の鍵を生成する。本発明は、例えば、通信システムに適用することができる。【選択図】図７
2009100394.tif 000002
【特許請求の範囲】
【請求項１】
他の情報処理装置より、自分自身が保持するデータに対してアクセスを要求される情報処理装置であって、
前記他の情報処理装置より送信された、前記他の情報処理装置が生成した第一の乱数、前記他の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および前記他の情報処理装置のIDを受信する第一の受信手段と、
予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、並びに、前記アクセス先情報により前記他の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵を使用して、前記他の情報処理装置固有の鍵情報を生成するための鍵情報であるマスタ鍵を生成するマスタ鍵生成手段と、
前記第一の受信手段により受信された前記他の情報処理装置のIDを、前記マスタ鍵生成手段により生成された前記マスタ鍵を用いて演算処理して、前記他の情報処理装置固有の鍵情報を生成する鍵情報生成手段と、
前記鍵情報生成手段により生成された前記他の情報処理装置固有の鍵情報と、前記他の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成する認証鍵生成手段と、
第二の乱数を生成する第二の乱数生成手段と、
前記第二の乱数を、前記認証鍵生成手段で生成された前記認証鍵を用いて暗号化する第二の乱数暗号化手段と、
前記第二の乱数暗号化手段にて暗号化された前記第二の乱数を、前記他の情報処理装置に送信する送信手段と、
前記他の情報処理装置より供給される、前記他の情報処理装置において、認証用の鍵情報である認証鍵を用いて演算処理された第二の乱数を受信する第二の受信手段と、
前記第二の受信手段により受信された、演算処理された前記第二の乱数を、前記認証鍵生成手段により生成された前記認証鍵を用いて演算処理する演算処理手段と、
前記演算処理手段により演算処理されて得られた値と、前記第二の乱数生成手段により生成された前記第二の乱数により前記他の情報処理装置を検証する検証手段と
を備える情報処理装置。
【請求項２】
前記第一のデータは、システム管理者により設定されるシステム全体に対応する鍵情報である
請求項１に記載の情報処理装置。
【請求項３】
前記マスタ鍵生成手段は、
前記第一のデータを前記ルート鍵で暗号化する第一の暗号化手段と、
前記第一の暗号化手段により得られた暗号化結果を、前記ディレクトリ鍵で暗号化する第二の暗号化手段と
を備える請求項１に記載の情報処理装置。
【請求項４】
前記第二の暗号化手段は、前記ディレクトリ鍵が複数存在する場合、各ディレクトリ鍵を１つずつ用いて前回の暗号化結果をさらに暗号化する
請求項３に記載の情報処理装置。
【請求項５】
前記認証鍵生成手段は、前記他の情報処理装置固有の鍵情報を、前記アプリケーション鍵で暗号化する鍵情報暗号化手段を備える
請求項１に記載の情報処理装置。
【請求項６】
前記鍵情報暗号化手段は、前記アプリケーション鍵が複数存在する場合、各アプリケーション鍵を１つずつ用いて前回の暗号化結果をさらに暗号化する
請求項５に記載の情報処理装置。
【請求項７】
他の情報処理装置より、自分自身が保持するデータに対してアクセスを要求される情報処理装置の情報処理方法であって、
前記他の情報処理装置より送信された、前記他の情報処理装置が生成した第一の乱数、前記他の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および前記他の情報処理装置のIDを受信し、
予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、並びに、前記アクセス先情報により前記他の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵を使用して、前記他の情報処理装置固有の鍵情報を生成するための鍵情報であるマスタ鍵を生成し、
前記他の情報処理装置のIDを、前記マスタ鍵を用いて演算処理して、前記他の情報処理装置固有の鍵情報を生成し、
前記他の情報処理装置固有の鍵情報と、前記他の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成し、
第二の乱数を生成し、
前記第二の乱数を、前記認証鍵を用いて暗号化し、
暗号化された前記第二の乱数を、前記他の情報処理装置に送信し、
前記他の情報処理装置より供給される、前記他の情報処理装置において、認証用の鍵情報である認証鍵を用いて演算処理された第二の乱数を受信し、
演算処理された前記第二の乱数を、生成した前記認証鍵を用いて演算処理し、
演算処理されて得られた値と、生成された前記第二の乱数により前記他の情報処理装置を検証する
ステップを含む情報処理方法。
【請求項８】
他の情報処理装置より、自分自身が保持するデータに対してアクセスを要求される情報処理装置を制御するプログラムであって、
前記他の情報処理装置より送信された、前記他の情報処理装置が生成した第一の乱数、前記他の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および前記他の情報処理装置のIDを受信し、
予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、並びに、前記アクセス先情報により前記他の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵を使用して、前記他の情報処理装置固有の鍵情報を生成するための鍵情報であるマスタ鍵を生成し、
前記他の情報処理装置のIDを、前記マスタ鍵を用いて演算処理して、前記他の情報処理装置固有の鍵情報を生成し、
前記他の情報処理装置固有の鍵情報と、前記他の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成し、
第二の乱数を生成し、
前記第二の乱数を、前記認証鍵を用いて暗号化し、
暗号化された前記第二の乱数を、前記他の情報処理装置に送信し、
前記他の情報処理装置より供給される、前記他の情報処理装置において、認証用の鍵情報である認証鍵を用いて演算処理された第二の乱数を受信し、
演算処理された前記第二の乱数を、生成した前記認証鍵を用いて演算処理し、
演算処理されて得られた値と、生成された前記第二の乱数により前記他の情報処理装置を検証する
ステップを含むコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項９】
他の情報処理装置より、自分自身が保持するデータに対してアクセスを要求されるコンピュータに実行させるプログラムにおいて、
前記他の情報処理装置より送信された、前記他の情報処理装置が生成した第一の乱数、前記他の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および前記他の情報処理装置のIDを受信し、
予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、並びに、前記アクセス先情報により前記他の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵を使用して、前記他の情報処理装置固有の鍵情報を生成するための鍵情報であるマスタ鍵を生成し、
前記他の情報処理装置のIDを、前記マスタ鍵を用いて演算処理して、前記他の情報処理装置固有の鍵情報を生成し、
前記他の情報処理装置固有の鍵情報と、前記他の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成し、
第二の乱数を生成し、
前記第二の乱数を、前記認証鍵を用いて暗号化し、
暗号化された前記第二の乱数を、前記他の情報処理装置に送信し、
前記他の情報処理装置より供給される、前記他の情報処理装置において、認証用の鍵情報である認証鍵を用いて演算処理された第二の乱数を受信し、
演算処理された前記第二の乱数を、生成した前記認証鍵を用いて演算処理し、
演算処理されて得られた値と、生成された前記第二の乱数により前記他の情報処理装置を検証する
ステップを含む情報処理をコンピュータに実行させるプログラム。
【請求項１０】
第一の情報処理装置が第二の情報処理装置にアクセスする際に、前記第一の情報処理装置と前記第二の情報処理装置が相互認証を行う情報処理システムであって、
前記第一の情報処理装置が、
第一の乱数を生成する第一の乱数生成手段と、
前記第一の乱数生成手段により生成された前記第一の乱数、前記第一の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および前記第一の情報処理装置のIDを送信する第一の送信手段と、
前記第二の情報処理装置より供給される第一の返信文と第二の返信文を受信する第一の受信手段と、
前記第一の受信手段により受信された前記第一の返信文を前記第一の情報処理装置固有の鍵情報で復号する第一の復号手段と、
前記第一の復号手段により前記第一の返信文が復号されて得られた、前記第一の情報処理装置がアクセスするディレクトリのIDであるアプリケーションIDを、前記第一の情報処理装置が保持する鍵情報であるマスタ鍵を用いて演算処理して、前記第一の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を生成するアプリケーション鍵生成手段と、
前記第一の情報処理装置固有の鍵情報と、前記アプリケーション鍵生成手段により生成された前記アプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成する第一の認証鍵生成手段と、
前記第一の受信手段により受信された前記第二の返信文を、前記第一の認証鍵生成手段により生成された前記認証鍵で復号する第二の復号手段と、
前記第二の復号手段により復号されて得られた前記第一の乱数と、前記第一の乱数生成手段により生成された前記第一の乱数により前記第二の情報処理装置を検証する第一の検証手段と、
セッション鍵を生成するセッション鍵生成手段と、
前記第二の復号手段により復号されて得られた前記第一の乱数および前記第二の乱数、並びに、前記セッション鍵生成手段により生成された前記セッション鍵を、前記第一の認証鍵生成手段により生成された前記認証鍵を用いて演算処理する第一の演算処理手段と、
前記第一の演算処理手段により前記認証鍵を用いて演算処理された前記第一の乱数、前記第二の乱数、および前記セッション鍵を前記第二の情報処理装置に送信する第二の送信手段と
を備え、
前記第二の情報処理装置が、
前記第一の送信手段により送信された前記第一の乱数、前記アクセス先情報、および前記第一の情報処理装置のIDを受信する第二の受信手段と、
予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、前記アクセス先情報により、前記第一の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵を使用して前記マスタ鍵を生成するマスタ鍵生成手段と、
前記第二の受信手段により受信された前記第一の情報処理装置のIDを、前記マスタ鍵生成手段により生成された前記マスタ鍵を用いて演算処理して、前記第一の情報処理装置固有の鍵情報を生成する鍵情報生成手段と、
前記第一の情報処理装置がアクセスするディレクトリのIDであるアプリケーションIDを、前記鍵情報生成手段により生成された前記第一の情報処理装置固有の鍵情報で暗号化して前記第一の返信文を生成する第一の返信文生成手段と、
前記鍵情報生成手段により生成された前記第一の情報処理装置固有の鍵情報と、前記第一の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成する第二の認証鍵生成手段と、
第二の乱数を生成する第二の乱数生成手段と、
前記第二の乱数生成手段により生成された前記第二の乱数、並びに、前記第二の受信手段により受信された前記第一の乱数および前記第一の情報処理装置のIDを、前記第二の認証鍵生成手段により生成された前記認証鍵を用いて暗号化して第二の返信文を生成する第二の返信文生成手段と、
前記第一の返信文生成手段により生成された前記第一の返信文、および、前記第二の返信文生成手段により生成された前記第二の返信文を前記第一の情報処理装置に送信する第三の送信手段と、
前記第一の情報処理装置より供給される、前記認証鍵を用いて演算処理された前記第一の乱数、前記第二の乱数、および前記セッション鍵を受信する第三の受信手段と、
前記第三の受信手段により受信された、前記認証鍵を用いて演算処理された前記第一の乱数、前記第二の乱数、および前記セッション鍵を、前記第二の認証鍵生成手段により生成された前記認証鍵を用いて演算処理する第二の演算処理手段と、
前記第二の演算処理手段により演算処理されて得られた値と、前記第二の乱数生成手段により生成された前記第二の乱数により前記第一の情報処理装置を検証する第二の検証手段と
を備える情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、記録媒体、プログラム、並びに情報処理システムに関し、特に、安全かつ迅速に相互認証を行うことができるようにした情報処理装置および方法、記録媒体、プログラム、並びに情報処理システムに関する。
【背景技術】
【０００２】
近年、電子マネーに代表される、非接触IC（Integrated Circuit）カードが多方面で利用されるようになってきている。この非接触ICカードには、種々のアプリケーションが搭載されることが普通であり、それぞれ要求される情報セキュリティのレベルが異なっているのが普通である。そこで、必要の都度、アプリケーション毎に認証処理、暗号化処理を行うことが想定されるが、複数のアプリケーションに（同時もしくは個別に）アクセスするために、何度も相互認証処理を行う必要性が発生してしまう。しかしながら、一般的に非接触ICカードは、通信速度が数百Kbps程度と比較的遅いため、効率が非常に悪くなってしまう。
【０００３】
そこで、アクセスするファイル（のアクセス方式）毎にアクセス鍵を設定し、それらアクセス鍵を縮退させて１つの縮退鍵を生成し、その縮退鍵で相互認証するという方法が提案されている（例えば、特許文献１参照）。また、比較的安全度の高い相互認証方式としては、例えばDES（Data Encryption Standard）等の共通鍵暗号を用いて相互認証を行う個別鍵認証方式がある。
【０００４】
【特許文献１】特開平１０−３２７１４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、鍵を縮退化させて相互認証を行うだけの場合、縮退化させた縮退鍵がリーダ・ライタ内に残ってしまう。このため、仮にリーダ・ライタの内部が解析されて鍵が露見した場合、その縮退鍵が悪用されセキュリティが破られてしまう可能性がある。
【０００６】
また、個別鍵相互認証を行うだけの場合、アクセスファイル毎の認証を行わなければならず、効率が低下する恐れがあった。
【０００７】
さらに、例えば、非接触ICカードの場合、各カードを互いに識別するためのIDが設定されているが、このIDが第三者に容易に読み出すことができる構造となっている。そのため、このIDが不正に読み出され、個人のプライバシーが侵害される恐れがあった。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、安全かつ迅速に相互認証を行うことができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の第一の側面は、他の情報処理装置より、自分自身が保持するデータに対してアクセスを要求される情報処理装置であって、前記他の情報処理装置より送信された、前記他の情報処理装置が生成した第一の乱数、前記他の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および前記他の情報処理装置のIDを受信する第一の受信手段と、予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、並びに、前記アクセス先情報により前記他の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵を使用して、前記他の情報処理装置固有の鍵情報を生成するための鍵情報であるマスタ鍵を生成するマスタ鍵生成手段と、前記第一の受信手段により受信された前記他の情報処理装置のIDを、前記マスタ鍵生成手段により生成された前記マスタ鍵を用いて演算処理して、前記他の情報処理装置固有の鍵情報を生成する鍵情報生成手段と、前記鍵情報生成手段により生成された前記他の情報処理装置固有の鍵情報と、前記他の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成する認証鍵生成手段と、第二の乱数を生成する第二の乱数生成手段と、前記第二の乱数を、前記認証鍵生成手段で生成された前記認証鍵を用いて暗号化する第二の乱数暗号化手段と、前記第二の乱数暗号化手段にて暗号化された前記第二の乱数を、前記他の情報処理装置に送信する送信手段と、前記他の情報処理装置より供給される、前記他の情報処理装置において、認証用の鍵情報である認証鍵を用いて演算処理された第二の乱数を受信する第二の受信手段と、前記第二の受信手段により受信された、演算処理された前記第二の乱数を、前記認証鍵生成手段により生成された前記認証鍵を用いて演算処理する演算処理手段と、前記演算処理手段により演算処理されて得られた値と、前記第二の乱数生成手段により生成された前記第二の乱数により前記他の情報処理装置を検証する検証手段とを備える情報処理装置である。
【００１０】
前記第一のデータは、システム管理者により設定されるシステム全体に対応する鍵情報であることができる。
【００１１】
前記マスタ鍵生成手段は、前記第一のデータを前記ルート鍵で暗号化する第一の暗号化手段と、前記第一の暗号化手段により得られた暗号化結果を、前記ディレクトリ鍵で暗号化する第二の暗号化手段とを備えることができる。
【００１２】
前記第二の暗号化手段は、前記ディレクトリ鍵が複数存在する場合、各ディレクトリ鍵を１つずつ用いて前回の暗号化結果をさらに暗号化することができる。
【００１３】
前記認証鍵生成手段は、前記他の情報処理装置固有の鍵情報を、前記アプリケーション鍵で暗号化する鍵情報暗号化手段を備えることができる。
【００１４】
前記鍵情報暗号化手段は、前記アプリケーション鍵が複数存在する場合、各アプリケーション鍵を１つずつ用いて前回の暗号化結果をさらに暗号化することができる。
【００１５】
本発明の第一の側面は、また、他の情報処理装置より、自分自身が保持するデータに対してアクセスを要求される情報処理装置の情報処理方法であって、前記他の情報処理装置より送信された、前記他の情報処理装置が生成した第一の乱数、前記他の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および前記他の情報処理装置のIDを受信し、予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、並びに、前記アクセス先情報により前記他の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵を使用して、前記他の情報処理装置固有の鍵情報を生成するための鍵情報であるマスタ鍵を生成し、前記他の情報処理装置のIDを、前記マスタ鍵を用いて演算処理して、前記他の情報処理装置固有の鍵情報を生成し、前記他の情報処理装置固有の鍵情報と、前記他の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成し、第二の乱数を生成し、前記第二の乱数を、前記認証鍵を用いて暗号化し、暗号化された前記第二の乱数を、前記他の情報処理装置に送信し、前記他の情報処理装置より供給される、前記他の情報処理装置において、認証用の鍵情報である認証鍵を用いて演算処理された第二の乱数を受信し、演算処理された前記第二の乱数を、生成した前記認証鍵を用いて演算処理し、演算処理されて得られた値と、生成された前記第二の乱数により前記他の情報処理装置を検証するステップを含む情報処理方法である。
【００１６】
本発明の第一の側面は、さらに、他の情報処理装置より、自分自身が保持するデータに対してアクセスを要求される情報処理装置を制御するプログラムであって、前記他の情報処理装置より送信された、前記他の情報処理装置が生成した第一の乱数、前記他の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および前記他の情報処理装置のIDを受信し、予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、並びに、前記アクセス先情報により前記他の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵を使用して、前記他の情報処理装置固有の鍵情報を生成するための鍵情報であるマスタ鍵を生成し、前記他の情報処理装置のIDを、前記マスタ鍵を用いて演算処理して、前記他の情報処理装置固有の鍵情報を生成し、前記他の情報処理装置固有の鍵情報と、前記他の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成し、第二の乱数を生成し、前記第二の乱数を、前記認証鍵を用いて暗号化し、暗号化された前記第二の乱数を、前記他の情報処理装置に送信し、前記他の情報処理装置より供給される、前記他の情報処理装置において、認証用の鍵情報である認証鍵を用いて演算処理された第二の乱数を受信し、演算処理された前記第二の乱数を、生成した前記認証鍵を用いて演算処理し、演算処理されて得られた値と、生成された前記第二の乱数により前記他の情報処理装置を検証するステップを含むコンピュータが読み取り可能なプログラムが記録されている記録媒体である。
【００１７】
本発明の第一の側面は、また、他の情報処理装置より、自分自身が保持するデータに対してアクセスを要求されるコンピュータに実行させるプログラムにおいて、前記他の情報処理装置より送信された、前記他の情報処理装置が生成した第一の乱数、前記他の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および前記他の情報処理装置のIDを受信し、予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、並びに、前記アクセス先情報により前記他の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵を使用して、前記他の情報処理装置固有の鍵情報を生成するための鍵情報であるマスタ鍵を生成し、前記他の情報処理装置のIDを、前記マスタ鍵を用いて演算処理して、前記他の情報処理装置固有の鍵情報を生成し、前記他の情報処理装置固有の鍵情報と、前記他の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成し、第二の乱数を生成し、前記第二の乱数を、前記認証鍵を用いて暗号化し、暗号化された前記第二の乱数を、前記他の情報処理装置に送信し、前記他の情報処理装置より供給される、前記他の情報処理装置において、認証用の鍵情報である認証鍵を用いて演算処理された第二の乱数を受信し、演算処理された前記第二の乱数を、生成した前記認証鍵を用いて演算処理し、演算処理されて得られた値と、生成された前記第二の乱数により前記他の情報処理装置を検証するステップを含む情報処理をコンピュータに実行させるプログラムである。
【００１８】
本発明の第二の側面は、第一の情報処理装置が第二の情報処理装置にアクセスする際に、前記第一の情報処理装置と前記第二の情報処理装置が相互認証を行う情報処理システムであって、前記第一の情報処理装置が、第一の乱数を生成する第一の乱数生成手段と、前記第一の乱数生成手段により生成された前記第一の乱数、前記第一の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および前記第一の情報処理装置のIDを送信する第一の送信手段と、前記第二の情報処理装置より供給される第一の返信文と第二の返信文を受信する第一の受信手段と、前記第一の受信手段により受信された前記第一の返信文を前記第一の情報処理装置固有の鍵情報で復号する第一の復号手段と、前記第一の復号手段により前記第一の返信文が復号されて得られた、前記第一の情報処理装置がアクセスするディレクトリのIDであるアプリケーションIDを、前記第一の情報処理装置が保持する鍵情報であるマスタ鍵を用いて演算処理して、前記第一の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を生成するアプリケーション鍵生成手段と、前記第一の情報処理装置固有の鍵情報と、前記アプリケーション鍵生成手段により生成された前記アプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成する第一の認証鍵生成手段と、前記第一の受信手段により受信された前記第二の返信文を、前記第一の認証鍵生成手段により生成された前記認証鍵で復号する第二の復号手段と、前記第二の復号手段により復号されて得られた前記第一の乱数と、前記第一の乱数生成手段により生成された前記第一の乱数により前記第二の情報処理装置を検証する第一の検証手段と、セッション鍵を生成するセッション鍵生成手段と、前記第二の復号手段により復号されて得られた前記第一の乱数および前記第二の乱数、並びに、前記セッション鍵生成手段により生成された前記セッション鍵を、前記第一の認証鍵生成手段により生成された前記認証鍵を用いて演算処理する第一の演算処理手段と、前記第一の演算処理手段により前記認証鍵を用いて演算処理された前記第一の乱数、前記第二の乱数、および前記セッション鍵を前記第二の情報処理装置に送信する第二の送信手段とを備え、前記第二の情報処理装置が、前記第一の送信手段により送信された前記第一の乱数、前記アクセス先情報、および前記第一の情報処理装置のIDを受信する第二の受信手段と、予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、前記アクセス先情報により、前記第一の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵を使用して前記マスタ鍵を生成するマスタ鍵生成手段と、前記第二の受信手段により受信された前記第一の情報処理装置のIDを、前記マスタ鍵生成手段により生成された前記マスタ鍵を用いて演算処理して、前記第一の情報処理装置固有の鍵情報を生成する鍵情報生成手段と、前記第一の情報処理装置がアクセスするディレクトリのIDであるアプリケーションIDを、前記鍵情報生成手段により生成された前記第一の情報処理装置固有の鍵情報で暗号化して前記第一の返信文を生成する第一の返信文生成手段と、前記鍵情報生成手段���より生成された前記第一の情報処理装置固有の鍵情報と、前記第一の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成する第二の認証鍵生成手段と、第二の乱数を生成する第二の乱数生成手段と、前記第二の乱数生成手段により生成された前記第二の乱数、並びに、前記第二の受信手段により受信された前記第一の乱数および前記第一の情報処理装置のIDを、前記第二の認証鍵生成手段により生成された前記認証鍵を用いて暗号化して第二の返信文を生成する第二の返信文生成手段と、前記第一の返信文生成手段により生成された前記第一の返信文、および、前記第二の返信文生成手段により生成された前記第二の返信文を前記第一の情報処理装置に送信する第三の送信手段と、前記第一の情報処理装置より供給される、前記認証鍵を用いて演算処理された前記第一の乱数、前記第二の乱数、および前記セッション鍵を受信する第三の受信手段と、前記第三の受信手段により受信された、前記認証鍵を用いて演算処理された前記第一の乱数、前記第二の乱数、および前記セッション鍵を、前記第二の認証鍵生成手段により生成された前記認証鍵を用いて演算処理する第二の演算処理手段と、前記第二の演算処理手段により演算処理されて得られた値と、前記第二の乱数生成手段により生成された前記第二の乱数により前記第一の情報処理装置を検証する第二の検証手段とを備える情報処理システムである。
【００１９】
本発明の第一の側面においては、他の情報処理装置より送信された、他の情報処理装置が生成した第一の乱数、他の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および他の情報処理装置のIDが受信され、予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、並びに、アクセス先情報により、他の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵が使用されて、他の情報処理装置固有の鍵情報を生成するための鍵情報であるマスタ鍵が生成され、他の情報処理装置のIDが、マスタ鍵を用いて演算処理され、他の情報処理装置固有の鍵情報が生成され、他の情報処理装置固有の鍵情報と、他の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵が使用されて、認証用の鍵情報である認証鍵が生成され、第二の乱数が生成され、前記第二の乱数が、生成された前記認証鍵を用いて暗号化され、暗号化された第二の乱数が他の情報処理装置に送信され、他の情報処理装置より供給される、他の情報処理装置において、認証用の鍵情報である認証鍵を用いて演算処理された第二の乱数が受信され、演算処理された第二の乱数が、生成した認証鍵を用いて演算処理され、演算処理されて得られた第二の乱数と、生成された第二の乱数により他の情報処理装置が検証される。
【００２０】
本発明の第二の側面においては、第一の情報処理装置において、第一の乱数が生成され第一の乱数、第一の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および第一の情報処理装置のIDが送信され、第一の返信文と第二の返信文が受信され、第一の返信文が第一の情報処理装置固有の鍵情報で復号され、第一の情報処理装置がアクセスするディレクトリのIDであるアプリケーションIDが、第一の情報処理装置が保持する鍵情報であるマスタ鍵を用いて演算処理され、第一の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵が生成され、第一の情報処理装置固有の鍵情報と、アプリケーション鍵が使用されて認証鍵が生成され、第二の返信文が、前記認証鍵で復号され、第一の乱数により第二の情報処理装置が検証され、セッション鍵が生成され、第一の乱数および第二の乱数、並びに、セッション鍵が認証鍵を用いて演算処理されて送信され、第二の情報処理装置において、第一の乱数、アクセス先情報、および第一の情報処理装置のIDが受信され、第一のデータ、ルート鍵、ディレクトリ鍵を使用してマスタ鍵が生成され、第一の情報処理装置のIDがマスタ鍵を用いて演算処理されて、第一の情報処理装置固有の鍵情報が生成され、アプリケーションIDが第一の情報処理装置固有の鍵情報で暗号化されて第一の返信文が生成され、第一の情報処理装置固有の鍵情報とアプリケーション鍵が使用されて認証鍵が生成され、第二の乱数が生成され、第二の乱数、第一の乱数、および第一の情報処理装置のIDが、認証鍵を用いて暗号化されて第二の返信文が生成され、第一の返信文と第二の返信文が第一の情報処理装置に送信され、認証鍵を用いて暗号化された第一の乱数、第二の乱数、およびセッション鍵が受信され、その認証鍵を用いて暗号化された第一の乱数、第二の乱数、およびセッション鍵が認証鍵で演算処理され、得られた値と第二の乱数により第一の情報処理装置が検証される。
【発明の効果】
【００２１】
本発明によれば、認証処理を行うことができる。特に、安全かつ迅速に相互認証を行うことができる。
【発明を実施するための最良の形態】
【００２２】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２３】
本発明の第一の側面は、他の情報処理装置（例えば、図１の情報処理端末１１）より、自分自身が保持するデータに対してアクセスを要求される情報処理装置（例えば、図１のICカード１２）であって、前記他の情報処理装置より送信された、前記他の情報処理装置が生成した第一の乱数、前記他の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および前記他の情報処理装置のIDを受信する第一の受信手段（例えば、図７のステップＳ３１の処理を実行する図１の通信部３８）と、予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、並びに、前記アクセス先情報により前記他の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵を使用して、前記他の情報処理装置固有の鍵情報を生成するための鍵情報であるマスタ鍵を生成するマスタ鍵生成手段（例えば、図７のステップＳ３２の処理を実行する図１のマスタ鍵生成部４１）と、前記第一の受信手段により受信された前記他の情報処理装置のIDを、前記マスタ鍵生成手段により生成された前記マスタ鍵を用いて演算処理して、前記他の情報処理装置固有の鍵情報を生成する鍵情報生成手段（例えば、図７のステップＳ３３の処理を実行する図１の認証処理部３３）と、前記鍵情報生成手段により生成された前記他の情報処理装置固有の鍵情報と、前記他の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成する認証鍵生成手段（例えば、図７のステップＳ３５の処理を実行する図１の認証処理部３３）と、第二の乱数を生成する第二の乱数生成手段（例えば、図７のステップＳ３６の処理を実行する図１の認証処理部３３）と、前記第二の乱数を、前記認証鍵生成手段で生成された前記認証鍵を用いて暗号化する第二の乱数暗号化手段（例えば、図７のステップＳ３７の処理を実行する図１の認証処理部３３）と、前記第二の乱数暗号化手段にて暗号化された前記第二の乱数を、前記他の情報処理装置に送信する送信手段（例えば、図７のステップＳ３８の処理を実行する図１の認証処理部３３）と、前記他の情報処理装置より供給される、前記他の情報処理装置において、認証用の鍵情報である認証鍵を用いて演算処理された第二の乱数を受信する第二の受信手段（例えば、図８のステップＳ５１の処理を実行する図１の通信部３８）と、前記第二の受信手段により受信された、演算処理された前記第二の乱数を、前記認証鍵生成手段により生成された前記認証鍵を用いて演算処理する演算処理手段（例えば、図８のステップＳ５２の処理を実行する図１の認証処理部３３）と、前記演算処理手段により演算処理されて得られた値と、前記第二の乱数生成手段により生成された前記第二の乱数により前記他の情報処理装置を検証する検証手段（例えば、図８のステップＳ５３の処理を実行する図１の認証処理部３３）とを備える情報処理装置である。
【００２４】
前記マスタ鍵生成手段は、前記第一のデータを前記ルート鍵で暗号化する第一の暗号化手段（例えば、図１３のステップＳ７３の処理を実行する図１のマスタ鍵生成部４１）と、前記第一の暗号化手段により得られた暗号化結果を、前記ディレクトリ鍵で暗号化する第二の暗号化手段（例えば、図１３のステップＳ７５の処理を実行する図１のマスタ鍵生成部４１）とを備えることができる。
【００２５】
前記認証鍵生成手段は、前記他の情報処理装置固有の鍵情報を、前記アプリケーション鍵で暗号化する鍵情報暗号化手段（例えば、図１１の暗号化処理部８１および暗号化処理部８２）を備えることができる。
【００２６】
本発明の第一の側面は、また、他の情報処理装置（例えば、図１の情報処理端末１１）より、自分自身が保持するデータに対してアクセスを要求される情報処理装置（例えば、図１のICカード１２）の情報処理方法、記録媒体、またはプログラムであって、前記他の情報処理装置より送信された、前記他の情報処理装置が生成した第一の乱数、前記他の情報処理装置がアクセスするディレクトリを示すアクセス先情報、および前記他の情報処理装置のIDを受信し（例えば、図７のステップＳ３１）、予め保持する第一のデータ、ルートディレクトリに対応する鍵情報であるルート鍵、並びに、前記アクセス先情報により、前記他の情報処理装置のアクセス先として指定されたディレクトリに対応する鍵情報であるディレクトリ鍵を使用して、前記他の情報処理装置固有の鍵情報を生成するための鍵情報であるマスタ鍵を生成し（例えば、図７のステップＳ３２）、前記他の情報処理装置のIDを、前記マスタ鍵を用いて演算処理して、前記他の情報処理装置固有の鍵情報を生成し（例えば、図７のステップＳ３３）、前記他の情報処理装置固有の鍵情報と、前記他の情報処理装置がアクセスするディレクトリに対応する鍵情報であるアプリケーション鍵を使用して、認証用の鍵情報である認証鍵を生成し（例えば、図７のステップＳ３５）、第二の乱数を生成し（例えば、図７のステップＳ３６）、前記第二の乱数を、前記認証鍵を用いて暗号化し、暗号化された前記第二の乱数を、前記他の情報処理装置に送信し（例えば、図７のステップＳ３８）、前記他の情報処理装置より供給される、前記他の情報処理装置において、認証用の鍵情報である認証鍵を用いて演算処理された第二の乱数を受信し（例えば、図８のステップＳ５１）、演算処理された前記第二の乱数を、生成した前記認証鍵を用いて演算処理し（例えば、図８のステップＳ５２）、演算処理されて得られた値と、生成された前記第二の乱数により前記他の情報処理装置を検証する（例えば、図８のステップＳ５３）ステップを含む。
【００２７】
以下、本発明の実施の形態について説明する。
【００２８】
図１は、本発明を適用した通信システムの主な構成例を示すブロック図である。
【００２９】
図１に示される通信システム１は、通信機能を有する情報処理端末１１およびIC（Integrated Circuit）カード１２の２つのデバイスよりなり、情報処理端末１１とICカード１２が互いに通信を行い、情報を授受するシステムである。情報処理端末１１は、例えば改札機や自動販売機等のような、ICカード１２のリーダ・ライタ機能を有する情報処理装置であり、ICカード１２に情報を供給して記憶させたり、ICカード１２に記憶されている情報を読み出したりする。ICカード１２は、例えば不揮発性メモリや通信回路を内蔵するICチップやループアンテナ等が埋め込まれたカード型のデバイスであり、情報処理端末１１と、通信可能範囲が約１０cm程度の近距離無線通信を行い、情報の授受を行う、所謂、非接触型のICカードである。
【００３０】
図１に示されるように、情報処理端末１１は、記憶部２１、認証処理部２３、乱数生成部２５、暗号化部２６、復号部２７、および通信部２８の機能ブロックを有する。記憶部２１は、例えばフラッシュメモリやハードディスク等の不揮発性のメモリデバイスよりなり、IDや暗号化用の鍵情報等各種情報を記憶する。認証処理部２３は、例えばCPU（Central Processing Unit）等の演算処理デバイスよりなり、情報処理端末１１とICカード１２との通信を開始する際に互いを認証させる認証処理を行う。乱数生成部２５は、例えばCPU等の演算処理デバイスよりなり、認証処理等に必要な乱数を生成する。暗号化部２６は、例えばCPU等の演算処理デバイスよりなり、通信部２８を介してICカード１２に供給する情報を必要に応じて暗号化する。復号部２７は、例えばCPU等の演算処理デバイスよりなり、通信部２８を介してICカード１２より供給された、暗号化された情報を必要に応じて復号する。通信部２８は、例えば、通信回路等を含むICチップやループアンテナ等よりなり、通信可能範囲内に位置するICカード１２との近距離無線通信を行い、情報を授受する。もちろん、情報処理端末１１がこれら以外の機能ブロックを有していてもよい。
【００３１】
なお、図１においては矢印の記載を省略しているが、認証処理部２３は、乱数生成部２５、暗号化部２６、および復号部２７とも情報の授受を適宜行う。
【００３２】
ICカード１２は、記憶部３１、データ設定処理部３２、認証処理部３３、乱数生成部３５、暗号化部３６、および復号部３７の機能ブロックを有する。記憶部３１は、例えばフラッシュメモリやハードディスク等の不揮発性のメモリデバイスよりなり、情報処理端末１１等外部の機器より供給される情報等、各種情報を記憶する。データ設定処理部３２は、ICカード１２の外部の機器より供給される命令や情報等に基づいて、記憶部３１の記憶領域にディレクトリやファイルを作成したり、鍵情報やID等の設定情報を書き込んだりするデータ設定処理を行う。認証処理部３３は、例えばCPU等の演算処理デバイスよりなり、情報処理端末１１とICカード１２との通信を開始する際に互いを認証させる認証処理を行う。認証処理部３３は、情報処理端末１１固有の鍵を生成する情報処理端末１１用のマスタ鍵を生成するマスタ鍵生成部４１を有する。乱数生成部３５は、例えばCPU等の演算処理デバイスよりなり、認証処理等に必要な乱数を生成する。暗号化部３６は、例えばCPU等の演算処理デバイスよりなり、通信部３８を介して情報処理端末１１に供給する情報を必要に応じて暗号化する。復号部３７は、例えばCPU等の演算処理デバイスよりなり、通信部３８を介して情報処理端末１１より供給された、暗号化された情報を必要に応じて復号する。通信部３８は、例えば、通信回路等を含むICチップやループアンテナ等よりなり、通信可能範囲内に位置する情報処理端末１１との近距離無線通信を行い、情報を授受する。もちろん、ICカード１２がこれら以外の機能ブロックを有していてもよい。
【００３３】
なお、図１においては矢印の記載を省略しているが、データ設定処理部３２および認証処理部３３は、それぞれ、乱数生成部３５、暗号化部３６、および復号部３７とも情報の授受を適宜行う。
【００３４】
以上の通信システム１に関わる存在（エンティティ）について説明する。以下においては、ICカード１２をユーザに提供する（あるいは販売し、管理する）エンティティをシステム管理者と称し、そのシステム管理者の許諾を得て、ICカード１２の記憶部３１の記憶領域の中にディレクトリを生成し、サービスを提供するエンティティを事業者と称する。当然、システム管理者も一事業者となり得る。
【００３５】
システム管理者は、ICカード１２に第一のデータと、ルートディレクトリを管理する鍵情報であるルート鍵を書き込み、ユーザにICカード１２を提供する。従って、同一のシステム管理者配下のICカード１２の記憶部３１には、全て同じ第一のデータおよびルート鍵が書かれている。換言するに、互いに異なるシステム管理者のICカードには、互いに異なる第一のデータおよびルート鍵がそれぞれ記憶される。
【００３６】
図２は、情報処理端末１１の記憶部２１、および、ICカード１２の記憶部３１に記憶される情報の例を示す図である。
【００３７】
図２に示される例においては、通信システム１は、３台の情報処理端末１１と２枚のICカード１２により構成される。通信システム１を提供するシステム管理者（企業や団体等も含む）は１人（１社または１団体等）存在し（つまり、唯一のシステム管理者が存在し）、通信システム１を用いたサービスを提供する事業者（企業や団体等も含む）は２人（２社または２団体）存在し（つまり、２単位の事業者が存在し）、通信システム１を用いたサービスを享受するユーザは２人（２社または２団体）存在する（つまり、２単位のユーザが存在する）。事業者１は、情報処理端末１１−１−１および情報処理端末１１−１−２を所有し、事業者２は、情報処理端末１１−２−１を所有する。ICカード１２−１は、図示せぬ一方のユーザにより所有され、ICカード１２−２は、図示せぬ他方のユーザにより所有される。なお、情報処理端末１１−１−１、情報処理端末１１−１−２、および情報処理端末１１−２−１を互いに区別して説明する必要の無い場合、単に情報処理端末１１と称する。同様に、ICカード１２−１およびICカード１２−２を互いに区別して説明する必要の無い場合、単にICカード１２と称する。
【００３８】
システム管理者は、例えば出荷時に、ICカード１２−１の記憶部３１−１に第一のデータ（KSystem）とルート鍵（KRoot）を書き込む。同様に、システム管理者は、例えば出荷時に、ICカード１２−２の記憶部３１−２に第一のデータ（KSystem）とルート鍵（KRoot）を書き込む。
【００３９】
事業者１は、システム管理者の許諾を得てICカード１２−１の記憶部３１−１に、提供するサービス毎にディレクトリ（ディレクトリ１−１、ディレクトリ１−２、ディレクトリ１−３、およびディレクトリ１−３−２）を作成する。なお、本例ではディレクトリ１−３にはアクセスしないこととする。また、ディレクトリ１−３−２はディレクトリ１−３の下にある下位ディレクトリである（つまり、ルート直下ではない）。
【００４０】
同様に、事業者２は、システム管理者の許諾を得てICカード１２−２の記憶部３１−２に、提供するサービス毎にディレクトリ（ディレクトリ２−１、ディレクトリ２−２、ディレクトリ２−３、およびディレクトリ２−３−２）を作成する。なお、本例ではディレクトリ２−３にはアクセスしないこととする。また、ディレクトリ２−３−２はディレクトリ２−３の下にある下位ディレクトリである（つまり、ルート直下ではない）。
【００４１】
ディレクトリを作成する際、事業者は、そのサービスのディレクトリを管理する、サービス毎の鍵情報であるディレクトリ鍵（DirK）、そのICカード１２のそのディレクトリを識別するためのアプリケーションID（AppID）と、そのICカード１２のそのディレクトリを管理する鍵情報であるアプリケーション鍵（AppK）を、そのディレクトリに書き込む。
【００４２】
例えば、事業者１は、ディレクトリ１−１を作成すると、そのディレクトリ１−１に、ディレクトリ鍵（DirK１−１）、アプリケーションID（AppID１−１）、およびアプリケーション鍵（AppK１−１）を書き込む。同様に、事業者１は、ディレクトリ１−２を作成すると、そのディレクトリ１−２に、ディレクトリ鍵（DirK１−２）、アプリケーションID（AppID１−２）、およびアプリケーション鍵（AppK１−２）を書き込む。
【００４３】
同様に、事業者２は、ディレクトリ２−１を作成すると、そのディレクトリ２−１に、ディレクトリ鍵（DirK２−１）、アプリケーションID（AppID２−１）、およびアプリケーション鍵（AppK２−１）を書き込む。同様に、事業者２は、ディレクトリ２−２を作成すると、そのディレクトリ２−２に、ディレクトリ鍵（DirK２−２）、アプリケーションID（AppID２−２）、およびアプリケーション鍵（AppK２−２）を書き込む。
【００４４】
ディレクトリ鍵DirKの場合、書き込み先のICカード１２が異なっていても（つまり、異なるユーザが持つカードという意味）（例えば、ICカード１２−１の場合も、ICカード１２−２の場合も）、提供されるサービスが同一のディレクトリであれば、互いに同一の鍵が書き込まれる。これに対して、アプリケーションID（AppID）やアプリケーション鍵（AppK）の場合、サービスが同一のディレクトリであってもICカードが異なれば値が異なる。
【００４５】
また、例えば、ディレクトリ１−１のアプリケーション鍵AppK１−１は、情報処理端末１１−１−１の記憶部２１−１−１に保持されているマスタ鍵MK１−ICとアプリケーションID（AppID１−１）から生成できるものとする。つまり、ここには図示されていないが、事業者１が他のICカード１２（つまり、異なるユーザが持つカードという意味）に生成するディレクトリには、異なるアプリケーションID（AppID）（これがユーザIDとなる）とアプリケーション鍵（AppK）が書き込まれる。ただし、ディレクトリ鍵（DirK）は共通である。
【００４６】
同様に、事業者２によって各ディレクトリにディレクトリ鍵（DirK）、アプリケーションID（AppID）、およびアプリケーション鍵（AppK）が書き込まれる。
【００４７】
情報処理端末１１−１−１の記憶部２１−１−１には、情報処理端末１１−１−１固有の識別情報（ID１−１）、情報処理端末１１−１−１固有の鍵（K１−１）、ICカード１２−１の記憶部３１−１に記憶されるアプリケーション鍵（AppK）を生成するためのマスタ鍵（MK１−IC）が書き込まれている。この鍵は、事業者毎に異なるだけであるため、同一事業者内では同じ鍵となる。なお、マスタ鍵をディレクトリ毎に変えるようにしても良い（本例では、事業者につき固有としている）。その場合、アクセスするディレクトリ分のマスタ鍵を保持している必要がある。
【００４８】
同様に、情報処理端末１１−１−２の記憶部２１−１−２には、情報処理端末１１−１−２固有の識別情報（ID１−２）、情報処理端末１１−１−２固有の鍵（K１−２）、ICカード１２−１の記憶部（３１−１）に記憶されるアプリケーション鍵（AppK）を生成するためのマスタ鍵（MK１−IC）が書き込まれている。同様に、情報処理端末１１−２−１の記憶部２１−２−１には、情報処理端末１１−２−１固有の識別情報（ID２−１）、情報処理端末１１−２−１固有の鍵（K２−１）、ICカード１２−２の記憶部３１−２に記憶されるアプリケーション鍵（AppK）を生成するためのマスタ鍵（MK２−IC）が書き込まれている。
【００４９】
次に、ICカード１２の記憶部３１内に記憶されるデータの具体的な構成例を説明する。
【００５０】
図３は、記憶部３１の記憶領域内に書き込まれる情報の構成例（アドレスマップ）を示す図である。
【００５１】
図３において、まず、１ブロックのバイト数であるが、鍵長が１６バイト以上になることに伴い、３２バイトを想定している。もちろん、鍵長を８バイトとして、１ブロックを１６バイトとしてもよいし、１ブロックを６４バイトとしてもよい。記憶部３１には、鍵データ等のシステムデータが、メモリの上位アドレスから書き込まれる。逆に、ユーザデータは下位アドレスから書き込まれる。結果として、記憶部３１の中央領域が常に空き領域となるようになる。これらのデータを保持するICチップ（記憶部３１を含むICチップ）を、以降セキュリティICと呼称する。
【００５２】
記憶部３１の論理アドレスFFFFhのブロック（３２バイト）には、デバイスID（Device ID）と、デバイスパラメータ（Device Parameter）が記憶される。デバイスID（Device ID）は、デバイス固有のID、すなわちICカード１２のIDを示す。このデータは、ICベンダーによって書き込まれるか、システム管理者によって書き込まれる。このデータは、所定の手続きを取らない限り読み出すことができないようになされており、通常のアプリケーションでは使用することができない。これにより、プライバシー等の侵害を防ぐことが期待される。また、デバイスパラメータ（Device Parameter）は、返答時間など、種々のパラメータを規定する。
【００５３】
各ブロックの先頭の２バイト（FF FFhとFF FEh）は、それぞれ、ブロック種別を規定するデータである。この先頭の２バイトがFF FFhまたはFF FEhで始まるシステムブロック（論理アドレスFFFEhおよび論理アドレスFFFDhの２ブロック）は、システム管理者によって記憶部３１に最初に割り当てられ、システム全体を管理する鍵情報であるシステム鍵（System Key）の情報を格納している。このシステム鍵（System Key）はシステムデータ（System Data）を生成するための元になるデータである認証鍵用（System Key for Authentication）（後述する第一のデータ）とアクセス許諾チケット生成鍵用（System Key for Access Control Ticket）（後述する第三のデータ）の２つが設けられる。なお、このシステム鍵は、いずれか一方のみを設定し、その一方を用いて所定のロジックによって他方が生成されるようにしてもよいし、両者を同一としてもよい。
【００５４】
この２ブロックに含まれるキーフォーマット（Key Format）は、システム鍵（System Key）を暗号鍵として使用する場合の共通鍵暗号アルゴリズム／鍵長を規定するものであり、システム鍵（System Key）をデータとして使用する場合には適応しない。また、キーバージョン（Key Version）は、そのブロックのシステム鍵（System Key）のバージョン情報を示す。
【００５５】
先頭の２バイトが00 00hで始まるシステムブロックは、ルートディレクトリ（Root Directory）の情報を格納している。３バイト目乃至６バイト目（00 00 00 00h）は、ルートディレクトリ（Root Directory）のディレクトリコード（Directory Code）（Directoryの名前）を示している。スタートアドレス（Start Address）は、通常00 00hから始まり、エンドアドレス（End Address）は、システムブロックの１つ手前を表す。なお、このアドレスは物理アドレスではなく、論理ブロック番号に該当する。トータルブロック数（Total Block）は、スタートアドレス（Start Address）とエンドアドレス（End Address）から計算できるため必要性はないが、メモリ上は確保しておく。キーフォーマット（Key Format）は、使用される共通鍵暗号アルゴリズム／鍵長を規定するもので、他の領域に保存されている共通鍵全てに適応する。キーバージョン（Key Version）は、ルート鍵（Root Directory Symmetric Key）の鍵のバージョンを示す。
【００５６】
先頭の２バイトが00 01hで始まるシステムブロックは、下位にサブディレクトリ（Sub-Directory）を構成することが可能なディレクトリ（Directory）に関する情報を格納し、先頭の２バイトが00 02hで始まるシステムブロックは、下位にサブディレクトリ（Sub-Directory）を構成することが不可能なディレクトリ（Directory）に関する情報を格納する。これらのシステムブロックのディレクトリコード（Directory Code）は、このディレクトリ（Directory）の名前を示し、他のコード（Code）と異なっている必要がある。ただし、このコード（Code）に値「FF FF FF FFh」および「00 00 00 00h」は使用することができないようになされている。また、これらのシステムブロックのスタートアドレス（Start Address）とエンドアドレス（End Address）は、上述したルートディレクトリ（Root Directory）に関するシステムブロックの場合と同様である。２回目に出てくるディレクトリコード（Directory Code）は、親ディレクトリのディレクトリコード（Directory Code）を示す。通常は、ルートディレクトリ（Root Directory）に属するため、このディレクトリコードには「00 00 00 00h」が書き込まれるが、それより下段のディレクトリでは、親ディレクトリのディレクトリコードが記述される。また、これらのシステムブロックのキーバージョン（Key Version）は、上述したルートディレクトリ（Root Directory）に関するシステムブロックの場合と同様である。先頭の２バイトが00 01hで始まるシステムブロックのディレクトリ鍵（Directory Symmetric Key with Sub-Directory）は、下位にサブディレクトリ（Sub-Directory）を構成することが可能なディレクトリ（Directory）のディレクトリ鍵のことである。また、先頭の２バイトが00 02hで始まるシステムブロックのディレクトリ鍵（Directory Symmetric Key without Sub-Directory）は、下位にサブディレクトリ（Sub-Directory）を構成することが不可能なディレクトリ（Directory）のディレクトリ鍵のことである。
【００５７】
先頭の２バイトが00 FFhで始まるシステムブロックは、ディレクトリ（Directory）に対するアプリケーション情報（Application Information）を示している。このシステムブロックのアプリケーションID（Application ID）は、そのディレクトリ（Directory）を管理する事業者がICカード１２に割り振った識別情報（ID）を示し、アプリケーション鍵（Application Symmetric Key）は、アプリケーションID（Application ID）とマスタ鍵（Master Application Key）とから算出される鍵を示す。またディレクトリコード（Directory Code）は、このアプリケーション情報（Application Information）に対応するディレクトリコード（Directory Code）を示す。
【００５８】
先頭の２バイト（ブロック種別）が01 00h乃至FE FFhの場合、それらの値はアクセスモード（Access Mode）、すなわち、ファイル（File）へのアクセス方法を示している。このブロックのアクセスコード（Access Code）はファイル（File）の名前を示している。ただし、他のコード（Code）と値が異なっている必要がある。また、このブロックのスタートアドレス（Start Address）とエンドアドレス（End Address）は、上述したルートディレクトリ（Root Directory）に関するシステムブロックの場合と同様である。このブロックのディレクトリコード（Directory Code）は、アクセス対象のファイル（File）が所属するディレクトリ（Directory）の名前を示す。さらに、このブロックのキーバージョン（Key Version）の値が「FF FFh」以外である場合、アクセス制御のための鍵であるアクセス制御鍵（Access Control Symmetric Key）が有効である。これに対して、キーバージョン（Key Version）の値が「FF FFh」である場合、このブロックの鍵情報、すなわちアクセス制御鍵（Access Control Symmetric Key）が無効である。つまり、キーバージョン（Key Version）の値が「FF FFh」であることは、暗号処理機能を使用しないことを示す。
【００５９】
なお、先頭の２バイトが00 FEhで始まるシステムブロックを、リボケーションリスト（Revocation List）とすることができる。この時、通常は鍵が書かれている領域にリボーク（Revoke）される情報処理端末のIDを記載する。
【００６０】
次に、このようなセキュリティIC内部のデータ（記憶部３１に書き込まれるデータ）の設定方法を規定する。このデータ設定を行うデータ設定処理の流れの例を図４のフローチャートを参照して説明する。必要に応じて図５および図６を参照して説明する。
【００６１】
ステップＳ１において、データ設定処理部３２は、チップベンダ（ICカード１２を作成する製品製造メーカを含む）より指示を受けると、記憶部３１の記憶領域を初期化する。つまり、チップ製造直後、チップベンダは、ICカード１２以外のデバイス（例えば、セキュリティIC検査装置など）を用いて全てのメモリデータをFFhに初期化するようセキュリティICに要求する。その後、このセキュリティICを組み込んだICカードを製造する。
【００６２】
ステップＳ２において、データ設定処理部３２は、チップベンダの指示（特別なコマンド）に基づいて、ICカード１２の外部の装置より供給されるデバイスIDおよびパラメータを記憶部３１に書き込む。なお、デバイスIDおよびパラメータの書き込みは、記憶部３１の全てのメモリエリアがFFh（もしくは、デバイスID（Device ID）およびパラメータ（Device Parameter）の領域のみがFFh）である場合のみ可能である。なお、この時点では値の読み出し（特別なコマンド）は自由に行えるようにしておく。また、何度でも変更ができるようにしておく。さらに、変更する場合には、上記書き込みシーケンスと同様のものを用い、それによって、以前のデータは消去され、上書きされるものとする。また、もしデバイスID（Device ID）およびパラメータ（Device Parameter）の領域のみがFFhであった場合、データ設定処理部３２は、ここで他の領域をFFhに初期化する。
【００６３】
ステップＳ３において、データ設定処理部３２は、システム管理者の指示に基づいてICカード１２の外部の装置より供給されるシステム鍵を記憶部３１に書き込む。なお、システム管理者がシステム管理者固有のシステム鍵（System Key）を書き込むために、チップベンダは、出荷時に仮のシステム鍵を記憶部３１に書き込む。このシステム鍵の書き込みは、デバイスID（Device ID）とパラメータ（Device Parameter）が書き込まれていることが条件となっている。また、通常の場合、システム鍵（System Key）の書き込みは一度しか行えず、書き替えるためには所定の変更手順に従って行う必要がある。ただし、その場合も、システム鍵（System Key）を書き替えるためには、デバイスID（Device ID）、パラメータ（Device Parameter）が書き込まれていること、およびシステム鍵（System Key）領域以外のデータが初期化されている（FFｈになっている）ことが条件となる。また、この更新に使う、古いシステム鍵の暗号方式は、メモリに書き込まれているキーフォーマット（Key Format）に従う。キーフォーマット（Key Format）には、暗号アルゴリズムや鍵ビット長の他に、例えば、所定の値をExor（排他的論理和）してから暗号化する、所定回数の暗号化を繰り返す、１回だけ暗号化する等といった暗号方法が記述されている。
【００６４】
これ以降の書き込み処理が進んだ状態においては、システム鍵（System Key）の変更は一切できないようになされている。実際の書き込み方法は、外部から所定のフォーマットに従ったデータをセキュリティICに送り込み、それに基づいてシステム鍵（System Key）、システムコード（System Code）、キーフォーマット（Key Format）、およびキーバージョン（Key Version）を書き込ませる。書き込みシーケンスは、上述したデバイスIDおよびパラメータの場合と同様であるが、適宜最適な方法を設定して良い。なお、このときの送信データは暗号化されていない。
【００６５】
ステップＳ４において、データ設定処理部３２は、システム管理者の指示に基づいて、ICカード１２の外部の装置より供給されるルート鍵を記憶部３１に書き込む。なお、このルート鍵（Root Key）の書き込みは、システム鍵（System Key）が書き込まれている場合のみ可能である。これは、ルート鍵（Root Key）の初期書き込みには、システム鍵（System Key）が使用されからである。実際の書き込み方法は、ICカード１２の外部の装置から所定のフォーマットに従ったデータをICカード１２のセキュリティICに送り込み、それに基づいてルート鍵（Root Key）を書き込ませる。コマンドは上述した他のステップの場合と同じであるが、図５に示されるように、コマンドに含まれるデータ列５１は、システム鍵（System Key）で暗号化したルート鍵（Root Key）を含む。暗号化方法は、システム鍵（System Key）のキーフォーマット（Key Format）に従うものとする。なお、ルート鍵（Root Key）を更新する場合には、更新される前のルート鍵（Root Key）だけが必要となる。つまり、ルート鍵（Root Key）の更新時にはシステム鍵（System Key）は（鍵としては）使用されない。
【００６６】
ここまでの処理は、システム管理者またはチップベンダ等が指示することになっていることと、ここまで処理が進まない間は、これを組み込んだ製品そのものが動作しないことから、比較的安全なところで処理が行えることが期待できる（仮に、ルート鍵（Root Key）を未実装で製品に組み込む場合も、その後、安全な場所でルート鍵（Root Key）の書き込みを確実に行うことができるものとする）。このため、鍵の書き込みメカニズムは比較的簡易にしてある。
【００６７】
ステップＳ５において、ディレクトリを作成したい事業者は、システム管理者に依頼してディレクトリ生成チケットを作成してもらう。このディレクトリ生成チケットには、ディレクトリ情報及びアプリケーション情報を設定するのに必要なデータをルート鍵で暗号化したものと、システム鍵（System Key）を用いて生成されたICV（Integrity Check Value）が含まれている。このようになされる理由は、この時点では相互認証ができないことと、システム管理者の許諾なく、ルート直下にディレクトリを作成させないためである。なお、キーバージョン（Key Version）は00 00hとされ、ディレクトリ鍵（DirectoryKey）、アプリケーションID（Application ID）及びアプリケーション鍵（Application Key）は固定データとなる。必要に応じてステップＳ７で事業者が書き換えるものとする。
【００６８】
ステップＳ６において、サービスを提供したい事業者は、ステップＳ５でシステム管理者が生成したディレクトリ生成チケットを受領し、このディレクトリ生成チケットをデータ設定処理部３２に送ってディレクトリを仮作成する。これにより、自身のサービスを提供するためのディレクトリがＩＣカード１２に仮作成される。
【００６９】
データ設定処理部３２は、受領したディレクトリ生成チケットのＩＣＶをシステム鍵で検証し、ＩＣＶが正当か否かを判定する。正当でないと判定された場合には、ディレクトリの生成は行われない。ＩＣＶが正当と判断された場合、ディレクトリ生成チケットに書かれているディレクトリ情報及びアプリケーション情報をルート鍵で復号化し、これらのデータを記憶部３１に書き込む。
【００７０】
ステップＳ７において、サービスを提供したい事業者は、仮作成されたディレクトリの内、必要な情報（ディレクトリ鍵（DirectoryKey）、アプリケーションID（Application ID）及びアプリケーション鍵（Application Key））を書き換える処理を行う。
【００７１】
このために、まず、情報処理端末１１とICカード１２間で相互認証を行う。相互認証の方法に関しては後述する。相互認証が終了した後、情報処理端末１１からICカード１２に対し、ディレクトリ鍵（Directory Key）変更コマンドを送信する。ディレクトリ鍵（Directory Key）変更コマンドには、付随データとして、新しい鍵のキーバージョン（Key Version）と、古いディレクトリ鍵（Directory Key）で暗号化された、新しいディレクトリ鍵（Directory Key）が含まれている。これを受信したICカード１２は、変更するディレクトリのディレクトリ鍵（Directory Key）を読み出し、この鍵でコマンドに添付されてきたデータを復号化する。そして、得られた新しいディレクトリ鍵（Directory Key）で古いディレクトリ鍵（Directory Key）を書き換え、キーバージョン（Key Version）を更新する。
【００７２】
同様に、情報処理端末１１とICカード１２間で相互認証を行い、相互認証が終了した後、情報処理端末１１からICカード１２に対し、アプリケーション情報変更コマンドを送信する。アプリケーション情報変更コマンドには、付随データとして新しい鍵のキーバージョン（Key Version）、アプリケーションID（Application ID）及びアプリケーション鍵（Application Key）が含まれている。ただし、アプリケーションID（Application ID）は、情報処理端末１１で新たに割り振ることとし、このIDとアプリケーション鍵（Application Key）を生成するためのマスタ鍵とからアプリケーションID（Application ID）に対応するアプリケーション鍵（Application Key）を生成することとする。
【００７３】
次に、これを受信したICカード１２は、受信したアプリケーションID（Application ID）及びアプリケーション鍵（Application Key）を書き換え、キーバージョン（Key Version）を更新する。
【００７４】
なお、通常、この情報処理端末１１は鍵変更処理専門の端末であり、複数のICカードの鍵を変更し、これらの情報を管理している。従って、この情報処理端末１１は、アプリケーションID（Application ID）を系統的に割り振って管理することが可能である。
【００７５】
また、アプリケーション情報変更処理時に別途相互認証すると説明したが、上記ディレクトリ鍵（Directory Key）変更処理に引き続き行う場合には不要である。
【００７６】
一方、後述するように、相互認証を終了した情報処理端末１１とICカード１２は、以降の通信路をセッション鍵で暗号化して秘匿化することができ、かつメッセージを改ざん防止できるよう整合性チェックを行っている。このため、更新するための新しいディレクトリ鍵を情報処理端末１１内部に保持していても、通信路上で漏洩する心配はない。しかし、情報処理端末１１が安全に管理される保証はないため、念のため古いディレクトリ鍵で更新する新しいディレクトリ鍵を暗号化しておくこととする。一方で、新しいアプリケーション鍵は古いアプリケーション鍵で暗号化しておくことはしていない。これは、情報処理端末１１にアプリケーション鍵を生成するためのマスタ鍵が記憶されており、鍵更新時にアプリケーション鍵の生成を行っていることと（あらかじめ古いアプリケーション鍵で暗号化しておくことができない）、仮に情報処理端末１１が安全に管理されなかった場合、このマスタ鍵が漏洩することになり、そこまで対策しても効果が薄いからである。
【００７７】
また、事業者は、上位ディレクトリ（Directory）が生成されている場合、ルートディレクトリ直下でなくても、その上位ディレクトリの下に新規サブディレクトリ（Sub-Directory）を生成することができる。この時、サブディレクトリ（Sub-Directory）のディレクトリ鍵（Directory Key）とアプリケーションID（Application ID）、およびアプリケーション鍵（Application Key）も書き込まれる。実際の書き込み方法は、システム鍵（System Key）、ルート鍵（Root Key）、および上位のディレクトリのディレクトリ鍵（Directory Key）、上位のディレクトリのアプリケーション鍵（Application Key）で相互認証を行い、所定のフォーマットに従ったデータをセキュリティICに送り込んで行う。サブディレクトリのディレクトリ鍵（Sub-Directory Key）は、上位のディレクトリのディレクトリ鍵（Dirctory Key）で暗号化されているため、比較的安全である。サブディレクトリのアプリケーションID（Application ID）とアプリケーション鍵（Application Key）は、予め設定しておくことが困難であるため、事前に上位ディレクトリのディレクトリ鍵（Directory Key）で暗号化しておくことができない。そのため、セッション鍵で保護するものとする。
【００７８】
なお、本例ではサブディレクトリ生成のための所定フォーマットコマンドを使用するとしたが、必要に応じてサブディレクトリ生成のためのアクセス許諾チケットを定義し、それを用いて行うようにしても良い。ただし、アクセス許諾チケットは事前生成が前提にもかかわらず、アプリケーション鍵が事前に生成することは難しく、所定のフォーマットコマンドを使用する方法の方が容易に実現可能である。
【００７９】
所定のフォーマットコマンドを使用する場合、相互認証後、アプリケーションIDを生成し、マスタ鍵でアプリケーション鍵を生成し、上位ディレクトリの鍵で暗号化されたサブディレクトリのディレクトリ鍵とアプリケーションID、アプリケーション鍵、その他必要な情報（バージョン等）をセッション鍵で秘匿化してICカードに送るようにする。
【００８０】
これに対して、アクセスチケットを使用する場合、予めアプリケーションIDを生成しておき、それに対するアプリケーション鍵もマスタ鍵から作っておく。これら一連のデータとサブディレクトリのディレクトリ鍵を上位ディレクトリのディレクトリ鍵で暗号化し、これを包含したアクセス許諾チケットを作るようにする。ただし、アクセス許諾チケットに付けるICVを生成する鍵を何にするか、検討する必要がある。通常は、アクセス制御鍵を使うのだが、ディレクトリにはその鍵はない（ファイルに対して作られているため）。そのため、暫定的にICVも上位ディレクトリのディレクトリ鍵で生成する方法が考えられる。
【００８１】
ステップＳ８において、データ設定処理部３２は、事業者の指示に基づいて、ディレクトリ内にファイル（File）を作成する。ディレクトリが作成されていれば、事業者は、ファイルアクセス方法を規定し、それに対応するデータをファイルとして記憶部３１に書き込ませることができる。実際のファイル生成方法は、事業者が、システム鍵（System Key）、ルート鍵（Root Key）、ディレクトリ鍵（Directory Key）、およびアプリケーション鍵（Application Key）を用いて相互認証を行い、所定のフォーマットに従ったデータをセキュリティICに送り込んで行う。なお、アクセス制御鍵はディレクトリ鍵で暗号化されているため、比較的安全である。また、ディレクトリ鍵で暗号化されたアクセス制御鍵を含む、システムブロック情報（アクセスモード、アクセスコード、スタート・エンドアドレス、ディレクトリコード等）は、セッション鍵で暗号化されて送り込まれる。
【００８２】
なお、サブディレクトリの生成時と同様に、必要に応じてファイル生成のためのアクセス許諾チケットを定義し、それを用いて行うようにしても良い。
【００８３】
ステップＳ９において、データ設定処理部３２は、事業者の指示に基づいて、アクセス制御鍵を書き込む。ステップＳ８で説明したように、アクセス制御鍵（Access Control Key）は、生成されるファイルが所属するディレクトリのディレクトリ鍵（Directory Key）で暗号化しておくものとする。
【００８４】
以上のようにして、例えば、図２に示されるように、記憶部３１内に各種データが書き込まれる。
【００８５】
図１の通信システム１において、情報処理端末１１およびICカード１２は、通信を行うためにセッションを確立する。情報処理端末１１およびICカード１２は、通信開始時において、そのセッションの確立のために、お互いを認証させる相互認証処理を行う。
【００８６】
図７および図８のフローチャートを参照して、その相互認証処理の流れの例を説明する。なお、必要に応じて、図９乃至図１２を参照して説明する。また、ここでは、説明の便宜上、図２の情報処理端末１１−１−１およびICカード１２−１が相互認証処理を行う場合を例に説明する。
【００８７】
相互認証処理が開始されると、情報処理端末１１−１−１の認証処理部２３は、ステップＳ２１において、乱数生成部２５を制御して第一の乱数を生成する。
【００８８】
ステップＳ２２において、認証処理部２３は、通信部２８を制御して、第一の相互認証開始コマンドを、情報処理端末１１−１−１のID（ID１−１）、アクセスするディレクトリを示すアクセス先ディレクトリ情報、および、ステップＳ２１の処理において生成された第一の乱数とともに、ICカード１２−１に送信させる。なお、アクセス先ディレクトリ情報においては、アクセス先のディレクトリが例えばディレクトリコード（Directory Code）によって示される。もちろん、アクセス先のディレクトリを特定することができる情報であれば、ディレクトリコード（Directory Code）以外の情報を用いるようにしてもよい。なお、ここではアクセス先ディレクトリの一例として、ディレクトリ１−１とディレクトリ１−２が指定されたものとして説明する。
【００８９】
ステップＳ３１において、ICカード１２−１の通信部３８は、この第一の相互認証開始コマンド等を取得する。第一の相互認証開始コマンドを取得すると、認証処理部３３のマスタ鍵生成部４１は、ステップＳ３２において、相互認証の相手となる情報処理端末１１（この場合、情報処理端末１１−１−１）固有の鍵（この場合、鍵Ｋ１−１）を生成するための鍵情報であるマスタ鍵（この場合、マスタ鍵MK１−IT）を生成する処理を行う。マスタ鍵の生成は、第一のデータ、ルート鍵、および、アクセス先に指定されたディレクトリのディレクトリ鍵を縮退することにより生成される。
【００９０】
より具体的な例は、図９に示される。図９に示されるように、マスタ鍵生成部４１は、暗号化処理部（AES）６１乃至暗号化処理部（AES）６３の機能ブロックを有する。暗号化処理部（AES）６１は、暗号化部３６を制御し、第一のデータであるシステム鍵（ＫSystem）をルート鍵（ＫRoot）を用いてAES（Advanced Encryption Standard）方式で暗号化させ、第二のデータを生成する。暗号化処理部（AES）６２は、暗号化部３６を制御し、その第二のデータをディレクトリ１−１のディレクトリ鍵（DirK１−１）を用いてAES方式で暗号化させる。暗号化処理部（AES）６３は、暗号化部３６を制御し、暗号化処理部（AES）６２による暗号化結果をディレクトリ１−２のディレクトリ鍵（DirK１−２）を用いてAES方式で暗号化させ、マスタ鍵（MK１−IT）を生成する。なお、AESの代わりに、DES（Data Encryption Standard）等、その他の共通鍵暗号化方式を用いるようにしてもよい。
【００９１】
このマスタ鍵生成処理の詳細な流れについては、後述する。マスタ鍵が生成されると認証処理部３３は、ステップＳ３３において、暗号化部３６を制御し、情報処理端末１１−１−１のID（ID１−１）を、ステップＳ３２の処理により生成されたマスタ鍵（MK１−IT）を用いて暗号化させ、情報処理端末１１−１−１固有の鍵（Ｋ１−１）を生成する。
【００９２】
具体的な例を図１０に示す。図１０に示されるように、認証処理部３３は、暗号化処理部（AES）７１の機能ブロックを有する。暗号化処理部（AES）７１は、暗号化部３６を制御し、情報処理端末１１−１−１のID（ID１−１）をマスタ鍵（MK１−IT）を用いてAES方式で暗号化させ、情報処理端末１１−１−１固有の鍵（Ｋ１−１）を生成する。
【００９３】
なお、この場合も、AESの代わりに、DES等、その他の共通鍵暗号化方式を用いるようにしてもよい。また、本例では暗号化する例で説明したが、ステップＳ３２の処理により生成されたマスタ鍵（MK１−IT）を用いて情報処理端末１１−１−１のID（ID１−１）を復号化し、情報処理端末１１−１−１固有の鍵（Ｋ１−１）を生成しても良い。あるいは、所定の固定値を情報処理端末１１−１−１のID（ID１−１）に対してEXORするなどして演算した後、ステップＳ３２の処理により生成されたマスタ鍵（MK１−IT）を用いて暗号化させて生成するようにしても良い。このように、情報処理端末１１−１−１に保持されている固有の鍵（K1-1）が復元できさえすれば、どのような演算方法を用いてもかまわない。
【００９４】
この鍵Ｋ１−１は、情報処理端末１１−１−１固有の鍵である。図２の例において、事業者１の情報処理端末１１−１−２には、情報処理端末１１−１−１に割り当てられたID（ID１−１）と異なるID（ID１−２）が書き込まれているため、同じ情報処理端末用マスタ鍵（MK１−IT）を用いても、情報処理端末１１−１−１固有の鍵（Ｋ１−１）とは異なる情報処理端末１１−１−２固有の鍵（Ｋ１−２）が生成される。
【００９５】
ステップＳ３４において、認証処理部３３は、暗号化部３６を制御し、アクセス先に指定されたディレクトリに書き込まれたアプリケーションID（AppID１−１とAppID１−２）を情報処理端末１１−１−１固有の鍵（Ｋ１−１）で暗号化させ、第一の返信文を作成する。このとき、アプリケーションID（AppID）の使用順は、情報処理端末１１−１−１より供給されたアクセス先ディレクトリ情報に従う。なお、このときの暗号化方法は、CBC（Cipher Block Chaining）モード等の暗号利用モードを用いることとする。また、本例では暗号化することを示していたが、復号するようにしてもよい。この場合、この第一の返信文を受け取った情報処理端末１１−１−１側では、同一の鍵を用いて暗号化する必要がある。
【００９６】
第一の返信文を生成した後、認証処理部３３は、ステップＳ３５において、相互認証に利用される認証鍵（KAuth）の生成を行う。認証処理部３３は、暗号化部３６を制御し、情報処理端末１１−１−１固有の鍵（Ｋ１−１）を、アクセス先に指定されたディレクトリに書き込まれたアプリケーション鍵（AppK１−１およびAppK１−２）を用いて暗号化させて認証鍵（KAuth）を生成する。このような処理を鍵の縮退化とする。
【００９７】
具体的な例を図１１に示す。図１１に示されるように、認証処理部３３は、暗号化処理部（AES）８１および暗号化処理部（AES）８２の機能ブロックを有する。暗号化処理部（AES）８１は、暗号化部３６を制御し、情報処理端末１１−１−１固有の鍵（Ｋ１−１）を、アクセス先に指定されたディレクトリ１−１に書き込まれているアプリケーション鍵（AppK１−１）を用いてAES方式で暗号化させる。暗号化処理部（AES）８２は、暗号化部３６を制御し、暗号化処理部（AES）８１による暗号化結果を、アクセス先に指定されたディレクトリ１−２に書き込まれているアプリケーション鍵（AppK１−２）を用いてさらにAES方式で暗号化させる。この暗号化処理部（AES）８２による暗号化結果が認証鍵（KAuth）とされる。
【００９８】
なお、アプリケーション鍵（AppK）の使用順は、情報処理端末１１−１−１より供給されたアクセス先ディレクトリ情報に従う。また、この場合も、AESの代わりに、DES等、その他の共通鍵暗号化方式を用いるようにしてもよい。
【００９９】
ステップＳ３６において、認証処理部３３は、乱数生成部３５を制御して第二の乱数を生成する。ステップＳ３７において、認証処理部３３は、認証鍵（KAuth）を暗号鍵とし、暗号化部３６を制御して、この第二の乱数、情報処理端末１１−１−１から送られてきた第一の乱数、および、情報処理端末１１−１−１のID（ID１−１）を所定の暗号利用モードで暗号化し、第二の返信文を生成する。なお、第二の乱数、第一の乱数、および、情報処理端末１１−１−１のID（ID１−１）は、予め定められた所定の順序で暗号化される。
【０１００】
ここで、本例では第一の返信文は情報処理端末１１−１−１固有の鍵（Ｋ１−１）で暗号化させて生成し、第二の返信文は認証鍵（KAuth）で暗号化させて生成していたが、暗号化された第一の返信文及び暗号化前の第二の返信文を、認証鍵（KAuth）を用いて、所定の暗号利用モードで一括して暗号化するようにしても良い。更にまた、第二の返信文に情報処理端末１１−１−１のID（ID1-1）を含ませていたが、これ（情報処理端末１１−１−１のID）以外のデータを利用するようにしても良い。
【０１０１】
ステップＳ３８において、認証処理部３３は、通信部３８を制御し、相互認証開始コマンドに対するレスポンスとして、第一の返信文と第二の返信文を、情報処理端末１１−１−１に返信させる。ステップＳ３８の処理を終了すると、ICカード１２−１の認証処理部３３は、図８のステップＳ５１に処理を進める。
【０１０２】
また、情報処理端末１１−１−１の通信部２８は、ステップＳ２３においてそのレスポンス（第一の返信文と第二の返信文）を受信すると、処理を図８のステップＳ４１に進める。
【０１０３】
図８のステップＳ４１において、情報処理端末１１−１−１の認証処理部２３は、復号部２７を制御し、予め記憶部２１に記憶されている情報処理端末１１−１−１固有の鍵（Ｋ１−１）を用いて第一の返信文を、利用された暗号化方法に対応する復号方法で復号させ、アプリケーションID（AppID１−１とAppID１−２）を取り出す。ステップＳ４２において、認証処理部２３は、予め記憶部２１に記憶されているマスタ鍵（MK1−IC）を用いてアプリケーションID（AppID１−１）暗号化することによりアプリケーション鍵（AppK１−１）を生成し、さらに、マスタ鍵（MK1−IC）を用いてアプリケーションID（AppID１−２）を暗号化することによりアプリケーション鍵（AppK１−２）を生成する。
【０１０４】
具体的な例を図１２に示す。図１２に示されるように、認証処理部３３は、暗号化処理部（AES）９１の機能ブロックを有する。暗号化処理部（AES）９１は、暗号化部２６を制御し、ディレクトリ１−１のアプリケーションID（AppID１−１）を、マスタ鍵（MK1−IC）を用いてAES方式で暗号化してアプリケーション鍵（AppK１−１）を生成する。なお、図示は省略するが、この暗号化処理部（AES）９１は、アプリケーション鍵（AppK１−１）の場合と同様に、暗号化部３６を制御し、ディレクトリ１−２のアプリケーションID（AppID１−２）を、マスタ鍵（MK1−IC）を用いてAES方式で暗号化してアプリケーション鍵（AppK１−２）を生成する。
【０１０５】
なお、この場合も、AESの代わりに、DES等、その他の共通鍵暗号化方式を用いるようにしてもよい。また、例えば、ディレクトリ毎にマスタ鍵が異なる場合、各アプリケーションIDの暗号化は、それぞれのアプリケーションIDが対応するディレクトリのマスタ鍵を用いて行われるようにする。つまり、ディレクトリ１−１のアプリケーション鍵（AppK１−１）は、ディレクトリ１−１のアプリケーションID（AppID１−１）を、ディレクトリ１−１用のマスタ鍵（MK1−IC1）を用いて生成し、ディレクトリ１−２のアプリケーション鍵（AppK１−２）は、ディレクトリ１−２のアプリケーションID（AppID１−２）を、ディレクトリ１−２用のマスタ鍵（MK1−IC2）を用いて生成する、などの方法である。
【０１０６】
ステップＳ４３において、認証処理部２３は、暗号化部２６を制御して、情報処理端末１１−１−１固有の鍵（Ｋ１−１）を、ステップＳ４２で生成したアプリケーション鍵（AppK１−１およびAppK１−２を用いて暗号化させ、認証鍵（ＫAuth）を生成する。この認証鍵（ＫAuth）の生成方法は、ICカード１２において実行されるステップＳ３５の処理の場合と同様に実行される。つまり、図１１を参照して行った説明は、このステップＳ４３における認証鍵生成の説明にも適用することができる。つまり、認証処理部２３も、図１１に示されるように、暗号化処理部（AES）８１および暗号化処理部（AES）８２の機能ブロックを有し、その暗号化処理部（AES）８１は、暗号化部２６を制御し、情報処理端末１１−１−１固有の鍵（Ｋ１−１）をアプリケーション鍵（AppK１−１）を用いてAES方式で暗号化させ、暗号化処理部（AES）８２は、暗号化部２６を制御し、暗号化処理部（AES）８１による暗号化結果をアプリケーション鍵（AppK１−２）を用いてさらにAES方式で暗号化させる。この暗号化処理部（AES）８２による暗号化結果が認証鍵（KAuth）とされる。
【０１０７】
なお、アプリケーション鍵（AppK）の使用順は、アクセス先ディレクトリ情報において定義されるとおり（復号されたディレクトリID順）とする。また、この場合も、AESの代わりに、DES等、その他の共通鍵暗号化方式を用いるようにしてもよい。
【０１０８】
ステップＳ４４において、認証処理部２３は、復号部２７を制御し、ICカード１２−１より取得した第二の返信文を復号させ、第二の乱数、第一の乱数、および情報処理端末１１−１−１固有のID（ID１−１）を取り出す。
【０１０９】
ステップＳ４５において、認証処理部２３は、取り出した第一の乱数によりICカード１２−１の認証を行う。仮に、ICカード１２−１より取得した第二の返信文を復号して得られた第一の乱数が、ICカード１２−１に供給した第一の乱数と一致する（同一である）場合、ICカード１２−１においても同一の認証鍵が生成されていることになる。つまり、ICカード１２−１が、第一のデータ、ルート鍵（ＫRoot）、ディレクトリ鍵（DirK１−１およびDirK１−２）、アプリケーション鍵（AppK１−１およびAppK１−２）を保持している蓋然性が高い。従って、認証処理部２３は、相手（ICカード１２−１）を認証してもよいと判断することができる。逆に、第一の乱数が正しくない（一致しない）場合、認証処理部２３は、ICカード１２−１は不正であると判定することとなる。
【０１１０】
つまり、認証処理部２３は、第二の返信文より取り出した第一の乱数が図７のステップＳ２１において生成した第一の乱数と一致するか否かを判定することにより、ICカード１２−１を認証するか否かを判定する。そして、２つの第一の乱数の値が互いに一致した場合、認証処理部２３は、ICカード１２−１を認証する。逆に、２つの第一の乱数の値が互いに一致しなかった場合、認証処理部２３は、ICカード１２−１が不正であると判定し、相互認証処理をエラー終了する。つまり、この場合、情報処理端末１１−１−１とICカード１２−１との間の相互認証が行われないので、通信の確立に失敗する。
【０１１１】
２つの第一の乱数の値が互いに一致し、ICカード１２−１が認証されると、認証処理部２３は、ステップＳ４６において、乱数生成部２５を制御して乱数を生成させ、その乱数をセッション鍵とする。このセッション鍵は、相互認証完了後の通信路の秘匿化に使用される。
【０１１２】
ステップＳ４７において、認証処理部２３は、第一の乱数、第二の乱数、および、生成したセッション鍵を、認証鍵（ＫAuth）で暗号化する。暗号化は所定の暗号利用モードで行うこととする。なお、暗号化の順はこれに限らず任意である。
【０１１３】
ステップＳ４８において、認証処理部２３は、通信部２８を制御し、第二の相互認証コマンドを、認証鍵（ＫAuth）で暗号化された第一の乱数、第二の乱数、およびセッション鍵と共にICカード１２−１に送信させる。ICカード１２−１の通信部３８は、ステップＳ５１において、この第二の相互認証コマンドと、認証鍵（ＫAuth）で暗号化された第一の乱数、第二の乱数、およびセッション鍵を取得する。
【０１１４】
ステップＳ５２において、ICカード１２−１の認証処理部３３は、復号部３７を制御し、認証鍵（ＫAuth）を用いて認証鍵（ＫAuth）で暗号化された第一の乱数、第二の乱数、およびセッション鍵を復号させる。
【０１１５】
ステップＳ５３において、認証処理部３３は、取り出した第二の乱数により情報処理端末１１−１−１の認証を行う。仮に、情報処理端末１１−１−１より取得した第二の乱数が、図７のステップＳ３６の処理において生成された第二の乱数と一致する（同一である）場合、情報処理端末１１−１−１においても同一の認証鍵が生成されていることになる。つまり、情報処理端末１１−１−１が情報処理端末１１−１−１固有の鍵Ｋ１−１と、ICカード１２−１用のマスタ鍵（MK１−IC）を保持している蓋然性が高い。従って、認証処理部３３は、相手（情報処理端末１１−１−１）を認証してもよいと判断することができる。逆に、第二の乱数が正しくない（一致しない）場合、認証処理部３３は、情報処理端末１１−１−１が不正であると判定することとなる。
【０１１６】
つまり、認証処理部３３は、第二の相互認証コマンドともに供給された第二の乱数が、図７のステップＳ３６において生成した第二の乱数と一致するか否かを判定することにより、情報処理端末１１−１−１を認証するか否かを判定する。そして、２つの第二の乱数の値が互いに一致した場合、認証処理部３３は、情報処理端末１１−１−１を認証する。逆に、２つの第二の乱数の値が互いに一致しなかった場合、認証処理部３３は、情報処理端末１１−１−１が不正であると判定し、相互認証処理をエラー終了する。つまり、この場合、情報処理端末１１−１−１とICカード１２−１との間の相互認証が行われないので、通信の確立に失敗する。
【０１１７】
２つの第二の乱数の値が互いに一致し、情報処理端末１１−１−１が認証されると、認証処理部３３は、ステップＳ５４において、通信部３８を制御し、その認証結果をレスポンスとして送信し、相互認証処理を正常終了する。
【０１１８】
ステップＳ４９において、情報処理端末１１−１−１の通信部２８は、そのレスポンス取得し、相互に認証されたことを把握し、相互認証処理を正常終了する。
【０１１９】
以上のようにして、相互に相手が認証されると、それ以降の電文は、全てセッション鍵により暗号化されて送受信される。
【０１２０】
次に、図７のステップＳ３２において実行されるマスタ鍵生成処理の詳細な流れの例を図１３のフローチャートを参照して説明する。
【０１２１】
マスタ鍵生成処理が開始されると、マスタ鍵生成部４１は、ステップＳ７１において、情報処理端末１１−１−１より供給されたアクセス先ディレクトリ情報に基づいて、マスタ鍵（MK１−IT）の生成に使用するディレクトリ鍵（DirK１−１およびDirK１−２）を取得する。ステップＳ７２において、マスタ鍵生成部４１は、アクセス先ディレクトリ情報に示される順に、マスタ鍵（MK１−IT）の生成に使用するディレクトリ鍵（DirK１−１およびDirK１−２）を整列させる。整列が完了すると、マスタ鍵生成部４１は、ステップＳ７３において、まず、第一のデータ（ＫSystem）をルート鍵（ＫRoot）で暗号化する。
【０１２２】
ステップＳ７４において、マスタ鍵生成部４１は、ステップＳ７１において取得したディレクトリ鍵（DirK）の中に未使用のディレクトリ鍵（DirK）が存在するか否かを判定し、存在すると判定した場合、ステップＳ７５に処理を進め、次の順のディレクトリ鍵を用いて前回の暗号化結果を暗号化する。暗号化が終了すると、マスタ鍵生成部４１は、処理をステップＳ７４に戻す。
【０１２３】
以上のように、マスタ鍵生成部４１は、ステップＳ７４およびステップＳ７５の処理を繰り返し、取得した全てのディレクトリ鍵を用いて暗号化を繰り返す。そして、ステップＳ７４において全てのディレクトリ鍵を使用したと判定した場合、マスタ鍵生成部４１は、マスタ鍵生成処理を終了する。
【０１２４】
つまり、マスタ鍵生成部４１は、以上のように暗号化を繰り返すことにより、第一のデータとして利用されるシステム鍵（ＫSystem）、ルート鍵（ＫRoot）、取得したディレクトリ鍵を縮退化させてマスタ鍵（MK１−IT）を生成する。
【０１２５】
なお、以上においては、情報処理端末１１−１−１とICカード１２−１の間の相互認証処理について説明したが、情報処理端末１１−１−２、情報処理端末１１−２−１、ICカード１２−２等、通信システム１の他のデバイス間の相互認証処理も同様に実行される。
【０１２６】
以上のように、ICカード１２の記憶部３１には、ディレクトリ毎にアプリケーションIDが設けられており、各IDは、それぞれが対応する正当な事業者にしか提示されないようになされている。これにより、ユーザのプライバシーを守ることができるようになる。
【０１２７】
つまり、例えばICカード固有のIDが一つしかない場合、正当な情報処理端末では（事業者によらず）全て同一IDを読み出せてしまい、そのIDをトラッキングすることでユーザの居場所を追跡できてしまうという弊害があった。
【０１２８】
しかしながら、通信システム１においては、事業者毎にユーザに（ディレクトリ内に）IDを割り振る方式とし、更に、このIDは割り振った事業者のみが知り得る鍵で暗号化して返信することとした。このため、他の事業者ではIDを復号することができなくなった。つまり、自分のお客であるユーザは認識できるが、他のお客は認識できないことになり、他のお客までを含めてトラッキングされることを防止できるようにした。
【０１２９】
また、共通鍵認証よりも強度的に優れる個別鍵認証技術を導入すると共に、複数のディレクトリにアクセスすることを想定し、アクセス先ディレクトリに応じてディレクトリ鍵等を縮退化させたマスタ鍵を用いることにより、それらを一回の認証手順で処理できるようにした。これにより、認証処理時間を大幅に減らすことができるようになった。
【０１３０】
さらに、通信システム１においては、認証処理に情報処理端末１１のIDを用いるため、仮に情報処理端末１１が解析されて不正な情報処理端末１１’が作成されたとしても、情報処理端末１１’のIDは情報処理端末１１のIDと同一になるので、ICカード１２側においてそのIDをリボーク（Revoke）用のIDとして保持させておくことにより、ICカード１２は、情報処理端末１１’によるアクセスを阻止することができる。
【０１３１】
すなわち、通信システム１（情報処理端末１１およびICカード１２）は、安全かつ迅速に相互認証処理を行うことができる。
【０１３２】
なお、情報処理端末１１とICカード１２と間の通信の、通信可能範囲の広さは任意であり、例えば、数メートル以上であってもよいし、数センチメートル以下であってもよい。また、通信方式も任意であり、無線通信ではなく有線通信としてもよい。その場合、ICカードは所謂接触型のICカードであり、情報処理端末１１とICカード１２には、ループアンテナの代わりに、互いを電気的に接続するための外部接続端子が設けられる。
【０１３３】
また、以上においては、通信システム１の装置としてICカードと情報処理端末を例にして説明したが、互いに通信可能なデバイスなら何でもよい。例えば、ICカード１２は、カード形状のデバイスでなくてもよく、例えば、切手形状のものや、５００円玉形状のものでもよい。また、例えば、ICカード機能を搭載する携帯電話機、音楽プレーヤ、デジタルカメラ、ノート型パーソナルコンピュータ、またはPDA（Personal Digital Assistants）などであってもよい。さらに、例えばデスクトップ型のパーソナルコンピュータのように、携帯型デバイスでなくてもよい。また、ICカード１２は、ユーザ（人）が携帯するものであってもよいし、機器等に組み込まれ、その機器の移動処理などに活用するものであってもよい。
【０１３４】
同様に、情報処理端末１１も、上述した機能を有し、ICカード１２と通信可能なものであればどのようなデバイスであってもよい。例えば、自動改札機、自動販売機、施錠ドア等に組み込まれているリーダ・ライタ等であってもよいし、ノート型パーソナルコンピュータ、PDA、デスクトップ型のパーソナルコンピュータ等に組み込まれたカードアクセスポートや、USB（Universal Serial Bus）接続された簡易リーダ・ライタなどの他に、リーダ・ライタ機能を搭載した携帯電話機等でもよい。
【０１３５】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図１４に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
【０１３６】
図１４において、パーソナルコンピュータ１００のCPU１０１は、ROM（Read Only Memory）１０２に記憶されているプログラム、または記憶部１１３からRAM（Random Access Memory）１０３にロードされたプログラムに従って各種の処理を実行する。RAM１０３にはまた、CPU１０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１３７】
CPU１０１、ROM１０２、およびRAM１０３は、バス１０４を介して相互に接続されている。このバス１０４にはまた、入出力インタフェース１１０も接続されている。
【０１３８】
入出力インタフェース１１０には、キーボード、マウスなどよりなる入力部１１１、CRT（Cathode Ray Tube）やLCD（Liquid Crystal Display）などよりなるディスプレイ、並びにスピーカなどよりなる出力部１１２、ハードディスクなどより構成される記憶部１１３、モデムなどより構成される通信部１１４が接続されている。通信部１１４は、インターネットを含むネットワークを介しての通信処理を行う。
【０１３９】
入出力インタフェース１１０にはまた、必要に応じてドライブ１１５が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア１２１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部１１３にインストールされる。
【０１４０】
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【０１４１】
この記録媒体は、例えば、図１４に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disc - Read Only Memory）,DVD（Digital Versatile Disc）を含む）、光磁気ディスク（MD（Mini Disc）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア１２１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM１０２や、記憶部１１３に含まれるハードディスクなどで構成される。
【０１４２】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１４３】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表わすものである。
【０１４４】
なお、以上において、一つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて一つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１４５】
【図１】本発明を適用した通信システムの主な構成例を示すブロック図である。
【図２】各デバイスが保持する情報の例を示す図である。
【図３】ICカードの記憶部の記憶領域の構成例を説明する模式図である。
【図４】データ設定処理の流れの例を説明するフローチャートである。
【図５】データ列の構成例を示す図である。
【図６】データ列の構成例を示す図である。
【図７】相互認証処理の流れの例を説明するフローチャートである。
【図８】相互認証処理の流れの例を説明する、図７に続くフローチャートである。
【図９】認証処理部の詳細な構成例を説明する機能ブロック図である。
【図１０】認証処理部の詳細な構成例を説明する機能ブロック図である。
【図１１】認証処理部の詳細な構成例を説明する機能ブロック図である。
【図１２】認証処理部の詳細な構成例を説明する機能ブロック図である。
【図１３】マスタ鍵生成処理の流れの例を説明するフローチャートである。
【図１４】本発明を適用したパーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【０１４６】
１  通信システム，  １１  情報処理端末，  １２  ICカード，  ２１  記憶部，  ２３  認証処理部，  ２５  乱数生成部，  ２６  暗号化部，  ２７  復号部，  ２８  通信部，  ３１  記憶部，  ３２  データ設定処理部，  ３３  認証処理部，  ３５  乱数生成部，  ３６  暗号化部，  ３７  復号部，  ３８  通信部，  ４１  マスタ鍵生成部
【図１】
2009100394.tif 000003
【図２】
2009100394.tif 000004
【図３】
2009100394.tif 000005
【図４】
2009100394.tif 000006
【図５】
2009100394.tif 000007
【図６】
2009100394.tif 000008
【図７】
2009100394.tif 000009
【図８】
2009100394.tif 000010
【図９】
2009100394.tif 000011
【図１０】
2009100394.tif 000012
【図１１】
2009100394.tif 000013
【図１２】
2009100394.tif 000014
【図１３】
2009100394.tif 000015
【図１４】
2009100394.tif 000016