(57)【要約】【課題】通信する機器同士が確実に相互認証することができるようにする。【解決手段】  機器Aが乱数RanAに基づいて認証用データ１を生成し、機器Bに送信する。機器Bは、認証用データ１の乱数RanAを複数の暗号アルゴリズムで暗号化し、認証用データ２を生成し、機器Ａに送信する。機器Ａは、認証用データ２を、複数の暗号アルゴリズムに対応する復号方法で復号し、乱数RanAが得られた場合、機器Bを認証する。機器Bも同様に機器Aを認証することにより機器Aと機器Bとが相互認証を行う。本発明は、非接触型ＩＣカードに適用することができる。【選択図】図９
2006080642.tif 000002
【特許請求の範囲】
【請求項１】
有線または無線により、他の情報処理装置と通信を行う情報処理装置であって、
乱数を発生する乱数発生手段と、
前記乱数発生手段により発生された乱数に基づいて、前記他の情報処理装置の認証に関する第１の認証データを生成する第１の認証データ生成手段と、
前記第１の認証データを前記他の情報処理装置に送信する認証データ送信手段と、
前記第１の認証データに基づいて、前記他の情報処理装置により生成された前記他の情報処理装置の認証に関する第２の認証データを受信する認証データ受信手段と、
前記第２の認証データを、複数または単数の暗号化方式に対応する復号方式を用いて復号する復号手段と、
前記復号手段により復号された前記第２の認証データと、前記乱数発生手段により発生された乱数に基づいて、前記他の情報処理装置が正当な通信相手か否かを認証する認証手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記複数または単数の暗号化方式に関する情報を記憶し、前記復号手段に供給する暗号化方式管理手段をさらに備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記暗号化方式に関する情報は、暗号アルゴリズムを特定する情報と、前記暗号アルゴリズム、または前記暗号アルゴリズムに対応する復号方法によりデータの暗号化、または復号を行う場合に用いられる鍵の情報とを含み、
前記暗号化方式管理手段は、それぞれ異なる複数の暗号化方式の情報を、前記復号手段に、予め設定された順番で供給する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記暗号化方式に関する情報は、前記他の情報処理装置により共有され、
前記第２の認証データは、前記他の情報処理装置により、前記第１の認証データの前記乱数が、それぞれ異なる複数の暗号化方式で暗号化され、生成される
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記復号手段は、
前記第２の認証データを、前記他の情報処理装置が用いた複数の前記暗号化方式に対応する復号方法で復号し、
前記認証手段は、
前記復号手段により復号された前記第２の認証データが、前記乱数と一致した場合、前記他の情報処理装置を、正当な通信相手として認証する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項６】
前記暗号化方式管理手段は、前記鍵を生成するために必要となる情報をさらに記憶し、
前記情報に基づいて、前記鍵を生成する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記鍵を生成するために必要となる情報には、利用されるデータの種類に対応付けられた、異なる複数の暗号化方式の情報が含まれ、
前記暗号化方式管理手段は、
利用される複数または単数のデータの種類に対応する暗号化方式により、前記他の情報処理装置と共有する平文を暗号化することにより、前記鍵を生成する
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記暗号化方式に関する情報は、暗号アルゴリズムを特定する情報と、前記暗号アルゴリズムによりデータの暗号化を行う場合に用いられる鍵の情報とを含む
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記他の情報処理装置により、自分が認証されるために発生される乱数に基づいて生成される第３の認証データをさらに受信し、
前記第３の認証データの前記乱数を、複数または単数の暗号化方式を用いて暗号化し、第４の認証データを生成し、前記他の情報処理装置に送信する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項１０】
前記第４の認証データに基づいて、前記他の情報処理装置により認証される
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
有線または無線により、他の情報処理装置と通信を行う情報処理装置の情報処理方法であって、
乱数を発生する乱数発生ステップと、
前記乱数発生ステップの処理により発生された乱数に基づいて、前記他の情報処理装置の認証に関する第１の認証データを生成する第１の認証データ生成ステップと、
前記第１の認証データを前記他の情報処理装置に送信する認証データ送信ステップと、
前記第１の認証データに基づいて、前記他の情報処理装置により生成された前記他の情報処理装置の認証に関する第２の認証データを受信する認証データ受信ステップと、
前記第２の認証データを、複数または単数の暗号化方式に対応する復号方式を用いて復号する復号ステップと、
前記復号ステップの処理により復号された前記第２の認証データと、前記乱数発生ステップの処理により発生された乱数に基づいて、前記他の情報処理装置が正当な通信相手か否かを認証する認証ステップと
を含むことを特徴とする情報処理方法。
【請求項１２】
有線または無線により、他の情報処理装置と通信を行う情報処理装置のプログラムであって、
乱数の発生を制御する乱数発生制御ステップと、
前記乱数発生制御ステップの処理により発生された乱数に基づいて、前記他の情報処理装置の認証に関する第１の認証データの生成を制御する第１の認証データ生成制御ステップと、
前記第１の認証データの前記他の情報処理装置への送信を制御する認証データ送信制御ステップと、
前記第１の認証データに基づいて、前記他の情報処理装置により生成された前記他の情報処理装置の認証に関する第２の認証データの受信を制御する認証データ受信制御ステップと、
前記第２の認証データを、複数または単数の暗号化方式に対応する復号方式を用いて復号するように制御する復号制御ステップと、
前記復号制御ステップの処理により復号された前記第２の認証データと、前記乱数発生制御ステップの処理により発生された乱数に基づいて、前記他の情報処理装置が正当な通信相手か否かの認証を制御する認証制御ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項１３】
有線または無線により、他の情報処理装置と通信を行う情報処理装置のプログラムが記録されている記録媒体であって、
乱数の発生を制御する乱数発生制御ステップと、
前記乱数発生制御ステップの処理により発生された乱数に基づいて、前記他の情報処理装置の認証に関する第１の認証データの生成を制御する第１の認証データ生成制御ステップと、
前記第１の認証データの前記他の情報処理装置への送信を制御する認証データ送信制御ステップと、
前記第１の認証データに基づいて、前記他の情報処理装置により生成された前記他の情報処理装置の認証に関する第２の認証データの受信を制御する認証データ受信制御ステップと、
前記第２の認証データを、複数または単数の暗号化方式に対応する復号方式を用いて復号するように制御する復号制御ステップと、
前記復号制御ステップの処理により復号された前記第２の認証データと、前記乱数発生制御ステップの処理により発生された乱数に基づいて、前記他の情報処理装置が正当な通信相手か否かの認証を制御する認証制御ステップと
をコンピュータに実行させるプログラムが記録されることを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、プログラム並びに記録媒体に関し、特に、通信する機器同士が確実に相互認証することができるようにする情報処理装置および方法、プログラム並びに記録媒体に関する。
【背景技術】
【０００２】
ＩＣカードを用いた各種のトランザクション処理などを行う場合、セキュリティを強化するため、トランザクション処理の実行に先立って、ＩＣカードとリーダライタとが相互に認証（相互認証）を行うことが一般的である（例えば、特許文献１参照）。
【０００３】
従来の相互認証は、図１と図２に示されるようにして行われていた。すなわち、リーダライタがＩＣカードを認証する場合、図１に示されるように、リーダライタが、乱数Ａを発生し、乱数ＡをＩＣカードに送信する。ＩＣカードは、乱数Ａを、鍵１を用いて所定の暗号アルゴリズムで暗号化し、さらに、鍵２を用いて同じ暗号アルゴリズムで暗号化し、認証用データ１を生成し、認証用データ１をリーダライタに送信する。ここで、鍵１と鍵２は、予めリーダライタとＩＣカードとにより共有されており、暗号アルゴリズムも予めリーダライタとＩＣカードとにより同じ暗号アルゴリズムが実装されている。
【０００４】
次に、リーダライタは、認証用データ１を受信し、鍵２を用いて上述した暗号アルゴリズムに則って復号し、さらに鍵１を用いて同じ暗号アルゴリズムに則って復号する。この処理の結果、乱数Ａが得られれば、リーダライタはＩＣカードを（正当なＩＣカードとして）認証する。
【０００５】
一方、ＩＣカードがリーダライタを認証する場合、図２に示されるように、ＩＣカードが、乱数Ｂを発生し、乱数Ｂをリーダライタに送信する。リーダライタは、乱数Ｂを、鍵１を用いて所定の暗号アルゴリズムで暗号化し、さらに、鍵２を用いて同じ暗号アルゴリズムで暗号化し、認証用データ２を生成し、認証用データ２をＩＣカードに送信する。
【０００６】
次に、ＩＣカードは、認証用データ２を受信し、鍵２を用いて上述した暗号アルゴリズムに則って復号し、さらに鍵１を用いて同じ暗号アルゴリズムに則って復号する。この処理の結果、乱数Ｂが得られれば、ＩＣカードはリーダライタを（正当なリーダライタとして）認証する。
【０００７】
また、相互認証の確実性を高めるために、予めリーダライタとＩＣカードとにより共有されている鍵（鍵１と鍵２）を利用する代わりに、アクセスするデータの種類などに応じて定まる鍵を利用して相互認証用の鍵を生成する方法も提案されている。この場合、相互認証用の鍵は、図３に示されるようにして生成される。
【０００８】
すなわち、例えば、トランザクションでアクセスするデータがデータＤ１乃至Ｄ５である場合、リーダライタまたはＩＣカードは、互いに共有するテキストデータなどの平文を、データＤ１乃至Ｄ５に対応付けられた鍵Ｉ乃至鍵Ｖにより暗号化し、相互認証用の暗号鍵を生成する。この場合、アクセスするデータと鍵を対応付けるテーブルが、予めリーダライタとＩＣカードとにより共有されていることになる。
【０００９】
【特許文献１】特開平１０−２０７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の技術では、相互認証に用いられる暗号アルゴリズムが、予め定められたものに限られるため、例えば、その暗号アルゴリズムの解読方法が発見された場合に、相互認証の確実性が低くなるという課題があった。
【００１１】
本発明はこのような状況に鑑みてなされたものであり、通信する機器同士が確実に相互認証することができるようにするものである。
【課題を解決するための手段】
【００１２】
本発明の情報処理装置は、有線または無線により、他の情報処理装置と通信を行う情報処理装置であって、乱数を発生する乱数発生手段と、乱数発生手段により発生された乱数に基づいて、他の情報処理装置の認証に関する第１の認証データを生成する第１の認証データ生成手段と、第１の認証データを他の情報処理装置に送信する認証データ送信手段と、第１の認証データに基づいて、他の情報処理装置により生成された他の情報処理装置の認証に関する第２の認証データを受信する認証データ受信手段と、第２の認証データを、複数または単数の暗号化方式に対応する復号方式を用いて復号する復号手段と、復号手段により復号された第２の認証データと、乱数発生手段により発生された乱数に基づいて、他の情報処理装置が正当な通信相手か否かを認証する認証手段とを備えることを特徴とする。
【００１３】
前記複数または単数の暗号化方式に関する情報を記憶し、復号手段に供給する暗号化方式管理手段をさらに備えるようにすることができる。
【００１４】
前記暗号化方式に関する情報は、暗号アルゴリズムを特定する情報と、暗号アルゴリズム、または暗号アルゴリズムに対応する復号方法によりデータの暗号化、または復号を行う場合に用いられる鍵の情報とを含み、暗号化方式管理手段は、それぞれ異なる複数の暗号化方式の情報を、復号手段に、予め設定された順番で供給するようにすることができる。
【００１５】
前記暗号化方式に関する情報は、他の情報処理装置により共有され、第２の認証データは、他の情報処理装置により、第１の認証データの前記乱数が、それぞれ異なる複数の暗号化方式で暗号化され、生成されるようにすることができる。
【００１６】
前記復号手段は、第２の認証データを、他の情報処理装置が用いた複数の暗号化方式に対応する復号方法で復号し、認証手段は、復号手段により復号された第２の認証データが、乱数と一致した場合、他の情報処理装置を、正当な通信相手として認証するようにすることができる。
【００１７】
前記暗号化方式管理手段は、鍵を生成するために必要となる情報をさらに記憶し、情報に基づいて、鍵を生成するようにすることができる。
【００１８】
前記鍵を生成するために必要となる情報には、利用されるデータの種類に対応付けられた、異なる複数の暗号化方式の情報が含まれ、暗号化方式管理手段は、利用される複数または単数のデータの種類に対応する暗号化方式により、他の情報処理装置と共有する平文を暗号化することにより、鍵を生成するようにすることができる。
【００１９】
前記暗号化方式に関する情報は、暗号アルゴリズムを特定する情報と、暗号アルゴリズムによりデータの暗号化を行う場合に用いられる鍵の情報とを含むようにすることができる。
【００２０】
前記他の情報処理装置により、自分が認証されるために発生される乱数に基づいて生成される第３の認証データをさらに受信し、第３の認証データの乱数を、複数または単数の暗号化方式を用いて暗号化し、第４の認証データを生成し、他の情報処理装置に送信するようにすることができる。
【００２１】
前記第４の認証データに基づいて、他の情報処理装置により認証されるようにすることができる。
【００２２】
本発明の情報処理方法は、有線または無線により、他の情報処理装置と通信を行う情報処理装置の情報処理方法であって、乱数を発生する乱数発生ステップと、乱数発生ステップの処理により発生された乱数に基づいて、他の情報処理装置の認証に関する第１の認証データを生成する第１の認証データ生成ステップと、第１の認証データを他の情報処理装置に送信する認証データ送信ステップと、第１の認証データに基づいて、他の情報処理装置により生成された他の情報処理装置の認証に関する第２の認証データを受信する認証データ受信ステップと、第２の認証データを、複数または単数の暗号化方式に対応する復号方式を用いて復号する復号ステップと、復号ステップの処理により復号された第２の認証データと、乱数発生ステップの処理により発生された乱数に基づいて、他の情報処理装置が正当な通信相手か否かを認証する認証ステップとを含むことを特徴とする。
【００２３】
本発明のプログラムは、有線または無線により、他の情報処理装置と通信を行う情報処理装置のプログラムであって、乱数の発生を制御する乱数発生制御ステップと、乱数発生制御ステップの処理により発生された乱数に基づいて、他の情報処理装置の認証に関する第１の認証データの生成を制御する第１の認証データ生成制御ステップと、第１の認証データの他の情報処理装置への送信を制御する認証データ送信制御ステップと、第１の認証データに基づいて、他の情報処理装置により生成された他の情報処理装置の認証に関する第２の認証データの受信を制御する認証データ受信制御ステップと、第２の認証データを、複数または単数の暗号化方式に対応する復号方式を用いて復号するように制御する復号制御ステップと、復号制御ステップの処理により復号された第２の認証データと、乱数発生制御ステップの処理により発生された乱数に基づいて、他の情報処理装置が正当な通信相手か否かの認証を制御する認証制御ステップとをコンピュータに実行させることを特徴とする。
【００２４】
本発明の記録媒体は、有線または無線により、他の情報処理装置と通信を行う情報処理装置のプログラムが記録されている記録媒体であって、乱数の発生を制御する乱数発生制御ステップと、乱数発生制御ステップの処理により発生された乱数に基づいて、他の情報処理装置の認証に関する第１の認証データの生成を制御する第１の認証データ生成制御ステップと、第１の認証データの他の情報処理装置への送信を制御する認証データ送信制御ステップと、第１の認証データに基づいて、他の情報処理装置により生成された他の情報処理装置の認証に関する第２の認証データの受信を制御する認証データ受信制御ステップと、第２の認証データを、複数または単数の暗号化方式に対応する復号方式を用いて復号するように制御する復号制御ステップと、復号制御ステップの処理により復号された第２の認証データと、乱数発生制御ステップの処理により発生された乱数に基づいて、他の情報処理装置が正当な通信相手か否かの認証を制御する認証制御ステップとをコンピュータに実行させるプログラムが記録されることを特徴とする。
【００２５】
本発明の情報処理装置および方法、並びにプログラムにおいては、乱数が発生され、発生された乱数に基づいて、他の情報処理装置の認証に関する第１の認証データが生成され、第１の認証データが他の情報処理装置に送信され、第１の認証データに基づいて、他の情報処理装置により生成された他の情報処理装置の認証に関する第２の認証データが受信される。また、第２の認証データが、複数または単数の暗号化方式に対応する復号方式を用いて復号され、復号された第２の認証データと、発生された乱数に基づいて、他の情報処理装置が正当な通信相手か否かが認証される。
【発明の効果】
【００２６】
本発明によれば、通信する機器同士が確実に相互認証することができる。
【発明を実施するための最良の形態】
【００２７】
以下に本発明の実施の形態を説明するが、本明細書に記載した発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が明細書に記載されていることを確認するためのものである。従って、明細書には記載されているが、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００２８】
さらに、この記載は、明細書に記載されている発明が、全て請求されていることを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出願、または追加される発明の存在を否定するものではない。
【００２９】
請求項１に記載の情報処理装置は、有線または無線により、他の情報処理装置と通信を行う情報処理装置（例えば、図４の機器B）であって、乱数（例えば、乱数RanB）を発生する乱数発生手段（例えば、図１６のステップS２０１の処理を実行する図８の乱数発生部４１１）と、前記乱数発生手段により発生された乱数に基づいて、前記他の情報処理装置の認証に関する第１の認証データ（例えば、認証データ３）を生成する第１の認証データ生成手段（例えば、図１６のステップS２０４の処理を実行する図８の認証データ生成部４１８）と、前記第１の認証データを前記他の情報処理装置に送信する認証データ送信手段（例えば、図９のステップS２６の処理を実行する図８のデータ送信部４１７）と、前記第１の認証データに基づいて、前記他の情報処理装置により生成された前記他の情報処理装置の認証に関する第２の認証データ（例えば、認証データ４）を受信する認証データ受信手段（例えば、図９のステップS２８の処理を実行する図８のデータ受信部４１６）と、前記第２の認証データを、複数または単数の暗号化方式（例えば、図１２の暗号化方式１乃至暗号化方式３）に対応する復号方式を用いて復号する復号手段（例えば、図２３のステップS３４１の処理を実行する図８の復号実行部４１３）と、前記復号手段により復号された前記第２の認証データと、前記乱数発生手段により発生された乱数に基づいて、前記他の情報処理装置が正当な通信相手か否かを認証する認証手段（例えば、図２３のステップS３４３の処理を実行する図８の認証部４１４）とを備える。
【００３０】
請求項２に記載の情報処理装置は、前記複数または単数の暗号化方式に関する情報を記憶し、前記復号手段に供給する暗号化方式管理手段（例えば、図８のアルゴリズム／鍵情報管理部４１５）をさらに備えるようにすることができる。
【００３１】
請求項３に記載の情報処理装置は、前記暗号化方式に関する情報が、暗号アルゴリズムを特定する情報（例えば、図１２のアルゴリズム１乃至アルゴリズム３）と、前記暗号アルゴリズム、または前記暗号アルゴリズムに対応する復号方法によりデータの暗号化、または復号を行う場合に用いられる鍵（例えば、図１２の鍵１乃至鍵３）の情報とを含み、前記暗号化方式管理手段は、それぞれ異なる複数の暗号化方式の情報を、前記復号手段に、予め設定された順番で供給するようにすることができる。
【００３２】
請求項４に記載の情報処理装置は、前記暗号化方式に関する情報は、前記他の情報処理装置により共有され、前記第２の認証データは、前記他の情報処理装置により、前記第１の認証データの前記乱数（例えば、乱数RanB）が、それぞれ異なる複数の暗号化方式で暗号化され（例えば、図２２のステップS３２１乃至S３２３の処理により暗号されて）、生成されるようにすることができる。
【００３３】
請求項５に記載の情報処理装置は、前記復号手段が、前記第２の認証データを、前記他の情報処理装置が用いた複数の前記暗号化方式に対応する復号方法で復号し（例えば、図２４のステップS３６１乃至S３６３の処理により復号し）、前記認証手段は、前記復号手段により復号された前記第２の認証データが、前記乱数と一致した場合、前記他の情報処理装置を、正当な通信相手として認証するようにすることができる。
【００３４】
請求項６に記載の情報処理装置は、前記暗号化方式管理手段は、前記鍵を生成するために必要となる情報（例えば、図２５の情報）をさらに記憶し、前記情報に基づいて、前記鍵を生成する（例えば、図２６の処理により生成する）ようにすることができる。
【００３５】
請求項７に記載の情報処理装置は、前記鍵を生成するために必要となる情報には、利用されるデータ（例えば、図２５のデータ１乃至データ５）の種類に対応付けられた、異なる複数の暗号化方式（例えば、図２５の暗号化方式A乃至暗号化方式E）の情報が含まれ、前記暗号化方式管理手段は、利用される複数または単数のデータの種類に対応する暗号化方式により、前記他の情報処理装置と共有する平文を暗号化する（例えば、図２６のステップS３８１乃至３８７の処理により暗号化する）ことにより、前記鍵を生成するようにすることができる。
【００３６】
請求項８に記載の情報処理装置は、前記暗号化方式に関する情報は、暗号アルゴリズムを特定する情報（例えば、図２５のアルゴリズムＡ乃至アルゴリズムＤ）と、前記暗号アルゴリズムによりデータの暗号化を行う場合に用いられる鍵（例えば、図２５の鍵Ａ乃至鍵Ｅ）の情報とを含むようにすることができる。
【００３７】
請求項９に記載の情報処理装置は、前記他の情報処理装置により、自分が認証されるために発生される乱数（例えば、乱数RanA）に基づいて生成される第３の認証データ（例えば、認証用データ１）をさらに受信し（例えば、図９のステップS２３の処理により受信し）、前記第３の認証データの前記乱数を、複数または単数の暗号化方式（例えば、図１２の暗号化方式１乃至暗号化方式３）を用いて暗号化し、第４の認証データ（例えば、認証用データ２）を生成し（例えば、図９のステップS２４の処理により生成し）、前記他の情報処理装置に送信する（例えば、例えば、図９のステップS２６の処理により送信する）ようにすることができる。
【００３８】
請求項１０に記載の情報処理装置は、前記第４の認証データに基づいて、前記他の情報処理装置により認証される（例えば、図９のステップS６の処理により認証される）ようにすることができる。
【００３９】
請求項１１に記載の情報処理方法は、有線または無線により、他の情報処理装置と通信を行う情報処理装置（例えば、図４の機器B）の情報処理方法であって、乱数（例えば、乱数RanB）を発生する乱数発生ステップ（例えば、図１６のステップS２０１の処理）と、前記乱数発生ステップの処理により発生された乱数に基づいて、前記他の情報処理装置の認証に関する第１の認証データ（例えば、認証データ３）を生成する第１の認証データ生成ステップ（例えば、図１６のステップS２０４の処理）と、前記第１の認証データを前記他の情報処理装置に送信する認証データ送信ステップ（例えば、図９のステップS２６の処理）と、前記第１の認証データに基づいて、前記他の情報処理装置により生成された前記他の情報処理装置の認証に関する第２の認証データ（例えば、認証データ４）を受信する認証データ受信ステップ（例えば、図９のステップS２８の処理）と、前記第２の認証データを、複数または単数の暗号化方式（例えば、図１２の暗号化方式１乃至暗号化方式３）に対応する復号方式を用いて復号する復号ステップ（例えば、図２３のステップS３４１の処理）と、前記復号ステップの処理により復号された前記第２の認証データと、前記乱数発生ステップの処理により発生された乱数に基づいて、前記他の情報処理装置が正当な通信相手か否かを認証する認証ステップ（例えば、図２３のステップS３４３の処理）とを含む。
【００４０】
請求項１２に記載のプログラムは、有線または無線により、他の情報処理装置と通信を行う情報処理装置（例えば、図４の機器B）のプログラムであって、乱数（例えば、乱数RanB）の発生を制御する乱数発生制御ステップ（例えば、図１６のステップS２０１の処理）と、前記乱数発生制御ステップの処理により発生された乱数に基づいて、前記他の情報処理装置の認証に関する第１の認証データ（例えば、認証データ３）の生成を制御する第１の認証データ生成制御ステップ（例えば、図１６のステップS２０４の処理）と、前記第１の認証データの前記他の情報処理装置への送信を制御する認証データ送信制御ステップ（例えば、図９のステップS２６の処理）と、前記第１の認証データに基づいて、前記他の情報処理装置により生成された前記他の情報処理装置の認証に関する第２の認証データ（例えば、認証データ４）の受信を制御する認証データ受信制御ステップ（例えば、図９のステップS２８の処理）と、前記第２の認証データを、複数または単数の暗号化方式（例えば、図１２の暗号化方式１乃至暗号化方式３）に対応する復号方式を用いて復号するように制御する復号制御ステップ（例えば、図２３のステップS３４１の処理）と、前記復号制御ステップの処理により復号された前記第２の認証データと、前記乱数発生制御ステップの処理により発生された乱数に基づいて、前記他の情報処理装置が正当な通信相手か否かの認証を制御する認証制御ステップ（例えば、図２３のステップS３４３の処理）とをコンピュータに実行させる。
【００４１】
請求項１３に記載の記録媒体は、有線または無線により、他の情報処理装置と通信を行う情報処理装置（例えば、図４の機器B）のプログラムが記録されている記録媒体であって、乱数（例えば、乱数RanB）の発生を制御する乱数発生制御ステップ（例えば、図１６のステップS２０１の処理）と、前記乱数発生制御ステップの処理により発生された乱数に基づいて、前記他の情報処理装置の認証に関する第１の認証データ（例えば、認証データ３）の生成を制御する第１の認証データ生成制御ステップ（例えば、図１６のステップS２０４の処理）と、前記第１の認証データの前記他の情報処理装置への送信を制御する認証データ送信制御ステップ（例えば、図９のステップS２６の処理）と、前記第１の認証データに基づいて、前記他の情報処理装置により生成された前記他の情報処理装置の認証に関する第２の認証データ（例えば、認証データ４）の受信を制御する認証データ受信制御ステップ（例えば、図９のステップS２８の処理）と、前記第２の認証データを、複数または単数の暗号化方式（例えば、図１２の暗号化方式１乃至暗号化方式３）に対応する復号方式を用いて復号するように制御する復号制御ステップ（例えば、図２３のステップS３４１の処理）と、前記復号制御ステップの処理により復号された前記第２の認証データと、前記乱数発生制御ステップの処理により発生された乱数に基づいて、前記他の情報処理装置が正当な通信相手か否かの認証を制御する認証制御ステップ（例えば、図２３のステップ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２２４には、例えば、相互認証において必要となる情報、トランザクション処理において必要となる情報などが適宜記憶される。
【００６１】
ここでは、機器Ａを非接触ＩＣカード用のリーダライタ、機器Ｂを非接触ＩＣカードにより構成し、機器Ａと機器Ｂとが無線により通信する例について説明したが、機器Ａを接触型ＩＣカード用のリーダライタ、機器Ｂを接触型ＩＣカードにより構成し、有線の通信を行うようにすることも勿論可能である。さらに、機器Ａと機器Ｂとが、それぞれパーソナルコンピュータ、ＰＤＡ（Personal Digital Assistants）などの情報処理装置として構成される場合であっても、本発明を適用することが可能である。
【００６２】
図７は、図５のＣＰＵ２１１により実行されるソフトウェアの機能的構成例を示すブロック図である。
【００６３】
乱数発生部３１１は、通信相手（いまの場合機器Ｂ）と相互認証を行うとき必要となる乱数を発生し、発生した乱数を暗号化実行部３１２に供給するとともに、ＲＡＭ２１３などにより構成される記憶部に記憶する。
【００６４】
暗号化実行部３１２は、アルゴリズム／鍵情報管理部３１５から供給される情報に基づいて特定される、所定の暗号アルゴリズムと鍵により乱数発生部３１１が発生した乱数、または後述する復号実行部３１３から出力されるデータを暗号化する。暗号化実行部３１２は、例えば、ＤＥＳ（Data Encryption Standard）、トリプルＤＥＳ、AES（Advanced Encryption Standard）などの暗号アルゴリズムに対応しており、例えば、アルゴリズム／鍵情報管理部３１５からＤＥＳを特定する情報と所定の鍵が供給された場合、ＤＥＳとその鍵により乱数またはデータを暗号化する。
【００６５】
復号実行部３１３は、データ受信部３１６から受信されたデータを、アルゴリズム／鍵情報管理部３１５から供給される情報に基づいて特定される、所定の暗号アルゴリズムと鍵により復号する。復号実行部３１３は、例えば、ＤＥＳ、トリプルＤＥＳ、AESなどの暗号アルゴリズムに対応しており、例えば、アルゴリズム／鍵情報管理部３１５からＤＥＳを特定する情報と所定の鍵が供給された場合、ＤＥＳとその鍵によりデータを復号する。
【００６６】
認証部３１４は、復号実行部３１３から出力されたデータと、記憶部に記憶されている乱数を比較し、その比較結果に基づいて、通信相手（いまの場合機器Ｂ）を認証し、認証結果をデータ送信部３１７に出力する。
【００６７】
アルゴリズム／鍵情報管理部３１５は、予め設定された複数（または単数）の暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータ（例えば、乱数）を暗号化する場合に用いられる鍵の情報を対応付けて記憶しており、その情報を必要に応じて暗号化実行部３１２と復号実行部３１３に供給する。また、アルゴリズム／鍵情報管理部３１５は、それぞれ種類の異なる暗号アルゴリズムを特定する情報、および鍵を、暗号化実行部３１２、または復号実行部３１３に順次供給することにより、暗号化実行部３１２、または復号実行部３１３によるデータの暗号化または復号の処理を、それぞれ種類の異なる暗号アルゴリズムにより多段階に実行させることができる。
【００６８】
認証データ生成部３１８は、暗号化実行部３１２、または復号実行部３１３から出力されるデータに基づいて、後述する認証データを生成する。
【００６９】
データ送信部３１６とデータ受信部３１７は、それぞれ通信相手（いまの場合機器Ｂ）とのデータの送受信を制御する。
【００７０】
図８は、図６のＣＰＵ２２１により実行されるソフトウェアの機能的構成例を示すブロック図である。
【００７１】
同図において、乱数発生部４１１乃至認証データ生成部４１８は、図７の乱数発生部３１１乃至認証データ生成部３１８に対応する機能ブロックであり、それぞれ同様の機能を有するものなので、詳細な説明は省略するが、図８のアルゴリズム／鍵情報管理部４１５は、図７のアルゴリズム／鍵情報管理部３１５に対応するアルゴリズム／鍵情報管理部とされ、相互認証を行う通信相手である機器Ａとの間で、予め設定された複数（または単数）の暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータ（例えば、乱数）を暗号化する場合に用いられる鍵の情報を共有して記憶している。
【００７２】
すなわち、機器Ａにより暗号化されて送信された情報を機器Ｂが正しく復号できるように、また、機器Ｂが暗号化して送信した情報を機器Ａが正しく復号できるように、暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータを暗号化する場合に用いられる鍵の情報とが、アルゴリズム／鍵情報管理部３１５とアルゴリズム／鍵情報管理部４１５との間で予め共有されており、アルゴリズム／鍵情報管理部４１５は、暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータを暗号化する場合に用いられる鍵の情報とを、必要に応じて暗号化実行部４１２と復号実行部４１３に供給する。
【００７３】
また、アルゴリズム／鍵情報管理部４１５は、上述したアルゴリズム／鍵情報管理部３１５と同様に、それぞれ種類の異なる暗号アルゴリズムを特定する情報、および鍵を、暗号化実行部４１２、または復号実行部４１３に順次供給することにより、暗号化実行部４１２、または復号実行部４１３によるデータの暗号化または復号の処理を、それぞれ種類の異なる暗号アルゴリズムにより多段階に実行させることができる。
【００７４】
次に、機器Ａと機器Ｂにおいて行われる相互認証の処理の流れについて、図９のアローチャートを参照して説明する。この処理は、例えば、非接触ＩＣカード用のリーダライタとして構成される機器Ａにおいて、アンテナ２０５が、所定の電磁波を輻射し、それに対する負荷の変化に基づいて、非接触ICカードとして構成される機器Ｂが近接されたことが検出されたとき、トランザクション処理の実行に先立って実行される。
【００７５】
ステップＳ１において、機器Ａは、機器Ｂに対してポーリングを送信し、ステップＳ２１において、機器Ｂによりこれが受信される。ステップＳ２２において機器Ｂは、ステップＳ２１で受信したポーリングに対する応答を機器Ａに対して送信し、ステップＳ２において、機器Ａによりこれが受信される。これにより、機器Ａと機器Ｂにおいて相互認証の処理が開始される。
【００７６】
ステップＳ３において、機器Ａは、図３を参照して後述する認証用データ１生成処理を実行する。これにより、機器Ａが機器Ｂを認証するためのデータであって、乱数が暗号化された認証用データ１が生成される。そして、ステップＳ４において、機器Ａは、ステップＳ３の処理で生成した認証用データ１、および機器Aと機器Bとの間で利用されるデータを特定する情報であるアクセス対象リストを機器Ｂに対して送信し、ステップＳ２３において、機器Ｂによりこれが受信される。なお、認証用データ１として、乱数を、暗号化せず、そのまま送信するようにしてもよい。
【００７７】
ステップＳ２４において、機器Ｂは、ステップＳ２３で受信した認証用データ１に基づいて、図１３を参照して後述する認証用データ２生成処理を実行する。これにより、ステップＳ２３で受信した認証用データ１が復号され、復号されたた認証用データ１が、機器Ｂにより暗号され、認証用データ２が生成される。なお、認証用データ１として、乱数が、暗号化されずにそのまま送信される場合、認証用データ１の復号は不要となる。
【００７８】
ステップＳ２５において、機器Ｂは、図１６を参照して後述する認証用データ３生成処理を実行する。これにより、機器Ｂが機器Ａを認証するためのデータであって、乱数が暗号化された認証用データ３が生成される。そして、ステップＳ２６において、機器Ｂは、ステップＳ２４の処理で生成した認証用データ２、およびステップＳ２５の処理で生成した認証用データ３を機器Ａに対して送信し、ステップＳ５において、機器Ａによりこれが受信される。なお、認証用データ３として、乱数を、暗号化せず、そのまま送信するようにしてもよい。
【００７９】
ステップＳ６において、機器Ａは、ステップＳ５で受信した認証用データ２と認証用データ３のうち、認証用データ２に基づいて、図１８を参照して後述する機器Ｂの認証処理を実行する。これにより、機器Ａにより機器Ｂの認証（機器Ｂが正当な通信相手であるか否かの認証）が行われ、その認証結果が出力される。
【００８０】
ステップＳ７において、機器Ａは、ステップＳ６の処理による認証結果を判定する。ステップＳ７において、機器Ａにより機器Ｂ（機器Ｂの正当性）が認証されたと判定された場合、処理は、ステップＳ８に進む。
【００８１】
一方、ステップＳ７において、機器Ａにより機器Ｂ（機器Ｂの正当性）が認証されなかったと判定された場合、機器Ａから機器Ｂに対してエラーが送信され、ステップＳ２７において、機器Ｂによりこれが受信される。この場合、機器Ａと機器Ｂとの相互認証の処理は、失敗したことになり、処理はここで終了する。
【００８２】
ステップＳ８において、機器Ａは、ステップＳ５で受信した認証用データ２と認証用データ３のうち、認証用データ３に基づいて、図２０を参照して後述する認証用データ４生成処理を実行する。これにより、ステップＳ５で受信した認証用データ３が復号され、復号されたた認証用データ３が、機器Ａにより暗号され、認証用データ４が生成される。なお、認証用データ３として、乱数が、暗号化されずにそのまま送信される場合、認証用データ３の復号は不要となる。そして、ステップＳ９において、機器Ａは、ステップＳ８の処理で生成した認証用データ４を機器Ｂに対して送信し、ステップＳ２８において、機器Ｂによりこれが受信される。
【００８３】
ステップＳ２９において、機器Ｂは、図２３を参照して後述する機器Ａの認証処理を実行する。これにより、機器Ｂにより機器Ａの認証（機器Ａが正当な通信相手であるか否かの認証）が行われ、その認証結果が出力される。
【００８４】
ステップＳ３０において、機器Ｂは、ステップＳ２９の処理による認証結果を判定する。ステップＳ３０において、機器Ｂにより機器Ａ（機器Ａの正当性）が認証されたと判定された場合、機器Ａと機器Ｂとの相互認証の処理は成功したことになり、これ以後、例えば、トランザクションなどの処理が、機器Ａと機器Ｂにより行われる。
【００８５】
一方、ステップＳ３０において、機器Ｂにより機器Ａ（機器Ａの正当性）が認証されなかったと判定された場合、機器Ｂから機器Ａに対してエラーが送信され、ステップＳ１０において、機器Ａによりこれが受信される。この場合、機器Ａと機器Ｂとの相互認証の処理は、失敗したことになり、処理はここで終了する。
【００８６】
次に、図１０のフローチャートを参照して、図９のステップＳ３の認証用データ１生成処理の詳細について説明する。
【００８７】
ステップＳ１０１において、機器Ａの乱数発生部３１１は、機器Ｂを認証するための乱数（以下、乱数RanAと称する）を発生し、ステップS１０２において、ステップS１０１で発生した乱数RanAを、ＲＡＭ２１３などにより構成される記憶部に記憶する。
【００８８】
ステップS１０３において、暗号化実行部３１２は、図１１を参照して後述する乱数ＲａｎＡ暗号化処理を実行する。これにより乱数ＲａｎＡが暗号化される。そして、ステップＳ１０４において、暗号化された乱数RanAに基づいて（例えば、所定の制御情報等が付加されて）認証用データ１が生成される。
【００８９】
なお、乱数RanAを暗号化せず、所定の制御情報等を付加して認証用データ１を生成するようにしてもよい。この場合、ステップS１０３の処理は、スキップされる。
【００９０】
ここで、図１１のフローチャートを参照して、図１０のステップS１０３のRanA暗号化処理の詳細について説明する。
【００９１】
このとき暗号化実行部３１２は、乱数RanAの暗号化を行うが、上述したように、暗号化実行部３１２は、アルゴリズム／鍵情報管理部３１５から供給される、予め設定された複数（または単数）の暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータ（例えば、乱数）を暗号化する場合に用いられる鍵の情報に基づいて、暗号化を実行する。
【００９２】
図１２は、アルゴリズム／鍵情報管理部３１５により記憶されている暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータ（例えば、乱数）を暗号化（または復号）する場合に用いられる鍵の情報の例を示す図である。なお、図１２に示される情報は、上述したように、機器Aと機器Bにより共有され、アルゴリズム／鍵情報管理部４１５にも記憶されている。
【００９３】
同図において、暗号化方式１は、６４ビットのデータ長の鍵１とアルゴリズム１により構成されている。ここでアルゴリズム１は、予め設定された複数の暗号アルゴリズムのうちの第１番目の暗号アルゴリズム（例えばDES）を特定する情報となり、鍵１は、この暗号アルゴリズムによりデータを暗号化する場合に用いられる鍵となる。
【００９４】
同様に、暗号化方式２は、１２８ビットのデータ長の鍵２とアルゴリズム２により構成されている。ここでアルゴリズム２は、予め設定された複数の暗号アルゴリズムのうちの第２番目の暗号アルゴリズム（例えばＡES）を特定する情報となり、鍵２は、この暗号アルゴリズムによりデータを暗号化する場合に用いられる鍵となる。
【００９５】
さらに、暗号化方式３は、１２８ビットのデータ長の鍵３とアルゴリズム３により構成されている。ここでアルゴリズム３は、予め設定された複数の暗号アルゴリズムのうちの第３番目の暗号アルゴリズム（例えばトリプルＤＥＳ）を特定する情報となり、鍵３は、この暗号アルゴリズムによりデータを暗号化する場合に用いられる鍵となる。
【００９６】
なお、アルゴリズム1乃至アルゴリズム３に対応する暗号アルゴリズムは、例えば、秘密鍵（共通鍵）方式の暗号アルゴリズムとし、鍵１乃至鍵３は、データの暗号化とともに、その暗号アルゴリズムに対応する復号方法で、暗号化されたデータを復号する場合にも用いられるものとする。
【００９７】
機器Ａにおいては、アルゴリズム／鍵情報管理部３１５から、暗号化方式１乃至暗号化方式３の情報が、暗号化方式１乃至暗号化方式３の順に、暗号化実行部３１２に供給され、暗号化が行われるものとする。
【００９８】
すなわち、図１１のステップＳ１２１において、暗号化実行部３１２は、乱数RanAを、アルゴリズム１に対応する暗号アルゴリズムと、鍵１で暗号化する。
【００９９】
次に、ステップS１２２において、暗号化実行部３１２は、ステップS１２１の処理により暗号化されたデータを、アルゴリズム２に対応する暗号アルゴリズムと、鍵２で暗号化する。
【０１００】
さらに、ステップS１２３において、暗号化実行部３１２は、ステップS１２２の処理により暗号化されたデータを、アルゴリズム３に対応する暗号アルゴリズムと、鍵３で暗号化する。
【０１０１】
このようにして、乱数RanAに基づいて、認証用データ１が生成される。
【０１０２】
次に、図１３のフローチャートを参照して、図９のステップS２４の認証用データ２生成処理の詳細について説明する。
【０１０３】
ステップS１４１において、機器Bの復号実行部４１３は、図１４を参照して後述する認証用データ１復号処理を実行する。これにより、認証用データ１が復号され、復号された認証用データ１（すなわち、乱数RanA）が、その処理結果のデータとして、ステップS１４２で取得される。なお、認証用データ１として、乱数RanAが暗号化されず、そのまま送信されている場合、ステップS１４１における復号の処理は不要となる。
【０１０４】
ステップS１４３において、暗号化実行部４１２は、図１５を参照して後述する処理結果データ暗号化処理を実行する。これにより、ステップS１４２で取得された処理結果のデータ（すなわち、乱数RanA）が機器Bにおいて、再び暗号化される。そして、ステップＳ１４４において、暗号化された処理結果のデータに基づいて（例えば、所定の制御情報等が付加されて）認証用データ２が生成される。
【０１０５】
ここで、図１４のフローチャートを参照して、図１３のステップS１４１の認証用データ１復号処理の詳細について説明する。
【０１０６】
このとき復号実行部４１３は、認証用データ１の復号を行うが、上述したように、復号実行部４１３は、アルゴリズム／鍵情報管理部４１５から供給される、予め設定された複数（または単数）の暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータ（例えば、乱数）を暗号化（または復号）する場合に用いられる鍵の情報に基づいて、復号を実行する。
【０１０７】
機器Bにおいては、アルゴリズム／鍵情報管理部４１５から、図１２を参照して上述した暗号化方式１乃至暗号化方式３の情報が、暗号化方式３乃至暗号化方式１の順に、復号実行部４１３に供給され、復号が行われるものとする。
【０１０８】
すなわち、図１４のステップＳ１６１において、復号実行部４１３は、認証用データ１を、アルゴリズム３に対応する暗号アルゴリズム（に対応する復号のアルゴリズム）と、鍵３で復号する。
【０１０９】
次に、ステップS１６２において、復号実行部４１３は、ステップS１６１の処理により暗号化されたデータを、アルゴリズム２に対応する暗号アルゴリズム（に対応する復号のアルゴリズム）と、鍵２で復号する。
【０１１０】
さらに、ステップS１６３において、復号実行部４１３は、ステップS１６２の処理により暗号化されたデータを、アルゴリズム１に対応する暗号アルゴリズム（に対応する復号のアルゴリズム）と、鍵１で復号する。
【０１１１】
図１１を参照して上述したように、認証用データ１は、乱数RanAが、アルゴリズム１と鍵１、アルゴリズム２と鍵２、アルゴリズム３と鍵３の順番で暗号化されることにより生成されている。したがって、認証用データ１を、アルゴリズム３と鍵３、アルゴリズム２と鍵２、アルゴリズム１と鍵１の順番で復号すれば、乱数RanAが取得されることになる。すなわち、アルゴリズム／鍵情報管理部３１５と、アルゴリズム／鍵情報管理部４１５が予め設定された、暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータを暗号化する場合に用いられる鍵の情報を、暗号化実行部３１２と、復号実行部４１３に正しく供給することにより、機器Aで発生した乱数RanAが機器Bで取得されることになる。
【０１１２】
次に、図１５のフローチャートを参照して、図１３のステップS１４３の処理結果データ暗号化処理の詳細について説明する。
【０１１３】
ステップＳ１８１において、暗号化実行部４１２は、図１３のステップS１４２の処理で取得された処理結果データ（すなわち、乱数RanA）を、アルゴリズム３に対応する暗号アルゴリズムと、鍵３で暗号化する。
【０１１４】
次に、ステップS１８２において、暗号化実行部４１２は、ステップS１８１の処理により暗号化されたデータを、アルゴリズム２に対応する暗号アルゴリズムと、鍵２で暗号化する。
【０１１５】
さらに、ステップS１８３において、暗号化実行部４１２は、ステップS１８２の処理により暗号化されたデータを、アルゴリズム１に対応する暗号アルゴリズムと、鍵１で暗号化する。
【０１１６】
このようにして、処理結果データ（乱数RanA）が再び暗号化され、暗号化された処理結果データに基づいて、認証用データ２が生成される。
【０１１７】
次に、図１６のフローチャートを参照して、図９のステップS２５の認証用データ３生成処理の詳細について説明する。
【０１１８】
ステップＳ２０１において、機器Ｂの乱数発生部４１１は、機器Ａを認証するための乱数（以下、乱数RanＢと称する）を発生し、ステップS２０２において、ステップS２０１で発生した乱数RanＢを、ＲＡＭ２２３などにより構成される記憶部に記憶する。
【０１１９】
ステップS２０３において、暗号化実行部４１２は、図１７を参照して後述する乱数ＲａｎＢ暗号化処理を実行する。これによりＲａｎＢが暗号化される。そして、ステップＳ２０４において、暗号化された乱数RanＢに基づいて（例えば、所定の制御情報等が付加されて）認証用データ３が生成される。
【０１２０】
なお、乱数RanＢを暗号化せず、所定の制御情報等を付加して認証用データ３を生成するようにしてもよい。この場合、ステップS２０３の処理は、スキップされる。
【０１２１】
ここで、図１７のフローチャートを参照して、図１６のステップS２０３のRanＢ暗号化処理の詳細について説明する。
【０１２２】
このとき暗号化実行部４１２は、乱数RanBの暗号化を行うが、上述したように、暗号化実行部４１２は、アルゴリズム／鍵情報管理部４１５から供給される、予め設定された複数（または単数）の暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータを暗号化する場合に用いられる鍵の情報に基づいて、暗号化を実行する。
【０１２３】
機器Bにおいては、アルゴリズム／鍵情報管理部４１５から、図１２を参照して上述した暗号化方式１乃至暗号化方式３の情報が、暗号化方式３乃至暗号化方式１の順に、暗号化実行部４１２に供給され、暗号化が行われるものとする。
【０１２４】
すなわち、ステップS２２１において、暗号化実行部４１２は、乱数RanＢを、アルゴリズム３に対応する暗号アルゴリズムと、鍵３で暗号化する。
【０１２５】
次に、ステップS２２２において、暗号化実行部４１２は、ステップS２２１の処理により暗号化されたデータを、アルゴリズム２に対応する暗号アルゴリズムと、鍵２で暗号化する。
【０１２６】
さらに、ステップS２２３において、暗号化実行部４１２は、ステップS２２２の処理により暗号化されたデータを、アルゴリズム１に対応する暗号アルゴリズムと、鍵１で暗号化する。
【０１２７】
このようにして、乱数RanＢに基づいて、認証用データ３が生成される。
【０１２８】
次に、図１８のフローチャートを参照して、図９のステップＳ６の機器Ｂの認証処理の詳細について説明する。
【０１２９】
ステップＳ２４１において、復号実行部３１３は、図１９を参照して後述する認証用データ２復号処理を実行する。これにより、認証用データ２が復号され、復号された認証用データ２（すなわち、乱数RanA）が、その処理結果のデータとして、認証部３１４に取得される。
【０１３０】
ここで、図１９のフローチャートを参照して、図１８のステップＳ２４１の認証用データ２復号処理の詳細について説明する。
【０１３１】
このとき復号実行部３１３は、認証用データ２の復号を行うが、上述したように、復号実行部３１３は、アルゴリズム／鍵情報管理部３１５から供給される、予め設定された複数（または単数）の暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータを暗号化（または復号）する場合に用いられる鍵の情報に基づいて、復号を実行する。
【０１３２】
機器Ａにおいては、アルゴリズム／鍵情報管理部３１５から、図１２を参照して上述した暗号化方式１乃至暗号化方式３の情報が、暗号化方式１乃至暗号化方式３の順に、復号実行部３１３に供給され、復号が行われるものとする。
【０１３３】
すなわち、図１９のステップＳ２６１において、復号実行部３１３は、認証用データ２を、アルゴリズム１に対応する暗号アルゴリズム（に対応する復号のアルゴリズム）と、鍵１で復号する。
【０１３４】
次に、ステップS２６２において、復号実行部３１３は、ステップS２６１の処理により暗号化されたデータを、アルゴリズム２に対応する暗号アルゴリズム（に対応する復号のアルゴリズム）と、鍵２で復号する。
【０１３５】
さらに、ステップS２６３において、復号実行部３１３は、ステップS２６２の処理により暗号化されたデータを、アルゴリズム３に対応する暗号アルゴリズム（に対応する復号のアルゴリズム）と、鍵３で復号する。
【０１３６】
図１５を参照して上述したように、認証用データ２は、機器Ｂにより復号された認証用データ１（すなわち乱数RanA）が、アルゴリズム３と鍵３、アルゴリズム２と鍵２、アルゴリズム１と鍵１の順番で暗号化されることにより生成されている。したがって、認証用データ２を、アルゴリズム１と鍵１、アルゴリズム２と鍵２、アルゴリズム３と鍵３の順番で復号すれば、乱数RanAが取得されることになる。すなわち、アルゴリズム／鍵情報管理部３１５と、アルゴリズム／鍵情報管理部４１５が予め設定された、暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータを暗号化する場合に用いられる鍵の情報を、暗号化実行部４１２と、復号実行部３１３に正しく供給することにより、機器Ｂで暗号化した乱数RanAが機器Ａで復号されて取得されることになる。
【０１３７】
図１８に戻って、ステップＳ２４２において、認証部３１４は、処理結果のデータ（ステップＳ２４１の処理に復号された認証用データ２）と、図１０のステップＳ１０２の処理により、記憶部に記憶された乱数RanＡを比較する。
【０１３８】
ここで、図１０のステップＳ１０２の処理により、記憶部に記憶された乱数RanＡは、機器Ａが機器Ｂを認証するために発生した乱数であり、機器Ａ以外の機器が乱数RanAを事前に取得することはできない。
【０１３９】
また、処理結果のデータは、通信相手（いまの場合、機器Ｂ）から取得されたデータであり、機器Ａでの復号の方法（図１２を参照して上述した暗号化方式１乃至暗号化方式３の情報が、暗号化方式１乃至暗号化方式３の順に、復号実行部３１３に供給され、復号が行われること）を知らなければ、通信相手は、復号されるデータを想定して暗号化することができない。
【０１４０】
もし、ステップＳ２４１の処理により復号された認証用データ２と、図１０のステップＳ１０２の処理により、記憶部に記憶された乱数RanＡが一致していれば、通信相手は、機器Ａのアルゴリズム／鍵情報管理部３１５に対応する、アルゴリズム／鍵情報管理部４１５を実装しているものと考えられる。
【０１４１】
仮に、アルゴリズム／鍵情報管理部４１５を実装していない第３者が、機器Bに成りすましているとすれば、その第３者は、機器Ａにおいて認証用データ２が、アルゴリズム１、アルゴリズム２、アルゴリズム３の順番で復号されていることをつきとめて、さらに、鍵１、鍵２、および鍵３を解読して認証用データ２を生成していたことになり、このような暗号の解読作業を行うことは事実上不可能に近い。
【０１４２】
したがって、ステップS２４２の処理による、処理結果のデータ（ステップＳ２４１の処理に復号された認証用データ２）と、図１０のステップＳ１０２の処理により、記憶部に記憶された乱数RanＡの比較の結果、両者の値が一致していれば、機器Bが正当な通信相手として認証されたことになる。
【０１４３】
ステップS２４３において、認証部３１４は、ステップS２４２の処理による比較の結果、両者の値が一致したか否かを判定する。
【０１４４】
ステップS２４３において、値が一致したと判定された場合、処理は、ステップS２４４に進み、認証部３１４は、機器Bが認証されたことを表す認証フラグをオンに設定する。
【０１４５】
一方、ステップS２４３において、値が一致しなかったと判定された場合、処理は、ステップS２４５に進み、認証部３１４は、上述した認証フラグをオフに設定する。
【０１４６】
このようにして、機器Bの認証が行われる。ここで、認証フラグがオンに設定された場合、図９のステップS７の処理では、機器Bが認証されたと判定され、処理は、ステップS８に進む。認証フラグがオフに設定された場合、図９のステップS７の処理では、機器Bが認証されなかったと判定され、機器Aから機器Bにエラーが送信される。
【０１４７】
次に、図２０のフローチャートを参照して、図９のステップS８の認証用データ４生成処理の詳細について説明する。
【０１４８】
ステップS２８１において、機器Ａの復号実行部３１３は、図２１を参照して後述する認証用データ３復号処理を実行する。これにより、認証用データ３が復号され、復号された認証用データ３（すなわち、乱数RanＢ）が、その処理結果のデータとして、ステップS２８２で取得される。なお、認証用データ３として、乱数RanＢが暗号化されず、そのまま送信されている場合、ステップS２８１における復号の処理は不要となる。
【０１４９】
ステップS２８３において、暗号化実行部３１２は、図２２を参照して後述する処理結果データ暗号化処理を実行する。これにより、ステップS２８２で取得された処理結果のデータ（すなわち、乱数RanＢ）が機器Ａにおいて、再び暗号化される。そして、ステップＳ２８４において、暗号化された処理結果のデータに基づいて（例えば、所定の制御情報等が付加されて）認証用データ４が生成される。
【０１５０】
ここで、図２１のフローチャートを参照して、図２０のステップS２８１の認証用データ３復号処理の詳細について説明する。上述したように、機器Ａにおいては、アルゴリズム／鍵情報管理部３１５から、図１２を参照して上述した暗号化方式１乃至暗号化方式３の情報が、暗号化方式１乃至暗号化方式３の順に、復号実行部３１３に供給され、復号が行われる。
【０１５１】
すなわち、図２１のステップＳ３０１において、復号実行部３１３は、認証用データ３を、アルゴリズム１に対応する暗号アルゴリズム（に対応する復号のアルゴリズム）と、鍵１で復号する。
【０１５２】
次に、ステップS３０２において、復号実行部３１３は、ステップS３０１の処理により暗号化されたデータを、アルゴリズム２に対応する暗号アルゴリズム（に対応する復号のアルゴリズム）と、鍵２で復号する。
【０１５３】
さらに、ステップS３０３において、復号実行部３１３は、ステップS３０２の処理により暗号化されたデータを、アルゴリズム３に対応する暗号アルゴリズム（に対応する復号のアルゴリズム）と、鍵３で復号する。
【０１５４】
図１７を参照して上述したように、認証用データ３は、乱数RanＢが、アルゴリズム３と鍵３、アルゴリズム２と鍵２、アルゴリズム１と鍵１の順番で暗号化されることにより生成されている。したがって、認証用データ３を、アルゴリズム１と鍵１、アルゴリズム２と鍵２、アルゴリズム３と鍵３の順番で復号すれば、乱数RanBが取得されることになる。すなわち、アルゴリズム／鍵情報管理部３１５と、アルゴリズム／鍵情報管理部４１５が予め設定された、暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータを暗号化する場合に用いられる鍵の情報を、暗号化実行部４１２と、復号実行部３１３に正しく供給することにより、機器Ｂで発生した乱数RanＢが機器Ａで取得されることになる。
【０１５５】
次に、図２２のフローチャートを参照して、図２０のステップS２８３の処理結果データ暗号化処理の詳細について説明する。
【０１５６】
ステップＳ３２１において、暗号化実行部３１２は、図２０のステップS２８２の処理で取得された処理結果データ（すなわち、乱数RanＢ）を、アルゴリズム１に対応する暗号アルゴリズムと、鍵１で暗号化する。
【０１５７】
次に、ステップS３２２において、暗号化実行部３１２は、ステップS３２１の処理により暗号化されたデータを、アルゴリズム２に対応する暗号アルゴリズムと、鍵２で暗号化する。
【０１５８】
さらに、ステップS３２３において、暗号化実行部４１２は、ステップS３２２の処理により暗号化されたデータを、アルゴリズム３に対応する暗号アルゴリズムと、鍵２で暗号化する。
【０１５９】
このようにして、処理結果データ（乱数RanＢ）が再び暗号化され、暗号化された処理結果データに基づいて、認証用データ４が生成される。
【０１６０】
次に、図２３のフローチャートを参照して、図９のステップＳ２９の機器Ａの認証処理の詳細について説明する。
【０１６１】
ステップＳ３４１において、復号実行部４１３は、図２４を参照して後述する認証用データ４復号処理を実行する。これにより、認証用データ４が復号され、復号された認証用データ２（すなわち、乱数RanＢ）が、その処理結果のデータとして、認証部４１４に取得される。
【０１６２】
ここで、図２４のフローチャートを参照して、図２３のステップＳ３４１の認証用データ４復号処理の詳細について説明する。上述したように、機器Ｂにおいては、アルゴリズム／鍵情報管理部４１５から、図１２を参照して上述した暗号化方式１乃至暗号化方式３の情報が、暗号化方式３乃至暗号化方式１の順に、復号実行部４１３に供給され、復号が行われる。
【０１６３】
すなわち、図２４のステップＳ３６１において、復号実行部４１３は、認証用データ４を、アルゴリズム３に対応する暗号アルゴリズム（に対応する復号のアルゴリズム）と、鍵３で復号する。
【０１６４】
次に、ステップS３６２において、復号実行部４１３は、ステップS３６１の処理により暗号化されたデータを、アルゴリズム２に対応する暗号アルゴリズム（に対応する復号のアルゴリズム）と、鍵２で復号する。
【０１６５】
さらに、ステップS３６３において、復号実行部４１３は、ステップS３６２の処理により暗号化されたデータを、アルゴリズム１に対応する暗号アルゴリズム（に対応する復号のアルゴリズム）と、鍵１で復号する。
【０１６６】
図２２を参照して上述したように、認証用データ４は、機器Ｂにより復号された認証用データ３（すなわち乱数RanＢ）が、アルゴリズム１と鍵１、アルゴリズム２と鍵２、アルゴリズム３と鍵３の順番で暗号化されることにより生成されている。したがって、認証用データ４を、アルゴリズム３と鍵３、アルゴリズム２と鍵２、アルゴリズム１と鍵１の順番で復号すれば、乱数RanＢが取得されることになる。すなわち、アルゴリズム／鍵情報管理部３１５と、アルゴリズム／鍵情報管理部４１５が予め設定された、暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータを暗号化する場合に用いられる鍵の情報を、暗号化実行部３１２と、復号実行部４１３に正しく供給することにより、機器Ａで暗号化した乱数RanＢが機器Ｂで復号されて取得されることになる。
【０１６７】
図２３に戻って、ステップＳ３４２において、認証部４１４は、処理結果のデータ（ステップＳ３４１の処理に復号された認証用データ４）と、図１６のステップＳ２０２の処理により、記憶部に記憶された乱数RanＢを比較する。
【０１６８】
ここで、図１６のステップＳ２０２の処理により、記憶部に記憶された乱数RanＢは、機器Ｂが機器Ａを認証するために発生した乱数であり、機器Ｂ以外の機器が乱数RanBを事前に取得することはできない。
【０１６９】
また、処理結果のデータは、通信相手（いまの場合、機器Ａ）から取得されたデータであり、機器Ｂでの復号の方法（図１２を参照して上述した暗号化方式１乃至暗号化方式３の情報が、暗号化方式３乃至暗号化方式１の順に、復号実行部４１３に供給され、復号が行われること）を知らなければ、通信相手は、復号されるデータを想定して暗号化することができない。
【０１７０】
もし、ステップＳ３４１の処理により復号された認証用データ４と、図１６のステップＳ２０２の処理により、記憶部に記憶された乱数RanＢが一致していれば、通信相手は、機器Ｂのアルゴリズム／鍵情報管理部４１５に対応する、アルゴリズム／鍵情報管理部３１５を実装しているものと考えられる。
【０１７１】
仮に、アルゴリズム／鍵情報管理部３１５を実装していない第３者が、機器Ａに成りすましているとすれば、その第３者は、機器Ｂにおいて認証用データ４が、アルゴリズム３、アルゴリズム２、アルゴリズム１の順番で復号されていることをつきとめて、さらに、鍵３、鍵２、および鍵１を解読して認証用データ４を生成していたことになり、このような暗号の解読作業を行うことは事実上不可能に近い。
【０１７２】
したがって、ステップS３４２の処理による、処理結果のデータ（ステップＳ３４１の処理に復号された認証用データ４）と、図１６のステップＳ２０２の処理により、記憶部に記憶された乱数RanＢの比較の結果、両者の値が一致していれば、機器Ａが正当な通信相手として認証されたことになる。
【０１７３】
ステップS３４３において、認証部４１４は、ステップS３４２の処理による比較の結果、両者の値が一致したか否かを判定する。
【０１７４】
ステップS３４３において、値が一致したと判定された場合、処理は、ステップS３４４に進み、認証部４１４は、機器Ａが認証されたことを表す認証フラグをオンに設定する。
【０１７５】
一方、ステップS３４３において、値が一致しなかったと判定された場合、処理は、ステップS３４５に進み、認証部４１４は、上述した認証フラグをオフに設定する。
【０１７６】
このようにして、機器Ｂによる機器Ａの認証が行われる。ここで、認証フラグがオンに設定された場合、図９のステップS３０の処理では、機器Ａが認証されたと判定され、トランザクション処理などの実行が行われる。認証フラグがオフに設定された場合、図９のステップS３０の処理では、機器Ａが認証されなかったと判定され、機器Ｂから機器Ａにエラーが送信される。
【０１７７】
このようにして、機器Ａと機器Ｂの間で相互認証が行われる。機器Ａと機器Ｂとでは、相互認証に用いる相互認証用データ１乃至４が、複数の異なる暗号アルゴリズムと鍵により暗号化または復号されるようにしたので、第３者による成りすましが防止され、相互認証の確実性を高めることができる。
【０１７８】
ここでは、認証用データ１乃至認証用データ４の生成において、図１２を参照して上述した暗号化方式１乃至暗号化方式３に対応する暗号アルゴリズムと鍵が用いられる例について説明したが、暗号アルゴリズムと鍵の組み合わせの数はこれに限られるものではない。
【０１７９】
また、この例では、機器Ａのアルゴリズム／鍵情報管理部３１５では、図１２を参照して上述した暗号化方式１乃至暗号化方式３の情報が、暗号化方式１乃至暗号化方式３の順に、暗号化実行部３１２、または復号実行部３１３に供給され、機器Ｂのアルゴリズム／鍵情報管理部４１５では、暗号化方式１乃至暗号化方式３の情報が、暗号化方式３乃至暗号化方式１の順に、暗号化実行部３１２、または復号実行部３１３に供給されることとしたが、例えば、機器Ａのアルゴリズム／鍵情報管理部３１５では、暗号化方式１乃至暗号化方式３の情報が、暗号化方式２、暗号化方式１、暗号化方式３の順に、暗号化実行部３１２、または復号実行部３１３に供給され、機器Ｂのアルゴリズム／鍵情報管理部４１５では、暗号化方式１乃至暗号化方式３の情報が、暗号化方式３、暗号化方式１、暗号化方式２の順に、暗号化実行部３１２、または復号実行部３１３に供給されるようにしても構わない。
【０１８０】
さらに、相互認証用データ１乃至４を生成する場合、必ずしも暗号化方式１乃至暗号化方式３が全て用いられる必要はなく、例えば、認証用データ１の暗号化または復号化には、暗号化方式１が用いられ、認証用データ２の暗号化または復号化には、暗号化方式２が用いられ、・・・のように、機器Ａと機器Ｂで、予めそれぞれの認証用データに対応する暗号化方式を定めておいてもよい。
【０１８１】
また、この例では、相互認証において用いられる鍵（例えば、図１２の鍵１乃至鍵３）として、予め定められたものを利用する場合の例について説明したが、相互認証を行う都度、異なる鍵が生成されて、利用されるようにすることも可能である。
【０１８２】
このような場合、アルゴリズム／鍵情報管理部３１５および４１５においては、図１２を参照して上述した情報に加えて、例えば、図２５に示されるような情報が記憶されることになる。
【０１８３】
図２５は、アルゴリズム／鍵情報管理部３１５および４１５により記憶されている暗号アルゴリズムを特定する情報と、それらの暗号アルゴリズムによりデータを暗号化する場合に用いられる鍵の情報の別の例を示す図である。同図において、データ１と、６４ビットのデータ長の鍵ＡとアルゴリズムＡにより構成される暗号化方式Ａとが対応付けられている。また、データ２と、１２８ビットのデータ長の鍵ＢとアルゴリズムＢにより構成される暗号化方式Ｂとが対応付けられている。
【０１８４】
同様に、データ３乃至５と、暗号化方式Ｃ乃至暗号化方式Ｅとがそれぞれ対応付けられている。
【０１８５】
データ１乃至データ５は、例えば、機器BのEEPROM２２４に記憶されトランザクション処理などで利用されるデータであり、例えば、リーダライタ（機器A）の種類、ユーザが指定するトランザクションの種類などに応じて、データ１乃至データ５のうち、機器Aと機器Bとの間で利用されるデータが特定されるものとする。なお、利用されるデータを特定する情報は、上述した図９のステップS４で送信されるアクセス対象リストに基づいて、機器Aと機器Bの間で、予め通知される。
【０１８６】
例えば、機器Aから機器Bに対して、利用するデータとして、データ１乃至データ５が通知された場合、アルゴリズム／鍵情報管理部４１５は、例えば、図２６に示されるようにして、相互認証に用いられる暗号鍵を生成する。
【０１８７】
図２６は、アルゴリズム／鍵情報管理部４１５による暗号鍵生成処理を説明するフローチャートである。
【０１８８】
ステップS３８１において、アルゴリズム／鍵情報管理部４１５は、機器Aと機器Bとで予め共有されている、テキストデータなどの平文を抽出する。そして、アルゴリズム／鍵情報管理部４１５は、暗号化実行部４１２に、図２５を参照して上述した、暗号化方式Ａ乃至暗号化方式Ｅの情報を、例えば、暗号化方式Ａ乃至暗号化方式Ｅの順に、暗号化実行部４１２に供給する。
【０１８９】
すなわち、ステップS３８２において、暗号化実行部４１２は、ステップS３８１の処理で抽出された平文を、アルゴリズムAに対応する暗号アルゴリズムと、鍵Aにより暗号化する。
【０１９０】
次に、ステップS３８３において、暗号化実行部４１２は、ステップS３８２の処理で暗号化されたデータを、アルゴリズムＢに対応する暗号アルゴリズムと、鍵Ｂにより暗号化する。
【０１９１】
さらに、ステップS３８４において、暗号化実行部４１２は、ステップS３８３の処理で暗号化されたデータを、アルゴリズムＣに対応する暗号アルゴリズムと、鍵Ｃにより暗号化する。
【０１９２】
ステップＳ３８４の処理の後、ステップS３８５において、暗号化実行部４１２は、ステップS３８４の処理で暗号化されたデータを、アルゴリズムＤに対応する暗号アルゴリズムと、鍵Ｄにより暗号化する。
【０１９３】
ステップＳ３８５の処理の後、ステップS３８６において、暗号化実行部４１２は、ステップS３８５の処理で暗号化されたデータを、アルゴリズムＡに対応する暗号アルゴリズムと、鍵Ｅにより暗号化する。
【０１９４】
そして、ステップＳ３８７において、アルゴリズム／鍵情報管理部４１５は、ステップＳ３８６の処理の結果出力されたデータを、相互認証に用いる鍵として（例えば、図１２の鍵１として）、記憶する。
【０１９５】
なお、例えば、機器Aから機器Bに対して、利用するデータとして、データ１乃至データ３が通知された場合、ステップＳ３８５とＳ３８６の処理は、省略されることになる。また、複数の鍵が必要な場合は、ステップＳ３８１において、機器Ａと機器Ｂとで共有される複数の異なる平文が抽出されるようにして、それ以後の処理において、それぞれの平文が暗号化されるようにすればよい。この平文は、ステップＳ３８２乃至３８６の処理により多段階に暗号化されることにより、第３者による解読は極めて困難になるため、例えば、データの秘匿性を高めるために、特に長文のテキストデータを選択するなどの考慮は必要なく、機器Ａと機器Ｂが共有する平文を適宜選択して抽出させるようにすることができる。
【０１９６】
もちろん、機器Ａにおいても、アルゴリズム／鍵情報管理部３１５と、暗号化実行部３１２により、図２６と同様の処理が実行され、相互認証に用いる鍵が生成されるが、その詳細な説明は省略する。
【０１９７】
このようにして、相互認証において用いられる鍵が生成される。このようにすることで、相互認証に用いられる鍵が、相互認証の都度（いまの場合、利用するデータに応じて）、変化することになり、より強固なセキュリティが実現され、相互認証確実性をさらに高めることができる。さらに、相互認証に用いられる鍵は、平文に対して、複数の暗号アルゴリズムと鍵による暗号化が多段階に実行されることにより生成されるので、従来の鍵の生成の方法と比較して、より強固なセキュリティを実現することができる。
【０１９８】
また、機器Ａと機器Ｂの間で相互認証をする場合、例えば、それぞれの機器の暗号化または復号を制御する機能において、公開鍵方式の暗号アルゴリズムを実装させ、機器Ａの秘密鍵で暗号化された乱数を、機器Ｂが機器Ａの公開鍵で復号して乱数を取得し、その乱数を機器Ｂの秘密鍵で暗号化して機器Ａに送信し、機器Ａが自身の秘密鍵で復号して、乱数を取得することにより機器同士を認証する方法も考えられる。しかし、公開鍵方式での暗号化または復号の実行は、CPUなどでの演算処理に関わる負荷が大きく、例えば、ICカードなど、極めて小型であって、省電力性能が要求される機器においては、公開鍵暗号方式での暗号化または復号の実行を短時間で処理することができるように、機器を構成することが難しい。本発明においては、比較的演算処理に関わる負荷が小さい、秘密鍵方式の暗号アルゴリズムを採用しているので、例えば、ICカードなど、極めて小型であって、省電力性能が要求される機器であっても、確実性の高い相互認証を短時間に実行することができる。
【０１９９】
なお、上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、例えば、そのソフトウェアを構成するプログラムが、バス２００を介して、インターネットなどのネットワークや、リムーバブルメディアなどからなる記録媒体からインストールされる。
【０２００】
なお、この記録媒体は、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フロッピディスク（登録商標）を含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（MD（Mini-Disk）（登録商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディアにより構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信され、プログラムが記録されている、例えば、ROM２１２または２２２などで構成されるものも含む。
【０２０１】
なお、本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０２０２】
【図１】従来の相互認証の例を示す図である。
【図２】従来の相互認証の例を示す図である。
【図３】従来の相互認証における鍵の生成の例を示す図である。
【図４】本発明に係る情報処理システムの一実施の形態を示す図である。
【図５】機器Ａの内部構成例を示すブロック図である。
【図６】機器Ｂの内部構成例を示すブロック図である。
【図７】図５のCPUにより実行されるソフトウェアの機能的構成例を示すブロック図である。
【図８】図６のCPUにより実行されるソフトウェアの機能的構成例を示すブロック図である。
【図９】機器Aと機器Bの相互認証の処理の流れを説明するアローチャートである。
【図１０】認証用データ１生成処理を説明するフローチャートである。
【図１１】RanA暗号化処理を説明するフローチャートである。
【図１２】アルゴリズム／鍵情報管理部に記憶されている情報の例を示す図である。
【図１３】認証用データ２生成処理を説明するフローチャートである。
【図１４】認証用データ１復号処理を説明するフローチャートである。
【図１５】処理結果データ暗号化処理を説明するフローチャートである。
【図１６】認証用データ３生成処理を説明するフローチャートである。
【図１７】RanB暗号化処理を説明するフローチャートである。
【図１８】機器Bの認証処理を説明するフローチャートである。
【図１９】認証用データ２復号処理を説明するフローチャートである。
【図２０】認証用データ４生成処理を説明するフローチャートである。
【図２１】認証用データ３復号処理を説明するフローチャートである。
【図２２】処理結果データ暗号化処理を説明するフローチャートである。
【図２３】機器Aの認証処理を説明するフローチャートである。
【図２４】認証用データ４生成処理を説明するフローチャートである。
【図２５】アルゴリズム／鍵情報管理部に記憶されている情報の別の例を示す図である。
【図２６】暗号鍵生成処理を説明するフローチャートである。
【符号の説明】
【０２０３】
２１１  ＣＰＵ，  ２１２  ＲＯＭ，  ２１３  ＲＡＭ，  ２２１  ＣＰＵ，  ２２２  ＲＯＭ，  ２２３  ＲＡＭ，  ２２４  ＥＥＰＲＯＭ，  ３１１  乱数発生部，  ３１２  暗号化実行部，  ３１３  復号実行部，  ３１４  認証部，  ３１５  アルゴリズム／鍵情報管理部，  ４１１  乱数発生部，  ４１２  暗号化実行部，  ４１３  復号実行部，  ４１４  認証部，  ４１５  アルゴリズム／鍵情報管理部
【図１】
2006080642.tif 000003
【図２】
2006080642.tif 000004
【図３】
2006080642.tif 000005
【図４】
2006080642.tif 000006
【図５】
2006080642.tif 000007
【図６】
2006080642.tif 000008
【図７】
2006080642.tif 000009
【図８】
2006080642.tif 000010
【図９】
2006080642.tif 000011
【図１０】
2006080642.tif 000012
【図１１】
2006080642.tif 000013
【図１２】
2006080642.tif 000014
【図１３】
2006080642.tif 000015
【図１４】
2006080642.tif 000016
【図１５】
2006080642.tif 000017
【図１６】
2006080642.tif 000018
【図１７】
2006080642.tif 000019
【図１８】
2006080642.tif 000020
【図１９】
2006080642.tif 000021
【図２０】
2006080642.tif 000022
【図２１】
2006080642.tif 000023
【図２２】
2006080642.tif 000024
【図２３】
2006080642.tif 000025
【図２４】
2006080642.tif 000026
【図２５】
2006080642.tif 000027
【図２６】
2006080642.tif 000028