"端末からの要求に応じてサーバが前記端末のユーザを認証する認証システムであって、前記端末は、前記サーバに対して認証要求を送信する認証要求部と、前記認証要求に応じて前記サーバから送信される乱数を受信する乱数受信部と、前記乱数に対して、第1の認証コードを用いた所定の演算によりレスポンス値を生成する第1の演算部と、前記レスポンス値に対して、第2の認証コードを用いた暗号化処理により暗号化レスポンス値を生成する暗号化部と、前記暗号化レスポンス値を、前記端末のユーザを識別するIDと共に、前記サーバへ送信するレスポンス送信部と、前記サーバから、前記暗号化レスポンス値に基づく認証結果を受信する結果受信部と、を備え、前記サーバは、前記IDに関連付けて、予め前記第1の認証コード及び前記第2の認証コードを記憶する記憶部と、前記端末から前記認証要求を受信したことに応じて、前記乱数を生成する乱数生成部と、前記乱数を前記端末へ送信する乱数送信部と、前記端末から前記ID及び前記暗号化レスポンス値を受信したことに応じて、当該IDに関連付けられている前記第1の認証コード及び前記第2の認証コードを前記記憶部から抽出する認証コード抽出部と、前記暗号化レスポンス値に対して、前記第2の認証コードを用いた復号処理により第1の検証用レスポンス値を生成する復号部と、前記乱数に対して、前記第1の認証コードを用いた前記所定の演算により第2の検証用レスポンス値を生成する第2の演算部と、前記復号部により生成された前記第1の検証用レスポンス値と前記第2の演算部により生成された前記第2の検証用レスポンス値とが等しいか否かを判定する判定部と、前記判定部により前記第1の検証用レスポンス値と前記第2の検証用レスポンス値とが等しいと判定された場合、認証に成功したことを示す認証結果を前記端末へ送信し、前記判定部により前記第1の検証用レスポンス値と前記第2の検証用レスポンス値とが等しくないと判定された場合、認証に失敗したことを示す認証結果を前記端末へ送信する結果送信部と、を備える認証システム。前記サーバは、第1のサーバ及び第2のサーバで構成され、前記第1のサーバは、前記IDに関連付けて、予め前記第1の認証コードを記憶する第1の記憶部と、前記乱数生成部と、前記乱数送信部と、前記ID及び前記第1の検証用レスポンス値を受信したことに応じて、当該IDに関連付けられている前記第1の認証コードを前記第1の記憶部から抽出する第1の認証コード抽出部と、前記第2の演算部と、前記判定部と、前記結果送信部と、を備え、前記第2のサーバは、前記IDに関連付けて、予め前記第2の認証コードを記憶する第2の記憶部と、前記端末から前記ID及び前記暗号化レスポンス値を受信したことに応じて、当該IDに関連付けられている前記第2の認証コードを前記第2の記憶部から抽出する第2の認証コード抽出部と、前記復号部と、前記復号部により生成された前記第1の検証用レスポンス値を、前記IDと共に前記第1のサーバへ通知する通知部と、を備える請求項1に記載の認証システム。前記第2の認証コードは、複数設けられており、前記暗号化部は、前記複数設けられている第2の認証コードを所定の順序で用いて暗号化処理を繰り返し実行し、前記復号部は、前記複数設けられている第2の認証コードを前記所定の順序の逆順で用いて復号処理を繰り返し実行する請求項1又は請求項2に記載の認証システム。繰り返し実行される前記暗号化処理は、それぞれ異なる暗号化アルゴリズムが用いられる請求項3に記載の認証システム。端末からの要求に応じてサーバが前記端末のユーザを認証する認証方法であって、前記サーバは、前記端末のユーザを識別するIDに関連付けて、予め第1の認証コード及び第2の認証コードを記憶する記憶部を備え、前記端末が、前記サーバに対して認証要求を送信する認証要求ステップと、前記サーバが、前記端末から前記認証要求を受信したことに応じて、乱数を生成する乱数生成ステップと、前記サーバが、前記乱数を前記端末へ送信する乱数送信ステップと、前記端末が、前記乱数を受信する乱数受信ステップと、前記端末が、前記乱数に対して、前記第1の認証コードを用いた所定の演算によりレスポンス値を生成する第1の演算ステップと、前記端末が、前記レスポンス値に対して、前記第2の認証コードを用いた暗号化処理により暗号化レスポンス値を生成する暗号化ステップと、前記端末が、前記暗号化レスポンス値を、前記IDと共に、前記サーバへ送信するレスポンス送信ステップと、前記サーバが、前記端末から前記ID及び前記暗号化レスポンス値を受信したことに応じて、当該IDに関連付けられている前記第1の認証コード及び前記第2の認証コードを前記記憶部から抽出する認証コード抽出ステップと、前記サーバが、前記暗号化レスポンス値に対して、前記第2の認証コードを用いた復号処理により第1の検証用レスポンス値を生成する復号ステップと、前記サーバが、前記乱数に対して、前記第1の認証コードを用いた前記所定の演算により第2の検証用レスポンス値を生成する第2の演算ステップと、前記サーバが、前記復号ステップにおいて生成された前記第1の検証用レスポンス値と前記第2の演算ステップにおいて生成された前記第2の検証用レスポンス値とが等しいか否かを判定する判定ステップと、前記サーバが、前記判定ステップにおいて前記第1の検証用レスポンス値と前記第2の検証用レスポンス値とが等しいと判定された場合、認証に成功したことを示す認証結果を前記端末へ送信し、前記判定ステップにおいて前記第1の検証用レスポンス値と前記第2の検証用レスポンス値とが等しくないと判定された場合、認証に失敗したことを示す認証結果を前記端末へ送信する結果送信ステップと、前記端末が、前記サーバから認証結果を受信する結果受信ステップと、を含む認証方法。端末からの要求に応じてサーバに前記端末のユーザを認証させるための認証プログラムであって、前記サーバは、前記端末のユーザを識別するIDに関連付けて、予め第1の認証コード及び第2の認証コードを記憶する記憶部を備え、前記端末が、前記サーバに対して認証要求を送信する認証要求ステップと、前記サーバが、前記端末から前記認証要求を受信したことに応じて、乱数を生成する乱数生成ステップと、前記サーバが、前記乱数を前記端末へ送信する乱数送信ステップと、前記端末が、前記乱数を受信する乱数受信ステップと、前記端末が、前記乱数に対して、前記第1の認証コードを用いた所定の演算によりレスポンス値を生成する第1の演算ステップと、前記端末が、前記レスポンス値に対して、前記第2の認証コードを用いた暗号化処理により暗号化レスポンス値を生成する暗号化ステップと、前記端末が、前記暗号化レスポンス値を、前記IDと共に、前記サーバへ送信するレスポンス送信ステップと、前記サーバが、前記端末から前記ID及び前記暗号化レスポンス値を受信したことに応じて、当該IDに関連付けられている前記第1の認証コード及び前記第2の認証コードを前記記憶部から抽出する認証コード抽出ステップと、前記サーバが、前記暗号化レスポンス値に対して、前記第2の認証コードを用いた復号処理により第1の検証用レスポンス値を生成する復号ステップと、前記サーバが、前記乱数に対して、前記第1の認証コードを用いた前記所定の演算により第2の検証用レスポンス値を生成する第2の演算ステップと、前記サーバが、前記復号ステップにおいて生成された前記第1の検証用レスポンス値と前記第2の演算ステップにおいて生成された前記第2の検証用レスポンス値とが等しいか否かを判定する判定ステップと、前記サーバが、前記判定ステップにおいて前記第1の検証用レスポンス値と前記第2の検証用レスポンス値とが等しいと判定された場合、認証に成功したことを示す認証結果を前記端末へ送信し、前記判定ステップにおいて前記第1の検証用レスポンス値と前記第2の検証用レスポンス値とが等しくないと判定された場合、認証に失敗したことを示す認証結果を前記端末へ送信する結果送信ステップと、前記端末が、前記サーバから認証結果を受信する結果受信ステップと、を実行させるための認証プログラム。ところで、通信サービスにおける上述の認証プロセスでは、ユーザ又は端末等に対応する1つの認証コード例えば、パスワード、生体情報、端末情報等の正当性を認証する。したがって、さらに安全性を高めるために複数の認証コードによる認証を行う場合、認証プロセスを複数回行う必要がある。しかしながら、通信機器は、通常、1回の認証プロセスのみに対応しているため、複数回の認証プロセスを行うプロトコルを組み込むためには、認証サーバの設置の他に通信機器の大幅な改修が必要となり、コストが増大する。そこで、通信機器の改修を行わないためには、例えば、ユーザ認証と生体認証、又はユーザ認証と端末認証等、2種類の認証を行う場合、認証サーバは、一方の認証でユーザをログインさせた後、改めて他方の認証を行う。しかしながら、この場合、認証サーバは、2種類の認証が完了する前に、少なくとも一方のログインを認めているので、一方の認証を通過した時点で攻撃を許してしまうこととなり、セキュリティ強度が十分でなかった。本発明は、設備コストの増大を抑制し、かつ、安全性を高められる認証システム、認証方法及び認証プログラムを提供することを目的とする。本発明では、以下のような解決手段を提供する。1端末からの要求に応じてサーバが前記端末のユーザを認証する認証システムであって、前記端末は、前記サーバに対して認証要求を送信する認証要求部と、前記認証要求に応じて前記サーバから送信される乱数を受信する乱数受信部と、前記乱数に対して、第1の認証コードを用いた所定の演算によりレスポンス値を生成する第1の演算部と、前記レスポンス値に対して、第2の認証コードを用いた暗号化処理により暗号化レスポンス値を生成する暗号化部と、前記暗号化レスポンス値を、前記端末のユーザを識別するIDと共に、前記サーバへ送信するレスポンス送信部と、前記サーバから、前記暗号化レスポンス値に基づく認証結果を受信する結果受信部と、を備え、前記サーバは、前記IDに関連付けて、予め前記第1の認証コード及び前記第2の認証コードを記憶する記憶部と、前記端末から前記認証要求を受信したことに応じて、前記乱数を生成する乱数生成部と、前記乱数を前記端末へ送信する乱数送信部と、前記端末から前記ID及び前記暗号化レスポンス値を受信したことに応じて、当該IDに関連付けられている前記第1の認証コード及び前記第2の認証コードを前記記憶部から抽出する認証コード抽出部と、前記暗号化レスポンス値に対して、前記第2の認証コードを用いた復号処理により第1の検証用レスポンス値を生成する復号部と、前記乱数に対して、前記第1の認証コードを用いた前記所定の演算により第2の検証用レスポンス値を生成する第2の演算部と、前記復号部により生成された前記第1の検証用レスポンス値と前記第2の演算部により生成された前記第2の検証用レスポンス値とが等しいか否かを判定する判定部と、前記判定部により前記第1の検証用レスポンス値と前記第2の検証用レスポンス値とが等しいと判定された場合、認証に成功したことを示す認証結果を前記端末へ送信し、前記判定部により前記第1の検証用レスポンス値と前記第2の検証用レスポンス値とが等しくないと判定された場合、認証に失敗したことを示す認証結果を前記端末へ送信する結果送信部と、を備える認証システム。このような構成によれば、複数の認証コードのいずれか1つでも違っていれば認証は成功しないので、たとえ、認証コードのいずれかが漏洩したとしても、全てが漏洩したのでなければ、認証システムは、不正認証を防止できる。このとき、認証システムは、第1の認証コード及び第2の認証コードを1回の認証プロセス内で使用し、複数の認証を同一のレイヤで同時に行うので、認証の時間差は生じず、セキュリティ強度の差が生じない。この結果、認証システムは、単一の認証に比べて、より安全に通信サービスを提供できる。また、暗号化レスポンス値は、ビット列であり、従来の認証プロセスにおけるレスポンスと見かけ上は相違しないので、送受信されるデータパケットは、既存の認証プロトコルと同様に扱うことができる。したがって、認証システムは、通信機器の改修を必要とせず、設備コストの増大を抑制できる。2前記サーバは、第1のサーバ及び第2のサーバプロキシサーバで構成され、前記第1のサーバは、前記IDに関連付けて、予め前記第1の認証コードを記憶する第1の記憶部と、前記乱数生成部と、前記乱数送信部と、前記ID及び前記第1の検証用レスポンス値を受信したことに応じて、当該IDに関連付けられている前記第1の認証コードを前記第1の記憶部から抽出する第1の認証コード抽出部と、前記第2の演算部と、前記判定部と、前記結果送信部と、を備え、前記第2のサーバは、前記IDに関連付けて、予め前記第2の認証コードを記憶する第2の記憶部と、前記端末から前記ID及び前記暗号化レスポンス値を受信したことに応じて、当該IDに関連付けられている前記第2の認証コードを前記第2の記憶部から抽出する第2の認証コード抽出部と、前記復号部と、前記復号部により生成された前記第1の検証用レスポンス値を、前記IDと共に前記第1のサーバへ通知する通知部と、を備える1に記載の認証システム。このような構成によれば、認証システムにおける認証サーバの入出力データ及び機能は、従来の認証プロセスに用いられるものと同等である。したがって、認証システムは、従来の認証サーバの改修を抑えられる。3前記第2の認証コードは、複数設けられており、前記暗号化部は、前記複数設けられている第2の認証コードを所定の順序で用いて暗号化処理を繰り返し実行し、前記復号部は、前記複数設けられている第2の認証コードを前記所定の順序の逆順で用いて復号処理を繰り返し実行する1又は2に記載の認証システム。このような構成によれば、認証システムは、同時に認証できる認証コードの数を2種類に限定せず、3種類以上の認証コードに対応できるので、安全性を高められる。4繰り返し実行される前記暗号化処理は、それぞれ異なる暗号化アルゴリズムが用いられる3に記載の認証システム。このような構成によれば、認証システムは、複数の認証コードのそれぞれに対応して、それぞれ異なる暗号化アルゴリズムを採用して、安全性をさらに高めることができる。5端末からの要求に応じてサーバが前記端末のユーザを認証する認証方法であって、前記サーバは、前記端末のユーザを識別するIDに関連付けて、予め第1の認証コード及び第2の認証コードを記憶する記憶部を備え、前記端末が、前記サーバに対して認証要求を送信する認証要求ステップと、前記サーバが、前記端末から前記認証要求を受信したことに応じて、乱数を生成する乱数生成ステップと、前記サーバが、前記乱数を前記端末へ送信する乱数送信ステップと、前記端末が、前記乱数を受信する乱数受信ステップと、前記端末が、前記乱数に対して、前記第1の認証コードを用いた所定の演算によりレスポンス値を生成する第1の演算ステップと、前記端末が、前記レスポンス値に対して、前記第2の認証コードを用いた暗号化処理により暗号化レスポンス値を生成する暗号化ステップと、前記端末が、前記暗号化レスポンス値を、前記IDと共に、前記サーバへ送信するレスポンス送信ステップと、前記サーバが、前記端末から前記ID及び前記暗号化レスポンス値を受信したことに応じて、当該IDに関連付けられている前記第1の認証コード及び前記第2の認証コードを前記記憶部から抽出する認証コード抽出ステップと、前記サーバが、前記暗号化レスポンス値に対して、前記第2の認証コードを用いた復号処理により第1の検証用レスポンス値を生成する復号ステップと、前記サーバが、前記乱数に対して、前記第1の認証コードを用いた前記所定の演算により第2の検証用レスポンス値を生成する第2の演算ステップと、前記サーバが、前記復号ステップにおいて生成された前記第1の検証用レスポンス値と前記第2の演算ステップにおいて生成された前記第2の検証用レスポンス値とが等しいか否かを判定する判定ステップと、前記サーバが、前記判定ステップにおいて前記第1の検証用レスポンス値と前記第2の検証用レスポンス値とが等しいと判定された場合、認証に成功したことを示す認証結果を前記端末へ送信し、前記判定ステップにおいて前記第1の検証用レスポンス値と前記第2の検証用レスポンス値とが等しくないと判定された場合、認証に失敗したことを示す認証結果を前記端末へ送信する結果送信ステップと、前記端末が、前記サーバから認証結果を受信する結果受信ステップと、を含む認証方法。このような構成によれば、認証方法を認証システムが実行することにより、1と同様の効果が期待できる。6端末からの要求に応じてサーバに前記端末のユーザを認証させるための認証プログラムであって、前記サーバは、前記端末のユーザを識別するIDに関連付けて、予め第1の認証コード及び第2の認証コードを記憶する記憶部を備え、前記端末が、前記サーバに対して認証要求を送信する認証要求ステップと、前記サーバが、前記端末から前記認証要求を受信したことに応じて、乱数を生成する乱数生成ステップと、前記サーバが、前記乱数を前記端末へ送信する乱数送信ステップと、前記端末が、前記乱数を受信する乱数受信ステップと、前記端末が、前記乱数に対して、前記第1の認証コードを用いた所定の演算によりレスポンス値を生成する第1の演算ステップと、前記端末が、前記レスポンス値に対して、前記第2の認証コードを用いた暗号化処理により暗号化レスポンス値を生成する暗号化ステップと、前記端末が、前記暗号化レスポンス値を、前記IDと共に、前記サーバへ送信するレスポンス送信ステップと、前記サーバが、前記端末から前記ID及び前記暗号化レスポンス値を受信したことに応じて、当該IDに関連付けられている前記第1の認証コード及び前記第2の認証コードを前記記憶部から抽出する認証コード抽出ステップと、前記サーバが、前記暗号化レスポンス値に対して、前記第2の認証コードを用いた復号処理により第1の検証用レスポンス値を生成する復号ステップと、前記サーバが、前記乱数に対して、前記第1の認証コードを用いた前記所定の演算により第2の検証用レスポンス値を生成する第2の演算ステップと、前記サーバが、前記復号ステップにおいて生成された前記第1の検証用レスポンス値と前記第2の演算ステップにおいて生成された前記第2の検証用レスポンス値とが等しいか否かを判定する判定ステップと、前記サーバが、前記判定ステップにおいて前記第1の検証用レスポンス値と前記第2の検証用レスポンス値とが等しいと判定された場合、認証に成功したことを示す認証結果を前記端末へ送信し、前記判定ステップにおいて前記第1の検証用レスポンス値と前記第2の検証用レスポンス値とが等しくないと判定された場合、認証に失敗したことを示す認証結果を前記端末へ送信する結果送信ステップと、前記端末が、前記サーバから認証結果を受信する結果受信ステップと、を実行させるための認証プログラム。このような構成によれば、認証プログラムを認証システムに実行させることにより、1と同様の効果が期待できる。本発明によれば、認証システムにおける設備コストの増大を抑制し、かつ、安全性を高められる。<第1実施形態>以下、本発明の第1実施形態について説明する。本実施形態に係る認証システム1は、ユーザ端末10からの要求に応じて、認証サーバ20がユーザ端末10のユーザを認証するシステムである。図1は、本実施形態に係る認証システム1が有するユーザ端末10端末及び認証サーバ20サーバの機能構成を示すブロック図である。ユーザ端末10は、制御部11と、記憶部12と、通信部13とを備え、さらに、図示しないが、情報処理装置として動作するために、操作部及び表示部等、各種ハードウェアを備えている。制御部11は、ユーザ端末10の全体を制御する部分であり、記憶部12に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各種機能を実現している。制御部11は、CPUCentralProcessingUnitであってよい。なお、制御部11が備える各部の機能は後述する。記憶部12は、ハードウェア群をユーザ端末10として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクHDDであってよい。具体的には、記憶部12には、本実施形態の各種機能を制御部11に実行させるプログラムを記憶し、さらに、ユーザ端末10のユーザを識別するためのユーザ識別情報ID、及び複数の認証コードW1、W2、を互いに関連付けて記憶してもよい。通信部13は、ネットワークを介して所定のプロトコルにより、外部装置とデータ通信を行うネットワークアダプタである。通信部13は、認証サーバ20との間で通信を確立し、データを送受信する。また、制御部11は、認証要求部111と、乱数受信部112と、ハッシュ演算部113第1の演算部と、暗号化部114と、レスポンス送信部115と、結果受信部116とを備える。認証要求部111は、通信サービスを開始したいユーザからの指示入力に応じて、認証サーバ20に対してユーザ識別情報IDの認証要求を送信する。乱数受信部112は、認証要求に応じて認証サーバから送信される乱数Rを受信する。この乱数Rは、CHAPにおけるチャレンジに相当するデータである。ハッシュ演算部113は、乱数受信部112により受信した乱数Rに対して、第1の認証コードW1を用いた所定の演算によりレスポンス値Resを生成する。具体的には、ハッシュ演算部113は、一方向性ハッシュ関数に第1の認証コードW1と乱数Rとを入力し、レスポンス値Res:=HashW1,Rを生成する。ここで、2つの変数が入力される一方向性ハッシュ関数としては、鍵付きハッシュ関数が利用できる。また、入力が1変数である一方向性ハッシュ関数に対して、2つの変数を連接して入力することにより、2つの変数が入力される一方向性ハッシュ関数として代用できる。暗号化部114は、レスポンス値Resに対して、第2の認証コードW2を用いた暗号化処理により暗号化レスポンス値ER:=EncW2,Resを生成する。また、第2の認証コードは、複数設けられてもよい。この場合、暗号化部114は、複数設けられている第2の認証コードW2、W3、を所定の順序で用いて暗号化処理を繰り返し実行する。すなわち、暗号化部114は、前の認証コード例えば、W2に基づく暗号化処理によって得られた暗号化レスポンス値ERと、次の認証コード例えば、W3とを、次の暗号化関数の変数として入力するER:=EncW3,ER。このとき、複数回繰り返し実行される暗号化処理は、それぞれ異なる暗号化アルゴリズムが用いられてもよい。レスポンス送信部115は、暗号化レスポンス値ERを、ユーザ識別情報IDと共に、認証サーバ20へ送信する。結果受信部116は、認証サーバ20から、暗号化レスポンス値ERに基づく認証結果として、Ackacknowledgement又はNaknon-acknowledgementを受信する。なお、上述のユーザ識別情報ID、並びに第1の認証コードW1及び第2の認証コードW2、W3、は、操作部を介してユーザから入力されてもよいし、予め記憶部12に記憶されていてもよい。認証サーバ20は、制御部21と、記憶部22と、通信部23とを備え、さらに、図示しないが、情報処理装置として動作するために、操作部及び表示部等、各種ハードウェアを備えている。制御部21は、認証サーバ20の全体を制御する部分であり、記憶部22に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各種機能を実現している。制御部21は、CPUであってよい。なお、制御部21が備える各部の機能は後述する。記憶部22は、ハードウェア群を認証サーバ20として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクHDDであってよい。具体的には、記憶部22には、本実施形態の各種機能を制御部21に実行させるプログラムの他、ユーザ識別情報ID及び複数の認証コードW1、W2、を互いに関連付けたユーザ情報テーブル221を記憶する。通信部23は、ネットワークを介して所定のプロトコルにより、外部装置とデータ通信を行うネットワークアダプタである。通信部23は、ユーザ端末10との間で通信を確立し、データを送受信する。また、制御部21は、乱数生成部211と、乱数送信部212と、認証コード抽出部213と、復号部214と、ハッシュ演算部215第2の演算部と、判定部216と、結果送信部217とを備える。乱数生成部211は、ユーザ端末10から認証要求を受信したことに応じて、チャレンジ用の乱数Rを生成する。乱数送信部212は、乱数生成部211により生成された乱数Rを、ユーザ端末10へ送信する。認証コード抽出部213は、ユーザ端末10からユーザ識別情報ID及び暗号化レスポンス値ERを受信したことに応じて、このユーザ識別情報IDに関連付けられている第1の認証コードW1及び第2の認証コードW2、W3、をユーザ情報テーブル221から抽出する。復号部214は、暗号化レスポンス値ERに対して、第2の認証コードW2を用いた復号処理により第1の検証用レスポンス値C:=DecW2,ERを生成する。また、復号部214は、第2の認証コードが複数設けられている場合、これら第2の認証コードW2、W3、を暗号化部114とは逆順で用いて復号処理を繰り返し実行する。ハッシュ演算部215は、乱数生成部211により生成された乱数Rに対して、第1の認証コードW1を用いた一方向性ハッシュ関数演算により第2の検証用レスポンス値Res’:=HashW1,Rを生成する。なお、この一方向性ハッシュ関数は、ユーザ端末10のハッシュ演算部113が用いるものと同一である。判定部216は、復号部214により生成された第1の検証用レスポンス値Cとハッシュ演算部215により生成された第2の検証用レスポンス値Res’とが等しいか否かを判定する。結果送信部217は、判定部216により第1の検証用レスポンス値Cと第2の検証用レスポンス値Res’とが等しいと判定された場合、認証に成功したことを示す認証結果Ackをユーザ端末10へ送信する。一方、判定部216により第1の検証用レスポンス値Cと第2の検証用レスポンス値Res’とが等しくないと判定された場合、認証に失敗したことを示す認証結果Nakをユーザ端末10へ送信する。図2は、本実施形態に係る認証方法を示すシーケンス図である。ステップS1において、ユーザ端末10は、認証要求を認証サーバ20へ送信する。ステップS2において、認証サーバ20は、ステップS1で認証要求を受信したことに応じて、チャレンジ用の乱数Rを生成する。ステップS3において、認証サーバ20は、ステップS2で生成された乱数Rを、ユーザ端末10へ送信する。ステップS4において、ユーザ端末10は、ステップS3で受信した乱数Rと第1の認証コードW1とを用いて、一方向性ハッシュ関数演算によりレスポンス値Resを生成する。ステップS5において、ユーザ端末10は、ステップS4で生成されたレスポンス値Resを、第2の認証コードW2、W3、により暗号化し、暗号化レスポンス値ERを生成する。ステップS6において、ユーザ端末10は、ステップS5で生成された暗号化レスポンス値ERと、ユーザ識別情報IDとを、認証サーバ20へ送信する。ステップS7において、認証サーバ20は、ステップS6で受信したユーザ識別情報IDに関連付けられている第1の認証コードW1及び第2の認証コードW2、W3、を、ユーザ情報テーブル221から抽出する。ステップS8において、認証サーバ20は、ステップS6で受信された暗号化レスポンス値ERを、ステップS7で抽出された第2の認証コードW2、W3、を逆順に用いて復号し、第1の検証用レスポンス値Cを生成する。ステップS9において、認証サーバ20は、ステップS2で生成された乱数Rと、ステップS7で抽出された第1の認証コードW1とを用いて、一方向性ハッシュ関数演算により第2の検証用レスポンス値Res’を生成する。ステップS10において、認証サーバ20は、ステップS8で生成された第1の検証用レスポンス値Cと、ステップS9で生成された第2の検証用レスポンス値Res’とを比較する。そして、認証サーバ20は、両者が同一であれば正規ユーザと判断してAckを出力し、相違すれば不正ユーザと判断してNakを出力する。ステップS11において、認証サーバ20は、ステップS10で出力された認証結果Ack又はNakを、ユーザ端末10へ送信する。本認証方法では、ユーザ端末10は、認証リクエストに応じて認証サーバ20からCHAPのチャレンジに相当する乱数を受信し、認証サーバ20へCHAPのレスポンスに相当する暗号化レスポンス値を送信すると、認証サーバ20から認証結果が通知される。以上のように、本実施形態によれば、複数の認証コードのいずれか1つでも違っていれば認証は成功しないので、たとえ、認証コードのいずれかが漏洩したとしても、全てが漏洩したのでなければ、認証システム1は、不正認証を防止できる。このとき、認証システム1は、第1の認証コード及び第2の認証コードを1回の認証プロセス内で使用し、複数の認証を同一のレイヤで同時に行うので、認証の時間差は生じず、セキュリティ強度の差が生じない。この結果、認証システム1は、単一の認証に比べて、より安全に通信サービスを提供できる。また、暗号化レスポンス値は、ビット列であり、CHAPのレスポンスと見かけ上は相違しないので、送受信されるデータパケットは、既存の認証プロトコルと同様に扱うことができる。したがって、認証システム1は、通信機器の改修を必要とせず、設備コストの増大を抑制できる。また、認証システム1は、同時に認証できる認証コードの数を2種類に限定せず、3種類以上の認証コードに対応できるので、安全性を高められる。さらに、認証システム1は、各認証コードに対応して、それぞれ異なる暗号化アルゴリズムを採用して、安全性をさらに高めることができる。<第2実施形態>以下、本発明の第2実施形態について説明する。本実施形態は、第1実施形態の認証サーバ20の機能を、認証サーバ20a第1のサーバ及びプロキシサーバ30第2のサーバに分散する構成である。なお、第1実施形態と同様の構成に対しては、同一の符号を付し、説明を省略又は簡略化する。図3は、本実施形態に係る認証システム1aが有するユーザ端末10、認証サーバ20a及びプロキシサーバ30の機能構成を示すブロック図である。認証サーバ20は、第1実施形態と比べて、制御部21aの認証コード抽出部213aの機能が異なり、復号部214を備えていない。また、記憶部22a第1の記憶部のユーザ情報テーブル221aの内容が異なる。ユーザ情報テーブル221aは、ユーザ識別情報ID及び第1の認証コードW1を互いに関連付けて記憶する。認証コード抽出部213aは、プロキシサーバ30からユーザ識別情報ID及び第1の検証用レスポンス値Cを受信したことに応じて、このIDに関連付けられている第1の認証コードW1をユーザ情報テーブル221aから抽出する。プロキシサーバ30は、認証サーバ20aと同様に、少なくとも、制御部31と、記憶部32第2の記憶部と、通信部33とを備える。制御部31は、プロキシサーバ30の全体を制御する部分であり、記憶部32に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各種機能を実現している。制御部31は、CPUであってよい。なお、制御部31が備える各部の機能は後述する。記憶部32は、ハードウェア群をプロキシサーバ30として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクHDDであってよい。具体的には、記憶部32には、本実施形態の各種機能を制御部31に実行させるプログラムの他、ユーザ識別情報ID及び第2の認証コードW2、W3、を互いに関連付けたユーザ情報テーブル321を記憶する。通信部33は、ネットワークを介して所定のプロトコルにより、外部装置とデータ通信を行うネットワークアダプタである。通信部33は、ユーザ端末10及び認証サーバ20aとの間で通信を確立し、データを送受信する。また、制御部31は、認証コード抽出部311と、復号部312と、通知部313とを備える。認証コード抽出部311は、ユーザ端末10からユーザ識別情報ID及び暗号化レスポンス値ERを受信したことに応じて、このユーザ識別情報IDに関連付けられている第2の認証コードW2、W3、をユーザ情報テーブル321から抽出する。復号部312は、第1実施形態の復号部214と同一の機能を有し、暗号化レスポンス値ERに対して、第2の認証コードW2を用いた復号処理により第1の検証用レスポンス値C:=DecW2,ERを生成する。また、復号部312は、復号部214と同様に、第2の認証コードが複数設けられている場合、これら第2の認証コードW2、W3、を暗号化部114とは逆順で用いて復号処理を繰り返し実行する。通知部313は、復号部312により生成された第1の検証用レスポンス値Cを、ユーザ識別情報IDと共に認証サーバ20aへ通知する。図4は、本実施形態に係る認証方法を示すシーケンス図である。ステップS1a及びステップS1bにおいて、ユーザ端末10は、認証要求を、プロキシサーバ30を介して認証サーバ20aへ送信する。ステップS2において、認証サーバ20aは、ステップS1bで認証要求を受信したことに応じて、チャレンジ用の乱数Rを生成する。ステップS3a及びステップS3bにおいて、認証サーバ20は、ステップS2で生成された乱数Rを、プロキシサーバ30を介してユーザ端末10へ送信する。ステップS4において、ユーザ端末10は、ステップS3bで受信した乱数Rと第1の認証コードW1とを用いて、一方向性ハッシュ関数演算によりレスポンス値Resを生成する。ステップS5において、ユーザ端末10は、ステップS4で生成されたレスポンス値Resを、第2の認証コードW2、W3、により暗号化し、暗号化レスポンス値ERを生成する。ステップS6aにおいて、ユーザ端末10は、ステップS5で生成された暗号化レスポンス値ERと、ユーザ識別情報IDとを、プロキシサーバ30へ送信する。ステップS7aにおいて、認証サーバ20aは、ステップS6aで受信したユーザ識別情報IDに関連付けられている第2の認証コードW2、W3、を、ユーザ情報テーブル321から抽出する。ステップS8において、プロキシサーバ30は、ステップS6aで受信された暗号化レスポンス値ERを、ステップS7aで抽出された第2の認証コードW2、W3、を逆順に用いて復号し、第1の検証用レスポンス値Cを生成する。ステップS6bにおいて、プロキシサーバ30は、ステップS8で生成された第1の検証用レスポンス値Cと、ユーザ識別情報IDとを、認証サーバ20aへ送信する。ステップS7bにおいて、認証サーバ20aは、ステップS6bで受信したユーザ識別情報IDに関連付けられている第1の認証コードW1を、ユーザ情報テーブル221から抽出する。ステップS9において、認証サーバ20aは、ステップS2で生成された乱数Rと、ステップS7bで抽出された第1の認証コードW1とを用いて、一方向性ハッシュ関数演算により第2の検証用レスポンス値Res’を生成する。ステップS10において、認証サーバ20aは、ステップS6bで受信された第1の検証用レスポンス値Cと、ステップS9で生成された第2の検証用レスポンス値Res’とを比較する。そして、認証サーバ20aは、両者が同一であれば正規ユーザと判断してAckを出力し、相違すれば不正ユーザと判断してNakを出力する。ステップS11a及びステップS11bにおいて、認証サーバ20aは、ステップS10で出力された認証結果Ack又はNakを、プロキシサーバ30を介してユーザ端末10へ送信する。本認証方法では、プロキシサーバ30で暗号化レスポンス値が復号された後、この復号された第1の検証用レスポンス値が認証サーバ20aへ提供され、認証サーバ20aで第2の検証用レスポンス値と比較される。本実施形態によれば、認証サーバ20aの入出力データ及び機能は、従来のCHAPと同等である。したがって、認証システム1aでは、第1実施形態と同様の効果が得られると共に、従来の認証サーバの改修を抑えられる。以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。前述の認証システム1又は認証システム1aは、通信サービスを提供する際の認証の形態の一例であり、ユーザ端末10は、サーバ装置、PCPersonalComputer又は携帯端末等、様々な情報処理装置コンピュータであってよく、認証サーバ20についても、同様に、様々な情報処理装置コンピュータであってよい。そして、前述の各機能は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、上記情報処理装置にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してコンピュータにダウンロードされることにより配布されてもよい。"