パスワード認証鍵交換装置、システム、方法、及びコンピュータプログラム
【課題】サーバにアクセスするクライアント端末の負荷を軽減してサーバとの鍵交換を効率良く行うためのパスワード認証鍵交換システムを提供する。
【解決手段】第1の乱数を生成するクライアント端末2とサーバデータを生成するサーバ3との間に、パスワード認証鍵交換装置1を介在させる。このパスワード認証鍵変換装置1は、第1の乱数に比べてサイズの大きい第2の乱数を生成し、第1の乱数とパスワードとから生成されたクライアント一次データと第2の乱数とに基づいてクライアント二次データを生成し、サーバデータと第2の乱数とに基づき鍵交換部分データを生成する。そして、クライアント二次データに基づく共有鍵の生成をサーバ3に促し、鍵交換部分データに基づく共有鍵の生成をクライアント端末2に促すように動作する。
【解決手段】第1の乱数を生成するクライアント端末2とサーバデータを生成するサーバ3との間に、パスワード認証鍵交換装置1を介在させる。このパスワード認証鍵変換装置1は、第1の乱数に比べてサイズの大きい第2の乱数を生成し、第1の乱数とパスワードとから生成されたクライアント一次データと第2の乱数とに基づいてクライアント二次データを生成し、サーバデータと第2の乱数とに基づき鍵交換部分データを生成する。そして、クライアント二次データに基づく共有鍵の生成をサーバ3に促し、鍵交換部分データに基づく共有鍵の生成をクライアント端末2に促すように動作する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアント端末の処理の負荷を軽減したパスワード認証鍵交換装置、システム、方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
人が容易に記憶することができる低グレードのパスワードを利用して電子文書のセキュリティを図るパスワード認証鍵交換プロトコル利用のセキュリティ手法が知られている。この手法は、クライアント端末とサーバとの間でパスワード又はパスワードのハッシュ値を共有することにより、クライアント端末にて秘密の鍵情報を保持することなく、鍵共有を行うものである。この手法は、クライアント端末とサーバとの間のネットワークに対する攻撃者が、パスワードの予測をオフラインで行うことができない状況を生み出すところに技術的特徴がある。この手法の応用例としては、例えばパスワードのハッシュ値から派生した情報とRSA方式やDiffie-Hellman型鍵交換方式とを組み合わせて利用するセキュリティ手法がある(特許文献1〜3参照)。
Diffie-Hellman型鍵交換方式とは、複数のノードの各々で乱数を生成し、この乱数をべき乗剰余した値を相手方に送信する一方、受信した値に対して自身で生成した乱数を用いて再度べき乗剰余することで、双方のみ知り得る鍵を共有する方式である。
【0003】
【特許文献1】特表2003−536320号公報
【特許文献2】特開2001−313634号公報
【特許文献3】特開2002−335238号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した従来のセキュリティ手法は、パスワード認証鍵交換プロトコルで利用する「べき乗剰余演算」に長時間を要する。そのため、例えば携帯端末のような演算能力の低いクライアント端末がローカルな店舗端末を介してサーバと通信を行うようなサービスでは、べき剰余演算に伴う待ち時間が長くなり、利用に適さないという問題がある。
また、クライアント端末が、同じタイミングで複数のサーバとの間で鍵を共有したいときには、サーバ毎に異なる乱数をクライアント端末側で生成する必要があるため、その処理に時間がかかり、クライアント端末に負荷が集中するといった問題もある。
本発明は、かかる問題を解消し、クライアント端末がサーバと鍵交換を行う際のクライアント端末での乱数生成処理の負荷及び演算処理の負荷を軽減し、サーバとの鍵交換を効率良く行い、ひいては複数のサーバを利用したサービス連携をも実現する手法を提供することを主たる課題とする。
【課題を解決するための手段】
【0005】
本発明は、例えば、第1の乱数を生成するクライアント端末及びサーバデータを生成するサーバのそれぞれと通信可能なパスワード認証鍵交換装置として具現化することができる。このパスワード認証鍵変換装置は、前記第1の乱数に比べてサイズの大きい第2の乱数を生成する乱数生成手段と、前記クライアント端末が前記第1の乱数及び所定のパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第2の乱数とに基づいてクライアント二次データを生成するとともに、生成したクライアント二次データに基づいて、前記クライアント端末と共有する共有鍵の生成を前記サーバに促す二次データ生成手段と、前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、生成した鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す鍵交換部分データ生成手段と、を有する装置である。
【0006】
このパスワード認証鍵変換装置において、前記クライアント端末が複数のサーバと通信を行う場合、前記乱数生成手段は、サーバ毎に異なる第2の乱数を生成するものとしても良い。また、前記複数のサーバに係る複数のサーバデータの差分情報を生成する差分情報生成手段を更に有し、この差分情報生成手段が前記鍵交換部分データに加えて前記差分情報を更に用いた前記共有鍵の生成を前記クライアント端末に促すようにしても良い。
【0007】
本発明はまた、例えば、サーバと、第1の乱数を生成するクライアント端末及び前記サーバのそれぞれと通信可能なパスワード認証鍵交換装置とを有するパスワード認証鍵交換システムとして具現化することができる。このパスワード認証鍵交換システムにおいて、サーバは、第3の乱数及びこの第3の乱数を使用してサーバデータを生成するともに、当該第3の乱数と前記クライアント端末が生成したクライアント二次データとに基づいて前記クライアント端末と共有する共有鍵を生成する鍵交換管理手段を有するものであり、前記パスワード認証鍵交換装置は、前記第1の乱数に比べてサイズの大きい第2の乱数を生成する乱数生成手段と、前記クライアント端末が前記第1の乱数及びパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第2の乱数とに基づいて前記クライアント二次データを生成する二次データ生成手段と、前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、生成した鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す鍵交換部分データ生成手段と、を有するものである。
【0008】
このパスワード認証鍵交換システムにおいても、前記クライアント端末が複数のサーバと通信を行う場合には、前記乱数生成手段は異なるサーバ毎に異なる第2の乱数を生成するようにしても良い。また、前記パスワード認証鍵交換装置は、複数のサーバに係る複数のサーバデータの差分情報を生成する差分情報生成手段を更に有し、この差分情報生成手段が前記鍵交換部分データに加えて前記差分情報を更に用いた前記共有鍵の生成を前記クライアント端末に促すようにしても良い。
【0009】
本発明は、パスワード認証鍵交換方法として具現化することができる。この方法は、サーバと、クライアント端末のそれぞれと通信可能なパスワード認証鍵交換装置とを有するシステムにより実行される方法であって、前記クライアント端末が、第1の乱数を生成するとともに、この第1の乱数と所定のパスワードとを使用してクライアント一次データを生成する段階と、前記パスワード認証鍵交換装置が、前記第1の乱数に比べてサイズの大きい第2の乱数を生成するとともに、前記生成されたクライアント一次データと前記第2の乱数とに基づいてクライアント二次データを生成する段階と、前記サーバが、第3の乱数を生成し、この第3の乱数に基づいてサーバデータを生成するとともに、当該第3の乱数と前記クライアント二次データとに基づいて前記クライアント端末と共有する共有鍵を生成する段階と、前記パスワード認証鍵交換装置が、前記サーバが生成した前記サーバデータと前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、この鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す段階とを有する。
【0010】
本発明は、コンピュータを、第1の乱数を生成するクライアント端末及びサーバデータを生成するサーバのそれぞれと通信自在なパスワード認証鍵交換装置として動作させるためのコンピュータプログラムとして具現化することができる。このコンピュータプログラムは、前記コンピュータを、前記第1の乱数に比べてサイズの大きい第2の乱数を生成する乱数生成手段、前記クライアント端末が前記第1の乱数及び所定のパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第2の乱数とに基づいてクライアント二次データを生成するとともに、生成したクライアント二次データに基づいて、前記クライアント端末と共有する共有鍵の生成を前記サーバに促す二次データ生成手段、前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、生成した鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す鍵交換部分データ生成手段、として機能させるためのコンピュータプログラムである。
【発明の効果】
【0011】
本発明によれば、クライアント端末がサーバと鍵交換を行う場合において、クライアント端末と協調して演算を行うことで、クライアント端末での乱数生成処理の負荷及び演算処理の負荷を軽減し、サーバとの鍵交換を効率良く行うことができる。
【発明を実施するための最良の形態】
【0012】
<第1実施形態>
図1は、本発明の第1実施形態に係るパスワード認証鍵交換システムの概念図である。この実施形態のパスワード認証鍵変換システムは、パスワード認証鍵交換装置1を含んで構成される。パスワード認証鍵交換装置1は、店舗等に配設されるもので、ユーザが操作する携帯電話機やPDA等からなるクライアント端末2と無線通信路により随時通信することができ、さらに、複数のサーバ3a,3b…(以下、サーバを総称する場合には符号3を用いる)とも、インターネット等のネットワーク4を通じて随時通信できるように構成される。
【0013】
クライアント端末2は、第1の乱数を生成し、この第1の乱数をべき乗剰余演算した値をクライアント一次データとして店舗等に配設されたパスワード認証鍵交換装置1に送信する。パスワード認証鍵交換装置1は、第2の乱数を生成し、この第2の乱数を用いてべき乗剰余演算した値とクライアント一次データとによりクライアント二次データを生成する。そして、生成したクライアント二次データをサーバ3に送信する。サーバ3は、受信したクライアント二次データの値に対して自身で生成した第3の乱数を用いて再度べき乗剰余演算を行うことで、クライアント端末2とサーバ3の双方のみが知りえる鍵を共有する。この鍵を共有鍵と称する。
【0014】
クライアント端末2が複数のサーバ3a,3b…と鍵交換を行うような場合、クライアント端末2が生成する第1の乱数のサイズを小さくし、その代わりに、店舗等に配設されるパスワード認証鍵交換装置1が、クライアント端末2で生成された第1の乱数よりも大きなサイズの第2の乱数を生成するようにしても良い。
【0015】
複数のサーバ3a,3b…との間でクライアント端末2が同じタイミングで鍵共有を行うような場合、店舗等に配設されたパスワード認証鍵交換装置1は、サーバ3a,3b…毎に異なる第2の乱数を生成することで、クライアント端末2で異なるサーバ3a,3b…毎の第1の乱数の生成を省略しても、サーバ3a,3b…に対して異なる乱数を利用しているように振舞えるようにすることもできる。
【0016】
さらに、例えば複数のサーバ3a,3b…に対して同じパスワードを設定しているような場合、店舗等に配設されるパスワード認証鍵交換装置1が、各サーバ3a,3b…から送られたサーバデータの差分情報を計算し、この差分情報をクライアント端末2に通知することで、クライアント端末2の演算負荷を更に低減するようにしても良い。
すなわち、パスワード認証鍵交換システムでは、クライアント端末2とパスワード認証鍵交換装置1とが協調して演算を行なうようにして、クライアント端末2での乱数生成に係る負荷及び乱数を利用したべき乗剰余演算の負荷を軽減している。
【0017】
なお、この実施形態では、クライアント端末2と店舗等に配設されたパスワード認証鍵交換装置1とは、例えば非接触ICや赤外線等を用いた近接通信等が可能な環境下にあることを想定しているので、前述したようにクライアント端末2で利用する第1の乱数のサイズが小さくても、両者間の通信路でのデータ盗聴の問題は起こらない。
【0018】
パスワード認証鍵交換システムの具体的なサービスイメージとしては、例えば、一のサーバ3aでコンテンツを管理し、他のサーバ3bではコンテンツの鍵等を管理している場合に、一のサーバ3aとの間でコンテンツのダウンロード時にセキュアな通信路を確立し、他のサーバ3bとの間でコンテンツの鍵の取得や課金等の処理を行うためのセキュアな通信路を確立する、という場合がある。
【0019】
上記のような機能を実現するためのパスワード認証鍵交換装置1の構成例は、図2に示される通りである。すなわち、パスワード認証鍵交換装置1は、コンピュータの一種である制御部11、クライアント端末2との無線通信やサーバ3とのネットワーク通信を実現するための通信部12、液晶ディスプレイ装置等からなる表示部13、マウスやキーボード等からなる操作入力部14、RAM、ROM、ハードディスク等のメモリデバイスからなる記憶部15を有する。
【0020】
制御部11は、コンピュータプログラムの一例となる制御プログラム100に基づき、制御部11内に、乱数生成機能11a、二次データ生成機能11b、鍵交換部分データ生成機能11c、差分情報生成機能11dを形成する。
乱数生成機能11aは、クライアント端末2から提示されたサービス情報に基づきサーバ3a,3b…毎の第2の乱数を生成する機能である。二次データ生成機能11bは、クライアント端末2で作成されたクライアント一次データと乱数生成機能11aにより生成した第2の乱数とに基づいてクライアント二次データを生成しサーバ3に送信する機能である。鍵交換部分データ生成機能11cは、サーバ3a,3b…で作成されたサーバデータと先に乱数生成機能11aで生成した第2の乱数とに基づいて鍵交換部分データを生成し、これをクライアント端末2に送信する機能である。差分情報生成機能11dは、複数のサーバ3a,3b…と鍵交換し、且つ複数のサーバ3a,3b…に対するパスワードが同一である場合に、複数のサーバデータより差分情報を生成しクライアント端末2に送信する機能である。各機能の詳細については、後述する。
【0021】
記憶部15には、各サーバ3についての生成乱数と、ステータス(サーバデータ待ち、鍵共有済み等を表すデータ)が対応付けられて記憶される。記憶部15には、このほか、パスワード認証鍵交換で利用する各種のパラメータも一時的に記憶されることになる。
なお、制御部11は、各機能11a〜11dが形成されて実行される場合、それぞれ乱数生成手段、二次データ生成手段、鍵交換部分データ生成手段、差分情報生成手段として機能することになる。但し、各手段の実現形態は、機能11a〜11dに限定されるものではなく、適宜、ファームウエア、ハードウエアに置き換えることもできる。
【0022】
クライアント端末2は、例えば図3のように構成される。すなわち、クライアント端末2は、制御部21、通信部22、表示部23、操作入力部24、記憶部25を有する。制御部21はコンピュータの一種であり、所定のクライアント用制御プログラム200を読み込んで実行することにより、制御部21内に、サービス情報管理機能21a、鍵交換管理機能21bを形成する。
サービス情報管理機能21aは、クライアント端末2に登録したサービス情報を保持し、店舗側のパスワード認証鍵交換装置1にサービス情報(例えばサーバのURL等)を通知する機能である。鍵交換管理機能21bは、クライアント端末2で入力したパスワードと生成した第2の乱数とに基づいてサーバ3とパスワード認証鍵交換を行い、共有鍵を取得する機能である。各機能の詳細については、後述する。
【0023】
記憶部25には、サービス情報として、各サービス毎に対応するサーバ情報(例えばサーバURL、ポート番号等)、ユーザID等が対応付けられて記憶されており、更にパスワードが用いられるサービスを識別するための情報も記憶されている。また、パスワード認証鍵交換で利用する各種のパラメータも一時的に記憶されることになる。
なお、制御部21は、機能21a,21bに基づいて作用する場合、それぞれサービス情報管理手段、鍵交換管理手段として機能する。但し、各手段の実現形態は、機能21a,21bに限定されるものではなく、適宜、ファームウエア、ハードウエアに置き換えることもできる。
【0024】
サーバ3は、例えば図4のように構成される。すなわち、サーバ3は、制御部31、通信部32、記憶部33を有する。制御部31はコンピュータの一種であり、所定のサーバ用制御プログラム300を読み込んで実行することにより制御部31内に、ユーザ管理機能31a、鍵交換管理機能31bを実行する。ユーザ管理機能31aは、ユーザ毎のパスワード等を保持する機能である。鍵交換管理機能31bは、第3の乱数を生成し、この生成した第3の乱数とパスワード認証鍵交換装置1の二次データ生成機能11bにより生成されたクライアント二次データとに基づいてサーバデータを生成し、パスワード認証鍵交換を行い、共有鍵を取得する機能である。各機能の詳細については、後述する。
記憶部33にはユーザID、パスワード、有効期限、鍵共有済みフラグが対応付けられて記憶される。また、パスワード認証鍵交換で利用する各種のパラメータも一時的に記憶される。
なお、制御部31は、機能31a,31bに基づいて作用する場合、それぞれユーザ管理手段、鍵交換管理手段として機能する。但し、各手段の実現形態は、機能31a,31bに限定されるものではなく、適宜、ファームウエア、ハードウエアに置き換えることもできる。
【0025】
[動作手順]
以下、この実施形態のパスワード認証鍵交換システムの動作例を図5及び図6を参照して説明する。
クライアント端末2の制御プログラム200その他のプログラムが起動した後、ユーザにより操作入力部24が操作されてユーザID及びパスワードが入力されると(ステップS1)、クライアント端末2の制御部22は、鍵交換管理機能21bに基づいて、パスワード認証鍵交換装置1側で生成する後述の乱数に比べてサイズの小さい乱数Sa1(第1の乱数)を生成する(ステップS2)。制御部22は、また、サービス情報管理機能21aに基づいて、利用を所望するサーバ3のサーバ情報とユーザIDを店舗側のパスワード認証鍵交換装置1へ通知する(ステップS3)。この段階では、クライアント端末2の記憶部25に、「サービス情報」として、サービス毎のサーバ情報(例えばサーバのURL、ポート番号等)、ユーザID、並びにパスワードが同一のサービスに関する情報、更にはパスワード認証鍵交換で利用するパラメータが記憶されている。制御部22は、記憶部25に記憶されている「サービス情報」を参照して、利用を所望するサーバ3に対応するサーバ情報とユーザIDを読み出し、通知する。
【0026】
店舗側のパスワード認証鍵交換装置1は、このサーバ情報とユーザIDを通信部12を介して受信すると(ステップS4)、その制御部11が、サービスを選択する(ステップS5)。サービスが複数ある場合は、パスワード認証鍵交換装置1側でサービスを指定しても良く、あるいは予めクライアント端末2がサービスを指定している場合はステップS4の処理を省略しても良い。
【0027】
制御部11は、また、乱数生成機能11aに基づいて先にステップS5で選択したサービスで利用するサーバ3毎に乱数Sa2-1,Sa2-2,・・・Sa2-n(第2の乱数)を生成する(ステップS6)。制御部11は、さらに、接続先のサーバ3に対してクライアント端末2から送られたユーザIDを通知するとともに、クライアント端末2にパスワード認証鍵交換で必要なクライアント端末2側のクライアント一次データの作成を依頼(鍵交換要求)する(ステップS7)。なお、複数のサーバ3を利用する際には、ユーザIDをそれぞれ通知することとする。
【0028】
鍵交換要求を受けとったクライアント端末2は、制御部21が、鍵交換管理機能21bにより、先にステップS1において入力されたパスワードのハッシュ値とステップS2で生成した乱数Sa1とに基づいてべき乗剰余演算を行い、クライアント一次データを生成する(ステップS8)。例えば、ステップS1で入力されたパスワードをπ、そのハッシュ値をH(π)、離散対数のドメインパラメータをk,qとすると、クライアント一次データWa1は、以下のようなべき乗剰余演算により求めることができる。
g1=H(π)^k modq
Wa1=(g1^Sa1 modq)
【0029】
クライアント端末2では、制御部21が、鍵交換管理機能21bにより、パスワード認証鍵交換で利用する公開パラメータとステップS8で生成したクライアント一次データWa1とを、通信部22を介して、店舗側のパスワード認証鍵交換装置1へ送信する(ステップS9)。
【0030】
パスワード認証鍵交換装置1は、通信部12を介して公開パラメータとクライアント一次データを受信すると(ステップS10)、制御部11が、このクライアント一次データWa1が所定範囲にあるか否か(例えば、べき乗剰余の剰余値以内か等)を確認する(ステップS11)。このステップS11において、制御部11は、クライアント一次データWa1が所定範囲にないと判断した場合は、クライアント端末2から店舗側のパスワード認証鍵交換装置1に通知されたサーバ情報や先に生成した乱数Sa2-1,Sa2-2,…Sa2-nをクリアし、クライアント端末2にエラー通知を行う(ステップS12)。
【0031】
サーバ3は、通信部32を介してクライアント端末2から送られたユーザIDを含む通知(鍵交換要求)を受けると、制御部31が、ユーザ管理機能31aに基づき、当該ユーザIDが登録されているか否かを確認する(ステップS13)。ステップS13においてユーザIDが登録されていないと制御部31が判断した場合には、クライアント端末2から店舗側のパスワード認証鍵交換装置1に通知されたサーバ情報や、該装置1で生成した乱数Sa2-1,Sa2-2,…Sa2-nを消去し、クライアント端末2にエラー通知を行なうように指示する(ステップS14)。制御部31が、ユーザIDが登録されているものであると判断した場合には、乱数Sb(第3の乱数)を生成する(ステップS15)。
【0032】
パスワード認証鍵交換装置1では、制御部11が二次データ生成機能11bに基づいて、先にステップS10において受信した公開パラメータ及びクライアント一次データWa1と前記ステップS6において生成した乱数Sa2-1,Sa2-2,…Sa2-nとに基づいてべき乗剰余演算を行ってクライアント二次データを生成し、このクライアント二次データを各サーバ3へ送信する(ステップS16)。例えば、サーバ3aに対する乱数がSa2-1であるとすると、当該サーバ3aに送信すべきクライアント2次データWaは、以下のようなべき乗剰余演算により求めることができる。
Wa2-1=g1^Sa2-1 modq
Wa=Wa1*Wa2-1
【0033】
同様に、サーバ3bに対する乱数がSa2-2であるとすると、サーバ3bに送信すべきクライアント2次データWa’は、以下のようなべき乗剰余演算により求めることができる。
Wa2-2=g1^Sa2-2 modq
Wa’=Wa1*Wa2-2
【0034】
サーバ3は、通信部32を介して当該クライアント二次データWaを受信すると(ステップS17)、制御部31が当該クライアント二次データWaが所定範囲(例えば、べき乗剰余の剰余値以内か等)にあるか否かを確認する(ステップS18)。クライアント二次データWaが所定範囲にないと判断した場合には、ステップS14に移行し、エラー通知に係る前述した指示を行う。一方、制御部31が、クライアント二次データWaが所定範囲にあると判断した場合には、鍵交換管理機能31bにより、先にステップS13にて確認したユーザIDに基づいて記憶部35よりパスワードまたはパスワードの関連データを取得し、ステップS15で生成した乱数Sbを利用してサーバデータを作成し、パスワード認証鍵交換装置1に通知する(ステップS19)。
【0035】
例えば、サーバ3aで生成されるサーバデータは、乱数Sbを含む下記式で表される。
Wb=g1^Sb modq
同様の演算式により、サーバ3bで生成されるサーバデータWb’は、乱数Sb’を含む下記式で表される。
Wb’=g1^Sb’modq
【0036】
ステップS19の実行後、サーバ3は、制御部31がステップS17で受信したクライアント二次データWaとステップS15で生成した乱数Sbとに基づいて、クライアント端末2とサーバ3との間で共有する共有鍵を生成するための元となる鍵交換共有データZを生成する(ステップS20)。例えば、サーバ3aは、クライアント二次データWaと生成した乱数Sbより、鍵交換共有データZ1を、下記のべき乗剰余演算により求める。
Z1=Wa^Sb*k modq
この場合、共有鍵Kiは、鍵交換共有データZ1と公開パラメータPiより、以下のようになる。Hはハッシュ関数である。
Ki=H(z1‖Pi)
【0037】
同様に、サーバ3bでは、クライアント二次データWa’と生成した乱数Sb’より鍵交換共有データZ2を下記のべき乗剰余演算により求める。
Z2=Wa^Sb’*k modq
この場合、共有鍵Kiは、鍵交換共有データZ1と公開パラメータPi’より、以下のようになる。
Ki=H(Z1‖Pi’)
【0038】
パスワード認証鍵交換装置1は、通信部12を介してサーバ3からのサーバデータWbを受信すると(ステップS21)、制御部11が、鍵交換部分データ生成機能11cに基づき、当該サーバデータに対して、ステップS10で受信した公開パラメータとステップS6で生成した乱数Sa2-1,Sa2-2,・・・を用いて、鍵交換共有データの鍵交換部分データを生成し、クライアント端末2に通知する(ステップS22)。
例えば、サーバ3aから通知された鍵交換共有データZ1の鍵交換部分データZ2-1は、サーバデータWbと乱数Ss2-1、離散対数のドメインパラメータqより、下記のべき乗剰余演算により求められる。
Z2-1=Wb^Ss2-1 modq
【0039】
同様に、サーバ3bから通知された鍵交換共有データZ2の鍵交換部分データZ2-2は、サーバデータWb’と乱数Ss2-2、離散対数のドメインパラメータqより、下記のべき乗剰余演算により求められる。
Z2-2=Wb’^Ss2-2 modq
【0040】
つまり、複数のサーバからのサーバデータを受信した場合(ステップS23)、制御部11は、それら複数のサーバが同じパスワード設定であるか否かを判断する(ステップS24)。そして、同じパスワード設定でない場合には、前述したようにして鍵交換部分データを生成し、クライアント端末2に送信する(ステップS25)。これに対して、複数のサーバが同じパスワード設定である場合、制御部11は、鍵交換部分データ生成機能11cにより鍵交換部分データを生成するほか、差分情報生成機能11dにより差分情報を計算し、これらをクライアント端末2に送信する(ステップS26)。
例えば、サーバ3aからのサーバデータWbとサーバ3aからのサーバデータWb’との差分情報は、Wb’/Wbとなる。
【0041】
クライアント端末2は、通信部22を介してパスワード認証鍵交換装置1からの鍵交換部分データを受信すると(ステップS27)、制御部21が鍵交換部分データを検証する(ステップS28)。ここでは、受信した鍵交換部分データが所定範囲(例えば、べき乗剰余の剰余値以内か等)にあるか否かを確認し、エラーの場合は店舗側のパスワード認証鍵交換装置1やサーバ3に、その旨を通知し、それぞれのノードで設定、生成された情報を消去する(ステップS29)。一方、受信した鍵交換部分データが所定範囲にある場合、制御部21は、差分情報が送られているか否かを判断する(ステップS30)。そして、送られていない場合には、ステップS2で生成した乱数Sa1を利用して鍵交換共有データZ1を生成する(ステップS31)。この場合、鍵交換共有データZ1は、下記のべき乗剰余演算により求めることができる。
Za=(Z2-1^k modq)
Zb=Wb^Sa1*k modq
Z1=Za*Zb
=(Wb^(Sa1*k+Sa2-1*k)modq
=(Wb^(Sa1+Sa2-1*k)modq
【0042】
共有鍵Kiは、鍵交換共有データZ1と公開パラメータPiより、以下のようになる。
Ki=H(Z1‖Pi)
【0043】
一方、ステップS30において、差分情報が送られている場合、クライアント端末2では、制御部21が、鍵交換共有データZ2を、ステップS2で生成された乱数Sa1と差分情報とに基づいて生成する(ステップS32)。例えば、サーバ3aからのサーバデータWbとサーバ3aからのサーバデータWb’との差分情報は、Wb’/Wbとなる。ステップS32では、この差分情報を用いて、鍵交換共有データZ2を下記のべき乗剰余演算により求める。
Zc=(Z2-2^k modq)
Zd=Zb*差分情報(=Wb’/Wb)
Z2=Zc*Zd
=(Wb’^((Sa1+Sa2-2)*k)modq
共有鍵Kiは、鍵交換共有データZ2と公開パラメータPi’より、以下のようになる。
Ki=H(Z1‖Pi’)
【0044】
以上の説明から明らかなように、第1実施形態のパスワード認証鍵交換システムによれば、クライアント端末2で生成する第1の乱数のサイズを店舗側の装置1で生成する第2の乱数のサイズに比べて小さくすることで、当該クライアント端末2での第1の乱数に係るべき乗剰余演算の処理負担を軽減することが可能となる。また、離散対数のドメインパラメータk値を店舗側のパスワード認証鍵交換装置1では公開しないことにより、セキュリティを確保することができる。クライアント端末2が複数のサーバ3と同時に鍵交換を所望する場合であっても、一の第1の乱数を生成すれば良いので、この点でも処理負担を軽減することができる。さらに、複数のサーバ3について同じパスワードを使用する場合、差分情報を用いることで、クライアント端末2での処理負担を更に軽減することができる。このように、クライアント端末2とパスワード認証鍵交換装置1とが協調して演算を行なうことで、クライアント端末2での乱数生成に係る負荷及び乱数を利用したべき乗剰余処理等の負荷を軽減することを可能としている。
【0045】
また、演算能力の低い安価なクライアント端末2と複数のサーバ3a,3b…との間で安全な通信路を確立できるため、サーバ3a,3b…間での安全な通信路が確保できない環境においても、複数のサーバ3a,3b…を利用したサービス連携が可能となる。
【0046】
<第2実施形態>
次に、パスワード認証鍵交換システムの第2の実施形態を説明する。この実施形態のパスワード認証鍵交換システムは、第1実施形態に係るシステムの構成要素であるパスワード認証鍵交換装置1に、新たな機能を付加したものである。その概念図は図1と略同様であり、クライアント端末2の構成は図3と同様であり、サーバ3の構成は図4と同様であるので、重複した説明は省略する。
まず、図7を参照して、第2実施形態に係るパスワード認証鍵交換システムを構成するパスワード認証鍵交換装置5の構成例を説明する。
このパスワード認証鍵交換装置5は、コンピュータの一種となる制御部51、クライアント端末2との無線通信やサーバ3とのネットワーク通信を実現する通信部52、液晶ディスプレイ装置等からなる表示部53、マウスやキーボード等からなる操作入力部54、RAMやROM等のメモリデバイスからなる記憶部55を有する。
【0047】
制御部51は、コンピュータプログラムの一例となる制御プログラム500に基づき、依頼演算管理機能51a、クライアント・サーバ接続管理機能51b、共有鍵確認機能51c、クライアント・サーバ通信機能51dを少なくとも形成する。
依頼演算管理機能51aは、前述した第1実施形態(図2)の乱数生成機能11a、二次データ生成機能11b、鍵交換部分データ生成機能11c、差分情報生成機能11dの機能のほか、更に、演算機能選択・追加、クライアント・サーバ毎に応じた乱数生成サイズ決定(クライアント演算能力、サーバとの間の通信セキュリティレベル等に基づく)に係る機能を含む。
【0048】
クライアント・サーバ接続管理機能51bは、セッション管理、すなわちクライアント端末2が店舗側のパスワード認証鍵交換装置1から一時的に離れ再度接続、複数サーバ同時アクセス時のセッション割り当て等の管理、複数のサーバ3へのアクセス時に当該サーバ3からの応答がくるまで他のサーバ3からの応答結果を保持する機能、サイト毎に生成する生成乱数のMACを生成し、利用時に検証する機能、サーバ接続エラー時に代理のサーバにアクセスする機能である。共有鍵データ確認機能51cは、パスワード入力誤り時などのリトライ・切断機能を含む。クライアント・サーバ通信管理機能51dは、クライアント・サーバの接続時間管理(課金も含む)やクライアント・サーバ接続管理で生成したセッションIDの消去(クライアント・サーバ接続が完了した場合や異常発生時等)に係る機能である。各機能の詳細は後述する。
【0049】
なお、制御部51は、機能51a乃至51dに基づいて作用する場合、それぞれ依頼演算管理手段、クライアント・サーバ接続管理手段、共有鍵確認手段、クライアント・サーバ通信管理手段として機能する。但し、但し、各手段の実現形態は、機能51a〜51dに限定されるものではなく、適宜、ファームウエア、ハードウエアに置き換えることもできる。
【0050】
[動作手順]
次に、第2実施形態に係るパスワード認証鍵交換装置5の動作を図8〜図12の手順説明図を参照して説明する。
まず、図8の手順説明図を参照して、制御部51による依頼演算管理機能51aによる依頼演算管理処理の手順について説明する。
制御部51は、クライアント端末2から依頼演算要求、演算データを受信すると(ステップS51)、当該依頼演算に対応する機能が形成されているか否か、つまり当該機能を有しているか否かを判断する(ステップS52)。機能を有していない場合には、当該機能をダウンロードすることが可能であるか否かを判断する(ステップS53)。そして、ダウンロード可能である場合には演算機能をダウンロードし、ステップS56に移行する(ステップS54)。ダウンロード不可能な場合は、クライアント端末2にエラー通知を行なう(ステップS55)。
なお、依頼演算に対応する機能のダウンロードとは、対応するアプリケーションのダウンロード等による。サーバ3がASPとしての役割を担っている場合には、当該サーバ3にリクエストを出し、対応するアプリケーションの有無、ダウンロード可能であるか否かを確認し、ダウンロードを実行することで対応することになる。但し、この手法には限定されないことは勿論である。
【0051】
制御部51は、その後、依頼演算に対応する演算モジュールを選択し(ステップS56)、依頼先のサーバ3と店舗側のパスワード認証鍵交換装置5(自身)との間のセキュリティレベルが登録されているか否かを判断する(ステップS57)。「セキュリティレベル」とは、例えばセキュリティに対する安全レベルのようにセキュリティの度合いを定量化したものをいう。このセキュリティレベルが登録済みでない場合は、サーバ3までの経路情報を取得し、セキュリティレベルのレベル値を算出し、ステップS59に移行する(ステップS58)。セキュリティレベルが登録済みである場合は、ステップS59に移行する。
【0052】
制御部51は、セキュリティレベルのレベル値に対応した乱数サイズを取得し(ステップS59)、クライアント端末2で演算可能な乱数サイズが通知されているか否かを判断する(ステップS60)。通知済みでない場合には、サーバ3のセキュリティレベルに対応した乱数サイズを店舗側のパスワード認証鍵交換装置5(自身)で生成する乱数とする(ステップS61)。一方、通知済みの場合は、サーバ3とクライアント端末2の乱数サイズの差分を店舗側のパスワード認証鍵交換装置5(自身)の乱数サイズとする(ステップS62)。このようにして乱数を生成し、ステップS51にて受信した演算データに関して演算を行い(ステップS63)、クライアント・サーバ接続管理機能51bの実行へと移行する(ステップS64)。
【0053】
クライアント・サーバ接続管理機能51bによるクライアント・サーバ接続管理処理の手順は、図9に示される通りである。クライアント・サーバ接続管理処理の流れは、クライアント端末2から複数のサーバ3への接続要求があるか否かにより2種類に分かれる。すなわち、制御部51は、クライアント端末2から複数のサーバ3への接続要求があるか否かを判断し(ステップS71)、当該要求がない場合は、ステップS73以降のクライアント・サーバ接続管理の第1処理を実行し、他方、当該要求がある場合には、後述するクライアント・サーバ接続管理の第2処理へと移行する(ステップS72)。
【0054】
クライアント・サーバ接続管理の第1処理では、まず、サーバ向けセッションIDを生成し、生成した乱数とともに記憶部55に保持し(ステップS73)、演算結果をサーバ3に通知する(ステップS74)。その後、制御部51は、クライアント端末2向けセッションIDを生成しクライアント端末2に通知し(ステップS75)、且つ待ち時間を越えてサーバ3から応答がないか否かを監視する(ステップS76)。ステップS76にて、待ち時間を越えてサーバ3から応答がない場合、エラー時の代替サーバの指定があるか否かを確認する(ステップS77)。代替サーバの指定がある場合は、指定された代替サーバに再接続する(ステップS78)。他方、代替サーバの指定がない場合、制御部51は、乱数、セッションIDをクリアし、クライアント端末2にエラー通知することになる(ステップS79)。
【0055】
ステップS76の監視中、サーバ3からのデータを受信すると(ステップS80)、制御部51は、受信したデータ内のセッションIDが記憶部55に保持しているセッションIDと同一であるか否かを判断する(ステップS81)。両者が同一でない場合には、乱数、セッションIDをクリアし、クライアント端末2にエラー通知する(ステップS79)。これに対して、両者が同一である場合には、セッションIDに対応する乱数とサーバ3からの受信データを用いた演算を行い(ステップS82)、その演算結果をクライアント端末2に通知する(ステップS83)。
【0056】
その後、制御部51は、クライアント端末2とパスワード認証鍵交換装置5(自身)が通信可能な状態にあるかを判断する(ステップS84)。通信可能な状態でない場合にはセッションIDを店舗側の装置5(自身)の表示部53に表示し、クライアント端末2を待ち状態にするよう促す(ステップS85)。そして、この待ち時間を越えてクライアント端末2と通信できないかを監視し(ステップS86)、通信できない場合には、乱数、セッションIDをクリアし、クライアント端末2にエラー通知する(ステップS79)。一方、ステップS84にて両者が通信可能な状態にある場合、及びこのステップS86にて通信できるようになった場合には、クライアント端末2と通信を行い(ステップS87)、共有鍵データ確認処理へと移行する(ステップS88)。
【0057】
図10は、制御部51によるクライアント・サーバ接続管理の第2処理の手順を示している。図9において第2のクライアント・サーバ接続管理処理(図9:ステップS72)に移行すると、制御部51は、図10に示されるように、各サーバ向けセッションIDについてグループIDを生成して付与し、このグループIDをサーバ3に通知する(ステップS101)。そして、待ち時間を越えてサーバ3から応答がないかを監視する(ステップS102)。サーバ3からの応答がない場合には、乱数、セッションIDをクリアし、クライアント端末2にエラー通知を行う(ステップS103)。他方、応答があった場合は、サーバ3からのデータを受信する(ステップS104)。そして、受信したデータ内のセッションIDが記憶部55に保持しているセッションIDと同一であるか否かを判断する(ステップS105)。両者が同一でない場合は、乱数、セッションIDをクリアし、クライアント端末2にエラー通知を行う(ステップS103)。
【0058】
ステップS105にて、両セッションIDが同一であると判断した場合、制御部51は、同一グループIDのサーバ向けセッションIDでサーバ3からデータを受信していないものがないかどうかを判断する(ステップS106)。受信していないものがある場合にはステップS104に戻り、上記の処理手順を繰り返す。他方、受信していないものはない場合、制御部51は、各サーバ向けセッションIDに付与したグループIDをクリアし(ステップS107)、それぞれのセッションIDに対応する記憶部55に保持している乱数とサーバ3からの受信データを用いて所定演算(積算、べき乗剰余演算等)を行う。また、必要に応じて、差分情報を演算する(ステップS108)。こうして、制御部51は、通信部52を介して演算結果をクライアント端末2に通知し(ステップS109)、共有鍵データ確認処理へと移行する(ステップS110)。なお、ステップS108の処理に代えて、図9のステップS84乃至S86と同様の処理を行なっても良いことは勿論である。
【0059】
次に、図11の手順説明図を参照して、制御部51による共有鍵確認機能51cに基づく共有鍵確認処理の手順について説明する。
制御部51は、まず鍵交換共有データの確認データの要求がなされているか否かを判断する(ステップS121)。ここでは、クライアント端末2とサーバ3との間で鍵交換が終了した後にサーバ3から当該要求がなされることを想定している。当該要求がなされていない場合には、後述するクライアント・サーバ通信管理処理へと移行する(ステップS122)。一方、当該要求がなされている場合には、制御部51は、クライアント端末2に確認データの生成を要求する(ステップS123)。
クライアント端末2からの確認データを受信すると(ステップS124)、制御部51は、受信した確認データに付与されたセッションIDが記憶部55に保持しているセッションIDと同一であるか否かを判断する(ステップS125)。両者が同一でない場合には、クライアント端末2、サーバ3にエラー通知を行い、セッションIDや受信データをクリアする(ステップS126)。両者が同一である場合には、クライアント端末2から取得した確認データをサーバ3に通知する(ステップS127)。
【0060】
その後、サーバ3からのデータを受信すると(ステップS128)、受信したデータ内のセッションIDが記憶部55に保持しているセッションIDと同一であるか否かを判断する(ステップS129)。両者が同一でない場合には、クライアント端末2、サーバ3にエラー通知を行い、セッションIDや受信データをクリアする(ステップS126)。他方、両者が同一である場合には、制御部51は、サーバ3からの応答が確認データNGであるか否かを判断する(ステップS130)。サーバからの応答が確認データNGである場合、制御部51は、NG回数をインクリメントし(ステップS131)、当該NG回数が所定回数以上になっていないかどうかを監視する(ステップS132)。NG回数が所定回数以上になった場合、制御部51は、通信部52を介してクライアント端末2及びサーバ3にエラー通知を行い、セッションIDや受信データをクリアする(ステップS126)。他方、NG回数が所定回数未満である場合、制御部51は、クライアント端末2にパスワードの再入力を依頼し、再度演算をやり直す(ステップS133)。
【0061】
次に、図12を参照して、制御部51によるクライアント・サーバ通信管理機能51dに基づくクライアント・サーバ通信管理処理の手順について説明する。
制御部51は、クライアント端末2とサーバ2との間の通信を許可し(ステップS141)、クライアント端末2にサーバ送信でデータを要求する(ステップS142)。クライアント端末2よりデータを受信すると(ステップS143)、制御部51は、クライアント端末2からのクライアント・サーバ間の通信切断要求があるかどうかを判断する(ステップS144)。当該要求がある場合、制御部51は、クライアント端末2とサーバ3との間の通信を不許可とし、セッションIDをクリアする(ステップS145)。他方、当該要求がない場合、制御部51は、クライアント端末2からの受信データに付与されたセッションIDが記憶部55に保持されているセッションIDと同一か否かを判断する(ステップS146)。両者が同一でない場合、制御部51は、クライアント端末2とサーバ3にエラー通知を行い、セッションIDや受信したデータをクリアする(ステップS150)。他方、両者が同一である場合、クライアント端末2から受信したデータをサーバ3に通知する(ステップS148)。
【0062】
制御部51は、サーバ3からのデータを通信部52を介して受信すると(ステップS149)、受信したデータ内のセッションIDが記憶部55に保持しているセッションIDと同一であるか否かを判断する(ステップS150)。両者が同一でない場合、制御部51はステップS147に移行し、上述した処理を行う。他方、両者が同一である場合、制御部51は、サーバ3から取得したデータを通信部52を介してクライアント端末2に通知する(ステップS151)。そして、制御部51は、クライアント端末2とサーバ3との間の通信時間が制限を超えたかどうかを判断する(ステップS152)。当該制限を越えた場合はステップS145に移行して上述した処理を行う。他方、当該制限を越えていない場合は、ステップS142に戻り、前述した一連の処理を繰り返す。
【0063】
このように、第2実施形態では、第1実施形態に係るパスワード認証鍵交換装置1の機能に加えて、依頼演算管理機能51aに基づきべき乗剰余演算のみならず、他の演算の依頼にも対応可能となることを示した。また、パスワード認証鍵交換装置5で生成する第2の乱数の乱数サイズの決定方式を具現化した。また、クライアント端末2が複数のサーバ3にアクセスする場合に、セッションIDのほか、グループIDによる管理処理もクライアント・サーバ接続管理機能51bにより実現されている。更に、パスワード認証鍵交換時の確認データを用いたチェックについても共有鍵データ確認機能51cとして実現されている。そして、クライアント・サーバ通信機能51dによりパスワード認証鍵交換後の通信管理も適正化されている。従って、パスワード認証鍵交換の更なる効率化、セキュアな通信環境の下での複数のサーバ3a,3b…を利用したサービス連携が可能となる。
【0064】
以上、本発明について、第1及び第2実施形態を示して説明したが、本発明は、これらの実施形態に限定されるものではなく、様々な改良や変更が可能である。第1実施形態としては、クライアント端末2が複数のサーバ3a,3b…とやり取りをする例を示したが、P2Pのように複数のクライアント端末間での鍵交換に適用することも可能である。また、クライアント端末2と店舗側のパスワード認証鍵交換装置1,5との間が近接通信である場合を例に挙げて説明したが、信頼できる別の通信路があれば、遠隔にある端末を経由して鍵交換を行うようにしても良いことは、勿論である。
また、本発明は、パスワードのような個人情報が店舗端末や通信路に漏洩しないため、個人情報を取得するキーロガーやフィッシングなどの脅威を低減して鍵交換を行うことができるというメリットがある。
【図面の簡単な説明】
【0065】
【図1】本発明の第1実施形態に係るパスワード認証鍵交換装置1を用いたパスワード認証鍵交換システムの概念図。
【図2】パスワード認証鍵交換装置の構成例を示した図。
【図3】クライアント端末の構成例を示した図。
【図4】サーバの構成例を示した図。
【図5】第1実施形態に係るパスワード認証鍵交換システムの動作手順説明図。
【図6】第1実施形態に係るパスワード認証鍵交換システムの動作手順説明図。
【図7】第2実施形態に係るパスワード認証鍵交換システムを構成するパスワード認証鍵交換装置の構成例を示した図。
【図8】依頼演算管理処理の手順説明図。
【図9】クライアント・サーバ接続管理の第1処理の手順説明図。
【図10】クライアント・サーバ接続管理の第2処理の手順説明図。
【図11】共有鍵確認処理の手順説明図。
【図12】クライアント・サーバ通信管理処理の手順説明図。
【符号の説明】
【0066】
1…パスワード認証鍵交換装置、2…クライアント端末、3…サーバ、4…ネットワーク、5…パスワード認証鍵交換装置、11…制御部、12…通信部、13…表示部、14…操作入力部、15…記憶部、11a…乱数生成機能、11b…二次データ生成機能、11c…鍵交換部分データ生成機能、11d…差分情報生成機能、21…制御部、22…通信部、23…表示部、24…操作入力部、25…記憶部、21a…サービス情報管理機能、21b…鍵交換管理機能、31…制御部、32…通信部、33…記憶部、31a…ユーザ管理機能、31b…鍵交換管理機能。
【技術分野】
【0001】
本発明は、クライアント端末の処理の負荷を軽減したパスワード認証鍵交換装置、システム、方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
人が容易に記憶することができる低グレードのパスワードを利用して電子文書のセキュリティを図るパスワード認証鍵交換プロトコル利用のセキュリティ手法が知られている。この手法は、クライアント端末とサーバとの間でパスワード又はパスワードのハッシュ値を共有することにより、クライアント端末にて秘密の鍵情報を保持することなく、鍵共有を行うものである。この手法は、クライアント端末とサーバとの間のネットワークに対する攻撃者が、パスワードの予測をオフラインで行うことができない状況を生み出すところに技術的特徴がある。この手法の応用例としては、例えばパスワードのハッシュ値から派生した情報とRSA方式やDiffie-Hellman型鍵交換方式とを組み合わせて利用するセキュリティ手法がある(特許文献1〜3参照)。
Diffie-Hellman型鍵交換方式とは、複数のノードの各々で乱数を生成し、この乱数をべき乗剰余した値を相手方に送信する一方、受信した値に対して自身で生成した乱数を用いて再度べき乗剰余することで、双方のみ知り得る鍵を共有する方式である。
【0003】
【特許文献1】特表2003−536320号公報
【特許文献2】特開2001−313634号公報
【特許文献3】特開2002−335238号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した従来のセキュリティ手法は、パスワード認証鍵交換プロトコルで利用する「べき乗剰余演算」に長時間を要する。そのため、例えば携帯端末のような演算能力の低いクライアント端末がローカルな店舗端末を介してサーバと通信を行うようなサービスでは、べき剰余演算に伴う待ち時間が長くなり、利用に適さないという問題がある。
また、クライアント端末が、同じタイミングで複数のサーバとの間で鍵を共有したいときには、サーバ毎に異なる乱数をクライアント端末側で生成する必要があるため、その処理に時間がかかり、クライアント端末に負荷が集中するといった問題もある。
本発明は、かかる問題を解消し、クライアント端末がサーバと鍵交換を行う際のクライアント端末での乱数生成処理の負荷及び演算処理の負荷を軽減し、サーバとの鍵交換を効率良く行い、ひいては複数のサーバを利用したサービス連携をも実現する手法を提供することを主たる課題とする。
【課題を解決するための手段】
【0005】
本発明は、例えば、第1の乱数を生成するクライアント端末及びサーバデータを生成するサーバのそれぞれと通信可能なパスワード認証鍵交換装置として具現化することができる。このパスワード認証鍵変換装置は、前記第1の乱数に比べてサイズの大きい第2の乱数を生成する乱数生成手段と、前記クライアント端末が前記第1の乱数及び所定のパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第2の乱数とに基づいてクライアント二次データを生成するとともに、生成したクライアント二次データに基づいて、前記クライアント端末と共有する共有鍵の生成を前記サーバに促す二次データ生成手段と、前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、生成した鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す鍵交換部分データ生成手段と、を有する装置である。
【0006】
このパスワード認証鍵変換装置において、前記クライアント端末が複数のサーバと通信を行う場合、前記乱数生成手段は、サーバ毎に異なる第2の乱数を生成するものとしても良い。また、前記複数のサーバに係る複数のサーバデータの差分情報を生成する差分情報生成手段を更に有し、この差分情報生成手段が前記鍵交換部分データに加えて前記差分情報を更に用いた前記共有鍵の生成を前記クライアント端末に促すようにしても良い。
【0007】
本発明はまた、例えば、サーバと、第1の乱数を生成するクライアント端末及び前記サーバのそれぞれと通信可能なパスワード認証鍵交換装置とを有するパスワード認証鍵交換システムとして具現化することができる。このパスワード認証鍵交換システムにおいて、サーバは、第3の乱数及びこの第3の乱数を使用してサーバデータを生成するともに、当該第3の乱数と前記クライアント端末が生成したクライアント二次データとに基づいて前記クライアント端末と共有する共有鍵を生成する鍵交換管理手段を有するものであり、前記パスワード認証鍵交換装置は、前記第1の乱数に比べてサイズの大きい第2の乱数を生成する乱数生成手段と、前記クライアント端末が前記第1の乱数及びパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第2の乱数とに基づいて前記クライアント二次データを生成する二次データ生成手段と、前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、生成した鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す鍵交換部分データ生成手段と、を有するものである。
【0008】
このパスワード認証鍵交換システムにおいても、前記クライアント端末が複数のサーバと通信を行う場合には、前記乱数生成手段は異なるサーバ毎に異なる第2の乱数を生成するようにしても良い。また、前記パスワード認証鍵交換装置は、複数のサーバに係る複数のサーバデータの差分情報を生成する差分情報生成手段を更に有し、この差分情報生成手段が前記鍵交換部分データに加えて前記差分情報を更に用いた前記共有鍵の生成を前記クライアント端末に促すようにしても良い。
【0009】
本発明は、パスワード認証鍵交換方法として具現化することができる。この方法は、サーバと、クライアント端末のそれぞれと通信可能なパスワード認証鍵交換装置とを有するシステムにより実行される方法であって、前記クライアント端末が、第1の乱数を生成するとともに、この第1の乱数と所定のパスワードとを使用してクライアント一次データを生成する段階と、前記パスワード認証鍵交換装置が、前記第1の乱数に比べてサイズの大きい第2の乱数を生成するとともに、前記生成されたクライアント一次データと前記第2の乱数とに基づいてクライアント二次データを生成する段階と、前記サーバが、第3の乱数を生成し、この第3の乱数に基づいてサーバデータを生成するとともに、当該第3の乱数と前記クライアント二次データとに基づいて前記クライアント端末と共有する共有鍵を生成する段階と、前記パスワード認証鍵交換装置が、前記サーバが生成した前記サーバデータと前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、この鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す段階とを有する。
【0010】
本発明は、コンピュータを、第1の乱数を生成するクライアント端末及びサーバデータを生成するサーバのそれぞれと通信自在なパスワード認証鍵交換装置として動作させるためのコンピュータプログラムとして具現化することができる。このコンピュータプログラムは、前記コンピュータを、前記第1の乱数に比べてサイズの大きい第2の乱数を生成する乱数生成手段、前記クライアント端末が前記第1の乱数及び所定のパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第2の乱数とに基づいてクライアント二次データを生成するとともに、生成したクライアント二次データに基づいて、前記クライアント端末と共有する共有鍵の生成を前記サーバに促す二次データ生成手段、前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、生成した鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す鍵交換部分データ生成手段、として機能させるためのコンピュータプログラムである。
【発明の効果】
【0011】
本発明によれば、クライアント端末がサーバと鍵交換を行う場合において、クライアント端末と協調して演算を行うことで、クライアント端末での乱数生成処理の負荷及び演算処理の負荷を軽減し、サーバとの鍵交換を効率良く行うことができる。
【発明を実施するための最良の形態】
【0012】
<第1実施形態>
図1は、本発明の第1実施形態に係るパスワード認証鍵交換システムの概念図である。この実施形態のパスワード認証鍵変換システムは、パスワード認証鍵交換装置1を含んで構成される。パスワード認証鍵交換装置1は、店舗等に配設されるもので、ユーザが操作する携帯電話機やPDA等からなるクライアント端末2と無線通信路により随時通信することができ、さらに、複数のサーバ3a,3b…(以下、サーバを総称する場合には符号3を用いる)とも、インターネット等のネットワーク4を通じて随時通信できるように構成される。
【0013】
クライアント端末2は、第1の乱数を生成し、この第1の乱数をべき乗剰余演算した値をクライアント一次データとして店舗等に配設されたパスワード認証鍵交換装置1に送信する。パスワード認証鍵交換装置1は、第2の乱数を生成し、この第2の乱数を用いてべき乗剰余演算した値とクライアント一次データとによりクライアント二次データを生成する。そして、生成したクライアント二次データをサーバ3に送信する。サーバ3は、受信したクライアント二次データの値に対して自身で生成した第3の乱数を用いて再度べき乗剰余演算を行うことで、クライアント端末2とサーバ3の双方のみが知りえる鍵を共有する。この鍵を共有鍵と称する。
【0014】
クライアント端末2が複数のサーバ3a,3b…と鍵交換を行うような場合、クライアント端末2が生成する第1の乱数のサイズを小さくし、その代わりに、店舗等に配設されるパスワード認証鍵交換装置1が、クライアント端末2で生成された第1の乱数よりも大きなサイズの第2の乱数を生成するようにしても良い。
【0015】
複数のサーバ3a,3b…との間でクライアント端末2が同じタイミングで鍵共有を行うような場合、店舗等に配設されたパスワード認証鍵交換装置1は、サーバ3a,3b…毎に異なる第2の乱数を生成することで、クライアント端末2で異なるサーバ3a,3b…毎の第1の乱数の生成を省略しても、サーバ3a,3b…に対して異なる乱数を利用しているように振舞えるようにすることもできる。
【0016】
さらに、例えば複数のサーバ3a,3b…に対して同じパスワードを設定しているような場合、店舗等に配設されるパスワード認証鍵交換装置1が、各サーバ3a,3b…から送られたサーバデータの差分情報を計算し、この差分情報をクライアント端末2に通知することで、クライアント端末2の演算負荷を更に低減するようにしても良い。
すなわち、パスワード認証鍵交換システムでは、クライアント端末2とパスワード認証鍵交換装置1とが協調して演算を行なうようにして、クライアント端末2での乱数生成に係る負荷及び乱数を利用したべき乗剰余演算の負荷を軽減している。
【0017】
なお、この実施形態では、クライアント端末2と店舗等に配設されたパスワード認証鍵交換装置1とは、例えば非接触ICや赤外線等を用いた近接通信等が可能な環境下にあることを想定しているので、前述したようにクライアント端末2で利用する第1の乱数のサイズが小さくても、両者間の通信路でのデータ盗聴の問題は起こらない。
【0018】
パスワード認証鍵交換システムの具体的なサービスイメージとしては、例えば、一のサーバ3aでコンテンツを管理し、他のサーバ3bではコンテンツの鍵等を管理している場合に、一のサーバ3aとの間でコンテンツのダウンロード時にセキュアな通信路を確立し、他のサーバ3bとの間でコンテンツの鍵の取得や課金等の処理を行うためのセキュアな通信路を確立する、という場合がある。
【0019】
上記のような機能を実現するためのパスワード認証鍵交換装置1の構成例は、図2に示される通りである。すなわち、パスワード認証鍵交換装置1は、コンピュータの一種である制御部11、クライアント端末2との無線通信やサーバ3とのネットワーク通信を実現するための通信部12、液晶ディスプレイ装置等からなる表示部13、マウスやキーボード等からなる操作入力部14、RAM、ROM、ハードディスク等のメモリデバイスからなる記憶部15を有する。
【0020】
制御部11は、コンピュータプログラムの一例となる制御プログラム100に基づき、制御部11内に、乱数生成機能11a、二次データ生成機能11b、鍵交換部分データ生成機能11c、差分情報生成機能11dを形成する。
乱数生成機能11aは、クライアント端末2から提示されたサービス情報に基づきサーバ3a,3b…毎の第2の乱数を生成する機能である。二次データ生成機能11bは、クライアント端末2で作成されたクライアント一次データと乱数生成機能11aにより生成した第2の乱数とに基づいてクライアント二次データを生成しサーバ3に送信する機能である。鍵交換部分データ生成機能11cは、サーバ3a,3b…で作成されたサーバデータと先に乱数生成機能11aで生成した第2の乱数とに基づいて鍵交換部分データを生成し、これをクライアント端末2に送信する機能である。差分情報生成機能11dは、複数のサーバ3a,3b…と鍵交換し、且つ複数のサーバ3a,3b…に対するパスワードが同一である場合に、複数のサーバデータより差分情報を生成しクライアント端末2に送信する機能である。各機能の詳細については、後述する。
【0021】
記憶部15には、各サーバ3についての生成乱数と、ステータス(サーバデータ待ち、鍵共有済み等を表すデータ)が対応付けられて記憶される。記憶部15には、このほか、パスワード認証鍵交換で利用する各種のパラメータも一時的に記憶されることになる。
なお、制御部11は、各機能11a〜11dが形成されて実行される場合、それぞれ乱数生成手段、二次データ生成手段、鍵交換部分データ生成手段、差分情報生成手段として機能することになる。但し、各手段の実現形態は、機能11a〜11dに限定されるものではなく、適宜、ファームウエア、ハードウエアに置き換えることもできる。
【0022】
クライアント端末2は、例えば図3のように構成される。すなわち、クライアント端末2は、制御部21、通信部22、表示部23、操作入力部24、記憶部25を有する。制御部21はコンピュータの一種であり、所定のクライアント用制御プログラム200を読み込んで実行することにより、制御部21内に、サービス情報管理機能21a、鍵交換管理機能21bを形成する。
サービス情報管理機能21aは、クライアント端末2に登録したサービス情報を保持し、店舗側のパスワード認証鍵交換装置1にサービス情報(例えばサーバのURL等)を通知する機能である。鍵交換管理機能21bは、クライアント端末2で入力したパスワードと生成した第2の乱数とに基づいてサーバ3とパスワード認証鍵交換を行い、共有鍵を取得する機能である。各機能の詳細については、後述する。
【0023】
記憶部25には、サービス情報として、各サービス毎に対応するサーバ情報(例えばサーバURL、ポート番号等)、ユーザID等が対応付けられて記憶されており、更にパスワードが用いられるサービスを識別するための情報も記憶されている。また、パスワード認証鍵交換で利用する各種のパラメータも一時的に記憶されることになる。
なお、制御部21は、機能21a,21bに基づいて作用する場合、それぞれサービス情報管理手段、鍵交換管理手段として機能する。但し、各手段の実現形態は、機能21a,21bに限定されるものではなく、適宜、ファームウエア、ハードウエアに置き換えることもできる。
【0024】
サーバ3は、例えば図4のように構成される。すなわち、サーバ3は、制御部31、通信部32、記憶部33を有する。制御部31はコンピュータの一種であり、所定のサーバ用制御プログラム300を読み込んで実行することにより制御部31内に、ユーザ管理機能31a、鍵交換管理機能31bを実行する。ユーザ管理機能31aは、ユーザ毎のパスワード等を保持する機能である。鍵交換管理機能31bは、第3の乱数を生成し、この生成した第3の乱数とパスワード認証鍵交換装置1の二次データ生成機能11bにより生成されたクライアント二次データとに基づいてサーバデータを生成し、パスワード認証鍵交換を行い、共有鍵を取得する機能である。各機能の詳細については、後述する。
記憶部33にはユーザID、パスワード、有効期限、鍵共有済みフラグが対応付けられて記憶される。また、パスワード認証鍵交換で利用する各種のパラメータも一時的に記憶される。
なお、制御部31は、機能31a,31bに基づいて作用する場合、それぞれユーザ管理手段、鍵交換管理手段として機能する。但し、各手段の実現形態は、機能31a,31bに限定されるものではなく、適宜、ファームウエア、ハードウエアに置き換えることもできる。
【0025】
[動作手順]
以下、この実施形態のパスワード認証鍵交換システムの動作例を図5及び図6を参照して説明する。
クライアント端末2の制御プログラム200その他のプログラムが起動した後、ユーザにより操作入力部24が操作されてユーザID及びパスワードが入力されると(ステップS1)、クライアント端末2の制御部22は、鍵交換管理機能21bに基づいて、パスワード認証鍵交換装置1側で生成する後述の乱数に比べてサイズの小さい乱数Sa1(第1の乱数)を生成する(ステップS2)。制御部22は、また、サービス情報管理機能21aに基づいて、利用を所望するサーバ3のサーバ情報とユーザIDを店舗側のパスワード認証鍵交換装置1へ通知する(ステップS3)。この段階では、クライアント端末2の記憶部25に、「サービス情報」として、サービス毎のサーバ情報(例えばサーバのURL、ポート番号等)、ユーザID、並びにパスワードが同一のサービスに関する情報、更にはパスワード認証鍵交換で利用するパラメータが記憶されている。制御部22は、記憶部25に記憶されている「サービス情報」を参照して、利用を所望するサーバ3に対応するサーバ情報とユーザIDを読み出し、通知する。
【0026】
店舗側のパスワード認証鍵交換装置1は、このサーバ情報とユーザIDを通信部12を介して受信すると(ステップS4)、その制御部11が、サービスを選択する(ステップS5)。サービスが複数ある場合は、パスワード認証鍵交換装置1側でサービスを指定しても良く、あるいは予めクライアント端末2がサービスを指定している場合はステップS4の処理を省略しても良い。
【0027】
制御部11は、また、乱数生成機能11aに基づいて先にステップS5で選択したサービスで利用するサーバ3毎に乱数Sa2-1,Sa2-2,・・・Sa2-n(第2の乱数)を生成する(ステップS6)。制御部11は、さらに、接続先のサーバ3に対してクライアント端末2から送られたユーザIDを通知するとともに、クライアント端末2にパスワード認証鍵交換で必要なクライアント端末2側のクライアント一次データの作成を依頼(鍵交換要求)する(ステップS7)。なお、複数のサーバ3を利用する際には、ユーザIDをそれぞれ通知することとする。
【0028】
鍵交換要求を受けとったクライアント端末2は、制御部21が、鍵交換管理機能21bにより、先にステップS1において入力されたパスワードのハッシュ値とステップS2で生成した乱数Sa1とに基づいてべき乗剰余演算を行い、クライアント一次データを生成する(ステップS8)。例えば、ステップS1で入力されたパスワードをπ、そのハッシュ値をH(π)、離散対数のドメインパラメータをk,qとすると、クライアント一次データWa1は、以下のようなべき乗剰余演算により求めることができる。
g1=H(π)^k modq
Wa1=(g1^Sa1 modq)
【0029】
クライアント端末2では、制御部21が、鍵交換管理機能21bにより、パスワード認証鍵交換で利用する公開パラメータとステップS8で生成したクライアント一次データWa1とを、通信部22を介して、店舗側のパスワード認証鍵交換装置1へ送信する(ステップS9)。
【0030】
パスワード認証鍵交換装置1は、通信部12を介して公開パラメータとクライアント一次データを受信すると(ステップS10)、制御部11が、このクライアント一次データWa1が所定範囲にあるか否か(例えば、べき乗剰余の剰余値以内か等)を確認する(ステップS11)。このステップS11において、制御部11は、クライアント一次データWa1が所定範囲にないと判断した場合は、クライアント端末2から店舗側のパスワード認証鍵交換装置1に通知されたサーバ情報や先に生成した乱数Sa2-1,Sa2-2,…Sa2-nをクリアし、クライアント端末2にエラー通知を行う(ステップS12)。
【0031】
サーバ3は、通信部32を介してクライアント端末2から送られたユーザIDを含む通知(鍵交換要求)を受けると、制御部31が、ユーザ管理機能31aに基づき、当該ユーザIDが登録されているか否かを確認する(ステップS13)。ステップS13においてユーザIDが登録されていないと制御部31が判断した場合には、クライアント端末2から店舗側のパスワード認証鍵交換装置1に通知されたサーバ情報や、該装置1で生成した乱数Sa2-1,Sa2-2,…Sa2-nを消去し、クライアント端末2にエラー通知を行なうように指示する(ステップS14)。制御部31が、ユーザIDが登録されているものであると判断した場合には、乱数Sb(第3の乱数)を生成する(ステップS15)。
【0032】
パスワード認証鍵交換装置1では、制御部11が二次データ生成機能11bに基づいて、先にステップS10において受信した公開パラメータ及びクライアント一次データWa1と前記ステップS6において生成した乱数Sa2-1,Sa2-2,…Sa2-nとに基づいてべき乗剰余演算を行ってクライアント二次データを生成し、このクライアント二次データを各サーバ3へ送信する(ステップS16)。例えば、サーバ3aに対する乱数がSa2-1であるとすると、当該サーバ3aに送信すべきクライアント2次データWaは、以下のようなべき乗剰余演算により求めることができる。
Wa2-1=g1^Sa2-1 modq
Wa=Wa1*Wa2-1
【0033】
同様に、サーバ3bに対する乱数がSa2-2であるとすると、サーバ3bに送信すべきクライアント2次データWa’は、以下のようなべき乗剰余演算により求めることができる。
Wa2-2=g1^Sa2-2 modq
Wa’=Wa1*Wa2-2
【0034】
サーバ3は、通信部32を介して当該クライアント二次データWaを受信すると(ステップS17)、制御部31が当該クライアント二次データWaが所定範囲(例えば、べき乗剰余の剰余値以内か等)にあるか否かを確認する(ステップS18)。クライアント二次データWaが所定範囲にないと判断した場合には、ステップS14に移行し、エラー通知に係る前述した指示を行う。一方、制御部31が、クライアント二次データWaが所定範囲にあると判断した場合には、鍵交換管理機能31bにより、先にステップS13にて確認したユーザIDに基づいて記憶部35よりパスワードまたはパスワードの関連データを取得し、ステップS15で生成した乱数Sbを利用してサーバデータを作成し、パスワード認証鍵交換装置1に通知する(ステップS19)。
【0035】
例えば、サーバ3aで生成されるサーバデータは、乱数Sbを含む下記式で表される。
Wb=g1^Sb modq
同様の演算式により、サーバ3bで生成されるサーバデータWb’は、乱数Sb’を含む下記式で表される。
Wb’=g1^Sb’modq
【0036】
ステップS19の実行後、サーバ3は、制御部31がステップS17で受信したクライアント二次データWaとステップS15で生成した乱数Sbとに基づいて、クライアント端末2とサーバ3との間で共有する共有鍵を生成するための元となる鍵交換共有データZを生成する(ステップS20)。例えば、サーバ3aは、クライアント二次データWaと生成した乱数Sbより、鍵交換共有データZ1を、下記のべき乗剰余演算により求める。
Z1=Wa^Sb*k modq
この場合、共有鍵Kiは、鍵交換共有データZ1と公開パラメータPiより、以下のようになる。Hはハッシュ関数である。
Ki=H(z1‖Pi)
【0037】
同様に、サーバ3bでは、クライアント二次データWa’と生成した乱数Sb’より鍵交換共有データZ2を下記のべき乗剰余演算により求める。
Z2=Wa^Sb’*k modq
この場合、共有鍵Kiは、鍵交換共有データZ1と公開パラメータPi’より、以下のようになる。
Ki=H(Z1‖Pi’)
【0038】
パスワード認証鍵交換装置1は、通信部12を介してサーバ3からのサーバデータWbを受信すると(ステップS21)、制御部11が、鍵交換部分データ生成機能11cに基づき、当該サーバデータに対して、ステップS10で受信した公開パラメータとステップS6で生成した乱数Sa2-1,Sa2-2,・・・を用いて、鍵交換共有データの鍵交換部分データを生成し、クライアント端末2に通知する(ステップS22)。
例えば、サーバ3aから通知された鍵交換共有データZ1の鍵交換部分データZ2-1は、サーバデータWbと乱数Ss2-1、離散対数のドメインパラメータqより、下記のべき乗剰余演算により求められる。
Z2-1=Wb^Ss2-1 modq
【0039】
同様に、サーバ3bから通知された鍵交換共有データZ2の鍵交換部分データZ2-2は、サーバデータWb’と乱数Ss2-2、離散対数のドメインパラメータqより、下記のべき乗剰余演算により求められる。
Z2-2=Wb’^Ss2-2 modq
【0040】
つまり、複数のサーバからのサーバデータを受信した場合(ステップS23)、制御部11は、それら複数のサーバが同じパスワード設定であるか否かを判断する(ステップS24)。そして、同じパスワード設定でない場合には、前述したようにして鍵交換部分データを生成し、クライアント端末2に送信する(ステップS25)。これに対して、複数のサーバが同じパスワード設定である場合、制御部11は、鍵交換部分データ生成機能11cにより鍵交換部分データを生成するほか、差分情報生成機能11dにより差分情報を計算し、これらをクライアント端末2に送信する(ステップS26)。
例えば、サーバ3aからのサーバデータWbとサーバ3aからのサーバデータWb’との差分情報は、Wb’/Wbとなる。
【0041】
クライアント端末2は、通信部22を介してパスワード認証鍵交換装置1からの鍵交換部分データを受信すると(ステップS27)、制御部21が鍵交換部分データを検証する(ステップS28)。ここでは、受信した鍵交換部分データが所定範囲(例えば、べき乗剰余の剰余値以内か等)にあるか否かを確認し、エラーの場合は店舗側のパスワード認証鍵交換装置1やサーバ3に、その旨を通知し、それぞれのノードで設定、生成された情報を消去する(ステップS29)。一方、受信した鍵交換部分データが所定範囲にある場合、制御部21は、差分情報が送られているか否かを判断する(ステップS30)。そして、送られていない場合には、ステップS2で生成した乱数Sa1を利用して鍵交換共有データZ1を生成する(ステップS31)。この場合、鍵交換共有データZ1は、下記のべき乗剰余演算により求めることができる。
Za=(Z2-1^k modq)
Zb=Wb^Sa1*k modq
Z1=Za*Zb
=(Wb^(Sa1*k+Sa2-1*k)modq
=(Wb^(Sa1+Sa2-1*k)modq
【0042】
共有鍵Kiは、鍵交換共有データZ1と公開パラメータPiより、以下のようになる。
Ki=H(Z1‖Pi)
【0043】
一方、ステップS30において、差分情報が送られている場合、クライアント端末2では、制御部21が、鍵交換共有データZ2を、ステップS2で生成された乱数Sa1と差分情報とに基づいて生成する(ステップS32)。例えば、サーバ3aからのサーバデータWbとサーバ3aからのサーバデータWb’との差分情報は、Wb’/Wbとなる。ステップS32では、この差分情報を用いて、鍵交換共有データZ2を下記のべき乗剰余演算により求める。
Zc=(Z2-2^k modq)
Zd=Zb*差分情報(=Wb’/Wb)
Z2=Zc*Zd
=(Wb’^((Sa1+Sa2-2)*k)modq
共有鍵Kiは、鍵交換共有データZ2と公開パラメータPi’より、以下のようになる。
Ki=H(Z1‖Pi’)
【0044】
以上の説明から明らかなように、第1実施形態のパスワード認証鍵交換システムによれば、クライアント端末2で生成する第1の乱数のサイズを店舗側の装置1で生成する第2の乱数のサイズに比べて小さくすることで、当該クライアント端末2での第1の乱数に係るべき乗剰余演算の処理負担を軽減することが可能となる。また、離散対数のドメインパラメータk値を店舗側のパスワード認証鍵交換装置1では公開しないことにより、セキュリティを確保することができる。クライアント端末2が複数のサーバ3と同時に鍵交換を所望する場合であっても、一の第1の乱数を生成すれば良いので、この点でも処理負担を軽減することができる。さらに、複数のサーバ3について同じパスワードを使用する場合、差分情報を用いることで、クライアント端末2での処理負担を更に軽減することができる。このように、クライアント端末2とパスワード認証鍵交換装置1とが協調して演算を行なうことで、クライアント端末2での乱数生成に係る負荷及び乱数を利用したべき乗剰余処理等の負荷を軽減することを可能としている。
【0045】
また、演算能力の低い安価なクライアント端末2と複数のサーバ3a,3b…との間で安全な通信路を確立できるため、サーバ3a,3b…間での安全な通信路が確保できない環境においても、複数のサーバ3a,3b…を利用したサービス連携が可能となる。
【0046】
<第2実施形態>
次に、パスワード認証鍵交換システムの第2の実施形態を説明する。この実施形態のパスワード認証鍵交換システムは、第1実施形態に係るシステムの構成要素であるパスワード認証鍵交換装置1に、新たな機能を付加したものである。その概念図は図1と略同様であり、クライアント端末2の構成は図3と同様であり、サーバ3の構成は図4と同様であるので、重複した説明は省略する。
まず、図7を参照して、第2実施形態に係るパスワード認証鍵交換システムを構成するパスワード認証鍵交換装置5の構成例を説明する。
このパスワード認証鍵交換装置5は、コンピュータの一種となる制御部51、クライアント端末2との無線通信やサーバ3とのネットワーク通信を実現する通信部52、液晶ディスプレイ装置等からなる表示部53、マウスやキーボード等からなる操作入力部54、RAMやROM等のメモリデバイスからなる記憶部55を有する。
【0047】
制御部51は、コンピュータプログラムの一例となる制御プログラム500に基づき、依頼演算管理機能51a、クライアント・サーバ接続管理機能51b、共有鍵確認機能51c、クライアント・サーバ通信機能51dを少なくとも形成する。
依頼演算管理機能51aは、前述した第1実施形態(図2)の乱数生成機能11a、二次データ生成機能11b、鍵交換部分データ生成機能11c、差分情報生成機能11dの機能のほか、更に、演算機能選択・追加、クライアント・サーバ毎に応じた乱数生成サイズ決定(クライアント演算能力、サーバとの間の通信セキュリティレベル等に基づく)に係る機能を含む。
【0048】
クライアント・サーバ接続管理機能51bは、セッション管理、すなわちクライアント端末2が店舗側のパスワード認証鍵交換装置1から一時的に離れ再度接続、複数サーバ同時アクセス時のセッション割り当て等の管理、複数のサーバ3へのアクセス時に当該サーバ3からの応答がくるまで他のサーバ3からの応答結果を保持する機能、サイト毎に生成する生成乱数のMACを生成し、利用時に検証する機能、サーバ接続エラー時に代理のサーバにアクセスする機能である。共有鍵データ確認機能51cは、パスワード入力誤り時などのリトライ・切断機能を含む。クライアント・サーバ通信管理機能51dは、クライアント・サーバの接続時間管理(課金も含む)やクライアント・サーバ接続管理で生成したセッションIDの消去(クライアント・サーバ接続が完了した場合や異常発生時等)に係る機能である。各機能の詳細は後述する。
【0049】
なお、制御部51は、機能51a乃至51dに基づいて作用する場合、それぞれ依頼演算管理手段、クライアント・サーバ接続管理手段、共有鍵確認手段、クライアント・サーバ通信管理手段として機能する。但し、但し、各手段の実現形態は、機能51a〜51dに限定されるものではなく、適宜、ファームウエア、ハードウエアに置き換えることもできる。
【0050】
[動作手順]
次に、第2実施形態に係るパスワード認証鍵交換装置5の動作を図8〜図12の手順説明図を参照して説明する。
まず、図8の手順説明図を参照して、制御部51による依頼演算管理機能51aによる依頼演算管理処理の手順について説明する。
制御部51は、クライアント端末2から依頼演算要求、演算データを受信すると(ステップS51)、当該依頼演算に対応する機能が形成されているか否か、つまり当該機能を有しているか否かを判断する(ステップS52)。機能を有していない場合には、当該機能をダウンロードすることが可能であるか否かを判断する(ステップS53)。そして、ダウンロード可能である場合には演算機能をダウンロードし、ステップS56に移行する(ステップS54)。ダウンロード不可能な場合は、クライアント端末2にエラー通知を行なう(ステップS55)。
なお、依頼演算に対応する機能のダウンロードとは、対応するアプリケーションのダウンロード等による。サーバ3がASPとしての役割を担っている場合には、当該サーバ3にリクエストを出し、対応するアプリケーションの有無、ダウンロード可能であるか否かを確認し、ダウンロードを実行することで対応することになる。但し、この手法には限定されないことは勿論である。
【0051】
制御部51は、その後、依頼演算に対応する演算モジュールを選択し(ステップS56)、依頼先のサーバ3と店舗側のパスワード認証鍵交換装置5(自身)との間のセキュリティレベルが登録されているか否かを判断する(ステップS57)。「セキュリティレベル」とは、例えばセキュリティに対する安全レベルのようにセキュリティの度合いを定量化したものをいう。このセキュリティレベルが登録済みでない場合は、サーバ3までの経路情報を取得し、セキュリティレベルのレベル値を算出し、ステップS59に移行する(ステップS58)。セキュリティレベルが登録済みである場合は、ステップS59に移行する。
【0052】
制御部51は、セキュリティレベルのレベル値に対応した乱数サイズを取得し(ステップS59)、クライアント端末2で演算可能な乱数サイズが通知されているか否かを判断する(ステップS60)。通知済みでない場合には、サーバ3のセキュリティレベルに対応した乱数サイズを店舗側のパスワード認証鍵交換装置5(自身)で生成する乱数とする(ステップS61)。一方、通知済みの場合は、サーバ3とクライアント端末2の乱数サイズの差分を店舗側のパスワード認証鍵交換装置5(自身)の乱数サイズとする(ステップS62)。このようにして乱数を生成し、ステップS51にて受信した演算データに関して演算を行い(ステップS63)、クライアント・サーバ接続管理機能51bの実行へと移行する(ステップS64)。
【0053】
クライアント・サーバ接続管理機能51bによるクライアント・サーバ接続管理処理の手順は、図9に示される通りである。クライアント・サーバ接続管理処理の流れは、クライアント端末2から複数のサーバ3への接続要求があるか否かにより2種類に分かれる。すなわち、制御部51は、クライアント端末2から複数のサーバ3への接続要求があるか否かを判断し(ステップS71)、当該要求がない場合は、ステップS73以降のクライアント・サーバ接続管理の第1処理を実行し、他方、当該要求がある場合には、後述するクライアント・サーバ接続管理の第2処理へと移行する(ステップS72)。
【0054】
クライアント・サーバ接続管理の第1処理では、まず、サーバ向けセッションIDを生成し、生成した乱数とともに記憶部55に保持し(ステップS73)、演算結果をサーバ3に通知する(ステップS74)。その後、制御部51は、クライアント端末2向けセッションIDを生成しクライアント端末2に通知し(ステップS75)、且つ待ち時間を越えてサーバ3から応答がないか否かを監視する(ステップS76)。ステップS76にて、待ち時間を越えてサーバ3から応答がない場合、エラー時の代替サーバの指定があるか否かを確認する(ステップS77)。代替サーバの指定がある場合は、指定された代替サーバに再接続する(ステップS78)。他方、代替サーバの指定がない場合、制御部51は、乱数、セッションIDをクリアし、クライアント端末2にエラー通知することになる(ステップS79)。
【0055】
ステップS76の監視中、サーバ3からのデータを受信すると(ステップS80)、制御部51は、受信したデータ内のセッションIDが記憶部55に保持しているセッションIDと同一であるか否かを判断する(ステップS81)。両者が同一でない場合には、乱数、セッションIDをクリアし、クライアント端末2にエラー通知する(ステップS79)。これに対して、両者が同一である場合には、セッションIDに対応する乱数とサーバ3からの受信データを用いた演算を行い(ステップS82)、その演算結果をクライアント端末2に通知する(ステップS83)。
【0056】
その後、制御部51は、クライアント端末2とパスワード認証鍵交換装置5(自身)が通信可能な状態にあるかを判断する(ステップS84)。通信可能な状態でない場合にはセッションIDを店舗側の装置5(自身)の表示部53に表示し、クライアント端末2を待ち状態にするよう促す(ステップS85)。そして、この待ち時間を越えてクライアント端末2と通信できないかを監視し(ステップS86)、通信できない場合には、乱数、セッションIDをクリアし、クライアント端末2にエラー通知する(ステップS79)。一方、ステップS84にて両者が通信可能な状態にある場合、及びこのステップS86にて通信できるようになった場合には、クライアント端末2と通信を行い(ステップS87)、共有鍵データ確認処理へと移行する(ステップS88)。
【0057】
図10は、制御部51によるクライアント・サーバ接続管理の第2処理の手順を示している。図9において第2のクライアント・サーバ接続管理処理(図9:ステップS72)に移行すると、制御部51は、図10に示されるように、各サーバ向けセッションIDについてグループIDを生成して付与し、このグループIDをサーバ3に通知する(ステップS101)。そして、待ち時間を越えてサーバ3から応答がないかを監視する(ステップS102)。サーバ3からの応答がない場合には、乱数、セッションIDをクリアし、クライアント端末2にエラー通知を行う(ステップS103)。他方、応答があった場合は、サーバ3からのデータを受信する(ステップS104)。そして、受信したデータ内のセッションIDが記憶部55に保持しているセッションIDと同一であるか否かを判断する(ステップS105)。両者が同一でない場合は、乱数、セッションIDをクリアし、クライアント端末2にエラー通知を行う(ステップS103)。
【0058】
ステップS105にて、両セッションIDが同一であると判断した場合、制御部51は、同一グループIDのサーバ向けセッションIDでサーバ3からデータを受信していないものがないかどうかを判断する(ステップS106)。受信していないものがある場合にはステップS104に戻り、上記の処理手順を繰り返す。他方、受信していないものはない場合、制御部51は、各サーバ向けセッションIDに付与したグループIDをクリアし(ステップS107)、それぞれのセッションIDに対応する記憶部55に保持している乱数とサーバ3からの受信データを用いて所定演算(積算、べき乗剰余演算等)を行う。また、必要に応じて、差分情報を演算する(ステップS108)。こうして、制御部51は、通信部52を介して演算結果をクライアント端末2に通知し(ステップS109)、共有鍵データ確認処理へと移行する(ステップS110)。なお、ステップS108の処理に代えて、図9のステップS84乃至S86と同様の処理を行なっても良いことは勿論である。
【0059】
次に、図11の手順説明図を参照して、制御部51による共有鍵確認機能51cに基づく共有鍵確認処理の手順について説明する。
制御部51は、まず鍵交換共有データの確認データの要求がなされているか否かを判断する(ステップS121)。ここでは、クライアント端末2とサーバ3との間で鍵交換が終了した後にサーバ3から当該要求がなされることを想定している。当該要求がなされていない場合には、後述するクライアント・サーバ通信管理処理へと移行する(ステップS122)。一方、当該要求がなされている場合には、制御部51は、クライアント端末2に確認データの生成を要求する(ステップS123)。
クライアント端末2からの確認データを受信すると(ステップS124)、制御部51は、受信した確認データに付与されたセッションIDが記憶部55に保持しているセッションIDと同一であるか否かを判断する(ステップS125)。両者が同一でない場合には、クライアント端末2、サーバ3にエラー通知を行い、セッションIDや受信データをクリアする(ステップS126)。両者が同一である場合には、クライアント端末2から取得した確認データをサーバ3に通知する(ステップS127)。
【0060】
その後、サーバ3からのデータを受信すると(ステップS128)、受信したデータ内のセッションIDが記憶部55に保持しているセッションIDと同一であるか否かを判断する(ステップS129)。両者が同一でない場合には、クライアント端末2、サーバ3にエラー通知を行い、セッションIDや受信データをクリアする(ステップS126)。他方、両者が同一である場合には、制御部51は、サーバ3からの応答が確認データNGであるか否かを判断する(ステップS130)。サーバからの応答が確認データNGである場合、制御部51は、NG回数をインクリメントし(ステップS131)、当該NG回数が所定回数以上になっていないかどうかを監視する(ステップS132)。NG回数が所定回数以上になった場合、制御部51は、通信部52を介してクライアント端末2及びサーバ3にエラー通知を行い、セッションIDや受信データをクリアする(ステップS126)。他方、NG回数が所定回数未満である場合、制御部51は、クライアント端末2にパスワードの再入力を依頼し、再度演算をやり直す(ステップS133)。
【0061】
次に、図12を参照して、制御部51によるクライアント・サーバ通信管理機能51dに基づくクライアント・サーバ通信管理処理の手順について説明する。
制御部51は、クライアント端末2とサーバ2との間の通信を許可し(ステップS141)、クライアント端末2にサーバ送信でデータを要求する(ステップS142)。クライアント端末2よりデータを受信すると(ステップS143)、制御部51は、クライアント端末2からのクライアント・サーバ間の通信切断要求があるかどうかを判断する(ステップS144)。当該要求がある場合、制御部51は、クライアント端末2とサーバ3との間の通信を不許可とし、セッションIDをクリアする(ステップS145)。他方、当該要求がない場合、制御部51は、クライアント端末2からの受信データに付与されたセッションIDが記憶部55に保持されているセッションIDと同一か否かを判断する(ステップS146)。両者が同一でない場合、制御部51は、クライアント端末2とサーバ3にエラー通知を行い、セッションIDや受信したデータをクリアする(ステップS150)。他方、両者が同一である場合、クライアント端末2から受信したデータをサーバ3に通知する(ステップS148)。
【0062】
制御部51は、サーバ3からのデータを通信部52を介して受信すると(ステップS149)、受信したデータ内のセッションIDが記憶部55に保持しているセッションIDと同一であるか否かを判断する(ステップS150)。両者が同一でない場合、制御部51はステップS147に移行し、上述した処理を行う。他方、両者が同一である場合、制御部51は、サーバ3から取得したデータを通信部52を介してクライアント端末2に通知する(ステップS151)。そして、制御部51は、クライアント端末2とサーバ3との間の通信時間が制限を超えたかどうかを判断する(ステップS152)。当該制限を越えた場合はステップS145に移行して上述した処理を行う。他方、当該制限を越えていない場合は、ステップS142に戻り、前述した一連の処理を繰り返す。
【0063】
このように、第2実施形態では、第1実施形態に係るパスワード認証鍵交換装置1の機能に加えて、依頼演算管理機能51aに基づきべき乗剰余演算のみならず、他の演算の依頼にも対応可能となることを示した。また、パスワード認証鍵交換装置5で生成する第2の乱数の乱数サイズの決定方式を具現化した。また、クライアント端末2が複数のサーバ3にアクセスする場合に、セッションIDのほか、グループIDによる管理処理もクライアント・サーバ接続管理機能51bにより実現されている。更に、パスワード認証鍵交換時の確認データを用いたチェックについても共有鍵データ確認機能51cとして実現されている。そして、クライアント・サーバ通信機能51dによりパスワード認証鍵交換後の通信管理も適正化されている。従って、パスワード認証鍵交換の更なる効率化、セキュアな通信環境の下での複数のサーバ3a,3b…を利用したサービス連携が可能となる。
【0064】
以上、本発明について、第1及び第2実施形態を示して説明したが、本発明は、これらの実施形態に限定されるものではなく、様々な改良や変更が可能である。第1実施形態としては、クライアント端末2が複数のサーバ3a,3b…とやり取りをする例を示したが、P2Pのように複数のクライアント端末間での鍵交換に適用することも可能である。また、クライアント端末2と店舗側のパスワード認証鍵交換装置1,5との間が近接通信である場合を例に挙げて説明したが、信頼できる別の通信路があれば、遠隔にある端末を経由して鍵交換を行うようにしても良いことは、勿論である。
また、本発明は、パスワードのような個人情報が店舗端末や通信路に漏洩しないため、個人情報を取得するキーロガーやフィッシングなどの脅威を低減して鍵交換を行うことができるというメリットがある。
【図面の簡単な説明】
【0065】
【図1】本発明の第1実施形態に係るパスワード認証鍵交換装置1を用いたパスワード認証鍵交換システムの概念図。
【図2】パスワード認証鍵交換装置の構成例を示した図。
【図3】クライアント端末の構成例を示した図。
【図4】サーバの構成例を示した図。
【図5】第1実施形態に係るパスワード認証鍵交換システムの動作手順説明図。
【図6】第1実施形態に係るパスワード認証鍵交換システムの動作手順説明図。
【図7】第2実施形態に係るパスワード認証鍵交換システムを構成するパスワード認証鍵交換装置の構成例を示した図。
【図8】依頼演算管理処理の手順説明図。
【図9】クライアント・サーバ接続管理の第1処理の手順説明図。
【図10】クライアント・サーバ接続管理の第2処理の手順説明図。
【図11】共有鍵確認処理の手順説明図。
【図12】クライアント・サーバ通信管理処理の手順説明図。
【符号の説明】
【0066】
1…パスワード認証鍵交換装置、2…クライアント端末、3…サーバ、4…ネットワーク、5…パスワード認証鍵交換装置、11…制御部、12…通信部、13…表示部、14…操作入力部、15…記憶部、11a…乱数生成機能、11b…二次データ生成機能、11c…鍵交換部分データ生成機能、11d…差分情報生成機能、21…制御部、22…通信部、23…表示部、24…操作入力部、25…記憶部、21a…サービス情報管理機能、21b…鍵交換管理機能、31…制御部、32…通信部、33…記憶部、31a…ユーザ管理機能、31b…鍵交換管理機能。
【特許請求の範囲】
【請求項1】
第1の乱数を生成するクライアント端末及びサーバデータを生成するサーバのそれぞれと通信可能なパスワード認証鍵交換装置であって、
前記第1の乱数に比べてサイズの大きい第2の乱数を生成する乱数生成手段と、
前記クライアント端末が前記第1の乱数及び所定のパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第2の乱数とに基づいてクライアント二次データを生成するとともに、生成したクライアント二次データに基づいて、前記クライアント端末と共有する共有鍵の生成を前記サーバに促す二次データ生成手段と、
前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、生成した鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す鍵交換部分データ生成手段と、を有する、パスワード認証鍵交換装置。
【請求項2】
前記クライアント端末は複数のサーバと通信可能なものであり、
前記乱数生成手段は、サーバ毎に異なる第2の乱数を生成可能なものである、
請求項1記載のパスワード認証鍵交換装置。
【請求項3】
前記複数のサーバが生成した複数のサーバデータの差分情報を生成する差分情報生成手段を更に有し、この差分情報生成手段が、前記鍵交換部分データに加えて、前記差分情報を使用した前記共有鍵の生成を前記クライアント端末に促す、
請求項2記載のパスワード認証鍵交換装置。
【請求項4】
サーバと、第1の乱数を生成するクライアント端末及び前記サーバのそれぞれと通信可能なパスワード認証鍵交換装置とを有するシステムであって、
前記サーバは、第3の乱数及びこの第3の乱数を使用してサーバデータを生成するともに、当該第3の乱数と前記クライアント端末が生成したクライアント二次データとに基づいて前記クライアント端末と共有する共有鍵を生成する鍵交換管理手段を有するものであり、
前記パスワード認証鍵交換装置は、
前記第1の乱数に比べてサイズの大きい第2の乱数を生成する乱数生成手段と、
前記クライアント端末が前記第1の乱数及びパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第2の乱数とに基づいて前記クライアント二次データを生成する二次データ生成手段と、
前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、生成した鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す鍵交換部分データ生成手段と、を有する、パスワード認証鍵交換システム。
【請求項5】
前記クライアント端末は、複数のサーバと通信可能なものであり、
前記乱数生成手段は、サーバ毎に異なる第2の乱数を生成する、
請求項4記載のパスワード認証鍵交換システム。
【請求項6】
前記パスワード認証鍵交換装置は、複数のサーバに係る複数のサーバデータの差分情報を生成する差分情報生成手段を更に有し、
この差分情報生成手段が、前記鍵交換部分データに加えて前記差分情報を更に用いた前記共有鍵の生成を前記クライアント端末に促す、
請求項5記載のパスワード認証鍵交換システム。
【請求項7】
サーバと、クライアント端末のそれぞれと通信可能なパスワード認証鍵交換装置とを有するシステムにより実行される方法であって、
前記クライアント端末が、第1の乱数を生成するとともに、この第1の乱数と所定のパスワードとを使用してクライアント一次データを生成する段階と、
前記パスワード認証鍵交換装置が、前記第1の乱数に比べてサイズの大きい第2の乱数を生成するとともに、前記生成されたクライアント一次データと前記第2の乱数とに基づいてクライアント二次データを生成する段階と、
前記サーバが、第3の乱数を生成し、この第3の乱数に基づいてサーバデータを生成するとともに、当該第3の乱数と前記クライアント二次データとに基づいて前記クライアント端末と共有する共有鍵を生成する段階と、
前記パスワード認証鍵交換装置が、前記サーバが生成した前記サーバデータと前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、この鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す段階とを有する、
パスワード認証鍵交換方法。
【請求項8】
コンピュータを、第1の乱数を生成するクライアント端末及びサーバデータを生成するサーバのそれぞれと通信自在なパスワード認証鍵交換装置として動作させるためのコンピュータプログラムであって、
前記コンピュータを、
前記第1の乱数に比べてサイズの大きい第2の乱数を生成する乱数生成手段、
前記クライアント端末が前記第1の乱数及び所定のパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第2の乱数とに基づいてクライアント二次データを生成するとともに、生成したクライアント二次データに基づいて、前記クライアント端末と共有する共有鍵の生成を前記サーバに促す二次データ生成手段、
前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、生成した鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す鍵交換部分データ生成手段、として機能させるためのコンピュータプログラム。
【請求項1】
第1の乱数を生成するクライアント端末及びサーバデータを生成するサーバのそれぞれと通信可能なパスワード認証鍵交換装置であって、
前記第1の乱数に比べてサイズの大きい第2の乱数を生成する乱数生成手段と、
前記クライアント端末が前記第1の乱数及び所定のパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第2の乱数とに基づいてクライアント二次データを生成するとともに、生成したクライアント二次データに基づいて、前記クライアント端末と共有する共有鍵の生成を前記サーバに促す二次データ生成手段と、
前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、生成した鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す鍵交換部分データ生成手段と、を有する、パスワード認証鍵交換装置。
【請求項2】
前記クライアント端末は複数のサーバと通信可能なものであり、
前記乱数生成手段は、サーバ毎に異なる第2の乱数を生成可能なものである、
請求項1記載のパスワード認証鍵交換装置。
【請求項3】
前記複数のサーバが生成した複数のサーバデータの差分情報を生成する差分情報生成手段を更に有し、この差分情報生成手段が、前記鍵交換部分データに加えて、前記差分情報を使用した前記共有鍵の生成を前記クライアント端末に促す、
請求項2記載のパスワード認証鍵交換装置。
【請求項4】
サーバと、第1の乱数を生成するクライアント端末及び前記サーバのそれぞれと通信可能なパスワード認証鍵交換装置とを有するシステムであって、
前記サーバは、第3の乱数及びこの第3の乱数を使用してサーバデータを生成するともに、当該第3の乱数と前記クライアント端末が生成したクライアント二次データとに基づいて前記クライアント端末と共有する共有鍵を生成する鍵交換管理手段を有するものであり、
前記パスワード認証鍵交換装置は、
前記第1の乱数に比べてサイズの大きい第2の乱数を生成する乱数生成手段と、
前記クライアント端末が前記第1の乱数及びパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第2の乱数とに基づいて前記クライアント二次データを生成する二次データ生成手段と、
前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、生成した鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す鍵交換部分データ生成手段と、を有する、パスワード認証鍵交換システム。
【請求項5】
前記クライアント端末は、複数のサーバと通信可能なものであり、
前記乱数生成手段は、サーバ毎に異なる第2の乱数を生成する、
請求項4記載のパスワード認証鍵交換システム。
【請求項6】
前記パスワード認証鍵交換装置は、複数のサーバに係る複数のサーバデータの差分情報を生成する差分情報生成手段を更に有し、
この差分情報生成手段が、前記鍵交換部分データに加えて前記差分情報を更に用いた前記共有鍵の生成を前記クライアント端末に促す、
請求項5記載のパスワード認証鍵交換システム。
【請求項7】
サーバと、クライアント端末のそれぞれと通信可能なパスワード認証鍵交換装置とを有するシステムにより実行される方法であって、
前記クライアント端末が、第1の乱数を生成するとともに、この第1の乱数と所定のパスワードとを使用してクライアント一次データを生成する段階と、
前記パスワード認証鍵交換装置が、前記第1の乱数に比べてサイズの大きい第2の乱数を生成するとともに、前記生成されたクライアント一次データと前記第2の乱数とに基づいてクライアント二次データを生成する段階と、
前記サーバが、第3の乱数を生成し、この第3の乱数に基づいてサーバデータを生成するとともに、当該第3の乱数と前記クライアント二次データとに基づいて前記クライアント端末と共有する共有鍵を生成する段階と、
前記パスワード認証鍵交換装置が、前記サーバが生成した前記サーバデータと前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、この鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す段階とを有する、
パスワード認証鍵交換方法。
【請求項8】
コンピュータを、第1の乱数を生成するクライアント端末及びサーバデータを生成するサーバのそれぞれと通信自在なパスワード認証鍵交換装置として動作させるためのコンピュータプログラムであって、
前記コンピュータを、
前記第1の乱数に比べてサイズの大きい第2の乱数を生成する乱数生成手段、
前記クライアント端末が前記第1の乱数及び所定のパスワードを使用して生成したクライアント一次データと前記乱数生成手段が生成した前記第2の乱数とに基づいてクライアント二次データを生成するとともに、生成したクライアント二次データに基づいて、前記クライアント端末と共有する共有鍵の生成を前記サーバに促す二次データ生成手段、
前記サーバが生成した前記サーバデータと前記乱数生成手段が生成した前記第2の乱数とに基づいて鍵交換部分データを生成するとともに、生成した鍵交換部分データに基づいて前記サーバと共有する共有鍵の生成を前記クライアント端末に促す鍵交換部分データ生成手段、として機能させるためのコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2007−96751(P2007−96751A)
【公開日】平成19年4月12日(2007.4.12)
【国際特許分類】
【出願番号】特願2005−283479(P2005−283479)
【出願日】平成17年9月29日(2005.9.29)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】
【公開日】平成19年4月12日(2007.4.12)
【国際特許分類】
【出願日】平成17年9月29日(2005.9.29)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】
[ Back to top ]