(57)【要約】  ２つの要素を利用した認証を行う場合において、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止することができる認証システムを提供する。判定部４３は、照合情報と登録情報とが合致するか否かを判定する。クライアント１０の署名生成部２１は、署名鍵を用いて、メッセージに基づいて署名を生成する。署名判定部３４は、第１の検証鍵とメッセージと署名とを用いて、署名が正しい署名であるか否かを判定する。認証判定部３７は、照合情報と登録情報とが合致すると判定され、かつ、署名が正しい署名であると判定された場合に、認証に成功したと判定する。
2020121459.tif 000002
【特許請求の範囲】
【請求項１】
クライアントを備える認証システムであって、
前記クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
前記クライアントにメッセージを送信するメッセージ送信部と、
第１の検証鍵と前記メッセージと前記クライアントに生成された署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備え、
前記クライアントは、
前記登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
前記照合情報と、前記秘匿化情報とに基づいて、前記秘匿化指標を算出する秘匿化指標算出部と、
署名鍵を用いて、前記メッセージに基づいて前記署名を生成する署名生成部とを備える
ことを特徴とする認証システム。
【請求項２】
前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成部と、
第２の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定部とを備え、
前記署名生成手段は、
前記照合情報と前記登録情報とが合致すると判定された場合に、署名を生成し、
前記認証判定部は、
前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する
請求項１に記載の認証システム。
【請求項３】
メッセージ送信部、署名判定部、証明書判定部および認証判定部は、第１のサーバに設けられ、
判定部および証明書生成部は、第２のサーバに設けられる
請求項２に記載の認証システム。
【請求項４】
前記証明書判定部は、前記証明書生成部によって生成された証明書を、クライアントを介して取得する
請求項２または請求項３に記載の認証システム。
【請求項５】
前記証明書判定部が設けられる第１のサーバは、前記証明書生成部によって生成された証明書を、前記証明書生成部が設けられる第２のサーバから、通信ネットワークを介して直接、取得する
請求項３に記載の認証システム。
【請求項６】
証明鍵および第２の検証鍵は、共通鍵方式における共通鍵である
請求項２から請求項５のうちのいずれか１項に記載の認証システム。
【請求項７】
前記証明書生成部は、
証明書として、メッセージ認証コードにおけるタグと、前記タグを生成する際に用いたデータとの組を生成する
請求項６に記載の認証システム。
【請求項８】
証明鍵は、公開鍵方式における秘密鍵であり、第２の検証鍵は、公開鍵方式における公開鍵である
請求項２から請求項５のうちのいずれか１項に記載の認証システム。
【請求項９】
判定部、メッセージ送信部、署名判定部および認証判定部は、１台のサーバに設けられ、
前記署名生成手段は、
前記照合情報と前記登録情報とが合致すると判定された場合に、署名を生成する
請求項１に記載の認証システム。
【請求項１０】
メッセージ送信部、署名判定部および認証判定部は、第１のサーバに設けられ、
判定部は、第２のサーバに設けられ、
前記第２のサーバは、
前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記クライアントで生成された署名を前記第１のサーバに送信する署名送信部を備える
請求項１に記載の認証システム。
【請求項１１】
登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部と、
前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成部と、
前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力部とを備える
ことを特徴とするクライアント。
【請求項１２】
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成部とを備える
ことを特徴とするサーバ。
【請求項１３】
クライアントにメッセージを送信するメッセージ送信部と、
照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第１の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第２の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定部と、
前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備える
ことを特徴とするサーバ。
【請求項１４】
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
前記クライアントにメッセージを送信するメッセージ送信部と、
前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備える
ことを特徴とするサーバ。
【請求項１５】
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信部とを備える
ことを特徴とするサーバ。
【請求項１６】
登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備えるクライアントが、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出し、
所定のサーバが、
前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定し、
前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、前記クライアントにメッセージを送信し、
前記クライアントが、
前記照合情報と前記登録情報とが合致すると判定された場合に、署名鍵を用いて、前記メッセージに基づいて署名を生成し、
前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、
第１の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定し、
前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する
ことを特徴とする認証方法。
【請求項１７】
登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備え、クライアントとして動作するコンピュータに搭載されるクライアント用プログラムであって、
前記コンピュータに、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出処理、
前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成処理、および、
前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力処理
を実行させるためのクライアント用プログラム。
【請求項１８】
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、
前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成処理
を実行させるためのサーバ用プログラム。
【請求項１９】
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
クライアントにメッセージを送信する送信処理、
照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第１の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、
前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第２の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定処理、および、
前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理
を実行させるためのサーバ用プログラム。
【請求項２０】
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、
前記クライアントにメッセージを送信するメッセージ送信処理、
前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、および、
前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理
を実行させるためのサーバ用プログラム。
【請求項２１】
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、
前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信処理
を実行させるためのサーバ用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証システム、認証方法、並びに、認証システムに適用されるクライアント、サーバ、クライアント用プログラムおよびサーバ用プログラムに関する。
【背景技術】
【０００２】
認証の一例として、生体認証がある。「生体認証」とは、被登録者の生体情報と、被認証者の生体情報とを照合することにより、被登録者と被認証者とが一致するか否かを確認する個人認証の手法である。【０００３】
また、「生体情報」とは、身体や行動に関する個人の一部の特徴から抽出されたデータ、または、その抽出されたデータを変換することによって生成されたデータである。このデータは、特徴量と称されることもある。【０００４】
また、「テンプレート」とは、生体認証のために予め保存される、被登録者の生体情報（以下では登録情報と呼ぶ。）から生成されたデータである。【０００５】
登録情報との照合のために入力される照合情報と、登録情報とが合致するか否かを判定し、両者が合致すると判定した場合に、クライアントが、チャレンジレスポンス方式に基づいてレスポンスを生成し、サーバがそのレスポンスを用いて認証を行う認証方式の仕様としてＦＩＤＯ（Fast IDentity Online）がある。ＦＩＤＯは、例えば、特許文献１に記載されている。【０００６】
ＦＩＤＯは、生体情報に関する検証と、署名鍵の所持に関する検証とを行う認証（すなわち、２つの要素を利用した認証）であると言える。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１７−１５２８８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＦＩＤＯのような２つの要素を利用した認証において、クライアントが実際には照合情報と登録情報とが合致するか否かの判定を行っていなくても、サーバが被認証者の認証に成功したと判定してしまうことが生じ得る。【０００９】
また、このような問題は、生体以外の２つの要素を利用した認証においても、防止できることが好ましい。【００１０】
そこで、本発明は、２つの要素を利用した認証を行う場合において、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止することができる認証システム、認証方法、並びに、その認証システムに適用されるクライアント、サーバ、クライアント用プログラムおよびサーバ用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明による認証システムは、クライアントを備える認証システムであって、前記クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、前記クライアントにメッセージを送信するメッセージ送信部と、第１の検証鍵と前記メッセージと前記クライアントに生成された署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備え、前記クライアントが、前記登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、前記照合情報と、前記秘匿化情報とに基づいて、前記秘匿化指標を算出する秘匿化指標算出部と、署名鍵を用いて、前記メッセージに基づいて前記署名を生成する署名生成部とを備えることを特徴とする。【００１２】
また、本発明によるクライアントは、登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部と、前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成部と、前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力部とを備えることを特徴とする。【００１３】
また、本発明によるサーバは、クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成部とを備えることを特徴とする。【００１４】
また、本発明によるサーバは、クライアントにメッセージを送信するメッセージ送信部と、照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第１の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第２の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定部と、前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備えることを特徴とする。【００１５】
また、本発明によるサーバは、クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、前記クライアントにメッセージを送信するメッセージ送信部と、前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備えることを特徴とする。【００１６】
また、本発明によるサーバは、クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信部とを備えることを特徴とする。【００１７】
また、本発明による認証方法は、登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備えるクライアントが、前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出し、所定のサーバが、前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定し、前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、前記クライアントにメッセージを送信し、前記クライアントが、前記照合情報と前記登録情報とが合致すると判定された場合に、署名鍵を用いて、前記メッセージに基づいて署名を生成し、前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、第１の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定し、前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定することを特徴とする。【００１８】
また、本発明によるクライアント用プログラムは、登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備え、クライアントとして動作するコンピュータに搭載されるクライアント用プログラムであって、前記コンピュータに、前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出処理、前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成処理、および、前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力処理を実行させることを特徴とする。【００１９】
また、本発明によるサーバ用プログラムは、サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、前記コンピュータに、クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成処理を実行させることを特徴とする。【００２０】
また、本発明によるサーバ用プログラムは、サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、前記コンピュータに、クライアントにメッセージを送信する送信処理、照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第１の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第２の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定処理、および、前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理を実行させることを特徴とする。【００２１】
また、本発明によるサーバ用プログラムは、サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、前記コンピュータに、クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、前記クライアントにメッセージを送信するメッセージ送信処理、前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、および、前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理を実行させることを特徴とする。【００２２】
また、本発明によるサーバ用プログラムは、サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、前記コンピュータに、クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信処理を実行させることを特徴とする。
【発明の効果】
【００２３】
本発明によれば、２つの要素を利用した認証を行う場合において、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止することができる。
【図面の簡単な説明】
【００２４】
【図１】ＦＩＤＯを適用したクライアントサーバシステムの例を示す模式図である。
【図２】図１に示すシステムの問題点を示す模式図である。
【図３】本発明の第１の実施形態の認証システムの構成例を示すブロック図である。
【図４】クライアント１０に被認証者の生体情報Ｙが入力されてから、第２のサーバ４０に生成された証明書をクライアント１０が受信するまでの処理経過の例を示すフローチャートである。
【図５】クライアント１０が、生体情報Ｘと生体情報Ｙとが合致するという判定結果、および、証明書を、第２のサーバ４０から受信した後の処理経過の例を示すフローチャートである。
【図６】本発明の第２の実施形態の認証システムの構成例を示すブロック図である。
【図７】第２の実施形態において、判定部４３が生体情報Ｘと生体情報Ｙとが合致すると判定した後の処理経過の例を示すフローチャートである。
【図８】本発明の第３の実施形態の認証システムの構成例を示すブロック図である。
【図９】第３の実施形態の処理経過の例を示すフローチャートである。
【図１０】各実施形態やその変形例におけるクライアント１０や種々のサーバに係るコンピュータの構成例を示す概略ブロック図である。
【図１１】本発明の認証システムの概要を示すブロック図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施形態を図面を参照して説明する。以下の各実施形態では、本発明の認証システムが生体認証に適用される場合を例にして説明する。ただし、本発明の認証システムは、生体認証以外の認証に適用されてもよい。
【００２６】
まず、ＦＩＤＯについてより具体的に説明する。
【００２７】
図１は、ＦＩＤＯを適用したクライアントサーバシステムの例を示す模式図である。図１に例示するシステムは、クライアント８０１と、サーバ９０１とを備える。クライアント８０１は、照合部８０２と、署名生成部８０３とを備える。サーバ９０１は、チャレンジ送信部９０２と、検証部９０３とを備える。
【００２８】
照合部８０２は、クライアント８０１が予め保持するテンプレートを用いて、登録情報と、クライアント８０１に入力される照合情報とが合致するか否かを判定する。照合情報と登録情報とが合致しなければ、処理を終了する。照合情報と登録情報とが合致すると判定された場合、署名生成部８０３は、クライアント８０１が予め保持する署名鍵を用いて、チャレンジレスポンス方式のチャレンジに基づいて署名を生成する。なお、チャレンジは、チャレンジ送信部９０２によってクライアント８０１に送信される。
【００２９】
クライアント８０１は、生成された署名を、レスポンスとしてサーバ９０１に送信する。検証部９０３は、サーバ９０１が保持する検証鍵と、クライアント８０１に送信したメッセージと、クライアント８０１から受信した署名とを用いて、署名に対する検証を行う。具体的には、検証部９０３は、署名が、サーバ９０１が送信したメッセージに基づいて、サーバ９０１が保持する検証鍵と対になる署名鍵によって生成されたものであるか否かを判定する。以下、サーバが送信したメッセージに基づいて、サーバが保持する検証鍵と対になる署名鍵によって生成された署名を、正しい署名と記す。正しい署名に該当しない署名を、不正な署名と記す。検証部９０３は、署名が正しい署名であると判定した場合には、被認証者の認証に成功したと判定し、署名が不正な署名であると判定した場合には、被認証者の認証に失敗したと判定する。
【００３０】
上記のように、ＦＩＤＯでは、クライアント８０１が照合情報と登録情報とが合致するか否かを判定する。そして、照合情報と登録情報とが合致と判定された場合、サーバ９０１が、クライアント８０１で生成された署名が正しい署名であるか否かを判定する。
【００３１】
図１に示すシステムには、以下の問題がある。図２は、図１に示すシステムの問題点を示す模式図である。図２に示すように、クライアント８０１には、マルウェア８０４（あるいは、不正なアプリケーションソフトウェア）が組み込まれる場合がある。照合部８０２が、照合情報と登録情報とが合致するか否かの判定を行っていなくても、マルウェア８０４が、照合情報と登録情報とが合致すると判定されたという情報を署名生成部８０３に与えると、署名生成部８０３が署名を生成し、サーバ９０１の検証部９０３が被認証者の認証に成功したと判定してしまうことが生じ得る。すなわち、クライアント８０１が実際には照合情報と登録情報とが合致するか否かの判定を行っていなくても、サーバ９０１が被認証者の認証に成功したと判定してしまうことが生じ得る。
【００３２】
本発明は、このような問題を解決するものである。以下、本発明の各実施形態を説明する。
【００３３】
実施形態１．
図３は、本発明の第１の実施形態の認証システムの構成例を示すブロック図である。認証システムは、クライアント１０と、第１のサーバ３０と、第２のサーバ４０とを備える。図３では、１台のクライアント１０を図示しているが、クライアント１０は複数存在していてもよい。クライアント１０と、第１のサーバ３０と、第２のサーバ４０とは、通信ネットワークを介して通信可能である。
【００３４】
クライアント１０は、公開鍵記憶部１１と、登録情報入力部１２と、秘匿化部１３と、秘匿化情報記憶部１４と、照合情報入力部１５と、秘匿化指標算出部１６と、秘匿化指標送信部１７と、結果受信部１８と、メッセージ受信部１９と、署名鍵記憶部２０と、署名生成部２１と、署名送信部２２とを備える。
【００３５】
第１のサーバ３０は、メッセージ送信部３１と、署名受信部３２と、第１の検証鍵記憶部３３と、署名判定部３４と、第２の検証鍵記憶部３５と、証明書判定部３６と、認証判定部３７とを備える。
【００３６】
第２のサーバ４０は、秘密鍵記憶部４１と、秘匿化指標受信部４２と、判定部４３と、証明鍵記憶部４４と、証明書生成部４５と、結果送信部４６とを備える。
【００３７】
公開鍵記憶部１１は、第２のサーバ４０によって生成され、第２のサーバ４０から送信される公開鍵（ｐｋと記す。）を記憶する記憶装置である。
【００３８】
図示を省略しているが、第２のサーバ４０は、公開鍵ｐｋおよび秘密鍵（ｓｋと記す。）とを生成する手段を備える。公開鍵ｐｋで秘匿化されたデータについては、秘密鍵ｓｋによって秘匿化の解除が可能である。クライアント１０は第２のサーバ４０から公開鍵を受信し、公開鍵記憶部１１に記憶させればよい。また、第２のサーバ４０は、秘密鍵ｓｋを秘密鍵記憶部４１に記憶させる。ただし、公開鍵ｐｋおよび秘密鍵ｓｋは、第２のサーバ４０以外の装置で生成されてもよい。
【００３９】
登録情報入力部１２は、登録情報の入力を受け付ける。各実施形態では、登録情報として、被登録者の生体情報が登録情報入力部１２に入力される。
【００４０】
なお、各実施形態では、登録情報、および、登録情報との照合のために入力される照合情報が、共通の次元のベクトルで表されている場合を例にして説明する。
【００４１】
登録情報入力部１２は、登録情報に応じた入力デバイスであればよい。例えば、指紋から抽出される生体情報を登録情報とする場合、登録情報入力部１２は、指紋を読み取り、その指紋から登録情報となるベクトルを抽出し、そのベクトルの入力を受け付ける入力デバイスであってもよい。また、登録情報入力部１２は、登録情報となるベクトルが直接入力される入力デバイスであってもよい。
【００４２】
なお、生体情報は、指紋以外に、虹彩、網膜、顔、血管（静脈）、掌紋、声紋、またはこれらの組み合わせから抽出されてもよい。生体情報は、上述した例以外の、生体を識別可能な他の情報から抽出されてもよい。
【００４３】
登録情報入力部１２に入力される被登録者の生体情報（登録情報）に該当するベクトルをＸと記す。
【００４４】
秘匿化部１３は、登録情報入力部１２に入力された被登録者の生体情報Ｘを秘匿化し、生体情報Ｘを秘匿化した情報（秘匿化情報と記す。）を、秘匿化情報記憶部１４に記憶させる。秘匿化情報記憶部１４は、秘匿化情報を記憶する記憶装置である。
【００４５】
この秘匿化情報は、生体認証のために予め記憶される、被登録者の生体情報から生成されたデータである。従って、この秘匿化情報は、テンプレートである。なお、公開鍵記憶部１１に記憶される公開鍵ｐｋは、被登録者の生体情報から生成されたデータではないので、公開鍵ｐｋはテンプレートではない。
【００４６】
本実施形態では、秘匿化の具体例として、暗号化を例にして説明する。すなわち、秘匿化部１３は、登録情報入力部１２に入力された被登録者の生体情報Ｘを前述の公開鍵ｐｋによって暗号化し、暗号化された生体情報Ｘ（Ｅｎｃ（Ｘ）と記す。）を、秘匿化情報記憶部１４に記憶させる。
【００４７】
また、各実施形態では、秘匿化部１３が、加法準同型性を有する暗号方式によって、被登録者の生体情報Ｘを暗号化する場合を例にして説明する。すなわち、本例において、公開鍵ｐｋは、加法準同型性を有する公開鍵暗号方式における公開鍵である。
【００４８】
以下、加法準同型性を有する暗号方式の性質について説明する。この説明では、平文ｍを公開鍵ｐｋで暗号化することによって得られる暗号文を、Ｅｎｃ（ｐｋ，ｍ）と記す。また、Ｅｎｃ（ｐｋ，ｍ）をさらに別の記号（例えば、ｃ）で表す場合には、Ｅｎｃ（ｐｋ，ｍ）→ｃと記す。また、以下の説明では、ｘ，ｙが平文の数値であり、ｚが平文の整数であるとする。
【００４９】
加法準同型性を有する暗号方式では、公開鍵ｐｋによるｘの暗号文ｃ１（すなわち、Ｅｎｃ（ｐｋ，ｘ）→ｃ１）と、公開鍵ｐｋによるｙの暗号文ｃ２（すなわち、Ｅｎｃ（ｐｋ，ｙ）→ｃ２）とから、ｘ＋ｙの暗号文Ｅｎｃ（ｐｋ，ｘ＋ｙ）を計算可能である。以下、この演算を、
【数１】
2020121459.tif 000003
で表す。すなわち、以下に示す式（１）が成り立つ。
【００５０】
【数２】
2020121459.tif 000004
【００５１】
また、上記の演算を繰り返すことで、公開鍵ｐｋによるｘの暗号文ｃ１（すなわち、Ｅｎｃ（ｐｋ，ｘ）→ｃ１）と、整数ｚから、ｘ・ｚの暗号文（すなわち、Ｅｎｃ（ｐｋ，ｘ・ｚ））を計算可能であることが分かる。以下、この演算を、
【数３】
2020121459.tif 000005
で表す。すなわち、以下に示す式（２）が成り立つ。
【００５２】
【数４】
2020121459.tif 000006
【００５３】
加法準同型性を有する暗号方式の例として、例えば、ＥＣＥｌｇａｍａｌ暗号等がある。従って、本発明において、ＥＣＥｌｇａｍａｌ暗号を採用してもよい。ただし、ＥＣＥｌｇａｍａｌ暗号は一例であり、本発明では、加法準同型性を有する暗号方式を採用すればよい。
【００５４】
秘匿化情報記憶部１４は、加法準同型性を有する公開鍵暗号方式における公開鍵ｐｋによって、被登録者の生体情報Ｘを暗号化することで得られたＥｎｃ（Ｘ）を、テンプレートとして記憶する。
【００５５】
照合情報入力部１５は、照合情報の入力を受け付ける。各実施形態では、照合情報として、被認証者の生体情報が照合情報入力部１５に入力される。前述のように、登録情報および照合情報は、共通の次元のベクトルで表されている。
【００５６】
照合情報入力部１５は、照合情報に応じた入力デバイスであればよい。例えば、指紋から抽出される生体情報を照合情報とする場合、照合情報入力部１５は、指紋を読み取り、その指紋から照合情報となるベクトルを抽出し、そのベクトルの入力を受け付ける入力デバイスであってもよい。また、照合情報入力部１５は、照合情報となるベクトルが直接入力される入力デバイスであってもよい。また、登録情報入力部１２と照合情報入力部１５とが共通の入力デバイスであってもよい。
【００５７】
照合情報入力部１５に入力される被認証者の生体情報（照合情報）に該当するベクトルをＹと記す。
【００５８】
秘匿化指標算出部１６は、被認証者の生体情報Ｙと、テンプレート（すなわち、被登録者の生体情報Ｘを暗号化することで得られたＥｎｃ（Ｘ））とに基づいて、生体情報Ｘと生体情報Ｙとの近さを示す指標を暗号化したデータ（以下、秘匿化指標と記す。）を算出する。このとき、秘匿化指標算出部１６は、テンプレートＥｎｃ（Ｘ）を復号することなく、秘匿化指標を算出する。
【００５９】
以下、生体情報Ｘと生体情報Ｙとの近さを示す指標として、ＸとＹの内積を採用する場合を例にして説明する。ただし、内積は例示であり、上記の指標は、ＸとＹの内積に限定されない。また、以下では、指標が内積である場合の処理の一例を示す。以下の説明では、生体情報Ｘおよび生体情報Ｙは、いずれもｎ次元のベクトルであるものとする。そして、Ｘの各要素は、Ｘ＝（ｘ１，・・・，ｘｎ）と表され、Ｙの各要素は、Ｙ＝（ｙ１，・・・，ｙｎ）と表されるものとする。また、記号ｉで１，・・・，ｎを表すものとする。
【００６０】
生体情報Ｘと生体情報Ｙとの内積は、Σｘｉ・ｙｉである。
【００６１】
指標が内積である場合、秘匿化部１３は、生体情報Ｘが入力されると、公開鍵ｐｋでＸの各要素ｘ１〜ｘｎをそれぞれ暗号化する。そして、秘匿化部１３は、暗号化した各データをテンプレートとして秘匿化情報記憶部１４に記憶させる。ｘｉを暗号化したデータをＥｎｃ（ｘｉ）と記す。すなわち、本例では、秘匿化部１３は、Ｅｎｃ（ｘ１），・・・，Ｅｎｃ（ｘｎ）を生成し、それらのデータを秘匿化情報記憶部１４に記憶させる。本例では、このＥｎｃ（ｘ１），・・・，Ｅｎｃ（ｘｎ）がテンプレートに該当する。
【００６２】
内積Σｘｉ・ｙｉを暗号化したデータは、Ｅｎｃ（Σｘｉ・ｙｉ）と表される。次に、生体情報Ｙが入力された時に秘匿化指標算出部１６がＥｎｃ（Σｘｉ・ｙｉ）を算出する演算について説明する。
【００６３】
まず、生体情報Ｙ＝（ｙ１，・・・，ｙｎ）が入力されると、秘匿化指標算出部１６は、個々のｉ（ｉ＝１，・・・，ｎ）について、テンプレートに含まれているＥｎｃ（ｘｉ）と、ｙｉとを用いて、
【数５】
2020121459.tif 000007
を計算する。個々のｉについてこの計算を行うので、ｎ個の暗号文が得られる。
【００６４】
次に、秘匿化指標算出部１６は、そのｎ個の暗号文を用いて、
【数６】
2020121459.tif 000008
を計算する。この計算の結果は、Ｅｎｃ（Σｘｉ・ｙｉ）であり、生体情報Ｘと生体情報Ｙとの内積Σｘｉ・ｙｉを暗号化したデータ（秘匿化指標）である。
【００６５】
秘匿化指標送信部１７は、秘匿化指標算出部１６によって算出された秘匿化指標を第２のサーバ４０に送信する。
【００６６】
生体情報Ｘと生体情報Ｙとの近さを示す指標として、ＸとＹの内積ではなく、例えば、「ＸとＹのハミング距離」や、「ＸとＹのユークリッド距離の二乗」を採用してもよい。
【００６７】
説明を分かり易くするために、以下では、第２のサーバ４０が備える要素について説明する。まだ、クライアント１０の要素のうち、まだ説明していない要素については、後述する。
【００６８】
秘匿化指標受信部４２は、クライアント１０の秘匿化指標送信部１７が送信した秘匿化指標を受信する。
【００６９】
秘密鍵記憶部４１は、公開鍵ｐｋと対になる秘密鍵ｓｋを記憶する記憶装置である。前述のように、図示を省略しているが、第２のサーバ４０は、公開鍵ｐｋおよび秘密鍵ｓｋを生成する手段を備え、秘密鍵記憶部４１は、その秘密鍵ｓｋを記憶する。
【００７０】
判定部４３は、秘密鍵記憶部４１に記憶されている秘密鍵ｓｋによって、秘匿化指標受信部４２が受信した秘匿化指標（指標を暗号化したデータ）から指標を復号する。なお、復号は、秘匿化の解除であると言うことができる。指標は数値であり、判定部４３は、秘匿化指標から復号された指標が、予め定められた所定範囲内の値であるか否かを判定することによって、生体情報Ｘと生体情報Ｙとが合致するか否か（換言すれば、被登録者と被認証者とが合致するか否か）を判定する。すなわち、判定部４３は、秘匿化指標から復号された指標が、所定範囲内の値であるならば、生体情報Ｘと生体情報Ｙとが合致すると判定する（換言すれば、被登録者と被認証者とが合致すると判定する）。また、判定部４３は、秘匿化指標から復号された指標が、所定範囲内の値でないならば、生体情報Ｘと生体情報Ｙとが合致しないと判定する（換言すれば、被登録者と被認証者とが合致しないと判定する）。
【００７１】
上記のように、秘匿化指標から復号された指標が、所定範囲内の値であるか否かによって、生体情報Ｘと生体情報Ｙとが合致するか否かを判定する。従って、生体情報Ｘと生体情報Ｙとが完全に一致していなくても（問題にならない程度のずれが生じていても）、指標が所定範囲内の値であれば、生体情報Ｘと生体情報Ｙとが合致すると判定し得る。なお、所定範囲を用いる処理は、問題にならない程度のずれが生じていても生体情報Ｘと生体情報Ｙとが合致すると判定する処理の一例である。
【００７２】
証明鍵記憶部４４は、生体情報Ｘと生体情報Ｙとが合致すると判定されたことを示す証明書の生成時に用いる証明鍵（ｓａｋと記す。）を記憶する記憶装置である。図示を省略しているが、第２のサーバ４０は、証明鍵ｓａｋと、第２の検証鍵（ｐａｋと記す。）とを生成する手段を備える。第２の検証鍵ｐａｋによって、証明書が与えられたときに、その証明書が正しい証明書であるか否かを判定することができる。証明書が正しい証明書であるか否かの判定については、後述する。第２のサーバ４０は、証明鍵ｓａｋおよび第２の検証鍵ｐａｋを予め生成し、証明鍵ｓａｋを証明鍵記憶部４４に記憶させ、第２の検証鍵ｐａｋを第１のサーバ３０に送信する。そして、第２の検証鍵ｐａｋは、第１のサーバ３０の第２の検証鍵記憶部３５に記憶される。ただし、証明鍵ｓａｋおよび第２の検証鍵ｐａｋは、第２のサーバ４０以外の装置で生成されてもよい。
【００７３】
本例では、証明鍵ｓａｋは、公開鍵方式における秘密鍵であり、第２の検証鍵ｐａｋは、公開鍵方式における公開鍵であるものとする。
【００７４】
証明書生成部４５は、生体情報Ｘと生体情報Ｙとが合致すると判定された場合に、そのことを示す証明書を、証明鍵ｓａｋを用いて生成する。本例では、証明書は、データと、そのデータに基づいて証明鍵ｓａｋによって生成された署名との組であるものとする。
【００７５】
証明書生成部４５が証明書を生成するために用いるデータとして、例えば、クライアント１０のＩＤ（IDentification）、第２のサーバ４０のＩＤ、タイムスタンプ（例えば、クライアント１０から秘匿化指標を受信した時刻のタイムスタンプ）、クライアント１０が第１のサーバ３０から受信するメッセージ、または、クライアント１０と第２のサーバ４０との間のセッションＩＤ等、あるいは、それらのデータから生成されたデータを用いることができる。すなわち、証明書生成部４５は、例えば、上記のデータのうち１つまたは複数、あるいは、それらから生成されたデータと、証明鍵ｓａｋを用いてそのデータに基づいて生成した署名との組を、証明書とすればよい。
【００７６】
なお、クライアント１０が第１のサーバ３０から受信するメッセージとは、第１のサーバ３０（具体的には、メッセージ送信部３１）がチャレンジレスポンス方式におけるチャレンジとしてクライアント１０に送信するメッセージである。このメッセージやクライアント１０のＩＤを証明書生成時に用いる場合には、クライアント１０の秘匿化指標送信部１７が、秘匿化指標とともに、クライアント１０のＩＤまたはメッセージを第２のサーバ４０に送信すればよい。
【００７７】
なお、証明書を生成するために用いるデータは、上記の例に限定されない。
【００７８】
また、判定部４３によって生体情報Ｘと生体情報Ｙとが合致しないと判定された場合には、証明書生成部４５は証明書を生成しない。
【００７９】
結果送信部４６は、判定部４３の判定結果をクライアント１０に送信する。さらに、結果送信部４６は、生体情報Ｘと生体情報Ｙとが合致すると判定されたことによって、証明書生成部４５によって証明書（生体情報Ｘと生体情報Ｙとが合致すると判定されたことを示す証明書）が生成された場合には、判定部４３の判定結果とともにその証明書も、クライアント１０に送信する。
【００８０】
以下、クライアント１０の要素のうちまだ説明していない要素について、説明する。
【００８１】
結果受信部１８は、結果送信部４６が送信した判定部４３の判定結果を受信し、結果送信部４６が判定結果とともに証明書も送信した場合には、その証明書も受信する。
【００８２】
以下に説明するクライアント１０の要素は、生体情報Ｘと生体情報Ｙとが合致すると判定された場合に関する要素である。従って、結果受信部１８が、生体情報Ｘと生体情報Ｙとが合致するという判定結果、および、証明書を第２のサーバ４０から受信したものとして説明する。
【００８３】
メッセージ受信部１９は、第１のサーバ３０（具体的には、メッセージ送信部３１）が送信するメッセージを受信する。このメッセージは、チャレンジレスポンス方式におけるチャレンジに該当する。
【００８４】
署名鍵記憶部２０は、メッセージ受信部１９が受信したメッセージ（チャレンジ）に基づいて署名を生成する際に用いる署名鍵（ｓｕｋと記す。）を記憶する記憶装置である。図示を省略しているが、クライアント１０は、署名鍵ｓｕｋと、第１の検証鍵（ｐｕｋと記す。）とを生成する手段を備える。第１の検証鍵ｐｕｋによって、署名とメッセージが与えられたときに、その署名が正しい署名であるか否かを判定することができる。クライアント１０は、署名鍵ｓｕｋおよび第１の検証鍵ｐｕｋを予め生成し、署名鍵ｓｕｋを署名鍵記憶部２０に記憶させ、第１の検証鍵ｐｕｋを第１のサーバ３０に送信する。そして、第１の検証鍵ｐｕｋは、第１のサーバ３０の第１の検証鍵記憶部３３に記憶される。ただし、署名鍵ｓｕｋおよび第１の検証鍵ｐｕｋは、クライアント１０以外の装置で生成されてもよい。
【００８５】
本例では、署名鍵ｓｕｋは、公開鍵方式における秘密鍵であり、第１の検証鍵ｐｕｋは、公開鍵方式における公開鍵であるものとする。
【００８６】
署名生成部２１は、結果受信部１８が、生体情報Ｘと生体情報Ｙとが合致するという判定結果を第２のサーバ４０から受信した場合に、署名を生成する。署名生成部２１は、メッセージ受信部１９が第１のサーバ３０から受信したメッセージ（チャレンジ）に基づいて、署名鍵ｓｕｋを用いて、署名を生成する。署名生成部２１によって生成された署名は、チャレンジレスポンス方式におけるレスポンスに該当する。
【００８７】
なお、クライアント１０がメッセージを第１のサーバ３０から取得するタイミングは、署名生成前であればよい。例えば、予め、メッセージ送信部３１がクライアント１０にメッセージを送信し、メッセージ受信部１９がそのメッセージを受信し、メッセージ受信部１９が、署名生成時までそのメッセージを保持していてもよい。また、例えば、結果受信部１８が第２のサーバ４０から、生体情報Ｘと生体情報Ｙとが合致するという判定結果、および、証明書を受信した時点で、メッセージ受信部１９が第１のサーバ３０にメッセージの送信を要求し、その要求に応じてメッセージ送信部３１が送信したメッセージを受信し、その後、署名生成部２１が署名を生成してもよい。
【００８８】
署名送信部２２は、署名生成部２１が生成した署名と、結果受信部１８が第２のサーバ４０から受信した証明書とを、第１のサーバ３０に送信する。
【００８９】
以下、第１のサーバ３０が備える要素について説明する。
【００９０】
メッセージ送信部３１は、チャレンジレスポンス方式におけるチャレンジに該当するメッセージを生成し、そのメッセージをクライアント１０に送信する。このメッセージは、メッセージ受信部１９によって受信される。
【００９１】
署名受信部３２は、クライアント１０の署名送信部２２が送信した署名および証明書を受信する。
【００９２】
第１の検証鍵記憶部３３は、クライアント１０によって生成され、クライアント１０から送信される第１の検証鍵ｐｕｋを記憶する記憶装置である。前述のように、クライアント１０は、署名鍵ｓｕｋと第１の検証鍵ｐｕｋとを生成する手段を備え、第１の検証鍵ｐｕｋを予め第１のサーバ３０に送信する。第１のサーバ３０は、第１の検証鍵ｐｕｋを受信し、第１の検証鍵ｐｕｋを第１の検証鍵記憶部３３に予め記憶させておく。
【００９３】
第２の検証鍵記憶部３５は、第２のサーバ４０によって生成され、第２のサーバ４０から送信される第２の検証鍵ｐａｋを記憶する記憶装置である。前述のように、第２のサーバ４０は、証明鍵ｓａｋと第２の検証鍵ｐａｋとを生成する手段を備え、第２の検証鍵ｐａｋを予め第１のサーバ３０に送信する。第１のサーバ３０は、第２の検証鍵ｐａｋを受信し、第２の検証鍵ｐａｋを第２の検証鍵記憶部３５に予め記憶させておく。
【００９４】
署名判定部３４は、第１の検証鍵ｐｕｋと、メッセージ送信部３１がクライアント１０に送信したメッセージ（チャレンジに該当するメッセージ）と、署名受信部３２がクライアント１０から受信した署名とを用いて、署名が正しい署名であるか否かを判定する。換言すれば、署名判定部３４は、受信した署名が、そのメッセージに基づいて、第１の検証鍵ｐｕｋと対になる署名鍵ｓｕｋを用いて生成された署名であるか否かを判定する。受信した署名が、そのメッセージに基づいて、第１の検証鍵ｐｕｋと対になる署名鍵ｓｕｋを用いて生成された署名であるならば、受信した署名は、正しい署名である。そうでなければ、受信した署名は、不正な署名である。
【００９５】
証明書判定部３６は、第２の検証鍵ｐａｋと、署名受信部３２がクライアント１０から受信した証明書とを用いて、その証明書が正しい証明書であるか否かを判定する。前述のように、証明書はデータと署名との組である。証明書に含まれる署名が、その証明書に含まれるデータに基づいて、第２の検証鍵ｐａｋと対になる証明鍵ｓａｋを用いて生成された署名であるならば、その証明書は、正しい証明書である。そうでなければ、その証明書は、不正な証明書である。従って、証明書判定部３６は、クライアント１０から受信した証明書に含まれる署名が、その証明書に含まれるデータに基づいて、第２の検証鍵ｐａｋと対になる証明鍵ｓａｋを用いて生成された署名であるであるか否かを判定することによって、受信した証明書が正しい証明書であるか否かを判定すればよい。
【００９６】
認証判定部３７は、署名判定部３４の判定結果と、証明書判定部３６の判定結果とに基づいて、被認証者の認証に成功したか失敗したかを判定する。具体的には、認証判定部３７は、署名判定部３４によって、署名が正しい署名であると判定され、かつ、証明書判定部３６によって、証明書が正しい証明書であると判定された場合に、被認証者の認証に成功したと判定する（換言すれば、被認証者が被登録者であると確定する）。すなわち、署名が正しい署名であると判定されたという条件と、証明書が正しい証明書であると判定されたという条件の両方が満たされた場合に、認証判定部３７は、被認証者の認証に成功したと判定する。
【００９７】
一方、上記の２つの条件のうちのいずれか一方、または、両方が満たされなかった場合には、認証判定部３７は、被認証者の認証に失敗したと判定する（換言すれば、被認証者が被登録者でないと判定する）。
【００９８】
認証判定部３７が被認証者の認証に成功したと判定した場合に、認証後の処理を実行すればよい。例えば、一例として、第１のサーバ３０が被認証者の認証に成功した旨の情報をクライアント１０に送信し、クライアント１０はその情報を受信した場合に、認証後の処理を実行してもよい。ただし、認証後の処理を実行する装置は、クライアント１０に限定されず、認証判定部３７が被認証者の認証に成功したと判定したことを条件に、クライアント１０以外の装置が認証後の処理を実行してもよい。
【００９９】
クライアント１０において、秘匿化指標送信部１７、結果受信部１８、メッセージ受信部１９および署名送信部２２は、例えば、クライアント用プログラムに従って動作するコンピュータのＣＰＵ（Central Processing Unit ）、および、そのコンピュータの通信インタフェースによって実現される。例えば、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体からクライアント用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、秘匿化指標送信部１７、結果受信部１８、メッセージ受信部１９および署名送信部２２として動作すればよい。また、秘匿化部１３、秘匿化指標算出部１６および署名生成部２１は、例えば、クライアント用プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、ＣＰＵが上記のようにプログラム記録媒体からクライアント用プログラムを読み込み、そのプログラムに従って、秘匿化部１３、秘匿化指標算出部１６および署名生成部２１として動作すればよい。また、公開鍵記憶部１１、秘匿化情報記憶部１４および署名鍵記憶部２０は、例えば、クライアント１０を実現するコンピュータが備える記憶装置によって実現される。
【０１００】
また、第２のサーバ４０において、秘匿化指標受信部４２および結果送信部４６は、例えば、サーバ用プログラムに従って動作するコンピュータのＣＰＵ、および、そのコンピュータの通信インタフェースによって実現される。例えば、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、秘匿化指標受信部４２および結果送信部４６として動作すればよい。また、判定部４３および証明書生成部４５は、例えば、サーバ用プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、ＣＰＵが上記のようにプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、判定部４３および証明書生成部４５として動作すればよい。また、秘密鍵記憶部４１および証明鍵記憶部４４は、例えば、第２のサーバ４０を実現するコンピュータが備える記憶装置によって実現される。
【０１０１】
また、第１のサーバ３０において、メッセージ送信部３１および署名受信部３２は、例えば、サーバ用プログラムに従って動作するコンピュータのＣＰＵ、および、そのコンピュータの通信インタフェースによって実現される。例えば、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、メッセージ送信部３１および署名受信部３２として動作すればよい。また、署名判定部３４、証明書判定部３６および認証判定部３７は、例えば、サーバ用プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、ＣＰＵが上記のようにプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、署名判定部３４、証明書判定部３６および認証判定部３７として動作すればよい。また、第１の検証鍵記憶部３３および第２の検証鍵記憶部３５は、例えば、第１のサーバ３０を実現するコンピュータが備える記憶装置によって実現される。
【０１０２】
本実施形態では、第１のサーバ３０と第２のサーバ４０は、別のサーバであるので、第１のサーバ３０に搭載されるサーバ用プログラムと、第２のサーバ４０に搭載されるサーバ用プログラムは別のプログラムである。
【０１０３】
以下、第１の実施形態の処理経過について説明する。以下の説明では、既に、クライアント１０が備える公開鍵記憶部１１には公開鍵ｐｋが記憶され、署名鍵記憶部２０には署名鍵ｓｕｋが記憶され、秘匿化情報記憶部１４には、テンプレートＥｎｃ（Ｘ）（本例では、Ｅｎｃ（ｘ１），・・・，Ｅｎｃ（ｘｎ））が記憶されているものとする。同様に、既に、第２のサーバ４０が備える秘密鍵記憶部４１には秘密鍵ｓｋが記憶され、証明鍵記憶部４４には証明鍵ｓａｋが記憶されているものとする。同様に、既に、第１のサーバ３０が備える第１の検証鍵記憶部３３には第１の検証鍵ｐｕｋが記憶され、第２の検証鍵記憶部３５には第２の検証鍵ｐａｋが記憶されているものとする。また、以下に示す例では、クライアント１０のメッセージ受信部１９は、予め第１のサーバ３０のメッセージ送信部３１から、チャレンジに該当するメッセージを受信し、そのメッセージを保持しているものとする。
【０１０４】
図４は、クライアント１０に被認証者の生体情報Ｙが入力されてから、第２のサーバ４０に生成された証明書をクライアント１０が受信するまでの処理経過の例を示すフローチャートである。なお、既に説明した事項については、詳細な説明を省略する。
【０１０５】
まず、被認証者の生体情報Ｙが照合情報入力部１５に入力される（ステップＳ１１）。
【０１０６】
次に、秘匿化指標算出部１６は、ステップＳ１１で入力された生体情報Ｙと、秘匿化情報記憶部１４に記憶されているテンプレート（Ｅｎｃ（Ｘ））とに基づいて、生体情報Ｘと生体情報Ｙとの近さを示す指標を暗号化したデータである秘匿化指標を算出する（ステップＳ１２）。ステップＳ１２において、秘匿化指標算出部１６は、Ｅｎｃ（Ｘ）を復号することなく、秘匿化指標を算出する。
【０１０７】
本例では、上記の指標として生体情報Ｘと生体情報Ｙの内積を採用する。すなわち、秘匿化指標算出部１６は、生体情報Ｙとテンプレートとに基づいて、生体情報Ｘと生体情報Ｙの内積を暗号化したデータ（秘匿化指標）を算出する。この暗号化された内積の算出方法については、既に説明したので、ここでは説明を省略する。また、前述のように、指標は内積に限定されず、指標として、例えば、「ＸとＹのハミング距離」や、「ＸとＹのユークリッド距離の二乗」を採用してもよい。
【０１０８】
次に、秘匿化指標送信部１７は、ステップＳ１２で算出された秘匿化指標を第２のサーバ４０に送信する（ステップＳ１３）。
【０１０９】
そして、第２のサーバ４０の秘匿化指標受信部４２は、その秘匿化指標をクライアント１０から受信する（ステップＳ１４）。
【０１１０】
次に、判定部４３は、秘密鍵記憶部４１に記憶されている秘密鍵ｓｋによって、秘匿化指標から指標を復号する（ステップＳ１５）。さらに、判定部４３は、秘匿化指標から復号された指標が、予め定められた所定範囲内の値であるか否かを判定することによって、生体情報Ｘと生体情報Ｙとが合致するか否かを判定する（ステップＳ１６）。
【０１１１】
図４では、ステップＳ１６で、生体情報Ｘと生体情報Ｙとが合致すると判定された場合を示している。ステップＳ１６で、生体情報Ｘと生体情報Ｙとが合致すると判定されると、証明書生成部４５は、証明鍵記憶部４４に記憶されている証明鍵ｓａｋを用いて、証明書を生成する（ステップＳ１７）。
【０１１２】
ステップＳ１７の後、結果送信部４６は、生体情報Ｘと生体情報Ｙとが合致するという判定結果、および、ステップＳ１７で生成された証明書を、クライアント１０に送信する（ステップＳ１８）。
【０１１３】
クライアント１０の結果受信部１８は、その判定結果および証明書を、第２のサーバ４０から受信する（ステップＳ１９）。
【０１１４】
ステップＳ１６で、生体情報Ｘと生体情報Ｙとが合致しないと判定された場合には、証明書生成部４５は証明書を生成しない（すなわち、ステップＳ１７は実行されない）。そして、ステップＳ１８において、結果送信部４６は、生体情報Ｘと生体情報Ｙとが合致しないという判定結果をクライアント１０に送信する。この場合、証明書は生成されないので、結果送信部４６は、証明書を送信しない。そして、クライアント１０の結果受信部１８は、生体情報Ｘと生体情報Ｙとが合致しないという判定結果を受信する。クライアント１０の結果受信部１８が生体情報Ｘと生体情報Ｙとが合致しないという判定結果を受信した場合、生体情報Ｙの入力に対する処理を終了する。
【０１１５】
図５は、クライアント１０が、生体情報Ｘと生体情報Ｙとが合致するという判定結果、および、証明書を、第２のサーバ４０から受信した後の処理経過の例を示すフローチャートである。なお、既に説明した事項については、詳細な説明を省略する。
【０１１６】
クライアント１０の結果受信部１８が、生体情報Ｘと生体情報Ｙとが合致するという判定結果、および、証明書を、第２のサーバ４０から受信した場合、署名生成部２１は、メッセージ受信部１９が既に第１のサーバ３０から受信しているメッセージ（チャレンジ）に基づいて、署名鍵ｓｕｋを用いて署名を生成する（ステップＳ３１）。前述のように、この署名は、チャレンジレスポンス方式におけるレスポンスに該当する。
【０１１７】
なお、既に説明したように、結果受信部１８が第２のサーバ４０から、生体情報Ｘと生体情報Ｙとが合致するという判定結果、および、証明書を受信した時点で、メッセージ受信部１９が第１のサーバ３０にメッセージの送信を要求し、その要求に応じてメッセージ送信部３１が送信したメッセージをメッセージ受信部１９が受信し、その後、署名生成部２１が署名を生成してもよい。
【０１１８】
ステップＳ３１の後、署名送信部２２は、ステップＳ３１で生成された署名と、結果受信部１８が第２のサーバ４０から受信した証明書とを、第１のサーバ３０に送信する（ステップＳ３２）。
【０１１９】
第１のサーバ３０の署名受信部３２は、その署名および証明書をクライアント１０から受信する（ステップＳ３３）。
【０１２０】
次に、署名判定部３４は、第１の検証鍵ｐｕｋと、メッセージ送信部３１が事前にクライアント１０に送信したメッセージと、ステップＳ３３で署名受信部３２がクライアント１０から受信した署名とを用いて、その署名が正しい署名であるか否かを判定する（ステップＳ３４）。
【０１２１】
また、証明書判定部３６は、第２の検証鍵ｐａｋと、ステップＳ３３で署名受信部３２がクライアント１０から受信した証明書とを用いて、その証明書が正しい証明書であるか否かを判定する（ステップＳ３５）。
【０１２２】
ステップＳ３４およびステップＳ３５の順序は問わない。ステップＳ３４およびステップＳ３５が並列に実行されてもよい。
【０１２３】
そして、認証判定部３７は、署名判定部３４の判定結果と、証明書判定部３６の判定結果とに基づいて、被認証者の認証に成功したか失敗したかを判定する（ステップＳ３６）。署名が正しい署名であると判定されたという条件と、証明書が正しい証明書であると判定されたという条件の両方が満たされた場合に、認証判定部３７は、被認証者の認証に成功したと判定する。上記の２つの条件のうちのいずれか一方、または、両方が満たされなかった場合には、認証判定部３７は、被認証者の認証に失敗したと判定する。
【０１２４】
図４および図５を参照して説明した処理は、繰り返し実行されてよい。
【０１２５】
本実施形態によれば、クライアント１０が、秘匿化指標算出部１６で算出した秘匿化指標を第２のサーバ４０に送信する。そして、第２のサーバ４０では、判定部４３が、秘匿化指標から指標を復号し、復号によって得られた指標に基づいて、照合情報と登録情報とが合致するか否かを判定する。照合情報と登録情報とが合致すると判定した場合、証明書生成部４５が、証明鍵ｓａｋを用いて、その旨を示す証明書を生成する。そして、第２のサーバ４０は、照合情報と登録情報とが合致するという判定結果、および、証明書を、クライアント１０に送信する。すると、クライアント１０において、署名生成部２１は、第１のサーバ３０から取得したメッセージに基づいて、署名鍵ｓｕｋを用いて署名を生成する。そして、クライアント１０は、署名（メッセージに対するレスポンス）および証明書を第１のサーバ３０に送信する。第１のサーバ３０では、署名判定部３４が、第１の検証鍵ｐｕｋとメッセージと署名とを用いて、署名が正しい署名であるか否かを判定する。また、証明書判定部３６が、第２の検証鍵ｐａｋと証明書とを用いて、証明書が正しい証明書であるか否かを判定する。そして、認証判定部３７は、署名が正しい署名であると判定されたという条件と、証明書が正しい証明賞であると判定されたという条件の両方が満たされた場合に、被認証者の認証に成功したと判定する。
【０１２６】
従って、クライアント１０にマルウェアや不正なアプリケーションソフトウェアが組み込まれたとしても、マルウェアや不正なアプリケーションソフトウェアに起因して、認証に成功したと判定することを防止することができる。すなわち、実際には照合情報と登録情報とが合致するか否かの判定が行われていなくても、マルウェア等が、照合情報と登録情報とが合致するという偽の判定結果を署名生成部２１に与えることによって、署名生成部２１が、署名鍵ｓｕｋを用いて、メッセージに基づいて署名を生成したとする。そして、その署名が第１のサーバ３０に送信され、署名判定部３４が、署名が正しい署名であると判定したとする。しかし、この場合、実際には照合情報と登録情報とが合致するか否かの判定が行われていないので、第２のサーバ４０の証明書生成部４５が証明書を生成しない。従って、第１のサーバ３０において、証明書判定部３６は、証明書が正しい証明書であるか否かを判定しない。その結果、認証判定部３７が、被認証者の認証に成功したと判定することはない。さらに、クライアント１０に組み込まれたマルウェア等が証明書を偽造して、その証明書を第１のサーバ３０に送信したとしても、クライアント１０やマルウェアは、第２の証明鍵ｐａｋと対になる証明鍵ｓａｋを持たないため、証明書判定部３６は、偽造された証明書が正しい証明書であると判定することはない。このように、本実施形態では、２つの要素を利用した認証を行う場合において、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止できるという効果が得られる。
【０１２７】
次に、上記の実施形態の種々の変形例について説明する。
【０１２８】
上記の実施形態では、クライアント１０と第２のサーバ４０とが、秘匿化指標を授受することによって、第２のサーバ４０の判定部４３が、生体情報Ｘと生体情報Ｙとが合致するか否かを判定する。判定部４３が判定結果を導出する際のクライアント１０と第２のサーバ４０との通信において、チャレンジレスポンス方式を適用してもよい。
【０１２９】
また、クライアント１０の秘匿化部１３はテンプレートを生成する際に乱数を用いてテンプレートを生成してもよい。この場合、クライアント１０は、テンプレート生成後に、その乱数を第２のサーバ４０に送信し、その後、その乱数を消去する。第２のサーバ４０は、乱数を受信すると、クライアント１０にＩＤを割り当て、そのＩＤをクライアント１０に通知する。クライアント１０の秘匿化指標送信部１７は、秘匿化指標を第２のサーバ４０に送信する際、そのＩＤも送信する。第２のサーバ４０は、秘匿化指標から指標を復号する際、そのＩＤに対応する乱数も用いて指標を復号すればよい。
【０１３０】
従って、生体情報Ｘと生体情報Ｙとが合致するか否かの判定のためにクライアント１０から第２のサーバ４０に送信されるデータは、上記の第１の実施形態で説明した秘匿化情報（ＸとＹの内積を暗号化したデータ）に限定されない。
【０１３１】
これらの点は、他の実施形態でも同様である。
【０１３２】
また、上記の実施形態では、証明書は、第２のサーバ４０からクライアント１０を介して第１のサーバ３０に送られる。第２のサーバ４０が証明書を、通信ネットワークを介して直接、第１のサーバ３０に送信してもよい。この場合、第２のサーバ４０の結果送信部４６は、生体情報Ｘと生体情報Ｙとが合致するという判定結果をクライアント１０に送信するとともに、証明書を、通信ネットワークを介して直接、第１のサーバ３０に送信すればよい。そして、第１のサーバ３０において、例えば、署名受信部３２が、その証明書を受信すればよい。
【０１３３】
クライアント１０において、結果受信部１８がその判定結果を受信すると、署名生成部２１が署名を生成し、署名送信部２２がその署名を、第１のサーバ３０に送信すればよい。そして、第１のサーバ３０がその署名を受信すればよい。このように、第１のサーバ３０が、第２のサーバ４０から証明書を受信し、クライアント１０から署名を受信した後、第１のサーバ３０は、ステップＳ３４（図５参照）以降の処理を行えばよい。
【０１３４】
ここで、第１のサーバ３０は、署名と証明書の対応付けを認識する必要がある。そのため、本変形例では、第１のサーバ３０に送信される署名および証明書は、両者の対応が確認できるデータとともに第１のサーバ３０に送信される。両者（署名および証明書）の対応が確認できるデータは、例えば、その両者に共通のデータであってもよい。以下、両者の対応が確認できるデータが、両者に共通のデータである場合を例にして説明する。この共通のデータとして、例えば、クライアント１０と第２のサーバ４０との間の通信のセッションＩＤや、第１のサーバ３０がクライアント１０に送信するメッセージ（チャレンジ）、これらの組合せ、または、これらの１つまたは複数、あるいは、それらから生成されたデータを用いることができる。ただし、これらのデータは例示であり、上記の共通のデータは、セッションＩＤやメッセージ等に限定されない。
【０１３５】
共通のデータがセッションＩＤである場合における処理の一例を説明する。結果送信部４６は、第１のサーバ３０に証明書を送信するときに、クライアント１０と第２のサーバ４０との間の通信のセッションＩＤとともに証明書を第１のサーバ３０に送信する。この場合、クライアント１０の署名送信部２２は、署名生成部２１によって生成された署名を第１のサーバ３０に送信するときに、そのセッションＩＤとともに署名を第１のサーバ３０に送信する。そして、第１のサーバ３０は、セッションＩＤが共通である署名および証明書に対して、ステップＳ３４（図５参照）以降の処理を行えばよい。
【０１３６】
共通のデータがメッセージ（チャレンジ）である場合における処理の一例を説明する。この場合、例えば、秘匿化指標送信部１７が、秘匿化指標とともにメッセージを第２のサーバ４０に送信すればよい。ただし、クライアント１０から第２のサーバ４０へのメッセージの送信態様は、上記の例に限定されない。結果送信部４６は、第１のサーバ３０に証明書を送信するときに、クライアント１０から受信したメッセージとともに証明書を第１のサーバ３０に送信する。この場合、クライアント１０の署名送信部２２は、署名生成部２１によって生成された署名を第１のサーバ３０に送信するときに、そのメッセージとともに署名を第１のサーバ３０に送信する。そして、第１のサーバ３０は、メッセージが共通である署名および証明書に対して、ステップＳ３４（図５参照）以降の処理を行えばよい。
【０１３７】
また、上記の実施形態では、証明鍵ｓａｋが、公開鍵方式における秘密鍵であり、第２の検証鍵ｐａｋが、公開鍵方式における公開鍵である場合を例にして説明した。証明鍵ｓａｋおよび第２の検証鍵ｐａｋが、共通鍵方式における共通鍵であってもよい。
【０１３８】
さらに、証明鍵ｓａｋおよび第２の検証鍵ｐａｋが、共通鍵方式における共通鍵である場合、証明書生成部４５が生成する証明書は、データと、メッセージ認証コード（Message Authentication Code ：ＭＡＣ）における、そのデータを用いて生成されるタグとの組であってもよい。メッセージ認証コードにおけるタグは、データと、タグ生成時に用いる鍵によって生成される。そして、データおよび鍵の組が共通であれば、生成されるタグも共通である。ここでは、タグ生成時に用いるデータが、タイムスタンプ（例えば、クライアント１０から秘匿化指標を受信した時刻のタイムスタンプ）である場合を例にして説明する。ただし、タグ生成時に用いるデータは、タイムスタンプに限定されず、証明書を生成するために用いるデータとして例示した種々のデータ（クライアント１０のＩＤ等の種々のデータ）であってもよい。
【０１３９】
証明書生成部４５は、証明鍵ｓａｋと、タイムスタンプとを用いて、メッセージ認証コードにおけるタグを生成する。そして、タイムスタンプと生成されたタグとの組が、証明書として第１のサーバ３０に送られる。証明書が第２のサーバ４０から第１のサーバ３０に送られる態様は、クライアント１０を介して第１のサーバ３０に送られる態様であってもよく、あるいは、クライアント１０を介さずに、第２のサーバ４０から直接、第１のサーバ３０に送られる態様であってもよい。前者の態様の場合、結果送信部４６が、証明書をクライアント１０に送信し、署名送信部２２がその証明書と署名とを第１のサーバ３０に送信すればよい。後者の場合、結果送信部４６が、証明書を、通信ネットワークを介して直接第１のサーバ３０に送信すればよい。
【０１４０】
第１のサーバ３０において、例えば、署名受信部３２が証明書を受信すると、証明書判定部３６は、証明書生成時（タグ生成時）に用いられた証明鍵が第２の検証鍵ｐａｋと対になる証明鍵ｓａｋであるか否かを判定することによって証明書が正しい証明書であるか否かを判定すればよい。すなわち、証明書判定部３６は、第２の検証鍵ｐａｋと、取得した証明書に含まれるタイムスタンプとを用いて、メッセージ認証コードにおけるタグを生成する。証明書判定部３６は、生成したタグと、取得した証明書に含まれるタグとが一致していれば、証明書生成時（タグ生成時）に用いられた証明鍵が第２の検証鍵ｐａｋと対になる証明鍵ｓａｋであると判定する。この場合、証明書判定部３６は、受信した証明書が正しい証明書であると判定する。また、証明書判定部３６は、生成したタグと、取得した証明書に含まれるタグとが一致していなければ、証明書生成時（タグ生成時）に用いられた証明鍵が第２の検証鍵ｐａｋと対になる証明鍵ｓａｋではないと判定する。この場合、証明書判定部３６は、受信した証明書が不正な証明書であると判定する。
【０１４１】
また、第１のサーバ３０とクライアント１０との間のチャレンジレスポンスの授受が複数回行われる毎に、ステップＳ３４〜Ｓ３６の処理を実行する構成であってもよい。すなわち、第１のサーバ３０がクライアント１０にメッセージ（チャレンジ）を送信し、第１のサーバ３０は、署名（レスポンス）および証明書を取得するが、このチャレンジレスポンスの授受が複数回行われる毎に、ステップＳ３４〜Ｓ３６の処理を実行すればよい。換言すれば、ステップＳ３４〜Ｓ３６の処理を毎回は行わない構成であってもよい。この場合、ステップＳ３４〜Ｓ３６の処理を行わないときには、例えば、ステップＳ３５の処理を省略してよい。そして、認証判定部３７は、署名判定部３４によって、署名が正しい署名であると判定されたならば、被認証者の認証に成功したと判定し、署名が不正な署名であると判定されたならば、被認証者の認証に失敗したと判定してもよい。この点は、他の実施形態でも同様である。
【０１４２】
さらに、第１のサーバ３０は、通常とは異なる事象を検出したとき、証明書の送信元が所定の送信元（例えば、攻撃者と認められる送信元）であるとき、あるいは、証明書の送信元が所定の送信元（ここでは、例えば、正規ユーザに該当する送信元）でないときに、ステップＳ３４〜Ｓ３６の処理を実行し、その他の場合には、ステップＳ３５の処理を省略する構成であってもよい。ステップＳ３５の処理を省略する場合、上記のように、認証判定部３７は、署名判定部３４によって、署名が正しい署名であると判定されたならば、被認証者の認証に成功したと判定し、署名が不正な署名であると判定されたならば、被認証者の認証に失敗したと判定すればよい。この点は、他の実施形態でも同様である。
【０１４３】
実施形態２．
図６は、本発明の第２の実施形態の認証システムの構成例を示すブロック図である。第１の実施形態と同様の要素については、図３と同一の符号を付し、第１の実施形態と同様の動作に関しては説明を省略する。
【０１４４】
第２の実施形態の認証システムは、クライアント１０と、サーバ５０とを備える。クライアント１０は複数存在していてもよい。クライアント１０とサーバ５０とは、通信ネットワークを介して通信可能である。
【０１４５】
第２の実施形態におけるクライアント１０が備える各要素は、第１の実施形態におけるクライアント１０が備える各要素と同様である。
【０１４６】
サーバ５０は、メッセージ送信部３１と、署名受信部３２と、第１の検証鍵記憶部３３と、署名判定部３４と、認証判定部３７と、秘密鍵記憶部４１と、秘匿化指標受信部４２と、判定部４３と、結果送信部４６とを備える。
【０１４７】
以下の説明では、既に、クライアント１０が備える公開鍵記憶部１１には公開鍵ｐｋが記憶され、署名鍵記憶部２０には署名鍵ｓｕｋが記憶されているものとする。また、既に、サーバ５０が備える秘密鍵記憶部４１には秘密鍵ｓｋが記憶され、第１の検証鍵記憶部３３には第１の検証鍵ｐｕｋが記憶されているものとする。
【０１４８】
判定部４３が生体情報Ｘと生体情報Ｙとが合致するか否かを判定するまでの動作は、第１の形態において、判定部４３が生体情報Ｘと生体情報Ｙとが合致するか否かを判定するまでの動作と同様であるので、説明を省略する。
【０１４９】
第２の実施形態では、判定部４３は、生体情報Ｘと生体情報Ｙとが合致すると判定した場合に、その判定結果を、認証判定部３７に送る。
【０１５０】
生体情報Ｘと生体情報Ｙとが合致しないと判定した場合には、判定部４３は、その判定結果を、認証判定部３７に送らなくてよい。ただし、生体情報Ｘと生体情報Ｙとが合致しないと判定した場合においても、判定部４３は、判定結果を認証判定部３７に送ってもよい。以下では、生体情報Ｘと生体情報Ｙとが合致しないと判定した場合には、判定部４３が、その判定結果を、認証判定部３７に送らない場合を例にして説明する。
【０１５１】
また、第２の実施形態では、結果送信部４６は、判定結果によらず、判定部４３の判定結果をクライアント１０に送信する。
【０１５２】
結果受信部１８は、結果送信部４６が送信した判定部４３の判定結果を受信する。結果受信部１８が、生体情報Ｘと生体情報Ｙとが合致しないという判定結果を受信した場合、生体情報Ｙの入力に対する処理を終了する。
【０１５３】
以下、結果受信部１８が、生体情報Ｘと生体情報Ｙとが合致するという判定結果を受信した場合について説明する。この場合、署名生成部２１は、メッセージ受信部１９がサーバ５０（具体的には、メッセージ送信部３１）から受信したメッセージ（チャレンジ）に基づいて、署名鍵ｓｕｋを用いて署名（レスポンス）を生成する。
【０１５４】
クライアント１０がメッセージをサーバ５０から取得するタイミングは、署名生成前であればよい。例えば、予め、メッセージ送信部３１がクライアント１０にメッセージを送信し、メッセージ受信部１９がそのメッセージを受信し、メッセージ受信部１９が、署名生成時までそのメッセージを保持していてもよい。また、例えば、結果受信部１８がサーバ５０から、生体情報Ｘと生体情報Ｙとが合致するという判定結果を受信した時点で、メッセージ受信部１９がサーバ５０にメッセージの送信を要求し、その要求に応じてメッセージ送信部３１が送信したメッセージを受信し、その後、署名生成部２１が署名を生成してもよい。これらの点は、第１の実施形態と同様である。
【０１５５】
署名送信部２２は、署名生成部２１が生成した署名をサーバ５０に送信する。また、サーバ５０の署名受信部３２は、その署名を受信する。
【０１５６】
ここで、サーバ５０は、署名と、判定部４３が認証判定部３７に送る判定結果との対応付けを認識する必要がある。そのため、第２の実施形態では、両者の対応が確認できるデータが、署名と、判定部４３が認証判定部３７に送る判定結果とに付加される。両者の対応が確認できるデータは、例えば、その両者に共通のデータであってもよい。以下、両者の対応が確認できるデータが、両者に共通のデータである場合を例にして説明する。この共通のデータとして、例えば、クライアント１０とサーバ５０との間のセッションＩＤや、サーバ５０のメッセージ送信部３１がクライアント１０に送信するメッセージ（チャレンジ）、これらの組合せ、または、これらの１つまたは複数、あるいは、それらから生成されたデータを用いることができる。ただし、これらのデータは例示であり、上記の共通のデータは、セッションＩＤやメッセージ等に限定されない。
【０１５７】
共通のデータがセッションＩＤである場合における処理の一例を説明する。判定部４３は、認証判定部３７に判定結果（生体情報Ｘと生体情報Ｙとが合致するという判定結果）を送るときに、クライアント１０とサーバ５０との間の通信のセッションＩＤを付加した判定結果を認証判定部３７に送る。また、クライアント１０の署名送信部２２は、署名生成部２１によって生成された署名をサーバ５０に送信するときに、そのセッションＩＤを付加した署名をサーバ５０に送信する。
【０１５８】
認証判定部３７は、署名に対する署名判定部３４の判定結果と、その署名と共通のデータが付加された、判定部４３から送られた判定結果とに基づいて、認証に成功したか失敗したかを判定する。
【０１５９】
サーバ５０において、秘匿化指標受信部４２、結果送信部４６、メッセージ送信部３１および署名受信部３２は、例えば、サーバ用プログラムに従って動作するコンピュータのＣＰＵ、および、そのコンピュータの通信インタフェースによって実現される。例えば、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、秘匿化指標受信部４２、結果送信部４６、メッセージ送信部３１および署名受信部３２として動作すればよい。また、判定部４３、署名判定部３４および認証判定部３７は、例えば、サーバ用プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、ＣＰＵが上記のようにプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、判定部４３、署名判定部３４および認証判定部３７として動作すればよい。また、秘密鍵記憶部４１および第１の検証鍵記憶部３３は、コンピュータが備える記憶装置によって実現される。
【０１６０】
以下、第２の実施形態の処理経過について説明する。前述のように、判定部４３が生体情報Ｘと生体情報Ｙとが合致するか否かを判定するまでの動作は、第１の実施形態と同様であるので、説明を省略する。また、判定部４３が、生体情報Ｘと生体情報Ｙとが合致しないと判定した場合、その判定結果が、結果送信部４６から結果受信部１８に送られ、処理を終了する。
【０１６１】
以下の説明では、判定部４３が生体情報Ｘと生体情報Ｙとが合致すると判定した後の処理経過を説明する。図７は、第２の実施形態において、判定部４３が生体情報Ｘと生体情報Ｙとが合致すると判定した後の処理経過の例を示すフローチャートである。なお、既に説明した事項については、詳細な説明を省略する。
【０１６２】
判定部４３は、生体情報Ｘと生体情報Ｙとが合致すると判定すると、その判定結果と対応付けられる署名に付加されるデータと共通のデータ（例えば、クライアント１０とサーバ５０との通信のセッションＩＤ）を、その判定結果に付加し、その判定結果を認証判定部３７に送る（ステップＳ４２）。なお、セッションＩＤは、判定部４３による判定結果および署名に付加されるデータの一例であり、判定部４３による判定結果および署名には共通のデータが付加されればよい。
【０１６３】
また、結果送信部４６は、生体情報Ｘと生体情報Ｙとが合致するという判定結果をクライアント１０に送信し（ステップＳ４３）、クライアント１０の結果受信部１８は、その判定結果を受信する（ステップＳ４４）。
【０１６４】
結果受信部１８が生体情報Ｘと生体情報Ｙとが合致するという判定結果を受信した場合、署名生成部２１は、メッセージ受信部１９が既にサーバ５０から受信しているメッセージ（チャレンジ）に基づいて、署名鍵ｓｕｋを用いて署名を生成する（ステップＳ４５）。なお、メッセージ受信部１９は、結果受信部１８がサーバ５０から、生体情報Ｘと生体情報Ｙとが合致するという判定結果を受信した時点で、サーバ５０にメッセージの送信を要求し、サーバ５０からメッセージを受信してもよい。
【０１６５】
また、署名生成部２１は、その署名と対応付けられる判定結果（判定部４３による判定結果）に付加されるデータと共通のデータ（例えば、クライアント１０とサーバ５０との通信のセッションＩＤ）を署名に付加する。
【０１６６】
そして、署名送信部２２は、その署名をサーバ５０に送信し（ステップＳ４６）、サーバ５０の署名受信部３２は、その署名を受信する（ステップＳ４７）。
【０１６７】
次に、署名判定部３４は、第１の検証鍵ｐｕｋと、メッセージ送信部３１が事前にクライアント１０に送信したメッセージと、ステップＳ４７で署名受信部３２がクライアント１０から受信した署名とを用いて、その署名が正しい署名であるか否かを判定する（ステップＳ４８）。
【０１６８】
そして、認証判定部３７は、署名判定部３４による判定結果と、署名判定部３４が判定に用いた署名に付加されたデータと共通のデータが付加された判定部４３による判定結果とに基づいて、被認証者の認証に成功したか失敗したかを判定する（ステップＳ５０）。署名が正しい署名であると判定されたという条件と、判定部４３から生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られているという条件の両方が満たされた場合に、認証判定部３７は、被認証者の認証に成功したと判定する。上記の２つの条件のうちのいずれか一方、または、両方が満たされなかった場合には、認証判定部３７は、被認証者の認証に失敗したと判定する。
【０１６９】
本実施形態では、上記のように、署名が正しい署名であると判定されたという条件と、判定部４３から生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られているという条件の両方が満たされた場合に、認証判定部３７は、被認証者の認証に成功したと判定する。従って、第１の実施形態と同様の効果が得られる。すなわち、クライアント１０にマルウェア等が組み込まれたとしても、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止できる。
【０１７０】
次に、第２の実施形態の変形例について説明する。なお、既に説明した事項についての説明は省略する。
【０１７１】
サーバ５０が、判定部４３による判定結果をクライアント１０に通知しなくてもよい。この場合、クライアント１０の署名生成部２１は、判定部４３による判定結果が通知されない状態で、メッセージ受信部１９が受信したメッセージに基づいて、署名鍵ｓｕｋを用いて署名を生成する。
【０１７２】
また、他の変形例として、判定部４３が生体情報Ｘと生体情報Ｙとが合致すると判定した場合にのみ、メッセージ送信部３１が、クライアント１０にメッセージを送信してもよい。そして、クライアント１０において、署名生成部２１は、メッセージ受信部１９がそのメッセージを受信したときに、そのメッセージに基づいて、署名鍵ｓｕｋを用いて署名を生成する。そして、署名送信部２２は、その署名をサーバ５０に送信する。この変形例では、署名生成部２１が署名を生成し、署名送信部２２がその署名をサーバ５０に送信するのは、生体情報Ｘと生体情報Ｙとが合致すると判定された場合のみである。従って、この変形例では、署名と、判定部４３が認証判定部３７に送る判定結果とを対応付けるためのデータは用いられなくてよい。また、この変形例では、生体情報Ｘと生体情報Ｙとが合致すると判定されたか否かによらず、サーバ５０は、判定部４３による判定結果をクライアント１０に通知してもよく、あるいは、通知しなくてもよい。
【０１７３】
また、他の変形例として、クライアント１０が秘匿化指標をサーバ５０に送信するときに、秘匿化指標送信部１７（署名送信部２２でもよい。）が、秘匿化指標と、署名生成部２１が生成した署名とを一緒にサーバ５０に送信してもよい。この変形例では、署名生成部２１は、判定部４３による判定結果を取得することなく（より具体的には、判定部４３が判定処理を行う前に）、メッセージ受信部１９が受信したメッセージに基づいて、署名鍵ｓｕｋを用いて署名を生成する。この変形例では、サーバ５０は、秘匿化指標と署名を一緒に受信する。従って、秘匿化指標に基づいて判定部４３によって導出された判定結果と署名との対応付けをサーバ５０は認識することができる。よって、本変形例では、署名と、判定部４３が認証判定部３７に送る判定結果とを対応付けるためのデータは用いられなくてよい。
【０１７４】
また、第１の実施形態の種々の変形例は、適宜、第２の実施形態にも適用可能である。
【０１７５】
実施形態３．
図８は、本発明の第３の実施形態の認証システムの構成例を示すブロック図である。第１の実施形態や第２の実施形態と同様の要素については、図３や図６と同一の符号を付す。また、第１の実施形態や第２の実施形態と同様の動作については、説明を省略する。
【０１７６】
第３の実施形態の認証システムは、クライアント１０と、第１のサーバ３０と、第２のサーバ４０とを備える。クライアント１０は複数存在していてもよい。クライアント１０と、第１のサーバ３０と、第２のサーバ４０とは、通信ネットワークを介して通信可能である。
【０１７７】
第３の実施形態では、クライアント１０は、公開鍵記憶部１１と、登録情報入力部１２と、秘匿化部１３と、秘匿化情報記憶部１４と、照合情報入力部１５と、秘匿化指標算出部１６と、秘匿化指標送信部１７と、メッセージ受信部１９と、署名鍵記憶部２０と、署名生成部２１とを備える。
【０１７８】
公開鍵記憶部１１、登録情報入力部１２、秘匿化部１３、秘匿化情報記憶部１４、照合情報入力部１５、秘匿化指標算出部１６、メッセージ受信部１９および署名鍵記憶部２０は、第１の実施形態におけるそれらの各要素と同様である。
【０１７９】
第３の実施形態では、署名生成部２１は、生体情報Ｘと生体情報Ｙとが合致するか否かの判定結果を第２のサーバ４０から受信することなく、署名を生成する。例えば、署名生成部２１は、秘匿化指標送信部１７が秘匿化指標を第２のサーバ４０に送信するタイミングより前に署名を生成すればよい。ただし、署名生成部２１が署名を生成するタイミングは上記の例に限定されない。
【０１８０】
署名生成部２１は、メッセージ受信部１９が第１のサーバ３０から受信したメッセージに基づいて、署名鍵ｓｕｋを用いて署名を生成する。この点は、前述の各実施形態と同様である。メッセージ受信部１９は、署名生成部２１が署名を生成する時までに、第１のサーバ３０からメッセージを受信すればよい。例えば、署名生成部２１が署名を生成する際に、メッセージ受信部１９がサーバ５０にメッセージの送信を要求し、その要求に応じてメッセージ送信部３１が送信したメッセージをメッセージ受信部１９が受信してもよい。
【０１８１】
第３の実施形態では、秘匿化指標送信部１７は、秘匿化指標だけでなく、署名生成部２１に生成された署名も、第２のサーバに送信する。以下では、秘匿化指標送信部１７が秘匿化指標および署名を一緒に第２のサーバに送信する場合を例にする。
【０１８２】
第３の実施形態では、第２のサーバ４０は、秘密鍵記憶部４１と、秘匿化指標受信部４２と、判定部４３と、署名送信部２２とを備える。秘密鍵記憶部４１および判定部４３は、第１の実施形態におけるそれらの各要素と同様である。
【０１８３】
第３の実施形態では、秘匿化指標受信部４２は、秘匿化指標だけでなく、署名生成部２１に生成された署名もクライアント１０から受信する。本例では、秘匿化指標受信部４２は、秘匿化指標および署名を一緒にクライアント１０から受信する。
【０１８４】
第２のサーバ４０に備えられている署名送信部２２は、判定部４３によって生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られたことを条件に、秘匿化指標受信部４２がクライアント１０から受信した署名（クライアント１０の署名生成部２１で生成された署名）を、第１のサーバ３０に送信する。
【０１８５】
第３の実施形態において、第１のサーバ３０は、メッセージ送信部３１と、署名受信部３２と、第１の検証鍵記憶部３３と、署名判定部３４とを備える。メッセージ送信部３１および第１の検証鍵記憶部３３は、第１の実施形態におけるそれらの各要素と同様である。
【０１８６】
第３の実施形態では、署名受信部３１は、第２のサーバ４０に備えられている署名送信部２２が送信した署名を受信する。
【０１８７】
また、署名判定部３４は、第１の検証鍵ｐｕｋと、メッセージ送信部３１がクライアント１０に送信したメッセージ（チャレンジに該当するメッセージ）と、署名受信部３２が第２のサーバ４０から受信した署名とを用いて、署名が正しい署名であるか否かを判定する。換言すれば、署名判定部３４は、受信した署名が、そのメッセージに基づいて、第１の検証鍵ｐｕｋと対になる署名鍵ｓｕｋを用いて生成された署名であるか否かを判定する。この動作は、第１の実施形態における署名判定部３４の動作と同様である。
【０１８８】
さらに、署名判定部３４は、署名が正しい署名であると判定されたという条件と、生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られているという条件の両方が満たされた場合に、被認証者の認証に成功したと判定する。上記の２つの条件のうちのいずれか一方、または、両方が満たされなかった場合には、署名判定部３４は、被認証者の認証に失敗したと判定する。すなわち、第３の実施形態では、署名判定部３４は、第２の実施形態における認証判定部３７を含んでいると言うことができる。
【０１８９】
前述のように、署名送信部２２は、判定部４３によって生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られたことを条件に、署名を第１のサーバ３０に送信する。従って、署名受信部３１が署名を受信したということは、生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られていることを意味する。すなわち、署名受信部３１が署名を受信したことによって、署名送信部２２は、生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られているという条件が満たされていると判定する。
【０１９０】
クライアント１０において、秘匿化指標送信部１７およびメッセージ受信部１９は、例えば、クライアント用プログラムに従って動作するコンピュータのＣＰＵ、および、そのコンピュータの通信インタフェースによって実現される。例えば、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体からクライアント用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、秘匿化指標送信部１７およびメッセージ受信部１９として動作すればよい。また、秘匿化部１３、秘匿化指標算出部１６および署名生成部２１は、例えば、クライアント用プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、ＣＰＵが上記のようにプログラム記録媒体からクライアント用プログラムを読み込み、そのプログラムに従って、秘匿化部１３、秘匿化指標算出部１６および署名生成部２１として動作すればよい。また、公開鍵記憶部１１、秘匿化情報記憶部１４および署名鍵記憶部２０は、例えば、クライアント１０を実現するコンピュータが備える記憶装置によって実現される。
【０１９１】
第２のサーバ４０において、秘匿化指標受信部４２および署名送信部２２は、例えば、サーバ用プログラムに従って動作するコンピュータのＣＰＵ、および、そのコンピュータの通信インタフェースによって実現される。例えば、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、秘匿化指標受信部４２および署名送信部２２として動作すればよい。また、判定部４３は、例えば、サーバ用プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、ＣＰＵが上記のようにプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、判定部４３として動作すればよい。また、秘密鍵記憶部４１は、例えば、第２のサーバ４０を実現するコンピュータが備える記憶装置によって実現される。
【０１９２】
第１のサーバ３０において、メッセージ送信部３１および署名受信部３２は、例えば、サーバ用プログラムに従って動作するコンピュータのＣＰＵ、および、そのコンピュータの通信インタフェースによって実現される。例えば、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、メッセージ送信部３１および署名受信部３２として動作すればよい。また、署名判定部３４は、例えば、サーバ用プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、ＣＰＵが上記のようにプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、署名判定部３４として動作すればよい。また、第１の検証鍵記憶部３３は、例えば、第１のサーバ３０を実現するコンピュータが備える記憶装置によって実現される。
【０１９３】
本実施形態では、第１のサーバ３０と第２のサーバ４０は、別のサーバであるので、第１のサーバ３０に搭載されるサーバ用プログラムと、第２のサーバ４０に搭載されるサーバ用プログラムは別のプログラムである。
【０１９４】
次に、処理経過について説明する。図９は、第３の実施形態の処理経過の例を示すフローチャートである。なお、既に説明した事項については、詳細な説明を省略する。なお、本例では、メッセージ受信部１９は、既に、メッセージを受信し、そのメッセージを保持しているものとする。
【０１９５】
まず、被認証者の生体情報Ｙが照合情報入力部１５に入力される（ステップＳ６１）。すると、秘匿化指標算出部１６は、その生体情報Ｙと、秘匿化情報記憶部１４に記憶されているテンプレートとに基づいて、生体情報Ｘと生体情報Ｙとの近さを示す指標を暗号化した秘匿化指標を算出する（ステップＳ６２）。ステップＳ６１，Ｓ６２は、ステップＳ１１，Ｓ１２（図４参照）と同様である。
【０１９６】
また、署名生成部２１は、メッセージ受信部１９が受信済みのメッセージに基づいて、署名鍵ｓｕｋを用いて署名を生成する（ステップＳ６３）。なお、ステップＳ６３は、ステップＳ６１やステップＳ６２よりも前に実行されてもよい。
【０１９７】
次に、秘匿化指標送信部１７は、ステップＳ６２で生成された秘匿化指標と、ステップＳ６３で生成された署名を、第２のサーバ４０に送信する（ステップＳ６４）。
【０１９８】
第２のサーバ４０の秘匿化指標受信部４２は、その秘匿化指標および署名を、クライアント１０から受信する（ステップＳ６５）。
【０１９９】
次に、判定部４３は、秘密鍵ｓｋによって、秘匿化指標から指標を復号する（ステップＳ６６）。さらに、判定部４３は、その指標が、予め定められた所定範囲内の値であるか否かを判定することによって、生体情報Ｘと生体情報Ｙとが合致するか否かを判定する（ステップＳ６７）。ステップＳ６６，Ｓ６７は、ステップＳ１５，Ｓ１６（図４参照）と同様である。
【０２００】
そして、署名送信部２２は、判定部４３によって生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られたことを条件に、ステップＳ６５でクライアント１０から受信した署名を、第１のサーバ３０に送信する（ステップＳ６８）。なお、ステップＳ６７で、生体情報Ｘと生体情報Ｙとが合致しないという判定結果が得られた場合、ステップＳ６８以降の処理は実行せずに、例えば、その時点で、生体情報Ｙに対する処理を終了する。その際、第２のサーバ４０は、判定結果をクライアント１０に通知してもよく、あるいは、通知しなくてもよい。
【０２０１】
第１のサーバ３０の署名受信部３２は、ステップＳ６８で送信された署名を受信する（ステップＳ６９）。
【０２０２】
次に、署名判定部３４は、第１の検証鍵ｐｕｋと、メッセージ送信部３１がクライアント１０に送信したメッセージと、署名受信部３２が第２のサーバ４０から受信した署名とを用いて、署名が正しい署名であるか否かを判定する（ステップＳ７０）。
【０２０３】
さらに、署名判定部３４は、署名が正しい署名であると判定されたという条件と、生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られているという条件の両方が満たされているか否かを判定することによって、認証に成功したか失敗したかを判定する（ステップＳ７１）。既に説明したように、本実施形態では、署名受信部３１が署名を受信したということは、生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られていることを意味する。従って、署名判定部３４は、ステップＳ６９の完了を確認することで、生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られているという条件が満たされていると判定してよい。よって、署名判定部３４は、署名が正しい署名であると判定したならば、被認証者の認証に成功したと判定し、署名が不正な署名であると判定したならば、被認証者の認証に失敗したと判定すればよい。
【０２０４】
本実施形態では、第２のサーバ４０は、クライアント１０で生成された署名を、生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られたことを条件に、第１のサーバ３０に送信する。従って、第１のサーバ３０が、第２のサーバ４０から署名を受信したということは、生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られたことを意味する。そして、第１のサーバ３０の署名判定部３４は、受信した署名が正しい署名であると判定したならば、認証に成功したと判定し、受信した署名が不正な署名であると判定したならば、認証に失敗したと判定する。従って、署名が正しい署名であると判定されたという条件と、生体情報Ｘと生体情報Ｙとが合致するという判定結果が得られているという条件の両方が満たされている場合に、認証に成功したと判定しているということができる。従って、第１の実施形態や第２の実施形態と同様の効果が得られる。すなわち、クライアント１０にマルウェア等が組み込まれたとしても、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止できる。
【０２０５】
また、第１の実施形態の種々の変形例は、適宜、第３の実施形態にも適用可能である。
【０２０６】
また、上記の各実施形態において、秘匿化指標算出部１６は、例えば、指紋、指の静脈等の複数種類の項目に応じた秘匿化情報を算出し、判定部４３は、それらの個々の項目毎に、生体情報Ｘと生体情報Ｙとが合致するか否かを判定してもよい。例えば、第１の実施形態では、全ての項目について、ＸとＹとが合致すると判定された場合、証明書生成部４５は、それらの項目毎に、個別に証明書を生成してもよい。そして、証明書判定部３６は、証明書毎に、証明書が正しい証明書であるか否かを判定してもよい。
【０２０７】
図１０は、上記の各実施形態やその変形例におけるクライアント１０や種々のサーバ（第１の実施形態や第３の形態における第１のサーバ３０および第２のサーバ４０、並びに、第２の実施形態におけるサーバ５０）に係るコンピュータの構成例を示す概略ブロック図である。以下、図１０を参照して説明するが、クライアント１０として用いられるコンピュータ、第１のサーバ３０として用いられるコンピュータ、第２のサーバ４０として用いられるコンピュータは、それぞれ別のコンピュータである。また、第２の実施形態においても、クライアント１０として用いられるコンピュータと、サーバ５０として用いられるコンピュータとは、別々のコンピュータである。
【０２０８】
コンピュータ１０００は、ＣＰＵ１００１と、主記憶装置１００２と、補助記憶装置１００３と、インタフェース１００４と、通信インタフェース１００５とを備える。
【０２０９】
本発明の各実施形態やその変形例におけるクライアント１０、第１のサーバ３０、第２のサーバ４０、サーバ５０は、コンピュータ１０００で実現される。ただし、上記のように、クライアント１０として用いられるコンピュータ、第１のサーバ３０として用いられるコンピュータ、第２のサーバ４０として用いられるコンピュータ、サーバ５０として用いられるコンピュータは、それぞれ別のコンピュータである。
【０２１０】
クライアント１０を実現するコンピュータ１０００の動作は、クライアント用プログラムの形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、そのクライアント用プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、そのクライアント用プログラムに従って、上記の各実施形態で説明したクライアント１０の動作を実行する。
【０２１１】
第１のサーバ３０を実現するコンピュータ１０００の動作は、サーバ用プログラムの形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、そのサーバ用プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、そのサーバ用プログラムに従って、上記の第１の実施形態および第３の実施形態で説明した第１のサーバ３０の動作を実行する。
【０２１２】
第２のサーバ４０を実現するコンピュータ１０００の動作は、サーバ用プログラムの形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、そのサーバ用プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、そのサーバ用プログラムに従って、上記の第１の実施形態および第３の実施形態で説明した第２のサーバ４０の動作を実行する。
【０２１３】
サーバ５０を実現するコンピュータ１０００の動作は、サーバ用プログラムの形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、そのサーバ用プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、そのサーバ用プログラムに従って、上記の第２の実施形態で説明したサーバ５０の動作を実行する。
【０２１４】
補助記憶装置１００３は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory ）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory ）、半導体メモリ等が挙げられる。また、プログラムが通信回線によってコンピュータ１０００に配信される場合、配信を受けたコンピュータ１０００がそのプログラムを主記憶装置１００２に展開し、そのプログラムに従って動作してもよい。
【０２１５】
また、クライアント１０の各構成要素の一部または全部は、汎用または専用の回路（circuitry ）、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。この点は、第１のサーバ３０、第２のサーバ４０、サーバ５０に関しても同様である。
【０２１６】
次に、本発明の概要について説明する。図１１は、本発明の認証システムの概要を示すブロック図である。本発明の認証システムは、判定部４３と、メッセージ送信部３１と、署名判定部３４と、認証判定部３７と、クライアント１０とを備える。クライアント１０は、秘匿化情報記憶部１４と、秘匿化指標算出部１６と、署名生成部２１とを備える。
【０２１７】
判定部４３は、クライアント１０によって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、照合情報と登録情報とが合致するか否かを判定する。
【０２１８】
メッセージ送信部３１は、クライアント１０にメッセージを送信する。
【０２１９】
署名判定部３４は、第１の検証鍵とそのメッセージとクライアント１０に生成された署名とを用いて、署名が正しい署名であるか否かを判定する。
【０２２０】
認証判定部３７は、照合情報と登録情報とが合致すると判定され、かつ、署名が正しい署名であると判定された場合に、認証に成功したと判定する。
【０２２１】
秘匿化情報記憶部１４は、登録情報を秘匿化した秘匿化情報を記憶する。
【０２２２】
秘匿化指標算出部１６は、照合情報と、秘匿化情報とに基づいて、秘匿化指標を算出する。
【０２２３】
署名生成部２１は、署名鍵を用いて、メッセージに基づいて署名を生成する。
【０２２４】
そのような構成よれば、照合情報と登録情報とが合致すると判定され、かつ、署名が正しい署名であると判定された場合に、認証に成功したと判定する。従って、２つの要素を利用した認証を行う場合において、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止することができる。
【０２２５】
上記の本発明の実施形態は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
【０２２６】
（付記１）
クライアントを備える認証システムであって、
前記クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
前記クライアントにメッセージを送信するメッセージ送信部と、
第１の検証鍵と前記メッセージと前記クライアントに生成された署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備え、
前記クライアントは、
前記登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
前記照合情報と、前記秘匿化情報とに基づいて、前記秘匿化指標を算出する秘匿化指標算出部と、
署名鍵を用いて、前記メッセージに基づいて前記署名を生成する署名生成部とを備える
ことを特徴とする認証システム。
【０２２７】
（付記２）
前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成部と、
第２の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定部とを備え、
前記署名生成手段は、
前記照合情報と前記登録情報とが合致すると判定された場合に、署名を生成し、
前記認証判定部は、
前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する
付記１に記載の認証システム。
【０２２８】
（付記３）
メッセージ送信部、署名判定部、証明書判定部および認証判定部は、第１のサーバに設けられ、
判定部および証明書生成部は、第２のサーバに設けられる
付記２に記載の認証システム。
【０２２９】
（付記４）
前記証明書判定部は、前記証明書生成部によって生成された証明書を、クライアントを介して取得する
付記２または付記３に記載の認証システム。
【０２３０】
（付記５）
前記証明書判定部が設けられる第１のサーバは、前記証明書生成部によって生成された証明書を、前記証明書生成部が設けられる第２のサーバから、通信ネットワークを介して直接、取得する
付記３に記載の認証システム。
【０２３１】
（付記６）
証明鍵および第２の検証鍵は、共通鍵方式における共通鍵である
付記２から付記５のうちのいずれかに記載の認証システム。
【０２３２】
（付記７）
前記証明書生成部は、
証明書として、メッセージ認証コードにおけるタグと、前記タグを生成する際に用いたデータとの組を生成する
付記６に記載の認証システム。
【０２３３】
（付記８）
証明鍵は、公開鍵方式における秘密鍵であり、第２の検証鍵は、公開鍵方式における公開鍵である
付記２から付記５のうちのいずれかに記載の認証システム。
【０２３４】
（付記９）
判定部、メッセージ送信部、署名判定部および認証判定部は、１台のサーバに設けられ、
前記署名生成手段は、
前記照合情報と前記登録情報とが合致すると判定された場合に、署名を生成する
付記１に記載の認証システム。
【０２３５】
（付記１０）
メッセージ送信部、署名判定部および認証判定部は、第１のサーバに設けられ、
判定部は、第２のサーバに設けられ、
前記第２のサーバは、
前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記クライアントで生成された署名を前記第１のサーバに送信する署名送信部を備える
付記１に記載の認証システム。
【０２３６】
（付記１１）
登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部と、
前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成部と、
前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力部とを備える
ことを特徴とするクライアント。
【０２３７】
（付記１２）
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成部とを備える
ことを特徴とするサーバ。
【０２３８】
（付記１３）
クライアントにメッセージを送信するメッセージ送信部と、
照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第１の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第２の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定部と、
前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備える
ことを特徴とするサーバ。
【０２３９】
（付記１４）
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
前記クライアントにメッセージを送信するメッセージ送信部と、
前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備える
ことを特徴とするサーバ。
【０２４０】
（付記１５）
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信部とを備える
ことを特徴とするサーバ。
【０２４１】
（付記１６）
登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備えるクライアントが、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出し、
所定のサーバが、
前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定し、
前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、前記クライアントにメッセージを送信し、
前記クライアントが、
前記照合情報と前記登録情報とが合致すると判定された場合に、署名鍵を用いて、前記メッセージに基づいて署名を生成し、
前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、
第１の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定し、
前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する
ことを特徴とする認証方法。
【０２４２】
（付記１７）
登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備え、クライアントとして動作するコンピュータに搭載されるクライアント用プログラムであって、
前記コンピュータに、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出処理、
前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成処理、および、
前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力処理
を実行させるためのクライアント用プログラム。
【０２４３】
（付記１８）
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、
前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成処理
を実行させるためのサーバ用プログラム。
【０２４４】
（付記１９）
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
クライアントにメッセージを送信する送信処理、
照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第１の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、
前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第２の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定処理、および、
前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理
を実行させるためのサーバ用プログラム。
【０２４５】
（付記２０）
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、
前記クライアントにメッセージを送信するメッセージ送信処理、
前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、および、
前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理
を実行させるためのサーバ用プログラム。
【０２４６】
（付記２１）
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、
前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信処理
を実行させるためのサーバ用プログラム。
【０２４７】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用の可能性】
【０２４８】
本発明は、認証システムに好適に適用される。
【符号の説明】
【０２４９】
１０  クライアント
１１  公開鍵記憶部
１２  登録情報入力部
１３  秘匿化部
１４  秘匿化情報記憶部
１５  照合情報入力部
１６  秘匿化指標算出部
１７  秘匿化指標送信部
１８  結果受信部
１９  メッセージ受信部
２０  署名鍵記憶部
２１  署名生成部
２２  署名送信部
３０  第１のサーバ
３１  メッセージ送信部
３２  署名受信部
３３  第１の検証鍵記憶部
３４  署名判定部
３５  第２の検証鍵記憶部
３６  証明書判定部
３７  認証判定部
４０  第２のサーバ
４１  秘密鍵記憶部
４２  秘匿化指標受信部
４３  判定部
４４  証明鍵記憶部
４５  証明書生成部
４６  結果送信部
５０  サーバ
【図１】
2020121459.tif 000009
【図２】
2020121459.tif 000010
【図３】
2020121459.tif 000011
【図４】
2020121459.tif 000012
【図５】
2020121459.tif 000013
【図６】
2020121459.tif 000014
【図７】
2020121459.tif 000015
【図８】
2020121459.tif 000016
【図９】
2020121459.tif 000017
【図１０】
2020121459.tif 000018
【図１１】
2020121459.tif 000019
【手続補正書】
【提出日】令和3年6月2日(2021.6.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クライアントを備える認証システムであって、
前記クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
前記クライアントにメッセージを送信するメッセージ送信部と、
第１の検証鍵と前記メッセージと前記クライアントに生成された署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備え、
前記クライアントは、
前記登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
前記照合情報と、前記秘匿化情報とに基づいて、前記秘匿化指標を算出する秘匿化指標算出部と、
署名鍵を用いて、前記メッセージに基づいて前記署名を生成する署名生成部とを備える
ことを特徴とする認証システム。
【請求項２】
前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成部と、
第２の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定部とを備え、
前記署名生成部は、
前記照合情報と前記登録情報とが合致すると判定された場合に、署名を生成し、
前記認証判定部は、
前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する
請求項１に記載の認証システム。
【請求項３】
メッセージ送信部、署名判定部、証明書判定部および認証判定部は、第１のサーバに設けられ、
判定部および証明書生成部は、第２のサーバに設けられる
請求項２に記載の認証システム。
【請求項４】
前記証明書判定部は、前記証明書生成部によって生成された証明書を、クライアントを介して取得する
請求項２または請求項３に記載の認証システム。
【請求項５】
前記証明書判定部が設けられる第１のサーバは、前記証明書生成部によって生成された証明書を、前記証明書生成部が設けられる第２のサーバから、通信ネットワークを介して直接、取得する
請求項３に記載の認証システム。
【請求項６】
証明鍵および第２の検証鍵は、共通鍵方式における共通鍵である
請求項２から請求項５のうちのいずれか１項に記載の認証システム。
【請求項７】
前記証明書生成部は、
証明書として、メッセージ認証コードにおけるタグと、前記タグを生成する際に用いたデータとの組を生成する
請求項６に記載の認証システム。
【請求項８】
証明鍵は、公開鍵方式における秘密鍵であり、第２の検証鍵は、公開鍵方式における公開鍵である
請求項２から請求項５のうちのいずれか１項に記載の認証システム。
【請求項９】
判定部、メッセージ送信部、署名判定部および認証判定部は、１台のサーバに設けられ、
前記署名生成部は、
前記照合情報と前記登録情報とが合致すると判定された場合に、署名を生成する
請求項１に記載の認証システム。
【請求項１０】
メッセージ送信部、署名判定部および認証判定部は、第１のサーバに設けられ、
判定部は、第２のサーバに設けられ、
前記第２のサーバは、
前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記クライアントで生成された署名を前記第１のサーバに送信する署名送信部を備える
請求項１に記載の認証システム。
【請求項１１】
登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部と、
前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成部と、
前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力部とを備える
ことを特徴とするクライアント。
【請求項１２】
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成部とを備える
ことを特徴とするサーバ。
【請求項１３】
クライアントにメッセージを送信するメッセージ送信部と、
照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第１の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第２の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定部と、
前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備える
ことを特徴とするサーバ。
【請求項１４】
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
前記クライアントにメッセージを送信するメッセージ送信部と、
前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備える
ことを特徴とするサーバ。
【請求項１５】
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信部とを備える
ことを特徴とするサーバ。
【請求項１６】
登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備えるクライアントが、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出し、
所定のサーバが、
前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定し、
前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、前記クライアントにメッセージを送信し、
前記クライアントが、
前記照合情報と前記登録情報とが合致すると判定された場合に、署名鍵を用いて、前記メッセージに基づいて署名を生成し、
前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、
第１の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定し、
前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する
ことを特徴とする認証方法。
【請求項１７】
登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備え、クライアントとして動作するコンピュータに搭載されるクライアント用プログラムであって、
前記コンピュータに、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出処理、
前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成処理、および、
前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力処理
を実行させるためのクライアント用プログラム。
【請求項１８】
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、
前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成処理
を実行させるためのサーバ用プログラム。
【請求項１９】
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
クライアントにメッセージを送信する送信処理、
照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第１の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、
前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第２の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定処理、および、
前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理
を実行させるためのサーバ用プログラム。
【請求項２０】
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、
前記クライアントにメッセージを送信するメッセージ送信処理、
前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、および、
前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理
を実行させるためのサーバ用プログラム。
【請求項２１】
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、
前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信処理
を実行させるためのサーバ用プログラム。
【国際調査報告】
2020121459.tif 000020
2020121459.tif 000021
2020121459.tif 000022
2020121459.tif 000023
2020121459.tif 000024
2020121459.tif 000025