(57)【要約】【課題】ハッシュ値の衝突の回避の向上を図りつつ、ハッシュ値からの原像の取得の困難化を促進し得る、認証システム、認証装置、端末装置、認証方法、及びプログラムを提供する。【解決手段】認証システム１は、認証装置１０と、端末装置３０とを備えている。認証装置１０は、端末装置３０からの認証要求を受信すると、予め設定された２以上の固定値を含むチャレンジコードを端末装置３０に送信する。端末装置３０は、認証装置１０からチャレンジコードを受信すると、２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出し、算出した各ハッシュ値を含むレスポンスを作成する。また、端末装置は、このようにして作成した各ハッシュ値を含むレスポンスを認証装置１０に送信する。【選択図】図１
2011135464.tif 000002
【特許請求の範囲】
【請求項１】
認証装置と、端末装置とを備えた認証システムであって、
前記認証装置は、前記端末装置からの認証要求を受信すると、予め設定された２以上の固定値を含むチャレンジコードを前記端末装置に送信し、
前記端末装置は、前記認証装置から前記チャレンジコードを受信すると、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出し、算出した各ハッシュ値を含むレスポンスを作成し、作成した前記レスポンスを前記認証装置に送信する、ことを特徴とする認証システム。
【請求項２】
前記認証装置は、前記端末装置によって送信された前記レスポンスを受信した場合に、前記レスポンスに含まれる各ハッシュ値と、予め前記認証装置に保持されているハッシュ値とを比較し、前記レスポンスに含まれる全てのハッシュ値が、前記保持されているハッシュ値と一致している場合にのみ、前記端末装置に対して許可を与える、請求項１に記載の認証システム。
【請求項３】
前記端末装置が、前記２以上の固定値それぞれ毎に、当該固定値と外部から入力された情報とを用いて中間情報を作成し、作成した前記中間情報毎にハッシュ化を行ってハッシュ値を算出する、請求項１または２に記載の認証システム。
【請求項４】
前記端末装置が、前記ハッシュ値毎に乱数を作成し、作成した前記乱数を、対応するハッシュ値に付加し、そして、前記乱数が付加されたハッシュ値を用いて前記レスポンスを作成する、請求項１〜３のいずれかに記載の認証システム。
【請求項５】
前記認証装置が、公開鍵を更に含む前記チャレンジコードを前記端末装置に送信し、
前記端末装置が、前記公開鍵を用いて、前記各ハッシュ値を暗号化し、暗号化された前記各ハッシュ値を含むレスポンスを作成する、請求項１〜４のいずれかに記載の認証システム。
【請求項６】
端末装置からの認証要求に応じて認証を行う認証装置であって、
前記端末装置からの認証要求を受信した場合に、予め設定された２以上の固定値を含むチャレンジコードを作成する、チャレンジコード作成部と、
前記チャレンジコードを前記端末装置に送信する、チャレンジコード送信部と、
を備えていることを特徴とする認証装置。
【請求項７】
認証装置に対して認証要求を行う端末装置であって、
前記認証装置が、予め設定された２以上の固定値を含むチャレンジコードを当該端末装置に送信した場合に、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出する、ハッシュ化部と、
算出した各ハッシュ値を含むレスポンスを作成し、作成した前記レスポンスを前記認証装置に送信する、レスポンス作成部と、
を備えていることを特徴とする端末装置。
【請求項８】
（ａ）認証要求がなされた場合に、認証側で、予め設定された２以上の固定値を含むチャレンジコードを作成し、作成した前記チャレンジコードを認証要求側に送信する、ステップと、
（ｂ）前記認証要求側において、前記チャレンジコードを受信した場合に、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出する、ステップと、
（ｃ）前記認証要求側において、前記（ｂ）のステップで算出した各ハッシュ値を含むレスポンスを作成し、作成した前記レスポンスを前記認証側に送信する、ステップと、を有
することを特徴とする認証方法。
【請求項９】
コンピュータによって、端末装置からの認証要求に応じた認証を行うためのプログラムであって、
前記コンピュータに、
（ａ）前記端末装置からの認証要求を受信した場合に、予め設定された２以上の固定値を含むチャレンジコードを作成する、ステップと、
（ｂ）前記チャレンジコードを前記端末装置に送信する、ステップと、
を実行させる、ことを特徴とするプログラム。
【請求項１０】
コンピュータによって、認証装置に対する認証要求を行うためのプログラムであって、前記コンピュータに、
（ａ）前記認証装置が、予め設定された２以上の固定値を含むチャレンジコードを前記コンピュータに送信した場合に、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出する、ステップと、
（ｂ）前記（ａ）のステップで算出した各ハッシュ値を含むレスポンスを作成し、作成した前記レスポンスを前記認証装置に送信する、ステップと、
を実行させる、ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、チャレンジ・レスポンス型の認証方式による認証を行う認証システム、それに用いられる認証装置及び端末装置、更には、認証方法、及びこれらを実現するためのプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータネットワークにおける機密性を確保するため、多くの場合において、チャレンジ・レスポンス型の認証方式が採用されている。一般に、チャレンジ・レスポンス型の認証方式では、先ず、認証を受けたいクライアント（端末装置）は、サーバに対して認証要求を送信する。次に、サーバは、「チャレンジコード」と呼ばれるランダムな数値列をクライアントに返信する。
【０００３】
続いて、クライアントは、ハッシュ関数を用いて、ユーザが入力したパスワード等の資格情報とチャレンジとから「レスポンス」を作成し、これをサーバに送る。次に、サーバは、チャレンジと予め登録されている資格情報とからレスポンスを作成し、これと送られてきたレスポンスとを比較する。そして、サーバは、二つのレスポンスが一致すると、クライアントに対して、システムへのアクセスを許可する旨の通知を送信する。
【０００４】
また、このようなチャレンジ・レスポンス型の認証方式は、ＣＨＡＰ（Challenge Handshake：認証プロトコル)、及びＮＴＬＭ認証等の種々の認証方式でも採用されている。更に、チャレンジ・レスポンス型の認証方式については、その応用も含めると、既に多くの標準化が行われている（ＲＦＣ１９９４、２０６０、２１９５、２６１７、２８３１、３２６１）。但し、従来からのチャレンジ・レスポンス型の認証方式には、以下の問題Ｐ１〜問題Ｐ３が存在する。
【０００５】
（Ｐ１）従来からのチャレンジ・レスポンス型の認証方式では、ハッシュ値の特定を難しくするために、クライアントと認証サーバとの間でチャレンジコードとそのレスポンスとが送受信されているが、その漏洩リスクの考慮が十分でないという問題がある。
【０００６】
（Ｐ２）また、チャレンジコード又はレスポンスが漏洩しても、ハッシュ値の解読が困難であれば大きな問題とならないが、従来からのチャレンジ・レスポンス型の認証方式では、計算機速度の向上によるハッシュ解読の危険性が高まっている。つまり、いわゆる「２０１０年問題」で指摘されているように、近年における計算機の演算速度の高速化により、暗号化又はハッシュ化されたデータが復号されてしまう危険性が増大している。
【０００７】
例えば、ＭＤ５（Message Digest Algorithm 5）のハッシュ値については、実際に、近年の計算機によって原像復元の実証実験に成功したことが報告されている。また、ＳＳＬ証明書を偽装できることも報告されている。更に、パスワードクラッキングが実在している。このような事実は、上記の危険性の増大を裏付けている。
【０００８】
（Ｐ３）上記問題Ｐ２の解決手段として、ハッシュ値からの一種の復号を一層困難にすることが検討され、ハッシュ鍵の鍵長を長くしたり、ハッシュ関数をより複雑にしたりといったことが提案されている。しかしながら、鍵長を長くしたり、ハッシュ関数を複雑化したりすると、その度に、認証システムを変更する必要があり、この結果、過去のデータとの互換性を確保することが難しくなるという新たな問題が発生してしまう。
【０００９】
上記の問題Ｐ２と問題Ｐ３とからわかるように、従来からのチャレンジ・レスポンス型
の認証方式は、計算機の計算速度とハッシュ関数との間において、終わりのない、いたちごっこを招いている。ここで、従来から提案されているチャレンジ・レスポンス型の認証方式について例を挙げて説明する（例えば、特許文献１〜特許文献２参照）。
【００１０】
特許文献１は、ハッシュ値生成装置を用いた認証方式を提案している。特許文献１に開示の認証方式について具体的に説明する。ユーザには、予め、ハッシュ値生成装置が配布されている。ハッシュ値生成装置は、ユーザの端末から、ユーザが入力したメッセージと、送信された固有値ｄとを受け取る。そして、サーバが、固有値ｄを含むチャレンジをユーザの端末に送信すると、ハッシュ値生成装置は、予め保持しているハッシュ関数生成固有値ｓ（サーバでも保持されている）と、固有値ｄとからハッシュ値生成固有値ｕを算出する。更に、ハッシュ値生成装置は、ハッシュ値生成固有値ｕとメッセージとでハッシュ値を生成する。生成されたハッシュ値は、レスポンスとして、ユーザの端末からサーバに送信される。
【００１１】
また、特許文献２は、クライアントにおいてパスワードを使わずに、クライアント・サーバ間で共有する固定の乱数情報と、オンデマンドでサーバが作成する乱数情報とを用いて認証を行う認証方式を提案している。
【００１２】
特許文献２に開示の認証方式について具体的に説明する。予め、サーバは、クライアントに対して、両者が共通して保持する固有乱数情報を配布する。そして、先ず、サーバは、認証の度にワンタイム情報（一時的な乱数情報）を生成し、更に、ワンタイム情報を元にしてチャレンジデータを生成し、これをクライアントに送信する。次に、クライアントは、ワンタイム情報に含まれる乱数情報と固有乱数情報とを用いて引数を算出し、これをハッシュ関数によって処理してハッシュ値を生成する。更に、クライアントは、ハッシュ値を含むレスポンスをサーバに送信する。
【００１３】
サーバは、クライアントとは別に、ワンタイム情報に含まれる乱数情報と固有乱数情報とを用いて引数を算出し、これをハッシュ関数によって処理してハッシュ値を生成する。そして、サーバは、生成したハッシュ値と、クライアントから送信されたレスポンスに含まれるハッシュ値とを比較し、一致する場合に認証を行う。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００１−０６６９８９号公報
【特許文献２】特開２００６−１８０２４５号広報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
上述の特許文献１に開示の認証方式では、第三者が原像を計算するためには、ハッシュ値生成装置で保持されているハッシュ関数生成固有値ｓと、ハッシュ値とを取得する必要がある。また、上述の特許文献２に開示の認証方式では、第三者は、原像を計算するためには、予めサーバとクライアントとが保持している乱数情報と、オンデマンドでサーバが作成する乱数情報とを取得する必要がある。従って、これらの認証方式では、問題Ｐ１で述べた漏洩リスクについては考慮されていると考えられる。
【００１６】
しかしながら、特許文献１に開示の認証方式においては、いずれかの一方の値のみ、又は事前に渡される固有値ｄのみが漏洩する場合がある。また、漏洩した値は、単独であっても、個々の有意性のため、解読の助けとなる。同様に、特許文献２に開示の認証方式においては、いずれかの乱数情報が漏洩しただけで、解読の助けになる。
【００１７】
このように、特許文献１及び特許文献２に開示されている認証方式を用いた場合であっても、上記の問題Ｐ１が解消されているとは言い難く、更に、計算機の処理能力の向上と共に増大する解読の危険性が存在することから、上記の問題Ｐ２の解決も困難である。
【００１８】
更に、この結果、計算機の処理能力の向上と共に増大する解読の危険性から逃れるためには、鍵長を長くしたり、ハッシュ値を複雑化したりする必要がある。そして、このような事が行われる度に、認証システムの変更が必要となる。結局のところ、特許文献１及び特許文献２に開示されている認証方式を用いても、過去のデータとの互換性が失われ、過去の資産を保持することが難しい、という上記問題Ｐ３の解決は困難である。
【００１９】
また、特に、特許文献１に開示の認証方式では、ハッシュ値生成装置を他人に取得された場合に、他人がユーザになりすますことができ、認証されてしまうという問題がある。特許文献１では、ハッシュ値生成装置を配布する際の安全性が考慮されておらず、ハッシュ値生成装置の盗難又は紛失等によって、それに含まれる情報が第三者に取得されると、第三者は簡単に原像を復元することができる。
【００２０】
本発明の目的は、上記問題を解消し、第三者による、漏洩した情報からの原像復元の可能性を低下させ、且つ、過去のデータとの互換性を保持し得る、認証システム、認証装置、端末装置、認証方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００２１】
上記目的を達成するため、本発明における認証システムは、認証装置と、端末装置とを備えた認証システムであって、
前記認証装置は、前記端末装置からの認証要求を受信すると、予め設定された２以上の固定値を含むチャレンジコードを前記端末装置に送信し、
前記端末装置は、前記認証装置から前記チャレンジコードを受信すると、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出し、算出した各ハッシュ値を含むレスポンスを作成し、作成した前記レスポンスを前記認証装置に送信する、ことを特徴とする。
【００２２】
上記目的を達成するため、本発明における認証装置は、端末装置からの認証要求に応じて認証を行う認証装置であって、
前記端末装置からの認証要求を受信した場合に、予め設定された２以上の固定値を含むチャレンジコードを作成する、チャレンジコード作成部と、
前記チャレンジコードを前記端末装置に送信する、チャレンジコード送信部と、
を備えていることを特徴とする。
【００２３】
上記目的を達成するため、本発明における端末装置は、認証装置に対して認証要求を行う端末装置であって、
前記認証装置が、予め設定された２以上の固定値を含むチャレンジコードを当該端末装置に送信した場合に、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出する、ハッシュ化部と、
算出した各ハッシュ値を含むレスポンスを作成し、作成した前記レスポンスを前記認証装置に送信する、レスポンス作成部と、
を備えていることを特徴とする。
【００２４】
また、上記目的を達成するため、本発明における認証方法は、
（ａ）認証要求がなされた場合に、認証側で、予め設定された２以上の固定値を含むチャレンジコードを作成し、作成した前記チャレンジコードを認証要求側に送信する、ステップと、
（ｂ）前記認証要求側において、前記チャレンジコードを受信した場合に、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出する、ステップと、
（ｃ）前記認証要求側において、前記（ｂ）のステップで算出した各ハッシュ値を含むレスポンスを作成し、作成した前記レスポンスを前記認証側に送信する、ステップと、を有することを特徴とする。
【００２５】
更に、上記目的を達成するため、本発明における第１のプログラムは、コンピュータによって、端末装置からの認証要求に応じた認証を行うためのプログラムであって、
前記コンピュータに、
（ａ）前記端末装置からの認証要求を受信した場合に、予め設定された２以上の固定値を含むチャレンジコードを作成する、ステップと、
（ｂ）前記チャレンジコードを前記端末装置に送信する、ステップと、
を実行させる、ことを特徴とする。
【００２６】
また、上記目的を達成するため、本発明における第２のプログラムは、コンピュータによって、認証装置に対する認証要求を行うためのプログラムであって、
前記コンピュータに、
（ａ）前記認証装置が、予め設定された２以上の固定値を含むチャレンジコードを前記コンピュータに送信した場合に、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出する、ステップと、
（ｂ）前記（ａ）のステップで算出した各ハッシュ値を含むレスポンスを作成し、作成した前記レスポンスを前記認証装置に送信する、ステップと、
を実行させる、ことを特徴とする。
【発明の効果】
【００２７】
以上の特徴により、本発明における、認証システム、認証装置、端末装置、認証方法、及びプログラムによれば、過去のデータとの互換性を保持しつつ、第三者からの攻撃による原像復元の可能性を低下させることができる。
【図面の簡単な説明】
【００２８】
【図１】図１は、本発明の実施の形態における認証システムの構成を示すブロック図である。
【図２】図２は、本発明の実施の形態における認証システムの動作を示すフロー図である。
【発明を実施するための形態】
【００２９】
（実施の形態１）
以下、本発明の実施の形態における、認証システム、認証装置、端末装置、認証方法、及びプログラムについて、図１及び図２を参照しながら説明する。最初に、本実施の形態における、認証システム、認証装置、及び端末装置の構成について図１を用いて説明する。図１は、本発明の実施の形態における認証システムの構成を示すブロック図である。
【００３０】
図１に示すように、本実施の形態における認証システム１は、チャレンジ・レスポンス型の認証方式を採用するシステムであって、認証装置１０と、端末装置３０とを備えている。図１においては、認証装置１０及び端末装置３０は、それぞれ、一つのみが例示されているが、本実施の形態において、認証装置１０及び端末装置３０の数は限定されず、２以上であっても良い。
【００３１】
認証システム１において、端末装置３０は、認証装置１０に対して認証要求を発行する。認証装置１０は、端末装置からの認証要求に応じて、認証を行い、対応するシステムへ
のアクセスを許可する場合は、許可する旨を端末装置３０に通知する。認証システム１における操作性は、背景技術の欄において述べたＣＨＡＰ又はＮＴＬＭを採用するシステムと同様である。
【００３２】
また、図１に示すように、認証装置１０は、チャレンジコード作成部１１と、チャレンジコード送信部１２とを備えている。チャレンジコード作成部１１は、端末装置３０からの認証要求を受信した場合に、予め設定された２以上の固定値を含むチャレンジコードを作成する。この２以上の固定値は、認証装置１０に固有の値である。このとき、固定値の数は、２以上であれば良く、特に限定されない。また、チャレンジコード送信部１２は、チャレンジコードを端末装置３０に送信する。
【００３３】
端末装置３０は、ハッシュ化部３４と、レスポンス作成部３７とを備えている。ハッシュ化部３４は、認証装置１０が２以上の固定値を含むチャレンジコードを端末装置３０に送信した場合に、固定値毎にハッシュ化を行ってハッシュ値を算出する。レスポンス作成部３７は、算出された各ハッシュ値を含むレスポンスを作成し、作成したレスポンスを認証装置１０に送信する。
【００３４】
このように、本実施の形態においては、特許文献１及び２に開示された認証システムと異なり、端末装置３０は、認証装置１０が送信した各固定値に対応して、異なる２以上のハッシュ値を算出し、これらハッシュ値をレスポンスとして送信する。このため、本実施の形態における認証システム１では、認証装置１０は、複数個のハッシュ値を用いて認証を行うことができる。例えば、後述するように、認証装置１０は、全てのハッシュ値が予め保持されているハッシュ値と一致する場合にのみ、端末装置３０のシステムへのログインを認めるようにすることができる。
【００３５】
また、漏洩したハッシュ値から原像を取得しようとする第三者は、全てのハッシュ値を取得し、全てのハッシュ値について解析を行う必要がある。よって、認証システム１を用いれば、ハッシュ値からの原像の取得の困難化を促進でき、第三者からの攻撃による現像復元の可能性を大きく低下させることができる。更に、ハッシュ値の多重化により、この効果は、ハッシュ鍵の鍵長を長くしたり、ハッシュ値を複雑化したりといったことを行うことなく得られるため、過去のデータとの互換性も保持される。
【００３６】
ところで、従来からのチャレンジ・レスポンス型の認証方式には、「レスポンスが、パスワードのような小規模なデータである場合に、ハッシュ値の衝突が困難になればなる程、そのデータのハッシュ値からの推定が容易になってしまう」という問題がある。また、「ハッシュ関数が利用されるため、ハッシュ値の衝突困難の程度が低ければ、衝突（即ち、偶発的なハッシュ値の一致）の可能性が高まってしまう」という問題もある。
【００３７】
これらの問題は、ハッシュ値の復号の困難化（原像計算の困難化）と、ハッシュ値の衝突回避の向上（衝突の困難化）とが、ハッシュ関数の数学的性格上、互いに相反することに起因する問題である。つまり、これらの問題は、ハッシュ関数を利用するが故の問題であり、ハッシュ関数が複雑になっても本質的な解決は不可能である。
【００３８】
これに対して、認証システム１を用い場合は、認証に用いるハッシュ値が多重化されているので、全ての多重化されたハッシュ値が一度に衝突することは稀であり、衝突の回避の向上と同様の効果が得られると考えられる。つまり、複数個のハッシュ値の一致が認証に必要であるとすると、レスポンスに含まれるハッシュ値が一つの場合に比べて、各段に衝突が生じる可能性を小さくすることができる。
【００３９】
ここで、本実施の形態における、認証システム、認証装置、及び端末装置の構成につい
て更に具体的に説明する。また、以下の説明においても図１を参照する。
【００４０】
本実施の形態において、認証システム１は、オペレーティングシステム（ＯＳ）、又はＣＨＡＰ等を利用したネットワークシステムにおける、ログオン認証の構造又は手段として用いられることが、想定されている。この場合、認証装置１０と、端末装置３０とは、図１には示されていないが、インターネット、ＬＡＮといったネットワークを介して接続される。また、以降においては、認証システム１が、オペレーティングシステム（ＯＳ）又はネットワークシステムにおけるログオン認証に用いられる例について説明する。
【００４１】
その他、認証システム１は、各種メディアにおけるアクセス制限のための認証や、コピープロテクト時において利用者及び環境を識別するための認証にも利用できる。更に、認証システム１は、施設において入退出を管理するための入館管理システムにも利用できる。認証システム１がこれらの用途に用いられる場合は、認証装置１０と端末装置３０とは、ネットワークの他、プロセス間通信によって、又はデバイス間に設けられた専用の通信回線等によって接続されていても良い。
【００４２】
本実施の形態では、認証装置１０及び端末装置３０は、後述するように、コンピュータに本実施の形態におけるプログラムをインストールし、実行することによって実現できる。また、この場合、認証装置１０及び端末装置３０は、コンピュータで実行されるプロセスの一つであっても良い。
【００４３】
図１に示すように、本実施の形態では、認証装置１０は、チャレンジコード作成部１１及びチャレンジコード送信部１２に加えて、レスポンス受信部１３と、認証部１４と、サーバ定数保持部２０と、ハッシュテーブル保持部２１とを備えている。
【００４４】
サーバ定数保持部２０は、チャレンジコードの作成に用いられる２以上の固定値と、認証装置１０に固有の公開鍵Ｋ１とを保持している。本実施の形態では、固定値は、固定値ｐと固定値ｑとの二つである。以降においては、固定値ｐ及びｑ（ｐ≠ｑ）が用いられる例について説明する。また、公開鍵Ｋ１は、端末装置３０における暗号化に用いられる。なお、レスポンス受信部１３、認証部１４、及びハッシュテーブル保持部２１についての説明は、端末装置３０についての説明の後に行う。
【００４５】
本実施の形態において、チャレンジコード作成部１１は、サーバ定数保持部２０にアクセスして、公開鍵Ｋ１、固定値ｐ及び固定値ｑを取得し、これらを含むチャレンジコードを作成する。このようにして作成されたチャレンジコードは、特許文献１及び２に開示されたチャンレンジコードとは全く異なっている。
【００４６】
なお、上述したように、本実施の形態では、固定値の個数は、説明の都合で２個に設定さているが、これに限定されず、求められる多重化度に合わせて設定されれば良い。固定値の個数は、多重化度の数を意味する。認証装置１０の数が複数である場合に、固定値の値は、機密性の向上の点から、認証装置１０毎に、決まった値又は良く使用される値にならないように設定されても良い。そして、このような設定が求められる場合は、認証装置１０の想定される台数の上限値をｌ、求められる固定値の個数をｎとすると、ｎは「ｎ≪ｌ」が成立するように設定するのが良い。
【００４７】
また、図１に示すように、端末装置３０は、ハッシュ化部３４及びレスポンス作成部３７に加えて、入力情報受付部３１と、チャレンジコード受信部３２と、中間情報作成部３３と、乱数作成部３５と、暗号化部３６とを備えている。
【００４８】
入力情報受付部３１は、端末装置３０のユーザによって外部から情報の入力が行われる
と、入力された情報の受け付けを行う。本実施の形態では、ユーザによる入力機器の操作によって、ログオン操作に必要な資格情報Ｘが入力される。また、資格情報Ｘは、予め認証装置１０において登録されている。具体的には、上記したハッシュテーブル保持部２１によって保持されている。また、チャレンジコード受信部３２は、端末装置３０から送信されたチャレンジコードを受信し、これを中間情報作成部３３に送る。
【００４９】
中間情報作成部３３は、認証装置１０が送信したチャレンジコードをチャレンジコード受信部３２が受信すると、固定値毎に、入力情報受付部３１が受け付けた情報と、固定値とを用いて中間情報を作成する。具体的には、中間情報作成部３３は、予め設定されている関数ｆに、固定値ｐ及びｑと、資格情報Ｘとを入力し、二つの一致しない中間情報ｆ（ｐ，Ｘ）及びｆ（ｑ，Ｘ）を算出する。ハッシュ化は、後述するように中間情報に対して行われる。このように、本実施の形態では、ハッシュ化される前の原像に対して演算が行われるため、第三者による原像（資格情報Ｘ）の取得はより困難となっている。
【００５０】
また、関数ｆは、演算ルールを知っていれば、算出値を元の値に戻すことが可能な関数であれば良く、関数ｆとしては、例えば、以下の（１）〜（４）で構成された関数族を用いることができる。
（１）Ｃ１＝資格情報Ｘを、固定値ｐ又はｑの即値として、又は補填文字の個数として、固定値ｐ及びｑそれぞれの前又は後に連結する
（２）Ｃ２＝固定値ｐ又はｑによって資格情報Ｘをマスクする（具体的には、排他的論理和を求める関数、又は一次変換を実行する）
（３）Ｃ３＝固定値ｐ又はｑを用いて資格情報Ｘをシフトさせる
（４）Ｃ４＝固定値ｐ又はｑに依存した置換を資格情報Ｘに対して実行する
（５）Ｆ（Ｃｉ）＝{ｆ｜Ｃｉ}、
Ｆ（Ｃｉ＆Ｃｊ）＝{ｆ｜Ｃｉ＆Ｃｊ}＝Ｆ（Ｃｉ）∩Ｆ（Ｃｊ）等
【００５１】
なお、ここで、「演算ルールを知っていれば、算出値を元の値に戻すことが可能な関数」について補足する。例えば、上記の資格情報Ｘを固定値ｐ又はｑの即値として固定値ｐ及びｑそれぞれの適切な位置に連結するＣ１としては、ｆ（Ｘ，ｐ）＝Ｘｐ、及びｆ（Ｘ，ｑ）＝Ｘｑとする関数と、ｆ（Ｘ，ｐ）に長さｐ（ｐは正の整数に限る）の文字列を付加する関数とが挙げられる。このような場合、算出値を元の値に戻すためには、演算ルールを知っている必要がある。但し、後者の関数の場合は、演算ルールのみが知られていれば良く、付加された文字列までもが知られている必要はない。
【００５２】
また、本実施の形態において、認証システム１は、既存のシステムに適用でき、過去の資産との互換性を有しているのが好ましい。この場合、ハッシュ化のためのハッシュ関数をｈとすると、関数ｆは、任意の定数ｒが定義でき、且つ、「∃ｒ∀Ｘ（ｈ（Ｘ）＝ｈ（ｆ（ｒ，Ｘ）））」が成立するように設定するのが好ましい。例えば、関数ｆが、単に文字列を連結する関数（Ｆ（Ｃ１）関数族の関数）である場合は、空文字列εに対して下記の数１が成立する。また、下記の数１による空文字列εをハッシュ関数ｈに導入すれば、下記の数２が成立する。
【００５３】
（数１）
ｆ（ε，Ｘ）＝ε・Ｘ＝ｆ（Ｘ，ε）＝Ｘ・ε＝Ｘ
【００５４】
（数２）
ｈ（Ｘ）＝ｈ（ｆ（ε，Ｘ））＝ｈ（ｆ（Ｘ，ε））
【００５５】
本実施の形態において、ハッシュ化部３４は、ハッシュ関数ｈを用い、中間情報作成部３３が作成した中間情報に対して、中間情報毎に、ハッシュ化を行い、ハッシュ値を算出
する。具体的には、ハッシュ化部３４は、固定値ｐから得られた中間情報と、固定値ｑから得られた中間情報とをそれぞれハッシュ化し、ｈ（ｆ（ｐ，Ｘ））と、ｈ（ｆ（ｑ，Ｘ））とを算出する。本実施の形態によれば、多重化されたハッシュ値が得られることになる。
【００５６】
また、算出されるハッシュ値は、認証装置１０において、テーブル（ハッシュテーブル）に登録された状態で上記したハッシュテーブル保持部２１に登録されており、認証装置１０における認証に利用される。なお、認証装置１０においてのハッシュ値の登録は、資格情報Ｘが登録又は更新されたときに行われる。
【００５７】
乱数作成部３５は、ハッシュ化部３４が算出したハッシュ値毎に、乱数を作成し、作成した乱数を、対応するハッシュ値に付加する。具体的には、乱数作成部３５は、ｈ（ｆ（ｐ，Ｘ））に対して乱数ｒ１を作成し、ｈ（ｆ（ｐ，Ｘ））ｒ１、又はｒ１・ｈ（ｆ（ｐ，Ｘ））を算出する。また、乱数作成部３５は、ｈ（ｆ（ｑ，Ｘ））に対して乱数ｒ２を作成し、ｈ（ｆ（ｑ，Ｘ））ｒ２、又はｒ２・ｈ（ｆ（ｑ，Ｘ））を算出する。
【００５８】
このように、各ハッシュ値に乱数が付与されると、後に送信されるレスポンスが資格情報Ｘで固定されないことになり、第三者による原像（資格情報Ｘ）の取得は、より一層困難となる。なお、特許文献２においては、乱数は認証装置側から送信する必要があるが、本実施の形態においてはその必要はなく、端末装置３０において作成される。
【００５９】
また、本実施の形態において、乱数作成部３５は、必要な個数だけの乱数を、互いに値が異なり、且つ、認証の度に異なる値となるようにして、作成する。更に、乱数は、擬似的な乱数でもあっても良いし、日時情報に基づくものであっても良い。但し、乱数が偏りを持った値であると、暗号化されていても、解読のヒントを与える可能性があるため、この点に注意する必要がある。
【００６０】
なお、乱数の必要な個数は固定値の個数と同義であり、多重化度の数を意味する。必要な個数をｍとすると、ｍ＝ｎとなる。よって、上述したように、「ｎ≪ｌ」とする場合は、「ｍ≪ｌ」となるように配慮する。また、上述したＦ（Ｃｉ）の関数ｆの場合、乱数をｆ（Ｘ，ｐ）の前後に連結させる際に、いずれかではなく、前後両方に連結すると、乱数であることが攻撃者である第三者に知られる可能性が高くなるので、採用すべきではない。
【００６１】
暗号化部３６は、認証装置１０がチャレンジコードとして送信した公開鍵Ｋ１を用いて、各ハッシュ値を暗号化（：Ｅ）する。具体的には、暗号化部３６は、乱数作成部３５によって乱数が付加された、ハッシュ値ｈ（ｆ（ｐ, Ｘ））・ｒ１と、ハッシュ値ｈ（ｆ（ｑ，Ｘ））・ｒ２とを暗号化する。これにより、Ｅ（Ｋ１，ｈ（ｆ（ｐ, Ｘ））・ｒ１）と、Ｅ（Ｋ１，ｈ（ｆ（ｑ，Ｘ））・ｒ２）が得られる。なお、乱数の後ろにハッシュ値を連結する場合は、暗号化対象は、ｒ１・ｈ（ｆ（ｐ，Ｘ））と、ｒ２・ｈ（ｆ（ｑ，Ｘ））とになり、暗号化して、Ｅ（Ｋ１，ｒ１・ｈ（ｆ（ｐ，Ｘ）））と、Ｅ（Ｋ１，ｒ２・ｈ（ｆ（ｑ，Ｘ）））とが得られる。
【００６２】
なお、従来からの認証方式であるＣＨＡＰでは、端末装置において、共通鍵を用いた暗号化が行われている（例えば、ＤＥＳを用いたＭＳ−ＣＨＡＰｖ２）が、本実施の形態はこれと異なっている。
【００６３】
レスポンス作成部３７は、本実施の形態では、乱数の付加と暗号化とが行われた各ハッシュ値を用いて、各ハッシュ値を含むレスポンスを作成する。具体的には、レスポンス作成部３７は、暗号化部３６によって暗号化された、Ｅ（Ｋ１，ｈ（ｆ（ｐ, Ｘ））ｒ１）
と、Ｅ（Ｋ１，ｈ（ｆ（ｑ，Ｘ））ｒ２）とを含むレスポンスを作成する。または、レスポンス作成部３７は、暗号化部３６によって暗号化された、Ｅ（Ｋ１，ｒ１・ｈ（ｆ（ｐ，Ｘ）））と、Ｅ（Ｋ１，ｒ２・ｈ（ｆ（ｑ，Ｘ）））とを含むレスポンスを作成する。
【００６４】
認証装置１０において、端末装置３０のレスポンス作成部３７が送信したレスポンスは、レスポンス受信部１３によって受信される。レスポンス受信部１３は、受信したレスポンスを認証部１４に入力する。認証部１４は、レスポンスに含まれる各ハッシュ値と、予め保持されているハッシュ値とを比較し、レスポンスに含まれる全てのハッシュ値が、予め保持されているハッシュ値と一致していることを条件に、端末装置３０に対してログインの許可を与える。
【００６５】
具体的には、認証部１４は、復号部１５と、乱数処理部１６と、検索部１７とを備えている。復号部１５は、公開鍵Ｋ１に対応する秘密鍵Ｋ２を用いて、レスポンスに含まれるＥ（Ｋ１，ｈ（ｆ（ｐ, Ｘ））ｒ１）と、Ｅ（Ｋ１，ｈ（ｆ（ｑ，Ｘ））ｒ２）とを別々に復号化する。また、レスポンスに、Ｅ（Ｋ１，ｒ１・ｈ（ｆ（ｐ，Ｘ）））と、Ｅ（Ｋ１，ｒ２・ｈ（ｆ（ｑ，Ｘ）））とが含まれる場合は、認証部１４は、これらに対して復号を行う。この結果、ハッシュ値ｈ（ｆ（ｐ, Ｘ）ｒ１［又はｒ１・ｈ（ｆ（ｐ，Ｘ））］と、ハッシュ値ｈ（ｆ（ｑ，Ｘ））ｒ２［又はｒ２・ｈ（ｆ（ｑ，Ｘ））］とが取得される。
【００６６】
乱数処理部１６は、復号化された各値から、端末装置３０の乱数作成部３５によって付加された乱数ｒ１及びｒ２を排除する。これにより、ｈ（ｆ（ｐ，Ｘ））と、ｈ（ｆ（ｑ，Ｘ））とが取得される。乱数処理部１６は、乱数が排除されたｈ（ｆ（ｐ，Ｘ））及びｈ（ｆ（ｑ，Ｘ））を検索部１７に送る。なお、乱数の排除は、端末装置３０の乱数作成部３５が乱数を付加する位置に関する情報（以下「乱数位置情報」という。）を、予め、認証装置１０に保持させておくことによって行うことができる。また、乱数位置情報の保持は、認証装置１０の構築時等に行わせれば良い。更に、乱数位置情報は、システム毎に固定されていても良い。
【００６７】
検索部１７は、乱数処理部１６から、ハッシュ値ｈ（ｆ（ｐ，Ｘ））及びｈ（ｆ（ｑ，Ｘ））が送られてくると、ハッシュテーブル保持部２１に保持されているハッシュテーブルを用いて、送られてきた各ハッシュ値の検索を行う。具体的には、検索部１７は、多重化された全てのハッシュ値がハッシュテーブルに存在するかどうかを、時間計算量ο（１）を用いて判定する。
【００６８】
また、判定の結果、検索部１７が、多重化されたハッシュ値ｈ（ｆ（ｐ，Ｘ））及びｈ（ｆ（ｑ，Ｘ））全ての存在を確認した場合は、端末装置３０のシステムへのアクセスが許可される。これにより、認証装置１０は、端末装置３０に対して、許可する旨の通知を送信する。一方、判定の結果、検索部１７が、多重化されたハッシュ値ｈ（ｆ（ｐ，Ｘ））及びｈ（ｆ（ｑ，Ｘ））の一つでも存在を確認できなかった場合は、端末装置３０のシステムへのアクセスは許可されない。これにより、認証装置１０は、端末装置３０に対して、許可しない旨の通知を送信する。
【００６９】
そして、既に述べたように、認証システム１は、既存のシステムに適用でき、過去の資産との互換性を有している。このため、本実施の形態では、既存のシステムがハッシュテーブルを保持している場合は、この既に保持されているハッシュテーブルを検索部１７での処理に利用することもできる。なお、ここでいう「既存のシステム」としては、例えば、一つのハッシュ値を一つのハッシュテーブルを用いて検索するシステムをいう。また、「既存のシステム」は、ハッシュ解読の困難化に限界が来た場合等、必要に応じて、ハッシュテーブルを増加させることが可能な構成を有しているのが好ましい。
【００７０】
更に、本実施の形態では、資格情報は、認証装置１０において登録及び更新されるが、登録及び更新は、認証装置１０と端末装置３０との間のプロトコルと安全性との保証の点から、以下のルール（Ｒ１）〜（Ｒ４）に従って行われているのが好ましい。ルール（Ｒ１）〜（Ｒ４）によれば、登録の段階でのハッシュ値の衝突の回避が可能となる。
【００７１】
（Ｒ１）資格情報を登録したテーブルが認証装置側で保持される。認証装置が複数存在する場合、このテーブルは単一であっても良いし、認証装置毎に作成されていても良い。
（Ｒ２）資格情報を登録するに際して、それに対応するハッシュ値が、既に登録済みのハッシュ値と一致する場合は、資格情報の登録者に対して、資格情報の再検討を促す。
（Ｒ３）資格情報は、例えば、固定値ｐ≠固定値ｑであれば、ｈ（ｆ（ｐ，Ｘ））≠ｈ（ｆ（ｑ，Ｘ））となるように設定する。ｈ（ｆ（ｐ，Ｘ））＝ｈ（ｆ（ｑ，Ｘ））となった場合は、登録者に対して、資格情報の再検討を促す。
（Ｒ４）資格情報を更新するに際しては、更新前の資格情報に対応するハッシュ値は、削除される。
【００７２】
次に、本発明の実施の形態における、認証システム１、認証装置１０、及び端末装置３０の動作について図２を用いて説明する。図２は、本発明の実施の形態における認証システムの動作を示すフロー図である。図２では、右側に認証装置１０の動作のフローが示され、左側に端末装置３０の動作のフローが示されている。
【００７３】
また、以下の説明においては、適宜図１を参酌する。更に、本実施の形態では、認証システム１、認証装置１０及び端末装置３０を動作させることによって、認証方法が実施される。よって、本実施の形態における認証方法の説明は、以下の認証システム１、認証装置１０及び端末装置３０の動作説明に代える。
【００７４】
（ステップＡ１）
図２に示すように、ユーザがログオン操作として資格情報Ｘを入力すると、端末措置３０において、入力情報受付部３１は、資格情報Ｘの入力を受け付ける。
【００７５】
（ステップＡ２）
入力情報受付部３１は、認証装置１０に対して認証要求を発行する。
【００７６】
（ステップＢ１）
認証装置１０において、チャレンジコード作成部１１は、サーバ定数保持部２０にアクセスして、固定値ｐ、固定値ｑ、及び公開鍵Ｋ１を取得し、これらを含むチャレンジコードを作成する。
【００７７】
（ステップＢ２）
チャレンジコード送信部１２は、ステップＢ１で作成されたチャレンジコードを端末装置３０に送信する。
【００７８】
（ステップＡ３）
ステップＢ２が実行されると、端末装置３０において、チャレンジコード受信部３２は、チャレンジコードを受信する。チャレンジコード受信部３２は、受信したチャレンジコードに含まれる情報のうち、固定値ｐ及びｑを中間情報作成部３３に送り、公開鍵Ｋ１を暗号化部３６に送る。
【００７９】
（ステップＡ４）
端末装置３０において、中間情報作成部３３は、固定値ｐ及び固定値ｑそれぞれについ
て、これらと、資格情報とを用いて中間情報を作成する。
【００８０】
（ステップＡ５）
端末装置３０において、ハッシュ化部３４は、ハッシュ関数ｈを用い、ステップＡ４で作成された中間情報に対して、中間情報毎に、ハッシュ化を行い、ハッシュ値を算出する。
【００８１】
（ステップＡ６）
端末装置３０において、乱数作成部３５は、ハッシュ化部３４が算出したハッシュ値毎に、乱数ｒ１及びｒ２を作成し、乱数ｒ１及びｒ２を、対応するハッシュ値に付加する。
【００８２】
（ステップＡ７）
端末装置３０において、暗号化部３６は、ステップＡ３で受信した公開鍵Ｋ１を用いて、ステップＡ５で乱数が付加された各ハッシュ値を暗号化する。
【００８３】
（ステップＡ８）
端末装置３０において、レスポンス作成部３７は、ステップＡ７によって暗号化された各ハッシュ値を用いて、各ハッシュ値を含むレスポンスを作成し、これを認証装置１０に送信する。
【００８４】
（ステップＢ３）
ステップＡ８が実行されると、認証装置１０において、レスポンス受信部１３は、送信されたレスポンスを受信する。レスポンス受信部１３は、受信したレスポンスを認証部１４に送る。
【００８５】
（ステップＢ４）
認証装置１０において、認証部１４の復号部１５は、公開鍵Ｋ１に対応する秘密鍵Ｋ２を用いて、レスポンスに含まれる暗号化された各情報を別々に復号化する。
【００８６】
（ステップＢ５）
認証装置１０において、乱数処理部１６は、上述の乱数位置情報に基づき、乱数を除去する。この結果、ステップＢ４で得られた各値から乱数ｒ１又はｒ２が排除され、ハッシュ値のみの状態となる。
【００８７】
（ステップＢ６）
認証装置１０において、検索部１６は、ハッシュテーブル保持部２１に保持されているハッシュテーブルを用いて、ステップＢ５で得られた各ハッシュ値の検索を行う。
【００８８】
（ステップＢ７）
検索部１６は、全てのハッシュ値が、ハッシュテーブルに存在しているかどうかを判定し、全て存在している場合に、認証装置１０は、端末装置３０のログインを許可する。なお、ハッシュ値の全て又は一つが存在していない場合は、認証装置１０は、端末装置３０のログインを許可しない。
【００８９】
（ステップＢ８）
認証装置１０は、ステップＢ７での判定結果が示された通知を端末装置３０に送信する。これにより、認証装置１０における認証処理は終了する。
【００９０】
（ステップＡ９）
ステップＢ８が実行されると、端末装置３０は、判定結果を受信し、結果を表示画面に
表示させる。これにより、ユーザは、認証結果を知ることができる。また、ステップＡ９の実行により、端末装置３０における認証処理は終了する。
【００９１】
また、本実施の形態における第１のプログラムは、コンピュータに、図２に示すステップＡ１〜Ａ９を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における端末装置３０を実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、入力情報受付部３１、チャレンジコード受信部３２、中間情報作成部３３、ハッシュ化部３４、乱数作成部３５、暗号化部３６及びレスポンス作成部３７として機能し、処理を行なう。
【００９２】
更に、本実施の形態における第２のプログラムは、コンピュータに、図２に示すステップＢ１〜Ｂ８を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における認証装置１０を実現することができる。この場合、コンピュータのＣＰＵは、チャレンジコード作成部１１、チャレンジコード送信部１２、レスポンス受信部１３、認証部１４として機能し、処理を行なう。
【００９３】
また、サーバ定数保持部２０と、ハッシュテーブル保持部２１とは、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現できる。
【００９４】
以上のように、本実施の形態では、ハッシュ値の多重化が行われ、多重化された全てのハッシュ値が、ハッシュテーブルに存在する場合にのみ、認証装置１０は、端末装置３０にアクセス許可を与える。このため、上述したように、従来からのハッシュ関数を用いているにも関わらず、ハッシュ値の衝突困難の程度が高められる。また、一つのハッシュ値のみが第三者によって解析されても、第三者が原像を取得することは困難である。従って、本実施載の形態における認証システムは、極めて安全性の高いシステムとなる。
【００９５】
更に、本実施の形態では、ハッシュ値に対して乱数の付加と暗号化とが行われるため、チャレンジコードが固定であっても、レスポンスは非固定となる。また、乱数は、端末装置３０側で作成・付加されるため、例え、チャレンジコードが漏洩しても、第三者は、原像計算に結びつける情報を取得したことにはならない。よって、本実施の形態では、これらの点からもシステムの安全性は確保されている。
【００９６】
また、本実施の形態では、計算機速度の向上に合わせてハッシュ関数を複雑にすることなく、システムの安全性を確保できるため、既存のチャレンジ・レスポンス型認証方式を採用するシステムの資産を有効に活用できる。
【００９７】
本実施の形態において、資格情報は、情報化・一意化できるものであれば良く、特定の種類の情報に限定されるものではない。具体的には、資格情報としては、ＩＤ番号、パスワード、アカウント、暗証番号、バイオメトリクス（指紋、静脈パターン）、等といった個人を特定する情報が挙げられる。
【産業上の利用可能性】
【００９８】
本発明によれば、チャレンジ・レスポンス型の認証方式を採用するシステムにおいて、過去のデータとの互換性を保持しつつ、第三者からの攻撃による原像復元の可能性を低下させることができる。本発明は、オペレーティングシステム又はネットワークシステムのログオン認証及びアカウント認証、各種メディアでのアクセス制限のための認証、コピープロテクト時の利用者及び環境を識別するための認証、入館管理システムにおける認証に有用である。
【００９９】
（付記１）端末装置からの認証要求に応じて認証を行う認証装置であって、
前記端末装置からの認証要求を受信した場合に、予め設定された２以上の固定値を含むチャレンジコードを作成する、チャレンジコード作成部と、
前記チャレンジコードを前記端末装置に送信する、チャレンジコード送信部と、
を備えていることを特徴とする認証装置。
【０１００】
（付記２）認証部を更に備え、
前記認証部は、
前記端末装置が、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出し、算出した各ハッシュ値を含むレスポンスを当該認証装置に送信した場合に、
前記レスポンスに含まれる各ハッシュ値と、予め保持されているハッシュ値とを比較し、前記レスポンスに含まれる全てのハッシュ値が、予め保持されているハッシュ値と一致していることを条件に、前記端末装置に対して許可を与える、付記１に記載の認証装置。
【０１０１】
（付記３）認証装置に対して認証要求を行う端末装置であって、
前記認証装置が、予め設定された２以上の固定値を含むチャレンジコードを当該端末装置に送信した場合に、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出する、ハッシュ化部と、
算出した各ハッシュ値を含むレスポンスを作成し、作成した前記レスポンスを前記認証装置に送信する、レスポンス作成部と、
を備えていることを特徴とする端末装置。
【０１０２】
（付記４）当該端末装置が、更に、外部から入力された情報を受け付ける入力情報受付部と、中間情報作成部とを備え、
前記中間情報作成部は、前記認証装置が、予め設定された２以上の固定値を含むチャレンジコードを当該端末装置に送信した場合に、前記２以上の固定値それぞれ毎に、前記入力情報受付部が受け付けた前記情報と、当該固定値とを用いて中間情報を作成し、
前記ハッシュ化部が、前記中間情報作成部が作成した前記中間情報毎に、ハッシュ化を行ってハッシュ値を算出する、付記３に記載の端末装置。
【０１０３】
（付記５）当該端末装置が、更に、乱数作成部を備え、
前記乱数作成部は、前記ハッシュ値毎に乱数を作成し、作成した前記乱数を、対応するハッシュ値に付加し、
前記レスポンス作成部が、前記乱数が付加されたハッシュ値を用いて前記レスポンスを作成する、付記３または付記４に記載の端末装置。
【０１０４】
（付記６）当該端末装置が、更に、暗号化部を備え、
前記暗号化部は、前記認証装置が、前記２以上の固定値に加えて公開鍵を更に含む前記チャレンジコードを当該端末装置に送信した場合に、前記公開鍵を用いて、前記各ハッシュ値を暗号化し、
前記レスポンス作成部が、暗号化された前記各ハッシュ値を含むレスポンスを作成する、付記３〜付記５のいずれかに記載の端末装置。
【０１０５】
（付記７）（ａ）認証要求がなされた場合に、認証側で、予め設定された２以上の固定値を含むチャレンジコードを作成し、作成した前記チャレンジコードを認証要求側に送信する、ステップと、
（ｂ）前記認証要求側において、前記チャレンジコードを受信した場合に、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出する、ステップと、
（ｃ）前記認証要求側において、前記（ｂ）のステップで算出した各ハッシュ値を含むレ
スポンスを作成し、作成した前記レスポンスを前記認証側に送信する、ステップと、を有することを特徴とする認証方法。
【０１０６】
（付記８）（ｄ）前記認証側において、前記（ｃ）のステップで送信された前記レスポンスを受信した場合に、前記レスポンスに含まれる各ハッシュ値と、予め前記認証側で保持されているハッシュ値とを比較し、前記レスポンスに含まれる全てのハッシュ値が、前記保持されているハッシュ値と一致している場合にのみ、前記認証要求を認める、ステップを更に有する、付記７に記載の認証方法。
【０１０７】
（付記９）（ｅ）前記認証要求側において、前記チャレンジコードを受信した場合に、前記（ｂ）のステップの実行前に、前記２以上の固定値それぞれ毎に、当該固定値と外部から入力された情報とを用いて中間情報を作成する、ステップを更に有し、
前記（ｂ）のステップにおいて、前記（ｅ）のステップで作成した前記中間情報毎にハッシュ化を行ってハッシュ値を算出する、付記７または付記８に記載の認証方法。
【０１０８】
（付記１０）（ｆ）前記認証要求側において、前記（ｃ）のステップの実行前に、前記ハッシュ値毎に乱数を作成し、作成した前記乱数を、対応するハッシュ値に付加する、ステップを更に有し、
前記（ｃ）のステップにおいて、前記（ｆ）のステップで前記乱数が付加されたハッシュ値を用いて前記レスポンスを作成する、付記７〜付記９のいずれかに記載の認証方法。
【０１０９】
（付記１１）前記（ａ）のステップにおいて、前記認証側で、公開鍵を更に含む前記チャレンジコードを作成し、
前記（ｃ）のステップにおいて、前記公開鍵を用いて、前記各ハッシュ値を暗号化し、暗号化された前記各ハッシュ値を含むレスポンスを作成する、付記７〜付記１０のいずれかに記載の認証方法。
【０１１０】
（付記１２）コンピュータによって、端末装置からの認証要求に応じた認証を行うためのプログラムであって、
前記コンピュータに、
（ａ）前記端末装置からの認証要求を受信した場合に、予め設定された２以上の固定値を含むチャレンジコードを作成する、ステップと、
（ｂ）前記チャレンジコードを前記端末装置に送信する、ステップと、
を実行させる、ことを特徴とするプログラム。
【０１１１】
（付記１３）（ｃ）前記端末装置が、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出し、算出した各ハッシュ値を含むレスポンスを当該コンピュータに送信した場合に、前記レスポンスに含まれる各ハッシュ値と、予め保持されているハッシュ値とを比較し、前記レスポンスに含まれる全てのハッシュ値が、予め保持されているハッシュ値と一致していることを条件に、前記端末装置に対して許可を与える、ステップを、更に前記コンピュータに実行させる、付記１２に記載のプログラム。
【０１１２】
（付記１４）コンピュータによって、認証装置に対する認証要求を行うためのプログラムであって、前記コンピュータに、
（ａ）前記認証装置が、予め設定された２以上の固定値を含むチャレンジコードを前記コンピュータに送信した場合に、前記２以上の固定値それぞれ毎にハッシュ化を行ってハッシュ値を算出する、ステップと、
（ｂ）前記（ａ）のステップで算出した各ハッシュ値を含むレスポンスを作成し、作成した前記レスポンスを前記認証装置に送信する、ステップと、
を実行させる、ことを特徴とするプログラム。
【０１１３】
（付記１５）（ｃ）外部から入力された情報を受け付ける、ステップと、
（ｄ）前記認証装置が、予め設定された２以上の固定値を含むチャレンジコードを当該端末装置に送信した場合に、前記（ａ）のステップの実行前に、前記２以上の固定値それぞれ毎に、前記（ｃ）のステップで入力された情報と、当該固定値とを用いて中間情報を作成する、ステップと、
を更に前記コンピュータに実行させ、
前記（ａ）のステップにおいて、前記（ｄ）のステップで作成した前記中間情報毎に、ハッシュ化を行ってハッシュ値を算出する、付記１４に記載のプログラム。
【０１１４】
（付記１６）（ｅ）前記（ｂ）のステップの実行前に、前記ハッシュ値毎に乱数を作成し、作成した前記乱数を、対応するハッシュ値に付加する、ステップを更に前記コンピュータに実行させ、
前記（ｂ）のステップにおいて、前記（ｅ）のステップで乱数が付加されたハッシュ値を用いて前記レスポンスを作成する、付記１４または付記１５に記載のプログラム。
【０１１５】
（付記１７）前記（ｂ）のステップにおいて、
前記認証装置が、前記２以上の固定値に加えて公開鍵を更に含む前記チャレンジコードを前記コンピュータに送信した場合に、
前記公開鍵を用いて、前記各ハッシュ値を暗号化し、暗号化された前記各ハッシュ値を含むレスポンスを作成する、付記１４〜付記１６のいずれかに記載のプログラム。
【符号の説明】
【０１１６】
１  認証システム
１０  認証装置
１１  チャレンジコード作成部
１２  チャレンジコード送信部
１３  レスポンス受信部
１４  認証部
１５  復号部
１６  乱数処理部
１７  検索部
２０  サーバ定数保持部
２１  ハッシュテーブル保持部
３０  端末装置
３１  入力情報受付部
３２  チャレンジコード受信部
３３  中間情報作成部
３４  ハッシュ化部
３５  乱数作成部
３６  暗号化部
３７  レスポンス作成部
【図１】
2011135464.tif 000003
【図２】
2011135464.tif 000004