(57)【特許請求の範囲】
【請求項１】
第１の乱数を生成するクライアント端末及びサーバデータを生成するサーバのそれぞれと通信可能なパスワード認証鍵交換装置であって、
前記第１の乱数に比べてサイズの大きい第２の乱数を生成する乱数生成手段と、
前記クライアント端末が前記第１の乱数及び所定のパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第２の乱数とに基づいてクライアント二次データを生成し前記クライアント二次データを前記サーバに送信することによって、前記クライアント二次データに基づいて前記クライアント端末と共有する共有鍵を生成することを前記サーバに促す二次データ生成手段と、
前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第２の乱数とに基づいて鍵交換部分データを生成し前記鍵交換部分データを前記クライアント端末に送信することによって、前記鍵交換部分データに基づいて前記サーバと共有する共有鍵を生成することを前記クライアント端末に促す鍵交換部分データ生成手段と、を有する、パスワード認証鍵交換装置。
【請求項２】
前記クライアント端末は複数のサーバと通信可能なものであり、
前記乱数生成手段は、サーバ毎に異なる第２の乱数を生成可能なものである、
請求項１記載のパスワード認証鍵交換装置。
【請求項３】
前記複数のサーバが生成した複数のサーバデータの差分情報を生成する差分情報生成手段を更に有し、この差分情報生成手段が、前記鍵交換部分データに加えて、前記差分情報を使用した前記共有鍵の生成を前記クライアント端末に促す、
請求項２記載のパスワード認証鍵交換装置。
【請求項４】
サーバと、第１の乱数を生成するクライアント端末及び前記サーバのそれぞれと通信可能なパスワード認証鍵交換装置とを有するシステムであって、
前記サーバは、第３の乱数及びこの第３の乱数を使用してサーバデータを生成するともに、当該第３の乱数と前記クライアント端末が生成したクライアント二次データとに基づいて前記クライアント端末と共有する共有鍵を生成する鍵交換管理手段を有するものであり、
前記パスワード認証鍵交換装置は、
前記第１の乱数に比べてサイズの大きい第２の乱数を生成する乱数生成手段と、
前記クライアント端末が前記第１の乱数及びパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第２の乱数とに基づいて前記クライアント二次データを生成し、前記クライアント二次データを前記サーバに送信する二次データ生成手段と、
前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第２の乱数とに基づいて鍵交換部分データを生成し前記鍵交換部分データを前記クライアント端末に送信することによって、前記鍵交換部分データに基づいて前記サーバと共有する共有鍵を生成することを前記クライアント端末に促す鍵交換部分データ生成手段と、を有する、パスワード認証鍵交換システム。
【請求項５】
前記クライアント端末は、複数のサーバと通信可能なものであり、
前記乱数生成手段は、サーバ毎に異なる第２の乱数を生成する、
請求項４記載のパスワード認証鍵交換システム。
【請求項６】
前記パスワード認証鍵交換装置は、複数のサーバに係る複数のサーバデータの差分情報を生成する差分情報生成手段を更に有し、
この差分情報生成手段が、前記鍵交換部分データに加えて前記差分情報を更に用いた前記共有鍵の生成を前記クライアント端末に促す、
請求項５記載のパスワード認証鍵交換システム。
【請求項７】
サーバと、クライアント端末のそれぞれと通信可能なパスワード認証鍵交換装置とを有するシステムにより実行される方法であって、
前記クライアント端末が、第１の乱数を生成するとともに、この第１の乱数と所定のパスワードとを使用してクライアント一次データを生成する段階と、
前記パスワード認証鍵交換装置が、前記第１の乱数に比べてサイズの大きい第２の乱数を生成するとともに、前記生成されたクライアント一次データと前記第２の乱数とに基づいてクライアント二次データを生成し、前記クライアント二次データを前記サーバに送信する段階と、
前記サーバが、第３の乱数を生成し、この第３の乱数に基づいてサーバデータを生成するとともに、当該第３の乱数と前記クライアント二次データとに基づいて前記クライアント端末と共有する共有鍵を生成する段階と、
前記パスワード認証鍵交換装置が、前記サーバが生成した前記サーバデータと前記第２の乱数とに基づいて鍵交換部分データを生成し前記鍵交換部分データを前記クライアント端末に送信することによって、前記鍵交換部分データに基づいて前記サーバと共有する共有鍵を生成することを前記クライアント端末に促す段階とを有する、
パスワード認証鍵交換方法。
【請求項８】
コンピュータを、第１の乱数を生成するクライアント端末及びサーバデータを生成するサーバのそれぞれと通信自在なパスワード認証鍵交換装置として動作させるためのコンピュータプログラムであって、
前記コンピュータを、
前記第１の乱数に比べてサイズの大きい第２の乱数を生成する乱数生成手段、
前記クライアント端末が前記第１の乱数及び所定のパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第２の乱数とに基づいてクライアント二次データを生成し前記クライアント二次データを前記サーバに送信することによって、前記クライアント二次データに基づいて前記クライアント端末と共有する共有鍵を生成することを前記サーバに促す二次データ生成手段、
前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第２の乱数とに基づいて鍵交換部分データを生成し前記鍵交換部分データを前記クライアント端末に送信することによって、前記鍵交換部分データに基づいて前記サーバと共有する共有鍵を生成することを前記クライアント端末に促す鍵交換部分データ生成手段、として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント端末の処理の負荷を軽減したパスワード認証鍵交換装置、システム、方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
人が容易に記憶することができる低グレードのパスワードを利用して電子文書のセキュリティを図るパスワード認証鍵交換プロトコル利用のセキュリティ手法が知られている。この手法は、クライアント端末とサーバとの間でパスワード又はパスワードのハッシュ値を共有することにより、クライアント端末にて秘密の鍵情報を保持することなく、鍵共有を行うものである。この手法は、クライアント端末とサーバとの間のネットワークに対する攻撃者が、パスワードの予測をオフラインで行うことができない状況を生み出すところに技術的特徴がある。この手法の応用例としては、例えばパスワードのハッシュ値から派生した情報とＲＳＡ方式やDiffie-Hellman型鍵交換方式とを組み合わせて利用するセキュリティ手法がある（特許文献１〜３参照）。
Diffie-Hellman型鍵交換方式とは、複数のノードの各々で乱数を生成し、この乱数をべき乗剰余した値を相手方に送信する一方、受信した値に対して自身で生成した乱数を用いて再度べき乗剰余することで、双方のみ知り得る鍵を共有する方式である。
【０００３】
【特許文献１】特表２００３−５３６３２０号公報
【特許文献２】特開２００１−３１３６３４号公報
【特許文献３】特開２００２−３３５２３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来のセキュリティ手法は、パスワード認証鍵交換プロトコルで利用する「べき乗剰余演算」に長時間を要する。そのため、例えば携帯端末のような演算能力の低いクライアント端末がローカルな店舗端末を介してサーバと通信を行うようなサービスでは、べき剰余演算に伴う待ち時間が長くなり、利用に適さないという問題がある。
また、クライアント端末が、同じタイミングで複数のサーバとの間で鍵を共有したいときには、サーバ毎に異なる乱数をクライアント端末側で生成する必要があるため、その処理に時間がかかり、クライアント端末に負荷が集中するといった問題もある。
本発明は、かかる問題を解消し、クライアント端末がサーバと鍵交換を行う際のクライアント端末での乱数生成処理の負荷及び演算処理の負荷を軽減し、サーバとの鍵交換を効率良く行い、ひいては複数のサーバを利用したサービス連携をも実現する手法を提供することを主たる課題とする。
【課題を解決するための手段】
【０００５】
本発明は、例えば、第１の乱数を生成するクライアント端末及びサーバデータを生成するサーバのそれぞれと通信可能なパスワード認証鍵交換装置であって、前記第１の乱数に比べてサイズの大きい第２の乱数を生成する乱数生成手段と、前記クライアント端末が前記第１の乱数及び所定のパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第２の乱数とに基づいてクライアント二次データを生成し前記クライアント二次データを前記サーバに送信することによって、前記クライアント二次データに基づいて前記クライアント端末と共有する共有鍵を生成することを前記サーバに促す二次データ生成手段と、前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第２の乱数とに基づいて鍵交換部分データを生成し前記鍵交換部分データを前記クライアント端末に送信することによって、前記鍵交換部分データに基づいて前記サーバと共有する共有鍵を生成することを前記クライアント端末に促す鍵交換部分データ生成手段と、を有する装置である。
【０００６】
このパスワード認証鍵変換装置において、前記クライアント端末が複数のサーバと通信を行う場合、前記乱数生成手段は、サーバ毎に異なる第２の乱数を生成するものとしても良い。また、前記複数のサーバに係る複数のサーバデータの差分情報を生成する差分情報生成手段を更に有し、この差分情報生成手段が前記鍵交換部分データに加えて前記差分情報を更に用いた前記共有鍵の生成を前記クライアント端末に促すようにしても良い。
【０００７】
本発明はまた、例えば、サーバと、第１の乱数を生成するクライアント端末及び前記サーバのそれぞれと通信可能なパスワード認証鍵交換装置とを有するシステムであって、前記サーバは、第３の乱数及びこの第３の乱数を使用してサーバデータを生成するともに、当該第３の乱数と前記クライアント端末が生成したクライアント二次データとに基づいて前記クライアント端末と共有する共有鍵を生成する鍵交換管理手段を有するものであり、前記パスワード認証鍵交換装置は、前記第１の乱数に比べてサイズの大きい第２の乱数を生成する乱数生成手段と、前記クライアント端末が前記第１の乱数及びパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第２の乱数とに基づいて前記クライアント二次データを生成し、前記クライアント二次データを前記サーバに送信する二次データ生成手段と、前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第２の乱数とに基づいて鍵交換部分データを生成し前記鍵交換部分データを前記クライアント端末に送信することによって、前記鍵交換部分データに基づいて前記サーバと共有する共有鍵を生成することを前記クライアント端末に促す鍵交換部分データ生成手段と、を有するものである。
【０００８】
このパスワード認証鍵交換システムにおいても、前記クライアント端末が複数のサーバと通信を行う場合には、前記乱数生成手段は異なるサーバ毎に異なる第２の乱数を生成するようにしても良い。また、前記パスワード認証鍵交換装置は、複数のサーバに係る複数のサーバデータの差分情報を生成する差分情報生成手段を更に有し、この差分情報生成手段が前記鍵交換部分データに加えて前記差分情報を更に用いた前記共有鍵の生成を前記クライアント端末に促すようにしても良い。
【０００９】
本発明は、パスワード認証鍵交換方法として具現化することができる。この方法は、サーバと、クライアント端末のそれぞれと通信可能なパスワード認証鍵交換装置とを有するシステムにより実行される方法であって、前記クライアント端末が、第１の乱数を生成するとともに、この第１の乱数と所定のパスワードとを使用してクライアント一次データを生成する段階と、前記パスワード認証鍵交換装置が、前記第１の乱数に比べてサイズの大きい第２の乱数を生成するとともに、前記生成されたクライアント一次データと前記第２の乱数とに基づいてクライアント二次データを生成し、前記クライアント二次データを前記サーバに送信する段階と、前記サーバが、第３の乱数を生成し、この第３の乱数に基づいてサーバデータを生成するとともに、当該第３の乱数と前記クライアント二次データとに基づいて前記クライアント端末と共有する共有鍵を生成する段階と、前記パスワード認証鍵交換装置が、前記サーバが生成した前記サーバデータと前記第２の乱数とに基づいて鍵交換部分データを生成し前記鍵交換部分データを前記クライアント端末に送信することによって、前記鍵交換部分データに基づいて前記サーバと共有する共有鍵を生成することを前記クライアント端末に促す段階とを有する。
【００１０】
本発明は、コンピュータを、第１の乱数を生成するクライアント端末及びサーバデータを生成するサーバのそれぞれと通信自在なパスワード認証鍵交換装置として動作させるためのコンピュータプログラムであって、前記コンピュータを、前記第１の乱数に比べてサイズの大きい第２の乱数を生成する乱数生成手段、前記クライアント端末が前記第１の乱数及び所定のパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第２の乱数とに基づいてクライアント二次データを生成し前記クライアント二次データを前記サーバに送信することによって、前記クライアント二次データに基づいて前記クライアント端末と共有する共有鍵を生成することを前記サーバに促す二次データ生成手段、前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第２の乱数とに基づいて鍵交換部分データを生成し前記鍵交換部分データを前記クライアント端末に送信することによって、前記鍵交換部分データに基づいて前記サーバと共有する共有鍵を生成することを前記クライアント端末に促す鍵交換部分データ生成手段、として機能させるためのコンピュータプログラムである。
【発明の効果】
【００１１】
本発明によれば、クライアント端末がサーバと鍵交換を行う場合において、クライアント端末と協調して演算を行うことで、クライアント端末での乱数生成処理の負荷及び演算処理の負荷を軽減し、サーバとの鍵交換を効率良く行うことができる。
【発明を実施するための最良の形態】
【００１２】
＜第１実施形態＞
図１は、本発明の第１実施形態に係るパスワード認証鍵交換システムの概念図である。この実施形態のパスワード認証鍵変換システムは、パスワード認証鍵交換装置１を含んで構成される。パスワード認証鍵交換装置１は、店舗等に配設されるもので、ユーザが操作する携帯電話機やＰＤＡ等からなるクライアント端末２と無線通信路により随時通信することができ、さらに、複数のサーバ３ａ，３ｂ…（以下、サーバを総称する場合には符号３を用いる）とも、インターネット等のネットワーク４を通じて随時通信できるように構成される。
【００１３】
クライアント端末２は、第１の乱数を生成し、この第１の乱数をべき乗剰余演算した値をクライアント一次データとして店舗等に配設されたパスワード認証鍵交換装置１に送信する。パスワード認証鍵交換装置１は、第２の乱数を生成し、この第２の乱数を用いてべき乗剰余演算した値とクライアント一次データとによりクライアント二次データを生成する。そして、生成したクライアント二次データをサーバ３に送信する。サーバ３は、受信したクライアント二次データの値に対して自身で生成した第３の乱数を用いて再度べき乗剰余演算を行うことで、クライアント端末２とサーバ３の双方のみが知りえる鍵を共有する。この鍵を共有鍵と称する。
【００１４】
クライアント端末２が複数のサーバ３ａ，３ｂ…と鍵交換を行うような場合、クライアント端末２が生成する第１の乱数のサイズを小さくし、その代わりに、店舗等に配設されるパスワード認証鍵交換装置１が、クライアント端末２で生成された第１の乱数よりも大きなサイズの第２の乱数を生成するようにしても良い。
【００１５】
複数のサーバ３ａ，３ｂ…との間でクライアント端末２が同じタイミングで鍵共有を行うような場合、店舗等に配設されたパスワード認証鍵交換装置１は、サーバ３ａ，３ｂ…毎に異なる第２の乱数を生成することで、クライアント端末２で異なるサーバ３ａ，３ｂ…毎の第１の乱数の生成を省略しても、サーバ３ａ，３ｂ…に対して異なる乱数を利用しているように振舞えるようにすることもできる。
【００１６】
さらに、例えば複数のサーバ３ａ，３ｂ…に対して同じパスワードを設定しているような場合、店舗等に配設されるパスワード認証鍵交換装置１が、各サーバ３ａ，３ｂ…から送られたサーバデータの差分情報を計算し、この差分情報をクライアント端末２に通知することで、クライアント端末２の演算負荷を更に低減するようにしても良い。
すなわち、パスワード認証鍵交換システムでは、クライアント端末２とパスワード認証鍵交換装置１とが協調して演算を行なうようにして、クライアント端末２での乱数生成に係る負荷及び乱数を利用したべき乗剰余演算の負荷を軽減している。
【００１７】
なお、この実施形態では、クライアント端末２と店舗等に配設されたパスワード認証鍵交換装置１とは、例えば非接触ＩＣや赤外線等を用いた近接通信等が可能な環境下にあることを想定しているので、前述したようにクライアント端末２で利用する第１の乱数のサイズが小さくても、両者間の通信路でのデータ盗聴の問題は起こらない。
【００１８】
パスワード認証鍵交換システムの具体的なサービスイメージとしては、例えば、一のサーバ３ａでコンテンツを管理し、他のサーバ３ｂではコンテンツの鍵等を管理している場合に、一のサーバ３ａとの間でコンテンツのダウンロード時にセキュアな通信路を確立し、他のサーバ３ｂとの間でコンテンツの鍵の取得や課金等の処理を行うためのセキュアな通信路を確立する、という場合がある。
【００１９】
上記のような機能を実現するためのパスワード認証鍵交換装置１の構成例は、図２に示される通りである。すなわち、パスワード認証鍵交換装置１は、コンピュータの一種である制御部１１、クライアント端末２との無線通信やサーバ３とのネットワーク通信を実現するための通信部１２、液晶ディスプレイ装置等からなる表示部１３、マウスやキーボード等からなる操作入力部１４、ＲＡＭ、ＲＯＭ、ハードディスク等のメモリデバイスからなる記憶部１５を有する。
【００２０】
制御部１１は、コンピュータプログラムの一例となる制御プログラム１００に基づき、制御部１１内に、乱数生成機能１１ａ、二次データ生成機能１１ｂ、鍵交換部分データ生成機能１１ｃ、差分情報生成機能１１ｄを形成する。
乱数生成機能１１ａは、クライアント端末２から提示されたサービス情報に基づきサーバ３ａ，３ｂ…毎の第２の乱数を生成する機能である。二次データ生成機能１１ｂは、クライアント端末２で作成されたクライアント一次データと乱数生成機能１１ａにより生成した第２の乱数とに基づいてクライアント二次データを生成しサーバ３に送信する機能である。鍵交換部分データ生成機能１１ｃは、サーバ３ａ，３ｂ…で作成されたサーバデータと先に乱数生成機能１１ａで生成した第２の乱数とに基づいて鍵交換部分データを生成し、これをクライアント端末２に送信する機能である。差分情報生成機能１１ｄは、複数のサーバ３ａ，３ｂ…と鍵交換し、且つ複数のサーバ３ａ，３ｂ…に対するパスワードが同一である場合に、複数のサーバデータより差分情報を生成しクライアント端末２に送信する機能である。各機能の詳細については、後述する。
【００２１】
記憶部１５には、各サーバ３についての生成乱数と、ステータス（サーバデータ待ち、鍵共有済み等を表すデータ）が対応付けられて記憶される。記憶部１５には、このほか、パスワード認証鍵交換で利用する各種のパラメータも一時的に記憶されることになる。
なお、制御部１１は、各機能１１ａ〜１１ｄが形成されて実行される場合、それぞれ乱数生成手段、二次データ生成手段、鍵交換部分データ生成手段、差分情報生成手段として機能することになる。但し、各手段の実現形態は、機能１１ａ〜１１ｄに限定されるものではなく、適宜、ファームウエア、ハードウエアに置き換えることもできる。
【００２２】
クライアント端末２は、例えば図３のように構成される。すなわち、クライアント端末２は、制御部２１、通信部２２、表示部２３、操作入力部２４、記憶部２５を有する。制御部２１はコンピュータの一種であり、所定のクライアント用制御プログラム２００を読み込んで実行することにより、制御部２１内に、サービス情報管理機能２１ａ、鍵交換管理機能２１ｂを形成する。
サービス情報管理機能２１ａは、クライアント端末２に登録したサービス情報を保持し、店舗側のパスワード認証鍵交換装置１にサービス情報（例えばサーバのＵＲＬ等）を通知する機能である。鍵交換管理機能２１ｂは、クライアント端末２で入力したパスワードと生成した第２の乱数とに基づいてサーバ３とパスワード認証鍵交換を行い、共有鍵を取得する機能である。各機能の詳細については、後述する。
【００２３】
記憶部２５には、サービス情報として、各サービス毎に対応するサーバ情報（例えばサーバＵＲＬ、ポート番号等）、ユーザＩＤ等が対応付けられて記憶されており、更にパスワードが用いられるサービスを識別するための情報も記憶されている。また、パスワード認証鍵交換で利用する各種のパラメータも一時的に記憶されることになる。
なお、制御部２１は、機能２１ａ，２１ｂに基づいて作用する場合、それぞれサービス情報管理手段、鍵交換管理手段として機能する。但し、各手段の実現形態は、機能２１ａ，２１ｂに限定されるものではなく、適宜、ファームウエア、ハードウエアに置き換えることもできる。
【００２４】
サーバ３は、例えば図４のように構成される。すなわち、サーバ３は、制御部３１、通信部３２、記憶部３３を有する。制御部３１はコンピュータの一種であり、所定のサーバ用制御プログラム３００を読み込んで実行することにより制御部３１内に、ユーザ管理機能３１ａ、鍵交換管理機能３１ｂを実行する。ユーザ管理機能３１ａは、ユーザ毎のパスワード等を保持する機能である。鍵交換管理機能３１ｂは、第３の乱数を生成し、この生成した第３の乱数とパスワード認証鍵交換装置１の二次データ生成機能１１ｂにより生成されたクライアント二次データとに基づいてサーバデータを生成し、パスワード認証鍵交換を行い、共有鍵を取得する機能である。各機能の詳細については、後述する。
記憶部３３にはユーザＩＤ、パスワード、有効期限、鍵共有済みフラグが対応付けられて記憶される。また、パスワード認証鍵交換で利用する各種のパラメータも一時的に記憶される。
なお、制御部３１は、機能３１ａ，３１ｂに基づいて作用する場合、それぞれユーザ管理手段、鍵交換管理手段として機能する。但し、各手段の実現形態は、機能３１ａ，３１ｂに限定されるものではなく、適宜、ファームウエア、ハードウエアに置き換えることもできる。
【００２５】
［動作手順］
以下、この実施形態のパスワード認証鍵交換システムの動作例を図５及び図６を参照して説明する。
クライアント端末２の制御プログラム２００その他のプログラムが起動した後、ユーザにより操作入力部２４が操作されてユーザＩＤ及びパスワードが入力されると(ステップＳ１）、クライアント端末２の制御部２２は、鍵交換管理機能２１ｂに基づいて、パスワード認証鍵交換装置１側で生成する後述の乱数に比べてサイズの小さい乱数Ｓa1（第１の乱数）を生成する（ステップＳ２）。制御部２２は、また、サービス情報管理機能２１ａに基づいて、利用を所望するサーバ３のサーバ情報とユーザＩＤを店舗側のパスワード認証鍵交換装置１へ通知する（ステップＳ３）。この段階では、クライアント端末２の記憶部２５に、「サービス情報」として、サービス毎のサーバ情報（例えばサーバのＵＲＬ、ポート番号等）、ユーザＩＤ、並びにパスワードが同一のサービスに関する情報、更にはパスワード認証鍵交換で利用するパラメータが記憶されている。制御部２２は、記憶部２５に記憶されている「サービス情報」を参照して、利用を所望するサーバ３に対応するサーバ情報とユーザＩＤを読み出し、通知する。
【００２６】
店舗側のパスワード認証鍵交換装置１は、このサーバ情報とユーザＩＤを通信部１２を介して受信すると（ステップＳ４）、その制御部１１が、サービスを選択する（ステップＳ５）。サービスが複数ある場合は、パスワード認証鍵交換装置１側でサービスを指定しても良く、あるいは予めクライアント端末２がサービスを指定している場合はステップＳ４の処理を省略しても良い。
【００２７】
制御部１１は、また、乱数生成機能１１ａに基づいて先にステップＳ５で選択したサービスで利用するサーバ３毎に乱数Ｓa2-1,Ｓa2-2,・・・Ｓa2-n（第２の乱数）を生成する（ステップＳ６）。制御部１１は、さらに、接続先のサーバ３に対してクライアント端末２から送られたユーザＩＤを通知するとともに、クライアント端末２にパスワード認証鍵交換で必要なクライアント端末２側のクライアント一次データの作成を依頼（鍵交換要求）する（ステップＳ７）。なお、複数のサーバ３を利用する際には、ユーザＩＤをそれぞれ通知することとする。
【００２８】
鍵交換要求を受けとったクライアント端末２は、制御部２１が、鍵交換管理機能２１ｂにより、先にステップＳ１において入力されたパスワードのハッシュ値とステップＳ２で生成した乱数Ｓa1とに基づいてべき乗剰余演算を行い、クライアント一次データを生成する（ステップＳ８）。例えば、ステップＳ１で入力されたパスワードをπ、そのハッシュ値をＨ（π）、離散対数のドメインパラメータをｋ，ｑとすると、クライアント一次データＷa1は、以下のようなべき乗剰余演算により求めることができる。
ｇ１＝Ｈ（π）＾ｋ  ｍｏｄｑ
Ｗa1＝（ｇ１＾Ｓａ１  ｍｏｄｑ）
【００２９】
クライアント端末２では、制御部２１が、鍵交換管理機能２１ｂにより、パスワード認証鍵交換で利用する公開パラメータとステップＳ８で生成したクライアント一次データＷa1とを、通信部２２を介して、店舗側のパスワード認証鍵交換装置１へ送信する（ステップＳ９）。
【００３０】
パスワード認証鍵交換装置１は、通信部１２を介して公開パラメータとクライアント一次データを受信すると（ステップＳ１０）、制御部１１が、このクライアント一次データＷa1が所定範囲にあるか否か（例えば、べき乗剰余の剰余値以内か等）を確認する（ステップＳ１１）。このステップＳ１１において、制御部１１は、クライアント一次データＷa1が所定範囲にないと判断した場合は、クライアント端末２から店舗側のパスワード認証鍵交換装置１に通知されたサーバ情報や先に生成した乱数Ｓa2-1,Ｓa2-2,…Ｓa2-nをクリアし、クライアント端末２にエラー通知を行う（ステップＳ１２）。
【００３１】
サーバ３は、通信部３２を介してクライアント端末２から送られたユーザＩＤを含む通知（鍵交換要求）を受けると、制御部３１が、ユーザ管理機能３１ａに基づき、当該ユーザＩＤが登録されているか否かを確認する（ステップＳ１３）。ステップＳ１３においてユーザＩＤが登録されていないと制御部３１が判断した場合には、クライアント端末２から店舗側のパスワード認証鍵交換装置１に通知されたサーバ情報や、該装置１で生成した乱数Ｓa2-1,Ｓa2-2,…Ｓa2-nを消去し、クライアント端末２にエラー通知を行なうように指示する（ステップＳ１４）。制御部３１が、ユーザＩＤが登録されているものであると判断した場合には、乱数Ｓb（第３の乱数）を生成する（ステップＳ１５）。
【００３２】
パスワード認証鍵交換装置１では、制御部１１が二次データ生成機能１１ｂに基づいて、先にステップＳ１０において受信した公開パラメータ及びクライアント一次データＷa1と前記ステップＳ６において生成した乱数Ｓa2-1,Ｓa2-2,…Ｓa2-nとに基づいてべき乗剰余演算を行ってクライアント二次データを生成し、このクライアント二次データを各サーバ３へ送信する（ステップＳ１６）。例えば、サーバ３ａに対する乱数がＳa2-1であるとすると、当該サーバ３ａに送信すべきクライアント２次データＷaは、以下のようなべき乗剰余演算により求めることができる。
Ｗa2-1＝ｇ１＾Ｓａ2-1  ｍｏｄｑ
Ｗａ＝Ｗa1＊Ｗa2-1
【００３３】
同様に、サーバ３ｂに対する乱数がＳa2-2であるとすると、サーバ３ｂに送信すべきクライアント２次データＷa’は、以下のようなべき乗剰余演算により求めることができる。
Ｗa2-2＝ｇ１＾Ｓａ2-2  ｍｏｄｑ
Ｗａ’＝Ｗa1＊Ｗa2-2
【００３４】
サーバ３は、通信部３２を介して当該クライアント二次データＷaを受信すると（ステップＳ１７）、制御部３１が当該クライアント二次データＷaが所定範囲（例えば、べき乗剰余の剰余値以内か等）にあるか否かを確認する（ステップＳ１８）。クライアント二次データＷaが所定範囲にないと判断した場合には、ステップＳ１４に移行し、エラー通知に係る前述した指示を行う。一方、制御部３１が、クライアント二次データＷaが所定範囲にあると判断した場合には、鍵交換管理機能３１ｂにより、先にステップＳ１３にて確認したユーザＩＤに基づいて記憶部３５よりパスワードまたはパスワードの関連データを取得し、ステップＳ１５で生成した乱数Ｓbを利用してサーバデータを作成し、パスワード認証鍵交換装置１に通知する（ステップＳ１９）。
【００３５】
例えば、サーバ３ａで生成されるサーバデータは、乱数Ｓｂを含む下記式で表される。
Ｗb＝ｇ１＾Ｓｂ  ｍｏｄｑ
同様の演算式により、サーバ３ｂで生成されるサーバデータＷb’は、乱数Ｓb’を含む下記式で表される。
Ｗb’＝ｇ１＾Ｓｂ’ｍｏｄｑ
【００３６】
ステップＳ１９の実行後、サーバ３は、制御部３１がステップＳ１７で受信したクライアント二次データＷaとステップＳ１５で生成した乱数Ｓbとに基づいて、クライアント端末２とサーバ３との間で共有する共有鍵を生成するための元となる鍵交換共有データＺを生成する（ステップＳ２０）。例えば、サーバ３ａは、クライアント二次データＷaと生成した乱数Ｓbより、鍵交換共有データＺ１を、下記のべき乗剰余演算により求める。
Ｚ１＝Ｗa＾Ｓｂ＊ｋ  ｍｏｄｑ
この場合、共有鍵Ｋｉは、鍵交換共有データＺ１と公開パラメータＰｉより、以下のようになる。Ｈはハッシュ関数である。
Ｋｉ＝Ｈ（ｚ１‖Ｐｉ）
【００３７】
同様に、サーバ３ｂでは、クライアント二次データＷa’と生成した乱数Ｓb’より鍵交換共有データＺ２を下記のべき乗剰余演算により求める。
Ｚ２＝Ｗa＾Ｓｂ’＊ｋ  ｍｏｄｑ
この場合、共有鍵Ｋｉは、鍵交換共有データＺ１と公開パラメータＰｉ’より、以下のようになる。
Ｋｉ＝Ｈ（Ｚ１‖Ｐｉ’）
【００３８】
パスワード認証鍵交換装置１は、通信部１２を介してサーバ３からのサーバデータＷbを受信すると（ステップＳ２１）、制御部１１が、鍵交換部分データ生成機能１１ｃに基づき、当該サーバデータに対して、ステップＳ１０で受信した公開パラメータとステップＳ６で生成した乱数Ｓa2-1,Ｓa2-2,・・・を用いて、鍵交換共有データの鍵交換部分データを生成し、クライアント端末２に通知する（ステップＳ２２）。
例えば、サーバ３ａから通知された鍵交換共有データＺ１の鍵交換部分データＺ2-1は、サーバデータＷbと乱数Ｓs2-1、離散対数のドメインパラメータｑより、下記のべき乗剰余演算により求められる。
Ｚ2-1＝Ｗb＾Ｓｓ2-1  ｍｏｄｑ
【００３９】
同様に、サーバ３ｂから通知された鍵交換共有データＺ２の鍵交換部分データＺ2-2は、サーバデータＷb’と乱数Ｓs2-2、離散対数のドメインパラメータｑより、下記のべき乗剰余演算により求められる。
Ｚ2-2＝Ｗb’＾Ｓｓ2-2  ｍｏｄｑ
【００４０】
つまり、複数のサーバからのサーバデータを受信した場合（ステップＳ２３）、制御部１１は、それら複数のサーバが同じパスワード設定であるか否かを判断する（ステップＳ２４）。そして、同じパスワード設定でない場合には、前述したようにして鍵交換部分データを生成し、クライアント端末２に送信する（ステップＳ２５）。これに対して、複数のサーバが同じパスワード設定である場合、制御部１１は、鍵交換部分データ生成機能１１ｃにより鍵交換部分データを生成するほか、差分情報生成機能１１ｄにより差分情報を計算し、これらをクライアント端末２に送信する（ステップＳ２６）。
例えば、サーバ３ａからのサーバデータＷbとサーバ３ａからのサーバデータＷb’との差分情報は、Ｗｂ’／Ｗbとなる。
【００４１】
クライアント端末２は、通信部２２を介してパスワード認証鍵交換装置１からの鍵交換部分データを受信すると（ステップＳ２７）、制御部２１が鍵交換部分データを検証する（ステップＳ２８）。ここでは、受信した鍵交換部分データが所定範囲（例えば、べき乗剰余の剰余値以内か等）にあるか否かを確認し、エラーの場合は店舗側のパスワード認証鍵交換装置１やサーバ３に、その旨を通知し、それぞれのノードで設定、生成された情報を消去する（ステップＳ２９）。一方、受信した鍵交換部分データが所定範囲にある場合、制御部２１は、差分情報が送られているか否かを判断する（ステップＳ３０）。そして、送られていない場合には、ステップＳ２で生成した乱数Ｓa1を利用して鍵交換共有データＺ１を生成する（ステップＳ３１）。この場合、鍵交換共有データＺ１は、下記のべき乗剰余演算により求めることができる。
Ｚa＝（Ｚ2-1＾ｋ  ｍｏｄｑ）
Ｚb＝Ｗb＾Ｓａ１＊ｋ  ｍｏｄｑ
Ｚ１＝Ｚa＊Ｚｂ  
＝（Ｗb＾（Ｓａ１＊ｋ＋Ｓａ2-1＊ｋ）ｍｏｄｑ
＝（Ｗb＾（Ｓａ１＋Ｓａ2-1＊ｋ）ｍｏｄｑ
【００４２】
共有鍵Ｋｉは、鍵交換共有データＺ１と公開パラメータＰｉより、以下のようになる。
Ｋｉ＝Ｈ（Ｚ１‖Ｐｉ）
【００４３】
一方、ステップＳ３０において、差分情報が送られている場合、クライアント端末２では、制御部２１が、鍵交換共有データＺ２を、ステップＳ２で生成された乱数Ｓa1と差分情報とに基づいて生成する（ステップＳ３２）。例えば、サーバ３ａからのサーバデータＷbとサーバ３ａからのサーバデータＷb’との差分情報は、Ｗｂ’／Ｗbとなる。ステップＳ３２では、この差分情報を用いて、鍵交換共有データＺ２を下記のべき乗剰余演算により求める。
Ｚc＝（Ｚ2-2＾ｋ  ｍｏｄｑ）
Ｚd＝Ｚb＊差分情報（＝Ｗb’／Ｗb）
Ｚ２＝Ｚc＊Ｚd
＝（Ｗb’＾（（Ｓａ１＋Ｓａ2-2）＊ｋ）ｍｏｄｑ
共有鍵Ｋｉは、鍵交換共有データＺ２と公開パラメータＰｉ’より、以下のようになる。
Ｋｉ＝Ｈ（Ｚ１‖Ｐｉ’）
【００４４】
以上の説明から明らかなように、第１実施形態のパスワード認証鍵交換システムによれば、クライアント端末２で生成する第１の乱数のサイズを店舗側の装置１で生成する第２の乱数のサイズに比べて小さくすることで、当該クライアント端末２での第１の乱数に係るべき乗剰余演算の処理負担を軽減することが可能となる。また、離散対数のドメインパラメータｋ値を店舗側のパスワード認証鍵交換装置１では公開しないことにより、セキュリティを確保することができる。クライアント端末２が複数のサーバ３と同時に鍵交換を所望する場合であっても、一の第１の乱数を生成すれば良いので、この点でも処理負担を軽減することができる。さらに、複数のサーバ３について同じパスワードを使用する場合、差分情報を用いることで、クライアント端末２での処理負担を更に軽減することができる。このように、クライアント端末２とパスワード認証鍵交換装置１とが協調して演算を行なうことで、クライアント端末２での乱数生成に係る負荷及び乱数を利用したべき乗剰余処理等の負荷を軽減することを可能としている。
【００４５】
また、演算能力の低い安価なクライアント端末２と複数のサーバ３ａ，３ｂ…との間で安全な通信路を確立できるため、サーバ３ａ，３ｂ…間での安全な通信路が確保できない環境においても、複数のサーバ３ａ，３ｂ…を利用したサービス連携が可能となる。
【００４６】
＜第２実施形態＞
次に、パスワード認証鍵交換システムの第２の実施形態を説明する。この実施形態のパスワード認証鍵交換システムは、第１実施形態に係るシステムの構成要素であるパスワード認証鍵交換装置１に、新たな機能を付加したものである。その概念図は図１と略同様であり、クライアント端末２の構成は図３と同様であり、サーバ３の構成は図４と同様であるので、重複した説明は省略する。
まず、図７を参照して、第２実施形態に係るパスワード認証鍵交換システムを構成するパスワード認証鍵交換装置５の構成例を説明する。
このパスワード認証鍵交換装置５は、コンピュータの一種となる制御部５１、クライアント端末２との無線通信やサーバ３とのネットワーク通信を実現する通信部５２、液晶ディスプレイ装置等からなる表示部５３、マウスやキーボード等からなる操作入力部５４、ＲＡＭやＲＯＭ等のメモリデバイスからなる記憶部５５を有する。
【００４７】
制御部５１は、コンピュータプログラムの一例となる制御プログラム５００に基づき、依頼演算管理機能５１ａ、クライアント・サーバ接続管理機能５１ｂ、共有鍵確認機能５１ｃ、クライアント・サーバ通信機能５１ｄを少なくとも形成する。
依頼演算管理機能５１ａは、前述した第１実施形態(図２)の乱数生成機能１１ａ、二次データ生成機能１１ｂ、鍵交換部分データ生成機能１１ｃ、差分情報生成機能１１ｄの機能のほか、更に、演算機能選択・追加、クライアント・サーバ毎に応じた乱数生成サイズ決定（クライアント演算能力、サーバとの間の通信セキュリティレベル等に基づく）に係る機能を含む。
【００４８】
クライアント・サーバ接続管理機能５１ｂは、セッション管理、すなわちクライアント端末２が店舗側のパスワード認証鍵交換装置１から一時的に離れ再度接続、複数サーバ同時アクセス時のセッション割り当て等の管理、複数のサーバ３へのアクセス時に当該サーバ３からの応答がくるまで他のサーバ３からの応答結果を保持する機能、サイト毎に生成する生成乱数のＭＡＣを生成し、利用時に検証する機能、サーバ接続エラー時に代理のサーバにアクセスする機能である。共有鍵データ確認機能５１ｃは、パスワード入力誤り時などのリトライ・切断機能を含む。クライアント・サーバ通信管理機能５１ｄは、クライアント・サーバの接続時間管理（課金も含む）やクライアント・サーバ接続管理で生成したセッションＩＤの消去（クライアント・サーバ接続が完了した場合や異常発生時等)に係る機能である。各機能の詳細は後述する。
【００４９】
なお、制御部５１は、機能５１ａ乃至５１ｄに基づいて作用する場合、それぞれ依頼演算管理手段、クライアント・サーバ接続管理手段、共有鍵確認手段、クライアント・サーバ通信管理手段として機能する。但し、但し、各手段の実現形態は、機能５１ａ〜５１ｄに限定されるものではなく、適宜、ファームウエア、ハードウエアに置き換えることもできる。
【００５０】
［動作手順］
次に、第２実施形態に係るパスワード認証鍵交換装置５の動作を図８〜図１２の手順説明図を参照して説明する。
まず、図８の手順説明図を参照して、制御部５１による依頼演算管理機能５１ａによる依頼演算管理処理の手順について説明する。
制御部５１は、クライアント端末２から依頼演算要求、演算データを受信すると（ステップＳ５１）、当該依頼演算に対応する機能が形成されているか否か、つまり当該機能を有しているか否かを判断する（ステップＳ５２）。機能を有していない場合には、当該機能をダウンロードすることが可能であるか否かを判断する（ステップＳ５３）。そして、ダウンロード可能である場合には演算機能をダウンロードし、ステップＳ５６に移行する（ステップＳ５４）。ダウンロード不可能な場合は、クライアント端末２にエラー通知を行なう（ステップＳ５５）。
なお、依頼演算に対応する機能のダウンロードとは、対応するアプリケーションのダウンロード等による。サーバ３がＡＳＰとしての役割を担っている場合には、当該サーバ３にリクエストを出し、対応するアプリケーションの有無、ダウンロード可能であるか否かを確認し、ダウンロードを実行することで対応することになる。但し、この手法には限定されないことは勿論である。
【００５１】
制御部５１は、その後、依頼演算に対応する演算モジュールを選択し（ステップＳ５６）、依頼先のサーバ３と店舗側のパスワード認証鍵交換装置５(自身)との間のセキュリティレベルが登録されているか否かを判断する（ステップＳ５７）。「セキュリティレベル」とは、例えばセキュリティに対する安全レベルのようにセキュリティの度合いを定量化したものをいう。このセキュリティレベルが登録済みでない場合は、サーバ３までの経路情報を取得し、セキュリティレベルのレベル値を算出し、ステップＳ５９に移行する（ステップＳ５８）。セキュリティレベルが登録済みである場合は、ステップＳ５９に移行する。
【００５２】
制御部５１は、セキュリティレベルのレベル値に対応した乱数サイズを取得し（ステップＳ５９）、クライアント端末２で演算可能な乱数サイズが通知されているか否かを判断する（ステップＳ６０）。通知済みでない場合には、サーバ３のセキュリティレベルに対応した乱数サイズを店舗側のパスワード認証鍵交換装置５(自身)で生成する乱数とする（ステップＳ６１）。一方、通知済みの場合は、サーバ３とクライアント端末２の乱数サイズの差分を店舗側のパスワード認証鍵交換装置５（自身）の乱数サイズとする（ステップＳ６２）。このようにして乱数を生成し、ステップＳ５１にて受信した演算データに関して演算を行い（ステップＳ６３）、クライアント・サーバ接続管理機能５１ｂの実行へと移行する（ステップＳ６４）。
【００５３】
クライアント・サーバ接続管理機能５１ｂによるクライアント・サーバ接続管理処理の手順は、図９に示される通りである。クライアント・サーバ接続管理処理の流れは、クライアント端末２から複数のサーバ３への接続要求があるか否かにより２種類に分かれる。すなわち、制御部５１は、クライアント端末２から複数のサーバ３への接続要求があるか否かを判断し（ステップＳ７１）、当該要求がない場合は、ステップＳ７３以降のクライアント・サーバ接続管理の第１処理を実行し、他方、当該要求がある場合には、後述するクライアント・サーバ接続管理の第２処理へと移行する（ステップＳ７２）。
【００５４】
クライアント・サーバ接続管理の第１処理では、まず、サーバ向けセッションＩＤを生成し、生成した乱数とともに記憶部５５に保持し（ステップＳ７３）、演算結果をサーバ３に通知する（ステップＳ７４）。その後、制御部５１は、クライアント端末２向けセッションＩＤを生成しクライアント端末２に通知し（ステップＳ７５）、且つ待ち時間を越えてサーバ３から応答がないか否かを監視する（ステップＳ７６）。ステップＳ７６にて、待ち時間を越えてサーバ３から応答がない場合、エラー時の代替サーバの指定があるか否かを確認する（ステップＳ７７）。代替サーバの指定がある場合は、指定された代替サーバに再接続する（ステップＳ７８）。他方、代替サーバの指定がない場合、制御部５１は、乱数、セッションＩＤをクリアし、クライアント端末２にエラー通知することになる（ステップＳ７９）。
【００５５】
ステップＳ７６の監視中、サーバ３からのデータを受信すると（ステップＳ８０）、制御部５１は、受信したデータ内のセッションＩＤが記憶部５５に保持しているセッションＩＤと同一であるか否かを判断する（ステップＳ８１）。両者が同一でない場合には、乱数、セッションＩＤをクリアし、クライアント端末２にエラー通知する（ステップＳ７９）。これに対して、両者が同一である場合には、セッションＩＤに対応する乱数とサーバ３からの受信データを用いた演算を行い（ステップＳ８２）、その演算結果をクライアント端末２に通知する（ステップＳ８３）。
【００５６】
その後、制御部５１は、クライアント端末２とパスワード認証鍵交換装置５（自身）が通信可能な状態にあるかを判断する（ステップＳ８４）。通信可能な状態でない場合にはセッションＩＤを店舗側の装置５（自身）の表示部５３に表示し、クライアント端末２を待ち状態にするよう促す（ステップＳ８５）。そして、この待ち時間を越えてクライアント端末２と通信できないかを監視し（ステップＳ８６）、通信できない場合には、乱数、セッションＩＤをクリアし、クライアント端末２にエラー通知する（ステップＳ７９）。一方、ステップＳ８４にて両者が通信可能な状態にある場合、及びこのステップＳ８６にて通信できるようになった場合には、クライアント端末２と通信を行い（ステップＳ８７）、共有鍵データ確認処理へと移行する（ステップＳ８８）。
【００５７】
図１０は、制御部５１によるクライアント・サーバ接続管理の第２処理の手順を示している。図９において第２のクライアント・サーバ接続管理処理（図９：ステップＳ７２）に移行すると、制御部５１は、図１０に示されるように、各サーバ向けセッションＩＤについてグループＩＤを生成して付与し、このグループＩＤをサーバ３に通知する（ステップＳ１０１）。そして、待ち時間を越えてサーバ３から応答がないかを監視する（ステップＳ１０２）。サーバ３からの応答がない場合には、乱数、セッションＩＤをクリアし、クライアント端末２にエラー通知を行う（ステップＳ１０３）。他方、応答があった場合は、サーバ３からのデータを受信する（ステップＳ１０４）。そして、受信したデータ内のセッションＩＤが記憶部５５に保持しているセッションＩＤと同一であるか否かを判断する（ステップＳ１０５）。両者が同一でない場合は、乱数、セッションＩＤをクリアし、クライアント端末２にエラー通知を行う（ステップＳ１０３）。
【００５８】
ステップＳ１０５にて、両セッションＩＤが同一であると判断した場合、制御部５１は、同一グループＩＤのサーバ向けセッションＩＤでサーバ３からデータを受信していないものがないかどうかを判断する（ステップＳ１０６）。受信していないものがある場合にはステップＳ１０４に戻り、上記の処理手順を繰り返す。他方、受信していないものはない場合、制御部５１は、各サーバ向けセッションＩＤに付与したグループＩＤをクリアし（ステップＳ１０７）、それぞれのセッションＩＤに対応する記憶部５５に保持している乱数とサーバ３からの受信データを用いて所定演算（積算、べき乗剰余演算等）を行う。また、必要に応じて、差分情報を演算する（ステップＳ１０８）。こうして、制御部５１は、通信部５２を介して演算結果をクライアント端末２に通知し（ステップＳ１０９）、共有鍵データ確認処理へと移行する（ステップＳ１１０）。なお、ステップＳ１０８の処理に代えて、図９のステップＳ８４乃至Ｓ８６と同様の処理を行なっても良いことは勿論である。
【００５９】
次に、図１１の手順説明図を参照して、制御部５１による共有鍵確認機能５１ｃに基づく共有鍵確認処理の手順について説明する。
制御部５１は、まず鍵交換共有データの確認データの要求がなされているか否かを判断する（ステップＳ１２１）。ここでは、クライアント端末２とサーバ３との間で鍵交換が終了した後にサーバ３から当該要求がなされることを想定している。当該要求がなされていない場合には、後述するクライアント・サーバ通信管理処理へと移行する（ステップＳ１２２）。一方、当該要求がなされている場合には、制御部５１は、クライアント端末２に確認データの生成を要求する（ステップＳ１２３）。
クライアント端末２からの確認データを受信すると（ステップＳ１２４）、制御部５１は、受信した確認データに付与されたセッションＩＤが記憶部５５に保持しているセッションＩＤと同一であるか否かを判断する（ステップＳ１２５）。両者が同一でない場合には、クライアント端末２、サーバ３にエラー通知を行い、セッションＩＤや受信データをクリアする（ステップＳ１２６）。両者が同一である場合には、クライアント端末２から取得した確認データをサーバ３に通知する（ステップＳ１２７）。
【００６０】
その後、サーバ３からのデータを受信すると（ステップＳ１２８）、受信したデータ内のセッションＩＤが記憶部５５に保持しているセッションＩＤと同一であるか否かを判断する（ステップＳ１２９）。両者が同一でない場合には、クライアント端末２、サーバ３にエラー通知を行い、セッションＩＤや受信データをクリアする（ステップＳ１２６）。他方、両者が同一である場合には、制御部５１は、サーバ３からの応答が確認データＮＧであるか否かを判断する（ステップＳ１３０）。サーバからの応答が確認データＮＧである場合、制御部５１は、ＮＧ回数をインクリメントし（ステップＳ１３１）、当該ＮＧ回数が所定回数以上になっていないかどうかを監視する（ステップＳ１３２）。ＮＧ回数が所定回数以上になった場合、制御部５１は、通信部５２を介してクライアント端末２及びサーバ３にエラー通知を行い、セッションＩＤや受信データをクリアする（ステップＳ１２６）。他方、ＮＧ回数が所定回数未満である場合、制御部５１は、クライアント端末２にパスワードの再入力を依頼し、再度演算をやり直す（ステップＳ１３３）。
【００６１】
次に、図１２を参照して、制御部５１によるクライアント・サーバ通信管理機能５１ｄに基づくクライアント・サーバ通信管理処理の手順について説明する。
制御部５１は、クライアント端末２とサーバ２との間の通信を許可し（ステップＳ１４１）、クライアント端末２にサーバ送信でデータを要求する（ステップＳ１４２）。クライアント端末２よりデータを受信すると（ステップＳ１４３）、制御部５１は、クライアント端末２からのクライアント・サーバ間の通信切断要求があるかどうかを判断する（ステップＳ１４４）。当該要求がある場合、制御部５１は、クライアント端末２とサーバ３との間の通信を不許可とし、セッションＩＤをクリアする（ステップＳ１４５）。他方、当該要求がない場合、制御部５１は、クライアント端末２からの受信データに付与されたセッションＩＤが記憶部５５に保持されているセッションＩＤと同一か否かを判断する（ステップＳ１４６）。両者が同一でない場合、制御部５１は、クライアント端末２とサーバ３にエラー通知を行い、セッションＩＤや受信したデータをクリアする（ステップＳ１５０）。他方、両者が同一である場合、クライアント端末２から受信したデータをサーバ３に通知する（ステップＳ１４８）。
【００６２】
制御部５１は、サーバ３からのデータを通信部５２を介して受信すると（ステップＳ１４９）、受信したデータ内のセッションＩＤが記憶部５５に保持しているセッションＩＤと同一であるか否かを判断する（ステップＳ１５０）。両者が同一でない場合、制御部５１はステップＳ１４７に移行し、上述した処理を行う。他方、両者が同一である場合、制御部５１は、サーバ３から取得したデータを通信部５２を介してクライアント端末２に通知する（ステップＳ１５１）。そして、制御部５１は、クライアント端末２とサーバ３との間の通信時間が制限を超えたかどうかを判断する（ステップＳ１５２）。当該制限を越えた場合はステップＳ１４５に移行して上述した処理を行う。他方、当該制限を越えていない場合は、ステップＳ１４２に戻り、前述した一連の処理を繰り返す。
【００６３】
このように、第２実施形態では、第１実施形態に係るパスワード認証鍵交換装置１の機能に加えて、依頼演算管理機能５１ａに基づきべき乗剰余演算のみならず、他の演算の依頼にも対応可能となることを示した。また、パスワード認証鍵交換装置５で生成する第２の乱数の乱数サイズの決定方式を具現化した。また、クライアント端末２が複数のサーバ３にアクセスする場合に、セッションＩＤのほか、グループＩＤによる管理処理もクライアント・サーバ接続管理機能５１ｂにより実現されている。更に、パスワード認証鍵交換時の確認データを用いたチェックについても共有鍵データ確認機能５１ｃとして実現されている。そして、クライアント・サーバ通信機能５１ｄによりパスワード認証鍵交換後の通信管理も適正化されている。従って、パスワード認証鍵交換の更なる効率化、セキュアな通信環境の下での複数のサーバ３ａ，３ｂ…を利用したサービス連携が可能となる。
【００６４】
以上、本発明について、第１及び第２実施形態を示して説明したが、本発明は、これらの実施形態に限定されるものではなく、様々な改良や変更が可能である。第１実施形態としては、クライアント端末２が複数のサーバ３ａ，３ｂ…とやり取りをする例を示したが、Ｐ２Ｐのように複数のクライアント端末間での鍵交換に適用することも可能である。また、クライアント端末２と店舗側のパスワード認証鍵交換装置１，５との間が近接通信である場合を例に挙げて説明したが、信頼できる別の通信路があれば、遠隔にある端末を経由して鍵交換を行うようにしても良いことは、勿論である。
また、本発明は、パスワードのような個人情報が店舗端末や通信路に漏洩しないため、個人情報を取得するキーロガーやフィッシングなどの脅威を低減して鍵交換を行うことができるというメリットがある。
【図面の簡単な説明】
【００６５】
【図１】本発明の第１実施形態に係るパスワード認証鍵交換装置１を用いたパスワード認証鍵交換システムの概念図。
【図２】パスワード認証鍵交換装置の構成例を示した図。
【図３】クライアント端末の構成例を示した図。
【図４】サーバの構成例を示した図。
【図５】第１実施形態に係るパスワード認証鍵交換システムの動作手順説明図。
【図６】第１実施形態に係るパスワード認証鍵交換システムの動作手順説明図。
【図７】第２実施形態に係るパスワード認証鍵交換システムを構成するパスワード認証鍵交換装置の構成例を示した図。
【図８】依頼演算管理処理の手順説明図。
【図９】クライアント・サーバ接続管理の第１処理の手順説明図。
【図１０】クライアント・サーバ接続管理の第２処理の手順説明図。
【図１１】共有鍵確認処理の手順説明図。
【図１２】クライアント・サーバ通信管理処理の手順説明図。
【符号の説明】
【００６６】
１…パスワード認証鍵交換装置、２…クライアント端末、３…サーバ、４…ネットワーク、５…パスワード認証鍵交換装置、１１…制御部、１２…通信部、１３…表示部、１４…操作入力部、１５…記憶部、１１ａ…乱数生成機能、１１ｂ…二次データ生成機能、１１ｃ…鍵交換部分データ生成機能、１１ｄ…差分情報生成機能、２１…制御部、２２…通信部、２３…表示部、２４…操作入力部、２５…記憶部、２１ａ…サービス情報管理機能、２１ｂ…鍵交換管理機能、３１…制御部、３２…通信部、３３…記憶部、３１ａ…ユーザ管理機能、３１ｂ…鍵交換管理機能。
【図１】
0004757591.tif 000002
【図２】
0004757591.tif 000003
【図３】
0004757591.tif 000004
【図４】
0004757591.tif 000005
【図５】
0004757591.tif 000006
【図６】
0004757591.tif 000007
【図７】
0004757591.tif 000008
【図８】
0004757591.tif 000009
【図９】
0004757591.tif 000010
【図１０】
0004757591.tif 000011
【図１１】
0004757591.tif 000012
【図１２】
0004757591.tif 000013