(57)【要約】  照合システム２０は、クライアント３０とサーバ４０とを備える照合システムであって、クライアント３０は、乱数を生成する乱数生成部３１と、登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部３２と、登録情報との照合のために入力される照合情報と、秘匿化情報とに基づいて、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部３３とを備え、サーバ４０は、秘匿化鍵に対応する解除鍵とクライアント３０から送信された乱数とを用いて、クライアント３０から送信された秘匿化指標から指標を取得可能か否かを判定する判定部４１を備える。
2020121461.tif 000002
【特許請求の範囲】
【請求項１】
クライアントとサーバとを備える照合システムであって、
前記クライアントは、
乱数を生成する乱数生成部と、
登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部とを備え、
前記サーバは、
前記秘匿化鍵に対応する解除鍵と前記クライアントから送信された乱数とを用いて、前記クライアントから送信された秘匿化指標から前記指標を取得可能か否かを判定する判定部を備える
ことを特徴とする照合システム。
【請求項２】
判定部は、取得可能と判定した後に秘匿化指標から取得された指標に基づいて、照合情報と登録情報とが対応するか否かを判定する
請求項１記載の照合システム。
【請求項３】
チャレンジ・レスポンス方式が導入された照合システムであって、
サーバは、
チャレンジを生成するチャレンジ生成部を備え、
秘匿化指標算出部は、
前記サーバから送信された前記チャレンジを基に、前記チャレンジに対応し秘匿化指標を含むレスポンスを算出する
請求項１または請求項２記載の照合システム。
【請求項４】
クライアントは、
入力された登録情報を秘匿化鍵で秘匿化することによって秘匿化情報を生成し、当該秘匿化情報を秘匿化情報記憶部に記憶させる秘匿化部を備える
請求項１から請求項３のうちのいずれか１項に記載の照合システム。
【請求項５】
クライアントは、
秘匿化鍵である秘密鍵、および解除鍵である公開鍵を生成する鍵生成部を備え、
前記鍵生成部は、
前記公開鍵をサーバに送信する
請求項１から請求項４のうちのいずれか１項に記載の照合システム。
【請求項６】
秘匿化指標算出部は、
秘密鍵を用いて電子署名を生成し、
生成された電子署名を秘匿化指標と共にサーバに送信する
請求項５記載の照合システム。
【請求項７】
サーバは、
秘匿化鍵である公開鍵、および解除鍵である秘密鍵を生成する鍵生成部を備え、
前記鍵生成部は、
前記公開鍵をクライアントに送信する
請求項１から請求項４のうちのいずれか１項に記載の照合システム。
【請求項８】
登録情報および照合情報はベクトルである
請求項１から請求項７のうちのいずれか１項に記載の照合システム。
【請求項９】
秘匿化指標算出部は、登録情報と照合情報とのハミング距離に基づいて定められた指標を秘匿化した秘匿化指標を算出する
請求項８記載の照合システム。
【請求項１０】
秘匿化指標算出部は、登録情報と照合情報との内積に基づいて定められた指標を秘匿化した秘匿化指標を算出する
請求項８記載の照合システム。
【請求項１１】
クライアントとサーバとを備える照合システムであって、
前記クライアントは、
乱数を生成する乱数生成部と、
登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部とを備える
ことを特徴とする照合システム。
【請求項１２】
クライアントとサーバとを備える照合システムであって、
前記クライアントは、
登録情報との照合のために入力される照合情報と、前記登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部を備え、
前記サーバは、
前記秘匿化鍵に対応する解除鍵と前記クライアントから送信された乱数とを用いて、前記クライアントから送信された秘匿化指標から前記指標を取得可能か否かを判定する判定部を備える
ことを特徴とする照合システム。
【請求項１３】
乱数を生成する乱数生成部と、
登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部とを備える
ことを特徴とするクライアント。
【請求項１４】
入力された登録情報を秘匿化鍵で秘匿化することによって秘匿化情報を生成し、当該秘匿化情報を秘匿化情報記憶部に記憶させる秘匿化部を備える
請求項１３記載のクライアント。
【請求項１５】
秘匿化鍵である秘密鍵、および解除鍵である公開鍵を生成する鍵生成部を備え、
前記鍵生成部は、
前記公開鍵をサーバに送信する
請求項１３または請求項１４記載のクライアント。
【請求項１６】
秘匿化指標算出部は、
秘密鍵を用いて電子署名を生成し、
生成された電子署名を秘匿化指標と共にサーバに送信する
請求項１５記載のクライアント。
【請求項１７】
登録情報との照合のために入力される照合情報と、前記登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報とに基づいて算出された、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標から、前記秘匿化鍵に対応する解除鍵とクライアントから送信された乱数とを用いて前記指標を取得可能か否かを判定する判定部を備える
ことを特徴とするサーバ。
【請求項１８】
判定部は、取得可能と判定した後に秘匿化指標から取得された指標に基づいて、照合情報と登録情報とが対応するか否かを判定する
請求項１７記載のサーバ。
【請求項１９】
秘匿化鍵である公開鍵、および解除鍵である秘密鍵を生成する鍵生成部を備え、
前記鍵生成部は、
前記公開鍵をクライアントに送信する
請求項１７または請求項１８記載のサーバ。
【請求項２０】
クライアントとサーバとを備える照合システムにおける照合方法であって、
前記クライアントが、
乱数を生成し、
生成された乱数を前記サーバに送信し、
登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を秘匿化情報記憶部に記憶させ、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出し、
算出された秘匿化指標を前記サーバに送信し、
前記サーバが、
前記秘匿化鍵に対応する解除鍵と送信された乱数とを用いて、送信された秘匿化指標から前記指標を取得可能か否かを判定する
ことを特徴とする照合方法。
【請求項２１】
クライアントにおける照合方法であって、
乱数を生成し、
登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を秘匿化情報記憶部に記憶させ、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する
ことを特徴とする照合方法。
【請求項２２】
サーバにおける照合方法であって、
登録情報との照合のために入力される照合情報と、前記登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報とに基づいて算出された、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標から、前記秘匿化鍵に対応する解除鍵とクライアントから送信された乱数とを用いて前記指標を取得可能か否かを判定する
ことを特徴とする照合方法。
【請求項２３】
登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備え、クライアントとして動作するコンピュータに搭載されるクライアント用プログラムであって、
前記コンピュータに、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する算出処理
を実行させるためのクライアント用プログラム。
【請求項２４】
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
登録情報との照合のために入力される照合情報と、前記登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報とに基づいて算出された、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標から、前記秘匿化鍵に対応する解除鍵とクライアントから送信された乱数とを用いて前記指標を取得可能か否かを判定する判定処理
を実行させるためのサーバ用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、照合システム、照合方法、並びに、照合システムに適用されるクライアント、サーバ、クライアント用プログラムおよびサーバ用プログラムに関する。
【背景技術】
【０００２】
認証の一例として、生体認証がある。「生体認証」とは、被登録者の生体情報と、被認証者の生体情報とを照合することにより、被登録者と被認証者とが一致するか否かを確認する個人認証の手法である。【０００３】
また、「生体情報」とは、身体や行動に関する個人の一部の特徴から抽出されたデータ、または、その抽出されたデータを変換することによって生成されたデータである。このデータは、特徴量と称されることもある。【０００４】
また、「テンプレート」とは、被登録者の生体情報（以下では登録情報と呼ぶ。）から生成されたデータを含む、生体認証のために予め保存されるデータである。【０００５】
クライアントサーバシステムで生体認証を行う場合、テンプレートをクライアントに保存する態様と、テンプレートをサーバに保存する態様とがある。【０００６】
特許文献１および特許文献２には、暗号化した登録情報（テンプレート）をサーバに保存することにより、登録情報が漏えいしない認証装置および認証方法の一例が記載されている。【０００７】
また、特許文献３には、二値のベクトルに関して漏えいやなりすまし等を回避可能とし安全性を高める照合システムが記載されている。【０００８】
また、特許文献４には、準同型暗号処理により平文を暗号化した対象暗号文が正当であることを証明する証明装置が記載されている。【０００９】
クライアントにテンプレートを保存する態様の例としてＦＩＤＯ（Fast IDentity Online）が挙げられる。ＦＩＤＯでは、クライアントに予めテンプレートが保存される。そして、そのクライアントを現在使用しているユーザ（被認証者）の生体情報がクライアントに入力されると、クライアントは、入力された生体情報と、テンプレートとによって、被認証者が被登録者に該当するか否かを判定する。そして、被認証者が被登録者に該当するとクライアントが判定した場合、サーバは、クライアントが署名鍵によって生成した署名に基づいて、クライアントが有する署名鍵（秘密鍵）と、サーバが有する検証鍵（公開鍵）とが対をなす鍵であるか否かを判定する。すなわち、ＦＩＤＯでは、クライアントにおいて生体認証に成功し、サーバにおいてクライアントの署名の検証に成功した場合に、最終的に、ユーザ（被認証者）の認証に成功したと判定される。【００１０】
また、ＦＩＤＯでは、被登録者の生体情報を暗号化した情報を含むデータが、テンプレートとして予めクライアントに保存される。そして、その暗号化された情報を復号するための鍵もクライアントに保存される。被認証者の生体情報がクライアントに入力されると、クライアントは、その鍵を用いてテンプレートに含まれる生体情報の暗号文を復号し、復号された生体情報と、入力された生体情報を用いて、被認証者が被登録者に該当するか否かを判定する。【００１１】
また、キャッシュカードのＩＣ（Integrated Circuit）チップに、暗号化された生体情報を保存しておく場合もある。【００１２】
ここで、日本の「個人情報の保護に関する法律（以下、個人情報保護法と記す。）」において、個人情報として保護される対象について説明する。日本の個人情報保護法では、個人を識別可能な情報である生体情報は個人情報であると定められている。さらに、個人情報保護法では、電子的なデータベース、または、紙のデータベースで管理される個人情報が、個人情報保護法による保護の対象であると定められている。【００１３】
テンプレートをサーバに保存する態様では、個々のクライアントを使用する個々のユーザのテンプレートが、共通のサーバ内でデータベースとして保存されていると言える。従って、サーバに保存されるテンプレートは、個人情報保護法による保護対象である。【００１４】
サーバの管理者には、テンプレートが漏えいしないようにサーバを保護することが求められる。すなわち、サーバを保護する分だけ、セキュリティコストがかかる。【００１５】
一方、テンプレートをクライアントに保存する態様では、クライアントは、そのクライアントを使用する一人または少数のユーザのテンプレートを保存する。従って、そのテンプレートはデータベースとして保存されているとは言えない。そのため、クライアントに保存されるテンプレートは、個人情報保護法による保護対象ではない可能性がある。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２０１１−２１１５９３号公報
【特許文献２】特開２００９−１２９２９２号公報
【特許文献３】国際公開第２０１８／１１０６０８号
【特許文献４】特開２０１４−２２０６６１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
テンプレートをクライアントに保存する場合であっても、クライアントからユーザの生体情報が漏えいすることを防止することが好ましい。【００１８】
また、生体によって認証を行う場合に限らず、パスワードによって認証を行う場合や、ＩＣカード等に保存された秘密鍵によって認証を行う場合であっても、クライアントサーバシステムのクライアントにパスワードや秘密鍵から生成したデータを含む登録情報（生体認証におけるテンプレートに対応）を記憶させる場合において、クライアントからパスワードや秘密鍵等のユーザの秘密情報が漏えいすることを防止することが好ましい。【００１９】
そこで、本発明は、登録情報を秘匿化した秘匿化情報をクライアントに記憶させる場合であっても、クライアントからユーザの秘密情報が漏えいすることを防止することができる照合システム、照合方法、並びに、照合システムに適用されるクライアント、サーバ、クライアント用プログラムおよびサーバ用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明による照合システムは、クライアントとサーバとを備える照合システムであって、クライアントは、乱数を生成する乱数生成部と、登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、登録情報との照合のために入力される照合情報と、秘匿化情報とに基づいて、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部とを備え、サーバは、秘匿化鍵に対応する解除鍵とクライアントから送信された乱数とを用いて、クライアントから送信された秘匿化指標から指標を取得可能か否かを判定する判定部を備えることを特徴とする。【００２１】
また、本発明による照合システムは、クライアントとサーバとを備える照合システムであって、クライアントは、乱数を生成する乱数生成部と、登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部とを備えることを特徴とする。【００２２】
また、本発明による照合システムは、クライアントとサーバとを備える照合システムであって、クライアントは、登録情報との照合のために入力される照合情報と、登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報とに基づいて、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部を備え、サーバは、秘匿化鍵に対応する解除鍵とクライアントから送信された乱数とを用いて、クライアントから送信された秘匿化指標から指標を取得可能か否かを判定する判定部を備えることを特徴とする。【００２３】
また、本発明によるクライアントは、乱数を生成する乱数生成部と、登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、登録情報との照合のために入力される照合情報と、秘匿化情報とに基づいて、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部とを備えることを特徴とする。【００２４】
また、本発明によるサーバは、登録情報との照合のために入力される照合情報と、登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報とに基づいて算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標から、秘匿化鍵に対応する解除鍵とクライアントから送信された乱数とを用いて指標を取得可能か否かを判定する判定部を備えることを特徴とする。【００２５】
また、本発明による照合方法は、クライアントとサーバとを備える照合システムにおける照合方法であって、クライアントが、乱数を生成し、生成された乱数をサーバに送信し、登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を秘匿化情報記憶部に記憶させ、登録情報との照合のために入力される照合情報と、秘匿化情報とに基づいて、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標を算出し、算出された秘匿化指標をサーバに送信し、サーバが、秘匿化鍵に対応する解除鍵と送信された乱数とを用いて、送信された秘匿化指標から指標を取得可能か否かを判定することを特徴とする。【００２６】
また、本発明による照合方法は、クライアントにおける照合方法であって、乱数を生成し、登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を秘匿化情報記憶部に記憶させ、登録情報との照合のために入力される照合情報と、秘匿化情報とに基づいて、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標を算出することを特徴とする。【００２７】
また、本発明による照合方法は、サーバにおける照合方法であって、登録情報との照合のために入力される照合情報と、登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報とに基づいて算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標から、秘匿化鍵に対応する解除鍵とクライアントから送信された乱数とを用いて指標を取得可能か否かを判定することを特徴とする。【００２８】
また、本発明によるクライアント用プログラムは、登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備え、クライアントとして動作するコンピュータに搭載されるクライアント用プログラムであって、コンピュータに、登録情報との照合のために入力される照合情報と、秘匿化情報とに基づいて、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する算出処理を実行させることを特徴とする。【００２９】
また、本発明によるサーバ用プログラムは、サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、コンピュータに、登録情報との照合のために入力される照合情報と、登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報とに基づいて算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標から、秘匿化鍵に対応する解除鍵とクライアントから送信された乱数とを用いて指標を取得可能か否かを判定する判定処理を実行させることを特徴とする。
【発明の効果】
【００３０】
本発明によれば、登録情報を秘匿化した秘匿化情報をクライアントに記憶させる場合であっても、クライアントからユーザの秘密情報が漏えいすることを防止することができる。
【図面の簡単な説明】
【００３１】
【図１】本発明の第１の実施形態の照合システムの構成例を示すブロック図である。
【図２】第１の実施形態のクライアント１００の秘匿化情報記憶部１６０に予めテンプレートを記憶させる際の処理経過の例を示すフローチャートである。
【図３】第１の実施形態の照合システム１０における認証時の処理経過の例を示すフローチャートである。
【図４】本発明の第２の実施形態の照合システムの構成例を示すブロック図である。
【図５】第２の実施形態の照合システム１１における認証時の処理経過の例を示すフローチャートである。
【図６】照合システム１１における具体的な登録処理の例を示す説明図である。
【図７】照合システム１１における具体的な認証処理の例を示す説明図である。
【図８】本発明の実施形態やその具体例におけるクライアントやサーバに係るコンピュータの構成例を示す概略ブロック図である。
【図９】本発明による照合システムの概要を示すブロック図である。
【発明を実施するための形態】
【００３２】
以下、本発明の各実施形態を図面を参照して説明する。以下の説明では、本発明の照合システムが生体認証に適用される場合を例にして説明する。本発明は、生体を用いた認証と、テンプレートに関する知識を用いた認証の、二要素認証の一種と考えることも可能である。ただし、本発明の照合システムは、生体認証以外の認証に適用されてもよい。
【００３３】
実施形態１．
図１は、本発明の第１の実施形態の照合システムの構成例を示すブロック図である。図１に示す照合システム１０は、クライアント１００と、サーバ２００とを備える。なお、図１では、１台のクライアント１００を図示しているが、クライアント１００は複数存在していてもよい。クライアント１００と、サーバ２００とは、通信ネットワークを介して通信可能である。以下、本実施形態の照合システム１０の各構成要素を説明する。
【００３４】
図１に示すように、クライアント１００は、鍵生成部１１０と、鍵記憶部１２０と、登録情報入力部１３０と、乱数生成部１４０と、秘匿化部１５０と、秘匿化情報記憶部１６０と、照合情報入力部１７０と、秘匿化指標算出部１８０と、出力部１９０とを備える。
【００３５】
本実施形態の照合システム１０には、公開鍵暗号方式に基づく電子署名が採用されている。鍵生成部１１０は、公開鍵および秘密鍵を生成する。以下、この公開鍵をｐｋ、この秘密鍵をｓｋとそれぞれ記す。鍵生成部１１０は、生体情報に依存することなく（換言すれば、生体情報を用いずに）、公開鍵ｐｋおよび秘密鍵ｓｋを生成する。
【００３６】
鍵生成部１１０は、安全性の強度を示すパラメータ（セキュリティパラメータと呼ばれ、一般に鍵の長さを意味する。）を用いて、公開鍵ｐｋおよび秘密鍵ｓｋを生成する。この動作は、セキュリティパラメータをκとすると、以下のように示すことができる。
【００３７】
（ｐｋ，ｓｋ）←ＫｅｙＧｅｎ（１κ）
【００３８】
また、鍵生成部１１０は、生成された公開鍵ｐｋをサーバ２００に送信する。なお、秘密鍵ｓｋはサーバ２００に送信されない。
【００３９】
本実施形態では、鍵生成部１１０が、一組の公開鍵ｐｋおよび秘密鍵ｓｋを生成し、サーバ２００に公開鍵ｐｋを送信する場合を例にして説明する。
【００４０】
鍵生成部１１０がサーバ２００に送信した公開鍵ｐｋは、サーバ２００の鍵受信部２１０によって受信され、サーバ２００の鍵記憶部２２０に記憶される。
【００４１】
鍵記憶部１２０は、公開鍵ｐｋを記憶する記憶装置である。なお、公開鍵ｐｋが不要な場合、鍵記憶部１２０は、公開鍵ｐｋを記憶しなくてもよい。
【００４２】
登録情報入力部１３０は、登録情報の入力を受け付ける。本実施形態では、登録情報として、被登録者の生体情報が登録情報入力部１３０に入力される。
【００４３】
なお、本実施形態では、登録情報、および、後述の照合情報（登録情報との照合のために入力される情報）が、共通の次元のベクトルで表されている場合を例にして説明する。
【００４４】
登録情報入力部１３０は、登録情報に応じた入力デバイスであればよい。例えば、指紋から抽出される生体情報を登録情報とする場合、登録情報入力部１３０は、指紋を読み取り、その指紋から登録情報となるベクトルを抽出し、そのベクトルを入力として受け付ける入力デバイスであってもよい。また、登録情報入力部１３０は、登録情報となるベクトルが直接、入力される入力デバイスであってもよい。
【００４５】
なお、本実施形態において、生体情報は、指紋以外に虹彩、網膜、顔、血管（静脈）、掌紋、声紋、またはこれらの組み合わせから抽出されてもよい。生体情報は、上述した例以外の、生体を識別可能な他の情報から抽出されてもよい。
【００４６】
登録情報入力部１３０に入力される被登録者の生体情報（登録情報）に該当するベクトルをＸと記す。
【００４７】
乱数生成部１４０は、乱数Ｒを生成する。乱数生成部１４０は、生成された乱数Ｒを秘匿化部１５０に入力する。また、乱数生成部１４０は、生成された乱数Ｒをサーバ２００に送信する。
【００４８】
秘匿化部１５０は、登録情報入力部１３０に入力された被登録者の生体情報Ｘと入力された乱数Ｒを秘密鍵ｓｋによって秘匿化する。すなわち、秘密鍵ｓｋは、秘匿化鍵とも言える。秘匿化した後、秘匿化部１５０は、漏えいを防ぐために秘密鍵ｓｋを削除する。また、乱数生成部１４０は、漏えいを防ぐために乱数Ｒを削除する。また、秘匿化部１５０は、生体情報Ｘと乱数Ｒを秘匿化した情報（秘匿化情報と記す。）を、秘匿化情報記憶部１６０に記憶させる。
【００４９】
秘匿化情報記憶部１６０は、秘匿化情報と、サーバ２００から送信されたユーザＩＤとを併せて記憶する記憶装置である。
【００５０】
この秘匿化情報は、生体認証のために予め記憶される、被登録者の生体情報から生成されたデータである。従って、この秘匿化情報は、テンプレートに含まれる。なお、秘密鍵ｓｋは、被登録者の生体情報から生成されたデータではなく、テンプレートに含まれない。
【００５１】
本実施形態では、秘匿化の具体例として、暗号化を例にして説明する。すなわち、秘匿化部１５０は、登録情報入力部１３０に入力された被登録者の生体情報Ｘと乱数生成部１４０から入力された乱数Ｒを暗号化し、暗号化された生体情報Ｘ（Ｅｎｃ（Ｒ，Ｘ）と記す。）を、秘匿化情報記憶部１６０に記憶させる。秘匿化部１５０は、秘密鍵ｓｋによって被登録者の生体情報Ｘと乱数Ｒを暗号化し、Ｅｎｃ（Ｒ，Ｘ）を生成する。
【００５２】
登録情報との照合のために入力される情報を照合情報と記す。照合情報入力部１７０は、照合情報の入力を受け付ける。本実施形態では、照合情報として、被認証者の生体情報が照合情報入力部１７０に入力される。前述のように、登録情報および照合情報は、共通の次元のベクトルで表されている。
【００５３】
照合情報入力部１７０は、照合情報に応じた入力デバイスであればよい。例えば、指紋から抽出される生体情報を照合情報とする場合、照合情報入力部１７０は、指紋を読み取り、その指紋から照合情報となるベクトルを抽出し、そのベクトルを入力として受け付ける入力デバイスであってもよい。また、照合情報入力部１７０は、照合情報となるベクトルが直接入力される入力デバイスであってもよい。また、登録情報入力部１３０と照合情報入力部１７０とが共通の入力デバイスであってもよい。
【００５４】
照合情報入力部１７０に入力される被認証者の生体情報（照合情報）に該当するベクトルをＹと記す。
【００５５】
秘匿化指標算出部１８０は、被認証者の生体情報Ｙと、テンプレート（すなわち、被登録者の生体情報Ｘと乱数Ｒを暗号化することで得られたＥｎｃ（Ｒ，Ｘ））とに基づいて、生体情報Ｘと生体情報Ｙとの近さを示す値である指標を暗号化したデータ（以下、秘匿化指標と記す。）を算出する。
【００５６】
このとき、秘匿化指標算出部１８０は、テンプレートＥｎｃ（Ｒ，Ｘ）を復号することなく、秘匿化指標を算出する。なお、復号は、秘匿化の解除であると言うことができる。秘匿化指標算出部１８０は、算出された秘匿化指標と、テンプレートと併せて秘匿化情報記憶部１６０に記憶されていたユーザＩＤをサーバ２００に送信する。
【００５７】
出力部１９０は、サーバ２００から送信された、生体認証の結果を示す認証結果情報を受信する。また、出力部１９０は、受信された認証結果情報を、クライアント１００の外部に出力する。
【００５８】
鍵生成部１１０、乱数生成部１４０、秘匿化指標算出部１８０、および出力部１９０は、例えば、クライアント用プログラムに従って動作するコンピュータのＣＰＵ（Central Processing Unit ）、および、そのコンピュータの通信インタフェースによって実現される。例えば、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体からクライアント用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、鍵生成部１１０、乱数生成部１４０、秘匿化指標算出部１８０、および出力部１９０として動作すればよい。また、秘匿化部１５０は、例えば、クライアント用プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、ＣＰＵが上記のようにプログラム記録媒体からクライアント用プログラムを読み込み、そのプログラムに従って、秘匿化部１５０として動作すればよい。
【００５９】
鍵記憶部１２０および秘匿化情報記憶部１６０は、例えば、コンピュータが備える記憶装置によって実現される。
【００６０】
また、図１に示すように、サーバ２００は、鍵受信部２１０と、鍵記憶部２２０と、ＩＤ発行部２３０と、乱数記憶部２４０と、受理範囲記憶部２５０と、判定部２６０とを備える。
【００６１】
鍵受信部２１０は、クライアント１００によって生成され、クライアント１００から送信される公開鍵ｐｋを受信し、その公開鍵ｐｋを鍵記憶部２２０に記憶させる。
【００６２】
鍵記憶部２２０は、公開鍵ｐｋを記憶する記憶装置である。
【００６３】
ＩＤ発行部２３０は、乱数Ｒを送信した１つのクライアント１００に対して、１つのユーザＩＤを発行する。ＩＤ発行部２３０は、発行されたユーザＩＤをクライアント１００に送信する。
【００６４】
また、ＩＤ発行部２３０は、送信された乱数Ｒと発行されたユーザＩＤの組を乱数記憶部２４０に入力する。乱数記憶部２４０は、乱数ＲとユーザＩＤの組を記憶する記憶装置である。
【００６５】
判定部２６０は、鍵記憶部２２０に記憶されている、秘匿化鍵（秘密鍵ｓｋ）に対応する解除鍵（公開鍵ｐｋ）、および送信されたユーザＩＤと共に乱数記憶部２４０に記憶されている乱数Ｒを用いて、送信された秘匿化指標から指標を取得可能か否かを判定する。すなわち、公開鍵ｐｋは、解除鍵とも言える。
【００６６】
送信された秘匿化指標から指標を取得可能な場合、判定部２６０は、指標を取得する。次いで、判定部２６０は、取得可能と判定した後に秘匿化指標から取得された指標に基づいて、照合情報と登録情報とが対応するか否かを判定する。具体的には、判定部２６０は、秘匿化指標から得られた指標が、予め定められた受理範囲内の値であるか否かを判定することによって、被登録者と被認証者とが一致するか否かを判定する。なお、予め定められた受理範囲は、受理範囲記憶部２５０に記憶されている。
【００６７】
すなわち、判定部２６０は、秘匿化指標から取得された指標が、受理範囲内の値であるならば、被登録者と被認証者とが一致すると判定する。被登録者と被認証者とが一致することが、照合情報と登録情報とが対応することに相当する。また、判定部２６０は、秘匿化指標から取得された指標が、受理範囲内の値でないならば、被登録者と被認証者とが一致しないと判定する。判定部２６０は、判定の結果を示す認証結果情報を、クライアント１００に送信する。
【００６８】
被登録者と被認証者とが一致した場合に、認証に成功したものとして、認証後の処理を実行すればよい。例えば、一例として、サーバ２００が、判定部２６０の判定結果を、クライアント１００に送信し、クライアント１００は、被登録者と被認証者とが一致したという判定結果を受信した場合に、認証に成功したものとして、認証後の処理を実行してもよい。ただし、認証後の処理を実行する装置は、クライアント１００に限定されず、被登録者と被認証者とが一致したという判定結果が得られたことを条件に、クライアント１００以外の装置が、認証後の処理を実行してもよい。
【００６９】
鍵受信部２１０、ＩＤ発行部２３０、および判定部２６０は、例えば、サーバ用プログラムに従って動作するコンピュータのＣＰＵ、および、そのコンピュータの通信インタフェースによって実現される。例えば、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、鍵受信部２１０、ＩＤ発行部２３０、および判定部２６０として動作すればよい。
【００７０】
鍵記憶部２２０、乱数記憶部２４０、および受理範囲記憶部２５０は、例えば、コンピュータが備える記憶装置によって実現される。
【００７１】
なお、サーバ２００は、ＩＤ発行部２３０を備えていなくてもよい。すなわち、本実施形態においてユーザＩＤは、必須の要素ではない。
【００７２】
また、照合システム１０に電子署名が採用されない場合、秘密鍵ｓｋおよび公開鍵ｐｋを生成する鍵生成部１１０は、クライアント１００の代わりにサーバ２００に備えられてもよい。
【００７３】
鍵生成部１１０がサーバ２００に備えられる場合、鍵生成部１１０は、生成された公開鍵ｐｋをクライアント１００に送信する。鍵記憶部１２０には、送信された公開鍵ｐｋが記憶される。また、鍵記憶部２２０には、生成された公開鍵ｐｋおよび秘密鍵ｓｋが記憶される。
【００７４】
また、秘匿化部１５０は、被登録者の生体情報Ｘと乱数Ｒを公開鍵ｐｋによって秘匿化する。すなわち、公開鍵ｐｋは、秘匿化鍵とも言える。また、判定部２６０は、鍵記憶部２２０に記憶されている秘密鍵ｓｋ、および受信されたユーザＩＤと共に乱数記憶部２４０に記憶されている乱数Ｒを用いて、受信された秘匿化指標から指標を取得する。すなわち、秘密鍵ｓｋは、解除鍵とも言える。
【００７５】
次に、処理経過について説明する。図２は、第１の実施形態のクライアント１００の秘匿化情報記憶部１６０に予めテンプレートを記憶させる際の処理経過の例を示すフローチャートである。すなわち、図２に示す処理経過は、テンプレートの登録処理の処理経過である。なお、既に説明した事項については、詳細な説明を省略する。
【００７６】
まず、クライアント１００の鍵生成部１１０が、公開鍵ｐｋおよび秘密鍵ｓｋを生成する（ステップS101）。このとき、鍵生成部１１０は、生体情報Ｘを用いることなく、公開鍵ｐｋおよび秘密鍵ｓｋを生成する。次に、鍵生成部１１０は、ステップS101で生成された公開鍵ｐｋを、サーバ２００に送信する。
【００７７】
そして、サーバ２００の鍵受信部２１０は、その公開鍵ｐｋをクライアント１００から受信する。鍵受信部２１０は、その公開鍵ｐｋを鍵記憶部２２０に記憶させる（ステップS102）。また、鍵生成部１１０は、生成した公開鍵ｐｋを鍵記憶部１２０に記憶させる（ステップS103）。ただし、公開鍵ｐｋが不要な場合、鍵生成部１１０は、公開鍵ｐｋを鍵記憶部１２０に記憶させなくてもよい。
【００７８】
その後、被登録者の生体情報Ｘが登録情報入力部１３０に入力される（ステップS104）。次いで、乱数生成部１４０が、乱数Ｒを生成する（ステップS105）。乱数生成部１４０は、生成された乱数Ｒを秘匿化部１５０に入力する。
【００７９】
次いで、秘匿化部１５０は、秘密鍵ｓｋによって乱数Ｒと生体情報Ｘを暗号化することによってテンプレート（Ｅｎｃ（Ｒ，Ｘ））を生成する（ステップS106）。
【００８０】
次いで、乱数生成部１４０が、生成された乱数Ｒをサーバ２００に送信する。送信した後、乱数生成部１４０は、乱数Ｒを削除する。また、秘匿化部１５０は、秘密鍵ｓｋを削除する（ステップS107）。
【００８１】
送信された乱数Ｒを受信したＩＤ発行部２３０は、ユーザＩＤを発行する（ステップS108）。ＩＤ発行部２３０は、発行されたユーザＩＤをクライアント１００に送信する。
【００８２】
乱数生成部１４０は、送信されたユーザＩＤを受信する。乱数生成部１４０は、受信されたユーザＩＤを秘匿化部１５０に入力する。次いで、秘匿化部１５０は、受信されたユーザＩＤを、ステップS106で生成されたテンプレートと共に秘匿化情報記憶部１６０に記憶させる（ステップS109）。
【００８３】
また、ＩＤ発行部２３０は、発行されたユーザＩＤを、受信された乱数Ｒと共に乱数記憶部２４０に記憶させる（ステップS110）。
【００８４】
なお、図２を参照して説明した上記の処理経過は、繰り返し実行されてもよい。また、予めテンプレートを記憶させる際の処理経過は、図２に示す例に限定されない。例えば、ステップS101の前にステップS104が実行されてもよい。
【００８５】
図３は、第１の実施形態の照合システム１０における認証時の処理経過の例を示すフローチャートである。なお、既に説明した事項については、詳細な説明を省略する。
【００８６】
最初に、被認証者の生体情報Ｙが照合情報入力部１７０に入力される（ステップS201）。
【００８７】
次いで、秘匿化指標算出部１８０は、ユーザＩＤとテンプレートを秘匿化情報記憶部１６０から併せて取得する（ステップS202）。秘匿化指標算出部１８０は、取得されたユーザＩＤをサーバ２００に送信する。サーバ２００の判定部２６０は、そのユーザＩＤをクライアント１００から受信する。
【００８８】
次いで、秘匿化指標算出部１８０は、ステップS201で入力された生体情報Ｙと、ステップS202で取得されたテンプレート（Ｅｎｃ（Ｒ，Ｘ））とに基づいて、生体情報Ｘと生体情報Ｙとの近さを示す指標ｄ（Ｘ，Ｙ）が秘匿化された秘匿化指標（Ｅｎｃ（Ｒ，ｄ（Ｘ，Ｙ）））を算出する（ステップS203）。ステップS203において、秘匿化指標算出部１８０は、Ｅｎｃ（Ｒ，Ｘ）を復号することなく、秘匿化指標を算出する。
【００８９】
次いで、秘匿化指標算出部１８０は、ステップS203で算出された秘匿化指標をサーバ２００に送信する。サーバ２００の判定部２６０は、その秘匿化指標をクライアント１００から受信する。
【００９０】
次いで、判定部２６０は、鍵記憶部２２０に記憶されている公開鍵ｐｋ、および受信されたユーザＩＤと共に乱数記憶部２４０に記憶されている乱数Ｒを用いて、受信された秘匿化指標から指標ｄ（Ｘ，Ｙ）を取得可能か否かを判定する（ステップS204）。この公開鍵ｐｋは、ステップS101で生成された公開鍵である。
【００９１】
次いで、判定部２６０は、取得可能と判定した後に秘匿化指標から取得された指標ｄ（Ｘ，Ｙ）が、予め定められた受理範囲内の値であるか否かを判定することによって、被登録者と被認証者とが一致するか否かを判定する（ステップS205）。なお、受信された秘匿化指標から指標ｄ（Ｘ，Ｙ）が取得されなかった場合、判定部２６０は、ステップS205の処理を行わなくてもよい。
【００９２】
指標ｄ（Ｘ，Ｙ）が受理範囲内の値である場合、判定部２６０は、被登録者と被認証者とが一致するとして「認証成功」を示す認証結果情報を生成する。また、指標ｄ（Ｘ，Ｙ）が受理範囲内の値でない場合、判定部２６０は、被登録者と被認証者とが一致しないとして「認証失敗」を示す認証結果情報を生成する（ステップS206）。
【００９３】
次いで、判定部２６０は、生成された認証結果情報をクライアント１００に送信する。そして、クライアント１００の出力部１９０は、サーバ２００から送信された認証結果情報を受信する。次いで、出力部１９０は、受信された認証結果情報を出力する（ステップS207）。
【００９４】
なお、認証結果情報は、直接サーバ２００から出力されてもよい。また、図３を参照して説明した上記の処理経過は、繰り返し実行されてもよい。
【００９５】
［効果の説明］
前述のように、クライアントに保存されるテンプレートは、個人情報保護法による保護対象ではない可能性がある。しかし、生体情報は、生涯変わることのない個人情報であるため、漏えいを防止することが好ましい。
【００９６】
また、ある事業者が提供するサービスに使用するための生体情報をテンプレートとしてクライアントのみに保存していたとしても、その生体情報が漏えいした場合、その事業者の責任が追及される可能性がある。
【００９７】
また、クライアントがマルウェアに感染した場合等に、クライアントから生体情報が漏えいする危険がある。しかし、この危険は、サービスプロバイダの努力によって解消しにくい。
【００９８】
ＦＩＤＯでは、被登録者の生体情報を暗号化した情報を含むデータがテンプレートとしてクライアントに保存されている。被認証者の生体情報が入力されると、クライアントは、鍵によってテンプレートに含まれる生体情報の暗号文を復号する。このとき、復号によって得られた生体情報が漏えいする可能性がある。また、テンプレートと鍵が一緒に第三者によって盗まれた場合には、第三者は、テンプレートを復号することによって、生体情報を得ることができてしまう。
【００９９】
また、キャッシュカードのＩＣチップは耐タンパ性を有する。しかし、ＩＣチップの外で生体認証を行う場合に、ＩＣチップに保存されている暗号化された生体情報は復号され、ＩＣチップの外に送信されたとすると、復号された生体情報が漏えいする可能性がある。
【０１００】
本実施形態によれば、クライアント１００の鍵生成部１１０は、生体情報Ｘを用いることなく、公開鍵ｐｋおよび秘密鍵ｓｋを生成する。そして、サーバ２００の鍵受信部２１０は、その公開鍵ｐｋをクライアント１００から受信し、サーバ２００の鍵記憶部２２０に記憶させる。また、クライアント１００に生体情報Ｘが入力されると、秘匿化部１５０は、生体情報Ｘを用いることなく生成された秘密鍵ｓｋおよび乱数Ｒを用いて、生体情報Ｘを暗号化することによって、テンプレートを生成し、テンプレートをクライアント１００の秘匿化情報記憶部１６０に記憶させる。従って、本実施形態によれば、テンプレートをクライアント１００に保存することができる。そして、そのテンプレートは暗号化されているので、テンプレートから生体情報ＸやＸの一部が漏えいすることを防止できる。サーバ２００は生体情報Ｘに関する情報を一切有さないので、サーバ２００から生体情報ＸやＸの一部が漏えいすることは起こり得ない。
【０１０１】
また、認証時には、秘匿化指標算出部１８０が、入力された生体情報Ｙとテンプレートとに基づいて、生体情報Ｘと生体情報Ｙとの近さを示す指標が秘匿化された秘匿化指標を算出する。次いで、判定部２６０は、送信されたユーザＩＤと共に乱数記憶部２４０に記憶されている乱数Ｒと、鍵記憶部２２０に記憶されている公開鍵ｐｋとを用いて、秘匿化指標から生体情報Ｘと生体情報Ｙとの近さを示す指標を取得する。判定部２６０は、取得された指標が受理範囲内の値であるか否かを判定することによって、被登録者と被認証者とが一致するか否かを判定する。
【０１０２】
本実施形態の乱数記憶部２４０にユーザＩＤと共に記憶されている乱数Ｒは、ユーザＩＤに対応するテンプレートの生成に使用された乱数である。すなわち、ユーザＩＤに対応する生体情報Ｘと生体情報Ｙとの近さを示す指標がそのユーザＩＤと共に記憶されている乱数Ｒを用いて取得されれば、登録された生体情報Ｘが用いられて秘匿化指標が算出されたことが確認される。よって、本実施形態の照合システム１０は、偽の生体情報を用いて秘匿化指標を生成し、生成された秘匿化指標を用いてなりすまし認証を行う攻撃を防御できる。
【０１０３】
実施形態２．
図４は、本発明の第２の実施形態の照合システムの構成例を示すブロック図である。図４に示す照合システム１１は、クライアント１０１と、サーバ２０１とを備える。なお、図４では、１台のクライアント１０１を図示しているが、クライアント１０１は複数存在していてもよい。クライアント１０１と、サーバ２０１とは、通信ネットワークを介して通信可能である。
【０１０４】
例えば、クライアントからサーバに送信された認証情報を、攻撃者が盗聴したとする。その後、盗聴された認証情報をサーバに再送する、あるいは加工してから送信する再送攻撃を攻撃者が実行し、サーバがクライアントから送信された認証情報として再送された認証情報を受理してしまう可能性がある。
【０１０５】
この場合、上記の再送攻撃を通じて、攻撃者は、クライアントになりすまし、サーバへの認証を成功させるという、なりすましを実行可能である。
【０１０６】
本実施形態の照合システム１１には、なりすましが防止されるように、チャレンジ・レスポンス方式が導入されている。具体的には、サーバ２０１が認証ごとに毎回異なるチャレンジをクライアント１０１に送信し、クライアント１０１にチャレンジに対応し、かつ、登録情報と照合情報との近さを含むレスポンスを計算させることによって、レスポンスの値が認証ごとに変更される。
【０１０７】
攻撃者がレスポンスの値を盗聴したとしても、盗聴された値は次の認証においてもはや使用不能であり、攻撃者は別のチャレンジに対応するレスポンスを生成できないため、再送攻撃等のなりすましが防止される。以下、本実施形態の照合システム１１の各構成要素を説明する。
【０１０８】
本実施形態のクライアント１０１には、第１の実施形態のクライアント１００に備えられている秘匿化指標算出部１８０の代わりに、レスポンス算出部１８１が備えられている。レスポンス算出部１８１以外の各構成要素が有する機能は、クライアント１００に備えられている対応する各構成要素が有する機能とそれぞれ同様である。
【０１０９】
レスポンス算出部１８１は、被認証者の生体情報Ｙと、テンプレートと、公開鍵ｐｋと、サーバ２０１から送信されたチャレンジとに基づいて、チャレンジに対応するレスポンスを算出する。算出されるレスポンスには、生体情報Ｘと生体情報Ｙとの近さを示す値である指標が含まれている。また、算出されるレスポンス自体は、暗号化されている。
【０１１０】
このとき、レスポンス算出部１８１は、テンプレートＥｎｃ（Ｒ，Ｘ）を復号することなく、レスポンスを算出する。レスポンス算出部１８１は、算出されたレスポンスをサーバ２０１に送信する。
【０１１１】
また、本実施形態のサーバ２０１には、チャレンジ生成部２７０が備えられている。判定部２６０、チャレンジ生成部２７０以外の各構成要素が有する機能は、サーバ２００に備えられている対応する各構成要素が有する機能とそれぞれ同様である。
【０１１２】
チャレンジ生成部２７０は、チャレンジを生成する。チャレンジ生成部２７０は、生成されたチャレンジをクライアント１０１に送信する。
【０１１３】
判定部２６０は、クライアント１０１から送信されたレスポンスを受信する。判定部２６０は、受信されたレスポンスが送信されたチャレンジに対応するレスポンスであるか否かを、鍵記憶部２２０に記憶されている公開鍵ｐｋと、乱数記憶部２４０に記憶されている乱数Ｒとを用いて判定する。判定の一例として、判定部２６０は、受信されたレスポンスが公開鍵ｐｋによって復号できるか否かを判定する。
【０１１４】
受信されたレスポンスが送信されたチャレンジに対応する場合、判定部２６０は、レスポンスに含まれる指標が、予め定められた受理範囲内の値であるか否かを判定する。指標が受理範囲内の値であるか否かを判定することによって、判定部２６０は、被登録者と被認証者とが一致するか否かを判定する。なお、判定部２６０は、受理範囲記憶部２５０に記憶されている受理範囲を判定に使用する。
【０１１５】
すなわち、判定部２６０は、レスポンスに含まれる指標が、受理範囲内の値であるならば、被登録者と被認証者とが一致すると判定する。また、判定部２６０は、レスポンスに含まれる指標が、受理範囲内の値でないならば、被登録者と被認証者とが一致しないと判定する。判定部２６０は、判定の結果を示す認証結果情報を、クライアント１０１に送信する。
【０１１６】
レスポンス算出部１８１は、例えば、クライアント用プログラムに従って動作するコンピュータのＣＰＵ、および、そのコンピュータの通信インタフェースによって実現される。例えば、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体からクライアント用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、レスポンス算出部１８１として動作すればよい。
【０１１７】
また、チャレンジ生成部２７０は、例えば、サーバ用プログラムに従って動作するコンピュータのＣＰＵ、および、そのコンピュータの通信インタフェースによって実現される。例えば、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、チャレンジ生成部２７０として動作すればよい。
【０１１８】
次に、処理経過について説明する。クライアント１０１の秘匿化情報記憶部１６０に予めテンプレートを記憶させる際の処理経過は、図２に示す処理経過と同様である。
【０１１９】
図５は、第２の実施形態の照合システム１１における認証時の処理経過の例を示すフローチャートである。なお、既に説明した事項については、詳細な説明を省略する。
【０１２０】
最初に、被認証者の生体情報Ｙが照合情報入力部１７０に入力される（ステップS211）。
【０１２１】
次いで、レスポンス算出部１８１は、ユーザＩＤとテンプレートを秘匿化情報記憶部１６０から併せて取得する（ステップS212）。レスポンス算出部１８１は、取得されたユーザＩＤをサーバ２０１に送信する。サーバ２０１の判定部２６０は、そのユーザＩＤをクライアント１０１から受信する。
【０１２２】
次いで、チャレンジ生成部２７０は、チャレンジを生成する（ステップS213）。チャレンジ生成部２７０は、生成されたチャレンジをクライアント１０１に送信する。
【０１２３】
次いで、レスポンス算出部１８１は、送信されたチャレンジを受信する。
【０１２４】
次いで、レスポンス算出部１８１は、ステップS211で入力された生体情報Ｙと、ステップS212で取得されたテンプレートと、受信されたチャレンジとを基に、生体情報Ｘと生体情報Ｙとの近さを示す指標を含むレスポンスを公開鍵ｐｋを用いて算出する（ステップS214）。
【０１２５】
次いで、レスポンス算出部１８１は、ステップS214で算出されたレスポンスをサーバ２０１に送信する。そして、サーバ２０１の判定部２６０は、クライアント１０１から送信されたレスポンスを受信する。
【０１２６】
次いで、判定部２６０は、受信されたレスポンスが送信されたチャレンジに対応するレスポンスであるか否かを、鍵記憶部２２０に記憶されている公開鍵ｐｋと、受信されたユーザＩＤと共に乱数記憶部２４０に記憶されている乱数Ｒとを用いて判定する（ステップS215）。
【０１２７】
受信されたレスポンスが送信されたチャレンジに対応する場合、判定部２６０は、レスポンスに含まれる指標が、予め定められた受理範囲内の値であるか否かを判定することによって、被登録者と被認証者とが一致するか否かを判定する（ステップS216）。なお、受信されたレスポンスが送信されたチャレンジに対応しない場合、判定部２６０は、ステップS216の処理を行わなくてもよい。
【０１２８】
レスポンスに含まれる指標が受理範囲内の値である場合、判定部２６０は、被登録者と被認証者とが一致するとして「認証成功」を示す認証結果情報を生成する。また、受信されたレスポンスが送信されたチャレンジに対応しない場合、またはレスポンスに含まれる指標が受理範囲内の値でない場合、判定部２６０は、被登録者と被認証者とが一致しないとして「認証失敗」を示す認証結果情報を生成する（ステップS217）。
【０１２９】
次に、判定部２６０は、生成された認証結果情報をクライアント１０１に送信する。そして、クライアント１０１の出力部１９０は、サーバ２０１から送信された認証結果情報を受信する。次に、出力部１９０は、受信された認証結果情報を出力する（ステップS218）。
【０１３０】
なお、認証結果情報は、直接サーバ２０１から出力されてもよい。また、図５を参照して説明した上記の処理経過は、繰り返し実行されてもよい。
【０１３１】
以下、本実施形態の認証フェーズの各具体例について説明する。以下の説明では、生体情報Ｘおよび生体情報Ｙは、いずれもｎ次元のベクトルであるものとする。そして、Ｘの各要素は、Ｘ＝（ｘ１，・・・，ｘｎ）と表され、Ｙの各要素は、Ｙ＝（ｙ１，・・・，ｙｎ）と表されるものとする。また、記号ｉで１，・・・，ｎを表すものとする。例えば、｛ｕｉ｝＝ｕ１，ｕ２，・・・，ｕｎである。
【０１３２】
＜具体例１＞
本具体例では、生体情報Ｘと生体情報Ｙとの近さを示す指標が、生体情報Ｘと生体情報Ｙとのハミング距離である場合を考える。以下、指標がハミング距離である場合を例にして説明する。以下では、指標がハミング距離である場合の処理の一例を示す。
【０１３３】
指標がハミング距離である場合、生体情報Ｘの各要素ｘ１〜ｘｎおよび生体情報Ｙの各要素ｙ１〜ｙｎはそれぞれ、０または１のいずれかの値であるものとする。本例におけるハミング距離は、対応する位置に存在している異なった値の要素の数である。
【０１３４】
指標がハミング距離である場合、ハミング距離を訂正する誤り訂正符号（Ｅｎｃｏｄｅ１，Ｄｅｃｏｄｅ１）が利用される。誤り訂正符号として、例えばＢＣＨ符号が存在する。Ｅｎｃｏｄｅ１（Ｘ）とＹとのハミング距離が短ければ、Ｄｅｃｏｄｅ１（Ｙ）＝Ｘが成立する。
【０１３５】
以下、加法線形性を有する誤り訂正符号が使用される場合の具体的な処理を説明する。すなわち、Ｅｎｃｏｄｅ１（Ｘ）とＥｎｃｏｄｅ１（Ｙ）に対して、Ｄｅｃｏｄｅ１（Ｅｎｃｏｄｅ１（Ｘ）＋Ｅｎｃｏｄｅ１（Ｙ））＝Ｘ＋Ｙが成立する。なお、以下に示すS201等の各ステップ番号は、図２または図５に示す各ステップ番号にそれぞれ対応している。
【０１３６】
最初に、生体情報Ｘを基にテンプレートを登録させる処理を説明する。鍵生成部１１０が、以下のように署名の鍵ペア（公開鍵ｐｋＥおよび秘密鍵ｓｋＥ）を生成する（ステップS101）。
【０１３７】
（ｐｋＥ，ｓｋＥ）←ＫｅｙＧｅｎ（１κ）
【０１３８】
鍵生成部１１０は、ステップS101で生成された公開鍵ｐｋＥを、サーバ２０１に送信する。鍵受信部２１０は、受信された公開鍵ｐｋＥを鍵記憶部２２０に記憶させる（ステップS102）。また、鍵生成部１１０は、生成した公開鍵ｐｋＥを鍵記憶部１２０に記憶させる（ステップS103）。
【０１３９】
その後、被登録者の生体情報Ｘが登録情報入力部１３０に入力される（ステップS104）。次いで、乱数生成部１４０が、乱数Ｒを生成する（ステップS105）。乱数生成部１４０は、生成された乱数Ｒを秘匿化部１５０に入力する。
【０１４０】
次いで、秘匿化部１５０は、鍵記憶部１２０に記憶されている秘密鍵ｓｋＥと入力された乱数Ｒとを加算する。次いで、秘匿化部１５０は、以下のように線形誤り訂正符号を用いてｓｋＥ＋Ｒをエンコードし、生体情報Ｘでマスク（隠蔽）することによって、テンプレートｓｓを生成する（ステップS106）。
【０１４１】
ｓｓ←Ｅｎｃｏｄｅ１（ｓｋＥ＋Ｒ）＋Ｘ
【０１４２】
次いで、乱数生成部１４０は、生成された乱数Ｒをサーバ２０１に送信する。送信した後、乱数生成部１４０は、乱数Ｒを削除する。また、秘匿化部１５０は、秘密鍵ｓｋを削除する（ステップS107）。
【０１４３】
送信された乱数Ｒを受信したＩＤ発行部２３０は、ユーザＩＤを発行する（ステップS108）。ＩＤ発行部２３０は、発行されたユーザＩＤをクライアント１０１に送信する。
【０１４４】
乱数生成部１４０は、送信されたユーザＩＤを受信する。次いで、秘匿化部１５０は、受信されたユーザＩＤを、ステップS106で生成されたテンプレートｓｓと共に秘匿化情報記憶部１６０に記憶させる（ステップS109）。
【０１４５】
また、ＩＤ発行部２３０は、発行されたユーザＩＤを、受信された乱数Ｒと共に乱数記憶部２４０に記憶させる（ステップS110）。
【０１４６】
次に、認証時の処理を説明する。最初に、被認証者の生体情報Ｙが照合情報入力部１７０に入力される（ステップS211）。
【０１４７】
次いで、レスポンス算出部１８１は、ユーザＩＤとテンプレートｓｓを秘匿化情報記憶部１６０から併せて取得する（ステップS212）。レスポンス算出部１８１は、取得されたユーザＩＤをサーバ２０１に送信する。サーバ２０１の判定部２６０は、そのユーザＩＤをクライアント１０１から受信する。
【０１４８】
次いで、チャレンジ生成部２７０は、チャレンジＭを生成する（ステップS213）。チャレンジ生成部２７０は、生成されたチャレンジＭをクライアント１０１に送信する。
【０１４９】
次いで、レスポンス算出部１８１は、ステップS211で入力された生体情報Ｙと、ステップS212で取得されたテンプレートｓｓとを基に、以下の値ｋを算出する。
【０１５０】
ｋ←Ｄｅｃｏｄｅ１（ｓｓ−Ｙ）
【０１５１】
ＸとＹが近い場合、ｋ＝ｓｋＥ＋Ｒとなる。次いで、レスポンス算出部１８１は、受信されたチャレンジを用いて、ｋを秘密鍵とした電子署名を生成する。
【０１５２】
例えばＳｃｈｎｏｒｒ署名を利用する場合、レスポンス算出部１８１は、乱数ｒをランダムに選び、Ｓ＝Ｈ（Ｍ，ｇｒ）を算出する。なお、Ｈはハッシュ関数である。また、ｇは素数である。次いで、レスポンス算出部１８１は、以下の値σを算出する。
【０１５３】
σ←ｒ−ｋ・Ｓ
【０１５４】
各値を算出（ステップS214）した後、レスポンス算出部１８１は、生体情報Ｘと生体情報Ｙとのハミング距離を含むレスポンスとして、（Ｍ，Ｓ，σ）をサーバ２０１に送信する。
【０１５５】
なお、（Ｍ，Ｓ，σ）は、ｋを秘密鍵とするＳｃｈｎｏｒｒ署名に相当する。なお、レスポンス算出部１８１は、Ｓｃｈｎｏｒｒ署名の代わりに、標準的に利用されるＤＳＡ（Digital Signature Algorithm ）署名を使用してもよい。また、レスポンス算出部１８１は、その他の数学的に安全性が証明されたデジタル署名方式を利用してもよい。
【０１５６】
サーバ２０１の判定部２６０は、クライアント１０１から送信されたレスポンスを受信する。判定部２６０は、鍵記憶部２２０に記憶されている公開鍵ｐｋＥと、受信されたユーザＩＤと共に乱数記憶部２４０に記憶されている乱数Ｒを用いて電子署名（Ｍ，Ｓ，σ）を検証する（ステップS215、ステップS216）。
【０１５７】
例えばＳｃｈｎｏｒｒ署名が利用されている場合、判定部２６０は、以下の各式が成立するか否かを確認する。
【０１５８】
ｖｋｋ＝ｐｋＥ・ｇＲ＝ｇｓｋＥ＋Ｒ
Ｈ（ｇσ・（ｖｋｋ）Ｓ）＝Ｓ
【０１５９】
上記の各式のいずれかが成立しなければ、受信されたレスポンスが送信されたチャレンジに対応しない、またはレスポンスに含まれる指標が受理範囲内の値でないとして、判定部２６０は、「認証失敗」を示す認証結果情報を生成する（ステップS217）。
【０１６０】
上記の各式が両方成立すれば、判定部２６０は、受信されたレスポンスが送信されたチャレンジに対応し、かつレスポンスに含まれる指標が受理範囲内の値であるとして、「認証成功」を示す認証結果情報を生成する（ステップS217）。
【０１６１】
次いで、判定部２６０は、生成された認証結果情報をクライアント１０１に送信する。次いで、出力部１９０は、送信された認証結果情報を受信する。出力部１９０は、受信された認証結果情報を出力する（ステップS218）。なお、認証結果情報は、直接サーバ２０１から出力されてもよい。
【０１６２】
＜具体例２＞
本具体例では、生体情報Ｘと生体情報Ｙとの近さを示す指標が、生体情報Ｘと生体情報Ｙとの内積である場合を考える。生体情報Ｘと生体情報Ｙとの内積＜Ｘ，Ｙ＞は、Σ（ｘｉ・ｙｉ）である。以下、指標が内積である場合を例にして説明する。以下では、指標が内積である場合の処理の一例を示す。
【０１６３】
また、本具体例では、Ｓｃｈｎｏｒｒ署名が用いられている。Ｓｃｈｎｏｒｒ署名では、秘密鍵ｓｋと公開鍵ｐｋ＝ｇｓｋとの組が生成される。なお、ｓｋ∈Ｚｑ（Ｚｑ＝｛０，１，・・・，ｑ−１｝、ｑは素数）である（Ｚは整数全体の集合を表す記号）。また、ｇは、位数ｑの群Ｇの生成元である。すなわち、Ｇ＝｛ｇ０，ｇ１，・・・，ｇｑ−１｝である。Ｚｑ、ｇ、およびＧは、クライアント１０１とサーバ２０１との間で共有されている。
【０１６４】
以下、Ｓｃｈｎｏｒｒ署名が使用される場合の具体的な登録処理を、図６を参照して説明する。図６は、照合システム１１における具体的な登録処理の例を示す説明図である。なお、図６に示す登録処理は、図２に示す処理経過に従って行われていない。
【０１６５】
最初に、被登録者の生体情報Ｘが、登録情報入力部１３０に入力される。次いで、乱数生成部１４０は、以下のように乱数を生成する。
【０１６６】
（ｒ１，ｒ２，・・・，ｒｎ）←ＲＺｑ
Ｒ１，Ｒ２←ＲＺｑ
【０１６７】
なお、表記「Ｒ」は、生成される｛ｒｉ｝、Ｒ１、Ｒ２がそれぞれ乱数であることを表す。乱数生成部１４０は、生成された乱数を秘匿化部１５０に入力する。
【０１６８】
次いで、秘匿化部１５０は、入力された乱数と生体情報Ｘとを基に、ｉ＝１，２，・・・，ｎに対して、Ｒ１ｘｉ＋Ｒ２ｒｉ、ｇｒｉを生成する。以下、テンプレートを｛Ｒ１ｘｉ＋Ｒ２ｒｉ｝、｛ｇｒｉ｝とする。
【０１６９】
次いで、秘匿化部１５０は、鍵生成部１１０を介して、公開鍵に相当するｇＲ１をサーバ２０１に送信する。送信した後、秘匿化部１５０は、公開鍵ｇＲ１を削除する。
【０１７０】
サーバ２０１の鍵受信部２１０は、公開鍵ｇＲ１をクライアント１０１から受信する。鍵受信部２１０は、公開鍵ｇＲ１を鍵記憶部２２０に記憶させる。
【０１７１】
また、乱数生成部１４０は、生成された乱数Ｒ２をサーバ２０１に送信する。送信した後、秘匿化部１５０は、乱数Ｒ２を削除する。
【０１７２】
送信された乱数Ｒ２を受信したＩＤ発行部２３０は、ユーザＩＤを発行する。ＩＤ発行部２３０は、発行されたユーザＩＤをクライアント１０１に送信する。
【０１７３】
乱数生成部１４０は、送信されたユーザＩＤを受信する。次いで、秘匿化部１５０は、受信されたユーザＩＤを、生成されたテンプレートと共に秘匿化情報記憶部１６０に記憶させる。
【０１７４】
また、ＩＤ発行部２３０は、発行されたユーザＩＤを、受信された乱数Ｒ２と共に乱数記憶部２４０に記憶させる。
【０１７５】
次に、Ｓｃｈｎｏｒｒ署名が使用される場合の具体的な認証処理を、図７を参照して説明する。図７は、照合システム１１における具体的な認証処理の例を示す説明図である。
【０１７６】
最初に、被認証者の生体情報Ｙが照合情報入力部１７０に入力される（ステップS211）。
【０１７７】
次いで、レスポンス算出部１８１は、ユーザＩＤとテンプレートを秘匿化情報記憶部１６０から併せて取得する（ステップS212）。レスポンス算出部１８１は、取得されたユーザＩＤをサーバ２０１に送信する。サーバ２０１の判定部２６０は、そのユーザＩＤをクライアント１０１から受信する。
【０１７８】
次いで、チャレンジ生成部２７０は、チャレンジＭを生成する（ステップS213）。チャレンジ生成部２７０は、生成されたチャレンジＭをクライアント１０１に送信する。
【０１７９】
次いで、レスポンス算出部１８１は、ｒ←ＲＺｑを生成する。次いで、レスポンス算出部１８１は、Ｓ＝Ｈ（Ｍ，ｇｒ）を算出する。なお、Ｈは暗号学的ハッシュ関数である。次いで、レスポンス算出部１８１は、入力された生体情報Ｙとテンプレートとを基に、以下の各値を算出する。
【０１８０】
Ａ＝Σ（Ｒ１ｘｉ＋Ｒ２ｒｉ）・ｙｉ
σ１＝ｒ−Ａ・Ｓ
σ２＝ｇΣｒｉｙｉ
【０１８１】
なお、Ａは、ＸとＹの内積＜Ｘ，Ｙ＞がＲ１倍された値に、Ｒ２倍のΣｒｉｙｉが加算された値である。各値を算出（ステップS214）した後、レスポンス算出部１８１は、生体情報Ｘと生体情報Ｙとの内積を含むレスポンスとして、（Ｓ，σ１，σ２）をサーバ２０１に送信する。（Ｓ，σ１，σ２）は、Ａを秘密鍵とするＳｃｈｎｏｒｒ署名に相当する。
【０１８２】
サーバ２０１の判定部２６０は、クライアント１０１から送信されたレスポンスを受信する。判定部２６０は、鍵記憶部２２０に記憶されている公開鍵ｇＲ１と、受信されたユーザＩＤと共に乱数記憶部２４０に記憶されている乱数Ｒ２を用いて電子署名（Ｓ，σ１，σ２）を検証する（ステップS215、ステップS216）。具体的には、判定部２６０は、以下の各式を計算する。
【０１８３】
｛ｖｊ＝ｇσ１（σ２）Ｓ・Ｒ２（ｇＲ１）ａｊ・Ｓ｝
｛Ｈ（Ｍ，ｖｊ）＝Ｓ’ｊ｝
【０１８４】
なお、記号ｊで１，・・・，ｄを表すものとする。｛ａｊ｝＝（ａ１，ａ２，・・・，ａｄ）は、受理範囲記憶部２５０に記憶されている受理範囲である。すなわち、判定部２６０は、各｛ａｊ｝に対して、上記の各式を計算する。
【０１８５】
Ｓ＝Ｓ’ｊを満たすＳ’ｊが存在しなければ、受信されたレスポンスが送信されたチャレンジに対応しない、またはレスポンスに含まれる指標が受理範囲内の値でないとして、判定部２６０は、「認証失敗（図７に示すＮＧ）」を示す認証結果情報を生成する（ステップS217）。
【０１８６】
また、Ｓ＝Ｓ’ｊを満たすＳ’ｊが存在すれば、受信されたレスポンスが送信されたチャレンジに対応し、かつレスポンスに含まれる指標が受理範囲内の値であるとして、判定部２６０は、「認証成功（図７に示すＯＫ）」を示す認証結果情報を生成する（ステップS217）。
【０１８７】
次いで、判定部２６０は、生成された認証結果情報をクライアント１０１に送信する。次いで、出力部１９０は、送信された認証結果情報を受信する。出力部１９０は、受信された認証結果情報を出力する（ステップS218）。なお、認証結果情報は、直接サーバ２０１から出力されてもよい。
【０１８８】
なお、本具体例ではＳｃｈｎｏｒｒ署名が用いられているが、ＤＳＡ署名等の他の暗号学的に安全なデジタル署名方式が用いられてもよい。
【０１８９】
［効果の説明］
本実施形態の照合システム１１はチャレンジ・レスポンス方式で認証を行うため、認証ごとにレスポンスの値が変更される。すなわち、攻撃者がレスポンスの値を盗聴したとしても、盗聴された値は次の認証においてもはや使用不能であるため、再送攻撃が防止される。
【０１９０】
また、本発明の実施形態およびその具体例において、受理範囲記憶部２５０に記憶されている受理範囲は、ユーザ毎、クライアント毎に変更されてもよい。また、受理範囲は、外部要因等に応じて変更されてもよい。外部要因の例として、サーバが受け付ける認証の頻度、不審なアクセスの頻度、通信ネットワークやＣＰＵの負荷の状態等が挙げられる。受理範囲が変更されると、通信ネットワークやＣＰＵの負荷が低減する可能性がある。
【０１９１】
なお、照合システム１０および照合システム１１が実行する処理のうち、登録処理のみを実行する照合システムが構成されてもよい。例えば、鍵生成部１１０と、鍵記憶部１２０と、登録情報入力部１３０と、乱数生成部１４０と、秘匿化部１５０と、秘匿化情報記憶部１６０とを備えるクライアントと、鍵受信部２１０と、鍵記憶部２２０と、ＩＤ発行部２３０と、乱数記憶部２４０とを備えるサーバとで照合システムが構成されてもよい。
【０１９２】
同様に、照合システム１０および照合システム１１が実行する処理のうち、認証処理のみを実行する照合システムが構成されてもよい。例えば、秘匿化情報記憶部１６０と、照合情報入力部１７０と、秘匿化指標算出部１８０と、出力部１９０とを備えるクライアントと、鍵記憶部２２０と、乱数記憶部２４０と、受理範囲記憶部２５０と、判定部２６０とを備えるサーバとで照合システムが構成されてもよい。
【０１９３】
図８は、上記の実施形態やその具体例におけるクライアントやサーバに係るコンピュータの構成例を示す概略ブロック図である。以下、図８を参照して説明するが、クライアントとして用いられるコンピュータと、サーバとして用いられるコンピュータとは、別々のコンピュータである。
【０１９４】
コンピュータ１０００は、ＣＰＵ１００１と、主記憶装置１００２と、補助記憶装置１００３と、インタフェース１００４と、通信インタフェース１００５とを備える。
【０１９５】
本発明の実施形態やその具体例におけるクライアントやサーバは、コンピュータ１０００で実現される。ただし、上記のように、クライアントとして用いられるコンピュータと、サーバとして用いられるコンピュータとは、別々のコンピュータである。
【０１９６】
クライアントを実現するコンピュータ１０００の動作は、クライアント用プログラムの形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、そのクライアント用プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、そのクライアント用プログラムに従って、上記の実施形態やその具体例で説明したクライアントの動作を実行する。
【０１９７】
サーバを実現するコンピュータ１０００の動作は、サーバ用プログラムの形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、そのサーバ用プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、そのサーバ用プログラムに従って、上記の実施形態やその具体例で説明したサーバの動作を実行する。
【０１９８】
補助記憶装置１００３は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory ）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory ）、半導体メモリ等が挙げられる。また、プログラムが通信回線によってコンピュータ１０００に配信される場合、配信を受けたコンピュータ１０００がそのプログラムを主記憶装置１００２に展開し、そのプログラムに従って動作してもよい。
【０１９９】
また、クライアントの各構成要素の一部または全部は、汎用または専用の回路（circuitry ）、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。この点は、サーバに関しても同様である。
【０２００】
次に、本発明の概要を説明する。図９は、本発明による照合システムの概要を示すブロック図である。本発明による照合システム２０は、クライアント３０（例えば、クライアント１００）とサーバ４０（例えば、サーバ２００）とを備える照合システムであって、クライアント３０は、乱数を生成する乱数生成部３１（例えば、乱数生成部１４０）と、登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部３２（例えば、秘匿化情報記憶部１６０）と、登録情報との照合のために入力される照合情報と、秘匿化情報とに基づいて、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部３３（例えば、秘匿化指標算出部１８０）とを備え、サーバ４０は、秘匿化鍵に対応する解除鍵とクライアント３０から送信された乱数とを用いて、クライアント３０から送信された秘匿化指標から指標を取得可能か否かを判定する判定部４１（例えば、判定部２６０）を備える。
【０２０１】
そのような構成により、照合システムは、登録情報を秘匿化した秘匿化情報をクライアントに記憶させる場合であっても、クライアントからユーザの秘密情報が漏えいすることを防止することができる。
【０２０２】
また、判定部４１は、取得可能と判定した後に秘匿化指標から取得された指標に基づいて、照合情報と登録情報とが対応するか否かを判定してもよい。
【０２０３】
そのような構成により、照合システムは、被登録者と被認証者とが一致するか否かを判定できる。
【０２０４】
また、照合システム２０は、チャレンジ・レスポンス方式が導入された照合システムであって、サーバ４０は、チャレンジを生成するチャレンジ生成部（例えば、チャレンジ生成部２７０）を備え、秘匿化指標算出部３３は、サーバ４０から送信されたチャレンジを基に、チャレンジに対応し秘匿化指標を含むレスポンスを算出してもよい。
【０２０５】
そのような構成により、照合システムは、なりすましを防止できる。
【０２０６】
また、クライアント３０は、入力された登録情報を秘匿化鍵で秘匿化することによって秘匿化情報を生成し、当該秘匿化情報を秘匿化情報記憶部３２に記憶させる秘匿化部（例えば、秘匿化部１５０）を備えてもよい。
【０２０７】
また、クライアント３０は、秘匿化鍵である秘密鍵、および解除鍵である公開鍵を生成する鍵生成部（例えば、鍵生成部１１０）を備え、鍵生成部は、公開鍵をサーバ４０に送信してもよい。また、秘匿化指標算出部３３は、秘密鍵を用いて電子署名を生成し、生成された電子署名を秘匿化指標と共にサーバ４０に送信してもよい。
【０２０８】
そのような構成により、照合システムは、秘匿化指標の送信者を認証できる。
【０２０９】
また、サーバ４０は、秘匿化鍵である公開鍵、および解除鍵である秘密鍵を生成する鍵生成部を備え、鍵生成部は、公開鍵をクライアント３０に送信してもよい。
【０２１０】
そのような構成により、照合システムは、公開鍵暗号方式で登録情報を暗号化できる。
【０２１１】
また、登録情報および照合情報はベクトルでもよい。また、秘匿化指標算出部３３は、登録情報と照合情報とのハミング距離に基づいて定められた指標を秘匿化した秘匿化指標を算出してもよい。また、秘匿化指標算出部３３は、登録情報と照合情報との内積に基づいて定められた指標を秘匿化した秘匿化指標を算出してもよい。
【０２１２】
上記の本発明の実施形態は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
【０２１３】
（付記１）
クライアントとサーバとを備える照合システムであって、
前記クライアントは、
乱数を生成する乱数生成部と、
登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部とを備え、
前記サーバは、
前記秘匿化鍵に対応する解除鍵と前記クライアントから送信された乱数とを用いて、前記クライアントから送信された秘匿化指標から前記指標を取得可能か否かを判定する判定部を備える
ことを特徴とする照合システム。
【０２１４】
（付記２）
判定部は、取得可能と判定した後に秘匿化指標から取得された指標に基づいて、照合情報と登録情報とが対応するか否かを判定する
付記１記載の照合システム。
【０２１５】
（付記３）
チャレンジ・レスポンス方式が導入された照合システムであって、
サーバは、
チャレンジを生成するチャレンジ生成部を備え、
秘匿化指標算出部は、
前記サーバから送信された前記チャレンジを基に、前記チャレンジに対応し秘匿化指標を含むレスポンスを算出する
付記１または付記２記載の照合システム。
【０２１６】
（付記４）
クライアントは、
入力された登録情報を秘匿化鍵で秘匿化することによって秘匿化情報を生成し、当該秘匿化情報を秘匿化情報記憶部に記憶させる秘匿化部を備える
付記１から付記３のうちのいずれかに記載の照合システム。
【０２１７】
（付記５）
クライアントは、
秘匿化鍵である秘密鍵、および解除鍵である公開鍵を生成する鍵生成部を備え、
前記鍵生成部は、
前記公開鍵をサーバに送信する
付記１から付記４のうちのいずれかに記載の照合システム。
【０２１８】
（付記６）
秘匿化指標算出部は、
秘密鍵を用いて電子署名を生成し、
生成された電子署名を秘匿化指標と共にサーバに送信する
付記５記載の照合システム。
【０２１９】
（付記７）
サーバは、
秘匿化鍵である公開鍵、および解除鍵である秘密鍵を生成する鍵生成部を備え、
前記鍵生成部は、
前記公開鍵をクライアントに送信する
付記１から付記４のうちのいずれかに記載の照合システム。
【０２２０】
（付記８）
登録情報および照合情報はベクトルである
付記１から付記７のうちのいずれかに記載の照合システム。
【０２２１】
（付記９）
秘匿化指標算出部は、登録情報と照合情報とのハミング距離に基づいて定められた指標を秘匿化した秘匿化指標を算出する
付記８記載の照合システム。
【０２２２】
（付記１０）
秘匿化指標算出部は、登録情報と照合情報との内積に基づいて定められた指標を秘匿化した秘匿化指標を算出する
付記８記載の照合システム。
【０２２３】
（付記１１）
クライアントとサーバとを備える照合システムであって、
前記クライアントは、
乱数を生成する乱数生成部と、
登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部とを備える
ことを特徴とする照合システム。
【０２２４】
（付記１２）
クライアントとサーバとを備える照合システムであって、
前記クライアントは、
登録情報との照合のために入力される照合情報と、前記登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部を備え、
前記サーバは、
前記秘匿化鍵に対応する解除鍵と前記クライアントから送信された乱数とを用いて、前記クライアントから送信された秘匿化指標から前記指標を取得可能か否かを判定する判定部を備える
ことを特徴とする照合システム。
【０２２５】
（付記１３）
乱数を生成する乱数生成部と、
登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部とを備える
ことを特徴とするクライアント。
【０２２６】
（付記１４）
入力された登録情報を秘匿化鍵で秘匿化することによって秘匿化情報を生成し、当該秘匿化情報を秘匿化情報記憶部に記憶させる秘匿化部を備える
付記１３記載のクライアント。
【０２２７】
（付記１５）
秘匿化鍵である秘密鍵、および解除鍵である公開鍵を生成する鍵生成部を備え、
前記鍵生成部は、
前記公開鍵をサーバに送信する
付記１３または付記１４記載のクライアント。
【０２２８】
（付記１６）
秘匿化指標算出部は、
秘密鍵を用いて電子署名を生成し、
生成された電子署名を秘匿化指標と共にサーバに送信する
付記１５記載のクライアント。
【０２２９】
（付記１７）
登録情報との照合のために入力される照合情報と、前記登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報とに基づいて算出された、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標から、前記秘匿化鍵に対応する解除鍵とクライアントから送信された乱数とを用いて前記指標を取得可能か否かを判定する判定部を備える
ことを特徴とするサーバ。
【０２３０】
（付記１８）
判定部は、取得可能と判定した後に秘匿化指標から取得された指標に基づいて、照合情報と登録情報とが対応するか否かを判定する
付記１７記載のサーバ。
【０２３１】
（付記１９）
秘匿化鍵である公開鍵、および解除鍵である秘密鍵を生成する鍵生成部を備え、
前記鍵生成部は、
前記公開鍵をクライアントに送信する
付記１７または付記１８記載のサーバ。
【０２３２】
（付記２０）
クライアントとサーバとを備える照合システムにおける照合方法であって、
前記クライアントが、
乱数を生成し、
生成された乱数を前記サーバに送信し、
登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を秘匿化情報記憶部に記憶させ、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出し、
算出された秘匿化指標を前記サーバに送信し、
前記サーバが、
前記秘匿化鍵に対応する解除鍵と送信された乱数とを用いて、送信された秘匿化指標から前記指標を取得可能か否かを判定する
ことを特徴とする照合方法。
【０２３３】
（付記２１）
クライアントにおける照合方法であって、
乱数を生成し、
登録情報と生成された乱数とを秘匿化鍵で秘匿化した秘匿化情報を秘匿化情報記憶部に記憶させ、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する
ことを特徴とする照合方法。
【０２３４】
（付記２２）
サーバにおける照合方法であって、
登録情報との照合のために入力される照合情報と、前記登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報とに基づいて算出された、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標から、前記秘匿化鍵に対応する解除鍵とクライアントから送信された乱数とを用いて前記指標を取得可能か否かを判定する
ことを特徴とする照合方法。
【０２３５】
（付記２３）
登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備え、クライアントとして動作するコンピュータに搭載されるクライアント用プログラムであって、
前記コンピュータに、
前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する算出処理
を実行させるためのクライアント用プログラム。
【０２３６】
（付記２４）
サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
前記コンピュータに、
登録情報との照合のために入力される照合情報と、前記登録情報と乱数とを秘匿化鍵で秘匿化した秘匿化情報とに基づいて算出された、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標から、前記秘匿化鍵に対応する解除鍵とクライアントから送信された乱数とを用いて前記指標を取得可能か否かを判定する判定処理
を実行させるためのサーバ用プログラム。
【０２３７】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用の可能性】
【０２３８】
本発明は、クライアントとサーバとを用いて認証を行う照合システムに好適に適用される。
【符号の説明】
【０２３９】
１０、１１、２０  照合システム
３０、１００、１０１  クライアント
４０、２００、２０１  サーバ
３１、１４０  乱数生成部
３２、１６０  秘匿化情報記憶部
３３、１８０  秘匿化指標算出部
４１、２６０  判定部
１１０  鍵生成部
１２０、２２０  鍵記憶部
１３０  登録情報入力部
１５０  秘匿化部
１７０  照合情報入力部
１８１  レスポンス算出部
１９０  出力部
２１０  鍵受信部
２３０  ＩＤ発行部
２４０  乱数記憶部
２５０  受理範囲記憶部
２７０  チャレンジ生成部
【図１】
2020121461.tif 000003
【図２】
2020121461.tif 000004
【図３】
2020121461.tif 000005
【図４】
2020121461.tif 000006
【図５】
2020121461.tif 000007
【図６】
2020121461.tif 000008
【図７】
2020121461.tif 000009
【図８】
2020121461.tif 000010
【図９】
2020121461.tif 000011
【国際調査報告】
2020121461.tif 000012
2020121461.tif 000013
2020121461.tif 000014