(57)【特許請求の範囲】
【請求項１】
暗号鍵、及び、第１数値列に含まれる数値に基づいて、前記第１数値列に含まれる数値が第１乱数に基づいて変換された値が、前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第１数値列を作成し、前記第１乱数が暗号化された暗号化乱数を算出し、前記第１数値列の大きさを表す第１サイズが前記第１乱数に基づいて変換された値である第１データが、前記暗号鍵を用いて暗号化された値を表す暗号化第１データを算出する第１算出手段と、
第２数値列、前記暗号化乱数、及び、前記暗号化第１数値列に基づいて、前記第１数値列及び前記第２数値列が類似している程度を表す値及び前記第１サイズから算出される第２指標が第１乱数に基づいて変換された値である第２データが暗号化された暗号文を表す暗号化第２データを算出する暗号化第２データ手段と
を備える指標算出システム。
【請求項２】
請求項１に記載の指標算出システムであって、
複数の平文の演算結果が暗号化された暗号文を、各前記平文が暗号化された暗号文に基づいて算出可能な準同型性に従い、閾値に基づく数値の範囲に含まれている第１値と、前記暗号化乱数と、前記暗号化第１データとに基づき、前記第１値が前記第１乱数に基づいて変換された値と、前記第１データとの前記準同型性に従う演算結果である第２値が前記暗号鍵を用いて暗号化された暗号文を算出し、算出した前記第２値が暗号化された前記暗号文を含む暗号化集合を作成する暗号化集合手段
をさらに備え、
前記第２指標が、前記第１数値列及び前記第２数値列が類似している程度を表す値と、前記第１サイズとに基づき、前記準同型性に従い算出される演算結果を表す
指標算出システム。
【請求項３】
請求項１に記載の指標算出システムであって、
閾値に基づく数値の範囲に含まれている第１値に関して、前記暗号化乱数と、前記暗号化第２データとに基づき、準同型性に従い、前記第１値が前記第１乱数に基づいて変換された値と、前記第２データとの前記準同型性に従う演算結果である第２値が前記暗号鍵を用いて暗号化された暗号文を算出し、算出した前記第２値が暗号化された前記暗号文を含む暗号化集合を作成する暗号化集合手段
をさらに備え、
前記第２指標が、前記第１数値列及び前記第２数値列が類似している程度を表す値と、前記第１サイズとに基づき、前記準同型性に従い算出される演算結果を表す
指標算出システム。
【請求項４】
第２乱数と前記第２値とに基づき、前記準同型性に従い算出される演算結果を表す第３値の暗号文を、前記第２乱数と、前記暗号化集合に含まれている前記暗号文とに基づき、前記準同型性に従い算出し、算出した前記暗号文を含む暗号化参照情報と、前記第２乱数を含む乱数情報とを作成する暗号化参照情報手段
をさらに備える請求項２または請求項３に記載の指標算出システム。
【請求項５】
前記第３値と、前記第１データまたは前記第２データとに基づき、前記準同型性に従い算出される演算結果を表す第４値の暗号文を、前記暗号化参照情報に含まれている前記第３値に関する前記暗号文と、前記暗号化第１データとに基づき、前記準同型性に従い算出し、算出した前記第４値の暗号文を含む検証データを作成する検証データ生成手段
をさらに備える請求項４に記載の指標算出システム。
【請求項６】
前記乱数情報に含まれている前記第２乱数に、所定の関数を適用することによって値を算出し、算出した値を含む検証情報を作成する検証情報手段
をさらに備える請求項５に記載の指標算出システム。
【請求項７】
請求項６に記載の指標算出システムと、
前記検証データに含まれている前記第４値の暗号文を復号し、算出された値に前記所定の関数を適用することによって算出される値と、前記検証情報に含まれている値とが一致するか否かに基づいて、前記第１数値列と前記第２数値列とが類似または一致しているか否かを判定する判定手段と
を備える照合システム。
【請求項８】
演算装置と記憶手段とを有するコンピュータにおける前記演算装置が、
暗号鍵、及び、第１数値列に含まれる数値に基づいて、前記第１数値列に含まれる数値が第１乱数に基づいて変換された値が、前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第１数値列を作成し、作成した前記暗号化第１数列を前記記憶手段に格納し、前記第１乱数が暗号化された暗号化乱数を算出し、前記第１数値列の大きさを表す第１サイズが前記第１乱数に基づいて変換された値である第１データが、前記暗号鍵を用いて暗号化された値を表す暗号化第１データを算出し、
前記記憶手段から前記暗号化第１数列を読み取り、第２数値列、前記暗号化乱数、及び、読み取った前記暗号化第１数値列に基づいて、前記第１数値列及び前記第２数値列が類似している程度を表す値及び前記第１サイズから算出される第２指標が第１乱数に基づいて変換された値である第２データが暗号化された暗号文を表す暗号化第２データを算出する
指標算出方法。
【請求項９】
演算装置と記憶手段とを有するコンピュータに対するプログラムであって、
暗号鍵、及び、第１数値列に含まれる数値に基づいて、前記第１数値列に含まれる数値が第１乱数に基づいて変換された値が、前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第１数値列を作成し、作成した前記暗号化第１数列を前記記憶手段に格納し、前記第１乱数が暗号化された暗号化乱数を算出し、前記第１数値列の大きさを表す第１サイズが前記第１乱数に基づいて変換された値である第１データが、前記暗号鍵を用いて暗号化された値を表す暗号化第１データを算出する第１指標算出機能と、
前記記憶手段から前記暗号化第１数列を読み取り、第２数値列、前記暗号化乱数、及び、読み取った前記暗号化第１数値列に基づいて、前記第１数値列及び前記第２数値列が類似している程度を表す値及び前記第１サイズから算出される第２指標が第１乱数に基づいて変換された値である第２データが暗号化された暗号文を表す暗号化第２データを算出する第２指標算出機能と
を前記演算装置に実現させる指標算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、照合対象である情報を照合する場合に参照する情報を作成する指標算出システム等に関する。
【背景技術】
【０００２】
クラウドコンピューティング（クラウド）が普及するにつれ、通信ネットワーク（以降、「ネットワーク」と表す）に通信接続している計算機資源を用いてデータを管理するサービスは広く普及している。該サービスは、機密性の高いデータを管理するので、該サービスにおいては、扱われるデータが安全であることを保証する必要がある。
【０００３】
利用者が通信ネットワークに自由に通信接続可能（オープン）なネットワーク環境において、データを暗号化されたままの状態で管理し、データを復号することなく、検索や、統計処理等を行う技術の研究開発が行われている。
【０００４】
また、パスワード、または、磁気カードを用いた個人認証における脆弱性を利用した犯罪が頻発している。この結果、指紋、または、静脈等の生体が有する特徴（生体情報）に基づいた認証情報を用いて、より安全性の高い認証を実現する生体認証技術が注目を集めている。
【０００５】
生体認証技術においては、生体情報に基づきテンプレートが作成され、作成されたテンプレートが認証情報としてデータベースに保管される。生体認証技術においては、認証対象である生体に基づき作成された認証情報と、データベースに保管されているテンプレートとが類似（または、一致）している場合に認証対象が受理される。生体認証技術においては、該認証情報と、該テンプレートとが類似（または、一致）していない場合に、認証対象は受理されない。
【０００６】
一つの生体から作成された複数の認証情報であっても、該複数の認証情報は、相互に一致するとは限らないが、類似しているか否かをある距離関数を用いて測定した場合に、該複数の認証情報間の距離は短い。これに対して、異なる生体から、それぞれ、作成された複数の認証情報間の距離は長い。生体認証技術は、上記の特質を利用することによって、データベースに保管されているテンプレートと、認証対象に関して作成された認証情報との照合を行う。
【０００７】
たとえば、指紋、静脈等は、生体情報の一例であり、生涯不変のデータとされている。生体情報が照合システムの外部に漏洩された場合の被害が甚大であるので、該生体情報は、機密性が要求される情報の一つである。したがって、テンプレートが照合システムの外部に漏洩したとしても、生体情報が外部に漏洩しないテンプレート保護型の生体認証技術が重要である。
【０００８】
また、生体認証技術では、他の認証技術と同様に、認証情報を登録した生体に、該生体と異なる生体がなりすますこと（すなわち、「なりすまし」）を防ぐ必要がある。たとえば、特定の値を照合システムに送信することによって認証に成功する認証技術は、該なりすましへの耐性が十分でない。
【０００９】
さらに、認証技術においては、テンプレートが漏洩してしまうリスクだけでなく、通信情報が盗聴（傍受）されるリスクもある。認証技術においては、通信情報が盗聴されたとしても、なりすましを防ぐ必要がある。たとえば、正規のクライアントが照合システムに対する認証に成功した場合に該照合システムへ送信したデータを、異なるクライアントが再送することによって認証に成功する方式は、なりすましへの耐性が十分でない可能性が高い。
【００１０】
たとえば、特許文献１に開示された認証方式は、指紋の隆線の形状を表す座標値を含むにデータに、ランダムな座標値を付加することにより、該データが秘匿されたテンプレートを作成する。該方式は、該テンプレートに基づき、生体認証を実行する。しかし、該認証方式は、生体認証を繰り返した場合に、生体情報が十分な強度で保護されない課題がある。
【００１１】
非特許文献１に開示された方式は、加法に関して準同型性を有する公開鍵暗号の一例を利用することにより、認証を求めているクライアントの生体情報を保護する。非特許文献１に開示された生体認証方式は、準同型性を有する公開鍵暗号を用いて、サーバーが格納している生体情報の機密性を保つ。しかし、該生体認証方式によれば、クライアントが送信した認証情報と、サーバーが格納しているテンプレートとを照合する場合に、サーバーの負荷は大きい。この理由は、サーバーが、照合するたびに、クライアントが送信した認証情報を復号し、復号した復号結果を、再度、暗号化する必要があるからである。さらに、該生体認証方式においては、サーバーが格納しているテンプレートは、暗号化されていない平文である。すなわち、該テンプレートは、サーバーに対して秘匿されていない。したがって、該生体認証方式においては、テンプレートがサーバーの外部に漏洩した場合に、漏洩した該テンプレートを用いた「なりすまし」が発生する可能性が高い。該生体認証方式において、サーバーは、認証情報を表す特定の値を受信した場合に、必ず、該特定の値が該テンプレートに基づき受理可能であると判定する。このため、該特定の値を送信することにより、異なる生体が「なりすまし」を行うことは可能である。
【００１２】
特許文献２に開示された暗号文照合システムは、信頼できる第三者による介入をシステムに導入することにより、登録されるデータをサーバーに対して秘匿する。しかし、該暗号文照合システムによれば、照合処理における第三者の負荷が大きい。さらに、該暗号文照合システムによれば、ユーザが特定の値をサーバーに送信することによって、該ユーザは、正規のユーザであると受理される。
【００１３】
特許文献３には、信頼できる第三者による介入を導入したシステムにおいて、照合処理における第三者の負荷を小さくした技術が記載されている。しかし、特許文献３に記載の技術において距離の指標としてユークリッド距離を利用した場合、テンプレートのサイズは、受理可能な範囲の広さの４乗に比例して大きくなる。これに対して、非特許文献２においては、準同型暗号の代わりにＳｏｍｅｗｈａｔ準同型暗号と呼ばれる公開鍵暗号を利用することにより、テンプレートのサイズを受理可能な範囲の広さの指標の２乗オーダに減らす技術が開示されている。
【００１４】
特許文献４には、テンプレートのサイズが、受理可能な範囲の広さのパラメータに依存せず、かつ、第三者の負荷が小さい技術が記載されている。しかし、この方式では、第三者に対し、登録された生体情報と照合する対象である生体情報との距離が明かされる。悪意を有した第三者が、照合時に得られる距離を利用することによる攻撃（ヒルクライミング攻撃）が可能であることが知られている。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００６−１５８８５１号公報
【特許文献２】国際公開第２０１４／１８５４５０号
【特許文献３】国際公開第２０１４／１８５４４７号
【特許文献４】国際公開第２０１２／１１４４５２号
【非特許文献】
【００１６】
【非特許文献１】Ｓｉａｍａｋ  Ｆ．Ｓｈａｈａｎｄａｓｈｔｉ，ＲｅｉｈａｎｅｈＳａｆａｖｉ−Ｎａｉｎｉ，ａｎｄ  Ｐｈｉｌｉｐ  Ｏｇｕｎｂｏｎａ，「Ｐｒｉｖａｔｅ  Ｆｉｎｇｅｒｐｒｉｎｔ  ｍａｔｃｈｉｎｇ」，ＡＣＩＳＰ  ２０１２．、ｐｐ  ４２６−４３３
【非特許文献２】肥後，一色，森，尾花，「テンプレートサイズの小さい秘匿指紋認証方式」，暗号と情報セキュリティシンポジウム（ＳＣＩＳ２０１５），２０１５．
【発明の概要】
【発明が解決しようとする課題】
【００１７】
しかし、特許文献１乃至特許文献４、非特許文献１、または、非特許文献２に開示された、機密性を担保する必要があるデータが漏洩してしまう可能性がある。たとえば、機密性を担保する必要があるデータは、テンプレートと、対象データとの距離である。この理由は、認証対象を表す対象データと、テンプレートとの距離を照合処理に際して復号する必要があるので、その復号により生じるデータが漏洩する可能性があるからである。
【００１８】
すなわち、上述したような技術を用いた場合には、たとえ、認証対象を表す対象データと、テンプレートとの距離が秘匿化されたまま算出されたとしても、該秘匿化された距離を復号し、その結果、算出される値が所定の条件を満たすか否かが、該対象データを受理するか否かを決定する。従って、該技術によれば、たとえば、復号された距離に基づき、ヒルクライミング攻撃を受ける可能性がある。
【００１９】
そこで、本発明の主たる目的は、より安全な照合処理が可能になる指標を算出することができる指標算出システム等を提供することである。
【課題を解決するための手段】
【００２０】
前述の目的を達成するために、本発明の一態様において、指標算出システムは、
暗号鍵、及び、第１数値列に含まれる数値に基づいて、前記第１数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第１数値列を作成し、作成した前記暗号化第１数値列を記憶手段に格納し、前記第１数値列の大きさを表す第１サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第１指標を算出する第１指標算出手段と、
前記記憶手段に格納されている前記暗号化第１数値列に含まれている前記暗号化数値と、第２数値列とに基づき、前記第１数値列及び前記第２数値列が類似している程度を表す値から前記第１サイズを引き算した値を表す第２指標が、前記暗号鍵を用いて暗号化された値を表す暗号化第２指標を算出する第２指標算出手段と
を備える。
【００２１】
また、本発明の他の見地として、指標算出方法は、
暗号鍵、及び、第１数値列に含まれる数値に基づいて、前記第１数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第１数値列を作成し、作成した前記暗号化第１数値列を記憶手段に格納し、前記第１数値列の大きさを表す第１サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第１指標を算出し、前記記憶手段に格納されている前記暗号化第１数値列に含まれている前記暗号化数値と、第２数値列とに基づき、前記第１数値列及び前記第２数値列が類似している程度を表す値から前記第１サイズを引き算した値を表す第２指標が、前記暗号鍵を用いて暗号化された値を表す暗号化第２指標を算出する。
【００２２】
さらに、同目的は、係る指標算出プログラム、及び、そのプログラムを記録するコンピュータが読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００２３】
本発明に係る指標算出システム等によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態に係る照合システムが有する構成を示すブロック図である。
【図２】準備フェーズにおいて、第１の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。
【図３】登録フェーズにおいて、第１の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。
【図４Ａ】照合フェーズにおいて、第１の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。
【図４Ｂ】照合フェーズにおいて、第１の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。
【図５】暗号化第２データ部が暗号化第２データを算出する処理を示すフローチャートである。
【図６】本発明の第２の実施形態に係る照合システムが有する構成を示すブロック図である。
【図７Ａ】照合フェーズにおいて、第２の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。
【図７Ｂ】照合フェーズにおいて、第２の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。
【図８】本発明の第３の実施形態に係る照合システムが有する構成を示すブロック図である。
【図９Ａ】照合フェーズにおいて、第３の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。
【図９Ｂ】照合フェーズにおいて、第３の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。
【図１０】本発明の第４の実施形態に係る照合システムが有する構成を示すブロック図である。
【図１１】準備フェーズにおいて、第４の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図（フローチャート）である。
【図１２】登録フェーズにおいて、第４の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。
【図１３Ａ】照合フェーズにおいて、第４の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。
【図１３Ｂ】照合フェーズにおいて、第４の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。
【図１４】本発明の第５の実施形態に係る照合システムが有する構成を示すブロック図である。
【図１５】準備フェーズにおいて、第５の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。
【図１６】登録フェーズにおいて、第５の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。
【図１７Ａ】照合フェーズにおいて、第５の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。
【図１７Ｂ】照合フェーズにおいて、第５の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。
【図１８】本発明の第６の実施形態に係る照合システムが有する構成を示すブロック図である。
【図１９Ａ】照合フェーズにおいて、第６の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。
【図１９Ｂ】照合フェーズにおいて、第６の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。
【図２０】本発明の第７の実施形態に係る指標算出システムが有する構成を示すブロック図である。
【図２１】第７の実施形態に係る指標算出システムにおける処理の流れを示すフローチャートである。
【図２２】本発明の各実施形態に係る指標算出システム（または、照合システム）を実現可能な計算処理装置のハードウェア構成例を、概略的に示すブロック図である。
【発明を実施するための形態】
【００２５】
はじめに、本願の各実施形態にて使用する演算子について説明する。
【００２６】
以降に示す式番号に示される式において、等号演算子「＝」を用いられることがあるが、該等号演算子は、該等号演算子を用いて結合される式（値）が等価であることを表す。また、各式の途中に記載された「・・・」は、該途中に含まれる同様の演算が省略されていることを表す。たとえば、「１＋・・・＋Ｎ」は、１からＮまでの整数値の総和演算を表す。また、たとえば、「Ｘ（１）＋・・・＋Ｘ（Ｎ）」は、１からＮまでの整数Ｉに関して、Ｘ（Ｉ）を足し合わせる演算を表す。たとえば、「１，・・・，Ｎ」は、１からＮまでの整数を表す。また、以降に示す式において、べき乗演算子「＾」が用いられることがある。たとえば、Ｑ＾Ｒは、ＱのＲ乗を表す。
【００２７】
次に、理解を容易にするため、加法に関して準同型性を有する公開鍵暗号（加法準同型性暗号）について説明する。
【００２８】
公開鍵暗号は、公開鍵、及び、秘密鍵を生成するアルゴリズム（鍵生成アルゴリズム）、生成した公開鍵を用いて暗号化するアルゴリズム（暗号化アルゴリズム）、及び、生成した秘密鍵を用いて暗号化された暗号データを復号するアルゴリズム（復号アルゴリズム）を含む。
【００２９】
鍵生成アルゴリズムは、暗号の安全性を表す尺度であり、公開鍵や秘密鍵の長さを決定するパラメータであるセキュリティパラメータ１ｋに基づき、公開鍵ｐｋと、秘密鍵ｓｋとが算出されるアルゴリズムである。
【００３０】
暗号化アルゴリズムは、公開鍵ｐｋと、メッセージｍとを受信し、受信した公開鍵ｐｋを用いて、受信したメッセージｍが暗号化された暗号文ｃが算出されるアルゴリズムである。
【００３１】
復号アルゴリズムは、秘密鍵ｓｋと暗号文ｃとを受信し、受信した秘密鍵ｓｋを用いて、暗号文ｃが復号された復号結果Ｍが算出されるアルゴリズムである。
【００３２】
説明の便宜上、公開鍵暗号に含まれるアルゴリズムは、以下に示す３つのアルゴリズムを含むとする。すなわち、
鍵生成アルゴリズムＫｅｙＧｅｎ：（１ｋ）→（ｐｋ，ｓｋ）、
暗号化アルゴリズムＥｎｃ：（ｐｋ，Ｍ）→Ｃ、
復号アルゴリズムＤｅｃ：（ｓｋ，Ｃ）→Ｍ、
ただし、１ｋ（すなわち、１がｋビット並んだビット列）は、セキュリティパラメータを表す。ｐｋは、公開鍵を表す。ｓｋは、秘密鍵を表す。Ｍは、入力されたメッセージを表す。Ｃは、暗号文を表す。Ｅｎｃは、暗号化する処理を表す。Ｄｅｃは、復号する処理を表す。右向きの矢印によって示される演算子「→」の左側は、入力を表し、演算子「→」の右側は該入力の場合に算出される出力を表す。
【００３３】
公開鍵暗号は、式１に示す条件を満たす場合に、準同型性を有する。
【００３４】
Ｅｎｃ（ｐｋ，ｍ１＃ｍ２）＝Ｅｎｃ（ｐｋ，ｍ１）＠Ｅｎｃ（ｐｋ，ｍ２）・・・（式１）、
ただし、＃、及び、＠は、それぞれ異なる、ある２項演算子を表す。また、ｍ１、及び、ｍ２は、それぞれ、メッセージを表す。
【００３５】
たとえば、Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号は、式１における２項演算子「＠」を乗算演算子、及び、式１における２項演算子「＃」を加算（加法）演算子とする公開鍵暗号の一例である。すなわち、Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号は、加法に関して準同型性を有する公開鍵暗号の一例である。Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号において、暗号化アルゴリズムＥｎｃは、式２に示す関係を満たす。
【００３６】
Ｅｎｃ（ｐｋ，ｍ１＋ｍ２）＝Ｅｎｃ（ｐｋ，ｍ１）×Ｅｎｃ（ｐｋ，ｍ２）・・・（式２）、
ただし、ｍ１、及び、ｍ２は、それぞれ、メッセージを表す。
【００３７】
さらに、Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号においては、式２を用いて、任意の定数ｉに対して、式３が成り立つ。
【００３８】
Ｅｎｃ（ｐｋ，ｉ×ｍ１）＝Ｅｎｃ（ｐｋ，ｍ１）ｉ・・・（式３）。
【００３９】
式２に従えば、複数の平文に対して演算を適用し、その後、暗号化アルゴリズムを適用する演算順序を、該平文が暗号化された暗号文を作成し、その後、該暗号文に対して演算を適用する演算順序に変更することができる。たとえば、複数の平文に対する加算演算の後、暗号化アルゴリズムを適用する処理は、式２に従えば、該平文に対して、それぞれ、暗号化アルゴリズムを適用し、その結果、算出された暗号文に対して積を算出する処理と等価である。また、平文を定数倍した後、暗号化アルゴリズムを適用する処理は、式３に従えば、該平文に対して暗号化アルゴリズムを適用し、算出された暗号文をべき乗する演算と等価である。
【００４０】
尚、式２を満たす暗号化アルゴリズムを含む公開鍵暗号は、加法に関して準同型性を有する公開鍵暗号と呼ばれる。Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号は、準同型性を有する暗号の一例である。
【００４１】
次に、本願明細書の以下の説明において便宜上用いる用語である、登録データ、及び、対象データについて説明する。登録データは、秘匿する対象を表すデータであるとする。対象データは、登録データと照合する対象を表すデータであるとする。登録データは、たとえば、生体認証においてクライアントを登録する場合に、該クライアントの生体情報に基づき作成された特徴量を表す。対象データは、たとえば、生体認証においてクライアントを認証する場合に、該クライアントの生体情報に基づき作成された特徴量を表す。たとえば、生体認証においては、認証するクライアントの生体情報に基づき作成された特徴量（すなわち、対象データ）と、登録されたクライアントの生体情報に基づき作成された特徴量（すなわち、登録データ）とが照合される。さらに生体認証においては、照合した結果に応じて、認証するクライアントを受理（受け入れ）可能か否かが判定される。
【００４２】
以下の説明において、「受理」は、たとえば、登録データと、対象データとが類似している（または、一致している）場合に、該対象データを受け入れ可能であることを表す。
【００４３】
以下の説明では、便宜上、本願の各実施形態において、「距離」という言葉を用いて、処理を説明する。距離は、たとえば、対象データを構成する要素と、登録データを構成する要素とを用いて算出されるユークリッド距離を表す。ただし、距離なる文言でなくともよく、他の指標（対象データと、登録データとが類似している程度を表す類似度）であってもよい。
【００４４】
＜第１の実施形態＞
図１を参照しながら、本発明の第１の実施形態に係る照合システム１０１が有する構成について詳細に説明する。図１は、本発明の第１の実施形態に係る照合システム１０１が有する構成を示すブロック図である。
【００４５】
第１の実施形態に係る照合システム１０１は、大別して、登録データ装置１０２と、照合要求装置１１２と、記憶装置１０４と、照合装置１１９と、検証装置１２４とを有する。
【００４６】
登録データ装置１０２は、暗号化部１０３を有する。
【００４７】
記憶装置１０４は、識別子管理部１０６と、登録データ情報記憶部１０５と、登録データ検索部１０７とを有する。
【００４８】
検証装置１２４は、鍵生成部１０８と、鍵記憶部１０９と、検証データ復号部１１０と、検証部１１１とを有する。
【００４９】
照合装置１１９は、照合登録情報要求部１２０と、照合準備部１２１と、検証データ生成部１２３と、判定部１２２とを有する。
【００５０】
照合要求装置１１２は、照合要求部１１３と、暗号化第２データ部１１４と、暗号化第２集合部１１５と、暗号化第２マスク部１１６と、検証マスク部１１７と、照合データ部１１８とを有する。
【００５１】
説明の便宜上、鍵記憶部１０９は、鍵生成部１０８、及び、検証データ復号部１１０のみが参照可能な記憶部であるとする。
【００５２】
登録データ装置１０２と、照合要求装置１１２と、記憶装置１０４と、照合装置１１９と、検証装置１２４とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。
【００５３】
尚、照合システム１０１においては、登録データ装置１０２と、照合要求装置１１２とをまとめて、「第１ノード」と表されてもよい。照合システム１０１においては、記憶装置１０４と、照合装置１１９とをまとめて、「第２ノード」と表されてもよい。また、照合システム１０１においては、検証装置１２４を、「第３ノード」と表されてもよい。すなわち、照合システム１０１は、図１に例示した様態に限定されない。
【００５４】
次に、本発明の第１の実施形態に係る照合システム１０１における処理について説明する。照合システム１０１における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。まず、各フェーズにおける処理の概要について説明する。
【００５５】
準備フェーズにおいては、主として、受信したセキュリティパラメータを用いて、公開鍵、及び、秘密鍵が生成される。
【００５６】
登録フェーズにおいては、主として、生成された公開鍵を用いて、登録データが暗号化された暗号化登録情報が作成される。
【００５７】
照合フェーズにおいては、主として、登録データと、対象データとの間の距離を算出する場合に参照する暗号化第２データ（後述）が算出される。次に、該照合フェーズにおいては、対象データと、算出された暗号文とに基づき、暗号文が暗号化されたまま、対象データが受理可能であるか否かを検証する検証データが作成される。すなわち、検証データは、暗号化されている。さらに、該照合フェーズにおいては、準備フェーズにて作成された秘密鍵を用いて検証データが復号され、復号された結果に含まれる暗号化第２データを用いて距離が算出される。照合フェーズにおいては、算出された距離が、所定の条件を満たすか否かに応じて、対象データが受理可能であるか否かが判定される。
【００５８】
次に、照合システム１０１が、上述した各フェーズにて実行する処理について詳細に説明する。
【００５９】
図２を参照しながら、本実施形態に係る照合システム１０１が、準備フェーズにて実行する処理について説明する。図２は、準備フェーズにおいて、第１の実施形態に係る照合システム１０１が実行する処理の一例を示すフローチャートである。
【００６０】
検証装置１２４における鍵生成部１０８は、セキュリティパラメータを受信し、受信したセキュリティパラメータを用いて、たとえば、上述した鍵生成アルゴリズムに従い、公開鍵、及び、秘密鍵を生成する（ステップＡ１）。尚、生成される公開鍵、及び、秘密鍵は、該鍵生成アルゴリズムに従い生成されるので、加法に関して準同型性を有する公開鍵暗号に準拠する。鍵生成部１０８は、入力された値に対して、特定の値を算出するハッシュ関数を決定する（ステップＡ２）。たとえば、鍵生成部１０８は、所定のハッシュ関数から、あるハッシュ関数を選ぶことにより、ハッシュ関数を決定する。鍵生成部１０８は、該公開鍵と、該ハッシュ関数とを、照合システム１０１において公開する（ステップＡ３）。鍵生成部１０８は、該秘密鍵を、鍵記憶部１０９に格納する（ステップＡ４）。
【００６１】
尚、本実施形態に係る照合システム１０１が準備フェーズにて実行する処理は、図２に例示された様態に限定されない。
【００６２】
図３を参照しながら、本実施形態に係る照合システム１０１が、登録フェーズにて実行する処理について説明する。図３は、登録フェーズにおいて、第１の実施形態に係る照合システム１０１が実行する処理の一例を示すフローチャートである。
【００６３】
登録データ装置１０２における暗号化部１０３は、暗号化登録情報を作成する基となる登録データを受信する。暗号化部１０３は、受信した登録データに関して所定の演算を適用することによって、該登録データに関する特徴を表す第１指標を算出する。たとえば、所定の演算は、該登録データの長さ（大きさ）を算出する関数であり、この場合に、第１指標は、該登録データの長さ（大きさ）である。
【００６４】
次に、暗号化部１０３は、受信した該登録データに含まれている要素、及び、該第１指標を、公開鍵を用いて暗号化することによって、該要素が暗号化された暗号文、及び、該第１指標が暗号化された暗号化第１指標を算出する。暗号化部１０３は、算出した該暗号文、及び、算出した該暗号化第１指標が含まれている暗号化登録情報を作成する（ステップＢ１）。暗号化部１０３は、作成した暗号化登録情報を、照合装置１１９における識別子管理部１０６に送信する（ステップＢ２）。
【００６５】
記憶装置１０４における識別子管理部１０６は、暗号化部１０３が送信した暗号化登録情報を受信し、受信した暗号化登録情報を一意に識別可能な登録識別子を作成する（ステップＢ３）。識別子管理部１０６は、作成した登録識別子と、受信した暗号化登録情報とが関連付けされた登録データ情報を作成し、作成した該登録データ情報を、記憶装置１０４における登録データ情報記憶部１０５に格納する（ステップＢ４）。識別子管理部１０６は、作成した該登録識別子を、登録データ装置１０２に送信する（ステップＢ５）。
【００６６】
記憶装置１０４における登録データ装置１０２は、該登録識別子を受信し、たとえば、受信した該登録識別子を、ディスプレイ等のユーザインターフェース（ＵＩ）に表示する。あるいは、登録データ装置１０２は、社員証や、識別子カード等の、ＩＣ（ｉｎｔｅｇｒａｔｅｄ＿ｃｉｒｃｕｉｔ）カードに、該登録識別子を格納してもよい。あるいは、識別子管理部１０６が、作成した該登録識別子を、ディスプレイ等のユーザインターフェース（ＵＩ）に表示してもよい。
【００６７】
尚、本実施形態に係る照合システム１０１が登録フェーズにて実行する処理は、図３に例示された様態に限定されない。
【００６８】
図４Ａ及び図４Ｂを参照しながら、本実施形態に係る照合システム１０１が、照合フェーズにて実行する処理について説明する。図４Ａ及び図４Ｂは、照合フェーズにおいて、第１の実施形態に係る照合システム１０１が実行する処理の一例を示すフローチャートである。
【００６９】
照合要求装置１１２における照合要求部１１３は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部１１３は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する（ステップＣ１）。照合要求部１１３は、作成した該照合要求を、照合装置１１９における照合登録情報要求部１２０に送信する（ステップＣ２）。照合要求は、たとえば、該登録識別子を含む。
【００７０】
照合装置１１９における照合登録情報要求部１２０は、照合要求部１１３が送信した照合要求を受信し、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部１２０は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し（ステップＣ３）、作成した該登録データ要求を、記憶装置１０４における登録データ検索部１０７に送信する（ステップＣ４）。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。
【００７１】
記憶装置１０４における登録データ検索部１０７は、照合登録情報要求部１２０が送信した登録データ要求を受信する。登録データ検索部１０７は、登録データ情報（たとえば、登録データ情報記憶部１０５に格納されている）において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する（ステップＣ５）。登録データ検索部１０７は、特定した暗号化登録情報を、照合装置１１９における照合準備部１２１に送信する（ステップＣ６）。
【００７２】
照合装置１１９における照合準備部１２１は、登録データ検索部１０７が送信した暗号化登録情報を受信する。照合準備部１２１は、たとえば、擬似乱数を生成する手順に従い、乱数を生成する。照合準備部１２１は、受信した暗号化登録情報における各要素が該乱数乗された暗号文と、該乱数が暗号化された暗号文（説明の便宜上、「暗号化乱数」と表す）とを算出する。尚、ステップＢ１に関する処理にて説明したように、暗号化登録情報が登録データに含まれている各要素の暗号文を含むので、照合準備部１２１は、該暗号文を算出する処理において、登録データに含まれている各要素が乱数倍された値の暗号文を算出する。すなわち、照合準備部１２１は、該登録データに含まれている各要素が、該乱数を用いて変換された値の暗号文を算出する。また、ステップＢ１に関する処理にて説明したように、暗号化登録情報が暗号化第１指標を含むので、照合準備部１２１は、該暗号文を算出する処理において、暗号化第１指標の基である第１指標が乱数倍された値（第１掛け算結果）の暗号文である暗号化第１データを算出する（ステップＣ７）。尚、照合準備部１２１が、第１算出部を有しており、該第１算出部が、ステップＣ７に示した処理と同様の処理を実行することにより、該暗号化第１データを算出する態様であってもよい。
【００７３】
照合準備部１２１は、算出した該値のうち、登録データが暗号化された値を表す要素と、該暗号化乱数とを含む照合登録情報を作成し（ステップＣ８）、作成した照合登録情報を、照合要求装置１１２における暗号化第２データ部１１４に送信する（ステップＣ９）。さらに、照合準備部１２１は、算出した該値に含まれる暗号化第１データを照合装置１１９における検証データ生成部１２３に送信する。
【００７４】
照合要求装置１１２における暗号化第２データ部１１４は、対象データ、及び、照合準備部１２１が送信した照合登録情報を受信する。暗号化第２データ部１１４は、図５に示す、ステップＳ１０１乃至ステップＳ１０４に示す処理を実行することによって、暗号化第２データを算出する。図５は、暗号化第２データ部１１４が暗号化第２データを算出する処理を示すフローチャートである。
【００７５】
・ステップＳ１０１：対象データに関して、所定の関数に従い値を算出する、
・ステップＳ１０２：照合登録情報に含まれている暗号化乱数を、「ステップＳ１０１にて算出された値」乗する、
・ステップＳ１０３：照合登録情報に含まれている「登録データに関する要素」を表す第Ｉ要素（ただし、Ｉは、要素番号を表す）に関して、「（−２）×対象データの第Ｉ要素」乗の値を算出する、
・ステップＳ１０４：ステップＳ１０２及びステップＳ１０３において算出された値を掛け算した値を算出する。
【００７６】
ステップＳ１０１乃至ステップＳ１０４に示す処理によって、暗号化第２データ部１１４は、対象データと登録データとが類似している程度を表す値から、登録データのサイズを引き算した値（第２指標）と、暗号化乱数の基である乱数とが掛け算された値（第２掛け算結果）が暗号化された暗号文を算出する。すなわち、暗号化第２データ部１１４は、第２指標が該乱数を用いて変換された値の暗号文を算出する。
【００７７】
暗号化第２データ部１１４は、算出した暗号化第２データと、照合登録情報における暗号化乱数とを含む暗号化第２情報を作成し（ステップＣ１０）、作成した暗号化第２情報を、照合要求装置１１２における暗号化第２集合部１１５に送信する。
【００７８】
照合要求装置１１２における暗号化第２集合部１１５は、暗号化第２データ部１１４が送信した暗号化第２情報を受信する。暗号化第２集合部１１５は、対象データが受理可能であるか否かを判定する基準である閾値ｔを読み取り、読み取った閾値ｔに基づき設定される区間［−ｔ，０］（すなわち、−ｔから０までの区間）に含まれている、ある値を算出する。たとえば、ある値は、整数値である。ある値は、複数であってもよい。
【００７９】
以降、説明の便宜上、ある値は、Ｌ（ただし、Ｌは、自然数を表す）個の整数値であるとする。
【００８０】
暗号化第２集合部１１５は、受信した暗号化第２情報に含まれる暗号化乱数を、該整数値乗した値を算出し、算出した値と、該暗号化第２情報の中の暗号化第２データとを掛け算した値を算出する。暗号化第２集合部１１５は、算出した値と、受信した暗号化第２情報の中の暗号化第２データとを含む暗号化第２集合を作成する（ステップＣ１１）。暗号化第２集合部１１５は、作成した暗号化第２集合を、照合要求装置１１２における暗号化第２マスク部１１６に送信する。
【００８１】
照合要求装置１１２における暗号化第２マスク部１１６は、暗号化第２集合部１１５が送信した暗号化第２集合を受信する。暗号化第２マスク部１１６は、たとえば、擬似乱数を算出する手順に従い、Ｌ個の乱数を算出し、該Ｌ個の乱数を含むマスク値集合（「乱数情報」とも表す）を作成し、作成したマスク値集合を、検証マスク部１１７に送信する。さらに、暗号化第２マスク部１１６は、受信した暗号化第２集合に含まれている各要素に関して、該要素と、マスク値集合に含まれている１つの要素とを掛け算した値を算出し、算出した値を含む暗号化第２マスク（「暗号化参照情報」とも表す）を作成する（ステップＣ１２）。暗号化第２マスク部１１６は、作成した暗号化第２マスクを、照合要求装置１１２における照合データ部１１８に送信する。
【００８２】
尚、暗号化第２マスク部を、暗号化参照情報部とも表す。
【００８３】
照合要求装置１１２における検証マスク部１１７は、暗号化第２マスク部１１６が送信したマスク値集合を受信する。次に、検証マスク部１１７は、受信したマスク値集合を入力として、ハッシュ関数を適用することにより、ハッシュ値を算出する。検証マスク部１１７は、算出したハッシュ値を含む検証マスクを作成し（ステップＣ１３）、作成した検証マスクを、照合要求装置１１２における照合データ部１１８に送信する。
【００８４】
以降、検証マスクを、「検証情報」と表すこともある。また、検証マスク部を、「検証情報部」と表すこともある。
【００８５】
照合要求装置１１２における照合データ部１１８は、暗号化第２マスク部１１６が送信した暗号化第２マスク、及び、検証マスク部１１７が送信した検証マスクを受信する。照合データ部１１８は、特定の手順に従い、受信した暗号化第２集合における要素順、及び、受信した検証マスクにおける要素順を並び替える。照合データ部１１８は、並び替え後の暗号化第２マスクにおける要素、及び、並び替え後の検証マスクにおける要素が関連付けされた照合データを作成する（ステップＣ１４）。この場合に、暗号化第２マスクの第Ｉ（ただし、Ｉは、要素番号を表す）要素は、検証マスクの第Ｉ要素に関連付けされている。照合データ部１１８は、作成した照合データを、照合装置１１９における検証データ生成部１２３に送信する（ステップＣ１５）。
【００８６】
照合装置１１９における検証データ生成部１２３は、照合準備部１２１が送信した暗号化第１データ、及び、照合データ部１１８が送信した照合データを受信する。検証データ生成部１２３は、受信した照合データに含まれる暗号化第２マスクの各要素に関して、該要素と、受信した暗号化第１データとを掛け算した値を算出する。検証データ生成部１２３は、暗号化第２マスクの第Ｉ要素に関して算出した値と、受信した照合データに含まれる検証マスクの第Ｉ要素とが関連付けされた検証データを作成し（ステップＣ１６）、作成した検証データを、検証装置１２４における検証データ復号部１１０に送信する（ステップＣ１７）。
【００８７】
検証装置１２４における検証データ復号部１１０は、検証データ生成部１２３が送信した検証データを受信し、さらに、鍵記憶部１０９から秘密鍵を読み取る。検証データ復号部１１０は、受信した検証データに含まれている暗号文を、読み取った秘密鍵を用いて復号することによって、該検証データが復号された復号後検証データを作成する（ステップＣ１８）。検証データ復号部１１０は、作成した復号後検証データを、検証装置１２４における検証部１１１に送信する。
【００８８】
検証装置１２４における検証部１１１は、検証データ復号部１１０が送信した復号後検証データを受信する。検証部１１１は、受信した復号後検証データにおいて検証データ復号部１１０が復号した値にハッシュ関数を適用することによりハッシュ値を算出する。検証部１１１は、算出したハッシュ値と、受信した復号後検証データに含まれるハッシュ値とを比較し、関連付けされた要素と一致するか否かを判定する。検証部１１１は、一致している要素がある場合に、一致を表す検証結果を作成し、一致する要素がない場合に、一致しないことを表す検証結果を作成する（ステップＣ１９）。検証部１１１は、算出した検証結果を、照合装置１１９における判定部１２２に送信する（ステップＣ２０）。
【００８９】
照合装置１１９における判定部１２２は、検証部１１１が送信した検証結果を受信する。判定部１２２は、検証結果が「一致」である場合に、判定結果として「受理」を算出し、検証結果が「不一致」である場合に、判定結果として「不受理」を算出する（ステップＣ２１）。判定部１２２は、算出した判定結果を出力する（ステップＣ２２）。
【００９０】
尚、本実施形態に係る照合システム１０１が照合フェーズにて実行する処理は、図４Ａ及び図４Ｂに例示された様態に限定されない。
【００９１】
次に、第１の実施形態に係る照合システム１０１に関する効果について説明する。
【００９２】
第１の実施形態に係る照合システム１０１によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。この理由は、照合処理に際して参照する、暗号化第１データと、暗号化第２データとが、通信接続可能な、複数の異なる装置にて、別々に算出されるからである。言い換えれば、本実施形態に係る照合システム１０１によれば、登録データと、対象データとの間の距離を算出可能な、暗号化第１データ及び暗号化第２データが、複数の異なる主体にて算出される。この結果、暗号化第１データ及び暗号化第２データのうち、少なくとも一方が傍受されたとしても、距離を復元することは不可能であるので、該暗号化第１データ及び暗号化第２データに基づく照合処理において、情報が漏洩するリスクは軽減する。
【００９３】
さらに、第１の実施形態に係る照合システム１０１によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理が可能である。この理由は、照合処理において、受理するか否かを判定する基準を表す閾値ｔに基づく範囲に含まれる第１値を、対象データ及び登録データ間の距離から引いた値が暗号化された第２値を、距離を復号することなく求めることができるからである。尚、これらの処理は、主として、ステップＣ１０及びステップＣ１１にて実行される。
【００９４】
本実施形態に係る照合システム１０１によれば、検証装置１２４のみが、暗号文を復号することができるので、照合システム１０１において、登録データ装置１０２、記憶装置１０４、照合要求装置１１２、及び、照合装置１１９は、復号された第２値を参照することができない。また、検証装置１２４が復号する値は第２値が乱数によってマスクされた値であるので、検証装置１２４も復号された第２値を参照することができない。この結果、復号された距離に基づきテンプレートを復元するヒルクライミング攻撃を受ける可能性は低下する。
【００９５】
さらに、第１の実施形態に係る照合システム１０１によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果を奏する。さらに、第１の実施形態に係る照合システム１０１によれば、たとえ、照合要求装置１１２が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果を奏する。
【００９６】
次に示すいずれの理由によっても、上述した効果を奏する。
【００９７】
・登録データ装置１０２における登録データ情報記憶部１０５には、暗号化部１０３が登録データを暗号化した暗号化登録情報が格納される。すなわち、記憶装置１０４は、暗号化登録情報を格納しているので、登録データを復元することができない。
【００９８】
・本実施形態に係る照合システム１０１においては、照合装置１１９が暗号化第１データを算出し、照合要求装置１１２が暗号化第２データを算出する分散処理の態様であるので、照合要求装置１１２、照合装置１１９、及び、記憶装置１０４が、距離を算出することはできない。
【００９９】
・検証装置１２４が算出するデータは、ハッシュ関数（ステップＣ１３等における処理にて利用）や、乱数等（ステップＣ１１、ステップＣ１２等における処理にて利用）を用いて距離が隠ぺいされたデータである。したがって、第１の実施形態に係る照合システム１０１によれば、たとえ、このデータが傍受されたとしても、距離を推定することは難しい。
【０１００】
したがって、第１の実施形態に係る照合システム１０１によれば、より安全な照合処理が可能である。
【０１０１】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【０１０２】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０１０３】
図６を参照しながら、本発明の第２の実施形態に係る照合システム２０１が有する構成について詳細に説明する。図６は、本発明の第２の実施形態に係る照合システム２０１が有する構成を示すブロック図である。
【０１０４】
第２の実施形態に係る照合システム２０１は、大別して、登録データ装置１０２と、照合要求装置２１２と、記憶装置１０４と、照合装置２１９と、検証装置２２４とを有する。
【０１０５】
登録データ装置１０２は、暗号化部１０３を有する。
【０１０６】
記憶装置１０４は、識別子管理部１０６と、登録データ情報記憶部１０５と、登録データ検索部１０７とを有する。
【０１０７】
検証装置２２４は、鍵生成部１０８と、鍵記憶部１０９と、検証データ復号部１１０と、検証部１１１と、検証データ生成部２２３とを有する。
【０１０８】
照合装置２１９は、照合登録情報要求部２２０と、照合準備部２２１と、判定部２２２とを有する。
【０１０９】
照合要求装置２１２は、照合要求部２１３と、暗号化第２データ部２１４と、暗号化第２集合部２１５と、暗号化第２マスク部２１６と、検証マスク部２１７と、照合データ部２１８とを有する。
【０１１０】
登録データ装置１０２と、照合要求装置２１２と、記憶装置１０４と、照合装置２１９と、検証装置２２４とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。
【０１１１】
尚、図６においては、照合システム２０１は、５つの装置を含む態様を例示したが、図６に例示された様態に限定されない。たとえば、登録データ装置１０２と、照合要求装置２１２とを含む第１ノード、記憶装置１０４と照合装置２１９とを含む第２ノードと、検証装置２２４を含む第３ノードとしてもよい。
【０１１２】
次に、本発明の第２の実施形態に係る照合システム２０１における処理について詳細に説明する。照合システム２０１における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。
【０１１３】
照合システム２０１が、上述した各フェーズにて実行する処理について詳細に説明する。
【０１１４】
本実施形態に係る照合システム２０１に関する準備フェーズにおける処理は、第１の実施形態に係る照合システム１０１に関する準備フェーズにおける処理と同様である。このため、本実施形態に係る照合システム２０１に関する準備フェーズにおける処理に関する説明を省略する。さらに、本実施形態に係る照合システム２０１に関する登録フェーズにおける処理は、第１の実施形態に係る照合システム１０１に関する登録フェーズにおける処理と同様である。このため、本実施形態に係る照合システム２０１に関する登録フェーズにおける処理に関する説明を省略する。
【０１１５】
図７Ａ及び図７Ｂを参照しながら、本実施形態に係る照合システム２０１が、照合フェーズにて実行する処理について説明する。図７Ａ及び図７Ｂは、照合フェーズにおいて、第２の実施形態に係る照合システム２０１が実行する処理の一例を示すフローチャートである。
【０１１６】
照合要求装置２１２における照合要求部２１３は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部２１３は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する（ステップＤ１）。照合要求部２１３は、作成した該照合要求を、照合装置２１９における照合登録情報要求部２２０に送信する（ステップＤ２）。照合要求は、たとえば、該登録識別子を含む。
【０１１７】
照合装置２１９における照合登録情報要求部２２０は、照合要求部２１３が送信した照合要求を受信し、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部２２０は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し（ステップＤ３）、作成した該登録データ要求を、記憶装置１０４における登録データ検索部１０７に送信する（ステップＤ４）。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。
【０１１８】
記憶装置１０４における登録データ検索部１０７は、照合登録情報要求部２２０が送信した登録データ要求を受信する。登録データ検索部１０７は、登録データ情報（たとえば、登録データ情報記憶部１０５に格納されている）において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する（ステップＤ５）。登録データ検索部１０７は、特定した暗号化登録情報を、照合装置２１９における照合準備部２２１に送信する（ステップＤ６）。
【０１１９】
照合装置２１９における照合準備部２２１は、登録データ検索部１０７が送信した暗号化登録情報を受信する。照合準備部２２１は、たとえば、擬似乱数を生成する手順に従い、乱数を生成する。照合準備部２２１は、受信した暗号化登録情報における各要素が該乱数乗された値と、該乱数が暗号化された暗号文（すなわち、「暗号化乱数」）とを算出する。尚、第１の実施形態に示したステップＢ１に関する処理にて説明したように、暗号化登録情報が登録データに含まれている各要素の暗号文を含むので、照合準備部２２１は、該暗号文を算出する処理において、登録データに含まれている各要素が乱数倍された値の暗号文を算出する。すなわち、照合準備部２２１は、該登録データに含まれている各要素が、該乱数を用いて変換された値の暗号文を算出する。また、ステップＢ１に関する処理にて説明したように、暗号化登録情報が暗号化第１指標を含むので、照合準備部２２１は、該暗号文を算出する処理において、暗号化第１指標の基である第１指標が乱数倍された値の暗号文である暗号化第１データを算出する（ステップＤ７）。照合準備部２２１は、算出した該値のうち、登録データが暗号化された値を表す要素と、該暗号化乱数とを含む照合登録情報を作成し（ステップＤ８）、作成した照合登録情報を、照合要求装置２１２における暗号化第２データ部２１４に送信する（ステップＤ９）。さらに、照合準備部２２１は、ステップＤ７にて算出された暗号化第１データを、検証装置２２４における検証データ生成部２２３に送信する（ステップＤ１０）。
【０１２０】
照合要求装置２１２における暗号化第２データ部２１４は、対象データ、及び、照合準備部２２１が送信した照合登録情報を受信する。暗号化第２データ部２１４は、上述したステップＳ１０１乃至ステップＳ１０４に示す処理を実行することによって、暗号化第２情報を作成する（ステップＤ１１）。すなわち、暗号化第２情報は、暗号化乱数と、暗号化第２データとを含む。暗号化第２データ部２１４は、算出した暗号化第２情報を、照合要求装置２１２における暗号化第２集合部２１５に送信する。
【０１２１】
照合要求装置２１２における暗号化第２集合部２１５は、暗号化第２データ部２１４が送信した暗号化第２情報を受信する。暗号化第２集合部２１５は、対象データが受理可能であるか否かを判定する基準を表す閾値ｔを読み取り、読み取った閾値ｔに基づき設定される区間［−ｔ，０］（すなわち、−ｔから０までの区間）における含まれている、ある値を算出する。たとえば、ある値は、整数値である。ある値は、複数であってもよい。
【０１２２】
以降、説明の便宜上、ある値は、Ｌ（ただし、Ｌは、自然数を表す）個の整数値であるとする。
【０１２３】
暗号化第２集合部２１５は、受信した暗号化第２情報に含まれる暗号化乱数を、該整数値乗した値を算出し、算出した値と、該暗号化第２情報の中の暗号化第２データとを掛け算した値を算出する。暗号化第２集合部２１５は、算出した値と、受信した暗号化第２情報の中の暗号化第２データとを含む暗号化第２集合を作成する（ステップＤ１２）。暗号化第２集合部２１５は、作成した暗号化第２集合を、照合要求装置２１２における暗号化第２マスク部２１６に送信する。
【０１２４】
照合要求装置２１２における暗号化第２マスク部２１６は、暗号化第２集合部２１５が送信した暗号化第２集合を受信する。暗号化第２マスク部２１６は、たとえば、擬似乱数を算出する手順に従い、Ｌ個の乱数を算出し、該Ｌ個の乱数を含むマスク値集合を作成し、作成したマスク値集合を、検証マスク部２１７に送信する。さらに、暗号化第２マスク部２１６は、受信した暗号化第２集合に含まれている各要素に関して、該要素と、マスク値集合に含まれている１つの要素とを掛け算した値を算出し、算出した値を含む暗号化第２マスクを作成する（ステップＤ１３）。暗号化第２マスク部２１６は、作成した暗号化第２マスクを、照合要求装置２１２における照合データ部２１８に送信する。
【０１２５】
照合要求装置２１２における検証マスク部２１７は、暗号化第２マスク部２１６が送信したマスク値集合を受信する。次に、検証マスク部２１７は、受信したマスク値集合を入力として、ハッシュ関数を適用することにより、ハッシュ値を算出する。検証マスク部２１７は、算出したハッシュ値を含む検証マスクを作成し（ステップＤ１４）、作成した検証マスクを、照合要求装置２１２における照合データ部２１８に送信する。
【０１２６】
照合要求装置２１２における照合データ部２１８は、暗号化第２マスク部２１６が送信した暗号化第２マスク、及び、検証マスク部２１７が送信した検証マスクを受信する。照合データ部２１８は、特定の手順に従い、受信した暗号化第２集合における要素順、及び、受信した検証マスクにおける要素順を並び替える。照合データ部２１８は、並び替え後の暗号化第２マスクにおける要素、及び、並び替え後の検証マスクにおける要素が関連付けされた照合データを作成する（ステップＤ１５）。この場合に、暗号化第２マスクの第Ｉ（ただし、Ｉは、要素番号を表す）要素は、検証マスクの第Ｉ要素に関連付けされている。照合データ部２１８は、作成した照合データを、検証装置２２４における検証データ生成部２２３に送信する（ステップＤ１６）。
【０１２７】
検証装置２２４における検証データ生成部２２３は、照合準備部２２１が送信した暗号化第１データ、及び、照合データ部２１８が送信した照合データを受信する。検証データ生成部２２３は、受信した照合データに含まれる暗号化第２マスクの各要素に関して、該要素と、受信した暗号化第１データとを掛け算した値を算出する。検証データ生成部２２３は、暗号化第２マスクの第Ｉ要素に関して算出した値と、受信した照合データに含まれる検証マスクの第Ｉ要素とが関連付けされた検証データを作成し（ステップＤ１７）、作成した検証データを、検証装置２２４における検証データ復号部１１０に送信する。
【０１２８】
以降、ステップＣ１８乃至ステップＣ２２に示された処理と同様の処理が実行されるので、ステップＤ１８乃至ステップＤ２２に関する説明を省略する。
【０１２９】
次に、第２の実施形態に係る照合システム２０１に関する効果について説明する。
【０１３０】
第２の実施形態に係る照合システム２０１によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。この理由は、照合処理に際して参照する、暗号化第１データと、暗号化第２データとが、通信接続可能な、複数の異なる装置にて、別々に算出されるからである。言い換えれば、本実施形態に係る照合システム２０１によれば、登録データと、対象データとの間の距離を算出可能な、暗号化第１データ及び暗号化第２データが異なる主体にて算出される。この結果、暗号化第１データ及び暗号化第２データのうち、少なくとも一方が傍受されたとしても、距離を復元することは不可能であるので、該暗号化第１データ及び暗号化第２データに基づく照合処理において、情報が漏洩するリスクは軽減する。
【０１３１】
さらに、第２の実施形態に係る照合システム２０１によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理を可能が可能である。この理由は、照合処理において、受理するか否かを判定する基準を表す閾値ｔに基づく範囲に含まれる第１値を、対象データ及び登録データ間の距離から引いた値が暗号化された第２値を、距離を復号することなく求めることができるからである。尚、これらの処理は、主として、ステップＤ１１及びステップＤ１２にて実行される。
【０１３２】
検証装置２２４のみが、暗号文を復号することができるので、照合システム２０１において、登録データ装置１０２、記憶装置１０４、照合要求装置２１２、及び、照合装置２１９は、復号された第２値を参照することができない。また、検証装置２２４が復号する値は第２値が乱数によってマスクされた値であるので、検証装置２２４も復号された第２値を参照することができない。この結果、復号された距離に基づきテンプレートを復元するヒルクライミング攻撃を受ける可能性は低下する。
【０１３３】
さらに、第２の実施形態に係る照合システム２０１によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果を奏する。さらに、第２の実施形態に係る照合システム２０１によれば、たとえ、照合要求装置２１２が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果を奏する。
【０１３４】
次に示すいずれの理由によっても、上述した効果を奏する。
【０１３５】
・登録データ装置１０２における登録データ情報記憶部１０５には、暗号化部１０３が登録データを暗号化した暗号化登録情報が格納される。すなわち、記憶装置１０４は、暗号化登録情報を格納しているので、登録データを復元することができない。
【０１３６】
・本実施形態に係る照合システム２０１においては、照合装置２１９が暗号化第１データを算出し、照合要求装置２１２が暗号化第２データを算出する分散処理の態様であるので、照合要求装置２１２、照合装置２１９、及び、記憶装置１０４が、距離を算出することはできない。
【０１３７】
・検証装置２２４が算出するデータは、ハッシュ関数（ステップＤ１４等における処理にて利用）や、乱数等（ステップＤ１３、ステップＤ１４等における処理にて利用）を用いて距離が隠ぺいされたデータである。したがって、第２の実施形態に係る照合システム２０１によれば、たとえ、このデータが傍受されたとしても、距離を推定することは難しい。
【０１３８】
したがって、第２の実施形態に係る照合システム２０１によれば、より安全な照合処理が可能である。
【０１３９】
＜第３の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第３の実施形態について説明する。
【０１４０】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０１４１】
図８を参照しながら、本発明の第３の実施形態に係る照合システム４０１が有する構成について詳細に説明する。図８は、本発明の第３の実施形態に係る照合システム４０１が有する構成を示すブロック図である。
【０１４２】
第３の実施形態に係る照合システム４０１は、大別して、登録データ装置１０２と、照合要求装置４１２と、記憶装置１０４と、照合装置４２３と、検証装置４２２とを有する。
【０１４３】
登録データ装置１０２は、暗号化部１０３を有する。
【０１４４】
記憶装置１０４は、識別子管理部１０６と、登録データ情報記憶部１０５と、登録データ検索部１０７とを有する。
【０１４５】
検証装置４２２は、鍵生成部１０８と、鍵記憶部１０９と、検証データ復号部１１０と、検証部１１１と、検証データ生成部４１１とを有する。
【０１４６】
照合装置４２３は、照合登録情報要求部４１５と、照合準備部４１６と、判定部４１７と、暗号化第１集合部４１８と、暗号化第１マスク部４１９と、検証マスク部４２０と、照合データ部４２１とを有する。
【０１４７】
照合要求装置４１２は、照合要求部４１３と、暗号化第２データ部４１４とを有する。
【０１４８】
登録データ装置１０２と、照合要求装置４１２と、記憶装置１０４と、照合装置４２３と、検証装置４２２とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。
【０１４９】
尚、図８においては、照合システム４０１は、５つの装置を含む態様を例示したが、図８に例示された様態に限定されない。たとえば、登録データ装置１０２と、照合要求装置４１２とを含む第１ノード、記憶装置１０４と照合装置４２３とを含む第２ノードと、検証装置４２２を含む第３ノードとしてもよい。
【０１５０】
次に、本発明の第３の実施形態に係る照合システム４０１における処理について詳細に説明する。照合システム４０１における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。
【０１５１】
照合システム４０１が、上述した各フェーズにて実行する処理について詳細に説明する。
【０１５２】
本実施形態に係る照合システム４０１に関する準備フェーズにおける処理は、第１の実施形態に係る照合システム１０１に関する準備フェーズにおける処理と同様である。このため、本実施形態に係る照合システム４０１に関する準備フェーズにおける処理に関する説明を省略する。さらに、本実施形態に係る照合システム４０１に関する登録フェーズにおける処理は、第１の実施形態に係る照合システム１０１に関する登録フェーズにおける処理と同様である。このため、本実施形態に係る照合システム４０１に関する準備フェーズにおける処理に関する説明を省略する。
【０１５３】
図９Ａ及び図９Ｂを参照しながら、本実施形態に係る照合システム４０１が、照合フェーズにて実行する処理について説明する。図９Ａ及び図９Ｂは、照合フェーズにおいて、第３の実施形態に係る照合システム４０１が実行する処理の一例を示すフローチャートである。
【０１５４】
照合要求装置４１２における照合要求部４１３は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部４１３は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する（ステップＦ１）。照合要求部４１３は、作成した該照合要求を、照合装置４２３における照合登録情報要求部４１５に送信する（ステップＦ２）。照合要求は、たとえば、該登録識別子と、対象データとを含む。
【０１５５】
照合装置４２３における照合登録情報要求部４１５は、照合要求部４１３が送信した照合要求を受信し、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部４１５は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し（ステップＦ３）、作成した該登録データ要求を、記憶装置１０４における登録データ検索部１０７に送信する（ステップＦ４）。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。
【０１５６】
記憶装置１０４における登録データ検索部１０７は、照合登録情報要求部４１５が送信した登録データ要求を受信する。登録データ検索部１０７は、登録データ情報（たとえば、登録データ情報記憶部１０５に格納されている）において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する（ステップＦ５）。登録データ検索部１０７は、特定した暗号化登録情報を、照合装置４２３における照合準備部４１６に送信する（ステップＦ６）。
【０１５７】
照合装置４２３における照合準備部４１６は、登録データ検索部１０７が送信した暗号化登録情報を受信する。照合準備部４１６は、たとえば、擬似乱数を算出する手順に従い、乱数を生成する。照合準備部４１６は、受信した暗号化登録情報における各要素が該乱数乗された値と、該乱数が暗号化された暗号文（すなわち、「暗号化乱数」）とを算出する。尚、ステップＢ１に関する処理にて説明したように、暗号化登録情報が登録データに含まれている各要素の暗号文を含むので、照合準備部４１６は、該暗号文を算出する処理において、登録データに含まれている各要素が乱数倍された値の暗号文を算出する。すなわち、照合準備部４１６は、該登録データに含まれている各要素が、該乱数を用いて変換された値の暗号文を算出する。また、ステップＢ１に関する処理にて説明したように、暗号化登録情報が暗号化第１指標を含むので、照合準備部４１６は、該暗号文を算出する処理において、暗号化第１指標の基である第１指標が乱数倍された値の暗号文である暗号化第１データを算出する（ステップＦ７）。照合準備部４１６は、算出した該値のうち、登録データが暗号化された値を表す要素と、該暗号化乱数とを含む照合登録情報を作成し（ステップＦ８）、作成した照合登録情報を、照合要求装置４１２における暗号化第２データ部４１４に送信する（ステップＦ９）。さらに、照合準備部４１６は、ステップＦ７にて算出された暗号化第１データと暗号化乱数とを含む暗号化第１データ情報を作成し、作成した暗号化第１データ情報を、照合装置４２３における暗号化第１集合部４１８に送信する。
【０１５８】
照合要求装置４１２における暗号化第２データ部４１４は、対象データ、及び、照合準備部４１６が送信した照合登録情報を受信する。暗号化第２データ部４１４は、上述したステップＳ１０１乃至ステップＳ１０４に示す処理を実行することによって、暗号化第２データを算出する（ステップＦ１０）。すなわち、暗号化第２情報は、暗号化第２データを含む。暗号化第２データ部４１４は、算出した暗号化第２データを、検証装置４２２における検証データ生成部４１１に送信する（ステップＦ１１）。
【０１５９】
次に、照合装置４２３における暗号化第１集合部４１８は、照合準備部４１６が送信した、暗号化第１データと暗号化乱数とを含む暗号化第１データ情報を受信する。暗号化第１集合部４１８は、対象データが受理可能であるか否かを判定する基準を表す閾値ｔを読み取り、読み取った閾値ｔに基づき設定される区間［−ｔ，０］に含まれている、ある値を算出する。たとえば、ある値は、整数値である。ある値は、複数であってもよい。
【０１６０】
以降、説明の便宜上、ある値は、Ｌ（ただし、Ｌは、自然数を表す）個の整数値であるとする。
【０１６１】
暗号化第１集合部４１８は、受信した暗号化第１データ情報に含まれている暗号化乱数を、該整数値乗した値を算出し、算出した値と該暗号化第１データ情報に含まれている暗号化第１データとを掛け算した値を算出する。暗号化第１集合部４１８は、算出した値を含む暗号化第１集合を作成し（ステップＦ１２）、作成した暗号化第１集合を、照合装置４２３における暗号化第１マスク部４１９に送信する。
【０１６２】
照合装置４２３における暗号化第１マスク部４１９は、暗号化第１集合部４１８が送信した暗号化第１集合を受信する。暗号化第１マスク部４１９は、たとえば、擬似乱数を算出する手順に従い、Ｌ個の乱数を算出し、該Ｌ個の乱数を含むマスク値集合を作成し、作成したマスク値集合を、照合装置４２３における検証マスク部４２０に送信する。さらに、暗号化第１マスク部４１９は、受信した暗号化第１集合に含まれている各要素に関して、該要素と、マスク値集合に含まれている１つの要素とを掛け算した値を算出し、算出された値を含む暗号化第１マスクを作成する（ステップＦ１３）。暗号化第１マスク部４１９は、作成した暗号化第１マスクを、照合装置４２３における照合データ部４２１に送信する。
【０１６３】
次に、照合装置４２３における検証マスク部４２０は、暗号化第１マスク部４１９が送信したマスク値集合を受信する。検証マスク部４２０は、受信したマスク値集合を入力として、ハッシュ関数を適用することにより、ハッシュ値を算出する。検証マスク部４２０は、算出したハッシュ値を含む検証マスクを作成し（ステップＦ１４）、作成した検証マスクを、照合装置４２３における照合データ部４２１に送信する。
【０１６４】
次に、照合装置４２３における照合データ部４２１は、暗号化第１マスク部４１９が送信した暗号化第１マスク、及び、検証マスク部４２０が送信した検証マスクを受信する。照合データ部４２１は、特定の手順に従い、受信した暗号化第１マスクを並び替え、さらに、該特定の手順に従い受信した検証マスクを並び替える処理によって、並び替えられた結果を表す照合データを作成する（ステップＦ１５）。照合データ部４２１は、作成した照合データを、検証装置４２２における検証データ生成部４１１に送信する（ステップＦ１６）。
【０１６５】
次に、検証装置４２２における検証データ生成部４１１は、照合データ部４２１が送信した照合データ、及び、暗号化第２データ部４１４が送信した暗号化第２データを受信する。検証データ生成部４１１は、受信した照合データに含まれる暗号化第１マスクの各要素と、受信した暗号化第２データとを掛け算した値を算出し、算出した値と受信した照合データに含まれる検証マスクとを含む検証データを作成する（ステップＦ１７）。検証データ生成部４１１は、作成した検証データを、検証装置４２２における検証データ復号部１１０に送信する。
【０１６６】
以降、ステップＣ１８乃至ステップＣ２２に示された処理と同様の処理が実行されるので、ステップＦ１８乃至ステップＦ２２に関する説明を省略する。
【０１６７】
次に、第３の実施形態に係る照合システム４０１に関する効果について説明する。
【０１６８】
第３の実施形態に係る照合システム４０１によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。この理由は、照合処理に際して参照する、暗号化第１データと、暗号化第２データとが、通信接続可能な、複数の異なる装置にて、別々に算出されるからである。言い換えれば、本実施形態に係る照合システム４０１によれば、登録データと、対象データとの間の距離を算出可能な、暗号化第１データ及び暗号化第２データが異なる主体にて算出される。この結果、暗号化第１データ及び暗号化第２データのうち、少なくとも一方が傍受されたとしても、距離を復元することは不可能であるので、該暗号化第１データ及び暗号化第２データに基づく照合処理において、情報が漏洩するリスクは軽減する。
【０１６９】
さらに、第３の実施形態に係る照合システム４０１によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理を可能が可能である。この理由は、照合処理において、受理するか否かを判定する基準を表す閾値ｔに基づく範囲に含まれる第１値を、対象データ及び登録データ間の距離から引いた値が暗号化された第２値を、距離を復号することなく求めることができるからである。尚、これらの処理は、主として、ステップＦ１７にて実行される。
【０１７０】
検証装置４２２のみが、暗号文を復号することができるので、照合システム４０１において、登録データ装置１０２、記憶装置１０４、照合要求装置４１２、及び、照合装置４２３は、復号された第２値を参照することができない。また、検証装置４２２が復号する値は第２値が乱数によってマスクされた値であるので、検証装置４２２も復号された第２値を参照することができない。この結果、復号された距離に基づきテンプレートを復元するヒルクライミング攻撃を受ける可能性は低下する。
【０１７１】
さらに、第３の実施形態に係る照合システム４０１によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果を奏する。さらに、第３の実施形態に係る照合システム４０１によれば、たとえ、照合要求装置４１２が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果を奏する。
【０１７２】
次に示すいずれの理由によっても、上述した効果を奏する。
【０１７３】
・登録データ装置１０２における登録データ情報記憶部１０５には、暗号化部１０３が登録データを暗号化した暗号化登録情報が格納される。すなわち、記憶装置１０４は、暗号化登録情報を格納しているので、登録データを復元することができない。
【０１７４】
・本実施形態に係る照合システム４０１においては、照合装置４２３が暗号化第１データを算出し、照合要求装置４１２が暗号化第２データを算出する分散処理の態様であるので、照合要求装置４１２、照合装置４２３、及び、記憶装置１０４が、距離を算出することはできない、
・検証装置４２２が算出するデータは、ハッシュ関数（ステップＦ１４等における処理にて利用）や、乱数等（ステップＦ１３等における処理にて利用）を用いて距離が隠ぺいされたデータである。したがって、第３の実施形態に係る照合システム４０１によれば、たとえ、このデータが傍受されたとしても、距離を推定することは難しい。
【０１７５】
したがって、第３の実施形態に係る照合システム４０１によれば、より安全な照合処理が可能である。
【０１７６】
＜第４の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第４の実施形態について説明する。
【０１７７】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明する。
【０１７８】
図１０を参照しながら、本発明の第４の実施形態に係る照合システム５０１が有する構成について詳細に説明する。図１０は、本発明の第４の実施形態に係る照合システム５０１が有する構成を示すブロック図である。
【０１７９】
第４の実施形態に係る照合システム５０１は、大別して、登録データ装置５０２と、照合要求装置５１２と、記憶装置５０４と、照合装置５１９と、検証装置５２４とを有する。
【０１８０】
登録データ装置５０２は、暗号化部５０３を有する。
【０１８１】
記憶装置５０４は、識別子管理部５０６と、登録データ情報記憶部５０５と、登録データ検索部５０７とを有する。
【０１８２】
検証装置５２４は、鍵生成部５０８と、鍵記憶部５０９と、検証データ復号部５１０と、検証部５１１とを有する。
【０１８３】
照合装置５１９は、照合登録情報要求部５２０と、照合準備部５２１と、検証データ生成部５２３と、判定部５２２とを有する。
【０１８４】
照合要求装置５１２は、照合要求部５１３と、暗号化第２データ部５１４と、暗号化第２集合部５１５と、暗号化第２マスク部５１６と、検証マスク部５１７と、照合データ部５１８とを有する。
【０１８５】
登録データ装置５０２と、照合要求装置５１２と、記憶装置５０４と、照合装置５１９と、検証装置５２４とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。
【０１８６】
尚、図１０においては、照合システム５０１は、５つの装置を含む態様を例示したが、図１０に例示された様態に限定されない。たとえば、登録データ装置５０２と、照合要求装置５１２とを含む第１ノード、記憶装置５０４と照合装置５１９とを含む第２ノードと、検証装置５２４を含む第３ノードとしてもよい。
【０１８７】
本実施形態に係る照合システム５０１は、２つのデータ（たとえば、対象データと、登録データ）との距離を、ｎ（ただし、ｎは、自然数）次元ユークリッド距離を用いて算出する。
【０１８８】
データＸが（ｘ［１］，ｘ［２］，・・・，ｘ［ｎ］）と表され、データＹが（ｙ［１］，ｙ［２］，・・・，ｙ［ｎ］）と表される場合に、ｎ次元ユークリッド距離Ｄは、式４に従い算出される値である。
【０１８９】
Ｄ（Ｘ，Ｙ）＝（ｘ［１］−ｙ［１］）｛２｝＋（ｘ［２］−ｙ［２］）｛２｝＋・・・＋（ｘ［ｎ］−ｙ［ｎ］）｛２｝・・・（式４）、
ただし、ｘ［ｉ］、ｙ［ｉ］（１≦ｉ≦ｎ）は整数を表す。
【０１９０】
説明の便宜上、データＸが対象データを表し、データＹが登録データを表すとする。
【０１９１】
照合システム５０１は、たとえば、式４に従い算出した距離Ｄが、対象データが受理可能であるか否かを判定する基準を表す閾値ｔ以下である場合に、データＸが受理可能であると判定する。これに対して、照合システム５０１は、式４に従い算出した距離Ｄが、該閾値ｔよりも大きい場合に、データＸが受理不可能であると判定する。
【０１９２】
本実施形態においては、加法に関して準同型性を有する公開鍵暗号としてＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号を用いる例を参照しながら、照合システム５０１における処理について説明する。しかし、Ｐａｉｌｌｉｅｒ暗号等の加法に関して準同型性を有する他の公開鍵暗号の場合であっても、本実施形態に係る照合システム５０１は、後述する説明と同様の処理を実行することによって、データＸが受理可能であるか否かを判定することができる。
【０１９３】
まず、Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号について説明する。公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号は、公開鍵、及び、秘密鍵を生成する鍵生成アルゴリズム、生成した公開鍵を用いて暗号化する暗号化アルゴリズム、及び、生成した秘密鍵を用いて暗号化された暗号データを復号する復号アルゴリズムを含む。
【０１９４】
まず、該Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号のアルゴリズムのうち、鍵生成アルゴリズムについて詳細に説明する。鍵生成アルゴリズムは、たとえば、ステップＰ１乃至ステップＰ５に示す処理によって実現することができる。
【０１９５】
・ステップＰ１：生成する鍵の長さを表す値を含むセキュリティパラメータ１ｋを受信する、
・ステップＰ２：位数がｋビットの素数ｐである群Ｇと、その生成元ｇとを生成する、
・ステップＰ３：集合Ｚｐの中から、値ｘをランダムに選び、生成した生成元ｇのｘ乗を算出することによって、ｇｘ（＝ｙと表す）を算出する、
・ステップＰ４：算出した群Ｇ、素数ｐ、生成元ｇ、及び、値ｙが関連付けされた公開鍵ｐｋを算出する。公開鍵ｐｋは、たとえば、（Ｇ，ｐ，ｇ，ｙ）として表すことができる、
・ステップＰ５：算出した公開鍵ｐｋ、及び、値ｘが関連付けされた秘密鍵ｓｋを算出する。秘密鍵ｓｋは、たとえば、（ｐｋ，ｘ）のように表すことができる。
【０１９６】
ただし、１ｋ（すなわち、１がｋビット並んだビット列）は、セキュリティパラメータを表す、Ｚｐは、１から（ｐ−１）までの整数値の集合を表す。尚、ステップＰ２における処理に関しては、様々な方法があり、それらの方法は、本実施形態においても採用できる。ここでは、それらの方法に関する詳細な説明を省略する。
【０１９７】
次に、該Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号のアルゴリズムのうち、暗号化アルゴリズムについて詳細に説明する。暗号化アルゴリズムは、たとえば、ステップＱ１乃至ステップＱ７に示す処理によって実現することができる。
【０１９８】
・ステップＱ１：公開鍵ｐｋ、及び、メッセージｍを受信する、
・ステップＱ２：集合Ｚｐの中から第８値ｒをランダムに選ぶ、
・ステップＱ３：公開鍵ｐｋに含まれている生成元ｇを読み取り、読み取った生成元ｇの乱数ｒ乗を算出することによって、ｇｒ（＝ｃ［１］と表す）を算出する、
・ステップＱ４：公開鍵ｐｋに含まれている生成元ｇを読み取り、読み取った生成元ｇのｍ乗を算出することによって、ｇｍを算出する、
・ステップＱ５：公開鍵ｐｋに含まれている値ｙを読み取り、読み取った値ｙのｒ乗を算出することによって、ｙｒを算出する、
・ステップＱ６：ステップＱ４において算出した値、及び、ステップＱ５において算出した値を掛け算することによって、ｙｒ×ｇｍ（＝ｃ［２］と表す）を算出する、
・ステップＱ７：算出したｃ［１］、及び、ｃ［２］が関連付けされた暗号文を算出する。
【０１９９】
ステップＱ１乃至ステップＱ７に示された暗号化アルゴリズムに従い算出される暗号文ｃは、たとえば、暗号文（ｃ［１］，ｃ［２］）のように表すことができる。または、暗号化アルゴリズムを関数Ｅｎｃとして表す場合に、ステップＱ１乃至ステップＱ７に示す処理は、Ｅｎｃ（ｐｋ，ｍ）＝（ｃ［１］，ｃ［２］）のように表すことができる。尚、この場合に、（ｐｋ，ｍ）は入力を表し、（ｃ［１］，ｃ［２］）は出力を表す。関数Ｅｎｃは、公開鍵ｐｋ、及び、メッセージｍが入力された場合に、暗号文（ｃ［１］，ｃ［２］）を算出する。
【０２００】
該Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号のアルゴリズムのうち、復号アルゴリズムについて詳細に説明する。復号アルゴリズムは、たとえば、ステップＲ１乃至ステップＲ３に示す処理によって実現することができる。
【０２０１】
・ステップＲ１：秘密鍵ｓｋ、暗号文（ｃ［１］，ｃ［２］）を受信する、
・ステップＲ２：受信した暗号文において、ｃ［１］、及び、ｃ［２］を読み取り、受信した秘密鍵ｓｋにおいて値ｘを読み取る、
・ステップＲ３：読み取ったｃ［２］を、ｃ［１］の値のｘ乗によって割り算することによって、復号結果Ｍを算出する。復号結果Ｍは、たとえば、ｃ［２］／（ｃ［１］ｘ）に従い演算することによって算出することができる。
【０２０２】
ただし、演算子「／」は、逆元を表すとする。たとえば、「１／ＱＡ」は、ＱＡの逆元を表す。また。たとえば、「ＱＡ／ＱＢ」は、ＱＡに、ＱＢの逆元数を掛け算した値を表す。
【０２０３】
復号アルゴリズムを関数Ｄｅｃとして表す場合に、ステップＲ１乃至ステップＲ３に示す処理は、Ｄｅｃ（ｓｋ，ｃ）＝Ｍのように表すことができる。すなわち、関数Ｄｅｃは、秘密鍵ｓｋ、及び、暗号文ｃが入力された場合に、暗号文ｃが復号された復号結果Ｍを算出する。
【０２０４】
さらに、次のアルゴリズムによって暗号文を変形できる。
【０２０５】
・ステップＴ１：暗号文（ｃ［１］，ｃ［２］）、変形パラメータｘｐを受信する、
・ステップＴ２：読み取ったｃ［１］を、ｃ［１］の値ｘｐ乗に置き換える、
・ステップＴ３：変形結果（ｃ［１］｛ｘｐ｝，ｃ［２］）を算出する、
メッセージｍに対する暗号文Ｅｎｃ（ｐｋ，ｍ）＝（ｃ［１］，ｃ［２］）にこの変形を加えた結果をＴＥｎｃ（ｐｋ，ｘｐ，ｍ）＝（ｃ［１］｛ｘｐ｝，ｃ［２］）と表す。ある暗号文（ｃ［１］，ｃ［２］）および変形パラメータｘｐに対してこのアルゴリズムを実行した結果である（ｃ［１］｛ｘｐ｝，ｃ［２］）に対し，これと変形パラメータ１／ｘｐに対してこのアルゴリズムを適用すると元の暗号文（ｃ［１］，ｃ［２］）が出力される。
【０２０６】
本発明の各実施形態においては、上述したように関数を用いて処理を説明することもある。たとえば、関数を「Ｆ（Ｘ）＝Ｙ」と表す場合に、該関数は、入力Ｘに対して、関数Ｆが表す処理を適用することによって、出力Ｙを算出する処理を表す。
【０２０７】
ここで、鍵生成アルゴリズム、暗号化アルゴリズム、及び、復号アルゴリズムに従えば、適切に暗号化処理、及び、復号処理が実行されることについて、式５を参照しながら説明する。尚、ここでは、適切に暗号化処理、及び、復号処理が実行されていることを示すために、暗号化アルゴリズムに従い算出されたメッセージｍの暗号文を、復号アルゴリズムに従い復号することによって、ｇｍが復元されることを示す。
【０２０８】
上述した暗号化アルゴリズムに従えば、メッセージｍに対して、暗号文（ｇｒ，ｙｒ×ｇｍ）が算出される。該暗号文に対して復号アルゴリズムに従い処理を実行すると、復号結果Ｍとしてｃ［２］／（ｃ［１］ｘ）が算出される。
【０２０９】
ｃ［２］／（ｃ［１］ｘ）
＝ｙｒ×ｇｍ／（（ｇｒ）ｘ）
＝（（ｇｘ）ｒ）×ｇｍ／（（ｇｒ）ｘ）
＝ｇｍ・・・（式５）。
【０２１０】
すなわち、メッセージｍに対して、ステップＱ１乃至ステップＱ７に示された暗号化アルゴリズム、及び、ステップＲ１乃至ステップＲ３に示された復号アルゴリズムを適用することによって、ｇｍが算出される。したがって、上述した鍵生成アルゴリズム、暗号化アルゴリズム、及び、復号アルゴリズムに従えば、適切に暗号化処理、及び、復号処理が実行される
Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の場合に、複数の平文に対する加算演算は、該平文が暗号化された暗号文を復号することなく、実行することができる。同様に、Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の場合に、平文を定数倍する演算は、該平文が暗号化された暗号文を復号することなく、実行することができる。これらの演算が可能である理由について、式６及び式７を参照しながら説明する。
【０２１１】
まず、複数の平文に対する加算演算は、該平文が暗号化された暗号文を復号することなく、実行することができる理由について説明する。
【０２１２】
公開鍵ｐｋを（Ｇ，ｐ，ｇ，ｙ）、メッセージをｍ、メッセージをｍｐ、メッセージｍが暗号化された暗号文をｃ、及び、メッセージｍｐが暗号化された暗号文をｃｐと表す。暗号化アルゴリズムに従えば、メッセージｍに対して、式６に示す暗号文ｃが算出される。
【０２１３】
ｃ＝Ｅｎｃ（ｐｋ，ｍ）
＝（ｃ［１］，ｃ［２］）
＝（ｇｒ，ｙｒ×ｇｍ）・・・（式６）。
【０２１４】
また、暗号化アルゴリズムに従えば、メッセージｍｐに対して、式７に示す暗号文が算出される。
【０２１５】
ｃｐ＝Ｅｎｃ（ｐｋ，ｍｐ）
＝（ｃｐ［１］，ｃｐ［２］）
＝（ｇｒｐ，ｙｒｐ×ｇｍｐ）・・・（式７）。
【０２１６】
この場合に、式８によれば、複数の平文を加算した値が暗号化された値は、該平文が、それぞれ、暗号化された値を掛け算した値に等価である。
【０２１７】
Ｅｎｃ（ｐｋ，ｍ）＊Ｅｎｃ（ｐｋ，ｍｐ）
＝（ｃ［１］×ｃｐ［１］，ｃ［２］×ｃｐ［２］）
＝（ｇ｛ｒ＋ｒｐ｝，ｙ｛ｒ＋ｒｐ｝×ｇ｛ｍ＋ｍｐ｝）
＝Ｅｎｃ（ｐｋ，ｍ＋ｍｐ）・・・（式８）。
【０２１８】
ただし、ｒｐは、メッセージｍｐに対する第８値を表す。また、演算子「＊」は、各要素に対して掛け算した値を算出することを表す。
【０２１９】
次に、平文を定数倍する演算は、該平文が暗号化された暗号文を復号することなく、実行することができる理由について説明する。
【０２２０】
暗号化アルゴリズムに従い、メッセージｍに対して、式６に示す暗号文が算出されるとする。この場合に、式８によれば、平文を定数倍した結果を暗号化する処理は、平文を暗号化した後に算出される値を、該定数乗する処理に等価である。
【０２２１】
Ｅｎｃ（ｐｋ，ｍ）ｉ
＝（ｃ［１］ｉ，ｃ［２］ｉ）
＝（ｇ｛ｉ×ｒ｝，ｙ｛ｉ×ｒ｝×ｇ｛ｉ×ｍ｝）
＝Ｅｎｃ（ｐｋ，ｉ×ｍ）・・・（式９）、
ただし、暗号文に対する指数乗は、該暗号文に含まれる各要素に関して指数乗する演算を表す。
【０２２２】
次に、本発明の第４の実施形態に係る照合システム５０１における処理について詳細に説明する。照合システム５０１における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。
【０２２３】
まず、図１１を参照しながら、本実施形態に係る照合システム５０１が、準備フェーズにて実行する処理について説明する。図１１は、準備フェーズにおいて、第４の実施形態に係る照合システム５０１が実行する処理の一例を示すシーケンス図（フローチャート）である。
【０２２４】
検証装置５２４における鍵生成部５０８は、セキュリティパラメータ１ｋを受信する。鍵生成部５０８は、受信したセキュリティパラメータ１ｋを用いて、たとえば、ステップＰ１乃至ステップＰ５に示された鍵生成アルゴリズムに従い、公開鍵ｐｋ、及び、秘密鍵ｓｋを生成する（ステップＳＡ１）。鍵生成部５０８は、入力された値に対して、特定の値を算出するハッシュ関数Ｈを決定する（ステップＳＡ２）。鍵生成部５０８は、該公開鍵ｐｋと、該ハッシュ関数Ｈとを、照合システム５０１において公開する（ステップＳＡ３）。鍵生成部５０８は、該秘密鍵ｓｋを、鍵記憶部５０９に格納する（ステップＳＡ４）。
【０２２５】
たとえば、照合システム５０１における鍵生成アルゴリズムが、加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号における鍵生成アルゴリズムである場合の例を参照しながら、照合システム５０１における処理について説明する。この場合に、鍵生成部５０８は、セキュリティパラメータ１ｋを受信する。鍵生成部５０８は、位数がｋビットである素数ｐである群Ｇと、群Ｇに関する生成元ｇとを生成する。鍵生成部５０８は、所定の集合Ｚｐの中から値ｘをランダムに選び、生成元ｇのｘ乗を算出する。すなわち、鍵生成部５０８は、ｇｘ（＝ｙ）を算出する。鍵生成部５０８は、群Ｇ、素数ｐ、生成元ｇ、及び、算出した値ｙが関連付けされた公開鍵ｐｋを算出する。鍵生成部５０８は、公開鍵ｐｋ、及び、値ｘが関連付けされた秘密鍵をｓｋ＝（ｐｋ，ｘ）を算出する。
【０２２６】
図１２を参照しながら、本実施形態に係る照合システム５０１が、登録フェーズにて実行する処理について説明する。図１２は、登録フェーズにおいて、第４の実施形態に係る照合システム５０１が実行する処理の一例を示すシーケンス図である。
【０２２７】
説明の便宜上、暗号化部５０３は、式１０に示すように、複数の要素を含む登録データＸを受信するとする。
【０２２８】
Ｘ＝（ｘ［１］，・・・，ｘ［ｎ］）・・・（式１０）。
【０２２９】
ただし、ｎは、自然数を表す。ｘ［ｉ］（１≦ｉ≦ｎ）は、実数（たとえば、整数）を表す。
【０２３０】
暗号化部５０３は、式１０に示すような登録データＸを受信し、登録データＸに含まれている要素の二乗和（式１１）を算出することによって、第１指標を算出する。
【０２３１】
ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝・・・（式１１）。
【０２３２】
次に、暗号化部５０３は、データＸに含まれている要素ｘ［ｉ］を暗号化することによって、要素ｘ［ｉ］が暗号化された暗号文Ｅｎｃ（ｐｋ，ｘ［ｉ］）を算出する。暗号化部５０３は、式１１に従い算出した第１指標を暗号化することによって、該第１指標が暗号化された暗号化第１指標ｃｃ１を算出する。この場合に、暗号化部５０３が算出する暗号文は式１２に示すように表すことができる。
【０２３３】
Ｅｎｃ（ｐｋ，ｘ［１］）（＝ｃ１［１］と表す），
・・・、
Ｅｎｃ（ｐｋ，ｘ［ｎ］）（＝ｃ１［ｎ］と表す），
Ｅｎｃ（ｐｋ，ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）（すなわち、ｃｃ１）・・・（式１２）。
【０２３４】
次に、暗号化部５０３は、式１２に従い算出された値が含まれている暗号化登録情報を作成する（ステップＳＢ１）。暗号化登録情報は、式１３として表すことができる。
【０２３５】
（ｃ１［１］，・・・，ｃ１［ｎ］，ｃｃ１）・・・（式１３）。
【０２３６】
暗号化部５０３は、作成した暗号化登録情報（式１３）を、照合装置５１９における照合準備部５２１に送信する（ステップ（ＳＢ２−１））。
【０２３７】
加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の場合の例を用いながら、ステップＳＢ１における処理を説明する。この場合に、暗号化部５０３は、集合Ｚｐの中から、複数の値（以降、説明の便宜上、「乱数」と表す）を選ぶ。暗号化部５０３が選んだ複数の乱数を、ｒ１［１］、・・・、ｒ１［ｎ］、及び、ｒｒ１と表す。
【０２３８】
暗号化部５０３は、データＸを受信した場合に、式１１に従い二乗和を算出する。次に、暗号化部５０３は、公開鍵ｐｋから、生成元ｇと、値ｙとを読み取る。暗号化部５０３は、読み取った生成元ｇを乱数乗した値（「値７」と表す）を算出する。暗号化部５０３は、読み取った生成元ｙの該乱数乗と、読み取った生成元ｇを「データＸに含まれる要素」乗した値とを掛け算した値を算出する（「値５」と表す）。さらに、暗号化部５０３は、読み取った生成元ｙの該乱数乗と、読み取った生成元ｇを「式１１に従い算出した二乗和」乗した値とを掛け算した値（「値６」と表す）を算出する。次に、暗号化部５０３は、値６及び値７が関連付けされた暗号文（すなわち、二乗和に関する暗号文）を算出する。すなわち、暗号化部５０３は、式１４に示された暗号文を算出する。すなわち、暗号化部５０３は、公開鍵ｐｋを用いて、データＸに関して、式１４に示した暗号文を作成する。
【０２３９】
（ｇ｛ｒ１［１］｝，ｙ｛ｒ１［１］｝×ｇ｛ｘ［１］｝）（すなわち、Ｅｎｃ（ｐｋ，ｘ［１］）である。説明の便宜上、ｃ１［１］と表す），
・・・，
（ｇ｛ｒ１［ｎ］｝，ｙ｛ｒ１［ｎ］｝×ｇ｛ｘ［ｎ］｝）（すなわち、Ｅｎｃ（ｐｋ，ｘ［ｎ］）である。説明の便宜上、ｃ１［ｎ］と表す），
（ｇ｛ｒｒ１｝，ｙ｛ｒｒ１｝×ｇ｛ｘ［１］＾｛２｝＋・・・＋ｘ［ｎ］＾｛２｝｝）（すなわち、Ｅｎｃ（ｐｋ，ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）である。説明の便宜上、ｃｃ１と表す）・・・（式１４）。
【０２４０】
次に、暗号化部５０３は、式１４に従い算出された値が含まれている暗号化登録情報を作成する（ステップＳＢ１）。暗号化部５０３は、作成した暗号化登録情報（たとえば、式１３）を、照合装置５１９における識別子管理部５０６に送信する（ステップ（ＳＢ２−１））。
【０２４１】
記憶装置５０４における識別子管理部５０６は、暗号化部５０３が送信した暗号化登録情報を受信し（ステップ（ＳＢ２−２））、受信した暗号化登録情報を一意に識別可能な登録識別子を作成する（ステップＳＢ３）。識別子管理部５０６は、作成した登録識別子と、受信した暗号化登録情報とが関連付けされた登録データ情報を作成し、作成した該登録データ情報を、記憶装置５０４における登録データ情報記憶部５０５に格納する（ステップＳＢ４）。識別子管理部５０６は、作成した該登録識別子を、登録データ装置５０２に送信する（ステップ（ＳＢ５−１））。
【０２４２】
記憶装置５０４における登録データ装置５０２は、該登録識別子を受信し（ステップ（ＳＢ５−２））、たとえば、受信した該登録識別子を、ディスプレイ等のユーザインターフェース（ＵＩ）に表示する（ステップＳＢ６）。あるいは、登録データ装置５０２は、社員証や、識別子カード等の、ＩＣ（ｉｎｔｅｇｒａｔｅｄ＿ｃｉｒｃｕｉｔ）カードに、該登録識別子を格納してもよい。また、識別子管理部５０６が、作成した該登録識別子を表示してもよい。
【０２４３】
尚、本実施形態に係る照合システム５０１が登録フェーズにて実行する処理は、図１２に例示された様態に限定されない。
【０２４４】
図１３Ａ及び図１３Ｂを参照しながら、本実施形態に係る照合システム５０１が、照合フェーズにて実行する処理について説明する。図１３Ａ及び図１３Ｂは、照合フェーズにおいて、第４の実施形態に係る照合システム５０１が実行する処理の一例を示すシーケンス図である。
【０２４５】
照合要求装置５１２における照合要求部５１３は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部５１３は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する（ステップＳＣ１）。照合要求部５１３は、作成した該照合要求を、照合装置５１９における照合登録情報要求部５２０に送信する（ステップ（ＳＣ２−１））。照合要求は、たとえば、該登録識別子を含む。
【０２４６】
照合装置５１９における照合登録情報要求部５２０は、照合要求部５１３が送信した照合要求を受信し（ステップ（ＳＣ２−２））、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部５２０は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し（ステップＳＣ３）、作成した該登録データ要求を、記憶装置５０４における登録データ検索部５０７に送信する（ステップ（ＳＣ４−１））。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。
【０２４７】
記憶装置５０４における登録データ検索部５０７は、照合登録情報要求部５２０が送信した登録データ要求を受信する（ステップ（ＳＣ４−２））。登録データ検索部５０７は、登録データ情報（たとえば、登録データ情報記憶部５０５に格納されている）において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する（ステップＳＣ５）。登録データ検索部５０７は、特定した暗号化登録情報を、照合装置５１９における照合準備部５２１に送信する（ステップ（ＳＣ６−１））。
【０２４８】
照合装置５１９における照合準備部５２１は、登録データ検索部５０７が送信した暗号化登録情報（式１３）を受信する（ステップ（ＳＣ６−２））。次に、照合準備部５２１は、たとえば、擬似乱数を生成する手順に従い、値Ｓ（以降、乱数Ｓと表す）を算出し、公開鍵ｐｋを用いて、乱数Ｓを暗号化した暗号文を算出する。さらに、照合準備部５２１は、暗号化登録情報に含まれている各要素の乱数Ｓ乗を算出する。すなわち、照合準備部５２１は、ｃ１［ｉ］｛Ｓ｝（ただし、１≦ｉ≦ｎ）、及び、暗号化第１データｃｃ１｛Ｓ｝を算出する（ステップＳＣ７）。
【０２４９】
ステップＳＣ７に示した処理によって、照合準備部５２１は、暗号化登録情報を算出した基であるデータＸに含まれている要素、及び、データＸに関して式１１に従い算出された二乗和に関して、それぞれ、乱数Ｓ倍された値が、公開鍵ｐｋを用いて暗号化された値（式１５）を算出する。
【０２５０】
Ｅｎｃ（ｐｋ，Ｓ）（ｃ２［０］と表す），
Ｅｎｃ（ｐｋ，Ｓ×ｘ［１］）（ｃ２［１］と表す），
・・・，
Ｅｎｃ（ｐｋ，Ｓ×ｘ［ｎ］）（ｃ２［ｎ］と表す），
Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝））（ｃｃ２、または、「暗号化第１データ」と表す）・・・（式１５）。
【０２５１】
照合準備部５２１は、算出した値（式１５）のうち、暗号化登録情報に関する要素と、乱数Ｓが暗号化された暗号文とを含む照合登録情報を作成する（ステップＳＣ８）。照合登録情報は、式１６に示す態様を用いて表すことができる。
【０２５２】
（ｃ２［０］，ｃ２［１］，・・・，ｃ２［ｎ］）・・・（式１６）。
【０２５３】
照合準備部５２１は、作成した照合登録情報を、照合要求装置５１２における暗号化第２データ部５１４に送信する（ステップ（ＳＣ９−１））。さらに、照合準備部５２１は、算出した該値に含まれる暗号化第１データを、照合装置５１９における検証データ生成部５２３に送信する。
【０２５４】
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の場合の例を用いながら、ステップＳＣ７における処理について説明する。この場合に、照合準備部５２１は、集合Ｚｐの中から、値（以降、説明の便宜上、「乱数」と表す。）を選ぶ。この処理にて照合準備部５２１が選んだ乱数を、ｒ２［０］と表す。さらに、照合準備部５２１は、擬似乱数を生成する手順に従い、乱数Ｓを生成する。
【０２５５】
照合準備部５２１は、公開鍵ｐｋから、生成元ｇと、値ｙとを読み取る。照合準備部５２１は、集合Ｚｐの中から、乱数ｘｐを選ぶ。照合準備部５２１は、読み取った生成元ｇのｒ２［０］乗の値を算出する。照合準備部５２１は、読み取った生成元ｙの該ｒ２［０］乗と、読み取った生成元ｇをＳ乗した値とを掛け算した値を算出する。照合準備部５２１は、算出した２つの値が関連付けされた暗号文を作成する。すなわち、照合準備部５２１は、これらの処理によって、乱数Ｓが公開鍵ｐｋを用いて暗号化された値ＴＥｎｃ（ｐｋ，ｐ，Ｓ）を算出する。
【０２５６】
照合準備部５２１が算出する暗号文は、式１７に示すように表すこともできる。
【０２５７】
（ｇ｛ｘｐ×ｒ２［０］｝，ｙ｛ｒ２［０］｝×ｇ｛Ｓ｝）
＝ＴＥｎｃ（ｐｋ，ｘｐ，Ｓ）（すなわち、ｃ２［０］）・・・（式１７）。
【０２５８】
次に、照合準備部５２１は、式１３に示された暗号文を含む暗号化登録情報に関して、該登録データに含まれる要素の値を乱数Ｓ乗した値を算出する。この処理によって、照合準備部５２１は、該登録データを算出した基であるデータＸに含まれている要素、及び、データＸに関して式１１に従い算出された二乗和に関して、それぞれ、乱数Ｓ倍された値が、公開鍵ｐｋおよびｘｐを用いて暗号化された値を算出する。
【０２５９】
上記の処理によって照合準備部５２１が算出する値は、式１８のように表すことができる。
【０２６０】
（ｃ１［１］［１］｛ｘｐ×Ｓ｝，ｃ１［１］［２］｛Ｓ｝）（すなわち、ＴＥｎｃ（ｐｋ，ｘｐ，Ｓ×ｘ［１］）、ｃ２［１］），
・・・，
（ｃ１［ｎ］［１］｛ｘｐ×Ｓ｝，ｃ１［ｎ］［２］｛Ｓ｝）（すなわち、ＴＥｎｃ（ｐｋ，ｘｐ，Ｓ×ｘ［ｎ］）、ｃ２［ｎ］），
（ｃｃ１［１］｛ｘｐ×Ｓ｝，ｃｃ１［２］｛Ｓ｝）（すなわち、ＴＥｎｃ（ｐｋ，ｘｐ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）、ｃｃ２）・・・（式１８）。
【０２６１】
ただし、暗号文ｃ１［ｉ］は、（ｃ１［ｉ］［１］，ｃ１［ｉ］［２］）である。ｉは、自然数を表す。
【０２６２】
照合準備部５２１は、式１５に従い算出した値を含む照合登録情報（ｃ２［０］，ｃ２［１］，・・・，ｃ２［ｎ］）を作成する（ステップＳＣ８）。照合準備部５２１は、作成した照合登録情報を、照合要求装置５１２における暗号化第２データ部５１４に送信する（ステップ（ＳＣ９−１））。さらに、照合準備部５２１は、算出した暗号化第１データ（Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号を用いる場合は、暗号化第１データに乱数ｘｐを追加する）を、照合装置５１９における検証データ生成部５２３に送信する。
【０２６３】
照合要求装置５１２における暗号化第２データ部５１４は、照合する対象を表す対象データＹ、及び、照合準備部５２１が送信した照合登録情報（式１６）を受信する（ステップ（ＳＣ９−２））。
【０２６４】
説明の便宜上、対象データＹは、上述した登録データと同様に、複数の要素（式１９）を含むとする。さらに、登録データに含まれている要素と、対象データに含まれている要素とは、相互に比較可能に関連付けされているとする。たとえば、該関連付けに従えば、登録データにおける第Ｉ（ただし、Ｉは自然数）要素と、対象データにおける第Ｉ要素とが関連付けされている。
【０２６５】
Ｙ＝（ｙ［１］，ｙ［２］，・・・，ｙ［ｎ］）・・・（式１９）。
【０２６６】
尚、該関連付けは、必ずしも、上述した例に限定されない。
【０２６７】
暗号化第２データ部５１４は、受信した対象データＹ、及び、受信した照合登録情報に基づき、該照合登録情報を算出した基であるデータＸと、対象データＹとの間の距離から、該データＸの長さを引いた値（第２指標）が暗号化された暗号文（「暗号化第２指標」と表す）を算出する（ステップＳＣ１０）。
【０２６８】
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の場合の例を用いながら、ステップＳＣ１０における処理について説明する。
【０２６９】
この場合に、暗号化第２データ部５１４は、たとえば、受信した対象データＹに含まれている要素の２乗和を算出することにより、対象データＹの長さを算出する。次に、暗号化第２データ部５１４は、式１６に示された照合登録情報に含まれている第０要素（すなわち、乱数Ｓが暗号化された値）を読み取り、読み取った第０要素の値が「該長さ」乗された値を算出する。この場合に、暗号化第２データ部５１４が算出する値は、式２０に示すように表すことができる。
【０２７０】
（ｃ２［０］［１］｛ｙ［１］＾｛２｝＋・・・＋ｙ［ｎ］＾｛２｝｝，ｃ２［０］［２］｛ｙ［１］＾｛２｝＋・・・＋ｙ［ｎ］＾｛２｝｝）・・・（式２０）。
【０２７１】
ただし、暗号文ｃ２［ｉ］は、（ｃ２［ｉ］［１］，ｃ２［ｉ］［２］）である。ｉは、０以上の整数値を表す。
【０２７２】
式２０は、式１５によれば、Ｅｎｃ（ｐｋ，Ｓ×｛ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝｝）に等価である。
【０２７３】
次に、暗号化第２データ部５１４は、照合登録情報に含まれている第ｉ要素と、読み取り、対象データＹに含まれている第ｉ要素と読み取り、照合登録情報に含まれている第ｉ要素が、「−２×対象データＹに含まれている第ｉ要素」乗された値を算出する。ただし、ｉは、自然数を表す。この場合に、暗号化第２データ部５１４が算出する値は、式２１に示すように表すことができる。
【０２７４】
（ｃ２［ｉ］［１］｛−２×ｙ［ｉ］｝，ｃ２［ｉ］［２］｛−２×ｙ［ｉ］｝）・・・（式２１）。
【０２７５】
式２１は、式１５によれば、Ｅｎｃ（ｐｋ，−２×Ｓ×ｘ［ｉ］×ｙ［ｉ］）に等価である。
【０２７６】
次に、暗号化第２データ部５１４は、式２１に従い算出した値と、第０要素に関して算出した値とを掛け算した値（式２２）を算出する。
【０２７７】
（ｃ２［０］［１］｛ｙ［１］＾｛２｝＋・・・＋ｙ［ｎ］＾｛２｝｝×ｃ２［１］［１］｛−２×ｙ［１］｝×・・・×ｃ２［ｎ］［１］｛−２×ｙ［ｎ］｝，ｃ２［０］［２］｛ｙ［１］＾｛２｝＋・・・＋ｙ［ｎ］＾｛２｝｝×ｃ２［１］［２］｛−２×ｙ［１］｝×・・・×ｃ２［ｎ］［２］｛−２×ｙ［ｎ］｝）・・・（式２２）。
【０２７８】
式２２は、
Ｅｎｃ（ｐｋ，Ｓ×｛ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝｝）＊Ｅｎｃ（ｐｋ，−２×Ｓ×ｘ［１］×ｙ［１］）＊・・・＊Ｅｎｃ（ｐｋ，−２×Ｓ×ｘ［ｎ］×ｙ［ｎ］）、
に等価である。すなわち、式２２は、
Ｅｎｃ（ｐｋ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝））
に等価である。
【０２７９】
説明の便宜上、式２２に従い算出される暗号文を暗号化第２データ「ｃｃ３」と表す。
【０２８０】
照合要求装置５１２における暗号化第２データ部５１４は、照合登録情報の中の乱数が暗号化された暗号文（すなわち、暗号化乱数）ｃ２［０］と、算出した暗号化第２データｃｃ３とを含む暗号化第２情報を作成し、作成した暗号化第２情報を、暗号化第２集合部５１５に送信する。暗号化第２情報は、たとえば、（ｃ２［０］，ｃｃ３）と表すことができる。
【０２８１】
尚、以降の説明においては、説明の便宜上、「−２×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）」を、Ｄ２（Ｘ，Ｙ）と表すこともある。
【０２８２】
照合要求装置５１２における暗号化第２集合部５１５は、暗号化第２データ部５１４が送信した暗号化第２情報を受信する。暗号化第２集合部５１５は、対象データが受理可能であるか否かを判定する基準を表す閾値ｔを読み取り、読み取った閾値ｔに基づき区画される区間に含まれる値を算出する。たとえば、暗号化第２集合部５１５は、「−ｔ」から「−１」に至る整数値を算出する。次に、暗号化第２集合部５１５は、受信した暗号化第２情報に含まれる暗号化乱数ｃ２［０］の該整数値乗を算出し、さらに、該暗号化第２情報に含まれる暗号化第２データｃｃ３と掛け算した値を算出する。暗号化第２集合部５１５は、算出した値を含む暗号化第２集合を作成する。
【０２８３】
暗号化第２集合は、対象データＹとデータＸとの間の距離から、対象データＹの大きさを引いた値から、Ｓ×１からＳ×ｔに至る各（Ｓ×ｉ）（ただし、ｉは、１からｔまでの整数である）を引いた値が暗号化された値を含む。すなわち、暗号化第２集合は、式２３に示す値を含む。
【０２８４】
Ｅｎｃ（ｐｋ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×１）（以降、ｃｃ４［１］と表す），
・・・，
Ｅｎｃ（ｐｋ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×ｔ）（以降、ｃｃ４［ｔ］と表す）・・・（式２３）。
【０２８５】
また、暗号化第２集合部５１５は、さらに、暗号化第２集合に、暗号化第２情報の中の暗号化第２データｃｃ３が追加された、新たな暗号化第２集合を作成する（ステップＳＣ１１）。
【０２８６】
説明の便宜上、暗号化第２データｃｃ３をｃｃ４［０］と表す。この場合に、暗号化第２集合部５１５が算出する暗号化第２集合は、たとえば、式２４に示す態様を用いて表すことができる。
【０２８７】
（ｃｃ４［０］，・・・，ｃｃ４［ｔ］）・・・（式２４）。
【０２８８】
暗号化第２集合部５１５は、作成した暗号化第２集合を、照合要求装置５１２における暗号化第２マスク部５１６に送信する。
【０２８９】
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の例を用いながら、ステップＳＣ１１における処理について説明する。この場合に、暗号化第２集合部５１５は、暗号化第２情報（ｃ２［０］，ｃｃ３）を受信する。次に、暗号化第２集合部５１５は、閾値ｔを読み取り、暗号化第２情報に含まれる暗号化乱数ｃ２［０］に関して、「−ｔ」から「−１」に至る各整数値のべき乗を表す値を算出する。次に、暗号化第２集合部５１５は、算出した値と、暗号化第２データｃｃ３とを掛け算した値（すなわち、暗号文）を算出する。
【０２９０】
暗号化第２集合部５１５が暗号文を算出する処理は、たとえば、式２５として表すことができる。
【０２９１】
（ｃｃ３［０］×ｃ２［０］［１］｛−１｝，ｃｃ３［１］×ｃ２［０］［２］｛−１｝），
（ｃｃ３［０］×ｃ２［０］［１］｛−２｝，ｃｃ３［１］×ｃ２［０］［２］｛−２｝），
・・・，
（ｃｃ３［０］×ｃ２［０］［１］｛−ｔ｝，ｃｃ３［１］×ｃ２［０］［２］｛−ｔ｝）・・・（式２５）。
【０２９２】
尚、式２５は、式２６と等価である。尚、ｕは、「−ｔ」から「−１」までの整数値を表す。
【０２９３】
（ｃｃ３［０］×ｃ２［０］［１］｛−ｕ｝，ｃｃ３［１］×ｃ２［０］［２］｛−ｕ｝）
＝Ｅｎｃ（ｐｋ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝））×Ｅｎｃ（ｐｋ，Ｓ）｛−ｕ｝
＝Ｅｎｃ（ｐｋ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）×Ｅｎｃ（ｐｋ，−ｕ×Ｓ）
＝Ｅｎｃ（ｐｋ，−２×Ｓ×（ｘ［１］ｙ［１］＋・・・＋ｘ［ｎ］ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×ｕ）・・・（式２６）。
【０２９４】
暗号化第２集合部５１５は、式２５に示す処理によって算出された値を含む暗号化第２集合（式２４）を作成し、作成した暗号化第２集合を、照合要求装置５１２における暗号化第２マスク部５１６に送信する。
【０２９５】
照合要求装置５１２における暗号化第２マスク部５１６は、暗号化第２集合部５１５が送信した暗号化第２集合を受信する。次に、暗号化第２マスク部５１６は、たとえば、擬似乱数を算出する手順に従い、（ｔ＋１）個の乱数Ｒ［０］、・・・、Ｒ［ｔ］を算出する。この場合に、暗号化第２マスク部５１６は、算出した乱数を含むマスク値集合（Ｒ［０］，・・・，Ｒ［ｔ］）を作成してもよい。
【０２９６】
次に、暗号化第２マスク部５１６は、算出した乱数Ｒ［ｉ］（ただし、０≦ｉ≦ｔ）を、公開鍵ｐｋを用いて暗号化することにより、乱数Ｒ［ｉ］が暗号化された暗号文Ｅｎｃ（ｐｋ，Ｒ［ｉ］）を作成する。暗号化第２マスク部５１６は、受信した暗号化第２集合に含まれている暗号文ｃｃ４［ｉ］と、算出した暗号文Ｅｎｃ（ｐｋ，Ｒ［ｉ］）とを掛け算した値（式２７）を算出する。
【０２９７】
Ｅｎｃ（ｐｋ，Ｒ［ｉ］）＊ｃｃ４［ｉ］・・・（式２７）。
【０２９８】
尚、式２７は式２８に等価である。
【０２９９】
Ｅｎｃ（ｐｋ，Ｒ［ｉ］）＊ｃｃ４［ｉ］
＝Ｅｎｃ（ｐｋ，Ｒ［ｉ］）＊Ｅｎｃ（ｐｋ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×ｉ）
＝Ｅｎｃ（ｐｋ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×ｉ＋Ｒ［ｉ］）・・・（式２８）。
【０３００】
以降、式２７に従い算出された値（暗号文）をｃｃ５［ｉ］と表す。
【０３０１】
より具体的に、暗号化第２マスク部５１６は、式２９に従い、値を算出する。
【０３０２】
Ｅｎｃ（ｐｋ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×０＋Ｒ［０］），
・・・，
Ｅｎｃ（ｐｋ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×ｔ＋Ｒ［ｔ］）・・・（式２９）
暗号化第２マスク部５１６は、算出した値（式２７）を含む暗号化第２マスクを作成する（ステップＳＣ１２）。
【０３０３】
加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の例を用いて、ステップＳＣ１２における処理について説明する。
【０３０４】
この例の場合に、暗号化第２マスク部５１６は、暗号化第２集合部５１５が送信した暗号化第２集合を受信する。次に、暗号化第２マスク部５１６は、たとえば、擬似乱数を生成する手順に従い、（ｔ＋１）個の乱数Ｒ［０］、・・・、Ｒ［ｔ］を算出する。次に、暗号化第２マスク部５１６は、公開鍵ｐｋから、生成元ｇを読み取り，生成元ｇを算出した乱数Ｒ［ｉ］乗した値ｇ｛Ｒ［ｉ］｝（ただし、０≦ｉ≦ｔ）を算出する。次に、暗号化第２マスク部５１６は、受信した暗号化第２集合に含まれている暗号文ｃｃ４［ｉ］の第２項と、算出した値とを掛け算した値（式３１）を算出する。
【０３０５】
（ｃｃ４［０］［１］，ｃｃ４［０］［２］×ｇ｛Ｒ［０］｝），
・・・，
（ｃｃ４［ｔ］［１］，ｃｃ４［ｔ］［２］×ｇ｛Ｒ［ｔ］｝）・・・（式３１）。
【０３０６】
尚、式３１に示された（ｃｃ４［ｉ］［１］，ｃｃ４［ｉ］［２］×ｇ｛Ｒ［ｉ］｝）は、式３２に示す式と等価である。
【０３０７】
ＴＥｎｃ（ｐｋ，ｘｐ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×ｉ）＊ＴＥｎｃ（ｐｋ，０，Ｒ［ｉ］）
＝ＴＥｎｃ（ｐｋ，ｘｐ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×ｉ＋Ｒ［ｉ］）・・・（式３２）。
【０３０８】
したがって、この場合に、式３１に示された値の集合は、式３３に示された値の集合と等価である。
【０３０９】
（ｃｃ４［０］［１］，ｃｃ４［０］［２］×ｇ｛Ｒ［０］｝）
＝ＴＥｎｃ（ｐｋ，ｘｐ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×０＋Ｒ［０］）
＝ｃｃ５［０］，
・・・，
（ｃｃ４［ｔ］［１］，ｃｃ４［ｔ］［２］×ｇ｛Ｒ［ｔ］｝）
＝ＴＥｎｃ（ｐｋ，ｘｐ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×ｔ＋Ｒ［ｔ］）
＝ｃｃ５［ｔ］・・・（式３３）。
【０３１０】
暗号化第２マスク部５１６は、式３１に従い算出した値を含む暗号化第２マスク（ｃｃ５［１］，・・・ｃｃ５［ｔ］）を作成し、作成した暗号化第２マスクを、照合要求装置５１２における照合データ部５１８に送信する。暗号化第２マスク部５１６は、マスク値集合（Ｒ［０］，・・・，Ｒ［ｔ］）を検証マスク部５１７に送信する。
【０３１１】
尚、式２７を用いて算出された値を表すｃｃ５［ｉ］は、値Ｄ２（Ｘ，Ｙ）を用いて式３４として表すことができる。
【０３１２】
ｃｃ５［ｉ］
＝Ｅｎｃ（ｐｋ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×ｉ＋Ｒ［ｉ］）
＝Ｅｎｃ（ｐｋ，Ｓ×Ｄ２（Ｘ，Ｙ）−Ｓ×ｉ＋Ｒ［ｉ］）・・・（式３４）。
【０３１３】
検証マスク部５１７は、暗号化第２マスク部５１６が送信したマスク値集合（Ｒ［０］，・・・，Ｒ［ｔ］）を受信する。検証マスク部５１７は、公開鍵ｐｋに含まれている生成元ｇを読み取り、該マスク値集合に含まれている値（乱数Ｒ［ｉ］と表す）に関して、それぞれ、読み取った生成元ｇがＲ［ｉ］乗された値を算出する。ただし、０≦ｉ≦ｔである。次に、検証マスク部５１７は、算出した値を入力として、ハッシュ関数Ｈを適用することにより、該値に対するハッシュ値Ｈ（ｇ｛Ｒ［ｉ］｝）（以降、ｈ１［ｉ］と表す）を算出する。すなわち、検証マスク部５１７が算出するハッシュ値Ｈ（ｇ｛Ｒ［ｉ］｝）は、式３５としても記述することができる。
【０３１４】
Ｈ（ｇ｛Ｒ［０］｝），
・・・，
Ｈ（ｇ｛Ｒ［ｔ］｝）・・・（式３５）。
【０３１５】
検証マスク部５１７は、算出したハッシュ値を含む検証マスクを作成する（ステップＳＣ１３）。たとえば、検証マスク部５１７が算出する検証マスクは、式３６として表すことができる。
【０３１６】
（ｈ１［０］，・・・，ｈ１［ｔ］）・・・（式３６）。
【０３１７】
検証マスク部５１７は、作成した検証マスクを、照合要求装置５１２における照合データ部５１８に送信する。
【０３１８】
照合要求装置５１２における照合データ部５１８は、暗号化第２集合部５１５が送信した暗号化第２マスク（ｃｃ５［０］，・・・，ｃｃ５［ｔ］）、及び、検証マスク部５１７が送信した検証マスクを受信する。
【０３１９】
照合データ部５１８は、０からｔに至る値（以降、［０，ｔ］と表す）に関する順列πをランダムに作成する。順列πは、すなわち、区間［０，ｔ］に含まれる任意の整数ｉに対してπ（ｉ）は［０，ｔ］の要素である条件、及び、区間［０，ｔ］に含まれる各整数ｉについてπ（ｉ）に重複がない条件を満たす。
【０３２０】
次に、照合データ部５１８は、作成した順列πに従い、受信した暗号化第２マスクに含まれている要素の順序を並び替え、さらに、作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える。
【０３２１】
説明の便宜上、作成した該順列πに従い、暗号化第２マスクに含まれている要素の順序を並び替える処理を、ｃｃ５［π（ｉ）］と表す。作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える処理を、ｈ１［π（ｉ）］と表す。また、ｃｃ５［π（ｉ）］をｃｃ６［ｉ］と表し、ｈ１［π（ｉ）］をｈ２［ｉ］と表す。
【０３２２】
この場合に、式３４によれば、ｃｃ６［ｉ］は、値Ｄ２（Ｘ，Ｙ）を用いて、式３７として表すことができる。
【０３２３】
Ｅｎｃ（ｐｋ，Ｓ×Ｄ２（Ｘ，Ｙ）−Ｓ×π（ｉ）＋Ｒ［π（ｉ）］）・・・（式３７）。
【０３２４】
次に、照合データ部５１８は、算出したｃｃ６［ｉ］と、算出したｈ２［ｉ］とを含む情報を作成し、さらに、区間［０，ｔ］に含まれているｉに関して、該情報を含む照合データを作成する（ステップＳＣ１４）。照合データ部５１８が作成する照合データは、たとえば、式３８に示された態様を用いて表すことができる。
【０３２５】
（（ｃｃ６［０］，ｈ２［０］），・・・，（ｃｃ６［ｔ］，ｈ２［ｔ］））・・・（式３８）。
【０３２６】
照合データ部５１８は、作成した照合データ（たとえば、式３８に示された値）を、照合装置５１９における検証データ生成部５２３に送信する（ステップ（ＳＣ１５−１））。
【０３２７】
照合装置５１９における検証データ生成部５２３は、照合準備部５２１が送信した暗号化第１データｃｃ２（たとえば、式１５）、及び、照合データ部５１８が送信した照合データ（たとえば、式３８に示された値）を受信する（ステップ（ＳＣ１５−２））。検証データ生成部５２３は、受信した照合データに含まれているｃｃ６［ｉ］（ただし、０≦ｉ≦ｔ）を読み取り、読み取ったｃｃ６［ｉ］と、受信した暗号化第１データｃｃ２とが掛け算された値（式３９）を算出する。
【０３２８】
Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝））＊Ｅｎｃ（ｐｋ，Ｓ×Ｄ２（Ｘ，Ｙ）−Ｓ×π（ｉ）＋Ｒ［π（ｉ）］）・・・（式３９）。
【０３２９】
検証データ生成部５２３が算出する値（式３９）は、式４０と等価である。
【０３３０】
Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）＋Ｓ×Ｄ２（Ｘ，Ｙ）−Ｓ×π（ｉ）＋Ｒ［π（ｉ）］）
＝Ｅｎｃ（ｐｋ，Ｓ×（（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−２×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝））−Ｓ×π（ｉ）＋Ｒ［π（ｉ）］）
＝Ｅｎｃ（ｐｋ，Ｓ×（（ｘ［１］−ｙ［１］）｛２｝＋・・・＋（ｘ［ｎ］−ｙ［ｎ］）｛２｝）−Ｓ×π（ｉ）＋Ｒ［π（ｉ）］）・・・（式４０）。
【０３３１】
したがって、「（ｘ［１］−ｙ［１］）｛２｝＋・・・＋（ｘ［ｎ］−ｙ［ｎ］）｛２｝）」をＤ（Ｘ，Ｙ）と表すことによって、式４０は、式４１と等価である。
【０３３２】
Ｅｎｃ（ｐｋ，Ｓ×Ｄ（Ｘ，Ｙ）−Ｓ×π（ｉ）＋Ｒ［π（ｉ）］）・・・（式４１）。
【０３３３】
説明の便宜上、式３９に示された値をｃｃ７［ｉ］と表す。
【０３３４】
すなわち、０≦ｉ≦ｔなるｉに対して、検証データ生成部５２３は、式４２に示す値を算出する。
【０３３５】
Ｅｎｃ（ｐｋ，Ｓ×Ｄ（Ｘ，ｙ）−Ｓ×π（０）＋Ｒ［π（０）］），
・・・，
Ｅｎｃ（ｐｋ，Ｓ×Ｄ（Ｘ，ｙ）−Ｓ×π（ｔ）＋Ｒ［π（ｔ）］）・・・（式４２）。
【０３３６】
検証データ生成部５２３は、算出したｃｃ７［ｉ］と、受信した照合データに含まれているｈ２［ｉ］とが関連付けされた情報（ｃｃ７［ｉ］，ｈ２［ｉ］）を作成する。検証データ生成部５２３は、０≦ｉ≦ｔなるｉに対して、作成した情報を含む検証データを作成する（ステップＳＣ１６）。たとえば、検証データ生成部５２３が作成する検証データは、式４３に示す態様にて表すことができる。
【０３３７】
（（ｃｃ７［０］，ｈ２［０］），・・・，（ｃｃ７［ｔ］，ｈ２［ｔ］））・・・（式４３）。
【０３３８】
検証データ復号部５１０は、作成した検証データを、検証装置５２４における検証データ復号部５１０に送信する（ステップ（ＳＣ１７−１））。
【０３３９】
加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の例を用いながら、ステップＳＣ１６における処理について説明する。この場合に、検証データ生成部５２３は、照合準備部５２１から暗号化第１データｃｃ２に加え，乱数ｘｐを受信する。受信した照合データに含まれているｃｃ６［ｉ］（ただし、０≦ｉ≦ｔ）を読み取り、読み取ったｃｃ６［ｉ］を変形パラメータ１／ｘｐによって変形した値と、受信した暗号化第１データｃｃ２とが掛け算された値（すなわち、ＴＥｎｃ（ｐｋ，１／ｘｐ，ｃｃ２）＊ｃｃ６［ｉ］）を算出する。したがって、０≦ｉ≦ｔなるｉに対して、検証データ生成部５２３は、式４４に示す値を算出する。
【０３４０】
（ｃｃ２［１］｛１／ｘｐ｝×ｃｃ６［０］［１］｛１／ｘｐ｝，ｃｃ２［２］×ｃｃ６［０］［２］）（この値は、Ｅｎｃ（ｐｋ，Ｓ×Ｄ（Ｘ，ｙ）−Ｓ×π（０）＋Ｒ［π（０）］）と等価である），
・・・，
（ｃｃ２［１］｛１／ｘｐ｝×ｃｃ６［ｔ］［１］｛１／ｘｐ｝，ｃｃ２［２］×ｃｃ６［０］［２］）（この値は、Ｅｎｃ（ｐｋ，Ｓ×Ｄ（Ｘ，ｙ）−Ｓ×π（ｔ）＋Ｒ［π（ｔ）］）と等価である）・・・（式４４）。
【０３４１】
検証データ生成部５２３は、算出したｃｃ７［ｉ］と、受信した照合データに含まれているｈ２［ｉ］とが関連付けされた情報を作成する。検証データ生成部５２３は、０≦ｉ≦ｔなるｉに対して、作成した情報を含む検証データを作成する（ステップＳＣ１６）。検証データ生成部５２３は、作成した検証データ（たとえば、式４３）を、検証装置５２４における検証データ復号部５１０に送信する（ステップ（ＳＣ１７−１））。
【０３４２】
検証装置５２４における検証データ復号部５１０は、検証データ生成部５２３が送信した検証データを受信し（ステップ（ＳＣ１７−２））、さらに、鍵記憶部５０９から秘密鍵ｓｋを読み取る。次に、検証データ復号部５１０は、受信した検証データに含まれている暗号文ｃｃ７［ｉ］（ただし、０≦ｉ≦ｔ）を読み取り、読み取った暗号文ｃｃ７［ｉ］を、秘密鍵ｓｋを用いて復号する。尚、検証データ復号部５１０が秘密鍵ｓｋを用いて、暗号文ｃｃ７［ｉ］を復号する処理Ｄｅｃは、式４５に示す態様にて表すことができる。
【０３４３】
Ｄｅｃ（ｓｋ，ｃｃ７［ｉ］）・・・（式４５）。
【０３４４】
尚、説明の便宜上、式４５に示された値をｄｄ１［ｉ］と表す。
【０３４５】
すなわち、上述した処理によって、検証データ復号部５１０は、式４６に示す値を算出する。
【０３４６】
Ｄｅｃ（ｓｋ，ｃｃ７［０］），
・・・，
Ｄｅｃ（ｓｋ，ｃｃ７［ｔ］）・・・（式４６）。
【０３４７】
検証データ復号部５１０は、算出したｄｄ１［ｉ］と、検証データに含まれているｈ２［ｉ］とが関連付けされた情報を作成する。次に、検証データ復号部５１０は、０≦ｉ≦ｔなるｉに関して作成した情報が含まれている復号後検証データを作成する（ステップＳＣ１８）。検証データ復号部５１０が作成する復号後検証データは、たとえば、式４７に示す態様に従い表すことができる。
【０３４８】
（（ｄｄ１［０］，ｈ２［０］），・・・，（ｄｄ１［ｔ］，ｈ２［ｔ］））・・・（式４７）。
【０３４９】
たとえば、加法に関して準同型性を有する公開鍵暗号としてＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の例を用いながら、ステップＳＣ１７における処理について説明する。検証データ復号部５１０は、秘密鍵ｓｋから読み取った値ｘを用いて、ｃｃ７［ｉ］を復号する。すなわち、検証データ復号部５１０が処理する手順は、式４８に示すように表すことができる。
【０３５０】
ｃｃ７［０］［２］／（ｃｃ７［０］［１］｛ｘ｝），
・・・，
ｃｃ７［ｔ］［２］／（ｃｃ７［ｔ］［１］｛ｘ｝）・・・（式４８）。
【０３５１】
検証データ復号部５１０は、作成した復号後検証データを、検証装置５２４における検証部５１１に送信する。
【０３５２】
検証装置５２４における検証部５１１は、検証データ復号部５１０が送信した復号後検証データ（式４７）を受信する。検証部５１１は、受信した復号後検証データから、０≦ｉ≦ｔなるｉに関して、ｄｄ１［ｉ］を読み取り、読み取ったｄｄ１［ｉ］にハッシュ関数Ｈが適用された値Ｈ（ｄｄ１［ｉ］）を算出する。
【０３５３】
次に、検証部５１１は、０≦ｉ≦ｔなるｉに関して、復号後検証データからｈ２［ｉ］を読み取り、読み取ったｈ２［ｉ］と算出したＨ（ｄｄ１［ｉ］）とが一致するか否かを判定する。
【０３５４】
検証部５１１は、０≦ｉ≦ｔなるｉのうち、少なくとも１つ以上のｉに関して、ｈ２［ｉ］とＨ（ｄｄ１［ｉ］）とが一致する場合に、「一致」を表す検証結果を作成する。さもなくば、検証部５１１は、「不一致」を表す検証結果を作成する（ステップＳＣ１９）。
【０３５５】
検証部５１１は、算出した検証結果を、照合装置５１９における判定部５２２に送信する（ステップ（ＳＣ２０−１））。
【０３５６】
照合装置５１９における判定部５２２は、検証部５１１が送信した検証結果を受信する（ステップ（ＳＣ２０−２））。判定部５２２は、検証結果が「一致」である場合に、判定結果として「受理」を算出し、検証結果が「不一致」である場合に、判定結果として「不受理」を算出する（ステップＳＣ２１）。判定部５２２は、算出した判定結果を出力してもよい（ステップＳＣ２２）。
【０３５７】
次に、第４の実施形態に係る照合システム５０１に関する効果について説明する。
【０３５８】
第４の実施形態に係る照合システム５０１によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。さらに、第４の実施形態に係る照合システム５０１によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理が可能である。この理由は、第４の実施形態に係る照合システム５０１が、第１の実施形態に係る照合システム１０１が有する構成を含むからである。
【０３５９】
さらに、第４の実施形態に係る照合システム５０１によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果も奏する。さらに、第４の実施形態に係る照合システム５０１によれば、たとえ、照合要求装置５１２が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果も奏する。
【０３６０】
この理由は、第４の実施形態に係る照合システム５０１が有する構成が、第１の実施形態に係る照合システム１０１が有する構成を含むからである。
【０３６１】
さらに、第４の実施形態に係る照合システム５０１によれば、該照合システム５０１における処理負荷が少ないという効果を奏する。
【０３６２】
この理由は、暗号化登録情報に含まれている情報量が、少ないからである。すなわち、暗号化登録情報は、登録データがｎ個の要素を含む場合に、該登録データに関する暗号化登録情報は、（ｎ＋１）個の要素が暗号化された暗号文であるからである。
【０３６３】
尚、本実施形態においては、ユークリッド距離の例を挙げたが、他の距離（たとえば、ハミング距離、マハラノビス距離等）にも容易に適用可能である。
【０３６４】
＜第５の実施形態＞
次に、上述した第２の実施形態を基本とする本発明の第５の実施形態について説明する。
【０３６５】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第２の実施形態、または、第４の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０３６６】
図１４を参照しながら、本発明の第５の実施形態に係る照合システム６０１が有する構成について詳細に説明する。図１４は、本発明の第５の実施形態に係る照合システム６０１が有する構成を示すブロック図である。
【０３６７】
第５の実施形態に係る照合システム６０１は、大別して、登録データ装置５０２と、照合要求装置６１２と、記憶装置５０４と、照合装置６１９と、検証装置６２４とを有する。
【０３６８】
登録データ装置５０２は、暗号化部５０３を有する。
【０３６９】
記憶装置５０４は、識別子管理部５０６と、登録データ情報記憶部５０５と、登録データ検索部５０７とを有する。
【０３７０】
検証装置６２４は、鍵生成部５０８と、鍵記憶部５０９と、検証データ復号部５１０と、検証部５１１と、検証データ生成部６２３とを有する。
【０３７１】
照合装置６１９は、照合登録情報要求部６２０と、照合準備部６２１と、判定部６２２とを有する。
【０３７２】
照合要求装置６１２は、照合要求部６１３と、暗号化第２データ部６１４と、暗号化第２集合部６１５と、暗号化第２マスク部６１６と、検証マスク部６１７と、照合データ部６１８とを有する。
【０３７３】
登録データ装置５０２と、照合要求装置６１２と、記憶装置５０４と、照合装置６１９と、検証装置６２４とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。
【０３７４】
本実施形態においては、距離としてｎ次元ユークリッド距離の場合の例を参照しながら、本実施形態に係る照合システム６０１における処理について説明する。また、本実施形態では、加法に関して準同型性を有する公開鍵暗号としてＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号を用いる場合の例を参照しながら該処理について説明するが、Ｐａｉｌｌｉｅｒ暗号等の他の加法に関して準同型性を有する暗号を利用しても構わない。尚、本実施形態において、ｎ次元ユークリッド距離およびＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号は、第４の実施形態におけるｎ次元ユークリッド距離、及び、Ｍｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号と同様であるので、これらの説明については省略する。
【０３７５】
次に、本発明の第５の実施形態に係る照合システム６０１における処理について詳細に説明する。照合システム６０１における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。
【０３７６】
まず、図１５を参照しながら、本実施形態に係る照合システム６０１が、準備フェーズにて実行する処理について説明する。図１５は、準備フェーズにおいて、第５の実施形態に係る照合システム６０１が実行する処理の一例を示すフローチャート（シーケンス図）である。
【０３７７】
検証装置６２４における鍵生成部５０８は、セキュリティパラメータ１ｋを受信し、加法に関して準同型性を有する公開鍵暗号に従い、受信したセキュリティパラメータ１ｋを用いて公開鍵ｐｋ、及び、秘密鍵ｓｋを生成する（ステップＴＡ１）。尚、生成される公開鍵、及び、秘密鍵は、該鍵生成アルゴリズムに従い生成されるので、加法に関して準同型性を有する公開鍵暗号に準拠する。さらに、鍵生成部５０８は、入力された値に対して、特定の値を算出するハッシュ関数Ｈを決定する（ステップＴＡ２）。鍵生成部５０８は、照合システム６０１における各部に、作成したハッシュ関数Ｈ、及び、生成した公開鍵を公開する（ステップＴＡ３）。鍵生成部５０８は、生成した秘密鍵を鍵記憶部５０９に格納する（ステップＴＡ４）。
【０３７８】
たとえば、鍵生成アルゴリズムが、加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号における鍵生成アルゴリズムである場合の例を参照しながら、ステップＴＡ１における処理について説明する。
【０３７９】
鍵生成部５０８は、セキュリティパラメータ１ｋを受信する。次に、鍵生成部５０８は、受信したセキュリティパラメータ１ｋに基づき、位数がｋビットである素数ｐである群Ｇと、群Ｇに関する生成元ｇとを生成する。鍵生成部５０８は、Ｚｐの中から値ｘをランダムに選び、生成元ｇのｘ乗を算出する。すなわち、鍵生成部５０８は、ｇｘ（＝ｙ）を算出する。鍵生成部５０８は、群Ｇ、素数ｐ、生成元ｇ、及び、算出した値ｙが関連付けされた公開鍵ｐｋを算出する（ステップＴＡ１）。鍵生成部５０８は、公開鍵ｐｋ、及び、値ｘが関連付けされた（ｐｋ，ｘ）を、秘密鍵ｓｋとして算出する（ステップＴＡ１）。
【０３８０】
次に、図１６を参照しながら、本実施形態に係る照合システム６０１が、登録フェーズにて実行する処理について説明する。図１６は、登録フェーズにおいて、第５の実施形態に係る照合システム６０１が実行する処理の一例を示すシーケンス図である。
【０３８１】
登録データ装置５０２における暗号化部５０３は、式１０に示すような複数の要素を含むデータＸを受信する。暗号化部５０３は、受信したデータＸに含まれている要素の二乗和（式１１）を算出する。次に、暗号化部５０３は、データＸに含まれている要素と、算出した二乗和とを、公開鍵ｐｋを用いて暗号化する。次に、暗号化部５０３は、式１２に従い算出された値が関連付けされた暗号化登録情報（式１３）を作成する（ステップＴＢ１）。
【０３８２】
ステップＴＢ１について、詳細に説明する。暗号化部５０３は、集合Ｚｐの中から、複数の値（以降、説明の便宜上、「乱数」と表す）を選ぶ。暗号化部５０３が選んだ複数の乱数を、ｒ１［１］、・・・、ｒ１［ｎ］、及び、ｒｒ１と表す。
【０３８３】
暗号化部５０３は、データＸを受信した場合に、式１１に従い二乗和を算出する。次に、暗号化部５０３は、公開鍵ｐｋから、生成元ｇと、値ｙとを読み取る。暗号化部５０３は、読み取った生成元ｇを乱数乗した値（「値７」と表す）を算出する。暗号化部５０３は、読み取った生成元ｙの該乱数乗と、読み取った生成元ｇを「データＸに含まれる要素」乗した値とが掛け算された値を算出する（「値５」と表す）。さらに、暗号化部５０３は、読み取った生成元ｙの該乱数乗と、読み取った生成元ｇを「式１１に従い算出した二乗和」乗した値とが掛け算された値（「値６」と表す）を算出する。次に、暗号化部５０３は、値５及び値７が関連付けされた暗号文（すなわち、二乗和に関する暗号文）を算出する。すなわち、暗号化部５０３は、式１２に示された暗号文を算出する。暗号化部５０３は、該２つの暗号文を含む暗号化登録情報（式１３）を作成する（ステップＴＢ１）。暗号化部５０３は、作成した暗号化登録情報を、照合装置６１９における識別子管理部５０６に送信する（ステップ（ＴＢ２−１））。
【０３８４】
記憶装置５０４における識別子管理部５０６は、暗号化部５０３が送信した暗号化登録情報を受信し（ステップ（ＴＢ２−２））、受信した暗号化登録情報を一意に識別可能な登録識別子を作成する（ステップＴＢ３）。識別子管理部５０６は、作成した登録識別子と、受信した暗号化登録情報とが関連付けされた登録データ情報を作成し、作成した該登録データ情報を、記憶装置５０４における登録データ情報記憶部５０５に格納する（ステップＴＢ４）。識別子管理部５０６は、作成した該登録識別子を、登録データ装置５０２に送信する（ステップ（ＴＢ５−１））。
【０３８５】
記憶装置５０４における登録データ装置５０２は、該登録識別子を受信し（ステップ（ＴＢ５−２））、たとえば、受信した該登録識別子を、ディスプレイ等のユーザインターフェース（ＵＩ）に表示する（ステップＴＢ６）。あるいは、登録データ装置５０２は、社員証や、識別子カード等の、ＩＣ（ｉｎｔｅｇｒａｔｅｄ＿ｃｉｒｃｕｉｔ）カードに、該登録識別子を格納してもよい。また、識別子管理部５０６が、作成した該登録識別子を表示してもよい。
【０３８６】
尚、本実施形態に係る照合システム６０１が登録フェーズにて実行する処理は、図１６に例示された様態に限定されない。
【０３８７】
図１７Ａ及び図１７Ｂを参照しながら、本実施形態に係る照合システム６０１が、照合フェーズにて実行する処理について説明する。図１７Ａ及び図１７Ｂは、照合フェーズにおいて、第５の実施形態に係る照合システム６０１が実行する処理の一例を示すシーケンス図である。
【０３８８】
照合要求装置６１２における照合要求部６１３は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部６１３は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する（ステップＳＤ１）。照合要求部６１３は、作成した該照合要求を、照合装置６１９における照合登録情報要求部６２０に送信する（ステップ（ＳＤ２−１））。照合要求は、たとえば、該登録識別子を含む。
【０３８９】
照合装置６１９における照合登録情報要求部６２０は、照合要求部６１３が送信した照合要求を受信し（ステップ（ＳＤ２−２））、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部６２０は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し（ステップＳＤ３）、作成した該登録データ要求を、記憶装置５０４における登録データ検索部５０７に送信する（ステップ（ＳＤ４−１））。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。
【０３９０】
記憶装置５０４における登録データ検索部５０７は、照合登録情報要求部６２０が送信した登録データ要求を受信する（ステップ（ＳＤ４−２））。登録データ検索部５０７は、登録データ情報（たとえば、登録データ情報記憶部５０５に格納されている）において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する（ステップＳＤ５）。登録データ検索部５０７は、特定した暗号化登録情報を、照合装置６１９における照合準備部６２１に送信する（ステップ（ＳＤ６−１））。
【０３９１】
照合装置６１９における照合準備部６２１は、登録データ検索部５０７が送信した暗号化登録情報（式１３）を受信する（ステップ（ＳＤ６−２））。照合準備部６２１は、たとえば、擬似乱数を生成する手順に従い、値Ｓ（以降、乱数Ｓと表す）を生成する。照合準備部６２１は、暗号化登録情報に含まれている各要素が値Ｓ乗された値と、該乱数が暗号化された暗号文（すなわち、「暗号化乱数」）とを算出する。この処理によって、照合準備部６２１は、該暗号化登録情報の基となった登録データが「値Ｓ」倍された値が暗号化された暗号文、及び、該登録データの大きさが「値Ｓ」倍された値が暗号化された暗号文（すなわち、「暗号化第１データ」）を算出する（ステップＳＤ７）。照合準備部６２１は、算出した値のうち登録データの各値が「値Ｓ」倍された値の暗号文と、算出した該暗号化乱数とを含む照合登録情報を作成し（ステップＳＤ８）、作成した照合登録情報を、照合要求装置６１２における暗号化第２データ部６１４に送信する（ステップ（ＳＤ９−１））。さらに、照合準備部６２１は、ステップＳＤ７にて算出された値のうち登録データの大きさが「値Ｓ」倍された値の暗号文（すなわち、「暗号化第１データ」）を、検証装置６２４における検証データ生成部６２３に送信する（ステップ（ＳＤ１０−１））。
【０３９２】
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の場合の例を参照しながら、ステップＳＤ７、及び、ステップＳＤ８について詳細に説明する。この場合に、照合準備部６２１は、集合Ｚｐの中から、値（以降、説明の便宜上、「乱数」と表す）を選ぶ。この処理にて暗号化部５０３が選んだ複数の乱数を、ｒ２［０］と表す。さらに、照合準備部６２１は、たとえば、擬似乱数を生成する手順に従い、乱数Ｓを生成する。
【０３９３】
照合準備部６２１は、公開鍵ｐｋから、生成元ｇと、値ｙとを読み取る。暗号化部５０３は、読み取った生成元ｇのｒ２［０］乗の値を算出する。照合準備部６２１は、読み取った生成元ｙの該ｒ２［０］乗と、読み取った生成元ｇをＳ乗した値とが掛け算された値を算出する。照合準備部６２１は、算出した２つの値が関連付けされた暗号文を作成する。すなわち、照合準備部６２１は、これらの処理によって、乱数Ｓが公開鍵ｐｋを用いて暗号化された暗号文Ｅｎｃ（ｐｋ，Ｓ）（式４９、すなわち、暗号化乱数）を算出する。
【０３９４】
（ｇ｛ｒ２［０］｝，ｙ｛ｒ２［０］｝×ｇ｛Ｓ｝）
＝Ｅｎｃ（ｐｋ，Ｓ）（すなわち、ｃ２［０］）・・・（式４９）。
【０３９５】
次に、照合準備部６２１は、式１６に示された暗号文を含む照合登録情報に関して、該登録データに含まれる要素の値を乱数Ｓ乗した値（式５０）を算出する。
【０３９６】
（ｃ１［１］［１］｛Ｓ｝，ｃ１［１］［２］｛Ｓ｝）（すなわち、Ｅｎｃ（ｐｋ，Ｓ×ｘ［１］）、ｃ２［１］），
・・・，
（ｃ１［ｎ］［１］｛Ｓ｝，ｃ１［ｎ］［２］｛Ｓ｝）（すなわち、Ｅｎｃ（ｐｋ，Ｓ×ｘ［ｎ］）、ｃ２［ｎ］），
（ｃｃ１［１］｛Ｓ｝，ｃｃ１［２］｛Ｓ｝）（すなわち、Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）、ｃｃ２）・・・（式５０）。
【０３９７】
ただし、暗号文ｃ１［ｉ］は、（ｃ１［ｉ］［１］，ｃ１［ｉ］［２］）である。ｉは、自然数を表す。
【０３９８】
この処理によって、照合準備部６２１は、該登録データを算出した基であるデータＸに含まれている要素、及び、データＸに関して式１１に従い算出された二乗和に関して、それぞれ、乱数Ｓ倍された値が、公開鍵ｐｋを用いて暗号化された値（式１５）を算出する（ステップＳＤ７）。照合準備部６２１は、算出した値（式１５）を含む照合登録情報（式１６）を作成する（ステップＳＤ８）。ステップＳＤ７によって、照合準備部６２１は、該二乗和がＳ倍された値が暗号化された暗号化第１データ（式１５におけるｃｃ２）も算出している。
【０３９９】
照合要求装置６１２における暗号化第２データ部６１４は、対象データＹ、及び、照合準備部６２１が送信した照合登録情報を受信する（ステップ（ＳＤ９−２））。暗号化第２データ部６１４は、上述したステップＳ１０１乃至ステップＳ１０４に示す処理を実行することによって、暗号化第２情報（ｃ２［０］，ｃｃ３）を作成する（ステップＳＤ１１）。すなわち、暗号化第２情報は、暗号化乱数ｃ２［０］と、暗号化第２データｃｃ３とを含む。
【０４００】
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の場合の例を参照しながら、ステップＳＤ１１に示した処理について説明する。
【０４０１】
この場合に、暗号化第２データ部６１４は、たとえば、受信したデータＹ（式１９）における各要素の２乗和を算出することにより、受信した対象データＹの大きさを算出する。次に、暗号化第２データ部６１４は、式１６に示された照合登録情報の中の暗号化乱数ｃ２［０］を読み取り、読み取った暗号化乱数が該大きさ乗された値（式２０）を算出する。
【０４０２】
次に、暗号化第２データ部６１４は、照合登録情報に含まれている第ｉ要素と、読み取り、対象データＹに含まれている第ｉ要素と読み取る。暗号化第２データ部６１４は、照合登録情報（式１６）に含まれている第ｉ要素が、「−２×対象データＹに含まれている第ｉ要素」乗された値（式２１）を算出する。ただし、ｉは、自然数を表す。
【０４０３】
暗号化第２データ部６１４は、暗号化乱数ｃ２［０］と、算出した暗号化第２データｃｃ３（式２２）とを含む暗号化第２情報（ｃ２［０］，ｃｃ３）を作成する。暗号化第２データ部６１４は、作成した暗号化第２情報を、照合要求装置６１２における暗号化第２集合部６１５に送信する。
【０４０４】
照合要求装置６１２における暗号化第２集合部６１５は、暗号化第２データ部６１４が送信した暗号化第２情報（ｃ２［０］，ｃｃ３）を受信する。暗号化第２集合部６１５は、閾値ｔを読み取り、「−ｔ」から「−１」に至る整数値を算出する。次に、暗号化第２集合部６１５は、受信した暗号化第２情報の中の暗号化乱数ｃ２［０］の該整数値乗を算出する。この処理よって、暗号化第２集合は、（Ｓ×（−ｔ））から（Ｓ×（−１））に至る各値（Ｓ×ｉ）（ただし、ｉは、−ｔから−１に至る整数）が暗号化した値が算出される。暗号化第２集合は、算出した各値と、暗号化第２データｃｃ３と掛け算する（式２３）。暗号化第２集合部６１５は、算出した各値を含む暗号化第２集合（式２４）を作成する（ステップＳＤ１２）。暗号化第２マスク部６１６は、作成したマスク値集合、及び、作成した暗号化第２集合を、照合要求装置６１２における暗号化第２マスク部６１６に送信する。
【０４０５】
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の例を用いながら、ステップＳＤ１２における処理について説明する。この場合に、暗号化第２集合部６１５は、暗号化第２情報（ｃ２［０］，ｃｃ３）を受信する。次に、暗号化第２集合部６１５は、閾値ｔを読み取り、暗号化第２情報の中の暗号化乱数ｃ２［０］に関して、「−ｔ」から「−１」に至る各整数値のべき乗を表す値を算出する。次に、暗号化第２集合部６１５は、算出した値と、暗号化第２情報の中の暗号化第２データｃｃ３とを掛け算した値を算出する（式２５）。暗号化第２集合部６１５は、算出した値を含む暗号化第２集合（ｃｃ４［０］，・・・，ｃｃ４［ｔ］）を作成する（ステップＳＤ１２）。暗号化第２集合部６１５は、作成した暗号化第２集合を、照合要求装置６１２における暗号化第２マスク部６１６に送信する。
【０４０６】
照合要求装置６１２における暗号化第２マスク部６１６は、暗号化第２集合部６１５が送信した暗号化第２集合を受信する。暗号化第２マスク部６１６は、たとえば、擬似乱数を算出する手順に従い、（ｔ＋１）個の乱数Ｒ［０］、・・・、Ｒ［ｔ］を算出する。この場合に、暗号化第２マスク部６１６は、算出した乱数が関連付けされたマスク値集合（Ｒ［０］，・・・，Ｒ［ｔ］）を作成してもよい。次に、暗号化第２マスク部６１６は、算出した乱数Ｒ［ｉ］（ただし、０≦ｉ≦ｔ）を、公開鍵ｐｋを用いて暗号化することにより、乱数Ｒ［ｉ］が暗号化された暗号文Ｅｎｃ（ｐｋ，Ｒ［ｉ］）を作成する。次に、暗号化第２マスク部６１６は、受信した暗号化第２集合に含まれている要素ｃｃ４［ｉ］と、算出した暗号文Ｅｎｃ（ｐｋ，Ｒ［ｉ］）とを掛け算した値（式２７）を算出する。すなわち、暗号化第２マスク部６１６は、１≦ｉ≦ｎなるｉに関して、式２７に従い、式２９に示された値を算出する。暗号化第２マスク部６１６は、算出した値（式２９）を含む暗号化第２マスク（ｃｃ５［０］，・・・，ｃｃ５［ｔ］）を作成する（ステップＳＤ１３）。暗号化第２マスク部６１６は、作成した暗号化第２マスクを、照合要求装置６１２における照合データ部６１８に送信する。暗号化第２マスク部６１６は、マスク値集合（Ｒ［０］，・・・，Ｒ［ｔ］）を検証マスク部６１７に送信する。
【０４０７】
加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の例を用いて、ステップＳＤ１３における処理について説明する
この例の場合に、暗号化第２マスク部６１６は、暗号化第２集合部６１５が送信した暗号化第２集合を受信する。次に、暗号化第２マスク部６１６は、たとえば、擬似乱数を算出する手順に従い、（ｔ＋１）個の乱数Ｒ［０］、・・・、Ｒ［ｔ］を算出する。次に、暗号化第２マスク部６１６は、算出した乱数Ｒ［ｉ］（ただし、０≦ｉ≦ｔ）を算出し、算出した値を、公開鍵ｐｋを用いて暗号化することにより、乱数Ｒ［ｉ］が暗号化されたＥｎｃ（ｐｋ，Ｒ［ｉ］）を作成する。すなわち、暗号化第２マスク部６１６は、公開鍵ｐｋから、生成元ｇと、値ｙとを読み取り、集合Ｚｐから第８値ｒｕ［ｉ］を選ぶ。次に、暗号化第２マスク部６１６は、式５１に従い、乱数Ｒ［ｉ］が暗号化されたＥｎｃ（ｐｋ，Ｒ［ｉ］）を作成する。
【０４０８】
（ｇ｛ｒｕ［ｉ］｝，ｙ｛ｒｕ［ｉ］｝×ｇ｛Ｒ［ｉ］｝）
＝Ｅｎｃ（ｐｋ，Ｒ［ｉ］）・・・（式５１）。
【０４０９】
次に、暗号化第２マスク部６１６は、受信した暗号化第２集合に含まれている暗号文ｃｃ４［ｉ］と、算出した暗号文Ｅｎｃ（ｐｋ，Ｒ［ｉ］）とを掛け算した値（式５２）を算出する。
【０４１０】
ｃｃ４［０］＊Ｅｎｃ（ｐｋ，Ｒ［０］），
・・・，
ｃｃ４［ｔ］＊Ｅｎｃ（ｐｋ，Ｒ［ｔ］）・・・（式５２）。
【０４１１】
照合要求装置６１２における暗号化第２マスク部６１６は、算出した値を含む暗号化第２マスク（ｃｃ５［１］，・・・ｃｃ５［ｔ］）を作成し（ステップＳＤ１３）、作成した暗号化第２マスクを、照合要求装置６１２における照合データ部６１８に送信する。暗号化第２マスク部６１６は、マスク値集合（Ｒ［０］，・・・，Ｒ［ｔ］）を、照合要求装置６１２における検証マスク部６１７に送信する。
【０４１２】
照合要求装置６１２における検証マスク部６１７は、暗号化第２マスク部６１６が送信したマスク値集合（Ｒ［０］，・・・，Ｒ［ｔ］）を受信する。検証マスク部６１７は、公開鍵ｐｋに含まれている生成元ｇを読み取り、該マスク値集合に含まれている値（乱数Ｒ［ｉ］と表す）に関して、それぞれ、読み取った生成元ｇがＲ［ｉ］乗された値を算出する。この処理によって、検証マスク部６１７は、乱数Ｒ［ｉ］が暗号化された暗号文を算出する。ただし、０≦ｉ≦ｔである。次に、検証マスク部６１７は、算出した暗号文を入力としてハッシュ関数Ｈを適用することにより、該値に対するハッシュ値Ｈ（ｇ｛Ｒ［ｉ］｝）（＝ｈ１［ｉ］）を算出する。すなわち、検証マスク部６１７は、該暗号文に関するハッシュ値（式３５）を算出する。検証マスク部６１７は、算出したハッシュ値を含む検証マスク（ｈ１［０］，・・・，ｈ１［ｔ］）を作成する（ステップＳＤ１４）。検証マスク部６１７は、作成した検証マスクを、照合要求装置６１２における照合データ部６１８に送信する。
【０４１３】
照合要求装置６１２における照合データ部６１８は、暗号化第２集合部６１５が送信した暗号化第２マスク（ｃｃ５［０］，・・・，ｃｃ５［ｔ］）を受信する。照合データ部６１８は、さらに、検証マスク部６１７が送信した検証マスク（ｈ１［０］，・・・，ｈ１［ｔ］）を受信する。
【０４１４】
照合データ部６１８は、０からｔに至る値（以降、［０，ｔ］と表す）に関する順列πをランダムに作成する。次に、照合データ部６１８は、作成した順列πに従い、受信した暗号化第２集合に含まれている要素の順序を並び替え、作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える。この処理によって、照合データ部６１８は、暗号化第２集合における順序が並び替えられた（ｃｃ６［０］，・・・，ｃｃ６［ｔ］）、及び、検証マスクにおける順序が並び替えられた（ｈ２［０］，・・・，ｈ２［ｔ］）を算出する。
【０４１５】
次に、照合データ部６１８は、算出したｃｃ６［ｉ］と、算出したｈ２［ｉ］とが関連付けされた情報を作成し、さらに、区間［０，ｔ］に含まれているｉに関して、該情報を含む照合データ（式３８）を作成する（ステップＳＤ１５）。照合データ部６１８は、作成した照合データを、検証装置６２４における検証データ生成部６２３に送信する（ステップ（ＳＤ１６−１））。
【０４１６】
検証装置６２４における検証データ生成部６２３は、照合準備部６２１が送信した暗号化第１データｃｃ２を受信し（ステップ（ＳＤ１０−２））、さらに、照合データ部６１８が送信した照合データ（たとえば、式３８に示された値）を受信する（ステップ（ＳＤ１６−２））。検証データ生成部６２３は、たとえば、受信した照合データに含まれている値ｃｃ６［ｉ］（ただし、０≦ｉ≦ｔ）を読み取り、読み取った値ｃｃ６［ｉ］と、受信した暗号化第１データｃｃ２とが掛け算された値ｃｃ７［ｉ］（式３９）を算出する。
【０４１７】
検証データ生成部６２３は、算出した値ｃｃ７［ｉ］と、受信した照合データに含まれているｈ２［ｉ］とが関連付けされた情報（ｃｃ７［ｉ］，ｈ２［ｉ］）を作成する。検証データ生成部６２３は、０≦ｉ≦ｔなるｉに対して、作成した情報を含む検証データ（式４３）を作成する（ステップＳＤ１７）。
【０４１８】
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の例を用いながら、ステップＳＤ１７における処理について説明する。この場合に、検証データ生成部６２３は、受信した照合データに含まれている値ｃｃ６［ｉ］（ただし、０≦ｉ≦ｔ）を読み取り、読み取った値ｃｃ６［ｉ］と、受信した暗号化第１データｃｃ２とが掛け算された値（すなわち、ｃｃ２＊ｃｃ６［ｉ］）を算出する。したがって、０≦ｉ≦ｔなるｉに対して、検証データ生成部６２３は、式３９に示す値（すなわち、ｃｃ７［０］乃至ｃｃ７［ｔ］）を算出する。
【０４１９】
検証データ生成部６２３は、算出したｃｃ７［ｉ］と、受信した照合データに含まれているｈ２［ｉ］とが関連付けされた情報（ｃｃ７［ｉ］，ｈ２［ｉ］）を作成する。検証データ生成部６２３は、０≦ｉ≦ｔなるｉに対して、作成した情報を含む検証データを作成する。検証データ生成部６２３は、作成した検証データ（たとえば、式４３）を、検証装置６２４における検証データ復号部５１０に送信する。
【０４２０】
検証装置６２４における検証データ復号部５１０は、検証データ生成部６２３が送信した検証データ（たとえば、式４３）を受信し、鍵記憶部５０９から秘密鍵ｓｋを読み取る。次に、検証データ復号部５１０は、検証データに含まれている暗号文ｃｃ７［ｉ］（ただし、０≦ｉ≦ｔ）を読み取り、秘密鍵ｓｋを用いて読み取った暗号文ｃｃ７［ｉ］を復号することによって、値ｄｄ１［ｉ］（式４５）を算出する。
【０４２１】
検証装置６２４における検証データ復号部５１０は、算出したｄｄ１［ｉ］と、検証データに含まれているｈ２［ｉ］とが関連付けされた情報（ｄｄ１［ｉ］，ｈ２［ｉ］）を作成する。次に、検証データ復号部５１０は、０≦ｉ≦ｔなるｉに関して作成した情報が含まれている復号後検証データ（式４７）を作成する（ステップＳＤ１７）。検証データ生成部６２３は、作成した復号後検証データを、検証装置６２４における検証部５１１に送信する。
【０４２２】
以降、ステップＳＣ１８乃至ステップＳＣ２２に示された処理と同様の処理が実行されるので、ステップＳＤ１８乃至ステップＳＤ２２に関する説明を省略する。
【０４２３】
次に、第５の実施形態に係る照合システム６０１に関する効果について説明する。
【０４２４】
第５の実施形態に係る照合システム６０１によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。さらに、第５の実施形態に係る照合システム６０１によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理が可能である。この理由は、第５の実施形態に係る照合システム６０１が、第２の実施形態に係る照合システム２０１が有する構成を含むからである。
【０４２５】
さらに、第５の実施形態に係る照合システム６０１によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果も奏する。さらに、第５の実施形態に係る照合システム６０１によれば、たとえ、照合要求装置６１２が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果も奏する。
【０４２６】
この理由は、第５の実施形態に係る照合システム６０１が有する構成が、第２の実施形態に係る照合システム２０１が有する構成を含むからである。
【０４２７】
さらに、第５の実施形態に係る照合システム６０１によれば、該照合システム６０１における処理負荷が少ないという効果を奏する。
【０４２８】
この理由は、暗号化登録情報に含まれている情報量が、少ないからである。すなわち、暗号化登録情報は、登録データがｎ個の要素を含む場合に、該登録データに関する暗号化登録情報は、（ｎ＋１）個の要素が暗号化された暗号文であるからである。
【０４２９】
尚、本実施形態においては、ユークリッド距離の例を挙げたが、他の距離（たとえば、ハミング距離、マハラノビス距離等）にも容易に適用可能である。
【０４３０】
＜第６の実施形態＞
次に、上述した第３の実施形態を基本とする本発明の第６の実施形態について説明する。
【０４３１】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第３の実施形態、または、第４の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０４３２】
図１８を参照しながら、本発明の第６の実施形態に係る照合システム８０１が有する構成について詳細に説明する。図１８は、本発明の第６の実施形態に係る照合システム８０１が有する構成を示すブロック図である。
【０４３３】
第６の実施形態に係る照合システム８０１は、大別して、登録データ装置５０２と、照合要求装置８１２と、記憶装置５０４と、照合装置８２３と、検証装置８２２とを有する。
【０４３４】
登録データ装置５０２は、暗号化部５０３を有する。
【０４３５】
記憶装置５０４は、識別子管理部５０６と、登録データ情報記憶部５０５と、登録データ検索部５０７とを有する。
【０４３６】
検証装置８２２は、鍵生成部５０８と、鍵記憶部５０９と、検証データ復号部５１０と、検証部５１１と、検証データ生成部８１１とを有する。
【０４３７】
照合装置８２３は、照合登録情報要求部８１５と、照合準備部８１６と、判定部８１７と、暗号化第１集合部８１８と、暗号化第１マスク部８１９と、検証マスク部８２０と、照合データ部８２１とを有する。
【０４３８】
登録データ装置５０２と、照合要求装置８１２と、記憶装置５０４と、照合装置８２３と、検証装置８２２とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。
【０４３９】
照合要求装置８１２は、照合要求部８１３と、暗号化第２データ部８１４とを有する。
【０４４０】
本実施形態においては、距離としてｎ次元ユークリッド距離の場合の例を参照しながら、本実施形態に係る照合システム８０１における処理について説明する。また、本実施形態では、加法に関して準同型性を有する公開鍵暗号としてＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号を用いる場合の例を参照しながら該処理について説明するが、Ｐａｉｌｌｉｅｒ暗号等の他の加法に関して準同型性を有する暗号を利用しても構わない。尚、本実施形態において、ｎ次元ユークリッド距離およびＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号は、第４の実施形態におけるｎ次元ユークリッド距離およびＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号と同様であるので、これらの説明については省略する。
【０４４１】
次に、本発明の第６の実施形態に係る照合システム８０１における処理について詳細に説明する。照合システム８０１における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。
【０４４２】
本実施形態に係る照合システム８０１に関する準備フェーズにおける処理は、第４の実施形態に係る照合システム５０１に関する準備フェーズにおける処理と同様である。このため、本実施形態に係る照合システム８０１に関する準備フェーズにおける処理に関する説明を省略する。さらに、本実施形態に係る照合システム８０１に関する登録フェーズにおける処理は、第４の実施形態に係る照合システム５０１に関する登録フェーズにおける処理と同様である。このため、本実施形態に係る照合システム８０１に関する登録フェーズにおける処理に関する説明を省略する。
【０４４３】
図１９Ａ及び図１９Ｂを参照しながら、本実施形態に係る照合システム８０１が、照合フェーズにて実行する処理について説明する。図１９Ａ及び図１９Ｂは、照合フェーズにおいて、第６の実施形態に係る照合システム８０１が実行する処理の一例を示すシーケンス図である。
【０４４４】
照合要求装置８１２における照合要求部８１３は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部８１３は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する（ステップＳＦ１）。照合要求部８１３は、作成した該照合要求を、照合装置８２３における照合登録情報要求部８１５に送信する（ステップ（ＳＦ２−１））。照合要求は、たとえば、該登録識別子を含む。
【０４４５】
照合装置８２３における照合登録情報要求部８１５は、照合要求部８１３が送信した照合要求を受信し（ステップ（ＳＦ２−２））、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部８１５は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し（ステップＳＦ３）、作成した該登録データ要求を、記憶装置５０４における登録データ検索部５０７に送信する（ステップ（ＳＦ４−１））。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。
【０４４６】
記憶装置５０４における登録データ検索部５０７は、照合登録情報要求部８１５が送信した登録データ要求を受信する（ステップ（ＳＦ４−２））。登録データ検索部５０７は、登録データ情報（たとえば、登録データ情報記憶部５０５に格納されている）において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する（ステップＳＦ５）。登録データ検索部５０７は、特定した暗号化登録情報を、照合装置８２３における照合準備部８１６に送信する（ステップ（ＳＦ６−１））。
【０４４７】
照合装置８２３における照合準備部８１６は、登録データ検索部５０７が送信した暗号化登録情報（ｃ１［１］，・・・，ｃ１［ｎ］，ｃｃ１）を受信する（ステップ（ＳＦ６−２））。尚、ｃｃ１は、暗号化第１指標を表す。照合準備部８１６は、たとえば、擬似乱数を算出する手順に従い乱数Ｓを算出し、受信した暗号化登録情報における各要素が該乱数Ｓ乗された値を算出することによって、暗号文（ｃ２［１］，・・・，ｃ２［ｎ］，ｃｃ２）を作成する。すなわち、照合準備部８１６は、各要素が該乱数乗された値を算出することによって、暗号化登録情報の基である登録データの各要素を乱数倍した値が暗号化された値、及び、該登録データに関する第１指標を乱数倍した値が暗号化された暗号化第１データｃｃ２を算出する（ステップＳＦ７）。
【０４４８】
照合準備部８１６は、乱数Ｓを暗号化することによって算出される暗号化乱数ｃ２［０］を作成する。照合準備部８１６は、暗号化登録情報の基である登録データの各要素が暗号化された値（ｃ２［１］，・・・，ｃ２［ｎ］）と、作成した暗号化乱数ｃ２［０］とを含む照合登録情報（ｃ２［０］，ｃ２［１］，・・・，ｃ２［ｎ］）を作成する（ステップＳＦ８）。照合準備部８１６は、作成した照合登録情報を照合要求装置８１２における暗号化第２データ部８１４に送信する（ステップ（ＳＦ９−１））。
【０４４９】
照合準備部８１６は、算出した暗号化第１データｃｃ２と、乱数Ｓが暗号化された暗号化乱数ｃ２［０］とを含む暗号化第１データ情報（式５６）を作成し、作成した暗号化第１データ情報を、照合装置８２３における暗号化第１集合部８１８に送信する。
【０４５０】
たとえば、暗号化第１データ情報は、式５６に示す態様によって表すことができる。
【０４５１】
（ｃ２［０］，ｃｃ２）・・・（式５６）。
【０４５２】
照合要求装置８１２における暗号化第２データ部８１４は、対象データＹ、及び、照合準備部８１６が送信した照合登録情報（ｃ２［０］，ｃ２［１］，・・・，ｃ２［ｎ］）を受信する（ステップ（ＳＦ９−２））。暗号化第２データ部８１４は、ステップＳ１０１乃至ステップＳ１０４に示した処理と同様の処理を実行することにより、暗号化第２データｃｃ３を算出する（ステップＳＦ１０）。暗号化第２データ部８１４は、算出した暗号化第２データｃｃ３を、照合装置８２３における検証データ生成部８１１に送信する（ステップ（ＳＦ１１−１））。
【０４５３】
次に、照合装置８２３における暗号化第１集合部８１８は、照合準備部８１６が送信した暗号化第１データ情報（ｃ２［０］，ｃｃ２）を受信する。暗号化第１集合部８１８は、受信した暗号化第１データ情報から、暗号化乱数ｃ２［０］を読み取り、読み取った暗号化乱数ｃ２［０］に関して、「−ｔ」から「−１」に至る各整数値のべき乗を表す値を算出する。尚、ｔは、受理可能か否かを判定する基準を表す閾値ｔである。次に、暗号化第１集合部８１８は、たとえば、算出した値と、受信した暗号化第１データ情報に含まれている暗号化第１データｃｃ２とを掛け算した値（式５７、すなわち、暗号文）を算出する。
【０４５４】
暗号化第１集合部８１８が暗号文を算出する処理は、たとえば、式５７として表すことができる。
【０４５５】
（ｃｃ２［０］×ｃ２［０］｛−１｝，ｃｃ２［１］×ｃ２［１］｛−１｝），
（ｃｃ２［０］×ｃ２［０］｛−２｝，ｃｃ２［１］×ｃ２［１］｛−２｝），
・・・，
（ｃｃ２［０］×ｃ２［０］｛−ｔ｝，ｃｃ２［１］×ｃ２［１］｛−ｔ｝）・・・（式５７）。
【０４５６】
ｕは、１からｔまでの整数値のうち１つの整数値を表すとする。この場合に、式５７における１つの値は、式５８に等価である。
【０４５７】
（ｃｃ２［０］×ｃ２［０］｛−ｕ｝，ｃｃ２［１］×ｃ２［１］｛−ｕ｝）
＝Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）＊Ｅｎｃ（ｐｋ，Ｓ）｛−ｕ｝
＝Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）＊Ｅｎｃ（ｐｋ，−Ｓ×ｕ）
＝Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝−Ｓ×ｕ）・・・（式５８）。
【０４５８】
尚、説明の便宜上、式５７に従い算出される値をｆｆ４［ｕ］と表す。したがって、暗号化第１集合部８１８が算出する値は、式５９に示す値である。
【０４５９】
ｆｆ４［１］（＝Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−Ｓ×１）），
・・・，
ｆｆ４［ｔ］（＝Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−Ｓ×ｔ））・・・（式５９）。
【０４６０】
さらに、暗号化第１集合部８１８は、受信した暗号化第１データ情報に含まれている暗号化第１データｃｃ２を、ｆｆ４［０］に設定する。
【０４６１】
暗号化第１集合部８１８は、算出した値（すなわち、ｆｆ４［０］乃至ｆｆ４［ｔ］）を含む暗号化第１集合を作成する（ステップＳＦ１２）。たとえば、暗号化第１集合部８１８が作成する暗号化第１集合は、式６０に示すような態様にて表すことができる。したがって、
（ｆｆ４［０］，・・・，ｆｆ４［ｔ］）・・・（式６０）。
【０４６２】
暗号化第１集合部８１８は、作成した暗号化第１集合を、照合装置８２３における暗号化第１マスク部８１９に送信する。
【０４６３】
照合装置８２３における暗号化第１マスク部８１９は、暗号化第１集合部８１８が送信した暗号化第１集合（たとえば、式６０）を受信する。次に、暗号化第１マスク部８１９は、たとえば、擬似乱数を算出する手順に従い、（ｔ＋１）個の乱数Ｒ［０］、・・・、Ｒ［ｔ］を算出する。この場合に、暗号化第１マスク部８１９は、算出した乱数を含むマスク値集合（Ｒ［０］，・・・，Ｒ［ｔ］）を作成してもよい。
【０４６４】
暗号化第１マスク部８１９は、算出した乱数Ｒ［ｉ］（ただし、０≦ｉ≦ｔ）を、公開鍵ｐｋを用いて暗号化することにより、乱数Ｒ［ｉ］が暗号化されたＥｎｃ（ｐｋ，Ｒ［ｉ］）を作成する。暗号化第１マスク部８１９は、受信した暗号化第１集合に含まれている暗号文ｆｆ４［ｉ］と、算出した暗号文Ｅｎｃ（ｐｋ，Ｒ［ｉ］）とを掛け算した値（式６１）を算出する。
【０４６５】
Ｅｎｃ（ｐｋ，Ｒ［ｉ］）＊ｆｆ４［ｉ］・・・（式６１）。
【０４６６】
尚、式６１は式６２に等価である。
【０４６７】
Ｅｎｃ（ｐｋ，Ｒ［ｉ］）＊ｆｆ４［ｉ］
＝Ｅｎｃ（ｐｋ，Ｒ［ｉ］）＊Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−Ｓ×ｉ）
＝Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−Ｓ×ｉ＋Ｒ［ｉ］）・・・（式６２）。
【０４６８】
以降、式６２に従い算出された値（暗号文）をｆｆ５［ｉ］と表す。
【０４６９】
より具体的に、暗号化第１マスク部８１９は、１≦ｉ≦ｔなるｉに関して、式６３に従い、値を算出する。すなわち、
Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−Ｓ×０＋Ｒ［０］），
・・・，
Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−Ｓ×ｔ＋Ｒ［ｔ］）・・・（式６３）。
【０４７０】
暗号化第２マスク部は、算出した値（式６３）を含む暗号化第１マスクを作成する（ステップＳＦ１３）。
【０４７１】
加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の例を用いて、ステップＳＦ１３における処理について説明する。
【０４７２】
この例の場合に、暗号化第１マスク部８１９は、暗号化第１集合部８１８が送信した暗号化第１集合を受信する。暗号化第１マスク部８１９は、たとえば、擬似乱数を算出する手順に従い、（ｔ＋１）個の乱数Ｒ［０］、・・・、Ｒ［ｔ］を算出する。暗号化第１マスク部８１９は、算出した乱数Ｒ［ｉ］（ただし、０≦ｉ≦ｔ）を、公開鍵ｐｋを用いて暗号化することにより、乱数Ｒ［ｉ］が暗号化されたＥｎｃ（ｐｋ，Ｒ［ｉ］）を作成する。すなわち、暗号化第１マスク部８１９は、公開鍵ｐｋから、生成元ｇと、値ｙとを読み取り、所定の集合Ｚｐから第８値ｒｕ［ｉ］を選ぶ。次に、暗号化第１マスク部８１９は、式６４に従い、乱数Ｒ［ｉ］が暗号化されたＥｎｃ（ｐｋ，Ｒ［ｉ］）を作成する、
（ｇ｛ｒｕ［ｉ］｝，ｙ｛ｒｕ［ｉ］｝×ｇＲ［ｉ］）・・・（式６４）。
【０４７３】
次に、暗号化第１マスク部８１９は、受信した暗号化第１集合に含まれている暗号文ｆｆ４［ｉ］と、算出した暗号文Ｅｎｃ（ｐｋ，Ｒ［ｉ］）とを掛け算した値（式６５）を算出する。ステップＳＦ１３における処理は、受信した暗号化第１集合に含まれている暗号文ｆｆ４［ｉ］と、算出した暗号文Ｅｎｃ（ｐｋ，Ｒ［ｉ］）とを掛け算した値（式６５）を算出する処理とも表すことができる。
【０４７４】
ｆｆ４［０］＊Ｅｎｃ（ｐｋ，Ｒ［０］），
・・・，
ｆｆ４［ｔ］＊Ｅｎｃ（ｐｋ，Ｒ［ｔ］）・・・（式６５）。
【０４７５】
尚、式６５に示されたｆｆ４［ｉ］＊Ｅｎｃ（ｐｋ，Ｒ［ｉ］）は、式６６に示す式と等価である。
【０４７６】
＝Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−Ｓ×ｉ）＊Ｅｎｃ（ｐｋ，Ｒ［ｉ］）
＝Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−Ｓ×ｉ＋Ｒ［ｉ］）・・・（式６６）。
【０４７７】
したがって、この場合に、式６５に示された値の集合は、式６７に示された値の集合と等価である。
【０４７８】
ｆｆ４［０］＊Ｅｎｃ（ｐｋ，Ｒ［０］）
＝Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−Ｓ×０＋Ｒ［０］）
＝ｆｆ５［０］，
・・・，
ｆｆ４［ｔ］＊Ｅｎｃ（ｐｋ，Ｒ［ｔ］）
＝Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−Ｓ×ｔ＋Ｒ［ｔ］）
＝ｆｆ５［ｔ］・・・（式６７）。
【０４７９】
暗号化第１マスク部８１９は、式６５に従い算出した値を含む暗号化第１マスク（ｆｆ５［０］，・・・，ｆｆ５［ｔ］）を作成し（ステップＳＦ１３）、作成した暗号化第１マスクを、照合装置８２３における検証データ生成部８１１に送信する。暗号化第１マスク部８１９は、マスク値集合（Ｒ［０］，・・・，Ｒ［ｔ］）を、照合装置８２３における検証マスク部８２０に送信する。
【０４８０】
次に、照合装置８２３における検証マスク部８２０は、暗号化第１マスク部８１９が送信したマスク値集合（Ｒ［０］，・・・，Ｒ［ｔ］）を受信する。検証マスク部８２０は、受信したマスク値集合から要素の値を読み取り、公開鍵に含まれる生成元ｇを「読み取った値」乗した値を算出する。ただし、０≦ｉ≦ｔである。検証マスク部８２０は、算出した暗号文を入力として、ハッシュ関数を適用することにより、ハッシュ値Ｈ（ｇＲ［ｉ］）（＝ｈ１［ｉ］）を算出する。検証マスク部８２０は、算出したハッシュ値を含む検証マスク（ｈ１［０］，・・・，ｈ１［ｔ］）を作成し（ステップＳＦ１４）、作成した検証マスクを、照合装置８２３における検証データ生成部８１１に送信する。
【０４８１】
次に、照合装置８２３における照合データ部８２１は、検証マスク部８２０が送信した検証マスク（ｈ１［０］，・・・，ｈ１［ｔ］）、及び、暗号化第１マスク部８１９が送信した暗号化第１マスク（ｆｆ５［０］，・・・，ｆｆ５［ｔ］）を受信する。照合データ部８２１は、０からｔに至る値（以降、［０，ｔ］と表す）に関する順列πをランダムに作成する。ただし、ｔは、閾値を表す。照合データ部８２１は、作成した順列πに従い、受信した暗号化第１マスクに含まれている要素の順序を並び替え、作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える。
【０４８２】
説明の便宜上、作成した該順列πに従い、暗号化第１マスクに含まれている要素の順序を並び替える処理を、ｆｆ５［π（ｉ）］と表す。作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える処理を、ｈ１［π（ｉ）］と表す。また、ｆｆ５［π（ｉ）］をｆｆ６［ｉ］と表す。ｈ１［π（ｉ）］を、ｈ２［ｉ］と表す。
【０４８３】
次に、照合データ部８２１は、算出したｆｆ６［ｉ］と、算出したｈ２［ｉ］とが関連付けされた情報（ｆｆ６［ｉ］，ｈ２［ｉ］）を作成し、さらに、区間［０，ｔ］に含まれているｉに関して、該情報を含む照合データを作成する（ステップＳＦ１５）。照合データ部８２１が作成する照合データは、たとえば、式６８に示された態様を用いて表すことができる。
【０４８４】
（（ｆｆ６［０］，ｈ２［０］），・・・，（ｆｆ６［ｔ］，ｈ２［ｔ］））・・・（式６８）。
【０４８５】
照合データ部８２１は、作成した照合データ（たとえば、式６８に示された値）を、検証装置８２２における検証データ生成部８１１に送信する（ステップ（ＳＦ１６−１））。
【０４８６】
次に、検証装置８２２における検証データ生成部８１１は、照合データ部８２１が送信した照合データを受信し（ステップ（ＳＦ１６−２））、及び、暗号化第２データ部８１４が送信した暗号化第２データｃｃ３を受信する（ステップ（ＳＦ１１−２））。検証データ生成部８１１は、受信した照合データに含まれている要素ｆｆ６［ｉ］（ただし、０≦ｉ≦ｔ）を読み取り、読み取ったｆｆ６［ｉ］と、受信した暗号化第２データｃｃ３とが掛け算された値（式６９）を算出する。
【０４８７】
Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−Ｓ×π（ｉ）＋Ｒ［π（ｉ）］）＊Ｅｎｃ（ｐｋ，−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝））・・・（式６９）。
【０４８８】
検証データ生成部８１１が算出する値（式６９）は、以下の式７０と等価である。
【０４８９】
Ｅｎｃ（ｐｋ，Ｓ×（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−２×Ｓ×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋Ｓ×（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝）−Ｓ×π（ｉ）＋Ｒ［π（ｉ）］）
＝Ｅｎｃ（ｐｋ，Ｓ×（（ｘ［１］｛２｝＋・・・＋ｘ［ｎ］｛２｝）−２×（ｘ［１］×ｙ［１］＋・・・＋ｘ［ｎ］×ｙ［ｎ］）＋（ｙ［１］｛２｝＋・・・＋ｙ［ｎ］｛２｝））−Ｓ×π（ｉ）＋Ｒ［π（ｉ）］）
＝Ｅｎｃ（ｐｋ，Ｓ×（（ｘ［１］−ｙ［１］）｛２｝＋・・・＋（ｘ［ｎ］−ｙ［ｎ］）｛２｝）−Ｓ×π（ｉ）＋Ｒ［π（ｉ）］）
＝Ｅｎｃ（ｐｋ，Ｓ×Ｄ（Ｘ，Ｙ）−Ｓ×π（ｉ）＋Ｒ［π（ｉ）］）・・・（式７０）。
【０４９０】
したがって、式７０が式４１と同じであるので、検証データ生成部８１１は、ｃｃ７［ｉ］を算出する。
【０４９１】
検証データ生成部８１１は、算出したｃｃ７［ｉ］と、受信した照合データに含まれているｈ２［ｉ］とが関連付けされた情報（ｃｃ７［ｉ］，ｈ２［ｉ］）を作成する。検証データ生成部８１１は、０≦ｉ≦ｔなるｉに対して、作成した情報を含む検証データを作成する（ステップＳＦ１７）。たとえば、検証データ生成部８１１が作成する検証データは、式４３に示す態様にて表すことができる。
【０４９２】
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるＭｏｄｉｆｉｅｄ−Ｅｌｇａｍａｌ暗号の例を用いながら、ステップＳＦ１７における処理について説明する。
【０４９３】
この場合に、検証データ生成部８１１は、受信した照合データに含まれているｆｆ６［ｉ］（ただし、０≦ｉ≦ｔ）を読み取り、読み取ったｆｆ６［ｉ］と、受信した暗号化第２データｃｃ３とが掛け算された値（すなわち、ｃｃ３＊ｆｆ６［ｉ］）を算出する。したがって、０≦ｉ≦ｔなるｉに対して、検証データ生成部８１１は、式７１に示す値を算出する。
【０４９４】
ｃｃ３＊ｆｆ６［０］（この値は、Ｅｎｃ（ｐｋ，Ｓ×Ｄ（Ｘ，ｙ）−Ｓ×π（０）＋Ｒ［π（０）］）と等価である），
・・・，
ｃｃ３＊ｆｆ６［ｔ］（この値は、Ｅｎｃ（ｐｋ，Ｓ×Ｄ（Ｘ，ｙ）−Ｓ×π（ｔ）＋Ｒ［π（ｔ）］）と等価である）・・・（式７１）。
【０４９５】
検証データ生成部８１１は、算出したｃｃ７［ｉ］と、受信した照合データに含まれているｈ２［ｉ］とが関連付けされた情報（ｃｃ７［ｉ］，ｈ２［ｉ］）を作成する。検証データ生成部８１１は、０≦ｉ≦ｔなるｉに対して、作成した情報を含む検証データを作成する。検証データ生成部８１１は、作成した検証データ（たとえば、式４３）を、検証装置８２２における検証データ復号部５１０に送信する。
【０４９６】
以降、ステップＳＣ１８乃至ステップＳＣ２２に示された処理と同様の処理が実行されるので、ステップＳＦ１８乃至ステップＳＦ２２に関する説明を省略する。
【０４９７】
次に、第６の実施形態に係る照合システム８０１に関する効果について説明する。
【０４９８】
第６の実施形態に係る照合システム８０１によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。さらに、第６の実施形態に係る照合システム８０１によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理が可能である。この理由は、第６の実施形態に係る照合システム８０１が、第３の実施形態に係る照合システム４０１が有する構成を含むからである。
【０４９９】
さらに、第６の実施形態に係る照合システム８０１によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果も奏する。さらに、第６の実施形態に係る照合システム８０１によれば、たとえ、照合要求装置８１２が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果も奏する。
【０５００】
この理由は、第６の実施形態に係る照合システム８０１が有する構成が、第３の実施形態に係る照合システム４０１が有する構成を含むからである。
【０５０１】
さらに、第６の実施形態に係る照合システム８０１によれば、該照合システム８０１における処理負荷が少ないという効果を奏する。
【０５０２】
この理由は、暗号化登録情報に含まれている情報量が、少ないからである。すなわち、暗号化登録情報は、登録データがｎ個の要素を含む場合に、該登録データに関する暗号化登録情報は、（ｎ＋１）個の要素が暗号化された暗号文であるからである。
【０５０３】
尚、本実施形態においては、ユークリッド距離の例を挙げたが、他の距離（たとえば、ハミング距離、マハラノビス距離等）にも容易に適用可能である。
【０５０４】
＜第７の実施形態＞
図２０、及び、図２１を参照しながら、本発明の第７の実施形態に係る指標算出システム９０１が有する構成について詳細に説明する。図２０は、本発明の第７の実施形態に係る指標算出システム９０１が有する構成を示すブロック図である。図２１は、第７の実施形態に係る指標算出システム９０１における処理の流れを示すフローチャートである。
【０５０５】
第７の実施形態に係る指標算出システム９０１は、第１指標算出部９０２と、第２指標算出部９０３とを有する。指標算出システム９０１は、さらに、記憶部９０４を有してもよい。
【０５０６】
第１指標算出部９０２、及び、記憶部９０４は、たとえば、通信ネットワークを介して、相互に通信接続することができる。第２指標算出部９０３、及び、記憶部９０４は、たとえば、通信ネットワークを介して、相互に通信接続することができる。
【０５０７】
第１指標算出部９０２、及び、第２指標算出部９０３は、通信ネットワークを介して、相互に通信接続可能であってもよい。
【０５０８】
第１指標算出部９０２は、たとえば、外部等の装置から、複数の数値を含む第１数値列を受信し、受信した第１数値列に関する大きさを表すサイズ（説明の便宜上、「第１サイズ」と表す）を算出する（ステップＳ５０１）。第１指標算出部９０２は、受信した第１数値列に含まれている数値を、加法に関して準同型性を有する暗号方式に従い算出された暗号鍵を用いて暗号化することによって、第１数値列が暗号化された暗号化第１数値列を作成する（ステップＳ５０２）。第１指標算出部９０２は、算出した第１サイズを、該暗号鍵を用いて暗号化することにより、第１サイズが暗号化された暗号化第１指標を算出する（ステップＳ５０３）。第１指標算出部９０２は、作成した該暗号化第１数値列を記憶部９０４に格納する（ステップＳ５０４）。
【０５０９】
第２指標算出部９０３は、第１指標算出部９０２が作成した該暗号化第１数値列を記憶部９０４から読み取る（ステップＳ５０５）。第２指標算出部９０３は、たとえば、外部等の装置から、複数の数値を含む第２数値列を受信し、受信した第２数値列に関する大きさを表すサイズ（説明の便宜上、「第２サイズ」と表す）を算出する（ステップＳ５０６）。第２指標算出部９０３は、加法に関して準同型性を有する暗号方式に従い、読み取った暗号化第１数値列と、受信した第２数値列とに基づいて演算する（ステップＳ５０７）。言い換えれば、第２指標算出部９０３は、加法に関して準同型性を有する暗号方式に従い、読み取った暗号化第１数値列に、受信した第２数値列に含まれている数値に基づく演算を適用することによって、値（以降、「算出値」と表す）を算出する。第２指標算出部９０３は、該算出値と、算出した第２サイズとに基づき、加法準同型性を利用して「第１数値列及び第２数値列が類似している程度を表す値から第１サイズを引き算した値（第２指標）」の暗号文を表す暗号化第２指標を算出する（ステップＳ５０８）。
【０５１０】
本実施形態において、ステップＳ５０１及びステップＳ５０６にて算出されるサイズは、たとえば、式１１等の式に従い算出される大きさ（長さ）を表す。また、ステップＳ５０７にて算出される算出値は、たとえば、式２１等に示すように、暗号化第１数値列に含まれている第Ｉ（ただし、Ｉは、要素番号を表す）要素を、「−２×第２数値列に含まれる第Ｉ要素」乗することにより算出される値である。この場合に、第２指標算出部９０３が算出する暗号化第２指標は、「第１数値列及び第２数値列が類似している程度を表す値から第１サイズを引き算した値」が暗号化された暗号文を表す。この結果、第１指標算出部９０２が算出する暗号化第１指標と、第２指標算出部９０３が算出する暗号化第２指標と掛け算した値は、第１数値列と、第２数値列との間が類似している程度を表す類似度（たとえば、距離）が暗号化された値と等しい。
【０５１１】
たとえば、第１指標算出部９０２は、本発明の各実施形態に示した登録データ装置等が有する機能を用いて実現することができる。また、第２指標算出部９０３は、本発明の各実施形態に示した暗号化第２データ部等が有する機能を用いて実現することができる。
【０５１２】
次に、第７の実施形態に係る指標算出システム９０１が奏する効果について説明する。
【０５１３】
第７の実施形態に係る指標算出システム９０１によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理を可能にする指標を算出することができる。
【０５１４】
このような効果を奏する理由について説明する。第１指標算出部９０２、及び、第２指標算出部９０３が、たとえば、通信ネットワークを介して、上述したような処理における通信を実行する場合に、暗号化第１指標と、暗号化第２指標とは、複数の異なる主体にて、別々に算出される。したがって、この場合に、本実施形態に係る指標算出システム９０１によれば、第１数値列と、第２数値列との間の類似度を算出可能な、暗号化第１指標及び暗号化第２指標は、複数の異なる主体にて算出される。この結果、暗号化第１指標及び暗号化第２指標のうち、少なくとも一方が傍受されたとしても、第１数値列、第２数値列、または、類似度を復元することは不可能であるので、該暗号化第１指標及び暗号化第２指標に基づく照合処理において、情報が漏洩するリスクは軽減する。
【０５１５】
すなわち、第７の実施形態に係る指標算出システム９０１によれば、照合対象である情報と、参照すべき情報とのより安全な照合処理を可能になる指標を算出することができる。
【０５１６】
（ハードウェア構成例）
上述した本発明の各実施形態における照合システム、または、指標算出システムを、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係る指標算出システム（照合システム）は、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係る指標算出システム（照合システム）は、専用の装置として実現してもよい。
【０５１７】
図２２は、第１の実施形態乃至第６の実施形態に係る照合システム、または、第７の実施形態に係る指標算出システムを実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、及び、不揮発性記録媒体２４を有する。計算処理装置２０は、通信インターフェース（以降、「通信ＩＦ」と表す）２７を有する。計算処理装置２０は、さらに、入力装置２５、及び、出力装置２６を有してもよい。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【０５１８】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）である。また、不揮発性記録媒体２４は、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ＿Ｓｔａｔｅ＿Ｄｒｉｖｅ）等であってもよい。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７を介して、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
【０５１９】
すなわち、ＣＰＵ２１は、ディスク２３に記憶されているソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。外部への出力が必要な場合には、ＣＰＵ２１は、出力装置２６に出力結果を出力する。外部からプログラムを入力する場合、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、図６、図８、図１０、図１４、図１８、または、図２０に示す各部が表す機能（処理）に対応するところのメモリ２２にある照合プログラム（図２、図３、図４Ａ、図４Ｂ、図５、図７Ａ、図７Ｂ、図９Ａ、図９Ｂ、図１１，図１２、図１３Ａ、図１３Ｂ、図１５、図１６、図１７Ａ、図１７Ｂ、図１９Ａ、または、図１９Ｂ）、または、指標算出プログラム（図２１）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次実行する。
【０５２０】
すなわち、このような場合、本発明は、係る照合プログラム、または、係る指標算出プログラムによっても成し得ると捉えることができる。さらに、係る照合プログラム、または、係る指標算出プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
【０５２１】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０５２２】
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかし、上述した各実施形態により例示的に説明した本発明は、以下には限られない。すなわち、
（付記１）
暗号鍵、及び、第１数値列に含まれる数値に基づいて、前記第１数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第１数値列を作成し、作成した前記暗号化第１数値列を記憶手段に格納し、前記第１数値列の大きさを表す第１サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第１指標を算出する第１指標算出手段と、
前記記憶手段に格納されている前記暗号化第１数値列に含まれている前記暗号化数値と、第２数値列とに基づき、前記第１数値列及び前記第２数値列が類似している程度を表す値から前記第１サイズを引き算した値を表す第２指標が、前記暗号鍵を用いて暗号化された値を表す暗号化第２指標を算出する第２指標算出手段と
を備える指標算出システム。
【０５２３】
（付記２）
暗号鍵、及び、第１数値列に含まれる数値に基づいて、前記第１数値列に含まれる数値が第１乱数に基づいて変換された値が、前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第１数値列を作成し、前記第１乱数が暗号化された暗号化乱数を算出し、前記第１数値列の大きさを表す第１サイズが前記第１乱数に基づいて変換された値である第１データが、前記暗号鍵を用いて暗号化された値を表す暗号化第１データを算出する第１算出手段と、
第２数値列、前記暗号化乱数、及び、前記暗号化第１数値列に基づいて、前記第１数値列及び前記第２数値列が類似している程度を表す値及び前記第１サイズから算出される第２指標が第１乱数に基づいて変換された値である第２データが暗号化された暗号文を表す暗号化第２データを算出する暗号化第２データ手段と
を備える指標算出システム。
【０５２４】
（付記３）
付記２に記載の指標算出システムであって、
複数の平文の演算結果が暗号化された暗号文を、各前記平文が暗号化された暗号文に基づいて算出可能な準同型性に従い、閾値に基づく数値の範囲に含まれている第１値と、前記暗号化乱数と、前記暗号化第１データとに基づき、前記第１値が前記第１乱数に基づいて変換された値と、前記第１データとの前記準同型性に従う演算結果である第２値が前記暗号鍵を用いて暗号化された暗号文を算出し、算出した前記第２値が暗号化された前記暗号文を含む暗号化集合を作成する暗号化集合手段
をさらに備え、
前記第２指標が、前記第１数値列及び前記第２数値列が類似している程度を表す値と、前記第１サイズとに基づき、前記準同型性に従い算出される演算結果を表す
指標算出システム。
【０５２５】
（付記４）
付記２に記載の指標算出システムであって、
閾値に基づく数値の範囲に含まれている第１値に関して、前記暗号化乱数と、前記暗号化第２データとに基づき、前記準同型性に従い、前記第１値が前記第１乱数に基づいて変換された値と、前記第２データとの前記準同型性に従う演算結果である第２値が前記暗号鍵を用いて暗号化された暗号文を算出し、算出した前記第２値が暗号化された前記暗号文を含む暗号化集合を作成する暗号化集合手段
をさらに備え、
前記第２指標が、前記第１数値列及び前記第２数値列が類似している程度を表す値と、前記第１サイズとに基づき、前記準同型性に従い算出される演算結果を表す
指標算出システム。
【０５２６】
（付記５）
第２乱数と前記第２値とに基づき、前記準同型性に従い算出される演算結果を表す第３値の暗号文を、前記第２乱数と、前記暗号化集合に含まれている前記暗号文とに基づき、前記準同型性に従い算出し、算出した前記暗号文を含む暗号化参照情報と、前記第２乱数を含む乱数情報とを作成する暗号化参照情報手段
をさらに備える付記３または付記４に記載の指標算出システム。
【０５２７】
（付記６）
前記第３値と、前記第１データまたは前記第２データとに基づき、前記準同型性に従い算出される演算結果を表す第４値の暗号文を、前記暗号化参照情報に含まれている前記第３値に関する前記暗号文と、前記暗号化第１データとに基づき、前記準同型性に従い算出し、算出した前記第４値の暗号文を含む検証データを作成する検証データ生成手段
をさらに備える付記５に記載の指標算出システム。
【０５２８】
（付記７）
前記乱数情報に含まれている前記第２乱数に、所定の関数を適用することによって値を算出し、算出した値を含む検証情報を作成する検証情報手段
をさらに備える付記６に記載の指標算出システム。
【０５２９】
（付記８）
前記検証情報手段は、ある並び替え手順に従って、前記検証データに含まている前記第４値の暗号文を並び替え、前記ある並び替え手順に従って、前記検証情報に含まれている前記値を並び替える
付記７に記載の指標算出システム。
【０５３０】
（付記９）
付記７または付記８に記載の指標算出システムと、
前記検証データに含まれている前記第４値の暗号文を復号し、算出された値に前記所定の関数を適用することによって算出される値と、前記検証情報に含まれている値とが一致するか否かに基づいて、前記第１数値列と前記第２数値列とが類似または一致しているか否かを判定する判定手段と
を備える照合システム。
【０５３１】
（付記１０）
暗号鍵、及び、第１数値列に含まれる数値に基づいて、前記第１数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第１数値列を作成し、作成した前記暗号化第１数値列を記憶手段に格納し、前記第１数値列の大きさを表す第１サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第１指標を算出し、前記記憶手段に格納されている前記暗号化第１数値列に含まれている前記暗号化数値と、第２数値列とに基づき、前記第１数値列及び前記第２数値列が類似している程度を表す値から前記第１サイズを引き算した値を表す第２指標が、前記暗号鍵を用いて暗号化された値を表す暗号化第２指標を算出する指標算出方法。
【０５３２】
（付記１１）
暗号鍵、及び、第１数値列に含まれる数値に基づいて、前記第１数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第１数値列を作成し、作成した前記暗号化第１数値列を記憶手段に格納し、前記第１数値列の大きさを表す第１サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第１指標を算出する第１指標算出機能と、
前記記憶手段に格納されている前記暗号化第１数値列に含まれている前記暗号化数値と、第２数値列とに基づき、前記第１数値列及び前記第２数値列が類似している程度を表す値から前記第１サイズを引き算した値を表す第２指標が、前記暗号鍵を用いて暗号化された値を表す暗号化第２指標を算出する第２指標算出機能と
をコンピュータに実現させる指標算出プログラム。
【符号の説明】
【０５３３】
１０１    照合システム
１０２    登録データ装置
１０３    暗号化部
１０４    記憶装置
１０５    登録データ情報記憶部
１０６    識別子管理部
１０７    登録データ検索部
１０８    鍵生成部
１０９    鍵記憶部
１１０    検証データ復号部
１１１    検証部
１１２    照合要求装置
１１３    照合要求部
１１４    暗号化第２データ部
１１５    暗号化第２集合部
１１６    暗号化第２マスク部
１１７    検証マスク部
１１８    照合データ部
１１９    照合装置
１２０    照合登録情報要求部
１２１    照合準備部
１２２    判定部
１２３    検証データ生成部
１２４    検証装置
２０１    照合システム
２１２    照合要求装置
２１３    照合要求部
２１４    暗号化第２データ部
２１５    暗号化第２集合部
２１６    暗号化第２マスク部
２１７    検証マスク部
２１８    照合データ部
２１９    照合装置
２２０    照合登録情報要求部
２２１    照合準備部
２２２    判定部
２２３    検証データ生成部
２２４    検証装置
４０１    照合システム
４１１    検証データ生成部
４１２    照合要求装置
４１３    照合要求部
４１４    暗号化第２データ部
４１５    照合登録情報要求部
４１６    照合準備部
４１７    判定部
４１８    暗号化第１集合部
４１９    暗号化第１マスク部
４２０    検証マスク部
４２１    照合データ部
４２２    検証装置
４２３    照合装置
５０１    照合システム
５０２    登録データ装置
５０３    暗号化部
５０４    記憶装置
５０５    登録データ情報記憶部
５０６    識別子管理部
５０７    登録データ検索部
５０８    鍵生成部
５０９    鍵記憶部
５１０    検証データ復号部
５１１    検証部
５１２    照合要求装置
５１３    照合要求部
５１４    暗号化第２データ部
５１５    暗号化第２集合部
５１６    暗号化第２マスク部
５１７    検証マスク部
５１８    照合データ部
５１９    照合装置
５２０    照合登録情報要求部
５２１    照合準備部
５２２    判定部
５２３    検証データ生成部
５２４    検証装置
６０１    照合システム
６１２    照合要求装置
６１３    照合要求部
６１４    暗号化第２データ部
６１５    暗号化第２集合部
６１６    暗号化第２マスク部
６１７    検証マスク部
６１８    照合データ部
６１９    照合装置
６２０    照合登録情報要求部
６２１    照合準備部
６２２    判定部
６２３    検証データ生成部
６２４    検証装置
８０１    照合システム
８１１    検証データ生成部
８１２    照合要求装置
８１３    照合要求部
８１４    暗号化第２データ部
８１５    照合登録情報要求部
８１６    照合準備部
８１７    判定部
８１８    暗号化第１集合部
８１９    暗号化第１マスク部
８２０    検証マスク部
８２１    照合データ部
８２２    検証装置
８２３    照合装置
９０１    指標算出システム
９０２    第１指標算出部
９０３    第２指標算出部
９０４    記憶部
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
【図１】
0006528560.tif 000002
【図２】
0006528560.tif 000003
【図３】
0006528560.tif 000004
【図４Ａ】
0006528560.tif 000005
【図４Ｂ】
0006528560.tif 000006
【図５】
0006528560.tif 000007
【図６】
0006528560.tif 000008
【図７Ａ】
0006528560.tif 000009
【図７Ｂ】
0006528560.tif 000010
【図８】
0006528560.tif 000011
【図９Ａ】
0006528560.tif 000012
【図９Ｂ】
0006528560.tif 000013
【図１０】
0006528560.tif 000014
【図１１】
0006528560.tif 000015
【図１２】
0006528560.tif 000016
【図１３Ａ】
0006528560.tif 000017
【図１３Ｂ】
0006528560.tif 000018
【図１４】
0006528560.tif 000019
【図１５】
0006528560.tif 000020
【図１６】
0006528560.tif 000021
【図１７Ａ】
0006528560.tif 000022
【図１７Ｂ】
0006528560.tif 000023
【図１８】
0006528560.tif 000024
【図１９Ａ】
0006528560.tif 000025
【図１９Ｂ】
0006528560.tif 000026
【図２０】
0006528560.tif 000027
【図２１】
0006528560.tif 000028
【図２２】
0006528560.tif 000029