(57)【要約】      （修正有）【課題】２つの登録データが同じ入力データのものか否かを判定できないようにする。【解決手段】データ登録フェイズでは、登録データ生成装置において、秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算し、暗号データと検証鍵とから登録データを生成し、登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶装置に記憶する。暗号文照合フェイズでは、データ照合要求装置が、暗号データおよび登録データを使用せずに、乱数と秘密情報とを用いて照合対象の入力データを暗号化したデータ照合要求を生成し、データ照合判定装置が、記憶部に記憶された登録テンプレートと、データ照合要求とを照合して、判定結果を出力し、判定結果に対応した登録テンプレートの一部または全部を含む照合結果を出力し、データ照合要求装置が、照合結果からデータを復元して、復元結果を出力する。【選択図】図１
2020144395.tif 000002
【特許請求の範囲】
【請求項１】
秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと検証鍵とから登録データを生成する登録データ生成部と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、
前記暗号データおよび前記登録データを使用せずに、乱数と前記秘密情報とを用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成部と、
前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力するデータ照合判定部と、
前記判定結果に対応した前記登録テンプレートを含むか、あるいは前記判定結果に対応した前記登録テンプレートが存在しないことを意味する記号やメッセージを含む照合結果を出力する照合結果生成部と、
前記判定結果に対応した前記登録テンプレートを含む照合結果を受信した場合、当該受信した照合結果からデータを復元して、復元結果を出力するデータ復元部と、
を含む、暗号文照合システム。
【請求項２】
請求項１に記載の暗号文照合システムを備え、前記秘匿対象の入力データおよび前記照合対象の入力データが生体情報であり、前記秘匿対象の入力データと前記照合対象の入力データとが類似しているか否かを判定することによって生体認証を行うことを特徴とする生体認証システム。
【請求項３】
第１のクライアントが、秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算し、前記暗号データと検証鍵とから登録データを生成し、サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶するデータ登録ステップと、
第２のクライアントが、前記暗号データおよび前記登録データを使用せずに、乱数と前記秘密情報とを用いて照合対象の入力データを暗号化したデータ照合要求を生成し、前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力し、前記判定結果に対応した前記登録テンプレートを含むか、あるいは前記判定結果に対応した前記登録テンプレートが存在しないことを意味する記号やメッセージを含む照合結果を出力し、前記第２のクライアントが、前記判定結果に対応した前記登録テンプレートを含む照合結果を受信した場合、当該受信した照合結果からデータを復元して、復元結果を出力する、暗号文照合ステップと、
を含む、暗号文照合方法。
【請求項４】
秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化処理と、
前記暗号データと検証鍵とから登録データを生成する登録データ生成処理と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する処理と、
前記暗号データおよび前記登録データを使用せずに、乱数と前記秘密情報とを用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成処理と、
前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力するデータ照合判定処理と、
前記判定結果に対応した前記登録テンプレートを含むか、あるいは前記判定結果に対応した前記登録テンプレートが存在しないことを意味する記号やメッセージを含む照合結果を出力する照合結果生成処理と、
前記判定結果に対応した前記登録テンプレートを含む照合結果を受信した場合、当該受信した照合結果からデータを復元して、復元結果を出力するデータ復元処理と、
をコンピュータに実行させる、暗号文照合プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化されたデータの曖昧さを許容する暗号文照合システム、方法およびプログラムに関し、特に、秘匿対象の入力データ（照合元データ）も、照合対象の入力データ（照合対象データ）もともに暗号化されている状況で、曖昧さの指標を平文のハミング距離とした場合の暗号文照合システム、方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、クラウドの普及に伴い、ネットワークに接続された計算資源に利用者のデータを置き、そのデータに基づいたサービスが急速に広がってきている。このようなサービスでは、利用者の機微なデータを扱う機会も増大してきている。このため、利用者が自分のデータが安全に管理されていることを保証することが重要になってきている。
【０００３】
このような状況の下、オープンなネットワーク環境でデータを暗号化したまま管理し、データを復号することなく、検索や、統計処理などを行う技術の研究開発が活発に行われている。
【０００４】
また、近年、従来のパスワードや磁気カードを用いた個人認証の脆弱性をついた犯罪が頻発している。このため、より安全性の高い指紋、静脈などの生体的な特徴に基づく生体認証技術が注目を集めている。
【０００５】
生体認証においては、認証情報の検証を行うために、生体情報に関するテンプレートをデータベースに保管する必要がある。指紋、静脈等の生体情報は基本的に生涯不変のデータである。生体情報は、もしそれが漏洩すると、その被害は甚大なものとなる。このため、生体情報は、最も機密性が要求される情報である。したがって、テンプレートが漏洩した場合でも、「なりすまし」等が行えないようにする必要がある。
【０００６】
そこで、テンプレート情報を秘匿したまま認証を行う、テンプレート保護型の生体認証技術が重要となってきている。
【０００７】
例えば、特許文献１は、指紋データを多項式上の点として表現し、その点にランダムな点を付加して、指紋データを秘匿したデータをテンプレートとして生体認証を行う方式を開示している。
【０００８】
しかしながら、上記特許文献１の方式は、生体認証を何度も繰り返した時に、十分な強度で生体情報が保護されているかどうかに課題があることが知られている。
【０００９】
一方、非特許文献１は、データベース上に置くテンプレートをランダムなＢＣＨ（Bose-Chaudhuri-Hocquenghem）符号語（code word）でマスクすることによって生体情報を保護する方式を開示している。
【００１０】
上記非特許文献１では、生体情報Ｚと秘匿情報Ｓとを用いて、以下のように生体認証用テンプレートを生成している。
【００１１】
(Ａ１)秘匿情報ＳをＢＣＨ誤り訂正符号化し、符号語Ｃを生成する。
【００１２】
(Ａ２)符号語Ｃと生体情報Ｚとの排他的論理和Ｗ１＝Ｃ (+)Ｚを計算する（ここで、(+)はビットごとの排他的論理和を表す演算子である）。
【００１３】
(Ａ３)秘匿情報ＳをＳＨＡ（Secure Hash Algorithm）１などの暗号学的ハッシュ関数 Ｈ に入力して、ハッシュ値 Ｗ２＝Ｈ（Ｓ）を計算する。
【００１４】
(Ａ４)排他的論理和Ｗ１およびハッシュ値Ｗ２をテンプレート情報としてデータベースに格納する。
【００１５】
上記(Ａ１)から(Ａ４)によって生成されたテンプレートと、別の生体情報Ｚ’が同じ人物から採取したものであるか否かは、次のようにして検証することが可能である。
【００１６】
(Ｂ１)排他的論理和Ｗ１と別の生成情報Ｚ’との排他的論理和Ｃ’＝Ｗ１ (+) Ｚ’を計算する。
【００１７】
(Ｂ２)排他的論理和Ｃ’をＢＣＨ符号の誤り訂正アルゴリズムに入力して、Ｓ’を計算する。
【００１８】
(Ｂ３)上記データベースからハッシュ値Ｗ２を読み出し、Ｗ２＝Ｈ（Ｓ’) が成立するかをチェックする。成立する場合は、テンプレートと生体情報Ｚ’が同じ人物から採取されたものと判断する。成立しない場合は、異なる人物から採取されたものと判断する。
【００１９】
上述の技術は、生体情報Ｚの取得方法に依存しない方法である。このため、一般に、秘匿（暗号化）されたデータを復号することなく、その暗号文が、提示されたデータと一定のハミング距離以内のデータを暗号化したものであるか否かの照合を行う方式と解釈することが可能である。
【００２０】
また、暗号化したままの照合方法として、決定的な共通鍵暗号や公開鍵暗号を利用した検索可能暗号を利用する方法が知られている。しかしながら、これらの方法は一般に、検索に用いるキーワードが一意に定まっている必要がある。上記のように生体情報を利用して照合を行う場合、生体情報取得時に含まれるノイズのせいで常に同じ生体情報が得られるわけではないことが知られている。このため、生体情報の照合方法に、検索可能暗号を適用することが難しい。
【００２１】
特許文献２は、暗号文照合において、元の平文に関する漏洩を回避可能とし、安全性を担保可能とした暗号文照合システムを開示している。この特許文献２に開示された暗号文照合システムは、登録補助データ生成部と、暗号文減算部と、一致判定部とを備える。登録補助データ生成部は、秘匿対象の入力データを暗号化して記憶装置に登録される第１の暗号文と、照合対象の入力データを暗号化した第２の暗号文のそれぞれに対して、第１の暗号文と第２の暗号文との間の平文のハミング距離が、予め定められた所定値以下であることを検証するための第１、第２の補助データをそれぞれ生成する。暗号文減算部は、第２の暗号文に対して、記憶装置に登録されている第１の暗号文との差分をとる。一致判定部は、第１及び第２の補助データを用いて、第１の暗号文と第２の暗号文の前記差分に対応するハミング距離が予め定められた所定値以下であるか否かを判定する。
【先行技術文献】
【特許文献】
【００２２】
【特許文献１】特開２００６−１５８８５１号公報
【特許文献２】国際公開第２０１４／０１０７２５号
【非特許文献】
【００２３】
【非特許文献１】Pim Tuyls, Anton H. M. Akkermans, Tom A. M. Kevenaar, Geert-Jan Schrijen, Asker M. Bazen and Raimond N. J. Veldhuis, “Practical Biometric Authentication with Template Protection”, Proceedings of AVBPA 2005, Lecture Notes in Computer Science, Vol. 3546, Springer Verlag, pp. 436-446, (2005)
【発明の概要】
【発明が解決しようとする課題】
【００２４】
上述の技術の問題点は、照合元データと照合対象データとに多少の誤差を許してデータベースにある暗号文の照合を行う際に、照合元データに関する情報がデータベースの管理者等に漏えいしてしまうことにある。その理由は以下の通りである。
【００２５】
例えば、上記特許文献１では、暗号文の秘匿強度が十分でないからである。
【００２６】
また、上記非特許文献１では、２つの登録データが同じ入力データ（生体情報）のものであるか否かを、入力データを知ることなく判定できるからである。より詳細には、上記非特許文献１では、２つの登録データW1=C(+)Z, W1’=C’(+)Z’から、生体情報Zと生体情報Z’とが同じあるいは近いデータであるか、遠いデータであるかを、生体情報Z, Z’を知らずに判定可能である。
【００２７】
具体的には、非特許文献１においては、まず、W1(+)W1’=(C(+)C’) (+) (Z(+)Z’)がBCH誤り訂正復号可能かどうかを調べる。もしも誤り訂正不可能であれば、生体情報Zと生体情報Z’とは遠いデータであると判断できる。また、誤り訂正可能なときは、高い確率で生体情報Zと生体情報Z’とは近いデータであると判断できる。上記のような判断ができる理由は、誤り訂正復号は秘密情報なしで処理可能であるからである。
【００２８】
さらに、上記特許文献２では、登録された秘匿対象の入力データ（尚、実際には、それを暗号化した第１の暗号文が記憶装置に登録される）に近い照合対象の入力データを知らなくても、受理された第２の暗号文（照合データ）を生成可能だからである。何故なら、特許文献２では、登録データの各要素は線形性を有するために、照合対象の入力データを知らなくても、受理される第２の暗号文（照合データ）を生成可能だからである。
【００２９】
本発明は、上記の事情に鑑みてなされたものであって、その目的は、２つの登録データ（あるいは照合要求データ）が、同じ入力データ（あるいは照合データ）のものか否かを判定できない、暗号文照合システム、方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００３０】
本発明の第１の態様による暗号文照合システムは、秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、暗号データと検証鍵とから登録データを生成する登録データ生成部と、登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、前記暗号データおよび前記登録データを使用せずに、乱数と秘密情報とを用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成部と、記憶部に記憶された登録テンプレートと、データ照合要求とを照合して、判定結果を出力するデータ照合判定部と、判定結果に対応した登録テンプレートを含むか、あるいは前記判定結果に対応した前記登録テンプレートが存在しないことを意味する記号やメッセージを含む照合結果を出力する照合結果生成部と、前記判定結果に対応した前記登録テンプレートを含む照合結果を受信した場合、当該受信した照合結果からデータを復元して、復元結果を出力するデータ復元部と、を含む。
【００３１】
また、本発明の第２の態様による暗号文照合システムは、署名鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、暗号データと検証鍵とから登録データを生成する登録データ生成部と、登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、乱数と秘密情報とを用いて照合対象の入力データを暗号化した第１データ照合要求を生成する第１データ照合要求生成部と、記憶部に記憶された登録テンプレートと、第１データ照合要求とを照合して、判定結果を出力する第１データ照合判定部と、ランダムに選んだメッセージと、判定結果に対応する登録テンプレートの一部または全部との組み合わせを、第１照合結果として出力する第１照合結果生成部と、第１照合結果を復号して、復号結果を出力する復号部と、復号結果と第１照合結果に含まれるメッセージとから、第２データ照合要求を生成する第２データ照合要求生成部と、第２データ照合要求と、記憶部に記録されている登録テンプレートの登録データとから、第２データ照合判定を生成する第２データ照合判定部と、第２データ照合判定に対応する登録データの識別子を、第２照合結果として出力する第２照合結果生成部と、を含む。
【００３２】
さらに、本発明の第３の態様による暗号文照合システムは、秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、暗号データと公開鍵とから登録データを生成する登録データ生成部と、登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、乱数と秘密情報とを用いて照合対象の入力データを暗号化した第１データ照合要求を生成する第１データ照合要求生成部と、記憶部に記憶された登録テンプレートと、第１データ照合要求とを照合して、判定結果を出力する第１データ照合判定部と、ランダムに選んだメッセージと、判定結果に対応する登録テンプレートの一部または全部との組み合わせを、第１照合結果として出力する第１照合結果生成部と、第１照合結果を復号して、復号結果を出力する復号部と、復号結果と第１照合結果に含まれる前記メッセージとから、第２データ照合要求を生成する第２データ照合要求生成部と、第２データ照合要求と、記憶部に記録されている前記登録テンプレートの登録データとから、第２データ照合判定を生成する第２データ照合判定部と、第２データ照合判定に対応する登録データの識別子を、第２照合結果として出力する第２照合結果生成部と、を含む。
【発明の効果】
【００３３】
本発明によれば、２つの登録データ（あるいは照合要求データ）が、同じ入力データ（あるいは照合データ）のものか、そうでないかを判定することを防止できる。
【図面の簡単な説明】
【００３４】
【図１】本発明の第１の実施形態に係る暗号文照合システムの構成例を示すブロック図である。
【図２】図１に示した暗号文照合システムに使用される、登録データ生成装置および記憶装置の構成例を示すブロック図である。
【図３】図１に示した暗号文照合システムに使用される、データ照合要求装置およびデータ照合判定装置の構成例を示すブロック図である。
【図４】図１に示した暗号文照合システムの、データ登録フェイズの動作例を示すフローチャートである。
【図５】図１に示した暗号文照合システムの、暗号文照合フェイズの動作例を示すフローチャートである。
【図６】本発明の第２の実施形態に係る暗号文照合システムの構成例を示すブロック図である。
【図７】図６に示した暗号文照合システムに使用される、登録データ生成装置および記憶装置の構成例を示すブロック図である。
【図８】図６に示した暗号文照合システムに使用される、第１データ照合要求装置および第１データ照合判定装置の構成例を示すブロック図である。
【図９】図６に示した暗号文照合システムに使用される、第２データ照合要求装置および第２データ照合判定装置の構成例を示すブロック図である。
【図１０】図６に示した暗号文照合システムの、データ登録フェイズの動作例を示すフローチャートである。
【図１１】図６に示した暗号文照合システムの、暗号文照合フェイズの前半の動作例を示すフローチャートである。
【図１２】図６に示した暗号文照合システムの、暗号文照合フェイズの後半の動作例を示すフローチャートである。
【図１３】本発明の第１の実施例による暗号文照合システムの、データ登録フェイズの動作例を示すフローチャートである。
【図１４】本発明の第１の実施例による暗号文照合システムの、暗号文照合フェイズの動作例を示すフローチャートである。
【図１５】本発明の第２の実施例による暗号文照合システムの、データ登録フェイズの動作例を示すフローチャートである。
【図１６】本発明の第２の実施例による暗号文照合システムの、暗号文照合フェイズの前半の動作例を示すフローチャートである。
【図１７】本発明の第２の実施例による暗号文照合システムの、暗号文照合フェイズの後半の動作例を示すフローチャートである。
【図１８】本発明の第３の実施例による暗号文照合システムの、データ登録フェイズの動作例を示すフローチャートである。
【図１９】本発明の第３の実施例による暗号文照合システムの、暗号文照合フェイズの前半の動作例を示すフローチャートである。
【図２０】本発明の第３の実施例による暗号文照合システムの、暗号文照合フェイズの後半の動作例を示すフローチャートである。
【発明を実施するための形態】
【００３５】
（発明の概略の説明）
本発明の暗号文照合システムは、登録時にユーザが送出する秘匿対象の入力データ（照合元データ）を、乱数を誤り訂正符号化したデータおよび秘密情報で、暗号化することにより、暗号データを生成する。また、本発明の暗号文照合システムは、データベースに格納される暗号データだけではなく、照合のためにユーザが送出する照合対象の入力データも、乱数を誤り訂正符号化したデータおよび秘密情報により暗号化する。登録時と同じ秘密情報を照合時に用いない限り、２つの登録データ（あるいは照合データ）が近い入力データのものかそうでないかの判定ができない。そのため、登録時に用いる秘密情報を、登録データ生成ごとに変更することにより、２つの登録データ（あるいは照合要求データ）が、近い入力データ（あるいは照合データ）のものか、そうでないかを判定することが不可能となる。
【００３６】
本発明の理解を容易にするために、以下に本発明の概要について簡単に説明する。
【００３７】
本発明では、完全一致ではなく、類似度で受理不受理を決定する。本発明における秘匿対象の入力データzや照合対象の入力データz’がそれに当たる。本発明は、秘匿対象の入力データzや照合対象の入力データz’を秘匿したままそれらが近いことを確認するとともに、登録時と同じ秘密情報を照合時に用いない限り、２つの登録データ（あるいは照合要求データ）が近い入力データ（あるいは照合データ）のものかそうでないかの判定ができないことを保証している。すなわち、後者の性質が数学的に保証できることが、本発明の新規である。
【００３８】
本発明は、誤り訂正符号とデジタル署名（あるいは公開鍵暗号などの暗号プロトコル）を利用する。
【００３９】
デジタル署名の場合、登録データとして、署名の秘密鍵（以下、「署名鍵」と記す場合あり）skを誤り訂正符号化したENC(sk)と秘匿対象の入力データzと秘密情報Sとの排他的論理和を計算したz(+)ENC(sk)(+)Sおよび検証鍵vkを生成する。以降、z(+)ENC(sk)(+)Sを(1)式とする。
【００４０】
なお、公開鍵暗号の場合、検証鍵vkの代わりに公開鍵pkが、秘密鍵skの代わり復号鍵dkが、それぞれ使用される。
【００４１】
照合は２つのフェイズに分かれている。
【００４２】
（照合フェイズ１）クライアントは、サーバへ、照合対象の入力データz’と、乱数Rを誤り訂正符号化したENC(R)と秘密情報Sとの排他的論理和z’(+)ENC(R)(+)Sを送る。サーバは、(1) (+)(z’(+)ENC(R)(+)S)を誤り訂正復号する。このとき、秘匿対象の入力データzと照合対象の入力データz’とが近い値ならば復号可能で、復号結果はsk(+)Rとなる。サーバは、この値をランダムなメッセージMとともにクライアントに送付する。復号不可ならば停止する。
【００４３】
（照合フェイズ２）クライアントは、照合フェイズ１で使った乱数Rを用いて復号結果sk(+)R(+)Rを計算し、署名の秘密鍵skを得る。そして、クライアントは、署名の秘密鍵skとメッセージMを用いてデジタル署名σを生成し、サーバに送付する。サーバは、検証鍵vkを用いて署名を検証し、受理・不受理を決定する。
【００４４】
直観的には、本発明は、(1)式から署名の秘密鍵skを取り出せるのは秘密情報Sを知っている人のみであり、受理される検証鍵vkを生成できるのは署名の秘密鍵skを知る人のみであること、を利用している。したがって、本発明による方式は、登録時と同じ秘密情報を照合時に用いない限り、２つの登録データ（あるいは照合要求データ）が近い入力データ（あるいは照合データ）のものかそうでないかの判定ができないことを保証できる。
【００４５】
なお、本発明は、上記（照合フェイズ１）まででも発明として成立し得る。何故なら、上記例では照合フェイズ１において秘密鍵skを取り出し、照合フェイズ２において署名によって認証することにしているが、照合フェイズ２では、照合フェイズ１で受け取った秘密鍵skを認証以外にも暗号通信や暗号プロトコルに利用できるからある。換言すれば、この場合、単に暗号化して記憶していた秘密鍵を抽出している。
【００４６】
このように、本発明では、２つのフェイズで照合結果以外に秘密鍵を得ること、およびその利用目的に自由度がある。
【００４７】
（第１の実施形態）
次に、本発明の第１の実施形態による暗号文照合システムについて図面を参照して詳細に説明する。
【００４８】
図１を参照すると、本発明の第１の実施形態による暗号文照合システムは、登録データ生成装置１００と、記憶装置２００と、データ照合要求装置３００と、データ照合判定装置４００とから成る。
【００４９】
登録データ生成装置１００およびデータ照合要求装置３００を利用するエンティティがクライアントである。記憶装置２００を有し、データ照合判定装置４００を利用するエンティティがサーバである。換言すれば、登録データ生成装置１００は第１のクライアントとして実現され、データ照合要求装置３００は第２のクライアントとして実現される。記憶装置２００とデータ照合判定装置４００との組み合わせはサーバとして動作する。第１のクライアントと第２のクライアントとは、別々のクライアントであっても良いし、同じ１つのクライアントであっても良い。
【００５０】
［構成の説明］
図２を参照すると、登録データ生成装置１００は、鍵生成部１０１と、秘密情報生成部１０２と、暗号化部１０３と、登録データ生成部１０４とから成る。
【００５１】
鍵生成部１０１は、セキュリティパラメータを入力とし、署名の秘密鍵および検証鍵を出力する。秘密情報生成部１０２は、セキュリティパラメータを入力とし、秘密情報を出力する。暗号化部１０３は、秘匿対象の入力データと、秘密鍵と、秘密情報とを入力とし、暗号文（暗号データ）を出力する。登録データ生成部１０４は、検証鍵および暗号文（暗号データ）を入力とし、データ照合要求装置３００のデータ照合要求生成部３０１（後述する）が出力する暗号データに対応する照合対象の入力データが、暗号化部１０３に入力された秘匿対象の入力データとハミング距離が一定数以内であることを判断するためのデータである登録データを出力する。登録データは、暗号データを含む。
【００５２】
ここで、登録データ生成装置１００の暗号化部１０３によって出力される暗号文は、第１の入力データm1を第１の鍵k1および秘密情報Ｓで暗号化した第１の暗号文をc1、第２の入力データm2を第２の鍵k2および秘密情報Ｓ’で暗号化した第２の暗号文をc2とした時、第１の暗号文c1と第２の暗号文c2の和c1(+)c2が入力データm1(+)m2を鍵k1(+)k2および秘密情報Ｓ(+)Ｓ’で暗号化した暗号文となる。
【００５３】
図２に示されるように、記憶装置２００は、識別子管理部２０１と、暗号文記憶部２０２とから成る。記憶装置２００は、登録データ生成装置１００が出力した登録データを記憶するとともに、暗号データの照合時に、登録データに対応する識別子を記憶する。
【００５４】
識別子管理部２０１は、登録データ生成装置１００から入力される登録データを一意に特定する識別子を管理する。暗号文記憶部２０２は、識別子管理部２０１によって発行された識別子と、登録データ生成装置１００から受信した登録データとを含む登録テンプレートを記憶する。
【００５５】
図３を参照すると、データ照合要求装置３００は、データ照合要求生成部３０１と、照合結果受信部３０２と、データ復元部３０３と、秘密情報記憶部３０４とから成る。
【００５６】
データ照合要求生成部３０１は、照合対象の入力データを入力とし、照合対象の入力データに秘匿処理を施したデータ照合要求を出力する。照合結果受信部３０２は、データ照合要求に対してデータ照合判定装置４００が生成した照合結果を受信する。データ復元部３０３は、受信した照合結果を入力として、復元データを生成する。秘密情報記憶部３０４は、登録データ生成装置１００の秘密情報生成部１０２が生成した秘密情報を記憶する。
【００５７】
図３に示されるように、データ照合判定装置４００は、登録データ受信部４０１と、データ照合要求受信部４０２と、データ照合判定部４０３と、照合結果生成部４０４とから成る。
【００５８】
登録データ受信部４０１は、記憶装置２００に記憶されている登録テンプレートを受信する。データ照合要求受信部４０２は、データ照合要求装置３００からデータ照合要求を受信する。データ照合判定部４０３は、登録テンプレートと、データ照合要求を入力として、データ照合要求として秘匿されている照合データと暗号データとして秘匿されている登録データとの照合を行い、判定結果を出力する。照合結果生成部４０４は、判定結果と、登録テンプレートを入力として、判定結果に対応した登録テンプレートの一部または全部を含む照合結果を出力する。ただし、照合結果は少なくとも判定結果に対応した登録テンプレートを含むか、あるいは判定結果に対応した登録テンプレートが存在しないことを意味する記号やメッセージを含む。
【００５９】
［動作の説明］
次に、本発明の動作に関して詳細に説明する。
【００６０】
本発明の第１の実施形態による暗号文照合システムの動作は、データ登録フェイズと、暗号文照合フェイズと、の二つのフェイズに大別される。
【００６１】
ここで、データ登録フェイズは、登録データ生成装置１００に秘匿対象の入力データを入力し、秘匿対象の入力データを暗号化し、記憶装置２００に登録するフェイズである。暗号文照合フェイズは、データ照合要求装置３００に入力された照合対象の入力データを暗号化し、その際に生成されたデータ照合要求が、データ照合判定装置４００によって記憶装置２００内の登録データと近い（ハミング距離の小さい）平文となるものであるかを判定するフェイズである。
【００６２】
以下、各フェイズにおける動作に関して詳細に説明する。
【００６３】
図４を参照すると、データ登録フェイズにおいては、まず、はじめに登録データ生成装置１００の鍵生成部１０１にセキュリティパラメータが入力され、秘密鍵および検証鍵が生成される（ステップＡ１）。次に、登録データ生成装置１００の秘密情報生成部１０２にセキュリティパラメータが入力され、秘密情報が生成される。生成された秘密情報は、データ照合要求装置３００に送付され、秘密情報記憶部３０４に記憶される（ステップＡ２）。
【００６４】
次に、登録データ生成装置１００の暗号化部１０３に秘匿対象の入力データと前記秘密鍵および検証鍵と前記秘密情報が入力される（ステップＡ３）。次に、暗号化部１０３は、入力された入力データと、前記秘密鍵と、前記秘密情報から、入力データを暗号化した暗号データを計算する（ステップＡ４）。次に、登録データ生成装置１００の登録データ生成部１０４は、前記暗号データと、前記検証鍵とから、登録データを生成し、記憶装置２００に送付する（ステップＡ５）。
【００６５】
次に、登録データを受信した記憶装置２００の識別子管理部２０１は、登録データに対して登録データを一意に特定するための識別子を発行し、登録データとともに暗号文記憶部２０２に登録テンプレートとして記憶する（ステップＡ６）。
【００６６】
図５を参照すると、暗号文照合フェイズにおいては、まず、データ照合要求装置３００に照合対象の入力データが入力される（ステップＢ１）。次に、データ照合要求生成部３０１は、入力データを乱数および秘密情報記憶部３０４に記憶した秘密情報で暗号化したデータ照合要求を生成し、データ照合判定装置４００に送付する（ステップＢ２）。
【００６７】
次に、データ照合判定装置４００の登録データ受信部４０１は、記憶装置２００に記憶されている登録データおよびその識別子を受信する（ステップＢ３）。次に、データ照合要求受信部４０２は、データ照合要求装置３００から、データ照合要求を受信する（ステップＢ４）。
【００６８】
次に、データ照合判定部４０３は、前記登録データおよびその識別子と、データ照合要求を入力として、データ照合要求として秘匿されている照合データと暗号データとして秘匿されている登録データとの照合を行い、判定結果を出力する（ステップＢ５）。次に、照合結果生成部４０４は、判定結果を入力として、判定結果に対応した登録テンプレートの一部または全部を含む照合結果を出力する（ステップＢ６）。ただし、照合結果は少なくとも判定結果に対応した登録テンプレートを含むか、あるいは判定結果に対応した登録テンプレートが存在しないことを意味する記号やメッセージを含む。
【００６９】
次に、データ照合要求装置３００の照合結果受信部３０２は、照合結果を受信する（ステップＢ７）。ここで、照合結果が判定結果に対応した登録テンプレートが存在しないことを意味する記号やメッセージであった場合は、照合されなかったものとして停止する。そうでなかった場合、以下のステップに進む。
【００７０】
次に、データ復元部３０３は、照合結果を入力とし、照合結果に含まれるデータの復元を行い、復元結果を出力する（ステップＢ８）。
【００７１】
このように、本第１の実施形態では、登録時と同じ秘密情報を照合時に用いない限り、２つの登録データ（あるいは照合要求データ）が近い入力データ（あるいは照合データ）のものかそうでないかの判定ができないことを保証できる。何故なら、秘密鍵を取り出せるのは、秘密情報を知っている人のみであり、受理される検証鍵を生成できるのは、秘密鍵を知る人のみであるからである。これにより、２つの登録データ（あるいは照合要求データ）が、同じ入力データ（あるいは照合データ）のものか、そうでないかを判定することを防止できる。
【００７２】
なお、図１の登録データ生成装置１００、記憶装置２００、データ照合要求装置３００、およびデータ照合判定装置４００を一つのコンピュータシステムに実装してもよいし、あるいは各装置を単体として構成してもよい。あるいは、各装置１００、２００、３００、４００内の各部をそれぞれ１つの単体装置で構成してもよい。図１の各装置の各部の処理を、コンピュータで実行されるプログラムによって実現するようにしてもよい。
【００７３】
（第２の実施形態）
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。
【００７４】
本発明の第１の実施形態で説明した暗号文照合システムと、本発明の第２の実施形態で記載する暗号文照合システムと間の差分は、データ照合要求に対応する照合結果を受け取るエンティティの違いである。すなわち、本発明の第１の実施形態で説明した暗号文照合システムでは、データ照合要求を行ったエンティティのみがその結果を得られた。これに対して、本発明の第２の実施形態で説明する暗号文照合システムでは、データ照合要求に応じて照合処理を行うエンティティもその結果を得られる。
【００７５】
図６を参照すると、本発明の第２の実施形態による暗号文照合システムは、登録データ生成装置１００と、記憶装置２００と、第１データ照合要求装置３００Ａと、第１データ照合判定装置４００Ａと、第２データ照合要求装置５００と、第２データ照合判定装置６００とから成る。
【００７６】
登録データ生成装置１００、第１データ照合要求装置３００Ａ、および第２データ照合要求装置５００を利用するエンティティがクライアントである。記憶装置２００を有し、第１データ照合判定装置４００Ａおよび第２データ照合判定装置６００を利用するエンティティがサーバである。換言すれば、登録データ生成装置１００は第１のクライアントとして実現され、第１データ照合要求装置３００Ａと第２データ照合要求装置５００との組み合わせが第２のクライアントとして実現される。記憶装置２００、第１データ照合判定装置４００Ａ、および第２データ照合判定装置６００の組み合わせがサーバとして動作する。尚、第１のクライアントと第２のクライアントは、別々のクライアントであっても良いし、同じ一つのクライアントであっても良い。
【００７７】
［構成の説明］
図７を参照すると、登録データ生成装置１００は、鍵生成部１０１と、秘密情報生成部１０２と、暗号化部１０３と、登録データ生成部１０４とから成る。
【００７８】
鍵生成部１０１は、セキュリティパラメータを入力とし、署名の検証鍵および署名鍵を出力する。秘密情報生成部１０２は、セキュリティパラメータを入力とし、秘密情報を出力する。暗号化部１０３は、秘匿対象の入力データと、署名鍵および検証鍵と、秘密情報を入力とし、暗号文（暗号データ）を出力する。登録データ生成部１０４は、署名の検証鍵、暗号文を入力とし、第１データ照合要求装置３００Ａの第１データ照合要求生成部３０１Ａ（後述する）が出力する暗号データに対応する照合対象の入力データが、暗号化部１０２に入力された秘匿対象の入力データとハミング距離が一定数以内であることを判断するためのデータである登録データを出力する。
【００７９】
ここで、登録データ生成装置１００の暗号化部１０３によって出力される暗号文は、第１の入力データm1を第１の鍵k1と秘密情報S1で暗号化した第１の暗号文をc1、第２の入力データm2を第２の鍵k2と秘密情報S2で暗号化した第２の暗号文をc2とした時、第１の暗号文c1と第２の暗号文c2の和c1(+)c2が入力データm1(+)m2を鍵k1(+)k2と秘密情報S1(+)S2で暗号化した暗号文となる。
【００８０】
図７に示されるように、記憶装置２００は、識別子管理部２０１と、暗号文記憶部２０２とから成る。記憶装置２００は、登録データ生成装置１００が出力した登録データを記憶するとともに、暗号データの照合時に、登録データに対応する識別子を記憶する。
【００８１】
識別子管理部２０１は、登録データ生成装置１００から入力される登録データを一意に特定する識別子を管理する。暗号文記憶部２０２は、識別子管理部２０１によって発行された識別子と、登録データ生成装置１００から受信した登録データを含む登録テンプレートとを記憶する。
【００８２】
図８を参照すると、第１データ照合要求装置３００Ａは、第１データ照合要求生成部３０１Ａと、秘密情報記憶部３０４Ａとから成る。
【００８３】
第１データ照合要求生成部３０１Ａは、照合対象の入力データおよび秘密情報記憶部３０４Ａに記憶されている秘密情報を入力とし、前記入力データに秘匿処理を施した第１データ照合要求を出力する。秘密情報記憶部３０４Ａは、登録データ生成装置１００から受信した秘密情報を記憶する。
【００８４】
図８に示されるように、第１データ照合判定装置４００Ａは、登録データ受信部４０１Ａと、第１データ照合要求受信部４０２Ａと、第１データ照合判定部４０３Ａと、第１照合結果生成部４０４Ａとから成る。
【００８５】
登録データ受信部４０１Ａは、記憶装置２００に記憶されている登録テンプレートを受信する。第１データ照合要求受信部４０２Ａは、第１データ照合要求装置３００Ａから第１データ照合要求を受信する。第１データ照合判定部４０３Ａは、登録テンプレートと、第１データ照合要求とを入力として、第１データ照合要求として秘匿されている照合データと暗号データとして秘匿されている登録データとの照合を行い、判定結果を出力する。
【００８６】
第１照合結果生成部４０４Ａは、判定結果と、登録テンプレートを入力として、照合要求を一意に特定するメッセージMと、判定結果に対応した登録テンプレートの一部または全部とを含む第１照合結果を出力する。ただし、第１照合結果は、少なくとも判定結果に対応した登録テンプレートを含むか、あるいは判定結果に対応した登録テンプレートが存在しないことを意味する記号やメッセージを含む。
【００８７】
図９を参照すると、第２データ照合要求装置５００は、第１照合結果受信部５０１と、復号部５０２と、第２データ照合要求生成部５０３とから成る。
【００８８】
第１照合結果受信部５０１は、第１データ照合判定装置４００Ａから第１照合結果を受信する。復号部５０２は、第１照合結果と、照合対象の入力データを入力とし、第１照合結果に含まれる暗号データの復号を行い、復号結果を出力する。第２データ照合要求生成部５０３は、復号結果と、第１照合結果に含まれるメッセージMを入力とし、第２データ照合要求を生成する。
【００８９】
図９に示されるように、第２データ照合判定装置６００は、登録データ受信部６０１と、第２データ照合要求受信部６０２と、第２データ照合判定部６０３と、第２照合結果生成部６０４とから成る。
【００９０】
登録データ受信部６０１は、記憶装置２００に記憶されている登録テンプレートを受信する。第２データ照合要求受信部６０２は、第２データ照合要求装置５００から第２データ照合要求を受信する。第２データ照合判定部６０３は、登録テンプレートと第２データ照合要求を入力として、第２データ照合判定を生成する。第２照合結果生成部６０４は、第２データ照合判定と、登録テンプレートとを入力として、第２照合結果を出力する。
【００９１】
［動作の説明］ 
次に、本発明の第２の実施形態の暗号文照合システムの動作に関して詳細に説明する。
【００９２】
本発明の第２の実施形態の暗号文照合システムの動作は、データ登録フェイズと、暗号文照合フェイズと、の二つのフェイズに大別される。ここで、データ登録フェイズは、登録データ生成装置１００に秘匿対象の入力データを入力し、秘密情報を生成し、秘匿対象の入力データを暗号化し、記憶装置２００に登録するフェイズである。暗号文照合フェイズは、第１データ照合要求装置３００Ａおよび第２データ照合要求装置５００に入力された照合対象の入力データを秘密情報によって暗号化し、その際に生成された第１データ照合要求および第２データ照合要求が、第１データ照合判定装置４００Ａおよび第２データ照合判定装置６００によって記憶装置２００内の登録データと近い（ハミング距離の小さい）平文となるものであるかを判定するフェイズである。以下、各フェイズにおける動作に関して詳細に説明する。
【００９３】
図１０を参照すると、データ登録フェイズにおいては、まず、はじめに登録データ生成装置１００の鍵生成部１０１にセキュリティパラメータが入力され、署名鍵および検証鍵が生成される（ステップＡ１）。次に、登録データ生成装置１００の秘密情報生成部１０２にセキュリティパラメータが入力され、秘密情報が生成される。生成された秘密情報は第１データ照合要求装置３００Ａの秘密情報記憶部３０４Ａに記憶される（ステップＡ２）。
【００９４】
次に、登録データ生成装置１００の暗号化部１０３に秘匿対象の入力データと前記署名鍵および検証鍵と、前記秘密情報が入力される（ステップＡ３）。次に、暗号化部１０３は、入力された入力データと、前記署名鍵と、前記秘密情報から、入力データを暗号化した暗号データを計算する（ステップＡ４）。次に、登録データ生成装置１００の登録データ生成部１０４は、前記暗号データと、前記検証鍵とから、登録データを生成し、記憶装置２００に送付する（ステップＡ５）。
【００９５】
次に、登録データを受信した記憶装置２００の識別子管理部２０１は、登録データに対して登録データを一意に特定するための識別子を発行し、登録データとともに暗号文記憶部２０２に記憶する（ステップＡ６）。
【００９６】
図１１を参照すると、暗号文照合フェイズにおいては、まず、第１データ照合要求装置３００Ａに照合対象の入力データが入力される（ステップＢ１）。次に、第１データ照合要求生成部３０１Ａは、入力データを、秘密情報記憶部３０４Ａに記憶された秘密情報を用いて暗号化した第１データ照合要求を生成し、第１データ照合判定装置４００Ａに送付する（ステップＢ２）。
【００９７】
次に、第１データ照合判定装置４００Ａの登録データ受信部４０１Ａは、記憶装置２００に記憶されている登録データおよびその識別子を受信する（ステップＢ３）。次に、第１データ照合要求受信部４０２Ａは、第１データ照合要求装置３００Ａから、第１データ照合要求を受信する（ステップＢ４）。
【００９８】
次に、第１データ照合判定部４０３Ａは、前記登録データおよびその識別子と、第１データ照合要求を入力として、第１データ照合要求として秘匿されている照合データと暗号データとして秘匿されている登録データとの照合を行い、判定結果を出力する（ステップＢ５）。次に、第１照合結果生成部４０４Ａは、判定結果を入力として、照合要求を一意に特定するメッセージMと、判定結果に対応した登録テンプレートの一部または全部とを含む第１照合結果を出力する（ステップＢ６）。ただし、第１照合結果は、少なくとも判定結果に対応した登録テンプレートを含むか、あるいは判定結果に対応した登録テンプレートが存在しないことを意味する記号やメッセージを含む。
【００９９】
図１２を参照して、次に、第２データ照合要求装置５００の第１照合結果受信部５０１は、第１照合結果を受信する（ステップＢ７）。ここで、第１照合結果が判定結果に対応した登録テンプレートが存在しないことを意味する記号やメッセージであった場合は、照合されなかったものとして停止する。そうでなかった場合、以下のステップに進む。次に、復号部５０２は、第１照合結果を入力とし、第１照合結果に含まれる暗号データの復号を行い、復号結果を出力する（ステップＢ８）。
【０１００】
次に、第２データ照合要求生成部５０３は、前記復号結果と、第１照合結果に含まれるメッセージMを入力とし、第２データ照合要求を生成し、第２データ照合判定装置６００に送付する（ステップＢ９）。
【０１０１】
次に、第２データ照合判定装置６００の登録データ受信部６０１は、記憶装置２００に記憶されている登録データおよび識別子を受信する（ステップＢ１０）。次に、第２データ照合要求受信部６０２は、前記第２データ照合要求を受信する（ステップＢ１１）。次に、第２データ照合判定部６０３は、前記第２データ照合要求と、前記登録データを入力として、第２データ照合判定を生成する（ステップＢ１２）。次に、第２照合結果生成部６０４は、前記第２データ照合判定と、前記識別子を入力として、第２照合結果を出力する（ステップＢ１３）。
【０１０２】
このように本第２の実施形態では、登録時と同じ秘密情報を照合時に用いない限り、２つの登録データ（あるいは照合要求データ）が近い入力データ（あるいは照合データ）のものかそうでないかの判定ができないことを保証できる。何故なら、署名鍵を取り出せるのは、秘密情報を知っている人のみであり、受理される検証鍵を生成できるのは、署名鍵を知る人のみであるからである。これにより、２つの登録データ（あるいは照合要求データ）が、同じ入力データ（あるいは照合データ）のものか、そうでないかを判定することを防止できる。
【０１０３】
なお、図６の登録データ生成装置１００、記憶装置２００、第１データ照合要求装置３００Ａ、第１データ照合判定装置４００Ａ、第２データ照合要求装置５００、および第２データ照合判定装置６００を一つのコンピュータシステムに実装してもよいし、あるいは各装置を単体として構成してもよい。あるいは、各装置１００、２００、３００Ａ、４００Ａ、５００、６００内の各部をそれぞれ１つの単体装置で構成してもよい。図６の各装置の各部の処理を、コンピュータで実行されるプログラムによって実現するようにしてもよい。
【実施例１】
【０１０４】
次に、本発明の第１の実施例について詳細に説明する。本第１の実施例は、本発明の第１の実施形態の実施例である。
【０１０５】
本発明の第１の実施例の暗号文照合システムの動作は、データ登録フェイズと、暗号文照合フェイズと、の二つのフェイズに大別される。
【０１０６】
図１３を参照して、データ登録フェイズにおいては、まず、はじめに登録データ生成装置１００の鍵生成部１０１にセキュリティパラメータkが入力され、秘密鍵xおよび検証鍵g^xが生成される（ステップＣ１）。ここでセキュリティパラメータkは秘密鍵の長さを決めるパラメータである。また、g^xはgのx乗を意味する。
【０１０７】
本第１の実施例では、検証鍵をg^xとするが、ほかにハッシュ関数Hを利用して、H(x)を用いてもよい。その他、検証鍵として、秘密鍵xの一意性を確認できるデータを利用しても構わない。
【０１０８】
次に登録データ生成装置１００の秘密情報生成部１０２は、セキュリティパラメータkを入力として、秘密情報Sを生成する。生成した秘密情報Sをデータ照合要求装置３００に送付し、秘密情報記憶部３０４に記憶する（ステップC２）。秘密情報Sの長さは、秘密鍵xのBCH誤り訂正符号化したデータの長さNと一致する。あるいは、疑似乱数生成器PRFを利用し、PRF(S)がNビットとしてもよい。この時の秘密情報Sの長さはセキュリティパラメータ長（kビット）以上とする。安全性のため、セキュリティパラメータkは８０以上の値であることが期待される。以降は簡単のため、秘密情報SがNビットの場合で説明するが、秘密情報SをPRF(S)と置き換えても明らかに動作する。また、データ照合要求装置３００の秘密情報記憶部３０４に記憶するデータはSであってもPRF(S)であってもよい。
【０１０９】
次に、登録データ生成装置１００の暗号化部１０３に秘匿対象の入力データzと前記秘密鍵xおよび検証鍵g^xと、秘密情報Sが入力される（ステップＣ３）。ここで、秘匿対象の入力データzはNビットのデータであるものとする。
【０１１０】
次に、暗号化部１０３は、入力された入力データzと、前記秘密鍵xと、秘密情報Sから、秘密鍵xをＢＣＨ誤り訂正符号化し、ENC(x)を生成する。次に、暗号化部１０３は、暗号データT[0]=z(+)ENC(x)(+)Sを生成する（ステップＣ４）。ここで、暗号化部１０３は、秘密鍵xの符号ENC(x)を生成しているが、代わりに秘密鍵xを生成するための種（シード）の符号を生成するのでもよい。安全性のため、シードは８０ビット程度あることが望ましい。
【０１１１】
次に、登録データ生成装置１００の登録データ生成部１０４は、前記暗号データT[0]と、前記検証鍵g^xとから、登録データT=(T[0], T[1]=g^x)を生成し、記憶装置２００に送付する（ステップＣ５）。
【０１１２】
次に、登録データを受信した記憶装置２００の識別子管理部２０１は、登録データTに対して登録データを一意に特定するための識別子IDを発行し、登録データとともに暗号文記憶部２０２に記憶する（ステップＣ６）。
【０１１３】
図１４を参照して、暗号文照合フェイズにおいては、まず、データ照合要求装置３００に照合対象の入力データz’が入力される（ステップＤ１）。
【０１１４】
次に、データ照合要求生成部３０１は、入力データz’ と秘密情報記憶部３０４に記憶された秘密情報Sを入力として、乱数RのＢＣＨ符号化データENC(R)を生成する。さらに、データ照合要求生成部３０１は、データ照合要求Q[0]=z’(+)ENC(R)(+)Sを生成し、データ照合判定装置４００に送付する（ステップＤ２）。
【０１１５】
次に、データ照合判定装置４００の登録データ受信部４０１は、記憶装置２００に記憶されている登録データおよびその識別子{(T_1, ID_1), (T_2,ID_2) …, (T_m, ID_m)}を受信する（ステップＤ３）。ここで、T_i=(T_i[0], T_i[1])は前記登録データ生成装置１００によって生成された登録データ（登録テンプレート）である。説明のため、m個の登録データが記憶装置２００に記憶されているものとし、それぞれ(T_i, ID_i)（iは1からm）と記す。
【０１１６】
次に、データ照合要求受信部４０２は、データ照合要求装置３００から、データ照合要求Q[0]を受信する（ステップＤ４）。
【０１１７】
次に、データ照合判定部４０３は、前記登録データおよびその識別子{(T_1, ID_1), (T_2,ID_2) …, (T_m, ID_m)}と、データ照合要求Q[0]を入力として、i=1,…,mに対し、
DEC(T_i[0](+)Q[0])              ・・・(式1)
を計算する。ここでDEC(x)はxのBCH復号を意味する。登録データT_iを生成する際に入力した秘匿対象の入力データzと、データ照合要求Q[0]を生成する際に入力された照合対象の入力データz’とが近い（ハミング距離の意味で）値であるとき、(式1)の結果はx(+)Rとなる。そうでないときは、復号不可能を意味する記号が出力される。データ照合判定部４０３は、結果が復号不可能でなかった登録データT_i[0]に対応する識別子ID_iの集合{ID_i}を判定結果として出力する(ステップＤ５)。
【０１１８】
次に、照合結果生成部４０４は、判定結果{ID_i}を入力として、判定結果{ID_i}に対応した{(DEC(T_i[0](+)Q[0]), T_i[1])}を照合結果として出力する（ステップＤ６）。ただし、すべてのi=1，…，mに対して、(式1)の結果が復号不可能であった場合、該当なしを意味する記号を照合結果として出力する。ここで照合結果は、下記第２の実施例に記載する通り、登録データT_i[0]としてもよい。その場合は、下記(式2)は第２の実施例に記載する(式2)と置き換える。
【０１１９】
次に、データ照合要求装置３００の照合結果受信部３０２は、照合結果として{(DEC(T_i[0](+)Q[0]), T_i[1])}を受信する（ステップＤ７）。ここで、照合結果が該当なしであった場合、照合対象の入力データz’に対応する暗号データは登録されていないものとして以降の動作を停止する。そうでなかった場合は以降のステップに進む。
【０１２０】
次に、データ復元部３０３は、照合結果{(DEC(T_i[0](+)Q[0]), T_i[1])}を入力とし、各iに対して、
DEC(T_i[0](+)Q[0])(+)R=x              ・・・(式2)
を計算する。照合結果{ DEC(T_i[0](+)Q[0])}には(式1)で復号不可能とならなかった要素が含まれているため、(式2)では復号不可能になることはない。
【０１２１】
次に、データ復元部３０３は、(式2)で得られた秘密鍵xを用いて、T_i[1]=g^xであることを確認する（ステップＤ８）。
【０１２２】
このように本第１の実施例では、登録時と同じ秘密情報Sを照合時に用いない限り、２つの登録データ（あるいは照合要求データ）が近い入力データ（あるいは照合データ）のものかそうでないかの判定ができないことを保証できる。何故なら、秘密鍵xを取り出せるのは、秘密情報Sを知っている人のみであり、受理される検証鍵g^xを生成できるのは、秘密鍵xを知る人のみであるからである。これにより、２つの登録データ（あるいは照合要求データ）が、同じ入力データ（あるいは照合データ）のものか、そうでないかを判定することを防止できる。
【実施例２】
【０１２３】
次に、本発明の第２の実施例について図面を参照して詳細に説明する。本第２の実施例は、本発明の第２の実施形態の実施例である。
【０１２４】
説明のために、まず、本第２の実施例で用いる「電子署名」について説明する。電子署名は（署名鍵生成，署名生成，署名検証）の３つのアルゴリズムから構成される。以下にそれぞれを説明する。
【０１２５】
・署名鍵生成アルゴリズム（SigKeyGen）は、セキュリティパラメータkを入力として、署名鍵sk，検証鍵vkを生成する確率的アルゴリズムであり、(sk, vk)←SigKeyGen(1^k)と記す。
【０１２６】
・署名生成アルゴリズム（Sign）は、署名鍵sk、署名対象メッセージMを入力として、Mに対する署名σを出力する確率的アルゴリズムであり、(σ，M)←Sign(sk, M)と記す。
【０１２７】
・署名検証アルゴリズム（Verify）は、検証鍵vk、署名σ、署名対象メッセージMを入力として、署名の検証結果  受理または不受理を出力する決定的アルゴリズムであり、{受理，不受理}←Verify(vk, σ, M)と記す。
【０１２８】
電子署名方式は、任意のメッセージM、署名鍵生成アルゴリズムSigKeyGen(1^k)によって生成された署名鍵sk、および検証鍵vkに対して、確率1で受理←Verify(vk, Sign(sk, M))となる。また、電子署名方式は、署名鍵skを知らない任意の攻撃者に対して、たとえ攻撃者が受理される署名とメッセージの組を複数個得ることができるとしても、受理される署名を生成することができない、という偽造不可能性を満たす。
【０１２９】
偽造不可能性を満たす電子署名としては、Schnorr署名、Cramer-Shoup署名などが知られている。本発明は、偽造不可能性を満たすならば署名方式の種類に依らず動作するため、一般の電子署名方式として説明する。
【０１３０】
次に、電子署名方式を用いた本発明の第２の実施例を説明する。本発明の第２の実施例の暗号文照合システムの動作は、データ登録フェイズと、暗号文照合フェイズと、の二つのフェイズに大別される。
【０１３１】
図１５を参照して、データ登録フェイズにおいては、まず、はじめに登録データ生成装置１００の鍵生成部１０１にセキュリティパラメータkが入力され、署名鍵生成アルゴリズムSigKeyGen(1^k)により署名鍵skおよび検証鍵vkが生成される（ステップＣ１）。ここで、セキュリティパラメータkは電子署名の署名鍵の長さを決めるパラメータである。
【０１３２】
次に登録データ生成装置１００の秘密情報生成部１０２にセキュリティパラメータkが入力され、秘密情報Sが生成される。生成された秘密情報Sは第１データ照合要求装置３００Ａに送付され、秘密情報記憶部３０４Ａに記憶される（ステップＣ２）。秘密情報Sの長さは、署名鍵skのBCH誤り訂正符号化したデータの長さNと一致する。あるいは、疑似乱数生成器PRFを利用し、PRF(S)がNビットとしてもよい。この時の秘密情報Sの長さはセキュリティパラメータ長（kビット）以上とする。安全性のため、セキュリティパラメータkは８０以上の値であることが期待される。以降は簡単のため、秘密情報SがNビットの場合で説明するが、SをPRF(S)と置き換えても明らかに動作する。
【０１３３】
次に、登録データ生成装置１００の暗号化部１０３に秘匿対象の入力データzと前記署名鍵skおよび検証鍵vkと、秘密情報Sが入力される（ステップＣ３）。ここで、秘匿対象となる入力データzはＮビットのデータであるものとする。
【０１３４】
次に、暗号化部１０３は、前記署名鍵skから、署名鍵skをＢＣＨ誤り訂正符号化して、ENC(sk)を生成する。次に、暗号化部１０３は、暗号データT[0]=z(+)ENC(sk)(+)Sを生成する（ステップＣ４）。ここで、暗号化部１０２は、署名鍵skの符号ENC(sk)を生成しているが、代わりに署名鍵skを生成するための種（シード）の符号を生成するのでもよい。安全性のため、シードは８０ビット程度あることが望ましい。
【０１３５】
次に、登録データ生成装置１００の登録データ生成部１０４は、前記暗号データT[0]と、前記検証鍵vkとから、登録データT=(T[0], T[1]=vk)を生成し、記憶装置２００に送付する（ステップＣ５）。
【０１３６】
次に、登録データを受信した記憶装置２００の識別子管理部２０１は、登録データTに対して登録データを一意に特定するための識別子IDを発行し、登録データとともに暗号文記憶部２０２に記憶する（ステップＣ６）。
【０１３７】
図１６を参照して、暗号文照合フェイズにおいては、まず、第１データ照合要求装置３００Ａに照合対象の入力データz’が入力される（ステップＤ１）。
【０１３８】
次に、第１データ照合要求生成部３０１Ａは、照合対象の入力データz’ と秘密情報記憶部３０４Ａに記憶された秘密情報Sを入力として、乱数RのＢＣＨ符号化データENC(R)を生成する。さらに、第１データ照合要求生成部３０１Ａは、第１データ照合要求Q[0]=z’(+)ENC(R)(+)Sを生成し、第１データ照合判定装置４００Ａに送付する（ステップＤ２）。
【０１３９】
次に、第１データ照合判定装置４００の登録データ受信部４０１Ａは、記憶装置２００に記憶されている登録データおよびその識別子{(T_1, ID_1), (T_2,ID_2) …, (T_m, ID_m)}を受信する（ステップＤ３）。ここで、T_i=(T_i[0], T_i[1])は前記登録データ生成装置１００によって生成された登録データ（登録テンプレート）である。説明のため、m個の登録データが記憶装置２００に記憶されているものとし、それぞれ(T_i, ID_i)（iは1からm）と記す。
【０１４０】
次に、第１データ照合要求受信部４０２Ａは、第１データ照合要求装置３００Ａから、第１データ照合要求Q[0]を受信する（ステップＤ４）。
【０１４１】
次に、第１データ照合判定部４０３Ａは、前記登録データおよびその識別子{(T_1, ID_1), (T_2,ID_2) …, (T_m, ID_m)}と、第１データ照合要求Q[0]を入力として、i=1,…,mに対し、
DEC(T_i[0](+)Q[0])              ・・・(式1)
を計算する。ここで、DEC(x)はxのBCH復号を意味する。登録データT_iを生成する際に入力した秘匿対象の入力データzと、第１データ照合要求Q[0]を生成する際に入力された照合対象の入力データz’とが近い（ハミング距離の意味で）値であるとき、(式1)の結果はsk(+)Rとなる。そうでないときは、復号不可能を意味する記号が出力される。第１データ照合判定部４０３Ａは、結果が復号不可能でなかった登録データT_i[0]に対応する識別子ID_iの集合{ID_i}を判定結果として出力する(ステップＤ５)。
【０１４２】
次に、第１照合結果生成部４０４Ａは、判定結果{ID_i}を入力として、照合要求を一意に特定するメッセージMをランダムに選び、メッセージMと判定結果{ID_i}に対応した登録データの集合{T_i[0]}を第１照合結果として出力する（ステップＤ６）。ただし、すべてのi=1，…，mに対して、(式1)の結果が復号不可能であった場合、第１照合結果生成部４０４Ａは、該当なしを意味する記号を第１照合結果として出力する。ここで、第１照合結果生成部４０４Ａは、第１照合結果として登録データT_i[0]を出力しているが、第１の実施例と同様に(式1)の演算結果DEC(T_i[0](+)Q[0])としてもよい。その場合は、下記(式2)は第１の実施例に記載した(式2)と同じものとなる。
【０１４３】
図１７を参照して、次に、第２データ照合要求装置５００の第１照合結果受信部５０１は、第１照合結果としてメッセージMと第１照合結果{T_i[0]}を受信する（ステップＤ７）。ここで、第１照合結果が該当なしであった場合、照合対象の入力データz’に対応する登録データは登録されていないものとして、以降の動作を停止する。そうでなかった場合は、以降のステップに進む。
【０１４４】
次に、復号部５０２は、第１照合結果{T_i[0]}を入力とし、各iに対して、
DEC(T_i[0](+)z’)=x’              ・・・(式2)
を計算する（ステップＤ８）。第１照合結果{T_i[0]}には(式1)で復号不可能とならなかった要素が含まれているため、(式2)では復号不可能になることはない。
【０１４５】
次に、第２データ照合要求生成部５０３は、前記復号結果x’と、第１照合結果に含まれるメッセージMを入力とし、署名生成Sign(M, x’)=σを行う。第２データ照合要求生成部５０３は、第２データ照合要求Q[1]=σを第２データ照合判定装置６００に送付する（ステップＤ９）。
【０１４６】
次に、第２データ照合判定装置６００の登録データ受信部６０１は、記憶装置２００に記憶されている登録データおよび識別子{(T_1, ID_1)，…，(T_m, ID_m)}を受信する（ステップＤ１０）。
【０１４７】
次に、第２データ照合要求受信部６０２は、前記第２データ照合要求Q[1]を受信する（ステップＤ１１）。
【０１４８】
次に、第２データ照合判定部６０３は、前記第２データ照合要求Q[1]と、前記登録データ{(T_1,ID_1), …, (T_m, ID_m)}を入力として、各i=1,…, mに対して
Verify(T_i[1], Q[1], M)
を計算する。第２データ照合判定部６０３は、結果が受理であったiの集合{i}を第２データ照合判定として出力する（ステップＤ１２）。ここで、本第２の実施例では、第２データ照合判定部６０３に登録テンプレート{(T_1,ID_1), …, (T_m, ID_m)}を入力しているが、第１データ照合結果に含まれる登録データのみを用いても構わない。
【０１４９】
次に、第２照合結果生成部６０４は、前記第２データ照合判定{i}と、前記登録データおよび識別子{(T_1,ID_1), …, (T_m, ID_m)}を入力として、第２データ照合判定{i}に含まれるiに対応する識別子ID_iの集合{ID_i}を第２照合結果として出力する（ステップＤ１３）。ここで、第２照合結果生成部６０４の入力を前記登録データおよび識別子{(T_1,ID_1), …, (T_m, ID_m)}としているが、第１データ照合結果に含まれる登録データのみを用いても構わない。
【０１５０】
このように本第２の実施例では、登録時と同じ秘密情報Sを照合時に用いない限り、２つの登録データ（あるいは照合要求データ）が近い入力データ（あるいは照合データ）のものかそうでないかの判定ができないことを保証できる。何故なら、署名鍵skを取り出せるのは、秘密情報Sを知っている人のみであり、受理される検証鍵vkを生成できるのは、署名鍵skを知る人のみであるからである。これにより、２つの登録データ（あるいは照合要求データ）が、同じ入力データ（あるいは照合データ）のものか、そうでないかを判定することを防止できる。
【実施例３】
【０１５１】
次に本発明の第３の実施例について説明する。本第３の実施例も、本発明の第２の実施形態の実施例である。
【０１５２】
第３の実施例では「公開鍵暗号」を用いるため、まず公開鍵暗号について説明する。
【０１５３】
公開鍵暗号は（鍵生成，暗号化，復号）の３つのアルゴリズムから構成される。以下にそれぞれを説明する。
【０１５４】
・鍵生成アルゴリズム（KeyGen）は、セキュリティパラメータkを入力として、秘密鍵sk，暗号化鍵pkを生成する確率的アルゴリズムであり、(sk,pk)←KeyGen(1^k)と記す。
【０１５５】
・暗号化アルゴリズム（Encrypt）は、公開鍵pk、暗号化対象メッセージMを入力として、Mに対する暗号文cipherを出力する確率的アルゴリズムであり、cipher←Encrypt(pk, M)と記す。
【０１５６】
・復号アルゴリズム（Decrypt）は、秘密鍵ｓk、暗号文cipherを入力として、平文M’を出力する決定的アルゴリズムであり、M’←Decrypt(sk, cipher)と記す。
【０１５７】
公開鍵暗号方式は、任意のメッセージM、鍵生成アルゴリズムKeyGen(1^k)によって生成された秘密鍵sk、および公開鍵pkに対して、確率1でM←Decrypt(sk, Encrypt(pk, M))となる。また、秘密鍵skを知らない任意の攻撃者に対して、たとえ攻撃者が任意の暗号文に対する平文を複数個得ることができるとしても、暗号化されているデータに関する情報を一切得ることができない、という性質（選択暗号文攻撃に対する識別不可能性）を満たす。
【０１５８】
選択暗号文攻撃に対する識別不可能性を満たす公開鍵暗号としては、Cramer-Shoup暗号などが知られている。本発明は、選択暗号文攻撃に対する識別不可能性を満たすならば公開鍵暗号方式の種類に依らず動作するため、一般の公開鍵暗号方式として説明する。
【０１５９】
次に、公開鍵暗号方式を用いた本発明の第３の実施例を説明する。本発明の第３の実施例の暗号文照合システムの動作は、データ登録フェイズと、暗号文照合フェイズと、の二つのフェイズに大別される。
【０１６０】
図１８を参照して、データ登録フェイズにおいては、まず、はじめに登録データ生成装置１００の鍵生成部１０１にセキュリティパラメータkが入力され、鍵生成アルゴリズムKeyGen(1^k)により秘密鍵skおよび公開鍵pkが生成される（ステップＣ１）。ここで、セキュリティパラメータkは公開鍵暗号の秘密鍵の長さを決めるパラメータである。
【０１６１】
次に登録データ生成装置１００の秘密情報生成部１０２にセキュリティパラメータkが入力され、秘密情報Sが生成される。生成された秘密情報Sは第１データ照合要求装置３００Ａに送付され、秘密情報記憶部３０４Ａに記憶される（ステップＣ２）。秘密情報Sの長さは、秘密鍵skのBCH誤り訂正符号化したデータの長さNと一致する。あるいは、疑似乱数生成器PRFを利用し、PRF(S)がNビットとしてもよい。この時の秘密情報Sの長さはセキュリティパラメータ長（kビット）以上とする。安全性のため、セキュリティパラメータkは８０以上の値であることが期待される。以降は簡単のため、秘密情報SがNビットの場合で説明するが、SをPRF(S)と置き換えても明らかに動作する。
【０１６２】
次に、登録データ生成装置１００の暗号化部１０３に秘匿対象の入力データzと前記秘密鍵skおよび公開鍵pkと前記秘密情報Sが入力される（ステップＣ３）。ここで、秘匿対象となる入力データzはNビットのデータであるものとする。
【０１６３】
次に、暗号化部１０３は、秘密鍵skをＢＣＨ誤り訂正符号化してENC(sk)を生成する。次に、暗号化部１０３は、暗号データT[0]=z(+)ENC(sk)(+)Sを生成する（ステップＣ４）。ここで、暗号化部１０３は、秘密鍵skの符号ENC(sk)を生成しているが、代わりに秘密鍵skを生成するための種（シード）の符号を生成するのでもよい。安全性のため、シードは８０ビット程度あることが望ましい。
【０１６４】
次に、登録データ生成装置１００の登録データ生成部１０４は、前記暗号データT[0]と、前記公開鍵pkとから、登録データT=(T[0], T[1]= pk)を生成し、記憶装置２００に送付する（ステップＣ５）。
【０１６５】
次に、登録データを受信した記憶装置２００の識別子管理部２０１は、登録データTに対して登録データを一意に特定するための識別子IDを発行し、登録データとともに暗号文記憶部２０２に記憶する（ステップＣ６）。
【０１６６】
図１９を参照して、暗号文照合フェイズにおいては、まず、第１データ照合要求装置３００Ａに照合対象の入力データz’が入力される（ステップＤ１）。
【０１６７】
次に、第１データ照合要求生成部３０１Ａは、入力データz’ と秘密情報記憶部３０４Ａに記憶された秘密情報Sを入力として、乱数RのＢＣＨ符号化データENC(R)を生成する。さらに、第１データ照合要求生成部３０１Ａは、第１データ照合要求Q[0]=z’(+)ENC(R)(+)Sを生成し、第１データ照合判定装置４００Ａに送付する（ステップＤ２）。
【０１６８】
次に、第１データ照合判定装置４００Ａの登録データ受信部４０１Ａは、記憶装置２００に記憶されている登録データおよびその識別子{(T_1, ID_1), (T_2,ID_2) …, (T_m, ID_m)}を受信する（ステップＤ３）。ここで、T_i=(T_i[0], T_i[1])は前記登録データ生成装置１００によって生成された登録データ（登録テンプレート）である。説明のため、m個の登録データが記憶装置２００に記憶されているものとし、それぞれ(T_i, ID_i)（iは1からm）と記す。
【０１６９】
次に、第１データ照合要求受信部４０２Ａは、第１データ照合要求装置３００Ａから、第１データ照合要求Q[0]を受信する（ステップＤ４）。
【０１７０】
次に、第１データ照合判定部４０３Ａは、前記登録データおよびその識別子{(T_1, ID_1), (T_2,ID_2) …, (T_m, ID_m)}と、第１データ照合要求Q[0]を入力として、i=1,…,mに対し、
DEC(T_i[0](+)Q[0])              ・・・(式1)
を計算する。ここで、DEC(x)はxのＢＣＨ復号を意味する。登録データT_iを生成する際に入力した秘匿対象の入力データzと、第１データ照合要求Q[0]を生成する際に入力された照合対象の入力データz’とが近い（ハミング距離の意味で）値であるとき、(式1)の結果はsk(+)Rとなる。そうでないときは、復号不可能を意味する記号が出力される。第１データ照合判定部４０３Ａは、結果が復号不可能でなかった登録データの暗号データT_i[0]に対応する識別子ID_iの集合{ID_i}を判定結果として出力する(ステップＤ５)。
【０１７１】
次に、第１照合結果生成部４０４Ａは、判定結果{ID_i}を入力として、照合要求を一意に特定するメッセージMをランダムに選び、メッセージMと判定結果{ID_i}に対応した登録データの公開鍵の集合{T_i[1]}を第1照合結果として出力する（ステップＤ６）。ただし、すべてのi=1，…，mに対して、(式1)の結果が復号不可能であった場合、該当なしを意味する記号を第１照合結果として出力する。ここで、第１照合結果生成部４０４Ａは、第1照合結果として登録データの公開鍵T_i[1]を出力しているが、第１の実施例と同様に(式1)の演算結果DEC(T_i[0](+)Q[0])としてもよい。その場合は、下記(式2)は第１の実施例に記載した(式2)と同じものとなる。
【０１７２】
図２０を参照して、次に、第２データ照合要求装置５００の第１照合結果受信部５０１は、第１照合結果としてメッセージMと第１照合結果{T_i[1]}とを受信する（ステップＤ７）。ここで、第１照合結果が該当なしであった場合、照合対象の入力データz’に対応する暗号データは登録されていないものとして、以降の動作を停止する。そうでなかった場合は、以降のステップに進む。
【０１７３】
次に、復号部５０２は、第１照合結果{T_i[1]}を入力とし、各iに対して、
DEC(T_i[1](+)z’)=x’              ・・・(式2)
を計算する（ステップＤ８）。第１照合結果{T_i[1]}には(式1)で復号不可能とならなかった要素が含まれているため、(式2)では復号不可能になることはない。
【０１７４】
次に、第２データ照合要求生成部５０３は、前記復号結果x’と、第１照合結果に含まれるメッセージMを入力とし、暗号化Encrypt(x’, M)=cipherを行う。第２データ照合要求生成部５０３は、第２データ照合要求Q[1]=cipherを第２データ照合判定装置６００に送付する（ステップＤ９）。
【０１７５】
次に、第２データ照合判定装置６００の登録データ受信部６０１は、記憶装置２００に記憶されている登録データおよび識別子{(T_1, ID_1)，…，(T_m, ID_m)}を受信する（ステップＤ１０）。
【０１７６】
次に、第２データ照合要求受信部６０２は、前記第２データ照合要求Q[1]を受信する（ステップＤ１１）。
【０１７７】
次に、第２データ照合判定部６０３は、前記第２データ照合要求Q[1]と、前記登録データ{(T_1,ID_1), …, (T_m, ID_m)}を入力として、各i=1,…, mに対して
Decrypt (T_i[1], Q[1])
を計算する。第２データ照合判定部６０３は、結果が受理であったiの集合{i}を第２データ照合判定として出力する（ステップＤ１２）。ここで、本第３の実施例では、第２データ照合判定部６０３に登録データ{(T_1,ID_1), …, (T_m, ID_m)}を入力しているが、第１データ照合結果{T_i[1]}に含まれる登録データのみを用いても構わない。
【０１７８】
次に、第２照合結果生成部６０４は、前記第２データ照合判定{i}と、前記登録データおよび識別子{(T_1,ID_1), …, (T_m, ID_m)}を入力として、第２データ照合判定{i}に含まれるiに対応する識別子ID_iの集合{ID_i}を第２照合結果として出力する（ステップＤ１３）。ここで、第２照合結果生成部６０４の入力を前記登録データおよび識別子{(T_1,ID_1), …, (T_m, ID_m)}としているが、第１データ照合結果{T_i[1]}に含まれる登録データのみを用いても構わない。
【０１７９】
このように第３の実施例では、登録時と同じ秘密情報Sを照合時に用いない限り、２つの登録データ（あるいは照合要求データ）が近い入力データ（あるいは照合データ）のものかそうでないかの判定ができないことを保証できる。何故なら、秘密鍵skを取り出せるのは、秘密情報Sを知っている人のみであり、受理される公開鍵pkを生成できるのは、秘密鍵skを知る人のみであるからである。これにより、２つの登録データ（あるいは照合要求データ）が、同じ入力データ（あるいは照合データ）のものか、そうでないかを判定することを防止できる。
【０１８０】
［他の実施例］
また、本発明は、第２の実施例と第３の実施例に記載したように電子署名や公開鍵暗号を用いる以外にも、鍵交換を行った後にメッセージ認証コード（MAC, Message Authentication Codes）を利用して確認を行う方法でもよい。それ以外にも照合要求者が得られたxが正しい値であることを照合処理側で確認できる方法であれば適用可能である。
【０１８１】
なお、本発明に記載した方法は、コンピュータに実行させることのできるプログラムとして、フレキシブルディスク、ハードディスクなどの磁気ディスク、ＣＤ-ＲＯＭ（compact disc read only memory）、ＤＶＤ（digital versatile disc）などの光ディスク、光磁気ディスク（ＭＯ(magneto-optical disc)）、半導体メモリなどの記録媒体に格納して頒布することもできる。
【０１８２】
また、この記録媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。
【０１８３】
また、記録媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。
【０１８４】
さらに、本発明における記録媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネットなどにより伝送されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。
【０１８５】
また、記録媒体は１つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記録媒体に含まれ、媒体構成は何れの構成であってもよい。
【０１８６】
本発明におけるコンピュータは、記録媒体に記憶されたプログラムに基づき各処理を実行するものであって、パソコンなどからなる装置、複数の装置がネットワーク接続されたシステムなどの何れの構成であってもよい。
【０１８７】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置を含み、プログラムによって本発明の機能を実現することが可能な機器、装置である。
【０１８８】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。また、構成要素を適宜組合せてもよい。
【０１８９】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１９０】
（付記１）
秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと検証鍵とから登録データを生成する登録データ生成部と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、
前記暗号データおよび前記登録データを使用せずに、乱数と前記秘密情報とを用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成部と、
前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力するデータ照合判定部と、
前記判定結果に対応した前記登録テンプレートを含むか、あるいは前記判定結果に対応した前記登録テンプレートが存在しないことを意味する記号やメッセージを含む照合結果を出力する照合結果生成部と、
前記判定結果に対応した前記登録テンプレートを含む照合結果を受信した場合、当該受信した照合結果からデータを復元して、復元結果を出力するデータ復元部と、
を含む、暗号文照合システム。
【０１９１】
（付記２）
セキュリティパラメータから、前記秘密鍵と前記検証鍵とを生成する鍵生成部と、
前記セキュリティパラメータから、前記秘密情報を生成する秘密情報生成部と、
を更に含む、付記１に記載の暗号文照合システム。
【０１９２】
（付記３）
前記暗号化部は、前記秘密鍵を誤り訂正符号化して生成された誤り訂正符号と、前記秘匿対象の入力データと、前記秘密情報との排他的論理和をとって、前記暗号データを計算し、
前記データ照合要求生成部は、前記照合対象の入力データと、前記乱数を誤り訂正符号化して得られる誤り訂正符号と、前記秘密情報との排他的論理和をとって、前記データ照合要求を生成する、
付記１又は２に記載の暗号文照合システム。
【０１９３】
（付記４）
前記データ照合判定部は、前記登録テンプレートに含まれる前記暗号データと前記データ照合要求との排他的論理和を誤り訂正復号して、前記判定結果を出力する、付記３に記載の暗号文照合システム。
【０１９４】
（付記５）
前記照合結果生成部は、前記判定結果に、当該判定結果に対応する前記登録テンプレートに含まれる前記検証鍵を付加したものを、前記照合結果として出力する、付記４に記載の暗号文照合システム。
【０１９５】
（付記６）
前記データ復元部は、前記照合結果に含まれる前記判定結果と前記乱数との排他的論理和を計算して、前記復元結果を得、前記検証鍵を用いて該復元結果を検証する、付記５に記載の暗号文照合システム。
【０１９６】
（付記７）
前記照合結果生成部は、前記判定結果に対応する前記登録テンプレートに含まれる前記暗号データを、前記照合結果として出力する、付記４に記載の暗号文照合システム。
【０１９７】
（付記８）
前記データ復元部は、前記照合結果と前記照合対象の入力データとの排他的論理和を誤り訂正復号して、前記復元結果を得る、付記７に記載の暗号文照合システム。
【０１９８】
（付記９）
署名鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと検証鍵とから登録データを生成する登録データ生成部と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、
乱数と前記秘密情報とを用いて照合対象の入力データを暗号化した第１データ照合要求を生成する第１データ照合要求生成部と、
前記記憶部に記憶された前記登録テンプレートと、前記第１データ照合要求とを照合して、判定結果を出力する第１データ照合判定部と、
ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第１照合結果として出力する第１照合結果生成部と、
前記第１照合結果を復号して、復号結果を出力する復号部と、
前記復号結果と前記第１照合結果に含まれる前記メッセージとから、第２データ照合要求を生成する第２データ照合要求生成部と、
前記第２データ照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第２データ照合判定を生成する第２データ照合判定部と、
前記第２データ照合判定に対応する前記登録データの識別子を、第２照合結果として出力する第２照合結果生成部と、
を含む、暗号文照合システム。
【０１９９】
（付記１０）
セキュリティパラメータから、前記署名鍵と前記検証鍵とを生成する鍵生成部と、
前記セキュリティパラメータから前記秘密情報を生成する秘密情報生成部と、
を更に含む、付記９に記載の暗号文照合システム。
【０２００】
（付記１１）
前記暗号化部は、前記署名鍵を誤り訂正符号化して生成された誤り訂正符号と、前記秘匿対象の入力データと、前記秘密情報との排他的論理和をとって、前記暗号データを計算し、
前記第１データ照合要求生成部は、前記照合対象の入力データと、前記乱数を誤り訂正符号化して得られる誤り訂正符号と、前記秘密情報との排他的論理和をとって、前記第１データ照合要求を生成する、
付記９又は１０に記載の暗号文照合システム。
【０２０１】
（付記１２）
前記第１データ照合判定部は、前記登録テンプレートの前記登録データに含まれる前記暗号データと前記第１データ照合要求との排他的論理和を誤り訂正復号して、結果が復号不可能でなかった前記暗号データに対応する識別子の集合を、前記判定結果として出力する、付記１１に記載の暗号文照合システム。
【０２０２】
（付記１３）
前記第１照合結果生成部は、前記ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの前記登録データに含まれる前記暗号データとの組み合わせを、前記第１照合結果として出力する、付記１２に記載の暗号文照合システム。
【０２０３】
（付記１４）
前記復号部は、前記第１照合結果に含まれる前記暗号データと前記照合対象の入力データとの排他的論理和を誤り訂正復号して、前記復号結果を得る、付記１３に記載の暗号文照合システム。
【０２０４】
（付記１５）
前記第１照合結果生成部は、前記ランダムに選んだメッセージと、前記判定結果との組み合わせを、前記第１照合結果として出力する、付記１２に記載の暗号文照合システム。
【０２０５】
（付記１６）
前記復号部は、前記第１照合結果に含まれる前記判定結果と前記乱数との排他的論理和を計算して、前記復号結果を得る、付記１５に記載の暗号文照合システム。
【０２０６】
（付記１７）
前記第２データ照合要求生成部は、前記復号結果と前記第１照合結果に含まれる前記メッセージとを署名生成して、前記第２データ照合要求を生成する、付記１２乃至１６のいずれか１項に記載の暗号文照合システム。
【０２０７】
（付記１８）
前記第２データ照合判定部は、前記第２データ照合要求と、前記メッセージと、前記記憶部に記録されている前記登録テンプレートの前記登録データとを署名検証して、結果が受理であった識別子の番号の集合を前記第２データ照合判定として生成する、付記１７に記載の暗号文照合システム。
【０２０８】
（付記１９）
前記第２照合結果生成部は、前記第２データ照合判定に対応する、前記登録テンプレートに対応する前記登録データの識別子を、前記第２照合結果として出力する、付記１８に記載の暗号文照合システム。
【０２０９】
（付記２０）
前記第２照合結果生成部は、前記第２データ照合判定に対応する、前記第１データ照合結果に含まれる前記登録データの識別子を、前記第２照合結果として出力する、付記１８に記載の暗号文照合システム。
【０２１０】
（付記２１）
秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと公開鍵とから登録データを生成する登録データ生成部と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、
乱数と前記秘密情報とを用いて照合対象の入力データを暗号化した第１データ照合要求を生成する第１データ照合要求生成部と、
前記記憶部に記憶された前記登録テンプレートと、前記第１データ照合要求とを照合して、判定結果を出力する第１データ照合判定部と、
ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第１照合結果として出力する第１照合結果生成部と、
前記第１照合結果を復号して、復号結果を出力する復号部と、
前記復号結果と前記第１照合結果に含まれる前記メッセージとから、第２データ照合要求を生成する第２データ照合要求生成部と、
前記第２データ照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第２データ照合判定を生成する第２データ照合判定部と、
前記第２データ照合判定に対応する前記登録データの識別子を、第２照合結果として出力する第２照合結果生成部と、
を含む、暗号文照合システム。
【０２１１】
（付記２２）
セキュリティパラメータから、前記秘密鍵と前記公開鍵とを生成する鍵生成部と、
前記セキュリティパラメータから前記秘密情報を生成する秘密情報生成部と、
を更に含む、付記２１に記載の暗号文照合システム。
【０２１２】
（付記２３）
前記暗号化部は、前記秘密鍵を誤り訂正符号化して生成された誤り訂正符号と、前記秘匿対象の入力データと、前記秘密情報との排他的論理和をとって、前記暗号データを計算し、
前記第１データ照合要求生成部は、前記照合対象の入力データと、前記乱数を誤り訂正符号化して得られる誤り訂正符号と、前記秘密情報との排他的論理和をとって、前記第１データ照合要求を生成する、
付記２１又は２２に記載の暗号文照合システム。
【０２１３】
（付記２４）
前記第１データ照合判定部は、前記登録テンプレートの前記登録データに含まれる前記暗号データと前記第１データ照合要求との排他的論理和を誤り訂正復号して、結果が復号不可能でなかった前記暗号データに対応する識別子の集合を、前記判定結果として出力する、付記２３に記載の暗号文照合システム。
【０２１４】
（付記２５）
前記第１照合結果生成部は、前記ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの前記登録データに含まれる前記公開鍵との組み合わせを、前記第１照合結果として出力する、付記２４に記載の暗号文照合システム。
【０２１５】
（付記２６）
前記復号部は、前記第１照合結果に含まれる前記公開鍵と前記照合対象の入力データとの排他的論理和を誤り訂正復号して、前記復号結果を得る、付記２５に記載の暗号文照合システム。
【０２１６】
（付記２７）
前記第１照合結果生成部は、前記ランダムに選んだメッセージと、前記判定結果との組み合わせを、前記第１照合結果として出力する、付記２４に記載の暗号化照合システム。
【０２１７】
（付記２８）
前記復号部は、前記第１照合結果に含まれる前記判定結果と前記乱数との排他的論理和を計算して、前記復号結果を得る、付記２７に記載の暗号文照合システム。
【０２１８】
（付記２９）
前記第２データ照合要求生成部は、前記復号結果と前記第１照合結果に含まれる前記メッセージとを暗号化して、前記第２照合要求を生成する、付記２４乃至２８のいずれか１項に記載の暗号文照合システム。
【０２１９】
（付記３０）
前記第２データ照合判定部は、前記第２照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとを復号して、結果が受理であった識別子の番号の集合を前記第２データ照合判定として生成する、付記２９に記載の暗号文照合システム。
【０２２０】
（付記３１）
前記第２照合結果生成部は、前記第２データ照合判定に対応する、前記登録テンプレートに対応する前記登録データの識別子を、前記第２照合結果として出力する、付記３０に記載の暗号文照合システム。
【０２２１】
（付記３２）
前記第２照合結果生成部は、前記第２データ照合判定に対応する、前記第１データ照合結果に含まれる前記登録データの識別子を、前記第２照合結果として出力する、付記３０に記載の暗号文照合システム。
【０２２２】
（付記３３）
付記１乃至３２のいずれか１項に記載の暗号文照合システムを備え、前記秘匿対象の入力データおよび前記照合対象の入力データが生体情報であり、前記秘匿対象の入力データと前記照合対象の入力データとが類似している否かを判定することによって生体認証を行うことを特徴とする生体認証システム。
【０２２３】
（付記３４）
第１のクライアントが、秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算し、前記暗号データと検証鍵とから登録データを生成し、サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶するデータ登録ステップと、
第２のクライアントが、前記暗号データおよび前記登録データを使用せずに、乱数と前記秘密情報とを用いて照合対象の入力データを暗号化したデータ照合要求を生成し、前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力し、前記判定結果に対応した前記登録テンプレートを含むか、あるいは前記判定結果に対応した前記登録テンプレートが存在しないことを意味する記号やメッセージを含む照合結果を出力し、前記第２のクライアントが、前記判定結果に対応した前記登録テンプレートを含む照合結果を受信した場合、当該受信した照合結果からデータを復元して、復元結果を出力する、暗号文照合ステップと、
を含む、暗号文照合方法。
【０２２４】
（付記３５）
第１のクライアントが、秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化ステップと、
前記第１のクライアントが、前記暗号データと検証鍵とから登録データを生成する登録データ生成ステップと、
サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶するステップと、
第２のクライアントが、乱数と前記秘密情報とを用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成ステップと、
前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力するデータ照合判定ステップと、
前記サーバが、前記判定結果に対応した前記登録テンプレートの一部または全部を含む照合結果を出力する照合結果生成ステップと、
前記第２のクライアントが、前記照合結果からデータを復元して、復元結果を出力するデータ復元ステップと、
を含む、暗号文照合方法。
【０２２５】
（付記３６）
第１のクライアントが、署名鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算し、前記暗号データと検証鍵とから登録データを生成し、サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する、データ登録ステップと、
第２のクライアントが、乱数と前記秘密情報とを用いて照合対象の入力データを暗号化した第１データ照合要求を生成し、前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記第１データ照合要求とを照合して、判定結果を出力し、ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第１照合結果として出力し、前記第２のクライアントが、前記第１照合結果を復号して、復号結果を出力し、前記復号結果と前記第１照合結果に含まれる前記メッセージとから、第２照合要求を生成し、前記サーバが、前記第２照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第２データ照合判定を生成し、前記第２データ照合判定に対応する前記登録データの識別子を、第２照合結果として出力する、暗号文照合ステップと、
を含む、暗号文照合方法。
【０２２６】
（付記３７）
第１のクライアントが、署名鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化ステップと、
前記第１のクライアントが、前記暗号データと検証鍵とから登録データを生成する登録データ生成ステップと、
サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶するステップと、
第２のクライアントが、乱数と前記秘密情報とを用いて照合対象の入力データを暗号化した第１データ照合要求を生成する第１データ照合要求生成ステップと、
前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記第１データ照合要求とを照合して、判定結果を出力する第１データ照合判定ステップと、
前記サーバが、ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第１照合結果として出力する第１照合結果生成ステップと、
前記第２のクライアントが、前記第１照合結果を復号して、復号結果を出力する復号ステップと、
前記第２のクライアントが、前記復号結果と前記第１照合結果に含まれる前記メッセージとから、第２照合要求を生成する第２データ照合要求生成ステップと、
前記サーバが、前記第２照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第２データ照合判定を生成する第２データ照合判定ステップと、
前記サーバが、前記第２データ照合判定に対応する前記登録データの識別子を、第２照合結果として出力する第２照合結果生成ステップと、
を含む、暗号文照合方法。
【０２２７】
（付記３８）
第１のクライアントが、秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算し、前記暗号データと公開鍵とから登録データを生成し、サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する、データ登録ステップと、
第２のクライアントが、乱数と前記秘密情報とを用いて照合対象の入力データを暗号化した第１データ照合要求を生成し、前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記第１データ照合要求とを照合して、判定結果を出力し、ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第１照合結果として出力し、前記第２のクライアントが、前記第１照合結果を復号して、復号結果を出力し、前記復号結果と前記第１照合結果に含まれる前記メッセージとから、第２照合要求を生成し、前記サーバが、前記第２照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第２データ照合判定を生成し、前記第２データ照合判定に対応する、前記登録データの識別子を、第２照合結果として出力する、暗号文照合ステップと、
を含む、暗号文照合方法。
【０２２８】
（付記３９）
第１のクライアントが、秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化ステップと、
前記第１のクライアントが、前記暗号データと公開鍵とから登録データを生成する登録データ生成ステップと、
サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶するステップと、
第２のクライアントが、乱数と前記秘密情報とを用いて照合対象の入力データを暗号化した第１データ照合要求を生成する第１データ照合要求生成ステップと、
前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記第１データ照合要求とを照合して、判定結果を出力する第１データ照合判定ステップと、
前記サーバが、ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第１照合結果として出力する第１照合結果生成ステップと、
前記第２のクライアントが、前記第１照合結果を復号して、復号結果を出力する復号ステップと、
前記第２のクライアントが、前記復号結果と前記第１照合結果に含まれる前記メッセージとから、第２照合要求を生成する第２データ照合要求生成ステップと、
前記サーバが、前記第２照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第２データ照合判定を生成する第２データ照合判定ステップと、
前記サーバが、前記第２データ照合判定に対応する前記登録データの識別子を、第２照合結果として出力する第２照合結果生成ステップと、
を含む、暗号文照合方法。
【０２２９】
（付記４０）
秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化処理と、
前記暗号データと検証鍵とから登録データを生成する登録データ生成処理と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する処理と、
前記暗号データおよび前記登録データを使用せずに、乱数と前記秘密情報とを用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成処理と、
前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力するデータ照合判定処理と、
前記判定結果に対応した前記登録テンプレートを含むか、あるいは前記判定結果に対応した前記登録テンプレートが存在しないことを意味する記号やメッセージを含む照合結果を出力する照合結果生成処理と、
前記判定結果に対応した前記登録テンプレートを含む照合結果を受信した場合、当該受信した照合結果からデータを復元して、復元結果を出力するデータ復元処理と、
をコンピュータに実行させる、暗号文照合プログラム。
【０２３０】
（付記４１）
署名鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化処理と、
前記暗号データと検証鍵とから登録データを生成する登録データ生成処理と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する処理と、
乱数と前記秘密情報とを用いて照合対象の入力データを暗号化した第１データ照合要求を生成する第１データ照合要求生成処理と、
前記記憶部に記憶された前記登録テンプレートと、前記第１データ照合要求とを照合して、判定結果を出力する第１データ照合判定処理と、
ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第１照合結果として出力する第１照合結果生成処理と、
前記第１照合結果を復号して、復号結果を出力する復号処理と、
前記復号結果と前記第１照合結果に含まれる前記メッセージとから、第２照合要求を生成する第２データ照合要求生成処理と、
前記第２照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第２データ照合判定を生成する第２データ照合判定処理と、
前記第２データ照合判定に対応する前記登録データの識別子を、第２照合結果として出力する第２照合結果生成処理と、
をコンピュータに実行させる、暗号文照合プログラム。
【０２３１】
（付記４２）
秘密鍵と秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化処理と、
前記暗号データと公開鍵とから登録データを生成する登録データ生成処理と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する処理と、
乱数と前記秘密情報とを用いて照合対象の入力データを暗号化した第１データ照合要求を生成する第１データ照合要求生成処理と、
前記記憶部に記憶された前記登録テンプレートと、前記第１データ照合要求とを照合して、判定結果を出力する第１データ照合判定処理と、
ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第１照合結果として出力する第１照合結果生成処理と、
前記第１照合結果を復号して、復号結果を出力する復号処理と、
前記復号結果と前記第１照合結果に含まれる前記メッセージとから、第２照合要求を生成する第２データ照合要求生成処理と、
前記第２照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第２データ照合判定を生成する第２データ照合判定処理と、
前記第２データ照合判定に対応する前記登録データの識別子を、第２照合結果として出力する第２照合結果生成処理と、
をコンピュータに実行させる、暗号文照合プログラム。
【０２３２】
（付記４３）
セキュリティパラメータから、秘密鍵と検証鍵とを生成する鍵生成部と、
前記セキュリティパラメータから秘密情報を生成する秘密情報生成部と、
前記秘密鍵と前記秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと前記検証鍵とから登録データを生成する登録データ生成部と、
を有する登録データ生成装置。
【０２３３】
（付記４４）
付記４３に記載の登録データ生成装置で生成された前記登録データを入力として、前記登録データを一意に特定する識別子を管理する識別子管理部と、
前記識別子と前記登録データを含む登録テンプレートを記憶する記憶部と、
を有する記憶装置。
【０２３４】
（付記４５）
秘密情報を記憶する秘密情報記憶部と、
暗号データおよび登録データを使用せずに、乱数と前記秘密情報とを用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成部と、
判定結果に対応した登録テンプレートを含むか、あるいは前記判定結果に対応した前記登録テンプレートが存在しないことを意味する記号やメッセージを含む照合結果を受信する照合結果受信部と、
前記照合結果受信部が、前記判定結果に対応した前記登録点プレーを含む照合結果を受信した場合、当該受信した照合結果からデータを復元して、復元結果を出力するデータ復元部と、
を有するデータ照合要求装置。
【０２３５】
（付記４６）
付記４４に記載の記憶装置に記憶されている前記登録テンプレートを受信する登録データ受信部と、
付記４５に記載のデータ照合要求装置から前記データ照合要求を受信するデータ照合要求受信部と、
前記登録テンプレートと前記データ照合要求とを照合して、判定結果を出力するデータ照合判定部と、
前記判定結果に対応した前記登録テンプレートを含むか、あるいは前記判定結果に対応した前記登録テンプレートが存在しないことを意味する記号やメッセージを含む照合結果を出力する照合結果生成部と、
を有するデータ照合判定装置。
【０２３６】
（付記４７）
セキュリティパラメータから、署名鍵と検証鍵とを生成する鍵生成部と、
前記セキュリティパラメータから秘密情報を生成する秘密情報生成部と、
前記署名鍵と前記秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと前記検証鍵とから登録データを生成する登録データ生成部と、
を有する登録データ生成装置。
【０２３７】
（付記４８）
付記４７に記載の登録データ生成装置で生成された前記登録データを入力として、前記登録データを一意に特定する識別子を管理する識別子管理部と、
前記識別子と前記登録データを含む登録テンプレートを記憶する記憶部と、
を有する記憶装置。
【０２３８】
（付記４９）
秘密情報を記憶する秘密情報記憶部と、
乱数と前記秘密情報とを用いて照合対象の入力データを暗号化した第１データ照合要求を生成する第１データ照合要求生成部と、
第１照合結果を受信する第１照合結果受信部と、
前記第１照合結果を復号して、復号結果を出力する復号部と、
前記復号結果と前記第１照合結果に含まれるメッセージとから、第２データ照合要求を生成する第２データ照合要求生成部と、
を有するデータ照合要求装置。
【０２３９】
（付記５０）
付記４８に記載の記憶装置から前記登録テンプレートを受信する登録データ受信部と、
付記４９に記載のデータ照合要求装置から前記第１データ照合要求を受信する第１データ照合要求受信部と、
前記登録テンプレートと前記第１データ照合要求とを照合して、判定結果を出力する第１データ照合判定部と、
ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第１照合結果として出力する第１照合結果生成部と、
を有する第１データ照合判定装置。
【０２４０】
（付記５１）
付記４８に記載の記憶装置から前記登録テンプレートを受信する登録データ受信部と、
付記４９に記載のデータ照合要求装置から前記第２データ照合要求を受信する第２データ照合要求受信部と、
前記第２データ照合要求と前記登録テンプレートの前記登録データとから、第２データ照合判定を生成する第２データ照合判定部と、
前記第２データ照合判定に対応する前記登録データの識別子を、第２照合結果として出力する第２照合結果生成部と、
を有する第２データ照合判定装置。
【０２４１】
（付記５２）
セキュリティパラメータから、秘密鍵と公開鍵とを生成する鍵生成部と、
前記セキュリティパラメータから秘密情報を生成する秘密情報生成部と、
前記秘密鍵と前記秘密情報とを用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと前記公開鍵とから登録データを生成する登録データ生成部と、
を有する登録データ生成装置。
【０２４２】
（付記５３）
付記５２に記載の登録データ生成装置で生成された前記登録データを入力として、前記登録データを一意に特定する識別子を管理する識別子管理部と、
前記識別子と前記登録データを含む登録テンプレートを記憶する記憶部と、
を有する記憶装置。
【０２４３】
（付記５４）
秘密情報を記憶する秘密情報記憶部と、
乱数と前記秘密情報とを用いて照合対象の入力データを暗号化した第１データ照合要求を生成する第１データ照合要求生成部と、
第１照合結果を受信する第１照合結果受信部と、
前記第１照合結果を復号して、復号結果を出力する復号部と、
前記復号結果と前記第１照合結果に含まれるメッセージとから、第２データ照合要求を生成する第２データ照合要求生成部と、
を有するデータ照合要求装置。
【０２４４】
（付記５５）
付記５３に記載の記憶装置から前記登録テンプレートを受信する登録データ受信部と、
付記５４に記載のデータ照合要求装置から前記第１データ照合要求を受信する第１データ照合要求受信部と、
前記登録テンプレートと前記第１データ照合要求とを照合して、判定結果を出力する第１データ照合判定部と、
ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第１照合結果として出力する第１照合結果生成部と、
を有する第１データ照合判定装置。
【０２４５】
（付記５６）
付記５３に記載の記憶装置から前記登録テンプレートを受信する登録データ受信部と、
付記５４に記載のデータ照合要求装置から前記第２データ照合要求を受信する第２データ照合要求受信部と、
前記第２データ照合要求と前記登録テンプレートの前記登録データとから、第２データ照合判定を生成する第２データ照合判定部と、
前記第２データ照合判定に対応する前記登録データの識別子を、第２照合結果として出力する第２照合結果生成部と、
を有する第２データ照合判定装置。
【０２４６】
（付記５７）
登録データ生成装置と、記憶装置と、データ照合要求装置と、データ照合判定装置とを備える暗号文照合システムであって、
前記登録データ生成装置は、
セキュリティパラメータを入力とし、秘密鍵および検証鍵を出力する鍵生成部と、
前記セキュリティパラメータを入力とし、秘密情報を生成する秘密情報生成部と、
秘匿対象の固定長の入力データと、前記秘密鍵と、前記秘密情報とを入力として、第１の平文を第１の鍵および第１の秘密情報で暗号化した第１の暗号文と、第２の平文を第２の鍵および第２の秘密情報で暗号化した第２の暗号文のビットごとの排他的論理和が、前記第１の平文と前記第２の平文のビットごとの排他的論理和を、前記第１の鍵と前記第２の鍵のビットごとの排他的論理和および前記第１の秘密情報と前記第２の秘密情報のビットごとの排他的論理和で暗号化した暗号文となるような、暗号文を出力する暗号化部と、
前記検証鍵および前記秘密鍵と、前記暗号文を入力として、前記暗号化部が出力する暗号データに対応する前記秘匿対象の入力データが、前記データ照合要求装置に入力された照合対象の入力データとのハミング距離が一定数以内であることを判断するためのデータである登録データを出力する登録データ生成部とを備え、
前記記憶装置は、
前記登録データ生成装置が出力した登録データを入力として、前記登録データを一意に特定する識別子を管理する識別子管理部と、
前記識別子と、前記登録データ生成装置が出力した登録データとを含む登録テンプレートを記憶する記憶部とを備え、
前記データ照合要求装置は、
前記登録データ生成装置の前記秘密情報生成部が生成した前記秘密情報を記憶する秘密情報記憶部と、
前記照合対象の入力データと前記秘密情報と乱数とを入力とし、前記暗号データおよび前記登録データを使用せずに、前記照合対象の入力データに秘匿処理を施したデータ照合要求を出力するデータ照合要求生成部と、
前記データ照合要求に対応して前記データ照合判定装置が生成した照合結果であって、判定結果に対応した前記登録テンプレートを含むか、あるいは前記判定結果に対応した前記登録テンプレートが存在しないことを意味する記号やメッセージを含む、前記照合結果を受信する照合結果受信部と、
前記照合結果受信部が、前記判定結果に対応した前記登録テンプレートを含む照合結果を受信した場合、当該受信した照合結果を入力として、秘密鍵を復元するデータ復元部とを備え、
前記データ照合判定装置は、
前記記憶装置に記憶されている登録テンプレートを受信する登録データ受信部と、
前記データ照合要求装置から前記データ照合要求を受信するデータ照合要求受信部と、
前記登録テンプレートと、前記データ照合要求を入力として、前記データ照合要求として秘匿されている照合データと前記暗号データとして秘匿されている登録データとの照合を行い、前記判定結果を出力するデータ照合判定部と、
前記判定結果と、前記登録テンプレートを入力として、該判定結果に対応した登録テンプレートを含むか、または該判定結果に対応した登録テンプレートが存在しないことを意味する記号を含む前記照合結果を出力する照合結果生成部とを備える
ことを特徴とした暗号文照合システム。
【０２４７】
（付記５８） 
付記５７に記載の暗号文照合システムであって、前記登録データ生成装置の前記暗号化部は、前記秘密鍵と平文Zと前記秘密情報に対して、前記秘密鍵を線形性を有する誤り訂正符号で符号化し、その符号化結果である符号語と、前記平文Zと前記秘密情報のベクトル上の和を計算した結果を、前記暗号文として出力することを特徴とした暗号文照合システム。
【０２４８】
（付記５９）
付記５７に記載の暗号文照合システムであって、前記登録データ生成装置の前記暗号化部は、前記秘密鍵と平文Zと前記秘密情報に対して、前記秘密鍵を生成する際に利用した種seedを線形性を有する誤り訂正符号で符号化し、その符号化結果である符号語と、前記平文Zと前記秘密情報とのベクトル上の和を計算した結果を、前記暗号文として出力することを特徴とした暗号文照合システム。
【０２４９】
（付記６０） 
登録データ生成装置と、記憶装置と、第１データ照合要求装置と、第１データ照合判定装置と、第２データ照合要求装置と、第２データ照合判定装置とを備える暗号文照合システムであって、
前記登録データ生成装置は、
セキュリティパラメータを入力とし、署名の検証鍵および署名鍵を出力する鍵生成部と、
前記セキュリティパラメータを入力とし、秘密情報を生成する秘密情報生成部と、
秘匿対象の固定長の入力データと、前記署名鍵と、前記秘密情報とを入力として、第１の平文を第１の鍵および第１の秘密情報で暗号化した第１の暗号文と、第２の平文を第２の鍵および第２の秘密情報で暗号化した第２の暗号文のビットごとの排他的論理和が、前記第１の平文と前記第２の平文のビットごとの排他的論理和を、前記第１の鍵と前記第２の鍵のビットごとの排他的論理和および前記第１の秘密情報と前記第２の秘密情報のビットごとの排他的論理和で暗号化した暗号文となるような、暗号文を出力する暗号化部と、
前記検証鍵および前記署名鍵と、前記暗号文を入力として、前記暗号化部が出力する暗号データに対応する前記秘匿対象の入力データが、前記第１データ照合要求装置および前記第２データ照合要求装置に入力された照合対象の入力データとのハミング距離が一定数以内であることを判断するためのデータである登録データを出力する登録データ生成部とを備え、
前記記憶装置は、
前記登録データ生成装置が出力した登録データを入力として、前記登録データを一意に特定する識別子を管理する識別子管理部と、
前記識別子と、前記登録データ生成装置が出力した登録データを含む登録テンプレートを記憶する記憶部とを備え、
前記第１データ照合要求装置は、
前記登録データ生成装置の前記秘密情報生成部が生成した前記秘密情報を記憶する秘密情報記憶部と、
前記照合対象の入力データと前記秘密情報とを入力とし、前記照合対象の入力データに秘匿処理を施した第１データ照合要求を出力する第１データ照合要求生成部を備え、
前記第１データ照合判定装置は、
前記記憶装置に記憶されている登録テンプレートを受信する登録データ受信部と、
前記第１データ照合要求装置から前記第１データ照合要求を受信する第１データ照合要求受信部と、
前記登録テンプレートと、前記第１データ照合要求を入力として、前記第１データ照合要求として秘匿されている照合データと前記暗号データとして秘匿されている登録データとの照合を行い、判定結果を出力する第１データ照合判定部と、
前記判定結果と、前記登録テンプレートを入力として、照合要求を一意に特定するメッセージMと、前記判定結果に対応した登録テンプレートの一部または全部、または前記判定結果に対応した登録テンプレートが存在しないことを意味する記号を含む第１照合結果を出力する第１照合結果生成部とを備え、
前記第２データ照合要求装置は、
前記第１データ照合判定装置から前記第１照合結果を受信する第１照合結果受信部と、
前記第１照合結果と、前記照合対象の入力データを入力とし、前記第１照合結果に含まれる暗号データの復号を行い、復号結果を出力する復号部と、
前記復号結果と、前記第１照合結果に含まれるメッセージMを入力とし、第２照合要求を生成する第２データ照合要求生成部とを備え、
前記第２データ照合判定装置は、
前記記憶装置に記憶されている登録テンプレートを受信する登録データ受信部と、
前記第２データ照合要求装置から前記第２照合要求を受信する第２データ照合要求受信部と、
前記登録テンプレートと前記第２照合要求を入力として、第２データ照合判定を生成する第２データ照合判定部と、
前記第２データ照合判定と、前記登録テンプレートを入力として、第２照合結果を出力する第２照合結果生成部とを備える
ことを特徴とした暗号文照合システム。
【０２５０】
（付記６１） 
付記６０に記載の暗号文照合システムであって、前記登録データ生成装置の前記暗号化部は、前記署名鍵と平文Zと前記秘密情報に対して、前記署名鍵を線形性を有する誤り訂正符号で符号化し、その符号化結果である符号語と、前記平文Zと前記秘密情報とのベクトル上の和を計算した結果を、前記暗号文として出力することを特徴とした暗号文照合システム。
【０２５１】
（付記６２）
付記６０に記載の暗号文照合システムであって、前記登録データ生成装置の前記暗号化部は、前記署名鍵と平文Zと前記秘密情報に対して、前記署名鍵を生成する際に利用した種seedを線形性を有する誤り訂正符号で符号化し、その符号化結果である符号語と、前記平文Zと前記秘密情報とのベクトル上の和を計算した結果を、前記暗号文として出力することを特徴とした暗号文照合システム。
【０２５２】
（付記６３） 
付記６１又は６２に記載の暗号文照合システムであって、
前記第１照合結果は、前記署名鍵の符号化結果である符号語と、前記平文Zとのベクトル上の和を計算した結果と、毎回異なる値である可能性の高いメッセージ nonceを含み、
前記第２データ照合要求は、前記署名鍵を用いて生成した前記メッセージ nonce に対する署名を含む、
ことを特徴とした暗号文照合システム。
【０２５３】
（付記６４）
付記６１又は６２に記載の暗号文照合システムであって、
前記第１照合結果は、前記署名鍵の符号化結果である符号語と、前記平文Zとのベクトル上の和を計算した結果と、毎回異なる値である可能性の高いメッセージ nonceを前記検証鍵を用いて暗号化した暗号文を含み、
前記第２データ照合要求は、前記署名鍵を用いて前記暗号文を復号した結果を含む、
ことを特徴とした暗号文照合システム。
【産業上の利用可能性】
【０２５４】
本発明の活用例として、生体情報を保護した認証が挙げられる。データ登録フェイズにおける秘匿対象の入力データと、暗号文照合フェイズにおける照合対象の入力データを、指紋や静脈などから取得した生体情報とする。このことで、生体情報を秘匿（暗号化）したまま、記憶装置に格納された暗号化された生体データと、データ照合要求装置（第１データ照合要求装置）から送出された暗号化された生体データが同一人物から採取したものであるか否かを、二つの入力データのハミング距離が一定数以下となるかどうかにより判定することが可能となり、認証を行うことが可能となる。生体情報は、常に安定して同一のデータが取得できるわけではないが、同じ人物から取得されるデータが類似している（ハミング距離が小さいデータが取得できる）と仮定できるため、本発明の生体認証への活用は産業上有用であると考えられる。
【０２５５】
この出願は、２０１５年２月２４日に出願された日本出願特願２０１５−０３４１４５号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０２５６】
１００    登録データ生成装置
１０１    鍵生成部
１０２    秘密情報生成部
１０３    暗号化部
１０４    登録データ生成部
２００    記憶装置
２０１    識別子管理部
２０２    暗号文記憶部
３００    データ照合要求装置
３００Ａ    第１データ照合要求装置
３０１    データ照合要求生成部
３０１Ａ    第１データ照合要求生成部
３０２    照合結果受信部
３０３    データ復元部
３０４    秘密情報記憶部
３０４Ａ    秘密情報記憶部
４００    データ照合判定装置
４００Ａ    第１データ照合判定装置
４０１    登録データ受信部
４０１Ａ    登録データ受信部
４０２    データ照合要求受信部
４０２Ａ    第１データ照合要求受信部
４０３    データ照合判定部
４０３Ａ    第１データ照合判定部
４０４    照合結果生成部
４０４Ａ    第１照合結果生成部
５００    第２データ照合要求装置
５０１    第１照合結果受信部
５０２    復号部
５０３    第２データ照合要求生成部
６００    第２データ照合判定装置
６０１    登録データ受信部
６０２    第２データ照合要求受信部
６０３    第２データ照合判定部
６０４    第２照合結果生成部
【図１】
2020144395.tif 000003
【図２】
2020144395.tif 000004
【図３】
2020144395.tif 000005
【図４】
2020144395.tif 000006
【図５】
2020144395.tif 000007
【図６】
2020144395.tif 000008
【図７】
2020144395.tif 000009
【図８】
2020144395.tif 000010
【図９】
2020144395.tif 000011
【図１０】
2020144395.tif 000012
【図１１】
2020144395.tif 000013
【図１２】
2020144395.tif 000014
【図１３】
2020144395.tif 000015
【図１４】
2020144395.tif 000016
【図１５】
2020144395.tif 000017
【図１６】
2020144395.tif 000018
【図１７】
2020144395.tif 000019
【図１８】
2020144395.tif 000020
【図１９】
2020144395.tif 000021
【図２０】
2020144395.tif 000022