(57)【要約】【課題】通信する機器の情報セキュリティを向上させることができるようにする。【解決手段】  乱数RanAとアクセス対象リストを含むパケット１を受信した機器Bは、アクセス対象リストに基づいてアクセス対象チェック処理を行い、アクセスするデータの組合せが予め設定された組合せ設定情報に合致するか否かを判定し、組合せ設定情報に合致すると判定された場合、アクセス対象リストに記述されたデータ、またはエリアに対応付けられた定義ブロックに記述される鍵を用いて、所定の情報を暗号化し、機器Ａと機器Ｂの相互認証のための共有鍵を生成する共有鍵生成処理を実行する。機器Ｂは、乱数RanAを共有鍵で暗号化して、認証用データ１を生成し、乱数RanBとともに機器Aに送信し、機器Aは、認証用データ１を共有鍵で復号することにより機器Bの認証を行う。本発明は、非接触型ＩＣカードに適用することができる。【選択図】図２０
2006101213.tif 000002
【特許請求の範囲】
【請求項１】
有線または無線により、他の情報処理装置と通信を行う情報処理装置であって、
前記他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケットを受信する受信手段と、
前記第１のパケットに含まれる前記アクセス対象リストに基づいて、前記他の情報処理装置との通信を継続するか否か判定する継続判定手段と、
前記継続判定手段により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵を生成する鍵生成手段と、
前記鍵生成手段により生成された前記暗号鍵を用いて、前記第１のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第１の認証用データを生成する認証用データ生成手段と、
前記認証用データ生成手段により生成された前記第１の認証用データ、および自分が発生した乱数を含む第２のパケットを、前記他の情報処理装置に送信する送信手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記他の情報処理装置との通信において、アクセスを許可するデータの組合せを表す組合せ設定情報をさらに記憶する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記アクセス対象リストに記述されたデータの組合せが、前記組合せ設定情報の組み合わせと合致するか否かを判定する組合せ判定手段をさらに備え、
前記継続判定手段は、前記組合せ判定手段の判定結果に基づいて、前記他の情報処理装置との通信を継続するか否か判定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
記憶するデータには、
前記データの全体に関する制御情報である全体制御情報と、
それぞれの前記データに関する制御情報である個別制御情報が付加され、
前記全体制御情報および個別制御情報には、データを暗号化するとき用いられる鍵の情報が含まれる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記鍵生成手段は、前記アクセス対象リストに記述されたそれぞれの前記データに関する前記個別制御情報に含まれる鍵の情報に基づいて、前記全体制御情報のうちの予め設定された部分を暗号化することにより、前記暗号鍵を生成する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記鍵生成手段により生成される暗号鍵と同じ暗号鍵が、前記他の情報処理装置により生成される
ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記認証用データ生成手段により生成される前記第１の認証用データは、
前記他の情報処理装置により、前記暗号鍵を用いて復号され、復号された前記第１の認証用データの値と、前記他の情報処理装置が発生した乱数の値とが比較されることにより、前記他の情報処理装置に自分が認証されるためのデータである
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記他の情報処理装置が、前記第２のパケットに含まれる乱数を、前記暗号鍵を用いて暗号化することにより生成される第２の認証用データを取得する取得手段をさらに備える
ことを特徴とする請求項６に記載の情報処理装置。
【請求項９】
前記第２の認証用データを、前記暗号鍵を用いて復号し、復号された前記第２の認証用データの値と、自分が発生した乱数の値とを比較することにより、前記他の情報処理装置を認証する
ことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
他の情報処理装置により前記組合せ設定情報が変更される場合、
前記組合せ設定情報の変更に先立って、前記他の情報処理装置を認証する
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記組合せ設定情報の変更に先立って、前記他の情報処理装置を認証する場合、
前記鍵生成手段は、前記全体制御情報に含まれる鍵の情報に基づいて、前記全体制御情報のうちの予め設定された部分を暗号化することにより、前記暗号鍵を生成する
ことを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
有線または無線により、他の情報処理装置と通信を行う情報処理装置の情報処理方法であって、
前記他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケットを受信する受信ステップと、
前記第１のパケットに含まれる前記アクセス対象リストに基づいて、前記他の情報処理装置との通信を継続するか否か判定する継続判定ステップと、
前記継続判定ステップの処理により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵を生成する鍵生成ステップと、
前記鍵生成ステップの処理により生成された前記暗号鍵を用いて、前記第１のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第１の認証用データを生成する認証用データ生成ステップと、
前記認証用データ生成ステップの処理により生成された前記第１の認証用データ、および自分が発生した乱数を含む第２のパケットを、前記他の情報処理装置に送信する送信ステップと
を含むことを特徴とする情報処理方法。
【請求項１３】
有線または無線により、他の情報処理装置と通信を行う情報処理装置のプログラムであって、
前記他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケットの受信を制御する受信制御ステップと、
前記第１のパケットに含まれる前記アクセス対象リストに基づいて、前記他の情報処理装置との通信を継続するか否かの判定を制御する継続判定制御ステップと、
前記継続判定制御ステップの処理により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵の生成を制御する鍵生成制御ステップと、
前記鍵生成制御ステップの処理により生成された前記暗号鍵を用いて、前記第１のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第１の認証用データの生成を制御する認証用データ生成制御ステップと、
前記認証用データ生成制御ステップの処理により生成された前記第１の認証用データ、および自分が発生した乱数を含む第２のパケットの、前記他の情報処理装置への送信を制御する送信制御ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項１４】
有線または無線により、他の情報処理装置と通信を行う情報処理装置のプログラムが記録されている記録媒体であって、
前記他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケットの受信を制御する受信制御ステップと、
前記第１のパケットに含まれる前記アクセス対象リストに基づいて、前記他の情報処理装置との通信を継続するか否かの判定を制御する継続判定制御ステップと、
前記継続判定制御ステップの処理により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵の生成を制御する鍵生成制御ステップと、
前記鍵生成制御ステップの処理により生成された前記暗号鍵を用いて、前記第１のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第１の認証用データの生成を制御する認証用データ生成制御ステップと、
前記認証用データ生成制御ステップの処理により生成された前記第１の認証用データ、および自分が発生した乱数を含む第２のパケットの、前記他の情報処理装置への送信を制御する送信制御ステップと
をコンピュータに実行させるプログラムが記録されていることを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、プログラム並びに記録媒体に関し、特に、通信する通信する機器の情報セキュリティを向上させることができるようにする情報処理装置および方法、プログラム並びに記録媒体に関する。
【背景技術】
【０００２】
ＩＣカードを用いた各種のトランザクション処理などを行う場合、セキュリティを強化するため、トランザクション処理の実行に先立って、ＩＣカードとリーダライタとが相互に認証（相互認証）を行うことが一般的である。
【０００３】
従来の相互認証は、リーダライタがＩＣカードを認証する場合、リーダライタが、乱数Ａを発生し、乱数ＡをＩＣカードに送信する。ＩＣカードは、乱数Ａを、鍵１を用いて所定の暗号アルゴリズムで暗号化し、さらに、鍵２を用いて同じ暗号アルゴリズムで暗号化し、認証用データ１を生成し、認証用データ１をリーダライタに送信する。ここで、鍵１と鍵２は、予めリーダライタとＩＣカードとにより共有されており、暗号アルゴリズムも予めリーダライタとＩＣカードとにより同じ暗号アルゴリズムが実装されている。
【０００４】
次に、リーダライタは、認証用データ１を受信し、鍵２を用いて上述した暗号アルゴリズムに則って復号し、さらに鍵１を用いて同じ暗号アルゴリズムに則って復号する。この処理の結果、乱数Ａが得られれば、リーダライタはＩＣカードを（正当なＩＣカードとして）認証する。
【０００５】
一方、ＩＣカードがリーダライタを認証する場合、ＩＣカードが、乱数Ｂを発生し、乱数Ｂをリーダライタに送信する。リーダライタは、乱数Ｂを、鍵１を用いて所定の暗号アルゴリズムで暗号化し、さらに、鍵２を用いて同じ暗号アルゴリズムで暗号化し、認証用データ２を生成し、認証用データ２をＩＣカードに送信する。
【０００６】
次に、ＩＣカードは、認証用データ２を受信し、鍵２を用いて上述した暗号アルゴリズムに則って復号し、さらに鍵１を用いて同じ暗号アルゴリズムに則って復号する。この処理の結果、乱数Ｂが得られれば、ＩＣカードはリーダライタを（正当なリーダライタとして）認証する。
【０００７】
また、ICカードの情報セキュリティを強化するために、ICカード内でアクセスされるデータの種類などに応じて複数の相互認証用の鍵が設定されることもある。このような場合において、相互認証の確実性を高め、迅速に認証を行うために、予めリーダライタとＩＣカードとにより共有されている鍵（鍵１と鍵２）を利用する代わりに、アクセスされるデータの種類などに応じて定まる鍵を利用して相互認証用の鍵を生成する方法も提案されている（例えば、特許文献１参照）。
【０００８】
すなわち、相互認証用の鍵を、例えば、トランザクションでアクセスするデータがデータＤ１乃至Ｄ５である場合、リーダライタまたはＩＣカードは、データD１に対応付けられた鍵をデータＤ２に対応付けられた鍵を用いて暗号化し、それをさらに、データD３乃至D５に対応付けられた鍵より順次暗号化し、相互認証用の暗号鍵を生成する。
【０００９】
【特許文献１】特開平１０−３２７１４２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、例えば、ＩＣカード内のデータに対して不正なアクセスを試みる第３者は、ＩＣカード内の特定のデータに集中してアクセスすることが多いと考えられる。例えば、電子マネーの残高などが記述される重要なデータは、そのデータを改竄または盗み見ることによって得られる利益が大きく、ＩＣカード内のデータに対して不正なアクセスを試みる第３者に攻撃される可能性が高い。従来の技術では、特定のデータに対して執拗に不正なアクセスを試みられた場合、鍵が解読されてしまう恐れがあった。
【００１１】
本発明はこのような状況に鑑みてなされたものであり、通信する機器の情報セキュリティを向上させることができるようにするものである。
【課題を解決するための手段】
【００１２】
本発明の情報処理装置は、有線または無線により、他の情報処理装置と通信を行う情報処理装置であって、他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケットを受信する受信手段と、第１のパケットに含まれるアクセス対象リストに基づいて、他の情報処理装置との通信を継続するか否か判定する継続判定手段と、継続判定手段により、他の情報処理装置との通信を継続すると判定された場合、アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵を生成する鍵生成手段と、鍵生成手段により生成された暗号鍵を用いて、第１のパケットに含まれる乱数を暗号化し、他の情報処理装置により自分が認証されるためのデータである第１の認証用データを生成する認証用データ生成手段と、認証用データ生成手段により生成された第１の認証用データ、および自分が発生した乱数を含む第２のパケットを、他の情報処理装置に送信する送信手段とを備えることを特徴とする。
【００１３】
前記他の情報処理装置との通信において、アクセスを許可するデータの組合せを表す組合せ設定情報をさらに記憶するようにすることができる。
【００１４】
前記アクセス対象リストに記述されたデータの組合せが、組合せ設定情報の組み合わせと合致するか否かを判定する組合せ判定手段をさらに備え、継続判定手段は、組合せ判定手段の判定結果に基づいて、他の情報処理装置との通信を継続するか否か判定するようにすることができる。
【００１５】
記憶するデータには、データの全体に関する制御情報である全体制御情報と、それぞれのデータに関する制御情報である個別制御情報が付加され、全体制御情報および個別制御情報には、データを暗号化するとき用いられる鍵の情報が含まれるようにすることができる。
【００１６】
前記鍵生成手段は、アクセス対象リストに記述されたそれぞれのデータに関する個別制御情報に含まれる鍵の情報に基づいて、全体制御情報のうちの予め設定された部分を暗号化することにより、暗号鍵を生成するようにすることができる。
【００１７】
前記鍵生成手段により生成される暗号鍵と同じ暗号鍵が、他の情報処理装置により生成されるようにすることができる。
【００１８】
前記認証用データ生成手段により生成される第１の認証用データは、他の情報処理装置により、暗号鍵を用いて復号され、復号された第１の認証用データの値と、他の情報処理装置が発生した乱数の値とが比較されることにより、他の情報処理装置に自分が認証されるためのデータであるようにすることができる。
【００１９】
前記他の情報処理装置が、第２のパケットに含まれる乱数を、暗号鍵を用いて暗号化することにより生成される第２の認証用データを取得する取得手段をさらに備えるようにすることができる。
【００２０】
前記第２の認証用データを、前記暗号鍵を用いて復号し、復号された前記第２の認証用データの値と、自分が発生した乱数の値とを比較することにより、前記他の情報処理装置を認証するようにすることができる。
【００２１】
他の情報処理装置により組合せ設定情報が変更される場合、組合せ設定情報の変更に先立って、他の情報処理装置を認証するようにすることができる。
【００２２】
前記組合せ設定情報の変更に先立って、他の情報処理装置を認証する場合、鍵生成手段は、全体制御情報に含まれる鍵の情報に基づいて、全体制御情報のうちの予め設定された部分を暗号化することにより、暗号鍵を生成するようにすることができる。
【００２３】
本発明の情報処理方法は、有線または無線により、他の情報処理装置と通信を行う情報処理装置の情報処理方法であって、他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケットを受信する受信ステップと、第１のパケットに含まれるアクセス対象リストに基づいて、他の情報処理装置との通信を継続するか否か判定する継続判定ステップと、継続判定ステップの処理により、他の情報処理装置との通信を継続すると判定された場合、アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵を生成する鍵生成ステップと、鍵生成ステップの処理により生成された暗号鍵を用いて、第１のパケットに含まれる乱数を暗号化し、他の情報処理装置により自分が認証されるためのデータである第１の認証用データを生成する認証用データ生成ステップと、認証用データ生成ステップの処理により生成された第１の認証用データ、および自分が発生した乱数を含む第２のパケットを、他の情報処理装置に送信する送信ステップとを含むことを特徴とする。
【００２４】
本発明のプログラムは、有線または無線により、他の情報処理装置と通信を行う情報処理装置のプログラムであって、他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケットの受信を制御する受信制御ステップと、第１のパケットに含まれるアクセス対象リストに基づいて、他の情報処理装置との通信を継続するか否かの判定を制御する継続判定制御ステップと、継続判定制御ステップの処理により、他の情報処理装置との通信を継続すると判定された場合、アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵の生成を制御する鍵生成制御ステップと、鍵生成制御ステップの処理により生成された暗号鍵を用いて、第１のパケットに含まれる乱数を暗号化し、他の情報処理装置により自分が認証されるためのデータである第１の認証用データの生成を制御する認証用データ生成制御ステップと、認証用データ生成制御ステップの処理により生成された第１の認証用データ、および自分が発生した乱数を含む第２のパケットの、他の情報処理装置への送信を制御する送信制御ステップとをコンピュータに実行させることを特徴とする。
【００２５】
本発明の記録媒体は、有線または無線により、他の情報処理装置と通信を行う情報処理装置のプログラムが記録されている記録媒体であって、他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケットの受信を制御する受信制御ステップと、第１のパケットに含まれるアクセス対象リストに基づいて、他の情報処理装置との通信を継続するか否かの判定を制御する継続判定制御ステップと、継続判定制御ステップの処理により、他の情報処理装置との通信を継続すると判定された場合、アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵の生成を制御する鍵生成制御ステップと、鍵生成制御ステップの処理により生成された暗号鍵を用いて、第１のパケットに含まれる乱数を暗号化し、他の情報処理装置により自分が認証されるためのデータである第１の認証用データの生成を制御する認証用データ生成制御ステップと、認証用データ生成制御ステップの処理により生成された第１の認証用データ、および自分が発生した乱数を含む第２のパケットの、他の情報処理装置への送信を制御する送信制御ステップとをコンピュータに実行させるプログラムが記録されていることを特徴とする。
【００２６】
本発明の情報処理装置および方法、並びにプログラムにおいては、他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケットが受信され、第１のパケットに含まれるアクセス対象リストに基づいて、他の情報処理装置との通信を継続するか否かが判定され、他の情報処理装置との通信を継続すると判定された場合、アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵が生成され、生成された暗号鍵を用いて、第１のパケットに含まれる乱数が暗号化され、他の情報処理装置により自分が認証されるためのデータである第１の認証用データが生成され、第１の認証用データ、および自分が発生した乱数を含む第２のパケットが、他の情報処理装置に送信される。
【発明の効果】
【００２７】
本発明によれば、通信する機器の情報セキュリティを向上させることができる。
【発明を実施するための最良の形態】
【００２８】
以下に本発明の実施の形態を説明するが、本明細書に記載した発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が明細書に記載されていることを確認するためのものである。従って、明細書には記載されているが、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００２９】
さらに、この記載は、明細書に記載されている発明が、全て請求されていることを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出願、または追加される発明の存在を否定するものではない。
【００３０】
請求項１に記載の情報処理装置は、有線または無線により、他の情報処理装置（例えば、図６の機器Ａ）と通信を行う情報処理装置（例えば、図６の機器B）であって、前記他の情報処理装置が発生する乱数（例えば、乱数RanＡ）、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケット（例えば、図２１のパケット１）を受信する受信手段（例えば、図２０のステップＳ１３３の処理を実行する図１９のデータ受信部４１６）と、前記第１のパケットに含まれる前記アクセス対象リスト（例えば、図２１のフィールド５０３）に基づいて、前記他の情報処理装置との通信を継続するか否か判定する継続判定手段（例えば、図２０のステップS１３５の処理を実行する図１９のアクセス対象管理部４１９）と、前記継続判定手段により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報（例えば、図１２のエリア定義ブロックの鍵、または図１３のデータ定義ブロックの鍵）に基づいて、暗号鍵を生成する鍵生成手段（例えば、図２０のステップS１３６の処理を実行する図１９の共有鍵生成部４１５）と、前記鍵生成手段により生成された前記暗号鍵を用いて、前記第１のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第１の認証用データ（例えば、認証用データ１）を生成する認証用データ生成手段（例えば、図２０のステップS１３７の処理を実行する図１９の認証データ生成部４１８）と、前記認証用データ生成手段により生成された前記第１の認証用データ、および自分が発生した乱数（例えば、乱数RanB）を含む第２のパケット（例えば、図２５のパケット２）を、前記他の情報処理装置に送信する送信手段（例えば、図２０のステップS１３９の処理を実行する図１９のデータ送信部４１７）とを備える。
【００３１】
請求項２に記載の情報処理装置は、前記他の情報処理装置との通信において、アクセスを許可するデータの組合せを表す組合せ設定情報（例えば、図１１の組合せ設定情報定義ブロックのエリアＩＤとデータＩＤの組合せ）をさらに記憶するようにすることができる。
【００３２】
請求項３に記載の情報処理装置は、前記アクセス対象リストに記述されたデータの組合せが、前記組合せ設定情報（例えば、図１７の組合せ設定情報定義ブロックの内容）の組み合わせと合致するか否かを判定する組合せ判定手段（例えば、図２０のステップS１３４の処理を実行する図１９のアクセス対象管理部４１９）をさらに備え、前記継続判定手段は、前記組合せ判定手段の判定結果に基づいて、前記他の情報処理装置との通信を継続するか否か判定するようにすることができる。
【００３３】
請求項４に記載の情報処理装置は、記憶するデータには、前記データの全体に関する制御情報である全体制御情報（例えば、図１０のマスタ定義ブロック）と、それぞれの前記データに関する制御情報である個別制御情報（例えば、図１２のエリア定義ブロック、または図１３のデータ定義ブロック）が付加され、前記全体制御情報および個別制御情報には、データを暗号化するとき用いられる鍵の情報が含まれるようにすることができる。
【００３４】
請求項５に記載の情報処理装置は、前記鍵生成手段が、前記アクセス対象リストに記述されたそれぞれの前記データに関する前記個別制御情報に含まれる鍵の情報に基づいて、前記全体制御情報のうちの予め設定された部分（例えば、図１０のマスタ定義ブロックの相互認証用の鍵）を暗号化することにより、前記暗号鍵を生成するようにすることができる。
【００３５】
請求項６に記載の情報処理装置は、前記鍵生成手段により生成される暗号鍵と同じ暗号鍵が、前記他の情報処理装置により生成される（例えば、図２０のステップS１０８の処理により生成される）ようにすることができる。
【００３６】
請求項７に記載の情報処理装置は、前記認証用データ生成手段により生成される前記第１の認証用データが、前記他の情報処理装置により、前記暗号鍵を用いて復号され、復号された前記第１の認証用データの値と、前記他の情報処理装置が発生した乱数の値とが比較されることにより、前記他の情報処理装置に自分が認証される（例えば、図２０のステップS１０９の処理により認証される）ためのデータであるようにすることができる。
【００３７】
請求項８に記載の情報処理装置は、前記他の情報処理装置が、前記第２のパケットに含まれる乱数を、前記暗号鍵を用いて暗号化することにより生成される第２の認証用データを取得する取得手段（例えば、図２０のステップS１４１の処理を実行する図１９のデータ受信部４１６）をさらに備えるようにすることができる。
【００３８】
請求項９に記載の情報処理装置は、前記第２の認証用データを、前記暗号鍵を用いて復号し、復号された前記第２の認証用データの値と、自分が発生した乱数の値とを比較することにより、前記他の情報処理装置を認証する（例えば、図２０のステップS１４２の処理により認証する）ようにすることができる。
【００３９】
請求項１０に記載の情報処理装置は、他の情報処理装置（例えば、機器Ｃ）により前記組合せ設定情報が変更される場合、前記組合せ設定情報の変更に先立って、前記他の情報処理装置を認証する（例えば、図３０のステップＳ４４０の処理により認証する）ようにすることができる。
【００４０】
請求項１１に記載の情報処理装置は、前記組合せ設定情報の変更に先立って、前記他の情報処理装置を認証する場合、前記鍵生成手段は、前記全体制御情報に含まれる鍵の情報（例えば、図１０のマスタ定義ブロックの組合せ設定用の鍵）に基づいて、前記全体制御情報のうちの予め設定された部分（例えば、図１０のマスタ定義ブロックの相互認証用の鍵）を暗号化することにより、前記暗号鍵を生成する（例えば、図３０のステップＳ４３４の処理により生成する）ようにすることができる。
【００４１】
請求項１２に記載の情報処理方法は、有線または無線により、他の情報処理装置（例えば、図６の機器Ａ）と通信を行う情報処理装置（例えば、図６の機器B）の情報処理方法であって、前記他の情報処理装置が発生する乱数（例えば、乱数RanＡ）、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケット（例えば、図２１のパケット１）を受信する受信ステップ（例えば、図２０のステップＳ１３３の処理）と、前記第１のパケットに含まれる前記アクセス対象リスト（例えば、図２１のフィールド５０３）に基づいて、前記他の情報処理装置との通信を継続するか否か判定する継続判定ステップ（例えば、図２０のステップS１３５の処理）と、前記継続判定ステップの処理により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報（例えば、図１２のエリア定義ブロックの鍵、または図１３のデータ定義ブロックの鍵）に基づいて、暗号鍵を生成する鍵生成ステップ（例えば、図２０のステップS１３６の処理を実行する図１９の共有鍵生成部４１５）と、前記鍵生成ステップの処理により生成された前記暗号鍵を用いて、前記第１のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第１の認証用データ（例えば、認証用データ１）を生成する認証用データ生成ステップ（例えば、図２０のステップS１３７の処理）と、前記認証用データ生成ステップの処理により生成された前記第１の認証用データ、および自分が発生した乱数（例えば、乱数RanB）を含む第２のパケット（例えば、図２５のパケット２）を、前記他の情報処理装置に送信する送信ステップ（例えば、図２０のステップS１３９の処理）とを含む。
【００４２】
請求項１３に記載のプログラムは、有線または無線により、他の情報処理装置（例えば、図６の機器Ａ）と通信を行う情報処理装置（例えば、図６の機器B）のプログラムであって、前記他の情報処理装置が発生する乱数（例えば、乱数RanＡ）、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケット（例えば、図２１のパケット１）の受信を制御する受信制御ステップ（例えば、図２０のステップＳ１３３の処理）と、前記第１のパケットに含まれる前記アクセス対象リスト（例えば、図２１のフィールド５０３）に基づいて、前記他の情報処理装置との通信を継続するか否かの判定を制御する継続判定制御ステップ（例えば、図２０のステップS１３５の処理）と、前記継続判定制御ステップの処理により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報（例えば、図１２のエリア定義ブロックの鍵、または図１３のデータ定義ブロックの鍵）に基づいて、暗号鍵の生成を制御する鍵生成制御ステップ（例えば、図２０のステップS１３６の処理を実行する図１９の共有鍵生成部４１５）と、前記鍵生成制御ステップの処理により生成された前記暗号鍵を用いて、前記第１のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第１の認証用データ（例えば、認証用データ１）の生成を制御する認証用データ生成制御ステップ（例えば、図２０のステップS１３７の処理）と、前記認証用データ生成制御ステップの処理により生成された前記第１の認証用データ、および自分が発生した乱数（例えば、乱数RanB）を含む第２のパケット（例えば、図２５のパケット２）の、前記他の情報処理装置への送信を制御する送信制御ステップ（例えば、図２０のステップS１３９の処理）とをコンピュータに実行させる。
【００４３】
請求項１４に記載の記録媒体は、有線または無線により、他の情報処理装置（例えば、図６の機器Ａ）と通信を行う情報処理装置（例えば、図６の機器B）のプログラムが記録されている記録媒体であって、前記他の情報処理装置が発生する乱数（例えば、乱数RanＡ）、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第１のパケット（例えば、図２１のパケット１）の受信を制御する受信制御ステップ（例えば、図２０のステップＳ１３３の処理）と、前記第１のパケットに含まれる前記アクセス対象リスト（例えば、図２１のフィールド５０３）に基づいて、前記他の情報処理装置との通信を継続するか否かの判定を制御する継続判定制御ステップ（例えば、図２０のステップS１３５の処理）と、前記継続判定制御ステップの処理により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報（例えば、図１２のエリア定義ブロックの鍵、または図１３のデータ定義ブロックの鍵）に基づいて、暗号鍵の生成を制御する鍵生成制御ステップ（例えば、図２０のステップS１３６の処理を実行する図１９の共有鍵生成部４１５）と、前記鍵生成制御ステップの処理により生成された前記暗号鍵を用いて、前記第１のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第１の認証用データ（例えば、認証用データ１）の生成を制御する認証用データ生成制御ステップ（例えば、図２０のステップS１３７の処理）と、前記認証用データ生成制御ステップの処理により生成された前記第１の認証用データ、および自分が発生した乱数（例えば、乱数RanB）を含む第２のパケット（例えば、図２５のパケット２）の、前記他の情報処理装置への送信を制御する送信制御ステップ（例えば、図２０のステップS１３９の処理）とをコンピュータに実行させるプログラムが記録されている。
【００４４】
以下、図面を参照して、本発明の実施の形態について説明する。図１は、本発明に係る情報通信システムにおける処理の流れを説明するアローチャートである。この例では、例えば、パーソナルコンピュータとサーバなどにより構成される、情報処理装置Ａと情報処理装置Ｂとが互いに通信を行い、情報処理装置Ａが情報処理装置Ｂのデータ（ファイルなど）に対してアクセスするものとする。
【００４５】
この場合、図１に示されるように、ステップＳ１において、ステップＳ１において、情報処理装置Ａは、情報処理装置Ｂに対して接続要求を送信し、ステップＳ２１において、情報処理装置Ｂによりこれが受信される。ステップＳ２２において情報処理装置Ｂは、ステップＳ２１で受信した接続要求に対する応答を情報処理装置Ａに対して送信し、ステップＳ２において、情報処理装置Ａによりこれが受信される。
【００４６】
ステップＳ３において、情報処理装置Ａは、情報処理装置Ｂのデータであって、アクセスするデータの一覧であるアクセス対象リストを認証チャレンジとともに送信する。認証チャレンジは、例えば、情報処理装置Ａが情報処理装置Ｂを認証するために生成する乱数などに基づいて生成されるデータとする。
【００４７】
図２は、情報処理装置Ｂの内部に記憶されているデータの例を示す図である。この例では、情報処理装置Ｂに、フォルダ１とフォルダ２があり、フォルダ１の配下のデータとしてファイル１１乃至ファイル１３が記憶されており、フォルダ２の配下のデータとしてファイル２１とファイル２２が記憶されている。
【００４８】
また、各フォルダとファイルには、図３に示されるように、そのフォルダまたはファイルにアクセスするために必要となる鍵（所定の暗号アルゴリズムで利用される暗号鍵）が設定されている。この例では、フォルダ１に対して鍵１が設定されており、ファイル１１乃至ファイル１３に対して鍵１１乃至鍵１３が、それぞれ設定されている。また、フォルダ２に対して鍵２が設定されており、ファイル２１とファイル２２に対して鍵２１と鍵２２が、それぞれ設定されている。これら、各ファイルとフォルダに対応付けられた鍵の情報が、情報処理装置Ａと情報処理装置Ｂとで共有されており、例えば、フォルダ１のファイル１１にアクセスする場合、必要となる鍵は、鍵１と鍵１１となることは、情報処理装置Ｂと同様に、情報処理装置Ａにおいても認識されているものとする。
【００４９】
また、情報処理装置Ｂにおいては、情報処理装置Ｂの内部に記憶されるフォルダまたはファイルに対するアクセス条件が設定された組合せ設定情報がさらに記憶される。組み合わせ設定情報は、例えば、情報処理装置Ｂの内部に記憶されるフォルダまたはファイルに対して、アクセスを許可または禁止するかを判定するための情報であり、例えば、組合せ設定情報に記述されていないフォルダまたはファイルへのアクセスは禁止される。組合せ設定情報は、情報処理装置Ｂの組合せ設定情報を編集（追加／変更など）できる権限をもった他の情報処理装置により設定されるものとする。
【００５０】
図４は、組合せ設定情報の例を示す図である。この例では、情報処理装置Ｂの内部において、フォルダ１とフォルダ２があり、フォルダ１の配下のデータとしてファイル１１乃至ファイル１３が記憶されており、フォルダ２の配下には、まだデータ（ファイル）が記憶されていない。このとき、組合せ設定情報は、「（フォルダ２）（ファイル１１＆ファイル１２＆ファイル１３）」と記述されており、これは、フォルダ２に対して、配下のファイルの生成が許可され、また、ファイル１１乃至ファイル１３の組合せに対するアクセス（ファイル１１乃至ファイル１３に対して同時にアクセスすること）が許可されることを表している。上述したように、組合せ設定情報に記述されていないフォルダまたはファイルへのアクセスは禁止されるので、例えば、ファイル１３（単体）に対してアクセスすることは許可されない（禁止される）。
【００５１】
図５は、図４に示される状態から、フォルダ２の配下には、ファイル２１とファイル２２が生成（記憶）された場合の例を示す図である。このとき、組合せ設定情報は、図４に示される状態から変更されて、「（ファイル１１＆ファイル１２＆ファイル１３）（ファイル２１＆ファイル２２＆ファイル１３）」と記述されている。
【００５２】
これにより、例えば、情報処理装置Ａが、ファイル１１乃至ファイル１３の組合せに対するアクセスを要求した場合、または、ファイル２１、ファイル２２、およびファイル１３の組合せに対するアクセスを要求した場合、そのアクセス要求は許可される。一方、ファイル１１とファイル１２の組合せに対するアクセス、ファイル１３（単体）に対するアクセス、フォルダ２の配下のファイルの生成などの要求は許可されない。
【００５３】
図１に戻って、ステップＳ２３において、情報処理装置Ａが送信した、アクセスするデータの組合せが記述された情報であるアクセス対象リストが、認証チャレンジとともに、情報処理装置Ｂにより受信される。
【００５４】
ステップＳ２４において、情報処理装置Ｂは、アクセス対象チェック処理を行う。これにより、アクセス対象リストに記述された、情報処理装置Ａによりアクセスされるデータの組合せが、上述した組合せ設定情報により、許可されるものであるか否かがチェックされ、ステップＳ２５において、そのチェック結果が判定される。
【００５５】
ステップＳ２５において、情報処理装置Ａによりアクセスされるデータの組合せが、上述した組合せ設定情報により、許可されるものであると判定された場合、処理は、ステップＳ２６に進む。
【００５６】
一方、ステップＳ２５において、情報処理装置Ａによりアクセスされるデータの組合せが、上述した組合せ設定情報により、許可されないものであると判定された場合、情報処理装置Ｂは、情報処理装置Ａに対してエラーを送信し、ステップＳ４において、情報処理装置Ａによりこれが受信される。この場合、処理は、ここで終了する。
【００５７】
ステップＳ２６において、情報処理装置Ｂは、ステップＳ２３で受信した認証チャレンジに対するレスポンスを、情報処理装置Ａに対して送信し、ステップＳ５において、情報処理装置Ａによりこれが受信される。レスポンスは、例えば、認証チャレンジの乱数が、情報処理装置Ａによりアクセスされるデータに対応づけられる鍵により、順次暗号化されることにより生成される。例えば、情報処理装置Ａによりアクセスされるデータの組合せが、ファイル１１乃至ファイル１３であった場合、認証チャレンジの乱数が、所定の暗号アルゴリズムと鍵１１で暗号化され、暗号化されたデータが、所定の暗号アルゴリズムと鍵１２でさらに暗号化され、暗号化されたデータが、所定の暗号アルゴリズムと鍵１３でさらに暗号化されることによりレスポンスが生成される。
【００５８】
ステップＳ６において、情報処理装置Ａは、機器Ｂの認証を行う。このとき、情報処理装置Ａは、ステップＳ５で受信したレスポンスを、所定の暗号アルゴリズムと鍵１３で復号し、そのデータを、所定の暗号アルゴリズムと鍵１２でさらに復号し、そのデータを、所定の暗号アルゴリズムと鍵１１でさらに復号する。その結果得られたデータが、ステップＳ３で送信した認証チャレンジの乱数と一致すれば、情報処理装置Ｂを正当な通信相手として認証する。
【００５９】
なお、ステップＳ６により機器Ｂの認証の後、情報処理装置Ｂから情報処理装置Ａに対して認証チャレンジが送信され、ステップＳ２６とＳ６の処理と同様にして、情報処理装置Ｂにより情報処理装置Ａが認証されるようにしてもよい。
【００６０】
このようにして、情報処理装置Ａと情報処理装置Ｂにより相互認証が行われる。相互認証に先立って、アクセス対象チェック処理が行われるようにしたので、不正なアクセスを試みる第３者による攻撃が回避され、情報セキュリティを向上させることができる。
【００６１】
次に、本発明をＩＣカードとリーダライタの認証に適用した例について説明する。この例では、図６に示されるように、機器Ａと機器Ｂとが通信を行い、機器Ａと機器Ｂとがお互いに認証し合う相互認証を行ったあと、トランザクション処理が行われる。ここで、機器Ａは、例えば、非接触ＩＣカード用のリーダライタなどの機器を想定しており、機器Ｂは、例えば、非接触ＩＣカードなどの機器を想定している。機器Ａと機器Ｂは、例えば、それぞれが有するアンテナなどを介して無線による通信を行う。
【００６２】
図７は、機器Ａ（リーダライタ）の内部構成例を示すブロック図である。
【００６３】
制御部２０１は、CPU２１１、ROM２１２、RAM２１３、SCC（Serial Communication Controller）２１４、SPU（Signal Processing Unit）２１６、並びに、これらのCPU２１１乃至SPU２１６を相互に接続するバス２１５から構成されている。
【００６４】
CPU２１１は、ROM２１２に格納されている制御プログラムをRAM２１３に展開し、例えば、非接触ICカード（機器Ｂ）から送信されてきた応答データや、外部のプロセッサなどから供給されてきた制御信号に基づいて、各種の処理を実行する。例えば、CPU２１１は、非接触ICカード（機器Ｂ）に送信するコマンドを生成し、それを、バス２１５を介してSPU２１６に出力したり、非接触ICカード（機器Ｂ）から送信されてきたデータの認証処理などを行ったりする。
【００６５】
SCC２１４は、バス２００を介して接続される外部のプロセッサなどから供給されてきたデータを、バス２１５を介してCPU２１１に供給したり、CPU２１１から、バス２１５を介して供給されてきたデータを、バス２００を介して接続される外部のプロセッサなどに出力したりする。
【００６６】
SPU２１６は、非接触ICカード（機器Ｂ）からの応答データが復調部２０４から供給されてきたとき、そのデータに対して、例えば、BPSK復調（マンチェスターコードのデコード）などを施し、取得したデータをCPU２１１に供給する。また、SPU２１６は、非接触ICカード（機器Ｂ）に送信するコマンドがバス２１５を介して供給されてきたとき、そのコマンドにBPSK（Binary Phase Shift Keying）変調（マンチェスターコードへのコーディング）を施し、取得したデータを変調部２０２に出力する。
【００６７】
変調部２０２は、発振回路（OSC）２０３から供給される所定の周波数の搬送波を、SPU２１６より供給されるデータに基づいて、ASK（Amplitude Shift Keying）変調し、生成された変調波を、電磁波としてアンテナ２０５から出力する。一方、復調部２０４は、アンテナ２０５を介して取得した変調波（ASK変調波）を復調し、復調されたデータをSPU２０６に出力する。
【００６８】
アンテナ２０５は、所定の電磁波を輻射し、それに対する負荷の変化に基づいて、非接触ICカード（機器Ｂ）が近接されたか否かを検出する。そして、例えば、非接触ICカード（機器Ｂ）が近接されたとき、アンテナ２０５は、非接触ICカード（機器Ｂ）と各種のデータを送受信する。
【００６９】
図８は、機器Ｂ（非接触ICカード）の内部構成例を示すブロック図である。
【００７０】
非接触ICカード（機器Ｂ）は、例えば、同図に示されるアンテナ（ループアンテナ）２３０およびコンデンサ２３１と、それ以外の構成が１チップに格納されたICから構成され、電磁誘導を利用してリーダライタ（機器Ａ）などと各種のデータを半二重通信するものであって、必ずしもカード状のものとして構成されるわけではない。
【００７１】
CPU２２１は、ROM２２２に格納されている制御プログラムをRAM２２３に展開し、非接触ICカードの全体の動作を制御する。例えば、CPU２２１は、リーダライタ（機器Ａ）から輻射されている電磁波がアンテナ２３０において受信されたとき、それに応じて、非接触ICカード（機器Ｂ）に設定されているカード識別番号等を含むICカード情報をリーダライタ（機器Ａ）に通知したり、リーダライタ（機器Ａ）からの要求に応じて、トランザクション処理に必要となる情報をリーダライタ（機器Ａ）に供給したりする。
【００７２】
アンテナ２３０とコンデンサ２３１により構成されるLC回路は、近傍に配置されたリーダライタ（機器Ａ）から輻射される所定の周波数の電磁波と共振する。インタフェース部２２９は、ASK復調部２４３において、アンテナ２３０を介して受信した変調波（ASK変調波）を包絡線検波して復調し、復調後のデータをBPSK（Binary Phase Shift Keying）復調部２３２に出力する。
【００７３】
また、インタフェース部２２９は、アンテナ２３０において励起された交流磁界をASK復調部２４３により整流し、それを電圧レギュレータ２４１において安定化し、各部に直流電源として供給する。リーダライタ（機器Ａ）から輻射される電磁波の電力は、後述するように非接触ICカード（機器Ｂ）に必要な電力を賄う磁界を発生させるように調整されている。
【００７４】
また、インタフェース部２２９の発振回路２４４はPLL（Phase Locked Loop）回路を内蔵し、受信信号のクロック周波数と同一の周波数のクロック信号を発生する。
【００７５】
さらに、インタフェース部２２９は、所定の情報をリーダライタ（機器Ａ）に送信する場合、BPSK変調部２２８から供給されるデータに対応して、例えば、所定のスイッチング素子（図示せず）をオン／オフさせ、スイッチング素子がオン状態であるときだけ、所定の負荷をアンテナ２３０に並列に接続させることにより、アンテナ２３０の負荷を変動させる。
【００７６】
ASK変調部２４２は、アンテナ２３０の負荷の変動により、BPSK変調部２２８より供給されたBPSK変調波をASK変調し、その変調成分を、アンテナ２３０を介してリーダライタ（機器Ａ）に送信する。
【００７７】
BPSK復調部２３２は、ASK復調部２４３で復調されたデータがBPSK変調されている場合、図示せぬPLL回路から供給されるクロック信号に基づいて、そのデータの復調（マンチェスターコードのデコード）を行い、復調したデータをデータ受信部２３３に出力する。データ受信部２３３は、供給されてきたデータをCPU２２１に適宜出力する。CPU２２１はこのデータをRAM２２３またはEEPROM２２４に記憶させる。
【００７８】
EEPROM２２４に記憶されたデータは、CPU２２１により読み出され、データ送信部２２７に供給される。BPSK変調部２２８は、データ送信部２２７から供給されてきたデータにBPSK変調（マンチェスターコードへのコーディング）を行い、それをASK変調部２４２に出力する。
【００７９】
EEPROM２２４には、例えば、相互認証において必要となる情報、トランザクション処理において必要となる情報などが適宜記憶される。
【００８０】
ここでは、機器Ａを非接触ＩＣカード用のリーダライタ、機器Ｂを非接触ＩＣカードにより構成し、機器Ａと機器Ｂとが無線により通信する例について説明したが、機器Ａを接触型ＩＣカード用のリーダライタ、機器Ｂを接触型ＩＣカードにより構成し、有線の通信を行うようにすることも勿論可能である。
【００８１】
図９は、図８のＥＥＰＲＯＭ２２４に記憶されるデータの構成例を示す図である。この例では、ＥＥＰＲＯＭ２２４に記憶されるデータに、マスタ定義ブロック、組合せ情報定義ブロック、エリア０１定義ブロック、エリア０２定義ブロックが設けられている。
【００８２】
エリア０１定義ブロックとエリア０２定義ブロックは、それぞれＥＥＰＲＯＭ２２４に記憶されるデータの中の領域エリア０１、領域エリア０２に対して設定される定義ブロックである。領域エリア０１には、データ１１定義ブロックおよびその実データブロック乃至データ１３定義ブロックおよびその実データブロックが含まれており、領域エリア０２には、データ２１定義ブロックおよびその実データブロック、並びにデータ２１定義ブロックおよびその実データブロックが含まれている。領域エリア０１または領域エリア０２の中で、まだデータが記憶されていない領域は、それぞれエリア０１残ブロックまたはエリア０２残ブロックと記述されている。
【００８３】
図１０は、マスタ定義ブロックの構成例を示す図である。同図に示されるように、マスタ定義ブロックには、固有ＩＤ、サイズ、組合せ設定情報ブロックサイズ、鍵バージョン、相互認証用の鍵、組合せ設定用の鍵、および属性情報が含まれており、マスタ定義ブロックは、固定長として構成される。
【００８４】
固有ＩＤは、例えば、そのICチップに付与された固有の識別番号などとされる。サイズは、図９に示されるデータ全体のサイズを表す情報である。鍵バージョンは、後述する相互認証用の鍵、および組合せ設定用の鍵のバージョンを表す情報である。
【００８５】
相互認証用の鍵は、例えば、リーダライタと相互認証を行うとき必要となる、所定の暗号アルゴリズムでのデータの暗号化または復号に用いられる鍵であり、組合せ設定用の鍵は、例えば、後述する組合せ設定情報ブロックの内容の追加／変更を行う権限をもった他の機器（例えば、機器C）との通信を行うとき必要となる、所定の暗号アルゴリズムでのデータの暗号化または復号に用いられる鍵である。
【００８６】
属性情報には、上述した情報の他、マスタ定義ブロックに関連する情報が適宜記述される。
【００８７】
図１１は、組合せ設定情報ブロックの構成例を示すブロック図である。同図に示されるように、組合せ設定情報ブロックには、許可／禁止フラグ、エリアＩＤとデータＩＤの組合せ情報１乃至３、区切りコード、およびエンドコードが含まれており、組合せ設定情報ブロックは、可変長として構成される。
【００８８】
許可／禁止フラグは、組合せ設定情報ブロックに記述される情報が、アクセスの許可を表すものか、またはアクセスの禁止を表すものかを区別するためのフラグである。
【００８９】
エリアＩＤとデータＩＤの組合せ情報１乃至３は、それぞれ、アクセスするエリアまたはデータの組合せを表す情報である。エリアＩＤとデータＩＤの組合せ情報の具体的な記述例については、図１６または図１７を参照して後述する。
【００９０】
区切りコードは、エリアＩＤとデータＩＤの組合せ情報１乃至３のそれぞれに付加され、区切りを表す所定のコード（例えば「％」、スペースコードなど）とされ、エンドコードは、組合せ設定情報ブロックの終了を表す所定のコードとされる。
【００９１】
図１２は、エリア定義ブロックの構成例を示す図である。同図にしめされるように、エリア定義ブロックには、エリアＩＤ、エリアサイズ、鍵バージョン、鍵、および属性情報が含まれており、エリア定義ブロックは、固定長として構成される。
【００９２】
エリアＩＤは、そのエリア定義ブロックが設定されている領域を特定するＩＤであり、例えば、領域エリア０１に対して設定されるエリア定義ブロックのエリアＩＤは、「０１」とされる。エリアサイズは、そのエリア定義ブロックが設定されている領域のサイズを表す情報である。
【００９３】
鍵バージョンは、後述する鍵のバージョンを表す情報である。鍵は、例えば、リーダライタがそのエリア定義ブロックが設定されている領域に対してアクセスするとき必要となる、所定の暗号アルゴリズムでのデータの暗号化または復号に用いられる鍵である。
【００９４】
属性情報には、上述した情報の他、エリア定義ブロックに関連する情報が適宜記述される。
【００９５】
図１３は、データ定義ブロックの構成例を示す図である。同図に示されるように、データ定義ブロックには、データＩＤ、データサイズ、鍵バージョン、鍵、および属性情報が含まれており、データ定義ブロックは、固定長として構成される。
【００９６】
データＩＤは、そのデータ定義ブロックに対応する実データブロックを特定するＩＤであり、例えば、データ１１実データブロックに対応するデータ定義ブロックのデータＩＤは、「１１」とされる。データサイズは、そのデータ定義ブロックに対応する実データブロックのサイズを表す情報である。
【００９７】
鍵バージョンは、後述する鍵のバージョンを表す情報である。鍵は、例えば、リーダライタがそのデータ定義ブロックに対応する実データブロックに対してアクセスするとき必要となる、所定の暗号アルゴリズムでのデータの暗号化または復号に用いられる鍵である。
【００９８】
属性情報には、上述した情報の他、データ定義ブロックに関連する情報が適宜記述される。
【００９９】
図１４の実データブロックの構成例を示す図である。同図に示されるように実データブロックは、例えば、トランザクション処理などで必要となる、可変長のデータにより構成されている。
【０１００】
次に、図１５乃至図１７を参照して、図９に示されるデータが生成される過程を説明する。
【０１０１】
例えば、非接触ＩＣカード（機器Ｂ）が工場から出荷されたとき、ＥＥＰＲＯＭ２２４に記憶されるデータは、図１５に示されるように構成されている。すなわち、ＥＥＰＲＯＭ２２４に記憶されるデータには、マスタ定義ブロックと、組合せ設定情報ブロックのみが設定されている。
【０１０２】
いま、工場から出荷された非接触ＩＣカードが、事業者Ａに納入され、事業者Ａは、自身が提供するサービスであるサービスＡにおいて必要となる情報を非接触ＩＣカードに記憶させるものとする。
【０１０３】
このとき、図１６に示されるように、事業者Ａは、サービスＡで使用するデータを記憶する領域として、領域エリア０１を指定し、エリア０１定義ブロックを設定する。そして、領域エリア０１の配下に記憶されるデータとして、データ１１定義ブロックおよびその実データブロック乃至データ１３定義ブロックおよびその実データブロックを記憶させる。なお、以降においては、データ１１定義ブロックおよびその実データブロックを、単にデータ１１のように称する。
【０１０４】
そして、事業者Ａは、組合せ設定情報ブロックの内容を設定する。この例では、組合せ設定情報ブロックの内容として、「許可  ０１，１１，１２，１３，区切  ０１，１１，１３，区切  ＥＮＤ」と記述されている。これは、上述した許可／禁止フラグが「許可」に設定されており、領域エリア０１、およびデータ１１乃至データ１３の組合せが、上述したエリアＩＤとデータＩＤの組合せ情報であって、第１番目のエリアＩＤとデータＩＤの組合せ情報として設定されていることを表している。そして上述した区切コード（「区切」）に続いて、領域エリア０１、並びにデータ１１およびデータ１３の組合せが、第２番目のエリアＩＤとデータＩＤの組合せ情報として設定され、区切コード（「区切」）と、エンドコード（「ＥＮＤ」）が設定されていることを表している。
【０１０５】
例えば、データ１１は、サービスＡにおける取引履歴のデータであり、データ１２は、サービスＡにおける取引店のデータであり、データ１３は、サービスＡにおける電子マネーの利用残高のデータであったとする。サービスＡで使用されるリーダライタ（機器Ａ）は、非接触ＩＣカード（機器Ｂ）に対して、必ず、データ１１乃至データ１３、またはデータ１１およびデータ１３の組合せでアクセスを要求するので、事業者Ａは、その組合せ以外のアクセス要求を許可しないように、組合せ設定情報ブロックの内容を設定する。例えば、電子マネーの利用残高のデータの改竄を目的として、データ１３のみに対するアクセス要求があったとしても、そのアクセス要求は拒絶される。
【０１０６】
次に、図１６に示されるようなデータが記憶された非接触ＩＣカードが、事業者Ａとともに、同じ非接触ＩＣカードを用いて別のサービスを提供する事業者Ｂに納入され、事業者Ｂは、自身が提供するサービスであるサービスＢにおいて必要となる情報を非接触ＩＣカードに記憶させるものとする。
【０１０７】
このとき、図１７に示されるように、事業者Ｂは、サービスＢで使用するデータを記憶する領域として、領域エリア０２を指定し、エリア０２定義ブロックを設定する。そして、領域エリア０２の配下に記憶されるデータとして、データ２１とデータ２２（データ２１定義ブロックおよびその実データブロック並びにデータ２２定義ブロックおよびその実データブロック）を記憶させる。
【０１０８】
そして、事業者Ｂは、組合せ設定情報ブロックの内容を設定する。いまの場合、図１６に示される状態から新たに追加される。この例では、組合せ設定情報ブロックの新しい内容の記述として、「０２，２１，２２，区切  ０２，２１，２２，０１，１３，区切」が追加されている。これは、領域エリア０２、並びにデータ２１およびデータ２２の組合せが、第３番目のエリアＩＤとデータＩＤの組合せ情報として追加されていることを表している。そして区切コード（「区切」）に続いて、領域エリア０２、データ２１およびデータ２２、領域エリア０１、並びにデータ１３の組合せが、第４番目のエリアＩＤとデータＩＤの組合せ情報として追加されたことを表している。
【０１０９】
サービスＢで使用されるリーダライタ（機器Ａ）は、非接触ＩＣカードに対して、必ず、データ２１およびデータ２２、またはデータ２１、データ２２、およびデータ１３の組合せでアクセスを要求するので、事業者Ｂは、その組合せ以外のアクセス要求を許可しないように、組合せ設定情報ブロックの内容を設定する。事業者Ｂは、サービスＡのデータ（データ１３）も含めて組合せ設定情報ブロックの内容を設定することができる。
【０１１０】
このようにして、組合せ設定情報ブロックの内容が設定される。
【０１１１】
図１８は、図７のＣＰＵ２１１により実行されるソフトウェアの機能的構成例を示すブロック図である。
【０１１２】
乱数発生部３１１は、通信相手（いまの場合機器Ｂ）と相互認証を行うとき必要となる乱数を発生し、発生した乱数をデータ送信部３１７に供給するとともに、ＲＡＭ２１３などにより構成される記憶部に記憶する。
【０１１３】
暗号化実行部３１２は、共有鍵生成部３１５から供給される情報に基づいて特定される鍵により、データを、例えば、ＤＥＳ（Data Encryption Standard）、トリプルＤＥＳ、AES（Advanced Encryption Standard）などの所定の暗号アルゴリズムで暗号化する。復号実行部３１３は、共有鍵生成部３１５から供給される情報に基づいて特定される鍵により、データを、暗号化実行部３１２が実装する所定の暗号アルゴリズムに対応する復号方法で復号する。
【０１１４】
認証部３１４は、復号実行部３１３から出力されたデータと、記憶部に記憶されている乱数を比較し、その比較結果に基づいて、通信相手（いまの場合機器Ｂ）を認証し、認証結果をデータ送信部３１７に出力する。
【０１１５】
共有鍵生成部３１５は、アクセス対象管理部３１９から供給されるアクセス対象リストに基づいて、暗号化実行部３１２に複数または単数の鍵を供給し、機器Ａと機器Ｂが相互認証を行うときに必要となる共有鍵の生成を制御する。
【０１１６】
認証データ生成部３１８は、暗号化実行部３１２、または復号実行部３１３から出力されるデータに基づいて、後述する認証データを生成する。
【０１１７】
アクセス対象管理部３１９は、通信相手に対して自身がアクセスする領域（エリア）とデータの一覧であるアクセス対象リストの生成を行うとともに、通信相手からデータ受信部３１６を介してアクセス対象リストを受信した場合、そのアクセス対象リストに記述される領域（エリア）とデータの組合せが、組合せ設定情報ブロックに記述される情報を合致するか否かを判定し、判定結果をデータ送信部３１７に出力する。また、アクセス対象管理部３１９は、共有鍵生成部３１５に対して、アクセス対象リストに記述される領域（エリア）とデータの組合せを通知する。
【０１１８】
データ送信部３１６とデータ受信部３１７は、それぞれ通信相手（いまの場合機器Ｂ）とのデータの送受信を制御する。
【０１１９】
図１９は、図８のＣＰＵ２２１により実行されるソフトウェアの機能的構成例を示すブロック図である。
【０１２０】
同図において、乱数発生部４１１乃至アクセス対象管理部４１９は、図１８の乱数発生部３１１乃至アクセス対象管理部３１９に対応する機能ブロックであり、それぞれ同様の機能を有するものなので、詳細な説明は省略する。
【０１２１】
次に、機器Ａと機器Ｂにおいて行われる相互認証の処理の流れについて、図２０のアローチャートを参照して説明する。この処理は、例えば、非接触ＩＣカードとして構成される機器Ｂと、非接触ＩＣカード用のリーダライタとして構成される機器Ａとの間でのトランザクション処理の実行に先立って実行される。
【０１２２】
ステップＳ１０１において、機器Ａのアンテナ２０５が、所定の電磁波（コール）を輻射し、ステップＳ１３１において、機器Ｂによりこれが受信される。
【０１２３】
ステップＳ１３２において、機器Ｂは、ステップＳ１３１で受信したコールに対する応答を、機器Ａに対して送信し、ステップＳ１０２において、機器Ａによりこれが受信される。これにより、リーダライタ（機器Ａ）は、非接触ICカード（機器Ｂ）が近接されたことを検出する。
【０１２４】
ステップＳ１０３において、機器Ａの乱数発生部３１１は、機器Ｂを認証するための乱数である乱数RanAを発生し、ステップS１０４において、アクセス対象管理部３１９は、機器Bの中のアクセスする領域（エリア）とデータの一覧であるアクセス対象リストを生成する。
【０１２５】
ステップS１０５において、機器Aのデータ送信部３１７は、ステップS１０３で発生した乱数と、ステップS１０４で生成したアクセス対象リストに基づいて、パケット１を生成し、送信する。
【０１２６】
図２１は、パケット１の構成例を示す図である。同図において、フィールド５０１は、パケット１のヘッダとなる部分であり、例えば、パケット種別（このパケットの種類がパケット１であることを表す識別子）、チップ固有ＩＤ（機器Ａの制御部２０１を特定するＩＤ）などが含まれる。
【０１２７】
フィールド５０２には、ステップＳ１０３で発生された乱数RanAが格納される。フィールド５０３には、ステップS１０４で生成されたアクセス対象リストが格納される。
【０１２８】
この例では、フィールド５０３は、ブロック５０３−１乃至５０３−４の４つのブロックにより構成されている。ブロック５０３−２は、アクセス対象となるデータを保持する領域（エリア）のエリアIDを全て記述したリストが格納され、ブロック５０３−１には、ブロック５０３−２に記述されるエリアＩＤの数が格納される。ブロック５０３−４は、アクセス対象となるデータのデータIDを全て記述したリストが格納され、ブロック５０３−３には、ブロック５０３−４に記述されるデータＩＤの数が格納される。
【０１２９】
図２０に戻って、ステップＳ１３３において、機器Ｂは、上述したパケット１を受信し、ステップＳ１３４において、ステップＳ１３３で受信したパケット１に基づいて、図２２を参照して後述するアクセス対象チェック処理を実行する。
【０１３０】
ここで、図２２のフローチャートを参照して、図２０のステップＳ１３４のアクセス対象チェック処理の詳細について説明する。
【０１３１】
ステップＳ２０１において、機器Ｂのアクセス対象管理部４１９は、パケット１の中からアクセス対象リストを抽出し、ステップＳ２０２において、ステップＳ２０１で抽出したアクセス対象リストと、組合せ設定情報と比較する。
【０１３２】
このとき、図２１を参照して上述したフィールド５０３のアクセス対象リストと、図１１、図１７を参照して上述した組合せ設定情報ブロックの内容とが比較される。例えば、機器Ａ（リーダライタ）が、機器Ｂ（非接触ＩＣカード）のデータ１１乃至１３にアクセスする場合、ステップＳ２０１で抽出されたアクセス対象リストには、ブロック５０３−２のエリアＩＤのリストには、「０１」が記述され、ブロック５０３−４のデータＩＤのリストには、「１１」、「１２」、および「１３」が記述されることになる。この記述は、図１７の組合せ設定情報定義ブロックの内容における、第１番目のエリアＩＤとデータＩＤの組合せ情報に合致する。
【０１３３】
ステップＳ２０３において、アクセス対象管理部４１９は、ステップＳ２０２の比較の結果、ステップＳ２０１で抽出されたアクセス対象リストは、組合せ設定情報により許可されたエリアＩＤとデータＩＤの組合せか否かを判定する。いまの場合、許可されたエリアＩＤとデータＩＤの組合せであると判定され、処理はステップＳ２０４に進み、アクセス対象管理部４１９は、機器Ａからのアクセスに対する許可を表す許可フラグをオンに設定する。
【０１３４】
一方、例えば、機器Ａ（リーダライタ）が、機器Ｂ（非接触ＩＣカード）のデータ１３にアクセスする場合、ステップＳ２０１で抽出されたアクセス対象リストには、ブロック５０３−２のエリアＩＤのリストには、「０１」が記述され、ブロック５０３−４のデータＩＤのリストには、「１３」が記述されることになる。この記述は、図１７の組合せ設定情報定義ブロックの内容における、いずれのエリアＩＤとデータＩＤの組合せ情報とも合致しない。
【０１３５】
この場合、ステップＳ２０３において、許可されたエリアＩＤとデータＩＤの組合せではないと判定され、処理はステップＳ２０５に進み、アクセス対象管理部４１９は、上述した許可フラグをオフに設定する。
【０１３６】
このようにして、通信相手から送信されるアクセス対象リストに基づいてアクセスの許可（または不許可）が判定される。
【０１３７】
図２０に戻って、ステップＳ１３５において、機器Ｂは、ステップＳ１３４の処理によるチェック結果を判定する。チェック結果の判定は、上述した許可フラグに基づいて行われる。
【０１３８】
許可フラグがオンに設定されている場合、ステップＳ１３５において、機器Ａからのアクセスが許可されたと判定され、処理は、ステップＳ１３６に進み、その後、機器Ａと機器Ｂによる相互認証が行われることになる。
【０１３９】
一方、許可フラグがオフに設定されている場合、ステップＳ１３５において、機器Ａからのアクセスが許可されなかった（拒絶された）と判定され、機器Ｂは機器Ａに対してエラー情報を送信し、ステップＳ１０６において機器Ａによりこれが受信される。この場合、機器Ａと機器Ｂとの通信処理は、ここで終了することになる。
【０１４０】
ステップＳ１３６において、機器Ｂは、図２３を参照して後述する共有鍵生成処理を実行する。これにより、相互認証に用いられる暗号鍵（共有鍵）が生成される。
【０１４１】
ここで、図２３のフローチャートを参照して、図２０のステップＳ１３６の共有鍵生成処理の詳細について説明する。ここでは、機器Ａが、機器Ｂのデータ１１乃至１３にアクセスするものとし、ステップＳ１３３で受信したパケット１のアクセス対象リスト（フィールド５０３）には、ブロック５０３−２のエリアＩＤのリストに、「０１」が記述され、ブロック５０３−４のデータＩＤのリストに、「１１」、「１２」、および「１３」が記述されていたものとする。
【０１４２】
ステップＳ２２１において、機器Ｂの共有鍵生成部４１５は、マスタ定義ブロックの相互認証用の鍵、およびアクセス対象となるエリアとデータの鍵を抽出する。このとき、図１０を参照して上述したマスタ定義ブロックの相互認証用の鍵、図１２を参照して上述したエリア定義ブロック（いまの場合エリアＩＤが「０１」であるエリア定義ブロック）の鍵、図１３を参照して上述したデータ定義ブロック（いまの場合データＩＤが「１１」乃至「１３」であるデータ定義ブロック）の鍵がそれぞれ抽出される。
【０１４３】
ステップＳ２２２において、暗号化実行部４１２は、ステップＳ２２１で抽出した相互認証用の鍵を、エリア０１の鍵で暗号化する。このとき、共有鍵生成部４１５は、アクセス対象リストに基づいて、暗号化実行部４１２に、エリアＩＤが「０１」であるエリア定義ブロックの鍵を供給し、その鍵を用いて、暗号化実行部４１２は、マスタ定義ブロックの相互認証用の鍵を所定の暗号アルゴリズムで暗号化する。
【０１４４】
ステップＳ２２３において、暗号化実行部４１２は、ステップＳ２２２で暗号化したデータを、データ１１の鍵で暗号化する。このとき、共有鍵生成部４１５は、アクセス対象リストに基づいて、暗号化実行部４１２に、データＩＤが「１１」であるデータ定義ブロックの鍵を供給し、その鍵を用いて、暗号化実行部４１２は、ステップＳ２２２で暗号化したデータを所定の暗号アルゴリズムでさらに暗号化する。
【０１４５】
ステップＳ２２４において、暗号化実行部４１２は、ステップＳ２２３で暗号化したデータを、データ１２の鍵で暗号化する。このとき、共有鍵生成部４１５は、アクセス対象リストに基づいて、暗号化実行部４１２に、データＩＤが「１２」であるデータ定義ブロックの鍵を供給し、その鍵を用いて、暗号化実行部４１２は、ステップＳ２２３で暗号化したデータを所定の暗号アルゴリズムでさらに暗号化する。
【０１４６】
ステップＳ２２５において、暗号化実行部４１２は、ステップＳ２２３で暗号化したデータを、データ１３の鍵で暗号化する。このとき、共有鍵生成部４１５は、アクセス対象リストに基づいて、暗号化実行部４１２に、データＩＤが「１３」であるデータ定義ブロックの鍵を供給し、その鍵を用いて、暗号化実行部４１２は、ステップＳ２２４で暗号化したデータを所定の暗号アルゴリズムでさらに暗号化する。
【０１４７】
そして、ステップＳ２２６において、共有鍵生成部４１５は、ステップＳ２２５の処理により暗号化されたデータを共有鍵として、ＲＡＭ２２３などにより構成される記憶部に記憶する。
【０１４８】
このようにして、機器Ａと機器Ｂとの相互認証において必要となる共有鍵が生成される。この共有鍵は、後述する図２０のステップＳ１０８において、機器Ａにより、やはり生成されることにより、機器Ａと機器Ｂとで共有されることになる。
【０１４９】
図２０のステップＳ１３６の処理の後、処理は、ステップＳ１３７に進み、機器Ｂは、図２４を参照して後述する認証用データ１生成処理を実行する。
【０１５０】
ここで、図２４のフローチャートを参照して、図２０のステップＳ１３６の認証用データ１生成処理の詳細について説明する。
【０１５１】
ステップＳ２４１において、機器Ｂの認証用データ生成部４１８は、ステップＳ１３３で受信されたパケット１に含まれる乱数RanA（図２１のフィールド５０２）を抽出する。
【０１５２】
ステップS２４２において、暗号化実行部２４２は、図２３の処理により生成されている共有鍵を用いて、ステップS２４１で抽出された乱数RanAを、所定の暗号アルゴリズムで暗号化する。
【０１５３】
ステップS２４３において、認証用データ生成部４１８は、ステップS２４２で暗号化されたデータを、認証用データ１として生成する。
【０１５４】
このようにして、機器Aから送信された乱数RanAが暗号化されて認証用データ１が生成される。
【０１５５】
図２０に戻って、ステップS１３７の処理の後、ステップS１３８において、機器B（乱数発生部４１１）は、機器Aを認証するための乱数RanBを生成（発生）する。
【０１５６】
ステップS１３９において、機器Ｂ（データ送信部４１７）は、ステップS１３８で発生した乱数と、ステップS１３７で生成した認証用データ１に基づいて、パケット２を生成し、送信する。
【０１５７】
図２５は、パケット２の構成例を示す図である。同図において、フィールド５２１は、パケット２のヘッダとなる部分であり、例えば、パケット種別（このパケットの種類がパケット２であることを表す識別子）、チップ固有ＩＤ（機器ＢのＣＰＵ２２１を特定するＩＤ）などが含まれる。フィールド５２２には、ステップＳ１３８で発生された乱数RanＢが格納される。フィールド５２３には、ステップS１３７で生成された認証用データ１が格納される。
【０１５８】
図２０に戻って、ステップＳ１０７において、機器Ａにより上述したパケット２が受信される。
【０１５９】
ステップＳ１０８において、機器Ａは、共有鍵生成処理を実行する。この処理は、図２３を参照して上述した処理と同様の処理なので、詳細な説明は省略するが、これにより、機器Ａにおいても、機器Ｂで生成された共有鍵と同じ共有鍵が生成されて保持（記憶）される。
【０１６０】
ステップＳ１０９において、機器Ａは、図２６を参照して後述する機器Ｂの認証処理を実行する。これにより、機器Ａにより機器Ｂが正当な通信相手であるか否かが認証される。
【０１６１】
ここで、図２６のフローチャートを参照して、図２０のステップＳ１０９の機器Ｂの認証処理の詳細について説明する。
【０１６２】
ステップＳ２６１において、復号実行部３１３は、ステップＳ１０７で受信したパケット２に含まれる認証用データ１（フィールド５２３）を、共有鍵を用いて、暗号化実行部４１２の暗号アルゴリズムに対応する復号方法で復号する。これにより、認証用データ１が復号され、復号された認証用データ１（すなわち、乱数RanA）が、その処理結果のデータとして、認証部３１４に取得される。
【０１６３】
ステップＳ２６２において、認証部３１４は、処理結果のデータ（ステップＳ２６１の処理により復号された認証用データ２）と、図２０のステップＳ１０３の処理により、生成された乱数RanＡとを比較する。
【０１６４】
ここで、図２０のステップＳ１０３の処理により、生成された乱数RanＡは、機器Ａが機器Ｂを認証するために発生した乱数であり、機器Ａ以外の機器は、事前にその値を取得することはできない。
【０１６５】
また、処理結果のデータは、通信相手（いまの場合、機器Ｂ）から取得されたデータであり、機器Ａで、共有鍵を用いて復号されることを知らなければ、通信相手は、復号されるデータを想定して暗号化することができない。さらに、共有鍵は、アクセス対象となるエリア、データの鍵に基づいて暗号化されて生成されるので、機器Aから送信されたアクセス対象リストを解析し、それらの鍵を抽出しなければ生成することができない。
【０１６６】
もし、ステップＳ２６１の処理により復号された認証用データ１と、図２０のステップＳ１０３の処理により生成された乱数RanＡが一致していれば、通信相手は、機器Ａと同じ共有鍵で乱数RanAを暗号化したものと考えられる。
【０１６７】
仮に、第３者が、機器Bに成りすましているとすれば、その第３者は、機器Ａから出力された乱数RanAが、アクセス対象リストに記述されたエリアとデータの鍵に基づいて暗号化されて生成された共有鍵で暗号化されていることをつきとめて、さらに、エリア０１の鍵、データ１１乃至データ１３の鍵を取得して（盗んで）乱数RanAを暗号化していたことになり、このような作業を行うことは事実上不可能に近い。
【０１６８】
したがって、ステップS２６２の処理による、処理結果のデータと、図２０のステップＳ１０３の処理により生成された乱数RanＡの比較の結果、両者の値が一致していれば、機器Bが正当な通信相手として認証されたことになる。
【０１６９】
ステップS２６３において、認証部３１４は、ステップS２６２の処理による比較の結果、両者の値が一致したか否かを判定する。
【０１７０】
ステップS２６３において、値が一致したと判定された場合、処理は、ステップS２６４に進み、認証部３１４は、機器Bが認証されたことを表す認証フラグをオンに設定する。
【０１７１】
一方、ステップS２６３において、値が一致しなかったと判定された場合、処理は、ステップS２６５に進み、認証部３１４は、上述した認証フラグをオフに設定する。
【０１７２】
このようにして、機器Bの認証が行われる。
【０１７３】
図２０に戻って、ステップS１０９の処理の後、ステップS１１０において、機器Aは、ステップS１０９の処理による認証結果の判定を行う。
【０１７４】
上述した認証フラグがオンに設定された場合、図２０のステップS１１０では、機器Bが認証されたと判定され、処理は、ステップS１１１に進む。上述した認証フラグがオフに設定された場合、ステップS１１０の処理では、機器Bが認証されなかったと判定され、機器Aから機器Bにエラーが送信され、ステップ１４０において、機器Bによりこれが受信される。この場合、機器Aと機器Bとの通信処理はここで終了することになる。
【０１７５】
ステップS１１１において、機器Ａは、図２７を参照して後述する認証用データ２生成処理を実行する。
【０１７６】
ここで、図２７のフローチャートを参照して、図２０のステップＳ１１１の認証用データ２生成処理の詳細について説明する。
【０１７７】
ステップＳ２８１において、機器Ａの認証用データ生成部３１８は、ステップＳ１０７で受信されたパケット１に含まれる乱数RanＢ（図２５のフィールド５２２）を抽出する。
【０１７８】
ステップS２８２において、暗号化実行部３１２は、ステップＳ１０８の処理により生成されている共有鍵を用いて、ステップS２８１で抽出された乱数RanＢを、所定の暗号アルゴリズムで暗号化する。
【０１７９】
ステップS２８３において、認証用データ生成部３１８は、ステップS２８２で暗号化されたデータを、認証用データ２として生成する。
【０１８０】
このようにして、機器Ｂから送信された乱数RanＢが暗号化されて認証用データ２が生成される。
【０１８１】
図２０に戻って、ステップS１１１の処理の後、ステップS１１２において、機器Ａ（データ送信部３１７）は、ステップS１１１で生成した認証用データ２に基づいて、パケット３を生成し、送信する。
【０１８２】
図２８は、パケット３の構成例を示す図である。同図において、フィールド５４１は、パケット２のヘッダとなる部分であり、例えば、パケット種別（このパケットの種類がパケット３であることを表す識別子）、チップ固有ＩＤ（機器Ａの制御部２０１を特定するＩＤ）などが含まれる。フィールド５４２には、ステップS１１１で生成された認証用データ２が格納される。
【０１８３】
図２０に戻って、ステップＳ１４１において、機器Ｂにより上述したパケット３が受信される。
【０１８４】
ステップＳ１４２において、機器Ｂは、ステップＳ１４１で受信したパケット３に基づいて、図２９を参照して後述する機器Ａの認証処理を実行する。これにより、機器Ｂにより機器Ａの認証が行われる。
【０１８５】
ここで、図２９のフローチャートを参照して、図２０のステップＳ１４２の機器Ａの認証処理の詳細について説明する。
【０１８６】
ステップＳ３０１において、復号実行部４１３は、ステップＳ１４１で受信したパケット３に含まれる認証用データ２（フィールド５４２）を、共有鍵を用いて、暗号化実行部３１２の暗号アルゴリズムに対応する復号方法で復号する。これにより、認証用データ２が復号され、復号された認証用データ２（すなわち、乱数RanＢ）が、その処理結果のデータとして、認証部４１４に取得される。
【０１８７】
ステップＳ３０２において、認証部４１４は、処理結果のデータ（ステップＳ３０１の処理により復号された認証用データ２）と、図２０のステップＳ１３８の処理により、生成された乱数RanＢとを比較する。
【０１８８】
ここで、図２０のステップＳ１３８の処理により、生成された乱数RanＢは、機器Ｂが機器Ａを認証するために発生した乱数であり、機器Ｂ以外の機器は、事前にその値を取得することはできない。
【０１８９】
また、処理結果のデータは、通信相手（いまの場合、機器Ａ）から取得されたデータであり、機器Ｂで、共有鍵を用いて復号されることを知らなければ、通信相手は、復号されるデータを想定して暗号化することができない。さらに、共有鍵は、アクセス対象となるエリア、データの鍵に基づいて暗号化されて生成されるので、機器Aから送信されたアクセス対象リストを解析し、それらの鍵を抽出しなければ生成することができない。
【０１９０】
もし、ステップＳ３０１の処理により復号された認証用データ２と、図２０のステップＳ１３８の処理により生成された乱数RanＢが一致していれば、通信相手は、機器Ｂと同じ共有鍵で乱数RanＢを暗号化したものと考えられる。
【０１９１】
仮に、第３者が、機器Ａに成りすましているとすれば、その第３者は、機器Ｂから出力された乱数RanＢが、アクセス対象リストに記述されたエリアとデータの鍵に基づいて暗号化されて生成された共有鍵で暗号化されていることをつきとめて、さらに、エリア０１の鍵、データ１１乃至データ１３の鍵を取得して（盗んで）乱数RanＢを暗号化していたことになり、このような作業を行うことは事実上不可能に近い。
【０１９２】
したがって、ステップS３０２の処理による、処理結果のデータと、図２０のステップＳ１３８の処理により生成された乱数RanＢの比較の結果、両者の値が一致していれば、機器Ａが正当な通信相手として認証されたことになる。
【０１９３】
ステップS３０３において、認証部３１４は、ステップS３０２の処理による比較の結果、両者の値が一致したか否かを判定する。
【０１９４】
ステップS３０３において、値が一致したと判定された場合、処理は、ステップS３０４に進み、認証部４１４は、機器Ａが認証されたことを表す認証フラグをオンに設定する。
【０１９５】
一方、ステップS３０３において、値が一致しなかったと判定された場合、処理は、ステップS３０５に進み、認証部４１４は、上述した認証フラグをオフに設定する。
【０１９６】
このようにして、機器Ａの認証が行われる。
【０１９７】
図２０に戻って、ステップS１４２の処理の後、ステップS１４３において、機器Ｂは、ステップS１４２の処理による認証結果の判定を行う。
【０１９８】
上述した認証フラグがオンに設定された場合、図２０のステップS１４３では、機器Ａが認証されたと判定され、その後トランザクション処理などの処理が実行されることになる。上述した認証フラグがオフに設定された場合、ステップS１４３の処理では、機器Ａが認証されなかったと判定され、機器Ｂから機器Ａにエラーが送信され、ステップＳ１１３において、機器Ａによりこれが受信される。この場合、機器Aと機器Bとの通信処理はここで終了することになる。
【０１９９】
このようにして、機器Ａと機器Ｂの間でトランザクション処理などの実行に先立って、相互認証が行われる。機器Ａと機器Ｂとでは、相互認証に用いる共有鍵がアクセス対象リストに記述されるエリアとデータに対応する複数の異なる鍵により暗号化されて生成されるようにしたので、第３者による成りすましが防止され、相互認証の確実性を高めることができる。
【０２００】
また、相互認証を行う前に、アクセス対象チェック処理を実行するようにしたので、例え、鍵が盗まれても、データの漏洩や改竄を防止することができる。例えば、不正なアクセスを試みる第３者が、特定のデータを執拗に分析するなどして、そのデータの鍵が盗まれた場合であっても、組合せ設定情報により事前に許可されたエリアとデータの組合せに合致しないアクセスは、相互認証の前に拒絶されてしまうので、より強固なセキュリティを実現することができる。
【０２０１】
ところで、図１０、図１７を参照して上述した組合せ設定情報定義ブロックの内容（エリアＩＤとデータＩＤの組合せ情報）は、この非接触ＩＣカードを利用してサービスを提供する事業者などが有する設定情報登録用の機器により登録されるが、このとき、非接触ＩＣカード（機器Ｂ）は、やはり設定情報登録用の機器（例えば、機器Ｃ）を認証する必要がある。
【０２０２】
図３０のアローチャートを参照して、設定情報登録用の機器である機器Ｃと、非接触ＩＣカードとして構成される機器Ｂにおいて行われる相互認証の処理の流れについて説明する。なお、機器Ｃは、機器Ｂの非接触ＩＣカードに対応するリーダライタの１つであり、やはり図７の機器Ａと同様に構成されているものとする。
【０２０３】
ステップＳ４０１において、機器Ｃのアンテナ２０５が、所定の電磁波（コール）を輻射し、ステップＳ４３１において、機器Ｂによりこれが受信される。
【０２０４】
ステップＳ４３２において、機器Ｂは、ステップＳ４３１で受信したコールに対する応答を、機器Ｃに対して送信し、ステップＳ４０２において、機器Ｃによりこれが受信される。これにより、リーダライタ（機器Ｃ）は、非接触ICカード（機器Ｂ）が近接されたことを検出する。
【０２０５】
ステップＳ４０３において、機器Ｃの乱数発生部３１１は、機器Ｂを認証するための乱数である乱数RanAを発生し、ステップS４０４において、機器Ｃのデータ送信部３１７は、ステップS４０３で発生した乱数RanAと、予め設定された形式で記述されるデータである設定情報登録要求を、機器Ｂに送信する。
【０２０６】
ステップＳ４３３において、機器Ｂは、上述した乱数RanAと、設定情報登録要求とを受信し、ステップＳ４３４において、図３１を参照して後述する設定情報登録共有鍵生成処理を実行する。これにより、機器Cと機器Bの相互認証に用いられる共有鍵が生成される。
【０２０７】
ここで、図３１のフローチャートを参照して、図３０のステップS４３４の設定情報登録共有鍵生成処理の詳細について説明する。
【０２０８】
ステップＳ５０１において、機器Ｂの共有鍵生成部４１５は、マスタ定義ブロックの相互認証用の鍵、およびマスタ定義ブロックの組合せ設定用の鍵を抽出する。このとき、図１０を参照して上述したマスタ定義ブロックの相互認証用の鍵、および組合せ設定用の鍵がそれぞれ抽出される。
【０２０９】
ステップＳ５０２において、暗号化実行部４１２は、ステップＳ５０１で抽出した相互認証用の鍵を、組合せ設定用の鍵で暗号化する。このとき、共有鍵生成部４１５は、暗号化実行部４１２に、組合せ設定用の鍵を供給し、その鍵を用いて、暗号化実行部４１２は、マスタ定義ブロックの相互認証用の鍵を所定の暗号アルゴリズムで暗号化する。
【０２１０】
そして、ステップＳ５０３において、共有鍵生成部４１５は、ステップＳ５０２の処理により暗号化されたデータを共有鍵として、ＲＡＭ２２３などにより構成される記憶部に記憶する。
【０２１１】
このようにして、機器Ｃと機器Ｂとの相互認証において必要となる共有鍵が生成される。
【０２１２】
この共有鍵は、後述する図３０のステップＳ４０５において、機器Ｃにより、やはり生成されることにより、機器Ｃと機器Ｂとで共有されることになる。ステップＳ４０５の設定情報登録共有鍵生成処理は、図３１を参照して上述した処理と同様なので詳細な説明は省略する。
【０２１３】
図３０のステップＳ４３５の処理の後、処理は、ステップＳ４３６に進み、機器Ｂは、認証用データ１生成処理を実行する。この処理は、図２４を参照して上述した処理と同様なので、詳細な説明は省略するが、これにより乱数RanAが暗号化されて認証用データ１が生成される。
【０２１４】
ステップＳ４３６において、機器B（乱数発生部４１１）は、機器Ｃを認証するための乱数RanBを生成（発生）する。
【０２１５】
ステップS４３７において、機器Ｂ（データ送信部４１７）は、ステップS４３６で発生した乱数と、ステップS４３５で生成した認証用データ１を、機器Ｃに送信し、ステップＳ４０６において、機器Ｃによりこれが受信される。
【０２１６】
ステップＳ４０７において、機器Ｃは、機器Ｂの認証処理を実行する。この処理は、図２６を参照して上述した処理と同様の処理なので詳細な説明は省略するが、これにより、機器Ｃにより機器Ｂが正当な通信相手であるか否かが認証される。
【０２１７】
ステップS４０７の処理の後、ステップS４０８において、機器Ｃは、ステップS４０７の処理による認証結果の判定を行う。
【０２１８】
ステップS４０８において、機器Bが認証されたと判定された場合、処理は、ステップS４０９に進む。ステップS４０８において、機器Bが認証されなかったと判定された場合、機器Ｃから機器Bにエラーが送信され、ステップＳ４３８において、機器Bによりこれが受信される。この場合、機器Ｃと機器Bとの通信処理はここで終了することになる。
【０２１９】
ステップS４０９において、機器Ｃは、認証用データ２生成処理を実行する。この処理は、図２７を参照して上述した処理と同様なので詳細な説明は省略するが、これにより乱数RanBが暗号化されて認証用データ２が生成される。
【０２２０】
ステップS４０９の処理の後、ステップS４１０において、機器Ｃ（データ送信部３１７）は、ステップS４０９で生成した認証用データ２を機器Ｂに送信し、ステップＳ４３９において、機器Ｂによりこれが受信される。
【０２２１】
ステップＳ４４０において、機器Ｂは、ステップＳ４３９で受信した認証用データ２に基づいて、機器Ｃの認証処理を実行する。この処理は、図２９を参照して上述した機器Ａの認証処理を、機器Ｃに置き換えたものであり、図２９の場合と同様の処理となるので、詳細な説明は省略するが、これにより、機器Ｂにより機器Ｃの認証が行われる。
【０２２２】
ステップS４４０の処理の後、ステップS４４１において、機器Ｂは、ステップS４４０の処理による認証結果の判定を行う。
【０２２３】
ステップS４４１において、機器Ｃが認証されたと判定された場合、その後、組合せ設定情報の登録（追加／変更を含む）などの処理が実行されることになる。
【０２２４】
ステップS４４１において、機器Ｃが認証されなかったと判定された場合、機器Ｂから機器Ｃにエラーが送信され、ステップＳ４１１において、機器Ｃによりこれが受信される。この場合、機器Ｃと機器Bとの通信処理はここで終了することになる。
【０２２５】
このようにして、機器Ｃと機器Ｂの間で組合せ設定情報の登録に先立って、相互認証が行われる。機器Ｃと機器Ｂとでは、相互認証に用いる共有鍵がマスタ定義ブロックに記述される複数の異なる鍵により暗号化されて生成されるようにしたので、第３者による成りすましが防止され、相互認証の確実性を高めることができる。
【０２２６】
なお、上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、例えば、そのソフトウェアを構成するプログラムが、バス２００を介して、インターネットなどのネットワークや、リムーバブルメディアなどからなる記録媒体からインストールされる。
【０２２７】
なお、この記録媒体は、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フロッピディスク（登録商標）を含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（MD（Mini-Disk）（登録商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディアにより構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信され、プログラムが記録されている、例えば、ROM２１２または２２２などで構成されるものも含む。
【０２２８】
なお、本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０２２９】
【図１】情報処理装置Ａと情報処理装置Ｂの相互認証の処理の流れを説明するアローチャートである。
【図２】情報処理装置Ｂの内部に記憶されているデータの例を示す図である。
【図３】フォルダとファイルに設定される鍵の例を示す図である。
【図４】組合せ設定情報の例を示す図である。
【図５】組合せ設定情報の例を示す図である。
【図６】本発明に係る情報処理システムの一実施の形態を示す図である。
【図７】機器Ａの内部構成例を示すブロック図である。
【図８】機器Ｂの内部構成例を示すブロック図である。
【図９】機器Ｂに記憶されるデータの例を示す図である。
【図１０】図９のマスタ定義ブロックの構成例を示す図である。
【図１１】図９の組合せ設定情報ブロックの構成例を示す図である。
【図１２】図９のエリア定義ブロックの構成例を示す図である。
【図１３】図９のデータ定義ブロックの構成例を示す図である。
【図１４】図９の実データブロックの構成例を示す図である。
【図１５】図９のデータが生成される過程を説明する図である。
【図１６】図９のデータが生成される過程を説明する図である。
【図１７】図９のデータが生成される過程を説明する図である。
【図１８】図７のCPUにより実行されるソフトウェアの機能的構成例を示すブロック図である。
【図１９】図８のCPUにより実行されるソフトウェアの機能的構成例を示すブロック図である。
【図２０】機器Ａと機器Ｂにおいて行われる相互認証の処理の流れを説明するアローチャートである。
【図２１】パケット１の構成例を示す図である。
【図２２】アクセス対象チェック処理を説明するフローチャートである。
【図２３】共有鍵生成処理を説明するフローチャートである。
【図２４】認証用データ１生成処理を説明するフローチャートである。
【図２５】パケット２の構成例を示す図である。
【図２６】機器Ｂの認証処理を説明するフローチャートである。
【図２７】認証用データ２生成処理を説明するフローチャートである。
【図２８】パケット３の構成例を示す図である。
【図２９】機器Ａの認証処理を説明するフローチャートである。
【図３０】機器Ｃと機器Ｂにおいて行われる相互認証の処理の流れを説明するアローチャートである。
【図３１】設定情報登録共有鍵生成処理を説明するフローチャートである。
【符号の説明】
【０２３０】
２１１  ＣＰＵ，  ２１２  ＲＯＭ，  ２１３  ＲＡＭ，  ２２１  ＣＰＵ，  ２２２  ＲＯＭ，  ２２３  ＲＡＭ，  ２２４  ＥＥＰＲＯＭ，  ３１１  乱数発生部，  ３１２  暗号化実行部，  ３１３  復号実行部，  ３１４  認証部，  ３１５  共有鍵生成部，  ３１９  アクセス対象管理部，  ４１１  乱数発生部，  ４１２  暗号化実行部，  ４１３  復号実行部，  ４１４  認証部，  ４１５  共有鍵生成部，  ４１９  アクセス対象管理部
【図１】
2006101213.tif 000003
【図２】
2006101213.tif 000004
【図３】
2006101213.tif 000005
【図４】
2006101213.tif 000006
【図５】
2006101213.tif 000007
【図６】
2006101213.tif 000008
【図７】
2006101213.tif 000009
【図８】
2006101213.tif 000010
【図９】
2006101213.tif 000011
【図１０】
2006101213.tif 000012
【図１１】
2006101213.tif 000013
【図１２】
2006101213.tif 000014
【図１３】
2006101213.tif 000015
【図１４】
2006101213.tif 000016
【図１５】
2006101213.tif 000017
【図１６】
2006101213.tif 000018
【図１７】
2006101213.tif 000019
【図１８】
2006101213.tif 000020
【図１９】
2006101213.tif 000021
【図２０】
2006101213.tif 000022
【図２１】
2006101213.tif 000023
【図２２】
2006101213.tif 000024
【図２３】
2006101213.tif 000025
【図２４】
2006101213.tif 000026
【図２５】
2006101213.tif 000027
【図２６】
2006101213.tif 000028
【図２７】
2006101213.tif 000029
【図２８】
2006101213.tif 000030
【図２９】
2006101213.tif 000031
【図３０】
2006101213.tif 000032
【図３１】
2006101213.tif 000033