(57)【特許請求の範囲】
【請求項１】
ユーザの端末装置が
サーバの認証装置との間のデータ通信を行う通信処理部と、
サーバの認証装置からのＲＳＡ公開鍵とオンライン攻撃に対するセキュリティパラメータＫonと、パラメータＬ（１≦Ｌ≦┌ｌｏｇ3Ｋon-1┐）に基づく前記通信処理部の通信によりユーザの端末装置とサーバの認証装置の間で公開鍵の正しさを決定するユーザ側質問生成・応答確認装置と、
入力された短い系列と前記ユーザ側質問生成・応答確認装置により受け取った公開鍵に基づいてサーバの認証装置に送信する認証データを生成するユーザ側認証用データ生成装置と、
サーバの認証装置から受信した認証子に対して認証処理を行い、認証の結果によりサーバの認証装置に送信する認証子とセッション鍵を生成するユーザ側認証結果判定装置と、
を備え、
サーバの認証装置が
ユーザの端末装置との間のデータ通信を行う通信処理部と、
ＲＳＡ公開鍵を生成して前記通信処理部の通信によりユーザの端末装置に送信し、ＲＳＡ公開鍵と、セキュリティパラメータＫonと、パラメータＬに基づく前記通信処理部の通信によりユーザの端末装置とサーバの認証装置の間で公開鍵の正しさを示すための応答を生成するサーバ側ＲＳＡ鍵生成・応答生成装置と、
ユーザの端末装置からの認証データと前記サーバ側ＲＳＡ鍵生成・応答生成装置により生成された秘密鍵に基づいてユーザの端末装置に送信する認証子を生成するサーバ側認証用データ生成装置と、
ユーザの端末装置から受信した認証子に対して認証処理を行い、認証の結果によりセッション鍵を生成するサーバ側認証結果判定装置と、
を備え、
ユーザの端末装置に短い系列を入力して、ユーザの端末装置とサーバの認証装置の間において相互に認証子を生成して送信し、相互の認証子に基づく相互認証を行い、認証結果によりユーザの端末装置とサーバの認証装置の間でセッション鍵の確立を行う
ことを特徴とする認証システム。
【請求項２】
請求項１に記載の認証システムによりユーザの端末装置とサーバの認証装置の間で確立したセッション鍵を使って構成できる安全な通信路を用いて、攻撃者がオンラインで試したパスワードの回数を検出するパスワードオンライン攻撃検出方法であって、
前記ユーザ側認証結果判定装置およびサーバ側認証結果判定装置にそれぞれのログ用メモリを備え、
ユーザの端末装置とサーバの認証装置の間において相互に認証子を生成して送信し、
相互の認証子に基づく相互認証を行う際に、エラーが発生した時の認証用のデータおよび認証子を前記ログ用メモリに記憶し、
前記ログ用メモリに記憶されたデータに基づいて前記通信処理部の通信により不正検出の判断処理を行い、
その結果を前記ユーザの端末装置に出力する
ことを特徴とするパスワードオンライン攻撃検出方法。
【請求項３】
請求項１に記載の認証システムによりユーザの端末装置とサーバの認証装置の間で確立したセッション鍵を使って構成できる安全な通信路を用いて、ユーザの登録用認証データを登録する認証データ登録方法であって、
前記ユーザの端末装置およびサーバの認証装置にそれぞれの登録用認証データを登録する認証データ登録用メモリと、
セッション鍵と認証データから共通鍵暗号文を出力する共通鍵暗号演算器と、
前記共通鍵暗号文からセッション鍵に基づいて登録用認証データを復号する共通鍵復号演算器と
を備え、
ユーザの端末装置とサーバの認証装置の間において相互に認証子を生成して送信し、相互の認証子に基づく相互認証を行った際のセッション鍵とＲＳＡ鍵に加えてユーザの端末装置とサーバの認証装置の登録用認証データを、それぞれの認証データ登録用メモリに登録して、前記共通鍵暗号演算器により各自の登録用認証データを暗号文とした共通鍵暗号文を送信し、
送信された共通鍵暗号文を受信すると、前記共通鍵復号演算器により共通鍵暗号文から相手の登録用認証データを復号して前記認証用データ登録用のメモリに記憶することを特徴とする認証データ登録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、パスワードなど、ユーザが短い系列を入力してユーザの端末装置とサーバの認証装置の間に安全性を確保しながら高速に相互認証とセッション鍵の確立を行う認証システムに関するものである。
【背景技術】
【０００２】
パスワードを用いる認証システムに関係する技術としては、例えば、次のような特許文献１、特許文献２，特許文献３に記載された技術がある。
【０００３】
特許文献１に記載されている「遠隔システムアクセス接続規制方法」の発明は、構内電子交換機が提供するサービス（Ｒｅｍｏｔｅ  Ｓｙｓｔｅｍ  Ａｃｃｅｓｓ）を公衆網から利用する際、電子交換機の内部にあるセキュリティ管理装置は利用者（発信者）のパスワードコードと同期して発生された乱数をチェックすることで認証を行う方法である。しかしながら、この方法では、攻撃者が利用者に成りすませるため安全ではない。
【０００４】
特許文献２に記載されている「暗号鍵の配送における認証方式」の発明は、ＲＳＡ暗号で配送鍵を暗号化した暗号文とその暗号文に署名を付け、相手側に送るとともに、配送鍵を使って共通鍵暗号で共通鍵暗号方式に使うデータ通信用の鍵をパスワードとともに暗号化して送ることで認証を行う。さらに、ＲＳＡ暗号用の秘密鍵はマスタ鍵で暗号化され保存される。この方式は、認証の際に公開鍵基盤（ＰＫＩ）を必要とする。つまり、利用者はサーバの公開鍵あるいは認証局の公開鍵を持たなければならない。
【０００５】
特許文献３に記載されている「データ署名装置」の発明は、データ署名に必要とする秘密鍵あるいは公開鍵暗号に必要とする相手側の公開鍵を携帯可能なハウジング内に格納して、利用者から入力されたパスワードが正しい時のみに、暗号用の演算処理を行う。ただし、この方式を安全に利用するには、秘密鍵を保存している携帯可能なハウジングが外部からアクセスや読み取りが不可能であることが必要となっており、デバイスの耐タンパー性が必要となる。
【特許文献１】特開平７−２４５６５７号公報
【特許文献２】特開平６２−１９０９４３号公報
【特許文献３】特開平９−１０７３５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
認証システムにおいてパスワードなどの短い系列を安全に利用する場合には、公開鍵暗号など、処理の重い多倍長のべき剰余演算が必要となる。そのため、このような方式をＩＣカードなど、処理能力の小さなデバイスへ実装することは敬遠される。
【０００７】
しかし、電子決済や交通系のゲート通過などでは、低機能のデバイスを用いて高速かつ安全に処理を行うことが必要とされており、認証システムにおいて、安全性を損なうことなく、処理の高速化を実現することが課題となっている。
【０００８】
本発明は、このような課題を解決するためになされたものであり、本発明の目的は、ＲＳＡ公開鍵暗号方式を使うにもかかわらず、ユーザが短い系列（パスワードなど）を入力してユーザの端末装置とサーバの認証装置の間に安全性を確保しながら高速に相互認証とセッション鍵の確立を行うことができる認証システムを提供することにある。
【０００９】
また、本発明の別の目的は、ユーザが短い系列を入力してユーザの端末装置とサーバの認証装置の間に安全性を確保しながら相互認証とセッション鍵の確立を行う認証システムを用いて、パスワードオンライン攻撃を検出する方法と、以降において他の認証方式を利用するためのデータを安全に共有して記録する方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記の目的を達成するため、本発明の認証システムは、基本的な概念として、短い系列（パスワードなど）を用いた認証システムとし、安全性を落とさないセキュリティパラメータを設定して、その範囲で計算量と通信量を小さくするパラメータを選び、そのパラメータで後の処理を行うようにしてシステムを構成する。これにより、認証システム全体の処理が軽く済むという効果が期待できる。また、これにより、低機能デバイスでの処理を安全性を落とすことなく削減することができるという利点が期待できる。
【００１１】
更には、このような認証システムを用いて共有されたセッション鍵で安全な通信路を確立して、この通信路を経由してオンライン攻撃が行われたか否かを検出できる検出システムを構成する。これによって、認証システム上のユーザが覚えているパスワードの更新時期に関するセキュリティポリシーを立てることが可能になる。
【００１２】
パスワードなどの短い系列に基づく認証システムでは、例えば、オンラインによる短い系列の全数探索（オンライン攻撃）が深刻な問題となるため、それを検出するメカニズムを備えておくことが、その利便性を左右する短い系列の更新時期を決める上でも非常に重要となる。
【００１３】
更に、このような認証システムを用いて、ユーザの端末装置とサーバの認証装置の間で相互認証を行った後に新しい認証データを登録するシステムを構成する。これにより、サーバの認証装置に登録された認証データに基づくほかの認証システムを容易に使うことが可能になる。
【００１４】
具体的に、本発明による認証システムは、システム構成としては、ユーザの端末装置が、サーバの認証装置との間のデータ通信を行う通信処理部と、サーバの認証装置からのＲＳＡ公開鍵とパラメータＬに基づく前記通信処理部の通信によりユーザの端末装置とサーバの認証装置の間で公開鍵の正しさを決定するユーザ側質問生成・応答確認装置と、入力された短い系列と前記ユーザ側質問生成・応答確認装置により受け取った公開鍵に基づいてサーバの認証装置に送信する認証データを生成するユーザ側認証用データ生成装置と、サーバの認証装置から受信した認証子に対して認証処理を行い、認証の結果によりサーバの認証装置に送信する認証子とセッション鍵を生成するユーザ側認証結果判定装置を備え、サーバの認証装置が、ユーザの端末装置との間のデータ通信を行う通信処理部と、ＲＳＡ公開鍵を生成して前記通信処理部の通信によりユーザの端末装置に送信し、ＲＳＡ公開鍵とパラメータＬに基づく前記通信処理部の通信によりユーザの端末装置とサーバの認証装置の間で公開鍵の正しさを示すための応答を生成するサーバ側ＲＳＡ鍵生成・応答生成装置と、ユーザの端末装置からの認証データと前記サーバ側ＲＳＡ鍵生成・応答生成装置により生成された秘密鍵に基づいてユーザの端末装置に送信する認証子を生成するサーバ側認証用データ生成装置と、ユーザの端末装置から受信した認証子に対して認証処理を行い、認証の結果によりセッション鍵を生成するサーバ側認証結果判定装置とを備える構成される。
【００１５】
認証システムは、このように構成のシステムにおいて、ユーザの端末装置に短い系列を入力して、ユーザの端末装置とサーバの認証装置の間において相互に認証子を生成して送信し、相互の認証子に基づく相互認証を行い、認証結果によりユーザの端末装置とサーバの認証装置の間でセッション鍵の確立を行う。
【００１６】
この認証システムによりユーザの端末装置とサーバの認証装置の間で確立したセッション鍵を使って構成できる安全な通信路を用いて、攻撃者がオンラインで試したパスワードの回数を検出する場合には、上記の認証システムにおいて、ユーザ側認証結果判定装置およびサーバ側認証結果判定装置にそれぞれのログ用メモリを備え、ユーザの端末装置とサーバの認証装置の間において相互に認証子を生成して送信し、相互の認証子に基づく相互認証を行う際に、エラーが発生した時の認証用のデータおよび認証子を前記ログ用メモリに記憶し、前記ログ用メモリに記憶されたデータに基づいて前記通信処理部の通信により不正検出の判断処理を行い、その結果を前記ユーザの端末装置に出力するようにシステムが構成される。
【００１７】
また、この認証システムによりユーザの端末装置とサーバの認証装置の間で確立したセッション鍵を使って構成できる安全な通信路を用いて、ユーザの認証データを登録する場合には、上記の構成の認証システムにおいて、ユーザの端末装置およびサーバの認証装置にそれぞれの認証データを登録する認証データ登録用メモリと、セッション鍵と認証データから共通鍵暗号文を出力する共通鍵暗号演算器と、前記共通鍵暗号文からセッション鍵に基づいて認証データを復号する共通鍵復号演算器とを備え、ユーザの端末装置とサーバの認証装置の間において相互に認証子を生成して送信し、相互の認証子に基づく相互認証を行った際のセッション鍵とＲＳＡ鍵に加えてユーザの端末装置とサーバの認証装置の認証データを、それぞれの認証データ登録用メモリに登録して、前記共通鍵暗号演算器により各自の認証データを暗号文とした共通鍵暗号文を送信し、送信された共通鍵暗号文を受信すると、前記共通鍵復号演算器により共通鍵暗号文から相手の認証データを復号して前記認証用データ登録用のメモリに記憶するようにシステムが構成される。
【発明の効果】
【００１８】
本発明により提供される認証システムは、短い系列を用いても十分なセキュリティを得られるため、基本的に、利用者やサーバ認証を必要とするサービスやアプリケーションのシステムにおいて利用できる。現在、利用者認証やサーバ認証は、電子商取引、サーバやネットワークへのログイン、入退室管理、公的交通機関への搭乗など、リアル、サイバーを問わず至るところで必要とされており、その応用先は広い。
【００１９】
また、本発明による認証システムは、端末動作にかかる処理を、安全性を損なうことなく軽くできるという利点があり、ユビキタスデバイスなど計算能力の低いデバイスへの応用が期待できる。また、この認証システムを用いるパスワードオンライン攻撃検出方法、この認証システムを用いる認証データ登録方法により安全性を損なうことなく利便性を高めることができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照しつつ、本発明の好適な実施例について説明する。本発明は以下の各実施例に限定されるものではなく、例えば、これら実施例の構成要素同士を適宜組み合わせてもよい。
【００２１】
図１は、短い系列を用いた認証システムの構成を示すブロック図である。この認証システム１００は、ユーザの端末装置２００とサーバの認証装置３００が、ネットワークなどの通信路１１０により結合されて、短い系列（例えば、パスワードなど）のみに基づいて互いに通信を行って認証処理を実行する。ユーザの端末装置２００に入力された利用者のパスワード（短い系列入力データ）に基づいて、ユーザの端末装置２００およびサーバの認証装置３００がお互いに相互認証して、その相互認証が成功した時、同じセッション鍵が確保される。
【００２２】
ここで、ＲＳＡ公開鍵暗号方式を使った実施例を説明する前に、本発明の実施例の理解を容易とするため、いくつかの背景知識及び以下の説明において用いる記号について説明しておく。
【００２３】
公開鍵暗号方式では、公開鍵（ＰＫ）および秘密鍵（ＳＫ）の対（ＰＫ，ＳＫ）が存在する。公開鍵ＰＫは秘密の状態ではなく、誰でも入手できるように公開しておく。それに対して、秘密鍵ＳＫは秘密の状態とされる。
【００２４】
暗号化は、公開鍵ＰＫを用いて、送信したいメッセージｍを、暗号化関数ＥｎｃによりＣ＝ＥｎｃＰＫ（ｍ）となるようにして、暗号文Ｃを生成することにより行う。この暗号文Ｃは、秘密鍵ＳＫを用いてのみ、復号化関数Ｄｅｃによりｍ＝ＤｅｃＳＫ（Ｃ）として復号できる。つまり、暗号文Ｃは、公開鍵ＰＫを用いては復号できない。
【００２５】
また、公開鍵署名方式では、送信したいメッセージｍを、署名化関数Ｓｉｇによりｓ＝ＳｉｇＳＫ（ｍ）となるように署名化して、署名文（ｍ，ｓ）を生成することにより認証して送信する。署名文の検証は、公開鍵ＰＫを用いて、検証化関数Ｖｅｒによって、メッセージｍ’＝ＶｅｒＰＫ（ｓ）を求め、メッセージｍとメッセージｍ’とを比較することにより行う。つまり、メッセージｍとメッセージｍ’が一致した場合は、その署名文（ｍ，ｓ）が正しいことを検証する。そうではない場合は、署名文（ｍ，ｓ）が正しい署名文ではないことになる。
【００２６】
周知のＲＳＡ公開鍵方式においては、ｎを２つのランダムに選択された大きな第１の素数ｐと第２の素数ｑの積（すなわち、ｎ＝ｐ・ｑ）とし、第１の所定の数ｅを、当該数ｅと（ｐ−１）・（ｑ−１）の最大公約数が１であるような任意の数（例えば、ｅ＝３あるいはｅ＝２１６＋１）とし、第２の所定の数ｄを、ｅ−１  ｍｏｄ  （（ｐ−１）・（ｑ−１））とすると、この場合に、公開鍵は（ｅ，ｎ）であり、秘密鍵は（ｄ，ｎ）となる。
【００２７】
安全性を最大化するには、第１の素数ｐと第２の素数ｑを同じ長さにする。一般に、暗号システムでは、その安全性のレベルを記述するセキュリティパラメータを有する。ＲＳＡ公開鍵方式において、セキュリティパラメータをｋにすると２ｋ−１＜ｎ＜２ｋである。
【００２８】
メッセージｍ（ｍ∈Ｚｎ＊）に対して、暗号化関数Ｅｎｃは、
ＥｎｃＰＫ（ｍ）＝ｍｅ  ｍｏｄ  ｎ
であり、復号化関数Ｄｅｃは、
ＤｅｃＳＫ（Ｃ）＝Ｃｄ  ｍｏｄ  ｎ
である。ここで、暗号文Ｃと公開鍵（ｅ，ｎ）が与えられた時、メッセージｍを求めることは、計算量的に困難である。ＲＳＡ公開鍵暗号方式は、大きな数ｎの素因数分解が難しいことから安全性を得ている。また、公開鍵署名方式では、署名化関数Ｓｉｇは、
ＳｉｇＳＫ（ｍ）＝ｍｄ  ｍｏｄ  ｎ
であり、検証化関数Ｖｅｒは、
ＶｅｒＰＫ（ｓ）＝ｓｅ  ｍｏｄ  ｎ
である。
【００２９】
ここでは、ハッシュ関数Ｈのセキュリティパラメータを、ｖ（ただし、１／２ｖは無視できるほど小さいと仮定する）にし、オンライン攻撃に対するセキュリティパラメータをＫｏｎ（例えば、Ｋｏｎ＝２−４０）にする。セキュリティパラメータＫｏｎは、攻撃者が短い系列（例えば、パスワードなど）に対して、一回のオンライン攻撃で得られる成功確率より小さく設定される。
【００３０】
集合｛０，１｝＊は有限の２進数のストリングの集合を示し、集合｛０，１｝ｖは長さｖの２進数のストリングの集合を示す。この場合に、ハッシュ関数Ｈは、集合｛０，１｝＊の入力から集合｛０，１｝ｖの出力を出す安全な一方向関数であり、ＦＤＨ（Ｆｕｌｌ−Ｄｏｍａｉｎ  Ｈａｓｈ）関数Ｇは、集合｛０，１｝＊の入力から認証データＺｎ＊＼｛１｝の出力を出す安全な一方向関数である。乱数発生器から発生される乱数としては、乱数ｔ（ｔ∈Ｚｎ＊）を無作為に生成する。‖は値を連結（ｃｏｎｃａｔｅｎａｔｉｏｎ）するという意味である。ここでの記号ＣとＳは、それぞれユーザとサーバを表すＩＤである。
【００３１】
このような認証システムにおいて特徴的なことは、与えられたセキュリティパラメータＫｏｎに対して、Ｌ（エル）を１以上┌ｌｏｇ３Ｋｏｎ−１┐以下の範囲で変化させ、ｅ≧┌（Ｋｏｎ−１／L）┐を満たし、（ｍｅ  ｍｏｄ  ｎ）の計算量が最も小さくなる素数ｅ（計算量が同じ場合にはその中で最大の素数ｅ）と、それより計算量は大きいが、Ｌが小さくなる素数ｅ（計算量が同じ場合にはその中でＬが最も小さくなる素数ｅを選択し、計算量とＬが同じ場合にはその中で最も大きな素数ｅ）を選択することである。
【００３２】
具体的には、数値例として、Ｋｏｎ＝２−４０の場合、素数ｅとして、２５７、１２２８９、１１７９６４９、２７４８７７９０６９４４１（その際のＬ（エル）にはそれぞれ５、３、２、１）が選択され、Ｋｏｎ＝２−２０の場合、素数ｅとして、１７，４１，１１５３，１１７９６４９（その際のＬにはそれぞれ５、４、２、１）が選択される。
【００３３】
＜認証システムの初期化＞
まず、ユーザは、自分の短い系列（例えば、パスワードなど）を入力して、これをサーバに安全に登録することにより認証システムの初期化を行う。すなわち、ユーザは自分の短い系列（パスワードｐｗ）を、直接にサーバに渡したり、郵便で送付したり、あるいは電話で知らせるなどして、安全に通知する必要がある。サーバは、サーバの認証装置の内部にあるメモリへユーザの端末装置２００のユーザＩＤ（Ｃ）とパスワードｐｗを記憶して保存する。これにより、認証システムを初期化する。
【００３４】
次に、前述した初期化を行った後、ユーザの端末装置２００とサーバの認証装置３００との間で、相互認証および鍵交換の処理を行う。この動作について、図２および図３を参照して説明する。ここで、図２は、ユーザの端末装置２００のシステム構成を詳細に示す図であり、図３は、サーバの認証装置３００のシステム構成を詳細に示す図である。図２に示すように、ユーザの端末装置２００は、通信処理部２１０、ユーザ側質問生成・応答確認装置２２０、ユーザ側認証用データ生成装置２３０、およびユーザ側認証結果判定装置２４０により構成されており、サーバの認証装置３００は、図３に示すように、通信処理部３１０，サーバ側ＲＳＡ鍵生成・応答生成装置３２０、サーバ側認証用データ生成装置３３０、およびサーバ側認証結果判定装置３４０から構成されている。
【００３５】
短い系列を用いた認証システム１００では、サーバの認証装置３００は、ＲＳＡ公開鍵方式に従って公開鍵と秘密鍵の対を生成し、その公開鍵をユーザの端末装置２００に、通信路１１０を介して送信する。この通信路１１０を介する通信は安全でない通信であるため、つまり、その公開鍵は、安全が約束されていない通信路１１０を利用して送信されることになるため、ユーザは、受信した公開鍵が正しいかどうかを決定する必要がある。
【００３６】
この決定は、具体的には、サーバが提供した公開鍵の素数ｅと（ｐ−１）・（ｑ−１）の最大公約数が１であるかどうか（すなわち、ｇｃｄ（ｅ，（ｐ−１）・（ｑ−１））＝１であるかどうか）を決定する。そのために、ユーザはＲＳＡ暗号方式あるいはＲＳＡ署名方式を使った質問・応答方式を利用する場合の実施例について説明する。
【００３７】
まず、サーバの認証装置３００の動作について説明する。
＜サーバの動作＞
（１）質問・応答方式を利用する場合（第１の実施例）：
図４はサーバ側ＲＳＡ鍵生成・応答生成装置の第１の実施例の構成を示す図であり、図５はサーバ側認証用データ生成装置の第１の実施例の構成を示す図であり、図６はサーバ側認証結果判定装置の第１の実施例の構成を示す図である。これらの図４〜図６を参照して、第１の実施例の質問・応答方式を利用するサーバの認証装置の動作例について説明する。
【００３８】
図４に示すように、まず、サーバ側ＲＳＡ鍵生成・応答生成装置３２０に設けられているＲＳＡ鍵生成器３２１により、公開鍵（ｅ，ｎ）と秘密鍵（ｄ，ｎ）の対を生成する。通信処理部３１０は、サーバＩＤ（Ｓ）とＲＳＡ鍵生成器３２１により生成された公開鍵（ｅ，ｎ）をユーザの端末装置２００へ送信する。その際、公開鍵の素数ｅについては予め決められた記号を送ることで指定してもよい。秘密鍵（ｄ，ｎ）は質問適切性判断部３２２に送られる。
【００３９】
質問適切性判断部３２２は、ユーザの端末装置２００から受信した暗号文のデータ（Ｃ，｛ｃｉ｝１≦ｉ≦Ｌ）とＲＳＡ鍵生成器３２１から生成されて送られた秘密鍵（ｄ，ｎ）入力として、暗号文｛ｃｉ｝１≦ｉ≦Ｌの適切性を判断する。受信した暗号文のデータ数だけ、つまり、すべてのｉに対して最大公約数ｇｃｄ（ｃｉ，ｎ）が１になるか否かを確認する。ここで、ＬはＬ＝┌ｌｏｇｅ（Ｋｏｎ−１）┐になるような整数である。
【００４０】
質問適切性判断部３２２において、最大公約数ｇｃｄ（ｃｉ，ｎ）と１が一致しないｉが一つでもあった場合、質問適切性判断部３２２はエラーメッセージ発生器３２４に対して、一致しないことを通知する。これを受けて、エラーメッセージ発生器３２４はエラーを発生して、システムの処理を中断する。一方、質問適切性判断部３２２において、すべてのｉに対する最大公約数ｇｃｄ（ｃｉ，ｎ）と１が一致した場合には、その暗号文｛ｃｉ｝１≦ｉ≦Ｌが適切なものとして判断して、応答生成器３２３に秘密鍵（ｄ，ｎ）と暗号文｛ｃｉ｝１≦ｉ≦Ｌを出力する。応答生成器３２３は、質問適切性判断部３２２からの秘密鍵（ｄ，ｎ）と暗号文｛ｃｉ｝１≦ｉ≦Ｌを入力として、すべてのｉに対する
「ｒｉ’＝ｃｉｄ  ｍｏｄ  ｎ」と
「ｖｉ＝Ｈ（００‖ｉ‖ｒｉ’  ‖ｎ）」
を計算する。通信処理部３１０は応答生成器３２３により計算された応答｛ｖｉ｝１≦ｉ≦Ｌをユーザの端末装置２００へ送信する。
【００４１】
次に、図５を参照すると、サーバ側認証用データ生成装置３３０に備えられたメモリ３３２から、先に保存されたユーザＩＤ（Ｃ）と短い系列（ｐｗ）を読み出す。マスク生成器３３１はメモリ３３２から読み出した短い系列のパスワードｐｗと、サーバ側ＲＳＡ鍵生成・応答生成装置３２０の応答生成器３２３（図４）から出力された秘密鍵（ｄ，ｎ）を入力として、ＦＤＨ関数Ｇ（ｎ，ｐｗ）によりマスクを計算して、秘密鍵（ｄ，ｎ）とともに出力する。ＲＳＡ復号演算器３３３は、ユーザの端末装置２００から受信した認証データＺとマスク生成器から出力されたＦＤＨ関数Ｇ（ｎ，ｐｗ）と秘密鍵（ｄ，ｎ）を入力として、ｔ’を、
ｔ’＝（Ｚ／Ｇ（ｎ，ｐｗ））ｄ  ｍｏｄ  ｎ
により計算して出力する。認証子生成器３３４は、ＲＳＡ復号演算器３３３から入力された認証用のデータ（ｎ，Ｚ，ｔ’）とメモリ３３２から読み出したパスワードｐｗから認証子ＶＳを、ハッシュ関数Ｈにより、
ＶＳ＝Ｈ（０１‖Ｃ‖Ｓ‖ｎ‖Ｚ‖ｐｗ‖ｔ’）
として計算して、認証子ＶＳとデータ「ｔｒａｎｓ」を出力する。ここで、データ「ｔｒａｎｓ」は（Ｃ‖Ｓ‖ｎ‖Ｚ‖ｐｗ‖ｔ’）である。通信処理部３１０は、認証子生成器３３４により計算して得られた認証子ＶＳをユーザの端末装置２００へ送信する。
【００４２】
続いて、サーバ側認証結果判定装置３４０の認証結果判断部３４１（図６）は、ユーザの端末装置２００から受信した認証子ＶＣと認証子生成器３３４から出力されたデータ「ｔｒａｎｓ」を入力として、ハッシュ関数Ｈ（１０‖ｔｒａｎｓ）を計算して、ユーザの端末装置２００から受信した認証子ＶＣと比較する。ここで、ハッシュ関数Ｈの代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。認証結果判断部３４１において認証子ＶＣとハッシュ関数Ｈ（１０‖ｔｒａｎｓ）が一致しない場合、認証結果判断部３４１は、エラーメッセージ発生器３４２に対して、一致しないことを通知する。これを受けて、エラーメッセージ発生器３４２はエラーを発生して、システムの処理を中断する。一方、認証結果判断部３４１において認証子ＶＣとハッシュ関数Ｈ（１０‖ｔｒａｎｓ）が一致した場合は、ユーザの端末装置２００が正当な装置として認証して、セッション鍵生成器３４３は、ＳＫ＝Ｈ（１１‖ｔｒａｎｓ）によりセッション鍵ＳＫを生成して出力する。
【００４３】
（２）質問・応答方式を利用する場合（第２の実施例）：
次に、第２の実施例の質問・応答方式を利用するサーバの認証装置の動作例について説明する。図７はサーバ側ＲＳＡ鍵生成・応答生成装置の第２の実施例の構成を示す図である。サーバ側認証用データ生成装置については、図５に示した第１の構成例と同じものが用いられる。サーバ側認証結果判定装置は、図６に示した第１の構成例と同じものが用いられる。これらの図５〜図７を参照して、第２の実施例の質問・応答方式を利用するサーバの認証装置３００の動作について説明する。
【００４４】
図７に示すように、第２の実施例のサーバ側ＲＳＡ鍵生成・応答生成装置３５０は、ＲＳＡ鍵生成器３５１および応答生成器３５２から構成されている。第２の実施例の動作では、第１実施例の動作と同様に、まず、サーバ側ＲＳＡ鍵生成・応答生成装置３５０のＲＳＡ鍵生成器３５１により、公開鍵（ｅ，ｎ）と秘密鍵（ｄ，ｎ）の対を生成する。サーバの認証装置３００は、通信処理部３１０を介して、サーバＩＤ（Ｓ）と、ＲＳＡ鍵生成器３５１により生成された公開鍵（ｅ，ｎ）をユーザの端末装置２００へ送信する。その際、公開鍵の素数ｅについては予め決められた記号を送ることで指定してもよい。
【００４５】
応答生成器３５２は、ＲＳＡ鍵生成器３５１からの秘密鍵（ｄ，ｎ）とユーザの端末装置２００から、ユーザＩＤ（Ｃ）と共に受信した乱数ｒを入力として、すべてのｉに対して、ＦＤＨ関数Ｇにより、
ｘｉ＝Ｇ（ｉ，ｒ，ｎ）
ｙｉ＝ｘｉｄ  ｍｏｄ  ｎ
を計算する。サーバの認証装置３００は、通信処理部３１０を介して、応答生成器３５２により計算された応答｛ｙｉ｝１≦ｉ≦Ｌをユーザの端末装置２００へ送信する。ここで、ＬはＬ＝┌ｌｏｇｅ（Ｋon−１）┐になるような整数である。
【００４６】
次に、サーバ側認証用データ生成装置３３０に備えられたメモリ３３２から、先に保存されたユーザＩＤ（Ｃ）と短い系列（ｐｗ）を読み出す。マスク生成器３３１はメモリ３３２から読み出したパスワードｐｗと応答生成器３２３から出力された秘密鍵（ｄ，ｎ）を入力として、ＦＤＨ関数Ｇ（ｎ，ｐｗ）によりマスクを計算して、秘密鍵（ｄ，ｎ）とともに出力する。ＲＳＡ復号演算器３３３は、ユーザの端末装置２００から受信した認証データＺとマスク生成器３３１から出力されたＦＤＨ関数Ｇの計算結果Ｇ（ｎ，ｐｗ）と、秘密鍵（ｄ，ｎ）を入力として、ｔ’を、
ｔ’＝（Ｚ／Ｇ（ｎ，ｐｗ））ｄ  ｍｏｄ  ｎ
により計算して出力する。認証子生成器３３４は、ＲＳＡ復号演算器３３３から入力されたデータ（ｎ，Ｚ，ｔ’）とメモリ３３２から読み出したパスワードｐｗから認証子ＶＳを、
ＶＳ＝Ｈ（０１‖Ｃ‖Ｓ‖ｎ‖Ｚ‖ｐｗ‖ｔ’）
により計算し、認証子ＶＳとデータ「ｔｒａｎｓ」を出力する。ここで、データ「ｔｒａｎｓ」は（Ｃ‖Ｓ‖ｎ‖Ｚ‖ｐｗ‖ｔ’）である。サーバの認証装置３００は、通信処理部３１０により、認証子生成器３３４により計算して得られた認証子ＶＳをユーザの端末装置２００へ送信する。
【００４７】
続いて、サーバ側認証結果判定装置３４０の認証結果判断部３４１（図６）は、ユーザの端末装置２００から受信した認証子ＶＣと認証子生成器３３４（図５）から出力されたデータ「ｔｒａｎｓ」を入力として、ハッシュ関数Ｈ（１０‖ｔｒａｎｓ）を計算して、ユーザの端末装置２００から受信した認証子ＶＣと比較する。ここで、ハッシュ関数Ｈの代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。認証結果判断部３４１において認証子ＶＣとハッシュ関数Ｈによる計算結果Ｈ（１０‖ｔｒａｎｓ）が一致しない場合、認証結果判断部３４１は、エラーメッセージ発生器３４２に対して、一致しないことを通知する。この通知を受けて、エラーメッセージ発生器３４２はエラーを発生して、システムの処理を中断する。一方、認証結果判断部３４１において、認証子ＶＣとハッシュ関数Ｈの計算結果Ｈ（１０‖ｔｒａｎｓ）が一致した場合は、ユーザの端末装置２００を正当な装置であるとして認証して、セッション鍵生成器３４３は、ハッシュ関数Ｈを計算し、ＳＫ＝Ｈ（１１‖ｔｒａｎｓ）により、セッション鍵ＳＫを生成して出力する。
【００４８】
次にユーザの端末装置２００の動作について説明する。
＜ユーザの端末装置の動作＞
（１）質問・応答方式を利用する場合（第１の実施例）：
図８はユーザ側質問生成・応答確認装置の第１の実施例の構成を示す図であり、図９はユーザ側認証用データ生成装置の第１の実施例の構成を示す図であり、図１０はユーザ側認証結果判定装置の第１の実施例の構成を示す図である。これらの図８〜図１０を参照して、第１の実施例の質問・応答方式を利用するサーバの端末装置の動作例について説明する。
【００４９】
図８に示すように、ユーザ側質問生成・応答確認装置２２０のＲＳＡ鍵適切性判断部２２は、サーバの認証装置３００から受信したサーバＩＤ（Ｓ）と公開鍵（ｅ，ｎ）を入力として、ＲＳＡ公開鍵（ｅ，ｎ）の適切性を判断する。つまり、公開鍵ｅが素数（もしくは予め指定された集合の要素）であり、かつ素数の積ｎがｋビットの奇数であることを確認する。それらが確認できない場合、ＲＳＡ鍵適切性判断部２２１は、エラーメッセージ発生器２２２に対して、確認が取れないことを通知する。これを受けて、エラーメッセージ発生器２２２はエラーを発生して、システムの処理を中断する。一方、ＲＳＡ鍵適切性判断部２２１において、公開鍵ｅと素数の積ｎの妥当性が確認できた場合は、サーバのＲＳＡ公開鍵（ｅ，ｎ）が適切なものとして判断して、質問生成器２２４に、公開鍵（ｅ，ｎ）を出力する。
【００５０】
質問生成器２２４は乱数発生器２２３によりランダムに発生させた乱数｛ｒｉ｝１≦ｉ≦Ｌ（ｒｉ∈Ｚｎ＊）と、ＲＳＡ鍵適切性判断部２２１により出力されたＲＳＡ公開鍵（ｅ，ｎ）とを入力として、各ｉに対して暗号文「ｃｉ＝ｒｉｅ  ｍｏｄ  ｎ」を計算して、出力する。ここで、ＬはＬ＝┌ｌｏｇｅ（Ｋon−１）┐になるような整数である。
【００５１】
質問適切性判断部２２５は、質問生成器２２４により出力された暗号文ｃｉの適切性を判断する。質問適切性判断部２２５において最大公約数ｇｃｄ（ｃｉ，ｎ）と１が一致しない場合、質問適切性判断部２２５は、質問生成器２２４を再び呼び出し、ｉに対する暗号文ｃｉを計算して出力させる。一方、質問適切性判断部２２５において、すべてのｉに対する最大公約数ｇｃｄ（ｃｉ，ｎ）と１が一致した場合は、暗号文｛ｃｉ｝１≦ｉ≦Ｌが適切なものとして判断して、暗号文｛ｃｉ｝１≦ｉ≦Ｌを出力する。ユーザの端末装置２００は、通信処理部２１０を介して、質問適切性判断部２２５によって、出力された暗号文｛ｃｉ｝１≦ｉ≦ＬとユーザＩＤ（Ｃ）をサーバの認証装置３００へ送信する。
【００５２】
応答確認判断部２２６は、質問生成器２２４から出力された公開鍵（ｅ，ｎ）と乱数｛ｒｉ｝１≦ｉ≦Ｌと、サーバの認証装置３００から受信した応答｛ｖｉ｝１≦ｉ≦Ｌを入力として、応答｛ｖｉ｝１≦ｉ≦Ｌの確認を行う。応答確認判断部２２６において、応答ｖｉとハッシュ関数Ｈによる計算結果Ｈ（００‖ｉ‖ｒｉ‖ｎ）が一致しないｉが一つでもあった場合、応答確認判断部２２６は、エラーメッセージ発生器２２７に対して、一致しないことを通知する。これを受けて、エラーメッセージ発生器２２７はエラーを発生して、システムの処理を中断する。一方、応答確認判断部２２６において、すべてのｉに対する応答ｖｉとハッシュ関数Ｈによる計算結果Ｈ（００‖ｉ‖ｒｉ‖ｎ）が一致した場合は、サーバの応答の確認が取れたと判断して、公開鍵（ｅ，ｎ）を出力する。
【００５３】
図９を参照すると、次に、ユーザ側認証用データ生成装置２３０のＲＳＡ暗号演算器２３２は、応答確認判断部２２６からの公開鍵（ｅ，ｎ）と乱数発生器２３１によりランダムに発生させた乱数ｔ（ｔ∈Ｚｎ＊）を入力として、暗号文ｚを「ｚ＝ｔｅ  ｍｏｄ  ｎ」により計算して、乱数ｔ，公開鍵（ｅ，ｎ）とともに、これらのデータ（ｚ，ｔ，（ｅ，ｎ））を出力する。
【００５４】
一方、マスク生成器２３３は、ユーザが入力した短い系列（例えば、パスワードｐｗなど）によりＦＤＨ関数Ｇ（ｎ，ｐｗ）を計算して出力するので、認証データ生成器２３４は、ＲＳＡ暗号演算器から出力された認証用のデータ（ｚ，ｔ，（ｅ，ｎ））とマスク生成器から出力されたＦＤＨ関数Ｇ（ｎ，ｐｗ）を入力として、認証データＺを「Ｚ＝ｚ・Ｇ（ｎ，ｐｗ）  ｍｏｄ  ｎ」により計算して、データ「ｔｒａｎｓ」とともに出力する。ここで、データ「ｔｒａｎｓ」は（Ｃ‖Ｓ‖ｎ‖Ｚ‖ｐｗ‖ｔ）である。ユーザの端末装置２００は、通信処理部２１０によって、認証データ生成器２３４により出力された認証データＺをサーバの認証装置３００へ送信する。
【００５５】
図１０に示すように、続いて、ユーザ側認証結果判定装置２４０における認証結果判断部２４１は、サーバの認証装置３００から受信した認証子ＶＳと認証データ生成器２３４から出力されたデータ「ｔｒａｎｓ」を入力として、ハッシュ関数Ｈ（０１‖ｔｒａｎｓ）を計算して、サーバの認証装置３００から受信した認証子ＶＳと比較する。ここで、ハッシュ関数Ｈの代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。認証結果判断部２４１において、認証子ＶＳとハッシュ関数Ｈ（０１‖ｔｒａｎｓ）が一致しない場合、認証結果判断部２４１は、エラーメッセージ発生器２４２に対して、一致しないことを通知する。これを受けて、エラーメッセージ発生器２４２はエラーを発生して、システムの処理を中断する。
【００５６】
一方、認証結果判断部２４１において認証子ＶＳとハッシュ関数Ｈ（０１‖ｔｒａｎｓ）が一致した場合は、認証子ＶＳを送信したサーバの認証装置３００が正当な装置として認証して、データ「ｔｒａｎｓ」を出力する。認証子生成器２４３は、認証結果判断部２４１から入力されたデータ「ｔｒａｎｓ」から認証子ＶＣを「ＶＣ＝Ｈ（１０‖ｔｒａｎｓ）」により計算して、認証子ＶＣとデータ「ｔｒａｎｓ」を出力する。ユーザの端末装置２００は、通信処理部２１０によって、認証子生成器２４３により出力された認証子ＶＣをサーバの認証装置３００へ送信する。セッション鍵生成器２４４は、認証子生成器２４３により出力されたデータ「ｔｒａｎｓ」を入力として、ハッシュ関数Ｈを計算し、ＳＫ＝Ｈ（１１‖ｔｒａｎｓ）により、セッション鍵ＳＫを生成して出力する。
【００５７】
（２）質問・応答方式を利用する場合（第２の実施例）：
次に、第２の実施例の質問・応答方式を利用するユーザの端末装置の動作例について説明する。図１１は、ユーザ側質問生成・応答確認装置の第２の実施例の構成を示す図である。ユーザ側認証用データ生成装置については、図９に示した第１の構成例と同じものが用いられる。ユーザ側認証結果判定装置は、図１０に示した第１の構成例と同じものが用いられる。これらの図９〜図１１を参照して、第２の実施例の質問・応答方式を利用するユーザの端末装置２００の動作について説明する。
【００５８】
図１１に示すように、第２の実施例のユーザ側質問生成・応答確認装置２５０に設けられたＲＳＡ鍵適切性判断部２５１は、サーバの認証装置３００から受信したサーバＩＤ（Ｓ）と公開鍵（ｅ，ｎ）を入力として、ＲＳＡ公開鍵（ｅ，ｎ）の適切性を判断する。つまり、公開鍵ｅが素数（もしくは予め指定された集合の要素）であり、かつ素数の積ｎがｋビットの奇数であることを確認する。それらが確認されない場合、ＲＳＡ鍵適切性判断部２５１は、エラーメッセージ発生器２５２に対して、確認が取れないことを通知する。これを受けて、エラーメッセージ発生器２５２はエラーを発生して、システムの処理を中断する。
【００５９】
一方、ＲＳＡ鍵適切性判断部２５１において、公開鍵ｅと素数の積ｎの妥当性が確認された場合は、サーバの認証装置３００から送られたＲＳＡ公開鍵（ｅ，ｎ）が適切なものとして判断して、公開鍵（ｅ，ｎ）を出力する。そして、ユーザの端末装置２００は、通信処理部２１０により、乱数発生器２５３においてランダムに発生させた乱数ｒ（ｒ∈｛０，１｝ｖ）と、ユーザＩＤ（Ｃ）をサーバの認証装置３００へ送信する。
【００６０】
ＲＳＡ暗号演算器２５４は、ＲＳＡ鍵適切性判断部２５１から出力された公開鍵（ｅ，ｎ）とサーバの認証装置３００から受信した署名｛ｙｉ｝１≦ｉ≦Ｌを入力として、
｛ｙｉｅ  ｍｏｄ  ｎ｝１≦ｉ≦Ｌ
を計算して公開鍵（ｅ，ｎ）とともに出力する。ここで、ＬはＬ＝┌ｌｏｇｅ（Ｋon−１）┐になるような整数である。
【００６１】
応答確認判断部２５５は、乱数発生器２５３によりランダムに発生させた乱数ｒとＲＳＡ暗号演算器２５４により出力されたＲＳＡ公開鍵（ｅ，ｎ）と計算結果「｛ｙｉｅ  ｍｏｄ  ｎ｝１≦ｉ≦Ｌ」を入力として、各ｉに対して応答の正当性を確認する。応答確認判断部２５５において、署名ｙｉｅとＦＤＨ関数Ｇ（ｉ，ｒ，ｎ）が一致しないあるいは最大公約数ｇｃｄ（ｙｉ，ｎ）と１が一致しないｉが一つでもあった場合、応答確認判断部２５５は、エラーメッセージ発生器に対して、一致しないことを通知する。これを受けて、エラーメッセージ発生器はエラーを発生して、システムの処理を中断する。一方、応答確認判断部２５５において、すべてのｉに対する署名ｙｉｅとＦＤＨ関数Ｇ（ｉ，ｒ，ｎ）が一致して、かつ最大公約数ｇｃｄ（ｙｉ，ｎ）と１が一致した場合は、サーバの応答の確認が取れたと判断して、公開鍵（ｅ，ｎ）を出力する。
【００６２】
次に、ユーザ側認証用データ生成装置２３０のＲＳＡ暗号演算器２３２（図９）は、応答確認判断部２５５からの公開鍵（ｅ，ｎ）と乱数発生器２３１によりランダムに発生させた乱数ｔ（ｔ∈Ｚｎ＊）を入力として、暗号文ｚを「ｚ＝ｔｅ  ｍｏｄ  ｎ」により計算して（ｔ，（ｅ，ｎ））とともに出力する。そして、マスク生成器はユーザが入力した短い系列（例えば、パスワードなど）によりＧ（ｎ，ｐｗ）を計算して出力する。認証データ生成器は、ＲＳＡ暗号演算器から出力された認証用のデータ（ｚ，ｔ，（ｅ，ｎ））とマスク生成器から出力されたＦＤＨ関数Ｇ（ｎ，ｐｗ）を入力として、認証データＺを「Ｚ＝ｚ・Ｇ（ｎ，ｐｗ）  ｍｏｄ  ｎ」により計算して、データ「ｔｒａｎｓ」とともに出力する。ここで、データ「ｔｒａｎｓ」は（Ｃ‖Ｓ‖ｎ‖Ｚ‖ｐｗ‖ｔ）である。ユーザの端末装置２００は、通信処理部２１０によって、認証データ生成器２３４により出力された認証データＺをサーバの認証装置３００へ送信する。
【００６３】
続いて、図１０に示すように、ユーザ側認証結果判定装置２４０の認証結果判断部２４１は、サーバの認証装置３００から受信した認証子ＶＳと認証データ生成器２３４から出力されたデータ「ｔｒａｎｓ」を入力として、ハッシュ関数Ｈ（０１‖ｔｒａｎｓ）を計算して、サーバの認証装置３００から受信した認証子ＶＳと比較する。ここで、ハッシュ関数Ｈの代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。認証結果判断部２４１において、認証子ＶＳとハッシュ関数Ｈ（０１‖ｔｒａｎｓ）が一致しない場合、認証結果判断部２４１は、エラーメッセージ発生器２４２に対して、一致しないことを通知する。これを受けて、エラーメッセージ発生器２４２はエラーを発生して、システムの処理を中断する。
【００６４】
一方、認証結果判断部２４１において認証子ＶＳとハッシュ関数Ｈ（０１‖ｔｒａｎｓ）が一致した場合は、認証子ＶＳを送信したサーバの認証装置３００が正当な装置として認証して、データ「ｔｒａｎｓ」を出力する。認証子生成器２４３は、認証結果判断部２４１から入力されたデータ「ｔｒａｎｓ」から認証子ＶＣを「ＶＣ＝Ｈ（１０‖ｔｒａｎｓ）」により計算して、認証子ＶＣとデータ「ｔｒａｎｓ」を出力する。ユーザの端末装置２００は、通信処理部２１０によって、認証子生成器２４３により出力された認証子ＶＣをサーバの認証装置３００へ送信する。セッション鍵生成器２４４は、認証子生成器２４３により出力されたデータ「ｔｒａｎｓ」を入力として、ハッシュ関数Ｈを計算し、ＳＫ＝Ｈ（１１‖ｔｒａｎｓ）により、セッション鍵ＳＫを生成して出力する。
【００６５】
＜パスワードオンライン攻撃検出のためのログ管理及び照合方法＞
本発明による認証システムは、パスワードなどの短い系列を用いてセッション鍵の確立を行うようにしているため、パスワードのオンライン攻撃を受ける可能性がある。これに対しては、認証システムにおけるセッション鍵の確立までの認証動作のログを作成することにより、作成されたログを用いて、パスワードオンライン攻撃を検出することができるシステム構成とすることができる。
【００６６】
次に、このような認証システムの変形例について説明する。ログの作成は、ユーザの端末装置およびサーバの認証装置において、それぞれにログ作成するためのメモリを設け、メモリに作成したログを蓄積するシステム構成とされる。図１２は、ユーザの端末装置２００に設けられるログ用のユーザ側認証結果判定装置の構成を示す図であり、図１３は、サーバの認証装置３００に設けられるログ用のサーバ側認証結果判定装置の構成を示す図である。ユーザの端末装置２００に設けられるユーザ側認証結果判定装置２４０が、図１２に示すログ用のユーザ側認証結果判定装置４４０に置き換えられ、また、サーバの認証装置３００に設けられるサーバ側認証結果判定装置３４０が、図１３に示すログ用のサーバ側認証結果判定装置５４０に置き換えられたシステム構成となる。これにより、ログ作成に対応した認証システムとなる。
【００６７】
（１）ログ用のユーザ側認証結果判定装置の動作：
初めに、図１２を参照して、ログ用のユーザ側認証結果判定装置４４０の動作について説明する。ユーザの端末装置２００において、ユーザ側質問生成・応答確認装置２２０、ユーザ側認証用データ生成装置２３０については、先に説明した第１の実施例の構成と同様である。
【００６８】
ログ用のユーザ側認証結果判定装置４４０の認証結果判断部４４１は、サーバの認証装置３００から受信した認証子ＶＳと認証データ生成器２３４から出力されたデータ「ｔｒａｎｓ」を入力として、ハッシュ関数Ｈ（０１‖ｔｒａｎｓ）を計算して、サーバの認証装置３００から受信した認証子ＶＳと比較する。ここで、ハッシュ関数Ｈの代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。
【００６９】
認証結果判断部４４１において、認証子ＶＳとハッシュ関数Ｈ（０１‖ｔｒａｎｓ）が一致しない場合、認証結果判断部４４１は、エラーメッセージ発生器４４２に対して、一致しないことを通知する。これを受けて、エラーメッセージ発生器４４２はログ用のメモリ４４５にログとしてハッシュ関数の計算結果ｈ（Ｚ）、認証子ＶＳを時間などの属性情報とともに「ｌｏｇ＿ｄａｔａ」として保存し、もしくはそれらが保存されているログにそのセッションが正常に終了しなかったことを記述して、エラーメッセージを発生して、システムの処理を中断する。ここで、ハッシュ関数ｈは安全な一方向性ハッシュ関数である。
【００７０】
一方、認証結果判断部４４１において認証子ＶＳとハッシュ関数Ｈ（０１‖ｔｒａｎｓ）が一致した場合には、サーバの認証装置３００を正当な装置として認証して、データ「ｔｒａｎｓ」を出力する。認証子生成器４４３は、認証結果判断部４４１から入力されたデータ「ｔｒａｎｓ」から認証子ＶＣを、ＶＣ＝Ｈ（１０‖ｔｒａｎｓ）により計算して、認証子ＶＣとデータ「ｔｒａｎｓ」を出力する。ユーザの端末装置２００の通信処理部２１０は、認証子生成器４４３により出力された認証子ＶＣをサーバの認証装置３００へ送信する。セッション鍵生成器４４４は、認証子生成器４４３により出力されたデータ「ｔｒａｎｓ」を入力として、ハッシュ関数Ｈを計算し、ＳＫ＝Ｈ（１１‖ｔｒａｎｓ）により、セッション鍵ＳＫを生成して出力する。
【００７１】
（２）ログ用のサーバ側認証結果判定装置の動作：
続いて、図１３を参照して、ログ用のサーバ側認証結果判定装置５４０の動作について説明する。サーバの認証装置３００において、サーバ側ＲＳＡ鍵生成・応答生成装置３２０、サーバ側認証用データ生成装置３３０については、先に説明した第１の実施例の構成と同様である。
【００７２】
ログ用のサーバ側認証結果判定装置５４０に設けられるログ用メモリ５４５には、ログとして、ハッシュ関数ｈ（Ｚ）、認証子ＶＳを時間などのほかの属性情報とともに保存する。もしくは、それらが保存されているログにそのセッションが正常に終了しなかったことを記述する。ここで、ハッシュ関数ｈは安全な一方向性ハッシュ関数である。
【００７３】
認証結果判断部５４１は、ユーザの端末装置２００から受信した認証子ＶＣと認証子生成器３３４から出力されたデータ「ｔｒａｎｓ」を入力として、ハッシュ関数Ｈ（１０‖ｔｒａｎｓ）を計算して、ユーザの端末装置２００から受信した認証子ＶＣと比較する。ここで、ハッシュ関数Ｈの代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。認証結果判断部５４１において、認証子ＶＣとハッシュ関数Ｈ（１０‖ｔｒａｎｓ）が一致しない場合、認証結果判断部５４１は、エラーメッセージ発生器に対して、一致しないことを通知する。これを受けて、エラーメッセージ発生器はエラーを発生して、システムの処理を中断する。
【００７４】
一方、認証結果判断部５４１において認証子ＶＣとハッシュ関数Ｈ（１０‖ｔｒａｎｓ）が一致した場合は、ユーザの端末装置２００を正当な装置として認証して、セッション鍵生成器５４３は、ハッシュ関数Ｈを計算し、ＳＫ＝Ｈ（１１‖ｔｒａｎｓ）により、セッション鍵ＳＫを生成して出力し、ログ用メモリ５４５にログとして保存されているハッシュ関数ｈ（Ｚ）、認証子ＶＳに対応するエントリを削除する。もしくは、それらが保存されているログにそのセッションが正常に終了しなかったことを記述した場合には、その記述を破棄する。
【００７５】
このようにして、ログが作成された場合、その作成されたログのデータを用いて、パスワードオンライン攻撃を検出する動作について説明する。図１４は、パスワートオンライン攻撃を検出する動作を説明するための認証システム全体のデータの流れを説明する図であり、図１５は、ユーザの端末装置における不正検出動作に係るデータの流れを説明する図であり、また、図１６は、サーバの認証装置における不正検出動作に係るデータの流れを説明する図である。これらの図１４〜図１５を参照して、パスワートオンライン攻撃を検出する動作を説明する。
【００７６】
図１４に示すように、認証システム１０００において、前述したようにユーザの端末装置とサーバの認証装置の間で相互に認証子のデータ通信が行われて相互認証を行い、その認証処理が成功して、それぞれのセッション鍵が出力されている状態であるとする。つまり、この場合には、既にユーザの端末装置１２００およびサーバの認証装置１３００との間でセッション鍵が確立されている状態であるとする。その後に、ユーザの端末装置１２００およびサーバの認証装置１３００の間が通信路１０１０により結合された状態において不正検出の動作が行われる。
【００７７】
（３）不正検出用のユーザの端末装置の動作：
図１５を参照して、ユーザの端末装置１２００における不正検出動作に係るデータの流れを説明すると、ユーザの端末装置１２００で不正検出を行う場合に、ユーザの端末装置１２００の共通鍵暗号演算器１２０１は、セッション鍵生成器から出力されたセッション鍵ＳＫとログ用メモリから読み出したログデータ「ｌｏｇ＿ｄａｔａ」を入力として、共通鍵暗号文Ｃｔｘ＿ｌを「Ｃｔｘ＿ｌ＝Ｅｎｃ（ＳＫ，ｌｏｇ＿ｄａｔａ）」の演算処理により計算して出力する。ここで、Ｅｎｃ（）は任意の安全な共通鍵暗号の暗号化（および改ざん検出符号生成）アルゴリズムを表す。
【００７８】
通信処理部１２０４は、共通鍵暗号演算器１２０１が出力した共通鍵暗号文Ｃｔｘ＿ｌを通信路１０１０を介して、不正検出の動作を行っているサーバの認証装置１３００（図１６）に送信する。共通鍵復号演算器１２０３は、通信処理部１２０５により不正検出の動作を行っているサーバの認証装置１３００から受信した暗号文Ｃｔｘ＿ｒを、「ｒｅｐｏｒｔ＝Ｄｅｃ（ＳＫ，Ｃｔｘ＿ｒ）」の演算処理によりにより復号して不正検出データ「ｒｅｐｏｒｔ」を得て、それを結果表示器１２０６に出力する。結果表示器１２０６は共通鍵復号演算器１２０３より得た不正検出データ「ｒｅｐｏｒｔ」をユーザの見易いように加工して検出結果をユーザに表示する。
【００７９】
（４）不正検出用のサーバの認証装置の動作：
続いて、図１６を参照して、サーバの認証装置１３００における不正検出動作に係るデータの流れを説明すると、サーバの認証装置１３００で不正検出を行う場合、サーバの認証装置１３００の共通鍵復号演算器１３０１は、通信処理部１３０６により不正検出の動作を行っているユーザの端末装置１２００から受信した暗号文Ｃｔｘ＿ｌとセッション鍵生成器により出力されたセッション鍵ＳＫを入力として、復号文ｌｏｇ＿ｄａｔａを「ｌｏｇ＿ｄａｔａ＝Ｄｅｃ（ＳＫ，Ｃｔｘ）」の演算処理により計算して出力する。ここで、Ｄｅｃ（）は任意の安全な共通鍵暗号の復号（および改ざん検出）アルゴリズムを表す。
【００８０】
不正検出判断部１３０３は、共通鍵復号演算器１３０１から出力されたログデータｌｏｇ＿ｄａｔａとログ用メモリ１３０２から読み出したログの「ハッシュ関数ｈ（Ｚ）、認証子Ｖｓ」を入力として、ユーザ側の各ログに対してサーバ側のログである「ハッシュ関数ｈ（Ｚ）、認証子Ｖｓ」と比較し、それらが一致していればパスワードオンライン攻撃は行われていないと判断し、さもなくば、パスワードオンライン攻撃が行われている可能性があると判断し、それぞれオンライン攻撃が行われている可能性のある時刻や回数などに関するレポートとして不正検出データ「ｒｅｐｏｒｔ」を出力する。
【００８１】
また、不正検出判断部１３０３は、比較の結果一致していたエントリをログ用メモリから削除（もしくは、一致していたことを示す目印を付与）する。作成された不正検出データ「ｒｅｐｏｒｔ」のレポートは、共通鍵暗号演算器１３０４で暗号化されて、通信処理部１３０５を介してユーザの端末装置１２００へ送られる。なお、不正検出判断の処理については、サーバの認証装置１３００にあるログデータをユーザの端末装置１２００に送り、ユーザの端末装置１２００において処理を行うようにしても良い。
【００８２】
＜安全な通信路を経由する認証データの送信方法＞
次に安全な通信路を経由して認証データを送信するシステムについて説明する。このような通信システムを利用することにより、他の認証方式を利用するためのデータを安全に共有して記録することできる。図１７は、安全な通信路を経由して認証データを送信する認証データ送信システムのシステム全体のデータの流れを説明する図であり、図１８は、ユーザの端末装置における認証データ登録に係るデータの流れを説明する図であり、また、図１９は、サーバの認証装置における認証データ登録に係るデータの流れを説明する図である。これらの図１７〜図１９を参照して、安全な通信路を経由して認証データを送信するシステムの動作を説明する。
【００８３】
前述したシステムの場合と同様に、図１７に示すように、認証システム２０００において、ユーザの端末装置２２００とサーバの認証装置２３００の間で通信路２０１０を介して相互に認証子のデータ通信が行われて相互認証を行い、認証処理が成功して、それぞれのセッション鍵が出力されている状態であるとする。この場合には既にユーザの端末装置２２００およびサーバの認証装置２３００との間で通信路２０１０を介してセッション鍵が確立されている状態であるとする。ユーザの端末装置とサーバの認証装置の間にセッション鍵が確立した時の認証データ登録用のユーザの端末装置の動作について説明する。
【００８４】
（１）認証データ登録用のユーザの端末装置の動作：
図１８を参照すると、まず、認証データ登録用のユーザの端末装置２２００にある共通鍵暗号演算器２２０２は、認証処理が成功した後のセッション鍵生成器から出力されたセッション鍵ＳＫと認証データ生成器２２０１から出力された認証データａｕｔｈ＿ｄａｔａ＿ｓを入力として、共通鍵暗号文Ｃｔｘ＿ｓを「Ｃｔｘ＿ｓ＝Ｅｎｃ（ＳＫ，ａｕｔｈ＿ｄａｔａ＿ｓ）」の計算を行い、計算結果を出力する。ここで、Ｅｎｃ（）は任意の安全な共通鍵暗号の暗号化（および改ざん検出符号生成）アルゴリズムを表す。通信処理部２２０３は共通鍵暗号演算器２２０２が出力した共通鍵暗号文Ｃｔｘ_sを、認証データ登録用のサーバの認証装置２３００に送信する。
【００８５】
また、通信処理部２２０７は、サーバの認証装置２３００から共通鍵暗号文Ｃｔｘ＿ｃを受信し、それを共通鍵復号演算器２２０５に渡す。共通鍵暗号演算器２２０２は、セッション鍵生成器から出力されたセッション鍵ＳＫと通信処理部２２０７から出力された暗号文Ｃｔｘ＿ｃを入力として、共通鍵暗号文Ｃｔｘ＿ｃを「ａｕｔｈ＿ｄａｔａ＿ｃ＝Ｄｅｃ（ＳＫ，Ｃｔｘ＿ｃ）」の計算を行うことにより、復号（および改ざんが無いことを確認）して、その計算結果「ａｕｔｈ＿ｄａｔａ＿ｃ」を出力する。ここで、Ｄｅｃ（）は任意の安全な共通鍵暗号の復号（および改ざん検出）アルゴリズムを表す。
【００８６】
記録情報構成器２２０４は、認証データ生成器２２０１から出力された認証データ「ａｕｔｈ＿ｄａｔａ＿ｓ」と、共通鍵復号演算器２２０５から出力された認証データ「ａｕｔｈ＿ｄａｔａ＿c」および応答確認判断部から出力された「ＲＳＡ公開鍵（ｅ，ｎ）」からメモリ２２０６に記録する認証用のデータ(Ｓ，ａｕｔｈ＿ｃ)を生成し、それをメモリ２２０６に記録する。
【００８７】
（２）認証データ登録用のサーバの認証装置の動作：
続いて、安全な通信路２０１０を経由するユーザの端末装置２２００とサーバの認証装置２３００の間にセッション鍵が確立した時の認証データ登録用のサーバの認証装置２３００の動作について説明する。
【００８８】
図１９を参照する。まず、認証データ登録用のサーバの認証装置２３００にある共通鍵復号演算器２３０２は、安全な通信路２０１０を経由して通信処理部２３０１により認証データ登録用のユーザの端末装置から受信して、暗号文Ｃｔｘ＿ｓとセッション鍵生成器により出力されたセッション鍵ＳＫを入力として、復号文ａｕｔｈ＿ｄａｔａ＿ｓをａｕｔｈ＿ｄａｔａ＿ｓ＝Ｄｅｃ（ＳＫ，Ｃｔｘ＿ｓ）により計算してａｕｔｈ＿ｄａｔａ＿ｓを記録情報構成器に出力する。また、共通鍵暗号演算器は、認証データ生成器の生成したａｕｔｈ＿ｄａｔａ＿ｃとセッション鍵生成器により出力されたセッション鍵ＳＫを入力として、共通鍵暗号文Ｃｔｘ＿ｃを「Ｃｔｘ＿ｃ＝Ｅｎｃ（ＳＫ，ａｕｔｈ＿ｄａｔａ＿ｃ）」により計算して出力する。通信処理部２３０７は、共通鍵暗号演算器２３０６が出力した計算結果の共通鍵暗号文Ｃｔｘ＿ｃを、認証データ登録用のユーザの端末装置２２００に送信する。
【００８９】
記録情報構成器２３０３は、認証データ生成器２３０５から出力された認証データ「ａｕｔｈ＿ｄａｔａ＿ｃ」と共通鍵復号演算器２３０２から出力された認証データ「ａｕｔｈ＿ｄａｔａ＿ｓ」およびＲＳＡ鍵生成器から出力されたＲＳＡ復号鍵（ｄ，ｎ）からメモリ２３０４に記録する認証用のデータ(Ｃ，ａｕｔｈ＿ｃ)を生成し、それをメモリ２３０４に記録する。
【産業上の利用可能性】
【００９０】
本発明により提供される認証システムは、基本的には、利用者やサーバ認証を必要とするサービスやアプリケーションで利用できる。現在、利用者認証やサーバ認証は、電子商取引、サーバやネットワークへのログイン、入退室管理、公的交通機関への搭乗など、リアル、サイバーを問わず至るところで必要とされており、その応用先は広い。また、本発明による認証システムは、端末動作にかかる処理を、安全性を損なうことなく軽くできるという利点があり、ユビキタスデバイスなど計算能力の低いデバイスへの応用が期待できる。また、パスワードオンライン攻撃検出システムおよび認証データ送信システムにより安全性を損なうことなく利便性を高めることができる。
【図面の簡単な説明】
【００９１】
【図１】短い系列を用いた認証システムの構成を示すブロック図である。
【図２】ユーザの端末装置２００のシステム構成を詳細に示す図である。
【図３】サーバの認証装置３００のシステム構成を詳細に示す図である。
【図４】サーバ側ＲＳＡ鍵生成・応答生成装置の第１の実施例の構成を示す図である。
【図５】サーバ側認証用データ生成装置の第１の実施例の構成を示す図である。
【図６】サーバ側認証結果判定装置の第１の実施例の構成を示す図である。
【図７】サーバ側ＲＳＡ鍵生成・応答生成装置の第２の実施例の構成を示す図である。
【図８】ユーザ側質問生成・応答確認装置の第１の実施例の構成を示す図である。
【図９】ユーザ側認証用データ生成装置の第１の実施例の構成を示す図である。
【図１０】ユーザ側認証結果判定装置の第１の実施例の構成を示す図である。
【図１１】ユーザ側質問生成・応答確認装置の第２の実施例の構成を示す図である。
【図１２】ユーザの端末装置２００に設けられるログ用のユーザ側認証結果判定装置の構成を示す図である。
【図１３】サーバの認証装置３００に設けられるログ用のサーバ側認証結果判定装置の構成を示す図である。
【図１４】パスワートオンライン攻撃を検出する動作を説明するための認証システム全体のデータの流れを説明する図である。
【図１５】ユーザの端末装置における不正検出動作に係るデータの流れを説明する図である。
【図１６】サーバの認証装置における不正検出動作に係るデータの流れを説明する図である。
【図１７】安全な通信路を経由して認証データを送信する認証データ送信システムのシステム全体のデータの流れを説明する図である。
【図１８】ユーザの端末装置における認証データ登録に係るデータの流れを説明する図である。
【図１９】サーバの認証装置における認証データ登録に係るデータの流れを説明する図である。
【符号の説明】
【００９２】
１００  認証システム
１１０  通信路
２００  ユーザの端末装置
２１０  通信処理部
２２０  ユーザ側質問生成・応答確認装置
２３０  ユーザ側認証用データ生成装置
２４０  ユーザ側認証結果判定装置
３００  サーバの認証装置
３１０  通信処理部
３２０  サーバ側ＲＳＡ鍵生成・応答生成装置
３３０  サーバ側認証用データ生成装置
３４０  サーバ側認証結果判定装置
【図１】
0005004086.tif 000002
【図２】
0005004086.tif 000003
【図３】
0005004086.tif 000004
【図４】
0005004086.tif 000005
【図５】
0005004086.tif 000006
【図６】
0005004086.tif 000007
【図７】
0005004086.tif 000008
【図８】
0005004086.tif 000009
【図９】
0005004086.tif 000010
【図１０】
0005004086.tif 000011
【図１１】
0005004086.tif 000012
【図１２】
0005004086.tif 000013
【図１３】
0005004086.tif 000014
【図１４】
0005004086.tif 000015
【図１５】
0005004086.tif 000016
【図１６】
0005004086.tif 000017
【図１７】
0005004086.tif 000018
【図１８】
0005004086.tif 000019
【図１９】
0005004086.tif 000020