(57)【特許請求の範囲】
【請求項１】
登録データ生成装置と照合要求装置とデータ照合装置と照合補助装置とを備える暗号文照合システムであって、
前記照合補助装置は、公開鍵及び秘密鍵を生成し、
前記登録データ生成装置は、登録データおよび前記公開鍵を入力とし、前記公開鍵を用いて前記登録データを暗号化することより、前記登録データの暗号文を生成し、
前記データ照合装置は、前記登録データの暗号文および前記公開鍵および乱数を用いて、複数のチャレンジを生成し、
前記照合要求装置は、前記複数のチャレンジおよび前記公開鍵および乱数を用いて、複数のレスポンスを生成し、
前記複数のレスポンスは、前記データ照合装置が第一距離に関する暗号文を生成するための情報として用いられる第一乃至第三のレスポンスと、前記第一距離が前記登録データと前記照合対象データ間が一致するものとして許容される第二距離の集合を示す第四のレスポンスとを含んでおり、
前記データ照合装置は、前記複数のレスポンスおよび前記公開鍵を入力とし、前記公開鍵を用いて前記複数のレスポンスを暗号化することより、前記登録データと前記照合対象データ間の第一距離が乱数により秘匿された、前記第一距離に関する暗号文を生成し、
前記照合補助装置は、前記秘密鍵を用いて、前記第一距離に関する暗号文を復号することにより、乱数により秘匿された前記第一距離を得て、前記第一距離のハッシュ値を計算し、さらに、前記登録データと前記照合対象データが一致するものとして許容される前記第二距離の集合に前記ハッシュ値が含まれるか否かの判断を行い、
前記データ照合装置は、前記照合補助装置の判断結果に応じて、前記登録データと前記照合対象データが一致するか否かの判定結果を出力する、暗号文照合システム。
【請求項２】
前記データ照合装置は、
前記第一距離に関する暗号文を第一照合補助要求として前記照合補助装置に送付し、前記第四のレスポンスを第二照合補助要求として前記照合補助装置に送付する、請求項１に記載の暗号文照合システム。
【請求項３】
前記照合補助装置は、
前記第一照合補助要求を前記秘密鍵により復号することで、乱数により秘匿された前記第一距離を取得すると共に、前記取得した第一距離のハッシュ値を計算し、
前記計算された第一距離のハッシュ値が、前記第二照合補助要求に含まれるか否かを判断すると共に、当該判断結果を前記データ照合装置に送付する、請求項２に記載の暗号文照合システム。
【請求項４】
前記データ照合装置は、前記判断結果に応じて、前記登録データと前記照合対象データが一致するか否かの判定結果を出力する、請求項３に記載の暗号文照合システム。
【請求項５】
前記データ照合装置が生成する複数のチャレンジのうち一部のチャレンジは、第一乱数によりマスクされ、別の一部のチャレンジは第二乱数及び第三乱数によりマスクされ、前記第一乱数と前記第三乱数の乗算結果は前記第二乱数に一致する、請求項１乃至４のいずれか一項に記載の暗号文照合システム。
【請求項６】
前記照合要求装置は、前記複数のレスポンスを生成する際に第四乱数と第五乱数を使用し、
前記データ照合装置は、前記登録データと前記照合対象データの間のユークリッド距離の二乗に第四乱数と第一乱数を乗じた値に第五乱数を加算した値の暗号文を生成する、請求項５に記載の暗号文照合システム。
【請求項７】
前記照合補助装置は、加法準同型暗号として楕円エルガマル暗号を用いる、請求項１乃至６のいずれか一項に記載の暗号文照合システム。
【請求項８】
登録データ生成装置と照合要求装置とデータ照合装置と照合補助装置とを含む暗号文照合システムにおいて、
前記照合補助装置が、公開鍵及び秘密鍵を生成するステップと、
前記登録データ生成装置が、登録データおよび前記公開鍵を入力とし、前記公開鍵を用いて前記登録データを暗号化することより、前記登録データの暗号文を生成するステップと、
前記データ照合装置が、前記登録データの暗号文および前記公開鍵および乱数を用いて、複数のチャレンジを生成するステップと、
前記照合要求装置が、前記複数のチャレンジおよび前記公開鍵および乱数を用いて、複数のレスポンスを生成するステップと、
前記複数のレスポンスは、前記データ照合装置が第一距離に関する暗号文を生成するための情報として用いられる第一乃至第三のレスポンスと、前記第一距離が前記登録データと前記照合対象データ間が一致するものとして許容される第二距離の集合を示す第四のレスポンスとを含んでおり、
前記データ照合装置が、前記複数のレスポンスおよび前記公開鍵を入力とし、前記公開鍵を用いて前記複数のレスポンスを暗号化することより、前記登録データと前記照合対象データ間の第一距離が乱数により秘匿された、前記第一距離に関する暗号文を生成するステップと、
前記照合補助装置が、前記秘密鍵をもちいて、前記第一距離に関する暗号文を前記秘密鍵により復号することにより、乱数により秘匿された前記第一距離を得て、前記第一距離のハッシュ値を計算し、さらに、前記登録データと前記照合対象データが一致するものとして許容される前記第二距離の集合に前記ハッシュ値が含まれるか否かの判断を行うステップと、
前記データ照合装置が、前記照合補助装置の判断結果に応じて、前記登録データと前記照合対象データが一致するか否かの判定結果を出力する、ステップと、
を含む、暗号文照合方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号文照合システム及び暗号文照合方法に関する。特に、暗号化されたデータの曖昧さを許容する、暗号文照合システム及び暗号文照合方法に関する。
【背景技術】
【０００２】
近年、クラウドシステムの普及に伴い、ネットワークに接続された計算資源に利用者のデータを置き、当該データに基づいたサービスが急速に広がってきている。このようなサービスでは、利用者の機微なデータを扱う機会も増加してきているため、利用者が自分のデータが安全に管理されていることを保証することが重要になってきている。【０００３】
このような状況の下、オープンなネットワーク環境でデータを暗号化したまま管理し、データを復号することなく、検索や、統計処理などを行う技術の研究開発が活発に行われている。【０００４】
また、近年、従来のパスワードや磁気カードを用いた個人認証の脆弱性をついた犯罪が頻発しており、より安全性の高い指紋、静脈などの生体的な特徴に基づく生体認証技術が注目を集めている。ここで、生体認証においては、認証情報を検証するために、生体情報に関するテンプレートをデータベースに保管する必要がある。指紋、静脈等の生体情報は基本的に生涯不変のデータであり、情報が漏洩するとその被害は甚大なものとなるため、最も機密性が要求される情報である。そのため、テンプレートが漏洩しても「なりすまし」が行えないように、 テンプレート情報を秘匿したまま認証を行うテンプレート保護型の生体認証技術が重要となってきている。 例えば、特許文献１では、指紋データを多項式上の点として表現し、その点にランダムな点を付加して指紋データを秘匿したデータをテンプレートとして生体認証を行う方式が提案されている。【０００５】
また、非特許文献１では、凖同型性を有する公開鍵暗号を利用することにより、認証を求めているクライアントの生体情報を保護する方式が提案されている。【０００６】
ここで、通常の生体情報を保護しない生体認証方式では、生体情報（例えば、指紋など）からマニューシャと呼ばれる特徴点を抽出し、マニューシャを認証用テンプレートとしてサーバに登録する。通常、マニューシャはタイプ、座標（ｘ、ｙ）、角度という３つの成分からなる。タイプは特徴点のタイプを表し、例えば端点、分岐点などである。座標は特徴点の座標を表し、角度は特徴点における接線の傾きを表す。認証時には、クライアントの生体情報から抽出されたマニューシャと、認証用テンプレートとして登録されたマニューシャが一致することをサーバが確認する。マニューシャの一致は、以下の３つの条件をみたすことを意味する。
第１に、タイプが一致する。
第２に、点の距離が閾値以内である。
第３に、角度の差が閾値以内である。【０００７】
より具体的には、登録されたマニューシャを（ｔｙｐｅ１、（ｘ１、ｙ１）、θ１）とする。また、認証時に抽出されたマニューシャを（ｔｙｐｅ２、（ｘ２、ｙ２）、θ２）とする。この時、以下の３つの条件を全て満たす場合に、２つのマニューシャは一致すると判断される。
第１の条件；ｔｙｐｅ１＝ｔｙｐｅ２
第２の条件；０≦（（ｘ１−ｘ２）＾２＋（ｙ１−ｙ２）＾２）≦δｄ
第３の条件；０≦（θ１−θ２）＾２≦δｔ
なお、δｄ、δｔはシステムによって決められるパラメータである。また、第２の条件で評価している距離は、通常、２次元ユークリッド距離、あるいはｌ２ノルムと呼ばれる。同様に、第３の条件で評価している距離は、１次元ユークリッド距離と呼ばれる。以降、これらをまとめてユークリッド距離と呼び、ＤとＤ’のユークリッド距離をｄ（Ｄ、Ｄ’）と表記する。【０００８】
非特許文献１では、通常の生体情報を保護しない方式と同様だが、認証要求をしているクライアントの生体情報を秘匿できる生体認証方式が記載されている。具体的には、Aided Computation および Set Intersection と呼ばれる暗号プロトコルを利用して、（ｔｙｐｅ２、（ｘ２、ｙ２）、θ２）をサーバに明かさずに、マニューシャが一致するかどうか確認できる。【０００９】
特許文献２には、信頼できる第３者をシステムに導入することにより、サーバに登録されているデータを秘匿した暗号文照合システムが記述されている。【００１０】
特許文献３には、信頼できる第３者を導入したシステムにおいて、照合における第３者の負荷を小さくした技術が記載されている。しかしながら、特許文献３に記載の技術において距離の指標としてユークリッド距離を利用した場合、登録されるデータのサイズは許容される曖昧さの指標の４乗に比例して大きくなる。このような問題に対し、非特許文献２では、準同型暗号の代わりにＳｏｍｅｗｈａｔ準同型暗号と呼ばれる公開鍵暗号を利用することにより、登録されるデータのサイズを許容される曖昧さの指標の２乗オーダに減らしている。【００１１】
特許文献４には、登録される暗号データサイズが、許容される曖昧さのパラメータに依存せず、かつ、第３者の負荷が小さい技術が記載されている。【００１２】
さらに、非特許文献３では、登録されるデータのサイズを許容される曖昧さの指標に依存しないサイズに減らしている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００６−１５８８５１号公報
【特許文献２】国際公開第２０１４／１８５４５０号
【特許文献３】国際公開第２０１４／１８５４４７号
【特許文献４】国際公開第２０１２／１１４４５２号
【非特許文献】
【００１４】
【非特許文献１】Siamak F. Shahandashti, Reihaneh Safavi-Naini, and Philip Ogunbona, “Private Fingerprint Matching”, ACISP2012.
【非特許文献２】肥後，一色，森，尾花，“テンプレートサイズの小さい秘匿指紋認証方式”，暗号と情報セキュリティシンポジウム(SCIS2015), 2015.
【非特許文献３】肥後，一色，森，尾花，“認証時の情報開示の少ない秘匿生体認証方式”，暗号と情報セキュリティシンポジウム(SCIS2016), 2016.
【発明の概要】
【発明が解決しようとする課題】
【００１５】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。【００１６】
上記特許文献及び非特許文献に開示された技術にはそれぞれ問題がある。【００１７】
例えば、特許文献１の方式では、生体認証を何度も繰り返した時に、十分な強度で生体情報が保護されているかどうかに問題があることが知られている。【００１８】
また、非特許文献１の認証方式は、通常の生体情報を保護しない方式と同様だが、認証要求をしているクライアントの生体情報を秘匿できる生体認証方式が記載されている。具体的には、Ａｉｄｅｄ  Ｃｏｍｐｕｔａｔｉｏｎ及びＳｅｔ  Ｉｎｔｅｒｓｅｃｔｉｏｎと呼ばれる暗号プロトコルを利用して、（ｔｙｐｅ２、（ｘ２、ｙ２）、θ２）をサーバに明かさずに、マニューシャが一致するかどうか確認できる。しかし、非特許文献１の技術では、照合におけるサーバの負荷が大きい。なぜならば、照合ごとにサーバがクライアントから送られてくるデータの復号および復号結果の再暗号化を行う必要があるためである。さらに、サーバに登録されているデータが平文であるという問題がある。【００１９】
特許文献２に開示された技術は、非特許文献１と同様に、照合における第３者の負荷が大きい。【００２０】
特許文献４の方式では、第３者に登録された平文データと照合したい平文データの距離が明かされる。第３者が不正行為を試みた場合、照合時に得られる距離を利用することによる攻撃（ヒルクライミング攻撃）が可能であることが知られており、効率的に登録された平文データおよび照合したい平文データを求めることが可能となる。【００２１】
また、非特許文献３の方式では、第３者に登録された平文データと照合したい平文データの距離が明かされない。しかし、非特許文献３の方式は、照合時のユーザ、サーバ、第３者の計算コストが、登録されるデータのサイズを許容される曖昧さの指標に依存したものとなり、登録されるデータのサイズを許容される曖昧さの指標が大きな場合効率的とは言えない。【００２２】
上記説明したように、既存技術では、照合処理にかかる計算量の大部分が許容される曖昧さのパラメータに依存しないこと、かつ、第３者に類似度を秘匿することを同時に満たすことができない。【００２３】
本発明は、登録するデータのサイズが許容される曖昧さのパラメータに依存せず、かつ、登録されたデータと照合したいデータの間の距離を明らかにせず、かつ、照合時の処理の大部分が、許容される曖昧さのパラメータに依存しないことに寄与する、暗号文照合システム及び暗号文照合方法を提供することを目的とする。
【課題を解決するための手段】
【００２４】
本発明の第１の視点によれば、登録データの暗号文を生成する、登録データ生成装置と、前記登録データと照合対象データの照合を要求する、照合要求装置と、前記登録データと前記照合対象データ間の第一距離が乱数により秘匿された、前記第一距離に関する暗号文を生成する、データ照合装置と、公開鍵及び秘密鍵を生成し、前記登録データ生成装置、前記データ照合装置及び前記照合要求装置に対し前記生成した公開鍵を送付する、照合補助装置と、を含み、前記データ照合装置は、前記第一距離に関する暗号文を前記照合補助装置に送付し、前記照合補助装置は、前記第一距離に関する暗号文を前記秘密鍵により復号することで得られる前記第一距離が、前記登録データと前記照合対象データが一致するものとして許容される第二距離の集合に含まれるか否かに関する判断を行い、当該判断結果を前記データ照合装置に送付する、暗号文照合システムが提供される。【００２５】
本発明の第２の視点によれば、登録データの暗号文を生成する、登録データ生成装置と、前記登録データと照合対象データの照合を要求する、照合要求装置と、前記登録データと前記照合対象データを照合する、データ照合装置と、公開鍵及び秘密鍵を生成し、前記登録データ生成装置、前記データ照合装置及び前記照合要求装置に対し前記生成した公開鍵を送付する、照合補助装置と、を含む暗号文照合システムにおいて、前記データ照合装置が、前記登録データと前記照合対象データ間の第一距離が乱数により秘匿された、前記第一距離に関する暗号文を生成するステップと、前記照合補助装置が、前記第一距離に関する暗号文を前記秘密鍵により復号することで得られる前記第一距離が、前記登録データと前記照合対象データが一致するものとして許容される第二距離の集合に含まれるか否かに関する判断を行い、当該判断結果を前記データ照合装置に送付する、ステップと、を含む、暗号文照合方法が提供される。
【発明の効果】
【００２６】
本発明の各視点によれば、登録するデータのサイズが許容される曖昧さのパラメータに依存せず、かつ、登録されたデータと照合したいデータの間の距離を明らかにせず、かつ、照合時の処理の大部分が、許容される曖昧さのパラメータに依存しないことに寄与する、暗号文照合システム及び暗号文照合方法が、提供される。
【図面の簡単な説明】
【００２７】
【図１】一実施形態の概要を説明するための図である。
【図２】第１の実施形態に係る暗号文照合システムの全体構成の一例を示す図である。
【図３】第１の実施形態に係る登録データ生成装置のハードウェア構成の一例を示すブロック図である。
【図４】登録データ生成装置の処理構成の一例を示す図である。
【図５】照合要求装置の処理構成の一例を示す図である。
【図６】記憶装置の処理構成の一例を示す図である。
【図７】データ照合装置の処理構成の一例を示す図である。
【図８】照合補助装置の処理構成の一例を示す図である。
【図９】セットアップフェイズにおける暗号文照合システムの動作の一例を示すフローチャートである。
【図１０】データ登録フェイズにおける暗号文照合システムの動作の一例を示すシーケンス図である。
【図１１】暗号文照合フェイズにおける暗号文照合システムの動作の一例を示すシーケンス図である。
【発明を実施するための形態】
【００２８】
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００２９】
一実施形態に係る暗号文照合システムは、登録データ生成装置１０１と、照合要求装置１０２と、データ照合装置１０３と、照合補助装置１０４と、を含む（図１参照）。登録データ生成装置１０１は、登録データの暗号文を生成する。照合要求装置１０２は、登録データと照合対象データの照合を要求する。データ照合装置１０３は、登録データと照合対象データ間の第一距離が乱数により秘匿された、第一距離に関する暗号文を生成する。照合補助装置１０４は、公開鍵及び秘密鍵を生成し、登録データ生成装置１０１、データ照合装置１０３及び照合要求装置１０２に対し生成した公開鍵を送付する。データ照合装置１０３は、第一距離に関する暗号文を照合補助装置１０４に送付する。照合補助装置１０４は、第一距離に関する暗号文を秘密鍵により復号することで得られる第一距離が、登録データと照合対象データが一致するものとして許容される第二距離の集合に含まれるか否かに関する判断を行い、当該判断結果をデータ照合装置１０３に送付する。
【００３０】
上記一実施形態に係る暗号文照合システムでは、登録データと照合対象データ間の距離を秘匿することで安全性が確保され、且つ、照合処理の大部分が許容される曖昧さのパラメータに依存しないので照合時の計算時間を短縮できる。即ち、データ間の実際の距離は秘匿され、距離に関する情報が漏えいしないことを保証でき、かつ、照合処理の大部分は許容される曖昧さのパラメータに依存しないシステムが提供される。
【００３１】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号（データ）の流れを模式的に示すものであり、双方向性を排除するものではない。
【００３２】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。
【００３３】
図２は、第１の実施形態に係る暗号文照合システムの全体構成の一例を示す図である。図２を参照すると、暗号文照合システムには、登録データ生成装置１０と、照合要求装置２０と、記憶装置３０と、データ照合装置４０と、照合補助装置５０と、を含んで構成される。
【００３４】
登録データ生成装置１０は、登録データの暗号文を生成する装置である。照合要求装置２０は、データ照合装置４０に対し、登録データと照合対象データの照合を要求する装置である。
【００３５】
記憶装置３０は、登録データを記憶するための装置である。
【００３６】
データ照合装置４０は、照合要求装置２０からのデータ照合要求を処理する装置である。その際、データ照合装置４０は、登録データと照合対象データ間の距離（第一距離）が乱数により秘匿された、第一距離に関する暗号文を生成し、データ照合に利用する。なお、当該暗号文等の詳細は後述する。
【００３７】
照合補助装置５０は、データ照合装置４０によるデータ照合処理を補助する装置である。例えば、照合補助装置５０は、公開鍵及び秘密鍵を生成し、登録データ生成装置１０、データ照合装置４０及び照合要求装置２０に対し生成した公開鍵を送付する。
【００３８】
図２に示す各装置の詳細な機能を説明する前に、各装置のハードウェア構成について説明する。図３は、第１の実施形態に係る登録データ生成装置１０のハードウェア構成の一例を示すブロック図である。登録データ生成装置１０は、所謂、情報処理装置（コンピュータ）により構成可能であり、図３に例示する構成を備える。例えば、登録データ生成装置１０は、内部バスにより相互に接続される、ＣＰＵ（Central Processing Unit）１１１、メモリ１１２、入出力インターフェイス１１３及び通信手段であるＮＩＣ（Network Interface Card）１１４等を備える。
【００３９】
なお、図３に示す構成は、登録データ生成装置１０のハードウェア構成を限定する趣旨ではない。登録データ生成装置１０は、図示しないハードウェアを含んでもよい。あるいは、登録データ生成装置１０に含まれるＣＰＵ等の数も図３の例示に限定する趣旨ではなく、例えば、複数のＣＰＵが登録データ生成装置１０に含まれていてもよい。
【００４０】
メモリ１１２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、補助記憶装置（ハードディスク等）である。
【００４１】
入出力インターフェイス１１３は、図示しない表示装置や入力装置のインターフェイスとなる手段である。表示装置は、例えば、液晶ディスプレイ等である。入力装置は、例えば、キーボードやマウス等のユーザ操作を受け付ける装置である。
【００４２】
登録データ生成装置１０の機能は後述する処理モジュールにより実現される。また、当該処理モジュールは、例えば、メモリ１１２に格納されたプログラムをＣＰＵ１１１が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能を何らかのハードウェア、及び／又は、ソフトウェアで実行する手段があればよい。
【００４３】
なお、暗号文照合システムに含まれる他の装置のハードウェア構成は、登録データ生成装置１０と同様とすることができるので、説明を省略する。
【００４４】
続いて、暗号文照合システムを構成する各装置の処理（処理モジュール）について説明する。
【００４５】
図４は、登録データ生成装置１０の処理構成の一例を示す図である。図４を参照すると、登録データ生成装置１０は、第一テンプレート生成部１１と、第二テンプレート生成部１２と、を含んで構成される。
【００４６】
第一テンプレート生成部１１は、ユーザが入力した登録したいデータ（登録データ）と、後述する照合補助装置５０が生成した公開鍵を用いて第一テンプレートを生成する手段である。
【００４７】
第二テンプレート生成部１２は、ユーザが入力した登録したいデータと、後述する照合補助装置５０が生成した公開鍵を用いて第二テンプレートを生成し、第一テンプレートと第二テンプレートの組を記憶装置３０に送付する手段である。
【００４８】
図５は、照合要求装置２０の処理構成の一例を示す図である。図５を参照すると、照合要求装置２０は、照合要求部２１と、第一レスポンス生成部２２と、第二レスポンス生成部２３と、第三レスポンス生成部２４と、第四レスポンス生成部２５と、を含んで構成される。
【００４９】
照合要求部２１は、ユーザが入力した照合したいデータ（照合対象データ）と、後述する記憶装置３０によって発行された識別子とを入力とし、データ照合装置４０に照合要求を送付する手段である。
【００５０】
第一レスポンス生成部２２から第四レスポンス生成部２５それぞれの生成部は、上記照合要求部２１による照合要求に対してデータ照合装置４０から送付された第一〜第三のチャレンジと、照合補助装置５０から送付された公開鍵とを用いて、それぞれ第一レスポンス、第二レスポンス、第三レスポンス、第四レスポンスを生成し、データ照合装置４０に送付する手段である。
【００５１】
図６は、記憶装置３０の処理構成の一例を示す図である。図６を参照すると、記憶装置３０は、識別子生成部３１と、テンプレート記憶部３２と、を含んで構成される。
【００５２】
識別子生成部３１は、登録データ生成装置１０から送付された（第一テンプレート、第二テンプレート）に対して固有の識別子を発行し、（識別子、（第一テンプレート、第二テンプレート））をテンプレート記憶部３２に記憶する手段である。
【００５３】
図７は、データ照合装置４０の処理構成の一例を示す図である。図７を参照すると、データ照合装置４０は、対象テンプレート受信部４１と、第一チャレンジ生成部４２と、第二チャレンジ生成部４３と、第三チャレンジ生成部４４と、第一照合補助要求生成部４５と、第二照合補助要求生成部４６と、判定部４７と、を含んで構成される。
【００５４】
対象テンプレート受信部４１は、照合要求装置２０から送付された照合要求に対して、照合対象となるテンプレートを記憶装置３０のテンプレート記憶部３２から受信する手段である。
【００５５】
第一チャレンジ生成部４２から第三チャレンジ生成部４４の各生成部は、受け取った照合対象のテンプレートと照合補助装置５０が生成した公開鍵とから、それぞれ第一チャレンジ、第二チャレンジ、第三チャレンジを生成し、これらのチャレンジ（第一チャレンジ、第二チャレンジ、第三チャレンジ）を照合要求装置２０に送付する手段である。
【００５６】
第一照合補助要求生成部４５と第二照合補助要求生成部４６は、上述のチャレンジ（第一チャレンジ、第二チャレンジ、第三チャレンジ）に対して照合要求装置２０が生成し送付した（第一レスポンス、第二レスポンス、第三レスポンス、第四レスポンス）と照合補助装置５０が生成した公開鍵とから、それぞれ第一照合補助要求、第二照合補助要求を生成し、これらの補助要求（第一照合補助要求、第二照合補助要求）を照合補助装置５０に送付する手段である。
【００５７】
判定部４７は、上述の補助要求（第一照合補助要求、第二照合補助要求）に対して照合補助装置５０が生成した照合補助結果を受信し、判定結果を生成する手段である。
【００５８】
図８は、照合補助装置５０の処理構成の一例を示す図である。図８を参照すると、照合補助装置５０は、鍵生成部５１と、鍵記憶部５２と、照合補助部５３と、を含んで構成される。
【００５９】
鍵生成部５１は、鍵のサイズ等を指定するセキュリティパラメータを入力とし、秘密鍵と公開鍵を生成する手段である。鍵生成部５１は、生成した秘密鍵を鍵記憶部５２に記憶し、生成した公開鍵を登録データ生成装置１０、照合要求装置２０、データ照合装置４０に送付する。
【００６０】
照合補助部５３は、データ照合装置４０から送付された補助要求（第一照合補助要求、第二照合補助要求）を受信し、鍵記憶部５２に記憶された秘密鍵を用いて、照合補助結果を生成し、データ照合装置４０に送付する手段である。
【００６１】
［システム動作の説明］
次に、第１の実施形態に係る暗号文照合システムの動作を詳細に説明する。
【００６２】
第１の実施形態に係る暗号文照合システムの動作は、セットアップフェイズと、データ登録フェイズと、暗号文照合フェイズの３つのフェイズに大別される。
【００６３】
セットアップフェイズは、照合補助装置５０にセキュリティパラメータを入力し、加法準同型暗号の公開鍵と秘密鍵を生成するフェイズである。
【００６４】
データ登録フェイズは、登録データ生成装置１０に登録したいデータを入力し、テンプレートを生成し、記憶装置３０に登録するフェイズである。
【００６５】
暗号文照合フェイズは、照合要求装置２０に入力された照合したいデータを秘匿しながら、照合したいデータが、記憶装置３０に記憶されている登録済みデータと近い（ある種の距離が小さい）ものであるかを判定するフェイズである。
【００６６】
以下、図面を参照しつつ、各フェイズにおける動作の詳細を説明する。
【００６７】
［セットアップフェイズ］
図９は、セットアップフェイズにおける暗号文照合システムの動作の一例を示すフローチャートである。
【００６８】
初めに、セキュリティパラメータが、システム管理者等により照合補助装置５０に入力される（ステップＳ０１）。
【００６９】
セキュリティパラメータを入力した照合補助装置５０の鍵生成部５１は、加法準同型暗号の公開鍵および秘密鍵を生成する（ステップＳ０２）。
【００７０】
その後、鍵生成部５１は、公開鍵を登録データ生成装置１０、照合要求装置２０、データ照合装置４０に送付する（ステップＳ０３）。
【００７１】
また、鍵生成部５１は、生成した秘密鍵を鍵記憶部５２に記憶する（ステップＳ０４）。
【００７２】
［データ登録フェイズ］
図１０は、データ登録フェイズにおける暗号文照合システムの動作の一例を示すシーケンス図である。
【００７３】
初めに、登録データ生成装置１０は、登録対象となる登録データと上記照合補助装置５０からの公開鍵を入力する（ステップＳ１１）。
【００７４】
次に、上記登録データと公開鍵を入力として、第一テンプレート生成部１１が第一テンプレートを生成する（ステップＳ１２）。同様に、上記登録データと公開鍵を入力として、第二テンプレート生成部１２が第二テンプレートを生成する（ステップＳ１３）。登録データ生成装置１０は、各生成された（第一テンプレート、第二テンプレート）を、記憶装置３０に送付する（ステップＳ１４）。
【００７５】
その後、記憶装置３０の識別子生成部３１は、上記テンプレート（第一テンプレート、第二テンプレート）を入力として、当該テンプレートに対して固有の識別子を付与する（ステップＳ１５）。また、識別子生成部３１は、上記テンプレートと識別子の組をテンプレート記憶部３２に記憶する（ステップＳ１６）。
【００７６】
［暗号文照合フェイズ］
図１１は、暗号文照合フェイズにおける暗号文照合システムの動作の一例を示すシーケンス図である。
【００７７】
初めに、照合要求装置２０の照合要求部２１は、照合対象のデータと、公開鍵と、入力データ（照合対象データ）と照合を行いたいテンプレートの識別子と、を入力する（ステップＳ２１）。その後、照合要求部２１は、入力したデータを用いて、照合要求を生成し、当該照合要求をデータ照合装置４０に出力する（ステップＳ２２）。
【００７８】
次に、照合要求を受信したデータ照合装置４０の対象テンプレート受信部４１は、要求された識別子に対応したテンプレートを記憶装置３０から受信する（ステップＳ２３）。
【００７９】
その後、当該テンプレートを入力として、第一チャレンジ生成部４２、第二チャレンジ生成部４３、第三チャレンジ生成部４４はそれぞれ、第一チャレンジ、第二チャレンジ、第三チャレンジを生成し、当該生成したチャレンジを照合要求装置２０に出力する（ステップＳ２４）。なお、以降の説明では、（第一チャレンジ、第二チャレンジ、第三チャレンジ）をまとめて「チャレンジデータ」と表記する。
【００８０】
チャレンジデータを受信した照合要求装置２０の第一レスポンス生成部２２、第二レスポンス生成部２３、第三レスポンス生成部２４、第四レスポンス生成部２５は、チャレンジデータと公開鍵を入力として、それぞれ第一レスポンス、第二レスポンス、第三レスポンス、第四レスポンスを生成し、当該生成したレスポンスをデータ照合装置４０に出力する（ステップＳ２５）。なお、以降の説明では、（第一レスポンス、第二レスポンス、第三レスポンス、第四レスポンス）をまとめて「レスポンスデータ」と表記する。
【００８１】
照合用データ（レスポンスデータ）を受信したデータ照合装置４０の第一照合補助要求生成部４５と第二照合補助要求生成部４６は、それぞれ第一照合補助要求と第二照合補助要求を生成し、当該補助要求を照合補助装置５０に送付する（ステップＳ２６）。なお、以降の説明では、（第一照合補助要求、第二照合補助要求）をまとめて「照合補助要求データ」と表記する。
【００８２】
照合補助要求データを受信した照合補助装置５０の照合補助部５３は、鍵記憶部５２から秘密鍵を受信し、照合補助結果を生成し、データ照合装置４０に送付する（ステップＳ２７）。
【００８３】
照合補助結果を受信したデータ照合装置４０の判定部４７は、判定結果を生成し、出力する（ステップＳ２８）。
【００８４】
［具体例］
次に、第１の実施形態の具体例を説明する。
【００８５】
本具体例では、距離としてｎ次元ユークリッド距離を扱う場合を説明する。すなわち、２つのｎ次元ベクトルＸ＝（ｘ［１］、ｘ［２］、...、ｘ［ｎ］）とＹ＝（ｙ［１］、ｙ［２］、...、ｙ［ｎ］）に対して、ＸとＹの距離ｄ（Ｘ、Ｙ）はｄ（Ｘ、Ｙ）＝√（（ｘ［１］−ｙ［１］）＾｛２｝＋（ｘ［２］−ｙ［２］）＾｛２｝＋...＋（ｘ［ｎ］−ｙ［ｎ］）＾｛２｝）と定義する。
【００８６】
ｄ（Ｘ、Ｙ）が閾値ｔ以下である場合に、ＸとＹは近い（類似）と判定され、閾値ｔよりも大きい場合は遠い（非類似）と判定するものとする。ただし、ｄ（Ｘ、Ｙ）≦ｔのとき、０≦｛ｄ（Ｘ、Ｙ）｝＾２≦ｔ＾２であることを利用する。すなわち、｛ｄ（Ｘ、Ｙ）｝＾２が閾値ｔ＾２＝Ｔ以下である場合に、ＸとＹは近いと判定し、Ｔよりも大きい場合は遠いと判定するものとする。
【００８７】
本具体例では、ＸとＹが近い場合はマッチしたと判定し、遠い場合はマッチしなかったと判定する。また、本具体例では、加法凖同型暗号（例えば、ｍｏｄｉｆｉｅｄ楕円Ｅｌｇａｍａｌ（エルガマル）暗号など）を利用する。以降、本具体例では、加法準同型暗号としてｍｏｄｉｆｉｅｄ楕円Ｅｌｇａｍａｌ暗号を用いた場合を説明するが、加法Ｅｌｇａｍａｌ暗号やＰａｉｌｌｉｅｒ暗号など、他の加法準同型暗号を利用しても構わない。
【００８８】
初めに、ｍｏｄｉｆｉｅｄ楕円Ｅｌｇａｍａｌ暗号について説明する。ｍｏｄｉｆｉｅｄ楕円Ｅｌｇａｍａｌ暗号は、楕円Ｅｌｇａｍａｌ暗号に加法準同型性を付与するために変形した公開鍵暗号である。ｍｏｄｉｆｉｅｄ楕円Ｅｌｇａｍａｌ暗号は、鍵生成、暗号化、復号の３つのアルゴリズムからなる。以下にそれぞれを説明する。
【００８９】
［鍵生成アルゴリズム］
（１）セキュリティパラメータ１＾ｋを受け取る。
（２）ｋビットの素数ｐに対して、楕円曲線上から位数がｐとなる群Ｇをランダムに選ぶ。Ｇの生成元（楕円曲線上の点）をｇとする。
（３）ｘを１以上ｐ−１以下の値からランダムに選び、ｈ＝［ｘ］ｇとする。ここで［ｘ］ｇは楕円曲線上の点ｇをｘ倍した結果を意味する。Ｈも楕円曲線上の点である。
（４）公開鍵ｐｋ＝（（ｇ、Ｇ）、ｐ、ｇ、ｈ）、秘密鍵ｓｋ＝（ｘ）を出力する。
なお、以降簡単のため、特に断りがない限り（ｇ、Ｇ）、ｐは各エンティティに共有されているものとし、公開鍵ｐｋを単にｐｋ＝（ｇ、ｈ）と表記する。
【００９０】
［暗号化アルゴリズム］
（１）ｐｋ＝（ｇ、ｈ）、メッセージｍ∈Ｚ＊＿ｐを入力として受け取る。ここで、Ｚ＊＿ｐは集合｛１、２、...、ｐ−１｝を意味する。
（２）Ｍ＝［ｍ］ｇとする。
（３）ｒ∈Ｚ＊＿ｐをランダムに選ぶ。
（４）Ｃ［０］＝［ｒ］ｇ、Ｃ［１］＝Ｍ＋［ｒ］ｈとする。
（５）暗号文（Ｃ［０］、Ｃ［１］）を出力する。
以下、公開鍵ｐｋを用いてメッセージｍを暗号化する処理を、Ｅｎｃ（ｐｋ、ｍ）と表記する。
【００９１】
［復号アルゴリズム］
（１）ｓｋ＝（ｘ）、暗号文（Ｃ［０］、Ｃ［１］）を入力として受け取る。
（２）Ｃ［１］−［ｘ］Ｃ［０］＝Ｍ＋［ｒ］ｈ−［ｘ］（［ｒ］ｇ）＝Ｍとする。
以下、秘密鍵ｓｋを用いて暗号文Ｃ＝（Ｃ［０］、Ｃ［１］）を復号する処理を、Ｄｅｃ（ｓｋ、Ｃ）と表記する。
【００９２】
暗号化アルゴリズムのステップ（２）より、復号結果Ｍは［ｍ］ｇである。ここから、ｍを求めるためには楕円曲線上の離散対数問題を解く必要がある。本来の復号アルゴリズムはｍを求めるものであるが、本願開示ではＭを求められれば十分であるため、復号アルゴリズムを上記のように改変したものを  ｍｏｄｉｆｉｅｄ楕円Ｅｌｇａｍａｌ暗号と称する。
【００９３】
上記ｍｏｄｉｆｉｅｄ楕円Ｅｌｇａｍａｌ暗号は、加法準同型性を満たす。すなわち、２つの暗号文（Ｃ［０］＝［ｒ＿１］ｇ、Ｃ［１］＝［ｍ＿１］ｇ＋［ｒ＿１］ｈ）と（Ｃ’［０］＝［ｒ＿２］ｇ、Ｃ’［１］＝［ｍ＿２］ｇ＋［ｒ＿２］ｈ）に対して、（Ｃ’’［０］＝Ｃ［０］＋Ｃ’［０］＝［ｒ＿１＋ｒ＿２］ｇ、Ｃ’’［１］＝Ｃ［１］＋Ｃ’［１］＝［ｍ＿１＋ｍ＿２］ｇ＋［ｒ＿１＋ｒ＿２］ｈ）である。同様に暗号化したまま定数倍も以下の通り計算できる。（Ｃ［０］＝［ｒ＿１］ｇ、Ｃ［１］＝［ｍ＿１］ｇ＋［ｒ＿１］ｈ）、ａ∈Ｚ＊＿ｐに対して、（Ｃ’［０］＝［ａ］Ｃ［０］＝［ａ・ｒ＿１］ｇ、Ｃ’［１］＝［ａ］Ｃ［１］＝［ａ・ｍ＿１］ｇ＋［ａ・ｒ＿１］ｈ）。
【００９４】
以下、本願開示の各フェイズにおける動作に関して詳細に説明する。
【００９５】
［セットアップフェイズ］
暗号の復号鍵の長さを指定するセキュリティパラメータ１＾｛ｋ｝や閾値Ｔを含むパラメータｐａｒａｍを入力とした照合補助装置５０の鍵生成部５１は、ｍｏｄｉｆｉｅｄ楕円Ｅｌｇａｍａｌ暗号の鍵生成を実行し、公開鍵ｐｋ、秘密鍵ｓｋを生成する。鍵生成部５１は、（ｐａｒａｍ、ｐｋ）を登録データ生成装置１０と、照合要求装置２０と、データ照合装置４０に送付し、秘密鍵ｓｋを鍵記憶部５２に記憶する。上記照合補助装置５０による動作は、図９のステップＳ０１〜Ｓ０４に相当する。
【００９６】
［データ登録フェイズ］
初めに、登録データ生成装置１０に、秘匿対象となる登録データＸ＝（ｘ［１］、ｘ［２］、...、ｘ［ｎ］）と、上記公開鍵ｐｋが入力される（図１０のステップＳ１１）。
【００９７】
次に、上記登録データＸと公開鍵ｐｋを入力として、第一テンプレート生成部１１は、以下の手順により第一テンプレートを生成し、出力する（図１０のステップＳ１２）。
（１）ｉ＝１、...、ｎに対してＥｎｃ（ｐｋ、ｘ［ｉ］）を計算する。
（２）上記（１）の結果の集合｛Ｅｎｃ（ｐｋ、ｘ［ｉ］）｝を第一テンプレートとして出力する。
【００９８】
次に、第二テンプレート生成部１２は、第二テンプレートを生成する（図１０のステップＳ１３）。具体的には、以下の（１）を計算し、第二テンプレートを得る。
（１）Ｅｎｃ（ｐｋ、Σ＿｛ｉ＝１、...、ｎ｝（ｘ＿ｉ）＾２）
２つのテンプレート（第一テンプレート、第二テンプレート）は、記憶装置３０に送付される（図１０のステップＳ１４）。
【００９９】
その後、当該テンプレートを入力として、記憶装置３０の識別子生成部３１は、テンプレートに対して固有の識別子ＩＤを付与（図１０のステップＳ１５）し、テンプレートと識別子の組（ＩＤ、テンプレート）をテンプレート記憶部３２に記憶（ステップＳ１６）する。
【０１００】
［暗号文照合フェイズ］
初めに、照合要求装置２０の照合要求部２１に、照合対象のデータＹ＝（ｙ［１］、ｙ［２］、...、ｙ［ｎ］）と、公開鍵ｐｋと、入力データと照合を行いたいテンプレートの識別子ＩＤと、が入力され、照合要求ｒｅｑｕｅｓｔが出力される（図１１のステップＳ２１、Ｓ２２）。ここで、照合要求ｒｅｑｕｅｓｔには識別子ＩＤあるいは識別子ＩＤに関する情報が含まれるものとする。
【０１０１】
次に、照合要求ｒｅｑｕｅｓｔを受信したデータ照合装置４０の対象テンプレート受信部４１は、要求された識別子ＩＤに対応したテンプレート（ＩＤ、（第一テンプレート、第二テンプレート））を記憶装置３０から受信する（ステップＳ２３）。
【０１０２】
上記テンプレート（第一テンプレート、第二テンプレート）と公開鍵ｐｋを入力として、第一チャレンジ生成部４２は、以下の手順により第一チャレンジを生成、出力する（図１１のステップＳ２４）。
（１）Ｚ＊＿ｐから乱数Ｒ＿１、Ｒ＿２、Ｒ＿３、Ｒ＿４を選ぶ。ただし、Ｒ＿２＝Ｒ＿１・Ｒ＿３  ｍｏｄ  ｐ  である。Ｒ＿１は第二チャレンジ生成部４３に、Ｒ＿２、Ｒ＿３、Ｒ＿４は第三チャレンジ生成部４４に、Ｒ＿３＾｛−１｝は第一照合補助要求生成部４５に、それぞれ送付される。
（２）［Ｒ＿１］ｇ  を計算し、第一チャレンジとして出力する。
【０１０３】
次に、上記テンプレート（第一テンプレート、第二テンプレート）と公開鍵ｐｋと、乱数Ｒ＿１を入力として、第二チャレンジ生成部４３は、以下の（１）の計算により第二チャレンジを生成し、出力する（図１１のステップＳ２４）。
（１）ｉ＝１、...、ｎに対して｛Ｅｎｃ（ｐｋ、Ｒ＿１・ｘ［ｉ］）｝を計算し、第二チャレンジとして出力する。
【０１０４】
次に、上記テンプレート（第一テンプレート、第二テンプレート）と公開鍵ｐｋと、乱数Ｒ＿２、Ｒ＿３、Ｒ＿４を入力として、第三チャレンジ生成部４４は、以下の手順により第三チャレンジを生成し、チャレンジデータを出力する（図１１のステップＳ２４）。
（１）Ｅｎｃ（ｐｋ、Ｒ＿２・Σ＿｛ｉ＝１、...、ｎ｝  （ｘ＿ｉ）＾２＋Ｒ＿３・Ｒ＿４）を計算し、第三チャレンジとする。
（２）（第一チャレンジ、第二チャレンジ、第三チャレンジ）をチャレンジデータとして、照合要求装置２０に送付する。
【０１０５】
このように、データ照合装置４０は、登録データの暗号文（２つのテンプレート）と照合補助装置５０から送付された公開鍵を用いて複数のチャレンジを生成し、生成された複数のチャレンジを照合要求装置２０に送付する。また、データ照合装置４０が生成する複数のチャレンジのうち一部のチャレンジ（第二チャレンジ）は、乱数Ｒ＿１によりマスク（秘匿）され、別の一部のチャレンジ（第三チャレンジ）は乱数Ｒ＿２及び乱数Ｒ＿３によりマスクされ、乱数Ｒ＿１と乱数Ｒ＿３の乗算結果は乱数Ｒ＿２に一致する。
【０１０６】
上記チャレンジデータを受信し、公開鍵ｐｋを入力として、照合要求装置２０の第一レスポンス生成部２２は、以下の手順により第一レスポンスを生成し、出力する（図１１のステップＳ２５）。
（１）Ｒ＿Ｃ∈Ｚ＊＿ｐをランダムに選ぶ。ランダムに選択されたＲ＿Ｃは、第二レスポンス生成部２３、第三レスポンス生成部２４に送付される。
（２）［Ｒ＿Ｃ］ｇを計算し、第一レスポンスとして出力する。
【０１０７】
チャレンジデータと、公開鍵ｐｋと、乱数Ｒ＿Ｃを入力として、第二レスポンス生成部２３は、以下の手順により第二レスポンスを生成し、出力する（図１１のステップＳ２５）。
（１）第一チャレンジ（［Ｒ＿１］g）から、［Ｒ＿Ｃ・Ｒ＿１］gを計算し、乱数ｒ＿１∈Ｚ＊＿ｐをランダムに選び、（［ｒ＿１］ｇ、［Ｒ＿Ｃ・Ｒ＿１］g＋［ｒ＿１］ｈ）を計算する。これは平文Ｒ＿Ｃ・Ｒ＿１の暗号文であるため、以降は簡単のため、Ｅｎｃ（ｐｋ、Ｒ＿Ｃ・Ｒ＿１）と表記する。準同型定数倍を使ってＥｎｃ（ｐｋ、Ｒ＿Ｃ・Ｒ＿１・Σ＿｛ｉ＝１、...、ｎ｝  （ｙ＿ｉ）＾２）を計算する。
（２）第二チャレンジ｛Ｅｎｃ（ｐｋ、Ｒ＿１・  ｘ＿ｉ）｝に対して、Ｅｎｃ（ｐｋ、Ｒ＿１・ｘ＿ｉ）を準同型定数倍を使って−２Ｒ＿Ｃ・ｙ＿ｉ倍することにより、Ｅｎｃ（ｐｋ、−２Ｒ＿Ｃ・Ｒ＿１・ｘ＿ｉ・ｙ＿ｉ）を計算する。すべてを準同型加算することにより、Ｅｎｃ（ｐｋ、−２Ｒ＿Ｃ・Ｒ＿１Σ＿｛ｉ＝１、...、ｎ｝（ｘ＿ｉ・ｙ＿ｉ））を計算する。
（３）Ｒ∈Ｚ＊＿ｐをランダムに選び、第四レスポンス生成部２５に送付する。
（４）準同型加算を利用して、Ｅｎｃ（ｐｋ、Ｒ＿Ｃ・Ｒ＿１（Σ＿｛ｉ＝１、...、ｎ｝  （ｙ＿ｉ）＾２−２Σ＿｛ｉ＝１、...、ｎ｝ｘ＿ｉ・ｙ＿ｉ）＋Ｒ）を計算する。＋Ｒ部分はＲを暗号化してから準同型加算すれば計算できる。計算結果は第二レスポンスとして出力される。
【０１０８】
チャレンジデータと、公開鍵ｐｋと、乱数Ｒ＿Ｃを入力として、第三レスポンス生成部２４は、以下の（１）により第三レスポンスを生成し、出力する（図１１のステップＳ２５）。
（１）第三チャレンジＥｎｃ（ｐｋ、Ｒ＿２・Σ＿｛ｉ＝１、...、ｎ｝  （ｘ＿ｉ）＾２＋Ｒ＿３・Ｒ＿４）に対して、準同型定数倍を用いてＲ＿Ｃ倍し、Ｅｎｃ（ｐｋ、Ｒ＿Ｃ（Ｒ＿２・Σ＿｛ｉ＝１，...，ｎ｝  （ｘ＿ｉ）＾２＋Ｒ＿３・Ｒ＿４））を生成する。計算結果は、第三レスポンスとして出力される。
【０１０９】
なお、第一〜第三レスポンスは、データ照合装置４０が、登録データ（登録された平文データ）と照合対象データ（照合したい平文データ）の距離に関する暗号文を生成するための情報として用いられる。
【０１１０】
公開鍵ｐｋと、閾値Ｔを含むパラメータと、乱数Ｒと、第一レスポンスと、第二レスポンスと、第三レスポンスを入力として、第四レスポンス生成部２５は、以下の手順により第四レスポンスを生成する（図１１のステップＳ２５）。
（１）［Ｒ］ｇ  を計算する。
（２）ハッシュ関数Ｈを用いて、ｉ＝０、...、Ｔに対して、Ｈ（［Ｒ］ｇ＋［ｉ・Ｒ＿Ｃ・Ｒ＿１］ｇ）を計算する。ここで［ｉ・Ｒ＿Ｃ・Ｒ＿１］ｇは第一レスポンスを利用すれば計算できる。
（３）｛Ｈ（［Ｒ＋ｉ・Ｒ＿Ｃ・Ｒ＿１］ｇ）｝＿｛ｉ＝０、...、Ｔ｝を第四レスポンスとする。
（４）（第一レスポンス、第二レスポンス、第三レスポンス、第四レスポンス）はレスポンスデータとして、データ照合装置４０に送付される。
【０１１１】
なお、第四レスポンスは、登録データと照合対象データの間の距離が、登録データと照合対象データ間が一致するものとして許容される閾値以内であるときに取り得る値のハッシュ値の集合を示す。
【０１１２】
このように、照合要求装置２０は、データ照合装置４０から送付された複数のチャレンジ、照合補助装置５０から送付された公開鍵及び乱数を用いて複数のレスポンスを生成し、当該複数のレスポンスをデータ照合装置４０に送付する。
【０１１３】
レスポンスデータと乱数Ｒ＿３＾｛−１｝、Ｒ＿４を受信したデータ照合装置４０の第一照合補助要求生成部４５は、以下の手順により第一照合補助要求を生成し、出力する（図１１のステップＳ２６）。
（１）準同型定数倍を用いて、第三レスポンスＥｎｃ（ｐｋ、Ｒ＿Ｃ（Ｒ＿２・Σ＿｛ｉ＝１、...、ｎ｝  （ｘ＿ｉ）＾２＋Ｒ＿３・Ｒ＿４））のＲ＿３＾｛−１｝倍Ｅｎｃ（ｐｋ、Ｒ＿３＾｛−１｝・Ｒ＿Ｃ（Ｒ＿２・Σ＿｛ｉ＝１、...、ｎ｝  （ｘ＿ｉ）＾２＋Ｒ＿３・Ｒ＿４））を計算する。ここで乱数の作り方から、Ｒ＿２・Ｒ＿３＾｛−１｝＝Ｒ＿１、Ｒ＿３・Ｒ＿３＾｛−１｝＝１であるため、結果はＥｎｃ（ｐｋ、Ｒ＿Ｃ（Ｒ＿１・Σ＿｛ｉ＝１、...、ｎ｝  （ｘ＿ｉ）＾２＋Ｒ＿４））となる。
（２）第一レスポンス［Ｒ＿Ｃ］ｇと乱数Ｒ＿４から、準同型加算を用いて、Ｅｎｃ（ｐｋ、Ｒ＿３＾｛−１｝・Ｒ＿Ｃ・Ｒ＿１・Σ＿｛ｉ＝１、...、ｎ｝  （ｘ＿ｉ）＾２）を計算する。
（３）第二レスポンスＥｎｃ（ｐｋ、Ｒ＿Ｃ・Ｒ＿１（Σ＿｛ｉ＝１、...、ｎ｝  （ｙ＿ｉ）＾２−２Σ＿｛ｉ＝１、...、ｎ｝ｘ＿ｉ・ｙ＿ｉ）＋Ｒ）と上記（２）の結果を準同型加算することにより、Ｅｎｃ（ｐｋ、Ｒ＿Ｃ・Ｒ＿１  ｄ（Ｘ、Ｙ）＾２  ＋Ｒ）が得られる。当該計算結果が、第一照合補助要求として出力される。
【０１１４】
なお、上記第一照合補助要求は、登録データと照合対象データの距離に関する暗号文に相当する。即ち、第一照合補助要求には、Ｅｎｃ（ｐｋ、Ｒ＿Ｃ・Ｒ＿１  ｄ（Ｘ、Ｙ）＾２  ＋Ｒ）なる情報が含まれ、当該情報は、登録データ（登録された平文データ）と照合対象データ（照合したい平文データ）の間のユークリッド距離の二乗に乱数Ｒ＿Ｃと乱数Ｒ＿１を乗じた値に乱数Ｒを加算した値の暗号文に等しい。このように、データ照合装置４０は、登録データと照合対象データ間の距離に関する暗号文を第一照合補助要求として照合補助装置５０に送付する。
【０１１５】
レスポンスデータを入力として、第二照合補助要求生成部４６は、第四レスポンスを第二照合補助要求とする。つまり、データ照合装置４０は、第四レスポンスを第二照合補助要求として照合補助装置５０に送付する。このように、照合補助要求データ（第一照合補助要求、第二照合補助要求）は、照合補助装置５０に送付される（図１１のステップＳ２６）。
【０１１６】
照合補助要求データを受信した照合補助装置５０の照合補助部５３は、鍵記憶部５２から秘密鍵ｓｋを受信し、第一照合補助要求を復号して、［Ｒ＿Ｃ・Ｒ＿１  ｄ（Ｘ、Ｙ）＾２  ＋Ｒ］ｇを得る。また、照合補助部５３は、Ｈ（［Ｒ＿Ｃ・Ｒ＿１  ｄ（Ｘ、Ｙ）＾２  ＋Ｒ］ｇ）を計算する。その後、照合補助部５３は、計算結果（計算したハッシュ値）が第二照合補助要求に含まれていたらＯＫ（成功）を、含まれていなかったらＮＧ（失敗）を照合補助結果としてデータ照合装置４０に送付する（図１１のステップＳ２７）。
【０１１７】
このように、照合補助装置５０は、第一照合補助要求の暗号文を鍵記憶部５２に格納された秘密鍵により復号することで、乱数により秘匿された距離（登録データと照合対象データ間の距離）を取得する。さらに、照合補助装置５０は、取得した当該距離のハッシュ値を計算する。その後、照合補助装置５０は、当該計算された距離のハッシュ値が、第二照合補助要求に含まれるか否かを判断し、判断結果をデータ照合装置４０に送付する。
【０１１８】
照合補助結果を受信したデータ照合装置４０の判定部４７は、結果がＯＫであればマッチを、ＮＧであればマッチしないを判定結果として出力する（図１１のステップＳ２８）。つまり、データ照合装置４０は、照合補助装置５０からの判断結果に応じて、登録データと照合対象データが一致するか否かの判定結果を出力する。
【０１１９】
以上のように、第１の実施形態に係る暗号文照合システムでは、データ照合装置４０が、登録データと照合対象データ間の距離に関する暗号文を照合補助装置５０に送付する。照合補助装置５０は、当該距離に関する暗号文を秘密鍵により復号することで得られる距離が、登録データと照合対象データが一致するものとして許容される距離の集合に含まれるか否かに関する判断を行い、判断結果を前記データ照合装置に送付する。
【０１２０】
その結果、データ間の実際の距離は秘匿され、距離に関する情報が漏えいしないことを保証でき、かつ、照合処理の大部分は許容される曖昧さのパラメータに依存しないシステムが提供される。即ち、登録データと照合対象データ間の距離を秘匿することで安全性が確保され、且つ、照合処理の大部分が許容される曖昧さのパラメータに依存しないので照合時の計算時間が短い暗号文照合システムが提供できる。
【０１２１】
なお、上記実施形態や具体例にて説明した暗号文照合システムの構成及び動作は例示であって、種々の変形が可能である。また、上述の説明で用いた複数のフローチャートでは、複数の工程（処理）が順番に記載されているが、上記実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、例えば各処理を並行して実行する等、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態は、内容が相反しない範囲で組み合わせることができる。
【０１２２】
上記の説明により、本発明の産業上の利用可能性は明らかであるが、本発明は、特徴量として多値ベクトルを用いる生体認証などに好適に適用可能である。データ登録フェイズにおける入力データと、暗号文照合フェイズにおける入力データを、指紋や静脈などから取得した生体情報から得られた特徴量（特徴ベクトル）とすることで、生体情報を秘匿したまま、記憶装置に格納された暗号化された生体データと、照合要求装置から創出された暗号化された生体データが同一人物から採取されたものであるか否かを、２つの入力データの距離が一定数以下となるかどうかにより判定することが可能となる。特に、生体情報は、常に安定して同一のデータが取得できるわけではないことが知られており、同じ人物から取得されるデータが類似している（各要素の距離が小さいデータが取得できる）と仮定できるため、本発明の生体認証への活用は有効である。
【０１２３】
上記の実施形態の一部又は全部は、以下のようにも記載され得るが、以下には限られない。
［形態１］
上述の第１の視点に係る暗号文照合システムのとおりである。
［形態２］
前記データ照合装置は、前記登録データの暗号文と前記送付された公開鍵を用いて複数のチャレンジを生成し、前記生成された複数のチャレンジを前記照合要求装置に送付し、
前記照合要求装置は、前記送付された複数のチャレンジ、前記送付された公開鍵及び乱数を用いて生成された複数のレスポンスを、前記データ照合装置に送付する、形態１の暗号文照合システム。
［形態３］
前記照合要求装置は、
第一乃至第三のレスポンスにより、前記データ照合装置が前記第一距離に関する暗号文を生成するための情報を送付し、
第四のレスポンスにより、前記第一距離が前記登録データと前記照合対象データ間が一致するものとして許容される閾値以内であるときに取り得る値のハッシュ値の集合を前記データ照合装置に送付する、形態２の暗号文照合システム。
［形態４］
前記データ照合装置は、
前記第一距離に関する暗号文を第一照合補助要求として前記照合補助装置に送付し、前記第四のレスポンスを第二照合補助要求として前記照合補助装置に送付する、形態３の暗号文照合システム。
［形態５］
前記照合補助装置は、
前記第一照合補助要求の暗号文を前記秘密鍵により復号することで、乱数により秘匿された前記第一距離を取得すると共に、前記取得した第一距離のハッシュ値を計算し、
前記計算された第一距離のハッシュ値が、前記第二照合補助要求に含まれるか否かを判断すると共に、当該判断結果を前記データ照合装置に送付する、形態４の暗号文照合システム。
［形態６］
前記データ照合装置は、前記判断結果に応じて、前記登録データと前記照合対象データが一致するか否かの判定結果を出力する、形態５の暗号文照合システム。
［形態７］
前記データ照合装置が生成する複数のチャレンジのうち一部のチャレンジは、第一乱数によりマスクされ、別の一部のチャレンジは第二乱数及び第三乱数によりマスクされ、前記第一乱数と前記第三乱数の乗算結果は前記第二乱数に一致する、形態２乃至６のいずれか一に記載の暗号文照合システム。
［形態８］
前記照合要求装置は、前記複数のレスポンスを生成する際に第四乱数と第五乱数を使用し、
前記データ照合装置は、前記登録データと前記照合対象データの間のユークリッド距離の二乗に第四乱数と第一乱数を乗じた値に第五乱数を加算した値の暗号文を生成する、形態７の暗号文照合システム。
［形態９］
前記照合補助装置は、加法準同型暗号として楕円エルガマル暗号を用いる、形態１乃至８のいずれか一に記載の暗号文照合システム。
［形態１０］
上述の第２の視点に係る暗号文照合方法のとおりである。
［形態１１］
登録データと照合対象データ間の第一距離が乱数により秘匿された、前記第一距離に関する暗号文を受信する処理と、
前記第一距離に関する暗号文を復号することで得られる前記第一距離が、前記登録データと前記照合対象データが一致するものとして許容される第二距離の集合に含まれるか否かに関する判断を行う処理と、
をコンピュータに実行させるプログラム。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（non-transient）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
［形態１２］
登録データ生成装置と、記憶装置と、照合要求装置と、データ照合装置と、照合補助装置とを備える暗号文照合システムであって、
前記登録データ生成装置は、
秘匿の対象となる入力データと、照合補助装置が公開している公開鍵とを入力とし、前記公開鍵を用いて入力データの各要素を秘匿した暗号データを出力する第一テンプレート生成部と、
秘匿の対象となる入力データと、照合補助装置が公開している公開鍵とを入力とし、前記公開鍵を用いて入力データに関する情報を秘匿した暗号データを出力する第二テンプレート生成部と、
を備え、
前記記憶装置は、
前記登録データ生成装置から送付された暗号データに対して固有の識別子を付与する識別子生成部と、
前記登録データ生成装置から送付された暗号データおよび前記識別子の組を記憶するテンプレート記憶部とを備え、
前記照合要求装置は、
照合したいデータと識別子とを入力とし、照合要求を生成する照合要求部と、
前記照合したいデータと、データ照合装置から送付されたチャレンジと、前記照合補助装置が公開している公開鍵とを入力として、レスポンスを生成する第一から第四レスポンス生成部とを備え、
前記データ照合装置は、
前記照合要求装置から送付された照合要求を入力とし、照合要求に含まれる識別子と対応するテンプレートを記憶装置から受信する対象テンプレート受信部と、
前記受信したテンプレートと、照合補助装置が公開している公開鍵とを入力とし、チャレンジを生成する第一から第三チャレンジ生成部と、
照合要求装置からレスポンスを受信し、照合補助依頼データを生成する第一と第二照合補助要求生成部と、
前記照合補助依頼データに対して、前記照合補助装置が生成した照合補助結果を受信し、照合結果を生成する判定部と、を備え、
前記照合補助装置は、
セキュリティパラメータを入力とし、加法準同型暗号の公開鍵と秘密鍵を生成し、公開鍵を公開し、秘密鍵を鍵記憶部に記憶する鍵生成部と、
前記鍵生成部が生成した秘密鍵を記憶する鍵記憶部と、
データ照合装置から受信した照合補助依頼データと、鍵記憶部から受信した秘密鍵を入力として、照合補助結果を生成する照合補助部と、を備える、
ことを特徴とした暗号文照合システム。
なお、形態１０及び形態１１は、形態１と同様に、形態２〜形態９に展開することが可能である。
【０１２４】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１２５】
１０、１０１  登録データ生成装置
１１  第一テンプレート生成部
１２  第二テンプレート生成部
２０、１０２  照合要求装置
２１  照合要求部
２２  第一レスポンス生成部
２３  第二レスポンス生成部
２４  第三レスポンス生成部
２５  第四レスポンス生成部
３０  記憶装置
３１  識別子生成部
３２  テンプレート記憶部
４０、１０３  データ照合装置
４１  対象テンプレート受信部
４２  第一チャレンジ生成部
４３  第二チャレンジ生成部
４４  第三チャレンジ生成部
４５  第一照合補助要求生成部
４６  第二照合補助要求生成部
４７  判定部
５０、１０４  照合補助装置
５１  鍵生成部
５２  鍵記憶部
５３  照合補助部
１１１  ＣＰＵ（Central Processing Unit）
１１２  メモリ
１１３  入出力インターフェイス
１１４  ＮＩＣ（Network Interface Card）
【図１】
0006791263.tif 000002
【図２】
0006791263.tif 000003
【図３】
0006791263.tif 000004
【図４】
0006791263.tif 000005
【図５】
0006791263.tif 000006
【図６】
0006791263.tif 000007
【図７】
0006791263.tif 000008
【図８】
0006791263.tif 000009
【図９】
0006791263.tif 000010
【図１０】
0006791263.tif 000011
【図１１】
0006791263.tif 000012