"比較データと対象データとの類似度を算出する類似度算出装置において、データを記憶する記憶装置と、データを処理する処理装置と、比較暗号文記憶部と、対象暗号文取得部と、一時鍵生成部と、類似度途中暗号文算出部と、類似度途中暗号文通知部と、類似度途中復号文取得部と、類似度算出部とを有し、上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、上記一時鍵生成部は、上記処理装置を用いて、一時鍵を生成し、上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文を算出し、上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知し、上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文を取得し、上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする類似度算出装置。上記類似度算出装置は、更に、一時秘密鍵生成部と、対象二重暗号文取得部とを有し、上記一時秘密鍵生成部は、上記処理装置を用いて、一時秘密鍵と、上記一時秘密鍵に対応する一時公開鍵とを生成し、上記対象二重暗号文取得部は、上記処理装置を用いて、上記一時秘密鍵生成部が生成した一時公開鍵を使って暗号化された対象二重暗号文を取得し、上記対象暗号文取得部は、上記処理装置を用いて、上記一時秘密鍵記憶部が記憶した一時秘密鍵と、上記対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使って上記対象二重暗号文を復号することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得することを特徴とする請求項1に記載の類似度算出装置。請求項1に記載の類似度算出装置と、復号装置とを有し、上記復号装置は、データを記憶する記憶装置と、データを処理する処理装置と、秘密鍵記憶部と、類似度途中暗号文取得部と、類似度途中復号文算出部と、類似度途中復号文通知部とを有し、上記復号装置の秘密鍵記憶部は、上記復号装置の記憶装置を用いて、秘密鍵を記憶し、上記復号装置の類似度途中暗号文取得部は、上記復号装置の処理装置を用いて、上記類似度算出装置から通知された類似度途中暗号文を取得し、上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の秘密鍵記憶部が記憶した秘密鍵と、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、上記類似度途中復号文を算出し、上記復号装置の類似度途中復号文通知部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中復号文算出部が算出した類似度途中復号文を上記類似度算出装置に対して通知することを特徴とする類似度算出システム。上記比較データ及び上記対象データは、整数を成分とするT次元ベクトルTは、1以上の整数。であり、上記類似度算出装置の類似度途中暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、上記比較データと上記対象データとの間の対応する成分の差または積を計算し、上記復号装置の類似度途中暗号文算出部は、上記復号装置の処理装置を用いて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、上記類似度を計算し、上記類似度算出装置の類似度算出部は、上記類似度算出装置の処理装置を用いて、上記類似度途中復号文を復号することにより、上記類似度を取得することを特徴とする請求項3に記載の類似度算出システム。上記暗号化変換は、整数を暗号文に変換する変換であって、上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算が計算可能であり、任意の第一の整数を変換した暗号文と、任意の第二の整数を変換した暗号文とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和を変換した暗号文になることを特徴とする請求項3に記載の類似度算出システム。上記比較データ及び上記対象データは、整数を成分とするT次元ベクトルTは、1以上の整数。であり、上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルであり、上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするT次元ベクトルであり、上記類似度算出装置は、更に、公開鍵記憶部を有し、上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、上記類似度算出装置の類似度途中暗号文算出部は、乱数平文生成部と、第一暗号文算出部と、第二暗号文算出部とを有し、上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするT次元ベクトルをランダムに生成して、乱数平文とし、上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出し、上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文を成分とするT次元ベクトルであり、上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文を算出し、上記第二の類似度途中暗号文は、補正値と、上記一時鍵との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文であり、上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の2倍と、上記乱数平文の各成分の2乗とを、すべての成分について合計した整数であり、上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項5に記載の類似度算出システム。上記比較データ及び上記対象データは、0または1を成分とするT次元ベクトルTは、1以上の整数。であり、上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルであり、上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするT次元ベクトルであり、上記類似度算出装置は、更に、公開鍵記憶部を有し、上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、上記類似度算出装置の類似度途中暗号文算出部は、乱数平文生成部と、第一暗号文算出部と、第二暗号文算出部とを有し、上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするT次元ベクトルをランダムに生成して、乱数平文とし、上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出し、上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文を成分とするT次元ベクトルであり、上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文を算出し、上記第二の類似度途中暗号文は、補正値と、上記一時鍵との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文であり、上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の2倍と、上記乱数平文の各成分の2乗と、上記比較データの各成分と、上記対象データの各成分とを、すべての成分について合計した整数であり、上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項5に記載の類似度算出システム。上記比較データ及び上記対象データは、整数を成分とするT次元ベクトルTは、1以上の整数。であり、上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルであり、上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするT次元ベクトルであり、上記類似度算出装置は、更に、公開鍵記憶部を有し、上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、上記類似度算出装置の類似度途中暗号文算出部は、第一暗号文算出部と、第二暗号文算出部とを有し、上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出し、上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差を、上記公開鍵を使った上記暗号化変換により変換した暗号文を成分とするT次元ベクトルであり、上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文を、第二の類似度途中暗号文とし、上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項5に記載の類似度算出システム。上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記比較データの成分から上記対象データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文、及び、上記対象データの成分から上記比較データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文のうちから、各成分ごとにランダムに選択した暗号文を成分とし、成分の順序をランダムに入れ換えたT次元ベクトルを、上記第一の類似度途中暗号文とすることを特徴とする請求項8に記載の類似度算出システム。上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中暗号文取得部が取得した2つの類似度途中暗号文に基づいて、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個zは、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。結合した元を算出して、上記類似度途中復号文とすることを特徴とする請求項6乃至請求項9のいずれかに記載の類似度算出システム。上記比較データ及び上記対象データは、整数を成分とするT次元ベクトルTは、1以上の整数。であり、上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルであり、上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするT次元ベクトルであり、上記類似度算出装置は、更に、公開鍵記憶部を有し、上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、上記類似度算出装置の類似度途中暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記暗号文の演算を使って、上記類似度途中暗号文を算出し、上記類似度途中暗号文は、合計値と上記一時鍵との和または差を、上記公開鍵を使った暗号化変換により変換した暗号文であり、上記合計値は、上記比較データの各成分と上記対象データの対応する成分との差の二乗、または、上記比較データの各成分と上記対象データの対応する成分との積を、すべての成分について合計した整数であることを特徴とする請求項5に記載の類似度算出システム。上記暗号化変換は、0以上q未満qは、素数。の整数を、ベクトル空間におけるn次元ベクトルnは、2以上の整数。である暗号文に変換する変換であり、上記ベクトル空間は、位数qの巡回群n個の直積であり、上記暗号文の演算は、上記ベクトル空間におけるベクトルの加法であり、上記公開鍵は、上記ベクトル空間の基底であるランダム基底を含み、上記暗号化変換は、0以上q未満の整数xを、上記ランダム基底の第一のベクトルのx倍と、上記ランダム基底の他のベクトルの乱数倍とを合計したベクトルに変換する変換であることを特徴とする請求項5に記載の類似度算出システム。上記暗号化変換は、0以上N未満Nは、互いに異なる2つの素数p,qの積。の整数を、位数Nの有限群の元である暗号文に変換する変換であり、上記暗号文の演算は、上記有限群における群演算であり、上記公開鍵は、上記有限群の生成元と、上記有限群の元であって位数が上記素数pである撹乱元とを含み、上記暗号化変換は、0以上N未満の整数xを、上記有限群における群演算により、x個の上記生成元と、ランダムな数の上記撹乱元とを結合した元に変換する変換であることを特徴とする請求項5に記載の類似度算出システム。上記暗号化変換は、0以上N未満Nは、互いに異なる2つの素数p,qの積。の整数を、0以上N2未満の整数である暗号文に変換する変換であり、上記暗号文の演算は、N2を法とする整数の乗法であり、上記暗号化変換は、0以上N未満の整数xを、整数xと整数Nとの積に1を加えた和と、ランダムな数のN乗との積を、N2で割った余りに変換する変換であることを特徴とする請求項5に記載の類似度算出システム。上記類似度算出システムは、更に、暗号化装置を有し、上記暗号化装置は、データを記憶する記憶装置と、データを処理する処理装置と、公開鍵記憶部と、対象データ取得部と、一時公開鍵取得部と、対象二重暗号文算出部と、対象二重暗号文通知部とを有し、上記暗号化装置の公開鍵記憶部は、上記暗号化装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、上記暗号化装置の対象データ取得部は、上記暗号化装置の処理装置を用いて、対象データを取得し、上記暗号化装置の一時公開鍵取得部は、上記暗号化装置の処理装置を用いて、上記類似度算出装置から通知された一時公開鍵を取得し、上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵と、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵とに基づいて、上記公開鍵と上記一時公開鍵とを使った第二の暗号化変換により上記対象データを変換することにより、対象二重暗号文を算出し、上記暗号化装置の対象二重暗号文通知部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の対象二重暗号文算出部が算出した対象二重暗号文を上記類似度算出装置に対して通知し、上記類似度算出装置は、更に、一時秘密鍵生成部と、一時公開鍵通知部と、対象二重暗号文取得部とを有し、上記類似度算出装置の一時秘密鍵生成部は、上記類似度算出装置の処理装置を用いて、一時秘密鍵と、上記一時秘密鍵に対応する一時公開鍵とを生成し、上記類似度算出装置の一時公開鍵通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時公開鍵を上記暗号化装置に対して通知し、上記類似度算出装置の対象二重暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記暗号化装置から通知された対象二重暗号文を取得し、上記類似度算出装置の対象暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵と、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使った第二の復号変換により上記対象二重暗号文を変換することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を算出することを特徴とする請求項3に記載の類似度算出システム。上記比較データ及び上記対象データは、整数を成分とするT次元ベクトルTは、1以上の整数。であり、上記類似度算出装置の一時秘密鍵生成部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文に基づいて、上記比較データについての暗号化された情報を含む一時公開鍵を生成し、上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記一時公開鍵を使った上記第二の暗号化変換により、上記対象データの成分と上記比較データの対応する成分との積についての暗号化された情報を含む対象二重暗号文を算出することを特徴とする請求項15に記載の類似度算出システム。上記暗号化変換は、整数を暗号文に変換する変換であって、上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算が計算可能であり、任意の第一の整数を変換した暗号文と、任意の第二の整数を変換した暗号文とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和を変換した暗号文になり、上記対象データは、整数を成分とするT次元ベクトルTは、1以上の整数。であり、上記類似度算出装置は、更に、公開鍵記憶部を有し、上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、上記類似度算出装置の一時公開鍵生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするT次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、生成した一時秘密鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時秘密鍵の各成分を変換した暗号文を成分とするT次元ベクトルを算出して、上記一時公開鍵とし、上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文を成分とするT次元ベクトルをランダムに生成して、零暗号文とし、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分b’i個b’iは、上記対象データの対応する成分である整数。と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記対象二重暗号文とし、上記類似度算出装置の対象暗号文取得部は、一時復号鍵算出部と、対象暗号文算出部とを有し、上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数を成分とするT次元ベクトルを算出して、一時復号鍵とし、上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分をRi-1個Ri-1は、上記一時復号鍵の対応する成分である逆数。結合した暗号文を成分とするT次元ベクトルを算出して、上記対象暗号文とすることを特徴とする請求項15に記載の類似度算出システム。上記暗号化変換は、整数を暗号文に変換する変換であって、上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算が計算可能であり、任意の第一の整数を変換した暗号文と、任意の第二の整数を変換した暗号文とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和を変換した暗号文になり、上記比較データ及び上記対象データは、整数を成分とするT次元ベクトルTは、1以上の整数。であり、上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルであり、上記類似度算出装置は、更に、公開鍵記憶部を有し、上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、上記類似度算出装置の一時公開鍵生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするT次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文を成分とするT次元ベクトルをランダムに生成して、零暗号文とし、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、生成した一時秘密鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記比較暗号文の各成分Ri個Riは、上記一時秘密鍵の対応する成分である整数。と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記一時公開鍵とし、上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文を成分とするT次元ベクトルをランダムに生成して、零暗号文とし、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分b’i個b’iは、上記対象データの対応する成分である整数。と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記対象二重暗号文とし、上記類似度算出装置の対象暗号文取得部は、一時復号鍵算出部と、対象暗号文算出部とを有し、上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数を成分とするT次元ベクトルを算出して、一時復号鍵とし、上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分をRi-1個Ri-1は、上記一時復号鍵の対応する成分である逆数。結合した暗号文を成分とするT次元ベクトルを算出して、上記対象暗号文とすることを特徴とする請求項15に記載の類似度算出システム。上記類似度算出装置の類似度途中暗号文算出部は、乱数平文生成部と、暗号文算出部とを有し、上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするT次元ベクトルをランダムに生成して、乱数平文とし、上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の乱数平文生成部が生成した乱数平文の成分の総和を算出し、算出した総和を上記一時鍵とし、上記類似度算出装置の暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算により、上記対象暗号文の各成分と、上記乱数平文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記類似度途中暗号文とすることを特徴とする請求項18に記載の類似度算出システム。上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、上記類似度算出装置の類似度途中暗号文算出部は、第一暗号文算出部と、第二暗号文算出部とを有し、上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文に基づいて、上記対象暗号文の成分の順序をランダムに入れ換えたT次元ベクトルを算出して、第一の類似度途中暗号文とし、上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文を算出して、第二の類似度途中暗号文とし、上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項18に記載の類似度算出システム。上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中暗号文取得部が取得した2つの類似度途中暗号文に基づいて、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個zは、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。結合した元を算出して、上記類似度途中復号文とすることを特徴とする請求項20に記載の類似度算出システム。上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、上記類似度算出装置の類似度途中暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により上記一時鍵を変換した暗号文と、上記対象暗号文のT個の成分とを、上記暗号文の演算により結合した暗号文を算出して、上記類似度途中暗号文とすることを特徴とする請求項18に記載の類似度算出システム。上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文に基づいて、上記類似度途中暗号文を復号して得られる整数、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個zは、上記類似度途中暗号文を復号して得られる整数。結合した元を算出して、上記類似度途中復号文とすることを特徴とする請求項11または請求項22のいずれかに記載の類似度算出システム。上記類似度途中復号文は、整数であり、上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、上記類似度算出装置の類似度算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵と、上記類似度途中復号文との和または差を算出して、上記類似度とすることを特徴とする請求項3乃至請求項9及び請求項11乃至請求項22のいずれかに記載の類似度算出システム。上記類似度途中復号文は、所定の有限群の元であり、上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、上記類似度算出装置の類似度算出部は、類似度復号文算出部と、離散対数算出部とを有し、上記類似度算出装置の類似度復号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記所定の有限群の群演算により、上記所定の有限群の所定の元u個uは、上記一時鍵である整数。と、上記類似度途中復号文とを結合した元を算出して、類似度復号文とし、上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の類似度復号文が算出した類似度復号文に基づいて、上記所定の有限群の群演算により、上記所定の元を何個結合したら、上記類似度復号文と一致するかを算出して、上記類似度とすることを特徴とする請求項3乃至請求項9及び請求項11乃至請求項22のいずれかに記載の類似度算出システム。上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度が、所定の範囲内の整数である場合に、上記類似度を算出し、上記類似度が、上記所定の範囲外である場合に、上記類似度が上記所定の範囲外であることを判定することを特徴とする請求項25に記載の類似度算出システム。上記類似度算出システムは、更に、登録装置を有し、上記登録装置は、データを記憶する記憶装置と、データを処理する処理装置と、公開鍵記憶部と、比較データ取得部と、比較暗号文算出部と、比較暗号文通知部とを有し、上記登録装置の公開鍵記憶部は、上記登録装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、上記登録装置の比較データ取得部は、上記登録装置の処理装置を用いて、比較データを取得し、上記登録装置の比較暗号文算出部は、上記登録装置の処理装置を用いて、上記登録装置の公開鍵記憶部が記憶した公開鍵と、上記登録装置の比較データ取得部が取得した比較データとに基づいて、上記公開鍵を使った暗号化変換により上記比較データを変換することにより、比較暗号文を算出し、上記登録装置の比較暗号文通知部は、上記登録装置の処理装置を用いて、上記登録装置の比較暗号文算出部が算出した比較暗号文を上記類似度算出装置に対して通知し、上記類似度算出装置は、更に、比較暗号文取得部を有し、上記類似度算出装置の比較暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記登録装置から通知された比較暗号文を取得し、上記類似度算出装置の比較暗号文記憶部は、上記類似度算出装置の記憶装置を用いて、上記類似度算出装置の比較暗号文取得部が取得した比較暗号文を記憶することを特徴とする請求項3乃至請求項9及び請求項11乃至請求項22のいずれかに記載の類似度算出システム。データを記憶する記憶装置と、データを処理する処理装置とを有するコンピュータが実行することにより、上記コンピュータを請求項1または請求項2に記載の類似度算出装置とし加法的な準同型性を有する暗号方式のように、データを暗号化したままの状態での演算が可能な暗号方式を使う場合、システム内の装置間でやり取りされる情報や、それぞれの装置が記憶している情報に準同型性を適用することで、思わぬ攻撃を受ける可能性がある。特に、ユーザを認証する認証システムなどにおいては、元のデータの秘密を守るだけでは十分でなく、システム内の装置間でやり取りされる情報や、それぞれの装置が記憶している情報から、ユーザになりすますことができる情報が漏れることを防ぐ必要がある。この発明は、例えば、上記のような課題を解決するためになされたものであり、元のデータについての情報や、なりすましに利用される情報などが漏れることを防ぎつつ、データが暗号化されたままの状態で、データ間の類似度を算出することを目的とする。この発明にかかる類似度算出装置は、比較データと対象データとの類似度を算出する類似度算出装置において、データを記憶する記憶装置と、データを処理する処理装置と、比較暗号文記憶部と、対象暗号文取得部と、一時鍵生成部と、類似度途中暗号文算出部と、類似度途中暗号文通知部と、類似度途中復号文取得部と、類似度算出部とを有し、上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、上記一時鍵生成部は、上記処理装置を用いて、一時鍵を生成し、上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文を算出し、上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知し、上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文を取得し、上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする。この発明にかかる類似度算出システムによれば、データが暗号化されたままの状態で、データ間の類似度を算出することができるとともに、その過程で、元のデータについての情報や、なりすましに利用される情報などが漏れるのを防ぐことができる。実施の形態1.実施の形態1について、図1~図26を用いて説明する。図1は、この実施の形態における生体認証システム100の全体構成の一例を示すシステム構成図である。生体認証システム100は、ユーザの指紋などの生体情報を入力し、入力した生体情報と、あらかじめ登録された生体情報とを照合することにより、利用者を認証するシステムである。生体認証システム100類似度算出システムは、例えば、証明装置101と、認証装置102と、復号装置103と、登録装置104とを有する。登録装置104は、ユーザから生体情報を抽出し、抽出した生体情報を暗号化して、認証装置102に登録する。証明装置101暗号化装置は、ユーザから生体情報を抽出し、抽出した生体情報を暗号化する。また、証明装置101は、認証装置102と対話を行い、認証を実施する。認証装置102類似度算出装置は、登録装置104により登録されたユーザの暗号化生体情報を格納する。また、認証装置102は、証明装置101、復号装置103と対話を行い、認証を実施する。復号装置103は、認証装置102と対話を行い、認証装置から送られてきた暗号化された類似度に関連したデータを復号する。なお、証明装置101や登録装置104は、複数あってもよい。また、証明装置101と登録装置104とは、物理的に一つの装置であってもよい。また、証明装置101と復号装置103とは、物理的に一つの装置であってもよい。また、認証装置102と登録装置104とは、物理的に一つの装置であってもよい。図2は、この実施の形態における証明装置101、認証装置102、復号装置103、登録装置104のハードウェア構成の一例を示す図である。証明装置101、認証装置102、復号装置103、登録装置104は、例えばコンピュータであり、処理装置911と、入力装置912と、出力装置913と、記憶装置914とを有する。記憶装置914は、処理装置911が実行するプログラムや、処理装置911が処理するデータなどを記憶する。記憶装置914は、例えば、揮発性メモリ、不揮発性メモリ、ハードディスク装置などである。処理装置911は、記憶装置914が記憶したプログラムを実行することにより、データを処理し、装置全体を制御する。入力装置912は、外部からの情報を、処理装置911が処理できるデータに変換する。入力装置912が変換したデータは、処理装置911が直接処理してもよいし、記憶装置914が記憶してもよい。入力装置912は、例えば、キーボードやマウスなど使用者の操作を入力する操作入力装置、ユーザの指紋や虹彩などの生体情報を抽出して入力する生体情報入力装置、他の装置が送信した信号を受信する受信装置通信装置、記録媒体からデータを読み出す読み出し装置などである。出力装置913は、処理装置911が処理したデータや、記憶装置914が記憶したデータなどを変換して、外部に出力する装置である。出力装置913は、例えば、画像を表示する表示装置、他の装置に対して信号を送信する送信装置通信装置、記録媒体にデータを書き込む書き込み装置などである。図3は、この実施の形態における登録装置104の機能ブロックの構成の一例を示すブロック構成図である。登録装置104は、例えば、公開鍵受信部208と、公開鍵記憶部202と、生体情報抽出部203と、特徴ベクトル形成部204と、乱数生成部205と、暗号化データ生成部206と、暗号化データ送信部201とを有する。公開鍵受信部208公開鍵取得部は、通信装置などの入力装置912を用いて、復号装置103で生成された公開鍵を受信する。通信装置通信部は、認証装置102や復号装置103などの他の装置との間でデータのやりとりを行う。暗号化データ送信部201比較暗号文通知部は、通信装置などの出力装置913を用いて、認証装置102に対して暗号化生体情報比較暗号文を送信する。公開鍵記憶部202は、記憶装置914を用いて、公開鍵受信部208が受信した公開鍵を記憶する。記憶装置914記憶部は、復号装置103から送られてきた公開鍵などの各種データを格納する。生体情報抽出部203は、光学カメラ、赤外線カメラ、その他の各種センサなどの入力装置912を用いて、個人識別を行うのに必要となる生体情報をユーザから抽出する。特徴ベクトル形成部204比較データ取得部は、処理装置911を用いて、生体情報抽出部203が抽出した生体情報から、個人の特徴を表す特徴ベクトル比較データを形成する。乱数生成部205は、処理装置911を用いて、公開鍵記憶部202が格納した公開鍵の一部などに基づいて、乱数を生成する。乱数生成部205が生成した乱数は、暗号化データ生成部206などが使用する。暗号化データ生成部206暗号化部、比較暗号文生成部は、処理装置911を用いて、乱数生成部205が生成した乱数に基づいて、特徴ベクトル形成部204が形成した特徴ベクトルを暗号化し、暗号化生体情報暗号化特徴ベクトルを生成する。図4は、この実施の形態における証明装置101の機能ブロックの構成の一例を示すブロック構成図である。証明装置101は、例えば、公開鍵受信部218と、公開鍵記憶部212と、生体情報抽出部213と、特徴ベクトル形成部214と、乱数生成部215と、第一チャレンジ受信部211と、暗号化データ埋め込み部217と、第一レスポンス送信部221とを有する。公開鍵受信部218公開鍵取得部は、通信装置などの入力装置912を用いて、復号装置103で生成された公開鍵を受信する。通信装置通信部は、認証装置102や復号装置103などの他の装置との間でデータのやりとりを行う。第一チャレンジ受信部211一時公開鍵取得部は、通信装置などの入力装置912を用いて、認証装置102からの第一チャレンジ一時公開鍵を受信する。第一レスポンス送信部221対象二重暗号文通知部は、通信装置などの入力装置912を用いて、第一チャレンジに対応した第一レスポンス対象二重暗号文を、認証装置102に対して返信する。公開鍵記憶部212は、記憶装置914を用いて、公開鍵受信部218が受信した公開鍵を記憶する。記憶装置914記憶部は、復号装置103から送られてきた公開鍵などの各種データを格納する。生体情報抽出部213は、光学カメラ、赤外線カメラ、その他の各種センサなどの入力装置912を用いて、個人識別を行うのに必要となる生体情報をユーザから抽出する。特徴ベクトル形成部214対象データ取得部は、処理装置911を用いて、生体情報抽出部213が抽出した生体情報から、個人の特徴を表す特徴ベクトル対象データを形成する。乱数生成部215は、処理装置911を用いて、公開鍵記憶部212が格納した公開鍵の一部などに基づいて、乱数を生成する。乱数生成部215が生成した乱数は、暗号化データ埋め込み部217などが使用する。暗号化データ埋め込み部217レスポンス生成部、対象二重暗号文算出部は、処理装置911を用いて、認証装置102から送られてきた第一チャレンジを、特徴ベクトル形成部214が形成した特徴ベクトルの値に応じて処理を行う。すなわち、暗号化データ埋め込み部217は、第一チャレンジに暗号化生体情報を埋め込む。暗号化データ埋め込み部217は、認証装置102に返す第一レスポンスを計算する。図5は、この実施の形態における認証装置102の機能ブロックの構成の一例を示すブロック構成図である。認証装置102は、例えば、公開鍵受信部308と、公開鍵記憶部302と、暗号化データ受信部301と、暗号化データ記憶部312と、乱数生成部303と、乱数記憶部322と、暗号化乱数生成部304と、第一チャレンジ送信部311と、第一レスポンス受信部331と、暗号化データ抽出部305と、暗号化ランダム類似度算出部314と、第二チャレンジ送信部321と、第二レスポンス受信部341と、平文類似度抽出部315と、判定部306とを有する。公開鍵受信部308公開鍵取得部は、通信装置通信部などの入力装置912を用いて、復号装置103で生成された公開鍵を受信する。暗号化データ受信部301比較暗号文取得部は、通信装置などの入力装置912を用いて、証明装置101から暗号化特徴ベクトル比較暗号文を受信する。第一チャレンジ送信部311一時公開鍵通知部は、通信装置などの出力装置913を用いて、証明装置101へ第一チャレンジ一時公開鍵を送信する。第一レスポンス受信部331対象二重暗号文取得部は、通信装置などの入力装置912を用いて、証明装置101から第一チャレンジに対応する第一レスポンス対象二重暗号文を受信する。第二チャレンジ送信部321類似度途中暗号文通知部は、通信装置などの出力装置913を用いて、復号装置103へ第二チャレンジ類似度途中暗号文を送信する。第二レスポンス受信部341類似度途中復号文取得部は、通信装置などの入力装置912を用いて、復号装置103から第二レスポンス類似度途中復号文を受信する。公開鍵記憶部302は、記憶装置914記憶部を用いて、復号装置103から送付された公開鍵を格納する。暗号化データ記憶部312比較暗号文記憶部は、記憶装置914を用いて、証明装置101から送られてきた暗号化特徴ベクトルを格納する。暗号化データ記憶部312は、複数の暗号化特徴ベクトルを、例えば、ユーザの識別子と対応づけて記憶する。乱数記憶部322一時秘密鍵記憶部、一時鍵記憶部は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち一部の乱数一時秘密鍵、一時鍵を格納する。乱数生成部303一時秘密鍵生成部、一時鍵生成部は、処理装置911を用いて、公開鍵記憶部302が格納した公開鍵の一部などに基づいて、乱数を生成する。乱数生成部303が生成した乱数は、暗号化乱数生成部304、暗号化データ抽出部305、暗号化ランダム類似度算出部314、平文類似度抽出部315などで用いられる。暗号化乱数生成部304チャレンジ生成部、一時公開鍵算出部は、証明装置101と対話を行うために、処理装置911を用いて、第一チャレンジ暗号化乱数を生成する。暗号化データ抽出部305乱数除去部、対象暗号文取得部は、処理装置911を用いて、証明装置101から送られてきた第一レスポンスに対して、その第一レスポンスに対応した第一チャレンジで使用した乱数記憶部322が格納している乱数を用いて、第一レスポンスに含まれている乱数を除去する。暗号化データ抽出部305は、第一レスポンスから第一チャレンジで用いた乱数の一部を取り除いて、暗号化特徴ベクトルを抽出する。暗号化ランダム類似度算出部314チャレンジ生成部、類似度途中暗号文算出部は、復号装置103と対話を行うために、処理装置911を用いて、第二チャレンジ暗号化ランダム類似度を生成する。暗号化ランダム類似度算出部314は、暗号化データ抽出部305が抽出した暗号化特徴ベクトルと、暗号化データ記憶部312が記憶した暗号化特徴ベクトルとに基づいて、第二チャレンジを生成する。暗号化ランダム類似度算出部314は、暗号化データ記憶部312が記憶した暗号化特徴ベクトルのなかから、第一レスポンス受信部331が受信した第一レスポンスとユーザの識別子が一致する暗号化特徴ベクトルを取得して、第二チャレンジを生成する。平文類似度抽出部315乱数除去部、類似度算出部は、復号装置103に送られてきた第二レスポンスから、その第二レスポンスに対応する第二チャレンジで使用した乱数記憶部322が格納している乱数を用いて、第二レスポンスに含まれている乱数を除去する。平文類似度抽出部315は、第二レスポンスから乱数を除去して、平文の類似度を算出する。判定部306類似判定部は、処理装置911を用いて、平文類似度抽出部315が生成した平文の類似度を用いて個人識別を行い、本人か否かを判定する。つまり、判定部306は、平文の類似度を解析して、認証用の特徴ベクトルの発生源が正当であるか否かを判定する。図6は、この実施の形態における復号装置103の機能ブロックの構成の一例を示すブロック構成図である。復号装置103は、例えば、鍵生成部401と、秘密鍵記憶部413と、公開鍵記憶部403と、公開鍵送信部408と、第二チャレンジ受信部402と、復号部404と、第二レスポンス送信部412とを有する。鍵生成部401パラメータ生成部、秘密鍵生成部、公開鍵算出部は、処理装置911を用いて、公開鍵や秘密鍵など、暗号化と復号に必要なパラメータを生成する。公開鍵送信部408公開鍵通知部は、通信装置通信部などの出力装置913を用いて、証明装置101や認証装置102などに対して、鍵生成部401が生成した公開鍵を送信する。第二チャレンジ受信部402類似途中暗号文取得部は、通信装置などの入力装置912を用いて、認証装置102から、第二チャレンジ類似途中暗号文を受信する。第二レスポンス送信部412類似途中復号文通知部は、通信装置などの出力装置913を用いて、認証装置102に対して、第二チャレンジに対応した第二レスポンス類似途中復号文を送信する。公開鍵記憶部403は、記憶装置914記憶部を用いて、鍵生成部401が生成した公開鍵などの各種データを格納する。秘密鍵記憶部413は、記憶装置914を用いて、鍵生成部401が生成した秘密鍵を格納する。復号部404レスポンス生成部、類似途中復号文算出部は、処理装置911を用いて、認証装置102から送信された第二チャレンジに対応した第二レスポンスを生成する。復号部404は、第二チャレンジ暗号化ランダム類似度を復号して、第二レスポンスを算出する。図7は、この実施の形態における生体認証システム100の全体の動作の一例を示すフローチャート図である。生体認証システム100の動作は、例えば、セットアップ処理S500と、登録処理S600と、認証処理S700との3つからなる。セットアップ処理S500設定処理では、復号装置103が、暗号化と復号に必要となるパラメータや公開鍵秘密鍵などを生成する。登録処理S600では、登録装置104が、ユーザの生体情報比較データを暗号化して認証装置102に送付する。認証装置102が、暗号化生体情報比較暗号文を格納する。認証処理S700では、最初に、認証装置102が、証明装置101と対話を行い、その対話のデータ第一チャレンジ及び第一レスポンスから暗号化生体情報対象暗号文を抽出する。次に、認証装置102が、抽出した暗号化生体情報と、登録処理S600であらかじめ登録された暗号化生体情報とに基づいて、復号装置103と対話を行い、その対話のデータ第二チャレンジ及び第二レスポンスからランダム類似度を抽出する。最後に、認証装置102が、ランダム類似度から平文の類似度を抽出し、閾値と比較して本人であるかどうかの判定を行う。なお、ここでの閾値は、あらかじめ定められているシステムで共通の値であってもよいし、ユーザ毎に異なる値であってもよい。図8は、この実施の形態におけるセットアップ処理S500の流れの一例を示すフローチャート図である。セットアップ処理S500は、例えば、鍵生成工程S501と、公開鍵通知工程S502と、公開鍵取得工程S503~S505とを有する。最初に、鍵生成工程S501において、復号装置103の鍵生成部401が、処理装置911を用いて、準同型暗号方式の鍵生成アルゴリズムに基づき、秘密鍵skと公開鍵pkとを生成する。準同型暗号方式には、例えば、岡本-高島暗号方式、BGN暗号方式、Paillier暗号方式などがある。次に、公開鍵通知工程S502において、復号装置103の公開鍵記憶部403が、記憶装置914を用いて、公開鍵pkを記憶する。復号装置103の秘密鍵記憶部413が、記憶装置914を用いて、秘密鍵skを記憶する。復号装置103の公開鍵送信部408が、出力装置913を用いて、公開鍵pkを、登録装置104、証明装置101、認証装置102などに対して送信する。公開鍵取得工程S503において、登録装置104の公開鍵受信部208が、入力装置912を用いて、復号装置103が送信した公開鍵pkを受信する。登録装置104の公開鍵記憶部202が、記憶装置914を用いて、公開鍵受信部208が受信した公開鍵pkを記憶する。公開鍵取得工程S504において、証明装置101の公開鍵受信部218が、入力装置912を用いて、復号装置103が送信した公開鍵pkを受信する。証明装置101の公開鍵記憶部212が、記憶装置914を用いて、公開鍵受信部218が受信した公開鍵pkを記憶する。公開鍵取得工程S505において、認証装置102の公開鍵受信部308が、入力装置912を用いて、復号装置103が送信した公開鍵pkを受信する。認証装置102の公開鍵記憶部302が、記憶装置914を用いて、公開鍵受信部308が受信した公開鍵pkを記憶する。なお、ネットワークなどを介して公開鍵pkを送受信するのではなく、他の方式で、証明装置101などに公開鍵pkを配布する構成であってもよい。例えば、復号装置103が、公開鍵pkを、記録媒体例えば、ハードディスクドライブや光学ディスクなどに格納し、証明装置101などが、ネットワークなどを介してその記録媒体にアクセスし、あるいは、記録媒体自体を物理的に移動させて、記録媒体から公開鍵pkを読み出して格納する構成であってもよい。図9は、この実施の形態における登録処理S600の流れの一例を示すフローチャート図である。登録処理S600は、例えば、生体情報抽出工程S601と、特徴ベクトル生成工程S602と、特徴ベクトル暗号化工程S603と、暗号化生体情報通知工程S604と、暗号化生体情報取得工程S605とを有する。最初に、生体情報抽出工程S601において、登録装置104の生体情報抽出部203が、入力装置912を用いて、ユーザの生体情報を抽出する。特徴ベクトル生成工程S602において、登録装置104の特徴ベクトル形成部204が、処理装置911を用いて、生体情報抽出工程S601で生体情報抽出部203が抽出した生体情報の特徴ベクトルbを生成する。特徴ベクトル暗号化工程S603において、登録装置104の乱数生成部205が、処理装置911を用いて、公開鍵pkの一部などに基づいて、乱数を生成する。登録装置104の暗号化データ生成部206が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkを読み出す。登録装置104の暗号化データ生成部206が、処理装置911を用いて、読み出した公開鍵pkと、乱数生成部205が生成した乱数とに基づいて、暗号化特徴ベクトルCを生成する。暗号化特徴ベクトルCが、特徴ベクトルbを暗号化したものである。暗号化生体情報通知工程S604において、登録装置104の暗号化データ送信部201が、出力装置913を用いて、特徴ベクトル暗号化工程S603で暗号化データ生成部206が生成した暗号化特徴ベクトルCを、認証装置102に対して送信する。暗号化生体情報取得工程S605において、認証装置102の暗号化データ受信部301が、入力装置912を用いて、暗号化生体情報通知工程S604で登録装置104が送信した暗号化特徴ベクトルCを受信する。認証装置102の暗号化データ記憶部312が、記憶装置914を用いて、暗号化データ受信部301が受信した暗号化特徴ベクトルCを記憶する。なお、ユーザの生体情報や特徴ベクトルbは、暗号化特徴ベクトルCの生成後、不要となるので、消去する構成とすることが望ましい。そうすれば、不正者が、登録装置104の記憶装置914から、ユーザの生体情報や特徴ベクトルbを窃取することを防止できる。また、暗号化特徴ベクトルCは、復号装置の公開鍵で暗号化されているので、不正者が、登録装置104と認証装置102との間の通信を傍受したり、認証装置102の記憶装置914から窃取したりして、暗号化特徴ベクトルCを入手したとしても、復号装置の秘密鍵を使わなければ、ユーザの生体情報や特徴ベクトルを知ることはできない。更に、後述するように、認証時における特徴ベクトルの情報を含む第一レスポンスは、特徴ベクトルからしか生成できず、暗号化特徴ベクトルから生成することはできない。不正者が、暗号化特徴ベクトルCを入手したとしても、第一レスポンスを生成できないので、正規のユーザになりすますことはできない。図10は、この実施の形態における認証処理S700の流れの一例を示すフローチャート図である。認証処理S700は、例えば、第一チャレンジ生成工程S701と、乱数記憶工程S702と、第一チャレンジ通知工程S703と、第一チャレンジ取得工程S704と、生体情報抽出工程S705と、特徴ベクトル生成工程S706と、第一レスポンス生成工程S707と、第一レスポンス通知工程S708と、第一レスポンス取得工程S709と、暗号化生体情報抽出工程S710と、暗号化生体情報読出し工程S711と、第二チャレンジ生成工程S712と、乱数記憶工程S713と、第二チャレンジ通知工程S714と、第二チャレンジ取得工程S715と、第二レスポンス生成工程S716と、第二レスポンス通知工程S717と、第二レスポンス取得工程S718と、平文類似度算出工程S719と、認証判定工程S720とを有する。最初に、第一チャレンジ生成工程S701において、認証装置102の乱数生成部303が、処理装置911を用いて、公開鍵記憶部302から公開鍵pkを読み出し、乱数を生成する。認証装置102の暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302から公開鍵pkを読み出し、乱数生成部303が生成した乱数を暗号化して、第一チャレンジ暗号化乱数を生成する。乱数記憶工程S702において、認証装置102の乱数記憶部322が、記憶装置914を用いて、第一チャレンジ生成工程S701で乱数生成部303が生成した乱数を格納する。第一チャレンジ通知工程S703において、認証装置102の第一チャレンジ送信部311が、出力装置913を用いて、第一チャレンジ生成工程S701で暗号化乱数生成部304が生成した第一チャレンジを、証明装置101に対して送信する。第一チャレンジ取得工程S704において、証明装置101の第一チャレンジ受信部211が、入力装置912を用いて、第一チャレンジ通知工程S703で認証装置102が送信した第一チャレンジを受信する。生体情報抽出工程S705において、証明装置101の生体情報抽出部213が、入力装置912を用いて、ユーザの生体情報を抽出する。特徴ベクトル生成工程S706において、証明装置101の特徴ベクトル形成部214が、処理装置911を用いて、生体情報抽出工程S705で生体情報抽出部213が抽出した生体情報の特徴ベクトルb’を形成する。第一レスポンス生成工程S707において、証明装置101の乱数生成部215が、処理装置911を用いて、公開鍵記憶部212が格納している公開鍵pkを読み出し、乱数を生成する。証明装置101の暗号化データ埋め込み部217が、公開鍵記憶部212から公開鍵pkを読み出し、乱数生成部215が生成した乱数に基づいて、特徴ベクトル生成工程S706で特徴ベクトル形成部214が形成した特徴ベクトルb’の値に応じて第一チャレンジを処理して、第一レスポンスを生成する。第一レスポンスは、第一チャレンジに暗号化特徴ベクトルC’を埋め込んだものになる。第一レスポンス通知工程S708において、証明装置101の第一レスポンス送信部221が、出力装置913を用いて、第一レスポンス生成工程S707で暗号化データ埋め込み部217が生成した第一レスポンスを認証装置102に対して送信する。第一レスポンス取得工程S709において、認証装置102の第一レスポンス受信部331が、入力装置912を用いて、第一レスポンス通知工程S708で証明装置101が送信した第一レスポンスを受信する。暗号化生体情報抽出工程S710において、認証装置102の暗号化データ抽出部305が、処理装置911を用いて、第一チャレンジ生成工程S701で乱数生成部303が生成した乱数を乱数記憶部322から取り出し、第一レスポンスから乱数を除去して、暗号化特徴ベクトルC’を抽出する。暗号化生体情報読出し工程S711において、認証装置102の暗号化ランダム類似度算出部314が、処理装置911を用いて、暗号化データ記憶部312から暗号化特徴ベクトルCを取り出す。第二チャレンジ生成工程S712において、認証装置102の乱数生成部303が、処理装置911を用いて、公開鍵記憶部302が格納している公開鍵pkを読み出し、乱数を生成する。認証装置102の暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302から公開鍵pkを読み出し、暗号化生体情報抽出工程S710で暗号化データ抽出部305が第一レスポンスから抽出した暗号化特徴ベクトルC’と、暗号化生体情報読出し工程S711で取り出した暗号化特徴ベクトルCと、読み出した公開鍵pkと、乱数生成部303が生成した乱数とに基づいて、第二チャレンジ暗号化ランダム類似度を生成する。乱数記憶工程S713において、認証装置102の乱数記憶部322が、記憶装置914を用いて、第二チャレンジ生成工程S712で乱数生成部303が生成した乱数を格納する。第二チャレンジ通知工程S714において、認証装置102の第二チャレンジ送信部321が、出力装置913を用いて、第二チャレンジ生成工程S712で暗号化ランダム類似度算出部314が生成した第二チャレンジを復号装置103に対して送信する。第二チャレンジ取得工程S715において、復号装置103の第二チャレンジ受信部402が、入力装置912を用いて、第二チャレンジ通知工程S714で認証装置102が送信した第二チャレンジを受信する。第二レスポンス生成工程S716において、復号装置103の復号部404が、処理装置911を用いて、秘密鍵記憶部413から秘密鍵skを読み出し、第二チャレンジ取得工程S715で第二チャレンジ受信部402が受信した第二チャレンジ暗号化ランダム類似度に対して秘密鍵skを使った復号処理を行い、第二レスポンスを生成ランダム類似度を導出する。第二レスポンス通知工程S717において、復号装置103の第二レスポンス送信部412が、出力装置913を用いて、第二レスポンス生成工程S716で復号部404が生成した第二レスポンスを認証装置102に対して送信する。第二レスポンス取得工程S718において、認証装置102の第二レスポンス受信部341が、入力装置912を用いて、第二レスポンス通知工程S717で復号装置103が送信した第二レスポンスを受信する。平文類似度算出工程S719において、認証装置102の平文類似度抽出部315が、処理装置911を用いて、第二チャレンジ生成工程S712で乱数生成部303が生成した乱数を乱数記憶部322から取り出し、第二レスポンス取得工程S718で第二レスポンス受信部341が受信した第二レスポンスランダム類似度から乱数を除去して、平文の類似度を抽出する。認証判定工程S720において、認証装置102の判定部306が、処理装置911を用いて、平文類似度算出工程S719で抽出した平文の類似度と、所定の閾値とに基づいて、本人認証を行う。なお、認証処理S700は、例えば、証明装置101からの認証要求により開始する。しかし、通信コストの低減などのため、認証要求が来る前に、プロトコルの事前準備をしておく構成であってもよい。例えば、第一チャレンジ生成工程S701から第一チャレンジ取得工程S704までをあかじめ実行しておく構成であってもよい。すなわち、証明装置101から認証要求が来る前に、認証装置102が第一チャレンジ暗号化乱数を生成し、生成した第一チャレンジを証明装置101に対して送信し、証明装置101の暗号化データ埋め込み部217が、記憶装置914を用いて、受信した第一チャレンジを格納しておく。第一チャレンジの生成時に用いた乱数は、認証装置102の乱数記憶部322が、記憶装置914を用いて格納しておく。なお、乱数記憶部322が格納した乱数を、他の装置に公開してはならない。第一チャレンジ生成工程S701で認証装置102の乱数生成部303が生成し、暗号化乱数生成部304が第一チャレンジを作成するために使う乱数には、平文としての乱数と、その平文を暗号化するために使用する乱数との2種類がある。乱数記憶工程S702で認証装置102の乱数記憶部322が格納する乱数は、このうち、平文としての乱数だけでよい。第一レスポンス生成工程S707において、証明装置101は、暗号の加法的な準同型性を利用して、第一チャレンジと、特徴ベクトルの値とに基づいて、第一レスポンスを生成する。第一チャレンジは、平文としての乱数を暗号化したものである。一方、特徴ベクトルの値は、暗号化される前の平文である。第一レスポンスには、暗号化特徴ベクトルの値が埋め込まれる。暗号の加法的準同型性により、暗号文を元とする有限群における群演算で暗号文Em1,Em2を結合すると、平文を元とする有限群における群演算でもとの平文m1,m2を結合した平文m1m2を暗号化した暗号文Em1m2になる。ここで、m1及びm2は、平文を表わす。Eは、暗号化変換を表わす。は、平文または暗号文を元とする有限群における群演算を表わす。有限群における群演算で有限群の元aをn個nは、整数。結合した元をnaと記述すると、nEm=Enmである。ここで、mは、平文を表わす。この演算のことをスカラー倍と呼ぶ。なお、ここでは有限群の群演算を加法として記述しているが、有限群の群演算を乗法として記述する場合、同じ演算を累乗と呼び、naのように記述する。平文が、所定の数を法とする整数であるとすると、平文を元とする有限群は、環または体になる。環の演算には、加法と乗法とがある。平文を元とする有限環における加法は、暗号文を元とする有限群における群演算に対応づけられる。所定の数を法とする整数を元とする有限環における乗法は、スカラー倍と一致する。すなわち、平文を元とする有限環における乗法は、暗号文を元とする有限群における元のスカラー倍に対応づけられる。平文を元とする有限環の乗法における元aの逆元をa-1と記述する。平文mの逆元m-1が存在する場合、暗号文を元とする有限群の群演算でEnmをm-1個結合すると、平文nを暗号化した暗号文Enになる。生体認証システム100は、このことを利用する。特徴ベクトルが、0以上q未満の整数を成分とするT次元ベクトルy1,y2,...,yTTは、1以上の整数。であるとする。ただし、qは、有限環の位数であって、2以上の整数である。なお、実際の特徴ベクトルの成分は、例えば0か1かなど、限られた値しかとらないものであってもよい。第一チャレンジ生成工程S701において、乱数生成部303は、0以上q未満の整数のなかからランダムに選択した整数を、平文としての乱数とする。乱数生成部303は、T個の平文としての乱数x1,x2,...,xTを生成する。これを、特徴ベクトルと同じT次元のベクトルx1,x2,...,xTとみなす。暗号化乱数生成部304は、T次元ベクトルx1,x2,...,xTの各成分を、暗号化変換したT次元ベクトルEx1,Ex2,...,ExTを生成する。これが、第一チャレンジである。第一レスポンス生成工程S707において、暗号化データ埋め込み部217は、第一チャレンジEx1,Ex2,...,ExTの各成分を、特徴ベクトルy1,y2,...,yTの対応する成分でスカラー倍して、T次元ベクトルy1Ex1,y2Ex2,...,yTExTを算出する。暗号の加法的準同型性より、算出したT次元ベクトルの各成分yiExiiは、1以上T以下の整数。は、特徴ベクトルの成分yiと乱数xiとの積yixiを暗号化変換した暗号文Eyixiになる。原理的には、これをそのまま第一レスポンスとしてもよいが、そうすると、第一チャレンジと第一レスポンスとの間の関係から、特徴ベクトルの値が計算できる可能性がある。これを防ぐため、暗号化データ埋め込み部217は、乱数生成部215が生成した乱数を使ってランダム化処理をする。乱数生成部215が生成する乱数は、平文を暗号化するために使用する乱数である。暗号化データ埋め込み部217は、乱数生成部215が生成した乱数を使って、平文0を暗号化した暗号文E0をT個生成する。生体認証システム100が利用する暗号方式は、1つの平文に対応する暗号文が複数あり、そのなかからランダムに暗号文を選択することにより、暗号文から平文に関する情報が漏れるのを防ぐ。したがって、平文0に対応する暗号文E0も複数あり、暗号化データ埋め込み部217が生成するT個の暗号文E0は、通常、互いに異なっている。そこで、これをE01,E02,...,E0Tと記述する。暗号化データ埋め込み部217は、暗号文を元とする有限群における群演算により、算出したT次元ベクトルy1Ex1,y2Ex2,...,yTExTの各成分と、算出した暗号文E01,E02,...,E0Tとを、それぞれ結合して、T次元ベクトルy1Ex1E01,y2Ex2E02,...,yTExTE0Tを算出する。暗号の加法的準同型性より、算出したT次元ベクトルの各成分yiExiE0iiは、1以上T以下の整数。は、特徴ベクトルの成分yiと乱数xiとの積yixiを暗号化変換した暗号文Eyixiになるが、暗号文E0iと結合する前の暗号文とは、異なる暗号文に変わっている。このT次元ベクトルy1Ex1E01,y2Ex2E02,...,yTExTE0T=Ey1x1,Ey2x2,...,EyT,xTが、第一レスポンスである。暗号化生体情報抽出工程S710において、暗号化データ抽出部305は、乱数記憶部322が記憶したT個の乱数x1,x2,...,xTそれぞれについて、qを法とする整数の乗法における逆元逆数x1-1,x2-1,...,xT-1を算出する。qが素数の場合、qを法とする整数を元とする有限環は体になるから、必ず逆元が存在する。また、qが素数でない場合、乗法における逆元が存在しない可能性があるが、qが十分大きければその可能性は極めて低く、無視してよい。暗号化データ抽出部305は、第一レスポンスEy1x1,Ey2x2,...,EyT,xTの各成分を、算出した逆元でスカラー倍して、T次元ベクトルx1-1Ey1,x1,x2-1Ey2,x2,...xT-1EyTxTを算出する。暗号の加法的準同型性より、算出したT次元ベクトルの各成分xi-1Eyixiiは、1以上T以下の整数。は、特徴ベクトルの成分yiを暗号化変換した暗号文Eyiになる。このようにして、認証装置102は、暗号化特徴ベクトルC’を算出する。qを法とする整数の乗法における逆元は、容易に算出できる。したがって、xiを知っていれば、xi-1を容易に算出でき、したがって、第一レスポンスから暗号化特徴ベクトルC’を算出することも容易である。しかし、xiを知らなければ、第一レスポンスから暗号化特徴ベクトルC’を算出することは事実上不可能である。すなわち、第一チャレンジ生成工程S701で乱数生成部303が生成する平文としての乱数は、認証装置102だけが知っている秘密鍵一時秘密鍵であり、平文としての乱数を暗号化した第一チャレンジは、特徴ベクトルから第一レスポンスを生成するための公開鍵一時公開鍵である。ここで、第一レスポンスは、特徴ベクトルを認証装置102の公開鍵で暗号化したものであると同時に、復号装置103の公開鍵pkでも暗号化したものであり、特徴ベクトルを二重に暗号化したものと言える。認証装置102は、秘密鍵で第一レスポンスを復号できるが、その結果として得られるのは、特徴ベクトルを復号装置103の公開鍵pkで暗号化した暗号化特徴ベクトルである。暗号化特徴ベクトルを更に復号して特徴ベクトルを得るには、復号装置103の秘密鍵skが必要である。認証装置102は、公開鍵pkに対応付けられている秘密鍵skを知らないので、暗号化特徴ベクトルCや暗号化特徴ベクトルC’を復号することはできない。なお、認証装置102になりすました装置が、復号装置103の公開鍵pkを使った暗号化変換により第一チャレンジを生成するのではなく、秘密鍵sk’と公開鍵pk’との組を生成し、生成した公開鍵pk’を使った暗号化変換により第一チャレンジを生成したとしても、第一レスポンスから暗号化特徴ベクトルC’を復号することはできない。第一レスポンスの各成分には、復号装置103の公開鍵pkを使った暗号化変換により生成したE0iが結合されるから、その時点で、第一レスポンスは、いかなる秘密鍵でも復号できない無意味なデータになる。すなわち、第一レスポンスが意味のあるデータとなるためには、証明装置101が記憶している公開鍵と、認証装置102が記憶している公開鍵とが同じであることが条件となる。また、第二チャレンジ生成工程S712において、認証装置102の乱数生成部303が生成する乱数にも、平文としての乱数と、暗号化のために使用する乱数との2種類がある。乱数記憶工程S713で認証装置102の乱数記憶部322が格納する乱数は、このうち、平文としての乱数だけでよい。第一チャレンジ生成工程S701で乱数生成部303が生成する平文としての乱数が、第一レスポンスを復号するための鍵一時秘密鍵であるのと同様、第二チャレンジ生成工程S712で乱数生成部303が生成する平文としての乱数は、第二レスポンスを復号するための鍵一時鍵である。ただし、第二チャレンジと第二レスポンスとの関係は、第一チャレンジと第一レスポンスとの関係とは異なる。第一チャレンジは、認証装置102の一回限りの公開鍵である。証明装置101は、認証装置102の公開鍵と、復号装置103の公開鍵とを使って、特徴ベクトルを二重に暗号化することにより、第一レスポンスを生成する。これに対し、第二チャレンジは、それ自身が暗号化されたデータである。第二チャレンジは、認証装置102の鍵を使って、復号装置103の公開鍵で暗号化されたデータを更に暗号化したデータである。すなわち、第二チャレンジは、二重に暗号化されたデータである。復号装置103は、復号装置103の秘密鍵を使って、第二チャレンジを復号して第二レスポンスを生成する。復号装置103は、二重に暗号化された第二チャレンジを復号して、認証装置102の鍵だけで暗号化されたデータを生成する。認証装置102は、認証装置102の鍵を使って、第二レスポンスを復号することにより、平文の類似度を得る。平文の類似度を算出するための計算は、いくつかの段階に分けられ、それぞれの段階が、例えば、第二チャレンジ生成工程S712、第二レスポンス生成工程S716などで実行される。第二チャレンジ生成工程S712において、認証装置102は、特徴ベクトルが暗号化されたままの状態で、類似度算出のための計算の一部を実行する。したがって、この段階で、認証装置102が特徴ベクトルを知ることはできない。第二チャレンジは、既に一部の計算が終わった状態のデータを二重に暗号化したものである。既に一部の計算が終わっているので、第二チャレンジのなかには、もとの特徴ベクトルの情報すべてが含まれるのではなく、類似度の計算に必要な情報だけが含まれている。第二レスポンス生成工程S716において、復号装置103は、第二チャレンジを復号して、類似度の計算に必要な情報を認証装置102の鍵で暗号化したデータを得る。復号装置103は、認証装置102の鍵で暗号化されたままの状態で、類似度算出のための計算の一部を実行する。したがって、この段階で、復号装置103が特徴ベクトルや平文の類似度を知ることはできない。第二レスポンスは、既にほとんどの計算が終わった状態のデータを暗号化したものである。既にほとんどの計算が終わっているので、第二レスポンスのなかには、もとの特徴ベクトルの情報は含まれていない。平文類似度算出工程S719において、認証装置102は、第二レスポンスを復号し、類似度を算出する。平文の類似度そのものは、平文類似度算出工程S719より前には現れない。また、平文の類似度は、登録用の特徴ベクトルbと認証用の特徴ベクトルb’とがどの程度類似しているかのみを示す情報である。したがって、平文の類似度から特徴ベクトルや生体情報を計算することは困難である。次に、各段階における処理の詳細について、具体的な暗号方式を使った例を説明する。この実施の形態では、岡本-高島暗号方式を使った例について説明する。まず、岡本-高島暗号方式の概要を説明する。qは、2以上の素数である。G及びGTは、位数qの有限群である。なお、有限群G及び有限群GTにおける群演算は、乗法として記述する。Fqは、0以上q未満の整数を元とする有限体である。eは、有限群Gの2つの元の組を有限群GTの元に対応づけるペアリングG×G→GTである。ペアリングeは、双線形性と非退化性とを満たす。双線形性とは、有限群Gの任意の2つの元u,vと、有限体Fqの任意の2つの元a,bとに対して、eua,vb=eu,vabであることを言う。また、非退化性とは、有限群Gの元のなかに、eg,g≠1である元gが少なくとも1つ存在することを言う。なお、ペアリングeは、非対称ペアリングであってもよい。Vは、n個の有限群Gの直積集合G×G×...×Gである。Vにおける加法は、Vの任意の2つの元x=gx1,gx2,...,gxn,y=gy1,gy2,...,gynに対して、Vの元gx1y1,gx2y2,...,gxnynを、2つの元x,yの加法による結合xyとして定義する。Vにおけるスカラー倍は、Vの任意の元x=gx1,gx2,...,gxnと、有限体Fqの任意の元αとに対して、Vの元gαx1,gαx2,...,gαxnを、元xを元αでスカラー倍した元αxとして定義する。このとき、Vは、ベクトル空間となる。ベクトル空間Vの元をベクトルと呼ぶ。また、ベクトル空間V同士のペアリングe:V×V→GTは、ベクトル空間Vにおける任意の2つのベクトルu=u1,u2,...,un,v=v1,v2,...,vnに対して、有限群GTの元Πi[eui,vi]ただし、i∈{1,2,...,n}。を、2つのベクトルu,vのペアリングeu,vとして定義する。また、Aは、ベクトル空間Vにおけるn個のベクトルの順序列a1,a2,...,anであり、ベクトルai=ai1,ai2,...,ainは、i=jのときaij=g、i≠jのときaij=1である1は、有限群Gの単位元。と定義する。このとき、Aは、ベクトル空間Vの基底となる。基底Aを標準基底と呼ぶ。ベクトル空間Vにおけるディストーション写像φi,j:V→Vは、ベクトル空間Vにおける任意のベクトルx=x1a1x2a2...xnanと、1以上n以下の任意の2つの整数i,jとに対して、ベクトルxjaiを、ベクトルxのディストーション写像φi,jxとして定義する。なお、ディストーション写像φi,jは、コンピュータを用いて効率よく計算可能であるものとする。ベクトル空間Vは、標準基底があり、ベクトル空間同士のペアリングが定義され、計算可能なディストーション写像が定義されている。このようなベクトル空間を、双対ペアリングベクトル空間と呼ぶ。Xは、有限体Fqから一様ランダムに選んだn2個の値χi,ji,jは、1以上n以下の整数。をi行j列の成分とするn次の正方行列とする。qが十分大きければ、正方行列Xは、極めて高い確率で正則行列となる。Bは、ベクトル空間Vにおけるn個のベクトルの順序列ь1,ь2,...,ьnであり、ьi=Σj[χi,jaj]ただし、i,jは、1以上n以下の整数。と定義する。正方行列Xが正則行列であれば、Bは、Aと同様、ベクトル空間Vの基底となる。基底Bをランダム基底と呼ぶ。このとき、以下の性質が成り立つ。n個の有限体Fqの直積Fqnの要素x1,x2,...,xnが与えられたとき、ベクトル空間Vにおけるベクトルx=x1ь1x2ь2...xnьnは、容易に計算できる。また、ベクトル空間Vにおけるベクトルx=x1ь1x2ь2...xLьLLは、2以上n以下の整数。が与えられたとき、正則行列Xを使えば、ベクトル空間Vにおけるベクトルy=x1ь1x2ь2xlьllは、1以上L未満の整数。を計算できる。しかし、正則行列Xを使わなければ、ベクトルyを計算することは、一般化されたディフィー-ヘルマン計算問題と同程度に困難である。図11は、正則行列Xを使ってベクトル分解問題を解くベクトル分解処理S540の流れの一例を示すフローチャート図である。ベクトル分解処理S540は、ベクトル空間Vにおけるベクトルxと、ベクトルxから取り出したいベクトル成分<ь1,ь2,...,ьl>と、n次の正則行列Xと、ランダム基底Bとを入力し、ベクトル空間Vにおけるベクトルy=ΣiΣjΣk[ti,jχj,kφk,ix]iは、1以上L以下の整数。jは、1以上l以下の整数。kは、1以上L以下の整数。ti,jは、正則行列Xの逆行列T=X-1のi行j列成分。を出力する。ベクトル分解処理S540は、例えば、逆行列算出工程S541と、第一初期化工程S542と、第一繰り返し工程S543と、第二初期化工程S544と、第二繰り返し工程S545と、第三初期化工程S546と、第三繰り返し工程S547と、係数累計工程S548と、写像計算工程S549と、スカラー倍工程S550と、ベクトル累計工程S551とを有する。最初に、逆行列算出工程S541において、正則行列Xの逆行列X-1を算出する。第一初期化工程S542において、ベクトル空間Vの元yを0に初期化する。整数iを0に初期化する。第一繰り返し工程S543において、整数iに1を加える。整数iが整数Lより大きい場合、元yを出力して、ベクトル分解処理S540を終了する。整数iが整数L以下である場合、第二初期化工程S544へ進む。第二初期化工程S544において、整数kを0に初期化する。第二繰り返し工程S545において、整数kに1を加える。整数kが整数Lより大きい場合、第一繰り返し工程S543に戻る。整数kが整数L以下である場合、第三初期化工程S546へ進む。第三初期化工程S546において、整数jを0に初期化し、係数κを0に初期化する。第三繰り返し工程S547において、整数jに1を加える。整数jが整数lより大きい場合、写像計算工程S549へ進む。整数jが整数l以下である場合、係数累計工程S548へ進む。係数累計工程S548において、逆行列算出工程S541で算出した逆行列X-1のi行j列の成分ti,jと、正則行列Xのj行k列の成分χj,kとの積を計算する。計算した積を係数κに加え、第三繰り返し工程S547に戻る。写像計算工程S549において、ベクトル空間Vにおけるベクトルxのディストーション写像φk,ixを計算して、ベクトルφとする。スカラー倍工程S550において、写像計算工程S549で計算したベクトルφ=φk,ixをκ倍したベクトルφ’=κφを計算する。ベクトル累計工程S551において、スカラー倍工程S550で計算したベクトルφ’=κφk,ixをベクトルyに加え、第二繰り返し工程S545に戻る。岡本-高島暗号方式は、正則行列Xを秘密鍵とすることで、トラップドア関数を実現する。例えば、有限体Fqの元mを平文とし、ベクトル空間Vにおけるベクトルmь1r2ь2...rnьnを、平文mを暗号化した暗号文Emとする。ただし、riiは、2以上n以下の整数。は、有限体Fqから一様ランダムに選択した元である。復号時には、秘密鍵である正則行列Xを使って、ベクトル分解処理S540を実行し、暗号文Emから、ベクトル空間Vにおけるベクトルmь1を算出することにより、ランダム化要素であるriを消去する。図12は、この実施の形態における鍵生成部401の構成の一例を示す詳細ブロック図である。復号装置103の鍵生成部401は、例えば、群決定部421と、標準基底設定部422と、乱数生成部423と、行列式算出部424と、正則行列設定部425と、ランダム基底算出部426とを有する。群決定部421は、処理装置911を用いて、セキュリティレベルに応じて定まる大きさビット数に基づいて、素数qを生成する。素数qが大きいほど、安全性は高くなるが、暗号文が大きくなり、暗号処理や復号処理に時間がかかる。素数qの大きさは、例えば200ビットや1024ビットなどである。群決定部421は、生成した素数qに基づいて、有限群Gと有限群GTとを決定する。群決定部421が決定する有限群Gと有限群GTとは、ともに位数がqであり、ペアリングe:G×G→GTを持つ。群決定部421は、有限群Gの生成元gを算出する。なお、設定の順序は異なっていてもよく、例えば、最初に有限群Gを決定してから、有限群Gの位数を算出し、有限群Gの位数が、セキュリティレベルを満たす大きさの素数であるかを判定する構成であってもよい。標準基底設定部422は、処理装置911を用いて、セキュリティレベルに応じて定まる次元nに基づいて、n次元のベクトル空間Vを設定し、ベクトル空間Vの標準基底Aを設定する。次元nが大きいほど、安全性は高くなるが、暗号文が大きくなり、暗号処理や復号処理に時間がかかる。次元nは、例えば3などである。乱数生成部423は、処理装置911を用いて、群決定部421が決定した有限群Gの位数qに基づいて、n2個の乱数χi,ji,jは、1以上n以下の整数。を生成する。乱数生成部423が生成する乱数χi,jは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。行列式算出部424は、処理装置911を用いて、乱数生成部423が生成したn2個の乱数χi,jに基づいて、n次の正方行列Xを生成する。行列式算出部424が生成する正方行列Xは、それぞれの乱数χi,jをi行j列の成分とする行列である。行列式算出部424は、処理装置911を用いて、生成した正方行列Xの行列式|X|を算出する。正則行列設定部425は、処理装置911を用いて、行列式算出部424が算出した行列式|X|が0でない場合に、行列式算出部424が生成した正方行列Xを、正則行列Xとして設定する。ランダム基底算出部426は、処理装置911を用いて、標準基底設定部422が設定した標準基底Aと、正則行列設定部425が設定した正則行列Xとに基づいて、ランダム基底Bを算出する。ランダム基底算出部426が算出するランダム基底Bの各ベクトルьiiは、1以上n以下の整数。は、ьi=Σj[χi,jaj]jは、1以上n以下の整数。である。ランダム基底算出部426は、例えば次のようにして、ランダム基底Bのi番目のベクトルьiを算出する。ランダム基底算出部426は、1以上n以下のすべての整数jについて、正則行列Xのi行j列の成分χi,jと、標準基底Aのj番目のベクトルajとに基づいて、ベクトル空間Vにおけるスカラー倍により、ベクトルajをχi,j倍したベクトルχi,jajを算出する。ランダム基底算出部426は、ベクトル空間Vにおける加法により、算出したn個のベクトルχi,jajを結合したベクトルΣj[χi,jaj]を算出する。復号装置103の公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkとして、群決定部421が設定した位数qとペアリングeと有限群GTと、標準基底設定部422が設定したベクトル空間Vと標準基底Aと、ランダム基底算出部426が設定したランダム基底Bとの組q,V,e,GT,A,Bを格納する。復号装置103の秘密鍵記憶部413は、記憶装置914を用いて、秘密鍵skとして、正則行列設定部425が設定した正則行列Xを格納する。図13は、この実施の形態における鍵生成工程S501の処理の流れの一例を示すフローチャート図である。鍵生成工程S501では、復号装置103が、公開鍵pkと秘密鍵skとの組を生成する。なお、ユーザごとに異なる公開鍵pkと秘密鍵skとの組を生成する構成であってもよいし、システム全体として1つの公開鍵pkと秘密鍵skとの組を生成する構成であってもよい。鍵生成工程S501は、例えば、群決定工程S511と、標準基底設定工程S512と、行列生成工程S513と、正則判定工程S514と、ランダム基底算出工程S515とを有する。最初に、群決定工程S511において、群決定部421が、処理装置911を用いて、位数qと、位数qの有限群G及び有限群GTと、有限群Gの生成元gとを決定する。公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkの一部として、群決定部421が決定した位数qと有限群GTとを記憶する。標準基底設定工程S512において、標準基底設定部422が、処理装置911を用いて、群決定工程S511で群決定部421が決定した有限群Gに基づいて、ベクトル空間Vと、ベクトル空間Vの標準基底Aとを設定する。公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkの一部として、標準基底設定部422が設定したベクトル空間Vと標準基底Aとを記憶する。行列生成工程S513において、乱数生成部423が、処理装置911を用いて、n2個の乱数χi,jを生成する。行列式算出部424が、処理装置911を用いて、乱数生成部423が生成したn2個の乱数χi,jに基づいて、n次の正方行列Xを生成する。正則判定工程S514において、行列式算出部424が、処理装置911を用いて、行列生成工程S513で生成した正方行列Xの行列式|X|を計算する。行列式算出部424が計算した行列式|X|が0である場合、行列式算出部424が、行列生成工程S513に処理を戻し、乱数生成部423が乱数を生成し直す。行列式算出部424が計算した行列式|X|が0でない場合、正則行列設定部425が、処理装置911を用いて、正方行列Xを正則行列Xとして設定する。秘密鍵記憶部413が、記憶装置914を用いて、秘密鍵skとして、正則行列設定部425が設定した正則行列Xを記憶する。ランダム基底算出工程S515において、ランダム基底算出部426が、処理装置911を用いて、標準基底設定工程S512で標準基底設定部422が設定した標準基底Aと、正則判定工程S514で正則行列設定部425が設定した正則行列Xとに基づいて、ランダム基底Bを算出する。公開鍵記憶部403が、記憶装置914を用いて、公開鍵pkの一部として、ランダム基底算出部426が算出したランダム基底Bを記憶する。このようにして公開鍵記憶部403が記憶した公開鍵pk=q,V,e,GT,A,Bは、公開鍵送信部408が認証装置102などに対して送信し、認証装置102などが受信して格納する。図14は、この実施の形態における特徴ベクトル暗号化工程S603の処理の流れの一例を示すフローチャート図である。特徴ベクトル暗号化工程S603では、登録装置104が、特徴ベクトルbを暗号化して暗号化特徴ベクトルCを生成する。特徴ベクトル暗号化工程S603は、例えば、初期化工程S610と、繰り返し工程S611と、乱数生成工程S612と、ベクトル算出工程S613とを有する。登録装置104の特徴ベクトル形成部204が生成し、暗号化データ生成部206が暗号化する特徴ベクトルbは、例えば、整数を成分とするT次元のベクトルb1,b2,...,bTTは、1以上の整数。である。特徴ベクトルbの各成分biiは、1以上T以下の整数。は、例えば、0か1かの2つの値のうちのいずれかであり、生体情報が、その成分に対応する特徴を持っているか否かを表わす。例えば、特徴ベクトル形成部204は、生体情報抽出部203が指紋に光を当てて紋様を撮影した画像生体情報を、T個の領域に分割し、分割したそれぞれの領域のなかに特徴点例えば紋様の端点や分岐点などがあるか否かを判定する。特徴ベクトル形成部204は、特徴点がある場合に1、特徴点がない場合に0を、その領域に対応する特徴ベクトルの成分に設定する。暗号化データ生成部206が生成する暗号化特徴ベクトルCは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトルc1,c2,...,cTである。最初に、初期化工程S610において、暗号化データ生成部206が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S611において、暗号化データ生成部206が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化データ生成部206は、特徴ベクトル暗号化工程S603を終了する。整数iがT以下である場合、暗号化データ生成部206は、乱数生成工程S612へ処理を進め、暗号化特徴ベクトルCのi番目の成分ciを生成する。乱数生成工程S612において、乱数生成部205が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部である位数qに基づいて、n-1個の乱数rj,ijは、2以上n以下の整数。を生成する。乱数生成部205が生成する乱数rj,iは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。ベクトル算出工程S613において、暗号化データ生成部206が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部であるランダム基底Bと、特徴ベクトル形成部204が生成した特徴ベクトルbのi番目の成分biと、乱数生成工程S612で乱数生成部205が生成したn-1個の乱数rj,iとに基づいて、暗号化特徴ベクトルCのi番目の成分ciを算出する。暗号化データ生成部206が算出する暗号化特徴ベクトルCのi番目の成分ciは、ベクトル空間Vにおけるスカラー倍によりランダム基底Bの最初のベクトルь1を整数biでスカラー倍したベクトルbiь1と、ベクトル空間Vにおけるスカラー倍によりランダム基底Bの2番目以降のベクトルьjjは、2以上n以下の整数。をそれぞれ乱数rj,iでスカラー倍したn-1個のベクトルrj,iьjとを、ベクトル空間Vにおける加法により結合したベクトルbiь1Σj[rj,iьj]jは、2以上n以下の整数。である。例えば、暗号化データ生成部206は、ランダム基底Bの最初のベクトルь1と、特徴ベクトルbのi番目の成分biとに基づいて、ベクトル空間Vにおけるスカラー倍によりベクトルь1を整数biでスカラー倍したベクトルbiь1を算出する。また、暗号化データ生成部206は、2以上n以下のすべての整数jについて、ランダム基底Bのj番目のベクトルьjと、乱数生成部205が生成したn-1個の乱数のうちj-1番目の乱数rj,iとに基づいて、ベクトル空間Vにおけるスカラー倍によりベクトルьjを乱数rj,iでスカラー倍したベクトルrj,iьjを算出する。暗号化データ生成部206は、ベクトル空間Vにおける加法により、算出したベクトルbiь1と、算出したn-1個のベクトルrj,iьjとをすべて結合したベクトルbiь1Σj[rj,iьj]jは、2以上n以下の整数。を算出する。暗号化データ生成部206は、繰り返し工程S611に処理を戻し、暗号化特徴ベクトルCの次の成分を生成する。このようにして暗号化データ生成部206が生成した暗号化特徴ベクトルCは、暗号化データ送信部201が認証装置102に対して送信し、認証装置102が受信して格納する。図15は、この実施の形態における第一チャレンジ生成工程S701の処理の流れの一例を示すフローチャート図である。第一チャレンジ生成工程S701では、認証装置102が、第一チャレンジRを生成する。第一チャレンジ生成工程S701は、例えば、初期化工程S729と、繰り返し工程S721と、乱数生成工程S722と、ベクトル算出工程S723とを有する。認証装置102の暗号化乱数生成部304が生成する第一チャレンジRは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトルR1,R2,...,RTである。最初に、初期化工程S729において、暗号化乱数生成部304が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S721において、暗号化乱数生成部304が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化乱数生成部304は、第一チャレンジ生成工程S701を終了する。整数iがT以下である場合、暗号化乱数生成部304は、乱数生成工程S722へ処理を進め、第一チャレンジRのi番目の成分Riを生成する。乱数生成工程S722において、乱数生成部303が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である位数qに基づいて、n個の乱数Rj,ijは、1以上n以下の整数。を生成する。乱数生成部303が生成する乱数Rj,iは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322が、記憶装置914を用いて、乱数生成部303が生成したn個の乱数Rj,iのうち最初の乱数R1,iを記憶する。ベクトル算出工程S723において、暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるランダム基底Bと、乱数生成工程S722で乱数生成部303が生成したn個の乱数Rj,iとに基づいて、第一チャレンジRのi番目の成分Riを算出する。暗号化乱数生成部304が算出する第一チャレンジRのi番目の成分Riは、ベクトル空間Vにおけるスカラー倍によりランダム基底Bの各ベクトルьjjは、1以上n以下の整数。をそれぞれ乱数Rj,iでスカラー倍したn個のベクトルRj,iьjを、ベクトル空間Vにおける加法により結合したベクトルΣj[Rj,iьj]jは、1以上n以下の整数。である。例えば、暗号化乱数生成部304は、1以上n以下のすべての整数jについて、ランダム基底Bのj番目のベクトルьjと、乱数生成部205が生成したn個の乱数のうちj番目の乱数rj,iとに基づいて、ベクトル空間Vにおけるスカラー倍により、ベクトルьjを乱数Rj,iでスカラー倍したベクトルRj,iьjを算出する。暗号化乱数生成部304は、ベクトル空間Vにおける加法により、算出したn個のベクトルRj,iьjを結合したベクトルΣj[Rj,iьj]jは、1以上n以下の整数。を算出する。暗号化乱数生成部304は、繰り返し工程S721に処理を戻し、第一チャレンジRの次の成分を生成する。このようにして暗号化乱数生成部304が生成した第一チャレンジRは、第一チャレンジ送信部311が証明装置101に対して送信し、証明装置101が受信して処理をする。第一チャレンジ生成工程S701において乱数生成部303が生成する乱数Rj,iiは、1以上T以下の整数。jは、1以上n以下の整数。は、全部でnT個である。このうち、T個の乱数R1,iiは、1以上T以下の整数。を、乱数記憶部322が記憶する。乱数記憶部322が記憶するT個の乱数R1,iは、平文としての乱数であり、残りのn-1T個の乱数Rj,iiは、1以上T以下の整数。jは、2以上n以下の整数。は、暗号化のための乱数である。第一チャレンジRの各成分Riは、平文としての乱数R1,iを暗号化したものである。図16は、この実施の形態における暗号化データ埋め込み部217の構成の一例を示す詳細ブロック図である。証明装置101の暗号化データ埋め込み部217は、例えば、スカラー倍算出部231と、零生成部232と、ベクトル結合部233とを有する。特徴ベクトル形成部214が生成し、暗号化データ埋め込み部217が暗号化する特徴ベクトルb’は、登録装置104の特徴ベクトル形成部204が生成する特徴ベクトルbと同様、整数を成分とするT次元のベクトルb’1,b’2,...,b’Tである。乱数生成部215は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵pkの一部である位数qに基づいて、n-1T個の乱数R’j,iiは、1以上T以下の整数。jは、2以上n以下の整数。を生成する。乱数生成部215が生成する乱数R’j,iは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。スカラー倍算出部231は、処理装置911を用いて、第一チャレンジ受信部211が受信した第一チャレンジRと、特徴ベクトル形成部214が生成した特徴ベクトルb’とに基づいて、スカラー倍ベクトルЯを算出する。スカラー倍ベクトルЯは、第一チャレンジRと同様に、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトルя1,я2,...,яTである。スカラー倍算出部231が算出するスカラー倍ベクトルЯのi番目の成分яiiは、1以上T以下の整数。は、ベクトル空間Vにおけるスカラー倍により、第一チャレンジRのi番目の成分Riを、特徴ベクトルb’のi番目の成分b’iでスカラー倍したベクトルb’iRiである。スカラー倍ベクトルЯの各成分は、特徴ベクトルb’の成分b’iと、認証装置102が生成した平文としての乱数R1,iとの積を暗号化したものになる。零生成部232は、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部であるランダム基底Bと、乱数生成部215が生成したn-1T個の乱数R’j,iとに基づいて、暗号化零ベクトルOを生成する。暗号化零ベクトルOは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトルo1,o2,...,oTである。暗号化零ベクトルOのi番目の成分oiiは、1以上T以下の整数。は、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの2番目からn番目までのベクトルьjjは、2以上n以下の整数。をそれぞれ乱数R’j,iでスカラー倍したn-1個のベクトルR’j,iьjを、ベクトル空間Vにおける加法により結合したベクトルΣj[R’j,iьj]jは、2以上n以下の整数。である。暗号化零ベクトルOの各成分は、0を暗号化したものである。ベクトル結合部233は、処理装置911を用いて、スカラー倍算出部231が算出したスカラー倍ベクトルЯと、零生成部232が生成した暗号化零ベクトルOとに基づいて、第一レスポンスR’を算出する。第一レスポンスR’は、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトルR’1,R’2,...,R’Tである。第一レスポンスR’のi番目の成分R’iiは、1以上T以下の整数。は、ベクトル空間Vにおける加法により、スカラー倍ベクトルЯのi番目の成分яiと、暗号化零ベクトルOのi番目の成分oiとを結合したベクトルяioiである。第一レスポンスR’の各成分R’iは、第一チャレンジRの成分Riにおいて暗号化されている平文としての乱数R1,iと、特徴ベクトルb’の成分b’iとの積を暗号化したものになる。図17は、この実施の形態における第一レスポンス生成工程S707の処理の流れの一例を示すフローチャート図である。第一レスポンス生成工程S707では、証明装置101が、特徴ベクトルb’と、第一チャレンジRとに基づいて、第一レスポンスR’を生成する。第一レスポンス生成工程S707は、例えば、初期化工程S660と、繰り返し工程S661と、スカラー倍算出工程S662と、乱数生成工程S663と、零生成工程S664と、ベクトル結合工程S665とを有する。最初に、初期化工程S660において、ベクトル結合部233が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S661において、ベクトル結合部233が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、ベクトル結合部233は、第一レスポンス生成工程S707を終了する。整数iがT以下である場合、ベクトル結合部233は、スカラー倍算出工程S662へ処理を進め、第一レスポンスR’のi番目の成分R’iを生成する。スカラー倍算出工程S662において、スカラー倍算出部231が、処理装置911を用いて、特徴ベクトル形成部214が生成した特徴ベクトルb’のi番目の成分b’iと、第一チャレンジ受信部211が受信した第一チャレンジRのi番目のベクトルRiとに基づいて、スカラー倍ベクトルЯのi番目の成分яi=b’iRiを算出する。乱数生成工程S663において、乱数生成部215が、処理装置911を用いて、n-1個の乱数R’j,ijは、2以上n以下の整数。を生成する。零生成工程S664において、零生成部232が、処理装置911を用いて、乱数生成工程S663で乱数生成部215が生成したn-1個の乱数R’j,iに基づいて、暗号化零ベクトルOのi番目の成分oi=Σj[R’j,iьj]jは、2以上n以下の整数。を算出する。例えば、零生成部232は、2以上n以下のすべての整数jについて、ランダム基底Bのj番目のベクトルьjと、乱数生成部215が生成したn-1個の乱数のうちj-1番目の乱数R’j,iとに基づいて、ベクトル空間Vにおけるスカラー倍により、ベクトルьjをR’j,iでスカラー倍したベクトルR’j,iьjを算出する。零生成部232は、ベクトル空間Vにおける加法により、算出したn-1個のベクトルR’j,iьjを結合したベクトルΣj[R’j,iьj]を算出する。ベクトル結合工程S665において、ベクトル結合部233が、処理装置911を用いて、スカラー倍算出工程S662でスカラー倍算出部231が算出したスカラー倍ベクトルЯのi番目の成分яi=b’iRiと、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oi=Σj[R’j,iьj]jは、2以上n以下の整数。とに基づいて、第一レスポンスR’のi番目の成分R’i=яioi=b’iRiΣj[R’j,iьj]を算出する。ベクトル結合部233は、繰り返し工程S661に処理を戻し、第一レスポンスR’の次の成分を生成する。このようにして暗号化データ埋め込み部217が生成した第一レスポンスR’は、第一レスポンス送信部221が認証装置102に対して送信し、認証装置102が受信して処理する。なお、特徴ベクトルb’の成分b’iが0か1かの2つの値しか取らない場合、第一レスポンス生成工程S707の処理は、例えば次のように簡略化できる。まず、スカラー倍する必要がないので、スカラー倍算出部231を設けず、スカラー倍算出工程S662を実行しない。ベクトル結合工程S665において、ベクトル結合部233は、処理装置911を用いて、特徴ベクトルb’のi番目の成分b’iが0であるか1であるかを判定する。特徴ベクトルb’のi番目の成分b’iが0である場合、ベクトル結合部233は、処理装置911を用いて、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oi=Σj[R’j,iьj]を、第一レスポンスR’のi番目の成分R’iとする。特徴ベクトルb’のi番目の成分b’iが1である場合、ベクトル結合部233は、処理装置911を用いて、ベクトル空間Vにおける加法により、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oi=Σj[R’j,iьj]と、第一チャレンジ受信部211が受信した第一チャレンジRのi番目の成分Riとを結合したベクトルoiRi=RiΣj[R’j,iьj]を算出して、第一レスポンスR’のi番目の成分R’iとする。第一チャレンジRのi番目の成分Riは、Σj[Rj,iьj]jは、1以上n以下の整数。であるから、第一レスポンスR’のi番目の成分R’iは、R’i=b’iΣk[Rk,iьj]Σj[R’j,iьj]jは、2以上n以下の整数。kは、1以上n以下の整数。=b’iR1,iь1Σj[b’iRj,iR’j,iьj]jは、2以上n以下の整数。である。すなわち、第一レスポンスR’のi番目の成分R’iは、特徴ベクトルb’のi番目の成分b’iと、乱数R1,iとの積を暗号化したものになっている。図18は、この実施の形態における暗号化データ抽出部305の構成の一例を示す詳細ブロック図である。認証装置102の暗号化データ抽出部305は、例えば、逆数算出部351と、スカラー倍算出部352とを有する。認証装置102の暗号化データ抽出部305が生成する暗号化特徴ベクトルC’は、登録装置104の暗号化データ生成部206が生成する暗号化特徴ベクトルCと同様、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトルc’1,c’2,...,c’Tである。逆数算出部351は、処理装置911を用いて、乱数記憶部322が記憶したT個の乱数R1,iiは、1以上T以下の整数。に基づいて、有限体Fqにおける乗法による乱数R1,iそれぞれの逆元κi=R1,i-1を算出する。逆元κiは、乱数R1,iと逆元κiとの積をqで割った余りが1になる整数である。暗号化データ抽出部305は、例えば、乱数R1,iのq-2乗をqで割った余りを計算することにより、逆元κiを算出する。スカラー倍算出部352は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’と、逆数算出部351が算出したT個の逆元κiとに基づいて、暗号化特徴ベクトルC’を算出する。スカラー倍算出部352が算出する暗号化特徴ベクトルC’のi番目の成分c’iiは、1以上T以下の整数。は、ベクトル空間Vにおけるスカラー倍により、第一レスポンスR’のi番目の成分R’iを、i番目の逆元κiでスカラー倍したベクトルκiR’iである。暗号化特徴ベクトルC’の各成分c’iは、特徴ベクトルb’の成分b’iを暗号化したものになる。図19は、この実施の形態における暗号化生体情報抽出工程S710の処理の流れの一例を示すフローチャート図である。暗号化生体情報抽出工程S710では、認証装置102が、第一レスポンスR’に基づいて、暗号化特徴ベクトルC’を生成する。暗号化生体情報抽出工程S710は、例えば、初期化工程S730と、繰り返し工程S731と、逆数算出工程S732と、スカラー倍算出工程S733とを有する。最初に、初期化工程S730において、スカラー倍算出部352が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S731において、スカラー倍算出部352が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、スカラー倍算出部352は、暗号化生体情報抽出工程S710を終了する。整数iがT以下である場合、スカラー倍算出部352は、逆数算出工程S732へ処理を進め、暗号化特徴ベクトルC’のi番目の成分c’iを生成する。逆数算出工程S732において、逆数算出部351が、処理装置911を用いて、第一チャレンジ生成工程S701で乱数記憶部322が記憶したT個の乱数のうちi番目の乱数R1,iに基づいて、有限体Fqの乗法における乱数R1,iの逆元κi=R1,i-1を算出する。スカラー倍算出工程S733において、スカラー倍算出部352は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’のi番目の成分R’iと、逆数算出工程S732で算出した逆元κiとに基づいて、暗号化特徴ベクトルC’のi番目の成分c’i=κiR’iを算出する。スカラー倍算出部352は、繰り返し工程S731に処理を戻し、暗号化特徴ベクトルC’の次の成分を生成する。このようにして暗号化データ抽出部305が生成した暗号化特徴ベクトルC’は、第二チャレンジ生成工程S712で使われる。第一レスポンスR’のi番目の成分R’iは、R’i=b’iR1,iь1Σ[b’iRj,iR’j,iьj]jは、2以上n以下の整数。であるから、暗号化特徴ベクトルC’のi番目の成分c’iは、c’i=R1,i-1b’iR1,iь1R1,i-1Σ[b’iRj,iR’j,iьj]jは、2以上n以下の整数。である。R1,iR1,i-1≡1modqであるから、c’i=b’iь1R1,i-1Σ[b’iRj,iR’j,iьj]jは、2以上n以下の整数。である。すなわち、暗号化特徴ベクトルC’のi番目の成分c’iは、特徴ベクトルb’のi番目の成分b’iを暗号化したものになる。図20は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。認証装置102の暗号化ランダム類似度算出部314は、例えば、差分算出部361と、撹乱ベクトル生成部362と、ベクトル結合部363と、スカラー倍算出部364と、二乗和算出部365と、暗号化鍵生成部366と、ベクトル累計部367とを有する。乱数生成部303は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である位数qに基づいて、nT1個の乱数tj,i,ujiは、1以上T以下の整数。jは、1以上n以下の整数。を生成する。乱数生成部303が生成する乱数tj,i,ujは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、1個の乱数u1を記憶する。差分算出部361は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、暗号化差分ベクトルΔCを算出する。暗号化差分ベクトルΔCは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトルΔc1,Δc2,...,ΔcTである。暗号化差分ベクトルΔCのi番目の成分Δciiは、1以上T以下の整数。は、ベクトル空間Vにおける加法により、暗号化特徴ベクトルCのi番目の成分ciと、暗号化特徴ベクトルC’のi番目の成分c’iの逆ベクトル-c’iとを結合したベクトルci-c’iである。暗号化差分ベクトルΔCの各成分Δciは、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差bi-b’iを暗号化したものである。なお、暗号化差分ベクトルΔCのi番目の成分Δciは、ベクトル空間Vにおける加法により、暗号化特徴ベクトルCのi番目の成分ciの逆ベクトル-ciと、暗号化特徴ベクトルC’のi番目の成分c’iとを結合したベクトルc’i-ciであってもよい。また、暗号化差分ベクトルΔCの成分Δciは、ベクトルci-c’iと、ベクトルc’i-ciとのなかから、ランダムに選択したいずれかのベクトルであってもよい。撹乱ベクトル生成部362は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるランダム基底Bと、乱数生成部303が生成した乱数のうちnT個の乱数tj,iとに基づいて、撹乱ベクトルтを生成する。撹乱ベクトルтは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトルt1,t2,...,tTである。撹乱ベクトルтの各成分tiiは、1以上T以下の整数。は、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの各ベクトルьjjは、1以上n以下の整数。を、それぞれ乱数tj,iでスカラー倍したn個のベクトルtj,iьjを、ベクトル空間Vにおける加法により結合したベクトルΣj[tj,iьj]jは、1以上n以下の整数。である。撹乱ベクトルтの各成分tiは、平文としての乱数t1,iを暗号化したものである。ベクトル結合部363は、処理装置911を用いて、差分算出部361が算出した暗号化差分ベクトルΔCと、撹乱ベクトル生成部362が算出した撹乱ベクトルтとに基づいて、第二チャレンジC^の一部であるT個のベクトルc^iiは、1以上T以下の整数。を算出する。ベクトルc^iは、ベクトル空間Vにおけるベクトルである。i番目のベクトルc^iは、ベクトル空間Vにおける加法により、暗号化差分ベクトルΔCのi番目の成分Δciと、撹乱ベクトルтのi番目の成分tiとを結合したベクトルΔcitiである。ベクトルc^iは、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差と平文としての乱数t1,iとの和bi-b’it1,iを暗号化したものである。スカラー倍算出部364は、処理装置911を用いて、差分算出部361が算出した暗号化差分ベクトルΔCと、乱数生成部303が生成した乱数のうちT個の平文としての乱数t1,iとに基づいて、スカラー倍ベクトル¢を算出する。スカラー倍ベクトル¢は、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル¢1,¢2,...,¢Tである。スカラー倍算出部364が算出するスカラー倍ベクトル¢のi番目の成分¢iiは、1以上T以下の整数。は、ベクトル空間Vにおけるスカラー倍により、暗号化差分ベクトルΔCのi番目の成分Δciを、T個の平文としての乱数のうちのi番目の乱数t1,iの2倍でスカラー倍したベクトル2t1,iΔciである。スカラー倍算出部364が算出するスカラー倍ベクトル¢の各成分¢iは、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差と2t1,iとの積2t1,ib-b’を暗号化したものである。二乗和算出部365は、処理装置911を用いて、乱数生成部303が生成した乱数のうちT個の平文としての乱数t1,iに基づいて、二乗和Σを算出する。二乗和Σは、T個の乱数t1,iの二乗を合計した値Σi[t1,i2]iは、1以上T以下の整数。である。暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるランダム基底Bと、乱数生成部303が生成した乱数のうちn個の乱数ujと、二乗和算出部365が算出した二乗和Σとに基づいて、暗号化鍵цを算出する。暗号化鍵цは、ベクトル空間Vにおけるベクトルである、暗号化鍵цは、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの最初のベクトルь1を、n個の乱数のうちの最初の乱数u1と二乗和Σとの和でスカラー倍したベクトルu1Σь1と、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの2番目以降のベクトルьjjは、2以上n以下の整数。を、n個の乱数のうちの2番目以降の乱数ujでそれぞれスカラー倍したn-1個のベクトルujьjとを、ベクトル空間Vにおける加法により結合したベクトルu1Σь1Σj[ujьj]jは、1以上n以下の整数。である。例えば、暗号化鍵生成部366は、乱数生成部303が生成した乱数u1と、二乗和算出部365が算出した二乗和Σとの和u1Σを算出する。暗号化鍵生成部366は、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの最初のベクトルь1を、算出した和u1Σでスカラー倍したベクトルu1Σь1を算出する。暗号化鍵生成部366は、2以上n以下のすべての整数jについて、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bのj番目のベクトルьjを、乱数生成部303が生成した乱数ujでスカラー倍したベクトルujьjを算出する。暗号化鍵生成部366は、ベクトル空間Vにおける加法により、算出したベクトルu1Σь1と、算出したn-1個のベクトルujьjとを結合したベクトルu1Σь1Σj[ujьj]jは、1以上n以下の整数。を算出する。ベクトル累計部367は、処理装置911を用いて、スカラー倍算出部364が算出したスカラー倍ベクトル¢と、暗号化鍵生成部366が算出した暗号化鍵цとに基づいて、第二チャレンジC^の一部である1個のベクトルc^を算出する。ベクトルc^は、ベクトル空間Vにおけるベクトルである。ベクトルc^は、ベクトル空間Vにおける加法により、スカラー倍算出部364が算出したスカラー倍ベクトルの成分であるT個のベクトル¢i=2t1,iΔciiは、1以上T以下の整数。と、暗号化鍵ц=u1Σь1Σj[ujьj]jは、1以上n以下の整数。とを結合したベクトルΣi[2t1,iΔci]u1Σь1Σj[ujьj]iは、1以上T以下の整数。jは、1以上n以下の整数。である。ベクトルc^は、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差と2t1,iとの積の総和と、t1,iの二乗の総和と、乱数u1との総合計u1Σi[2t1,ibi-b’it1,i2]を暗号化したものである。このうち、乱数u1は、類似度を暗号化復号するための一時鍵としての乱数である。それ以外の部分であるΣi[2t1,ibi-b’it1,i2]は、復号装置103が、平文としての乱数t1,iによる撹乱を除去して、暗号化された類似度を算出できるようにするための情報である。暗号化ランダム類似度算出部314が生成する第二チャレンジC^は、ベクトル結合部363が算出したT個のベクトルc^iiは、1以上T以下の整数。と、ベクトル累計部367が算出した1個のベクトルc^とを合わせたT1個のベクトルからなる。なお、第二チャレンジC^の最初のT個のベクトルc^iの順序は、特徴ベクトルb,b’の成分の順序と異なっていてもよい。図21は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。第二チャレンジ生成工程S712では、認証装置102が、2つの暗号化特徴ベクトルC,C’に基づいて、第二チャレンジC^を生成する。第二チャレンジ生成工程S712は、例えば、初期化工程S740と、繰り返し工程S741と、差分算出工程S742と、乱数生成工程S743と、撹乱ベクトル生成工程S744と、ベクトル結合工程S745と、スカラー倍算出工程S746と、ベクトル累計工程S747と、二乗累計工程S748と、乱数生成工程S749と、暗号化鍵生成工程S750と、ベクトル累計工程S751とを有する。最初に、初期化工程S740において、ベクトル結合部363が、処理装置911を用いて、整数iを0に初期化し、ベクトルc^を0ベクトル空間Vにおける零ベクトルに初期化する。二乗和算出部365が、処理装置911を用いて、二乗和Σを0に初期化する。繰り返し工程S741において、ベクトル結合部363が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、ベクトル結合部363は、乱数生成工程S749へ処理を進める。整数iがT以下である場合、ベクトル結合部363は、差分算出工程S742へ処理を進め、第二チャレンジC^のi番目のベクトルc^iを生成する。差分算出工程S742において、差分算出部361が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’iとに基づいて、暗号化差分ベクトルΔCのi番目の成分Δciを算出する。乱数生成工程S743において、乱数生成部303が、処理装置911を用いて、n個の乱数tj,ijは、1以上n以下の整数。を生成する。撹乱ベクトル生成工程S744において、撹乱ベクトル生成部362が、処理装置911を用いて、乱数生成工程S743で乱数生成部303が生成したn個の乱数tj,iに基づいて、撹乱ベクトルтのi番目の成分ti=Σj[tj,iьj]jは、1以上n以下の整数。を生成する。ベクトル結合工程S745において、ベクトル結合部363が、処理装置911を用いて、差分算出工程S742で差分算出部361が算出した暗号化差分ベクトルΔCのi番目の成分Δciと、撹乱ベクトル生成工程S744で撹乱ベクトル生成部362が算出した撹乱ベクトルтのi番目の成分tiとに基づいて、第二チャレンジC^のi番目のベクトルc^i=Δcitiを算出する。なお、第二チャレンジC^の最初のT個のベクトルc^iの順序と、特徴ベクトルb,b’の成分の順序とが異なる構成とする場合、ベクトル結合部363は、例えば、次のようにする。ベクトル結合部363は、初期化工程S740で、1以上T以下の整数をランダムに並べ替えた数列を生成しておく。ベクトル結合工程S745において、ベクトル結合部363は、その数列のi番目の整数を取得して整数jとし、算出したベクトルΔcitiを、第二チャレンジC^のj番目のベクトルc^jにする。スカラー倍算出工程S746において、スカラー倍算出部364が、処理装置911を用いて、差分算出工程S742で差分算出部361が算出した暗号化差分ベクトルΔCのi番目の成分Δciと、乱数生成工程S743で乱数生成部303が生成したn個の乱数tj,iのうちの最初の乱数t1,iとに基づいて、スカラー倍ベクトル¢のi番目の成分¢i=t1,iΔciを算出する。ベクトル累計工程S747において、ベクトル累計部367が、処理装置911を用いて、スカラー倍算出工程S746でスカラー倍算出部364が算出したスカラー倍ベクトル¢のi番目の成分¢i=t1,iΔciに基づいて、ベクトル空間Vにおける加法により、ベクトル¢iを、ベクトルc^に結合する。二乗累計工程S748において、二乗和算出部365が、処理装置911を用いて、乱数生成工程S743で乱数生成部303が生成したn個の乱数tj,iのうちの最初の乱数t1,iに基づいて、有限体Fqにおける乗法により、乱数t1,iの二乗t1,i2を算出し、有限体Fqにおける加法により、算出した二乗t1,i2を、二乗和Σに結合する。ベクトル結合部363は、繰り返し工程S741に処理を戻し、第二チャレンジC^の次のベクトルを生成する。乱数生成工程S749において、乱数生成部303が、処理装置911を用いて、n個の乱数ujjは、1以上n以下の整数。を生成する。乱数記憶部322が、記憶装置914を用いて、乱数生成部303が生成したn個の乱数のうち、一時鍵としての乱数である乱数u1を記憶する。暗号化鍵生成工程S750において、暗号化鍵生成部366が、処理装置911を用いて、二乗累計工程S748で二乗和算出部365が累計した二乗和Σと、乱数生成工程S749で乱数生成部303が生成したn個の乱数ujとに基づいて、暗号化鍵цを生成する。ベクトル累計工程S751において、ベクトル累計部367が、処理装置911を用いて、暗号化鍵生成工程S750で暗号化鍵生成部366が生成した暗号化鍵цに基づいて、ベクトル空間Vにおける加法により、暗号化鍵цを、ベクトルc^に結合する。これにより、第二チャレンジC^のT1番目のベクトルc^が完成し、第二チャレンジC^も完成する。このようにして暗号化ランダム類似度算出部314が算出した第二チャレンジC^は、第二チャレンジ送信部321が復号装置103に対して送信し、復号装置103が受信して処理する。図22は、この実施の形態における復号部404の構成の一例を示す詳細ブロック図である。復号装置103の復号部404は、例えば、逆行列算出部471と、ベクトル分解部472と、二乗算出部473と、群変換部474と、元結合部475とを有する。逆行列算出部471は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkの一部である位数qと、秘密鍵記憶部413が記憶した秘密鍵skである正則行列Xとに基づいて、有限体Fqにおける正則行列Xの逆行列X-1を算出する。ベクトル分解部472は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである正則行列Xと、第二チャレンジ受信部402が受信した第二チャレンジC^と、逆行列算出部471が算出した逆行列X-1とに基づいて、T1個の復号ベクトルyi,yiは、1以上T以下の整数。を算出する。復号ベクトルyi,yは、ベクトル空間におけるベクトルである。i番目の復号ベクトルyiiは、1以上T以下の整数。は、第二チャレンジC^のi番目のベクトルc^iを、ランダム基底Bの一次結合に分解し、2番目以降のベクトルьjjは、2以上n以下の整数。にかかる成分を取り除いて、ランダム基底Bの最初のベクトルь1のスカラー倍にしたベクトルである。復号ベクトルyは、第二チャレンジC^のT1番目のベクトルc^を、ランダム基底Bの一次結合に分解し、2番目以降のベクトルьjjは、2以上n以下の整数。にかかる成分を取り除いて、ランダム基底Bの最初のベクトルь1のスカラー倍にしたベクトルである。ベクトル分解部472は、例えば、図11に示したベクトル分解処理S540の手順により、復号ベクトルyi,yを算出する。第二チャレンジC^のi番目のベクトルc^iiは、1以上T以下の整数。は、Δcitiであるから、i番目の復号ベクトルyiは、bi-b’it1,iь1になる。また、第二チャレンジC^のT1番目のベクトルc^は、Σi[2t1,iΔci]Σi[t1,i2]ь1Σj[ujьj]iは、1以上T以下の整数。jは、1以上n以下の整数。であるから、復号ベクトルyは、u1Σi[2t1,ibi-b’it1,i2]ь1になる。二乗算出部473は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkの一部であるペアリングeと、ベクトル分解部472が算出したT個の復号ベクトルyiとに基づいて、T個の二乗元y’iiは、1以上T以下の整数。を算出する。二乗元y’iは、有限群GTの元である。i番目の二乗元y’iiは、1以上T以下の整数。は、ペアリングeにより、i番目の復号ベクトルyi同士の組を変換した元eyi,yiである。i番目の復号ベクトルyiは、bi-b’it1,iь1であるから、ペアリングeの双線形性より、i番目の二乗元y’iは、ペアリングeによりランダム基底Bの最初のベクトルь1同士の組を変換した有限群GTの元eь1,ь1を、有限群GTにおける累乗により、bi-b’it1,iの二乗で累乗した元になる。群変換部474は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkの一部であるペアリングe及びランダム基底Bと、ベクトル分解部472が算出した復号ベクトルyとに基づいて、変換元y’を算出する。変換元y’は、有限群GTの元である。変換元y’は、ペアリングeにより、復号ベクトルyと、ランダム基底Bの最初のベクトルь1との組を変換した元ey,ь1である。復号ベクトルyは、u1Σi[2t1,ibi-b’it1,i2]ь1であるから、ペアリングeの双線形性より、変換元y’は、有限群GTにおける累乗により、有限群GTの元eь1,ь1をu1Σi[2t1,ibi-b’it1,i2]iは、1以上T以下の整数。で累乗した元になる。元結合部475は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkの一部である有限群GTと、二乗算出部473が算出したT個の二乗元y’iと、群変換部474が算出した変換元y’とに基づいて、第二レスポンスZを算出する。第二レスポンスZは、有限群GTの元である。元結合部475が算出する第二レスポンスZは、有限群GTにおける乗法により、T個の二乗元y’iと、変換元y’の逆元y’-1とを結合した元である。第二レスポンスZは、有限群GTにおける累乗により、有限群GTの元eь1,ь1をΣi[bi-b’i2]-u1iは、1以上T以下の整数。で累乗した元になる。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間のユークリッド距離の二乗Σi[bi-b’i2]を、一時鍵としての乱数u1で暗号化したものになる。図23は、この実施の形態における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図である。第二レスポンス生成工程S716では、復号装置103が、第二チャレンジC^から、第二レスポンスZを生成する。第二レスポンス生成工程S716は、例えば、逆行列算出工程S561と、ベクトル分解工程S566と、群変換工程S567と、初期化工程S560と、繰り返し工程S562と、ベクトル分解工程S563と、二乗算出工程S564と、元結合工程S565とを有する。最初に、逆行列算出工程S561において、逆行列算出部471が、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである正則行列Xの逆行列X-1を算出する。なお、逆行列算出部471は、処理装置911を用いて、あらかじめ例えばセットアップ処理S500で逆行列X-1を算出し、記憶装置914を用いて、算出した逆行列X-1を記憶しておく構成であってもよい。ベクトル分解工程S566において、ベクトル分解部472が、処理装置911を用いて、逆行列算出工程S561で逆行列算出部471が算出した逆行列X-1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジC^の最後のベクトルc^をベクトル分解して、復号ベクトルyを算出する。群変換工程S567において、群変換部474が、処理装置911を用いて、ベクトル分解工程S566でベクトル分解部472が算出した復号ベクトルyに基づいて、変換元y’を算出する。初期化工程S560において、元結合部475が、処理装置911を用いて、整数iを0に初期化し、第二レスポンスZを、有限群GTの乗法における変換元y’の逆元y’-1に初期化する。繰り返し工程S562において、元結合部475が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二レスポンスZが完成したので、元結合部475は、第二レスポンス生成工程S716を終了する。整数iがT以下である場合、元結合部475は、ベクトル分解工程S563へ処理を進める。ベクトル分解工程S563において、ベクトル分解部472が、処理装置911を用いて、逆行列算出工程S561で逆行列算出部471が算出した逆行列X-1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジC^のi番目のベクトルc^iをベクトル分解して、i番目の復号ベクトルyiを算出する。二乗算出工程S564において、二乗算出部473が、処理装置911を用いて、ベクトル分解工程S563でベクトル分解部472が算出したi番目の復号ベクトルyiに基づいて、i番目の二乗元y’i=eyi,yiを算出する。元結合工程S565において、元結合部475が、処理装置911を用いて、二乗算出工程S564で二乗算出部473が算出したi番目の二乗元y’iに基づいて、有限群GTにおける乗法により、i番目の二乗元y’iを、第二レスポンスZに結合する。元結合部475は、繰り返し工程S562に処理を戻し、第二チャレンジC^の次のベクトルを処理する。このようにして復号部404が生成した第二レスポンスZは、第二レスポンス送信部412が認証装置102に対して送信し、認証装置102が受信して処理する。図24は、この実施の形態における平文類似度抽出部315の構成の一例を示す詳細ブロック図である。認証装置102の平文類似度抽出部315は、例えば、群変換部371と、元結合部372と、離散対数算出部373とを有する。群変換部371は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及びランダム基底Bと、乱数記憶部322が記憶した一時鍵としての乱数u1とに基づいて、復号鍵Цを算出する。復号鍵Цは、有限群GTの元である。群変換部371が算出する復号鍵Цは、ペアリングeによりランダム基底Bの最初のベクトルь1同士の組を変換した元eь1,ь1を、有限群GTにおける累乗により、乱数u1で累乗した元eь1,ь1u1である。元結合部372は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である有限群GTと、第二レスポンス受信部341が受信した第二レスポンスZと、群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’を算出する。復号類似度元Z’は、有限群GTの元である。復号類似度元Z’は、有限群GTにおける乗法により、第二レスポンスZと、復号鍵Цとを結合した元である。第二レスポンスZは、有限群GTにおける累乗により、有限群GTの元eь1,ь1をΣi[bi-b’i2]-u1iは、1以上T以下の整数。で累乗した元であるから、復号類似度元Z’は、有限群GTにおける累乗により、有限群GTの元eь1,ь1をΣi[bi-b’i2]iは、1以上T以下の整数。で累乗した元になる。離散対数算出部373は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及びランダム基底Bと、元結合部372が算出した復号類似度元Z’とに基づいて、類似度dを算出する。類似度dは、有限体Fqの元である。離散対数算出部373が算出する類似度dは、有限群GTにおける累乗による有限群GTの元eь1,ь1の何乗が、復号類似度元Z’に一致するかを求めたものである。離散対数算出部373が復号類似度元Z’から類似度dを算出することは、いわゆる離散対数問題を解くことであるから、一般的には、困難である。しかし、類似度dの範囲があらかじめ限定されていれば、類似度dを算出することが可能になる。例えば、その範囲内のすべての整数dについて、あらかじめeь1,ь1を整数dで累乗した元eь1,ь1dを算出しておき、復号類似度元Z’がどれと一致するかを判定すればよい。類似度dは、2つの特徴ベクトルb,b’の間のユークリッド距離の二乗であるから、類似度dが小さいほど2つの特徴ベクトルb,b’が似ていることを表わす。判定部306は、例えば、類似度dを所定の閾値d0と比較して、類似度dのほうが小さい場合に、2つの特徴ベクトルb,b’が似ていると判定する。このため、類似度dが具体的にいくつであるかを知る必要はなく、類似度dが閾値d0より大きいか小さいかだけがわかればよい。閾値d0は、位数qよりもはるかに小さい整数であり、例えば数百~数万程度である。特徴ベクトルb,b’の成分が0か1かのいずれかの値である場合、2つの特徴ベクトルb,b’の間のユークリッド距離の二乗は、0以上T以下の整数になる。この場合、閾値d0が特徴ベクトルの次数Tよりも小さい整数でなければ、すべての場合に2つの特徴ベクトルb,b’が似ていると判定することになり、意味をなさない。よって、0以上d0以下のすべての整数dについて、あらかじめeь1,ь1dを算出しておくことは容易である。そうすれば、類似度dがd0以下である場合、離散対数算出部373は類似度dを算出できる。類似度dがd0より大きい場合、離散対数算出部373は類似度dを算出できないが、類似度dがd0より大きいことだけは判定できる。図25は、この実施の形態における平文類似度算出工程S719の処理の流れの一例を示すフローチャート図である。平文類似度算出工程S719では、認証装置102が、第二レスポンスZから、類似度dを算出する。平文類似度算出工程S719は、例えば、群変換工程S691と、元結合工程S692と、離散対数算出工程S693とを有する。最初に、群変換工程S691において、群変換部371は、処理装置911を用いて、乱数記憶部322が記憶した一時鍵としての乱数u1に基づいて、復号鍵Ц=eь1,ь1u1を算出する。元結合工程S692において、元結合部372は、処理装置911を用いて、第二レスポンス受信部341が受信した第二レスポンスZと、群変換工程S691で群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’=ZЦを算出する。離散対数算出工程S693において、離散対数算出部373は、処理装置911を用いて、元結合部372で元結合部372が算出した復号類似度元Z’に基づいて、類似度dを算出する。平文類似度抽出部315が算出した類似度dに基づいて、判定部306が、2つの特徴ベクトルb,b’が似ているか否かを判定することにより、特徴ベクトルbで表わされる生体情報を持つ人物と、特徴ベクトルb’で表わされる生体情報を持つ人物とが同一人物であるか否かを判定する。上述したように、判定部306は、類似度dが閾値d0より小さい場合に、2つの特徴ベクトルb,b’が似ていると判定する。以上説明したように、生体認証システム100は、2つの特徴ベクトルb,b’の類似度として、2つの特徴ベクトルb,b’の間のユークリッド距離の2乗を算出する。類似度算出の計算手順を、いくつかの段階に分け、認証装置102と復号装置103とが、各段階の計算をすることにより、認証装置102が、特徴ベクトルb,b’についての情報を得ることを防ぎ、復号装置103が、特徴ベクトルb,b’や類似度dについての情報を得ることを防いでいる。図26は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。この図は、認証処理S700から、類似度算出手順に関わる部分を抜き出したものである。なお、δi及びδは、第二チャレンジC^において暗号化されている情報を示し、ζは、第二レスポンスZによって表わされる情報を示す。第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジC^を算出することにより、T個のδi=bi-b’it1,iiは、1以上T以下の整数。と、1個のδ=Σi[2t1,ibi-b’it1,i2]u1iは、1以上T以下の整数。とを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζ=Σi[δi2]-δiは、1以上T以下の整数。を算出する。この計算は、復号装置103の秘密鍵skによって復号された状態で行われるが、復号装置103は、一時鍵u1を知らないので、特徴ベクトルb,b’や類似度dについての情報を得ることができない。すなわち、この計算は、一時鍵u1で暗号化された状態で行われる。第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζu1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。この実施の形態における生体認証システム100データ照合装置は、加法的準同型方式の鍵生成アルゴリズムに基づいて鍵生成部401が公開鍵と秘密鍵とを生成する。データ抽出装置認証装置102は、前記鍵生成部から配布された前記公開鍵を保有する公開鍵記憶部302と、前記鍵生成部から配布された前記公開鍵を保有するデータ処理装置登録装置104が保有する前記公開鍵を用いて暗号化した第一データ特徴ベクトルbを暗号化第一データ暗号化特徴ベクトルCとして記憶する暗号化データ記憶部312と、前記公開鍵の少なくとも一部を用いて第一乱数と第二乱数を生成する乱数生成部303と、前記第一乱数と前記第二乱数を記憶する乱数記憶部322と、前記第一乱数を暗号化して第一チャレンジを生成する暗号化乱数生成部304と、データ処理装置証明装置101が第二データ特徴ベクトルb’を前記第一チャレンジと演算して生成した第一レスポンスから前記乱数記憶部に記憶されている前記第一乱数を用いて処理し第二データの暗号化である暗号化第二データ暗号化特徴ベクトルC’を算出する暗号化データ抽出部305と、前記暗号化第二データと前記第二乱数を用いて第二チャレンジを生成する暗号化ランダム類似度算出部314と、前記復号装置もしくは前記データ処理装置が前記秘密鍵記憶部413に記憶されている前記秘密鍵を用いて前記第二チャレンジを処理した第二レスポンスを前記乱数記憶部に記憶されている前記第二乱数を用いて処理し平文の類似度を算出する平文類似度抽出部315とを有する。データ処理装置証明装置101は、前記第二データを前記第一チャレンジと演算して前記第一レスポンスを生成する暗号化データ埋め込み部217を有する。復号装置103もしくはデータ処理装置は、前記加法的準同型方式の鍵生成アルゴリズムに基づいて前記公開鍵と前記秘密鍵を生成する前記鍵生成部401と、前記秘密鍵を記憶する前記秘密鍵記憶部413と、前記第二チャレンジを前記秘密鍵記憶部に記憶されている前記秘密鍵を用いて処理し前記第二レスポンスを生成する復号部404とを有する。これにより、攻撃者は、証明装置101と、認証装置102と、復号装置103と、登録装置104との間のネットワーク上でやり取りされている情報例えば、第一チャレンジRと第一レスポンスR’との組や、第二チャレンジC^と第二レスポンスZとの組を持っていたとしても、正規のユーザとしてなりすますことは難しい。つまり、装置間でやり取りされている情報から、なりすましに致命的な情報は一切漏れていない。この第一の理由としては、認証装置102によって生成された第一チャレンジR及び第二チャレンジC^や第一レスポンスR’及び第二レスポンスZで用いる平文としての乱数R1,i,u1は、認証が行われる度に毎回値が変わることから、これらのデータをそのまま再利用したリプレイ攻撃ができない。第二の理由として、この実施の形態で説明した岡本-高島暗号方式や、BGN暗号、Paillier暗号などは、暗号文の識別不可能性という安全性を有している。このため、たとえ攻撃者が準同型性を利用したとしても、第一チャレンジR及び第二チャレンジC^とそれに対応する第一レスポンスR’及び第二レスポンスZとから、平文の特徴ベクトルb,b’や平文としての乱数R1,i,u1、また秘密鍵skが漏洩することはない。第三の理由として、認証装置102と証明装置101とは、それぞれ相手の装置が知らない情報を用いて第一チャレンジRと第一レスポンスR’とを生成している。つまり、認証装置102は第一チャレンジRで用いた乱数R1,iを所持しており、また証明装置101はユーザの平文の特徴ベクトルb’を所持している。これらの秘密情報を知ることなしに、攻撃者は、第一チャレンジRや第一レスポンスR’から平文の特徴ベクトルb’や乱数R1,iについての情報を得ることができない。さらに、認証装置102は、乱数R1,iを知っていても平文の特徴ベクトルbを得ることができず、また証明装置101は、特徴ベクトルbを知っていても乱数R1,iの情報を得ることはできない。また、第二チャレンジC^と第二レスポンスZとの関係も同様であり、認証装置102と復号装置103とは、それぞれ相手の装置が知らない情報を用いて第二チャレンジC^と第二レスポンスZとを生成している。つまり、認証装置102は第二チャレンジC^で用いた乱数u1を所持しており、また復号装置103は秘密鍵skを所持している。これらの秘密情報を知ることなしに、攻撃者は、第二チャレンジC^や第二レスポンスZから乱数u1や秘密鍵skについての情報を得ることができない。さらに、認証装置102は、乱数u1を知っていても秘密鍵skを得ることができず、また復号装置103は、秘密鍵skを知っていても乱数u1の情報を得ることはできない。この実施の形態の生体情報の登録処理S600において、ユーザ登録装置104は、認証装置102に暗号化特徴ベクトルCそのものを送信し、認証装置102はその送られてきた暗号化特徴ベクトルCを保存するだけである。特徴ベクトルbのやり取りの必要がないので、信頼された登録処理装置が必要ない。この実施の形態における乱数は、乱数空間から一様に生成されている。このため、乱数同士に相関がなく、乱数同士の相関から何らかの情報が漏れる可能性がない。認証装置102には特徴ベクトルbがそのまま保管されるのではなく、暗号化された状態で保管される。このため、ユーザのプライバシー情報である特徴ベクトルbが、認証装置102の管理者に盗み見られるというリスクを低減させることができる。認証装置102にとっては、暗号化特徴ベクトルCが仮に漏洩したとしても元の特徴ベクトルb自体が漏洩することはないため、特徴ベクトルbそのものを保管するのに比べてデータ管理の手間を削減できる。また、この実施の形態の手順にしたがえば、復号装置103が復号できるのはランダム類似度という指標値だけであり、特徴ベクトルb,b’を復号することはできない。よって、認証の過程において特徴ベクトルb,b’が現れることはないから、生体情報を秘匿したままでの生体認証が可能である。また、この実施の形態によれば、認証時に証明装置101から認証装置102へ第一レスポンスR’を送付するために生体情報を抽出するが、第一レスポンスR’の生成が終わると、その後は平文の生体情報を用いた処理がない。このため、証明装置101上で取得した生体情報をただちに消去できる。したがって、証明装置101において生体情報が窃取される機会を低減できる。なお、暗号方式は、岡本-高島暗号方式に限らず、BGN暗号方式、Gentry暗号方式、Paillier暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。証明装置101が認証装置102へ送信する第一レスポンスR’は、暗号化特徴ベクトルC’を暗号化したものであり、証明装置101が第一レスポンスR’を復号することにより、暗号化特徴ベクトルC’を取得する。生体認証システム100は、この暗号化復号に用いる暗号方式に、異なる暗号方式を使用する構成であってもよい。その場合の暗号方式は、加法的準同型性を有する暗号方式ではなく、普通の公開鍵暗号方式を使用する構成であってもよい。例えば、認証装置102が、第二の暗号方式における公開鍵と秘密鍵との組を生成して、公開鍵を第一チャレンジRとして、証明装置101に対して送信する。証明装置101は、復号装置103の公開鍵を使って、加法的準同型性を有する第一の暗号方式により、特徴ベクトルb’を暗号化し、暗号化特徴ベクトルC’を生成する。次に、証明装置101は、第一チャレンジRとして認証装置102から受信した公開鍵を使って、第二の暗号方式により、生成した暗号化特徴ベクトルC’を暗号化して、第一レスポンスR’とし、認証装置102に対して送信する。認証装置102は、自身で生成した秘密鍵を使って、第二の暗号方式により、受信した第一レスポンスR’を復号して、暗号化特徴ベクトルC’を得る。ただし、第一チャレンジRが第二の暗号方式における公開鍵であり、その公開鍵を使って暗号化特徴ベクトルC’を暗号化したものを第一レスポンスR’とする場合、第一チャレンジRと暗号化特徴ベクトルC’とから第一レスポンスR’を生成できる。これに対し、この実施の形態で説明した方式では、第一チャレンジRと生の特徴ベクトルb’とから第一レスポンスR’を生成し、第一チャレンジRと暗号化特徴ベクトルC’とからでは第一レスポンスR’を生成できない。このため、登録処理S600で登録装置104から認証装置102へ送信された暗号化特徴ベクトルCを第三者が盗聴するなどして、暗号化特徴ベクトルCを手に入れたとしても、証明装置101になりすまして認証を受けることはできない。実施の形態2.実施の形態2について、図27を用いて説明する。なお、実施の形態1と共通する部分については、同一の符号を付し、説明を省略する。図27は、この実施の形態における生体認証システム100の全体構成の一例を示すシステム構成図である。生体認証システム100は、証明装置101と、認証装置102とを有する。証明装置101は、実施の形態1で説明した証明装置101としての機能と、復号装置103としての機能と、登録装置104としての機能とを兼ね備えている。証明装置101は、公開鍵pkと秘密鍵skとの組を生成し、公開鍵pkを公開し、秘密鍵skを秘密裡に保持する。認証装置102は、証明装置101が公開した公開鍵pkを使って暗号処理をする。生体認証システム100は、証明装置101を複数有する場合がある。例えば、生体認証システム100が認証すべき各ユーザが、それぞれ自分の証明装置101を持っている。ユーザは、自分の証明装置101をネットワークなどに接続し、証明装置101は、ネットワークなどを介して認証装置102との間で通信を行う。認証装置102は、それぞれの証明装置101の公開鍵pkを記憶している。認証装置102は、認証を求めてきた証明装置101やユーザのIDなどに基づいて、記憶した公開鍵pkのなかから、その証明装置101の公開鍵pkを選択し、選択した公開鍵pkを使って暗号処理をする。それぞれの証明装置101の公開鍵pkは、例えば、登録処理S600において、暗号化特徴ベクトルCとともに、証明装置101が認証装置102に対して送信し、認証装置102が、受信した公開鍵pkを、暗号化特徴ベクトルCと対応づけて記憶する。認証処理S700において、認証装置102は、証明装置101の公開鍵pkに基づいて、第一チャレンジRを生成し、証明装置101に対して送信する。証明装置101は、自身の公開鍵pkと、受信した第一チャレンジRと、特徴ベクトルb’とに基づいて、第一レスポンスR’を生成し、認証装置102に対して送信する。認証装置102は、証明装置101の公開鍵pkと、受信した第一レスポンスR’とに基づいて、暗号化特徴ベクトルC’を生成する。認証装置102は、証明装置101の公開鍵pkと、生成した暗号化特徴ベクトルC’と、登録処理S600で記憶した暗号化特徴ベクトルCとに基づいて、第二チャレンジC^を生成し、証明装置101に対して送信する。証明装置101は、自身の秘密鍵skと、受信した第二チャレンジC^とに基づいて、第二レスポンスZを生成し、認証装置102に対して送信する。認証装置102は、受信した第二レスポンスに基づいて、類似度dを算出する。第三者が証明装置101になりすました場合、第三者は、特徴ベクトルbと特徴ベクトルb’とが似ていることを意味する第二レスポンスZを生成しようとする。しかし、第三者は、証明装置101が生成した一時鍵u1を知らないので、どのような第二レスポンスZが、特徴ベクトルbと特徴ベクトルb’とが似ているという意味になるのかわからない。仮に、第三者が、証明装置101の秘密鍵を窃取して第二チャレンジC^を復号したとしても、一時鍵u1を知ることはできないので、特徴ベクトルbと特徴ベクトルb’とが似ていることを意味する第二レスポンスZを生成することはできない。実施の形態3.実施の形態3について、図28~図30を用いて説明する。なお、実施の形態1~実施の形態2と共通する部分については、同一の符号を付し、説明を省略する。この実施の形態では、2つの特徴ベクトルb,b’の間の類似度dとして、ユークリッド距離の二乗Σi[bi-b’i2]ではなく、内積Σi[bib’i]を算出する場合について説明する。なお、特徴ベクトルの各成分は、1か0かの2つの値のいずれかであるものとする。この実施の形態における生体認証システム100の全体構成、証明装置101、認証装置102、復号装置103、登録装置104などの内部構成は、実施の形態1で説明したものと同様なので、異なる点のみ説明する。認証装置102において、暗号化ランダム類似度算出部314のベクトル累計部367は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’と、スカラー倍算出部364が算出したスカラー倍ベクトルと、暗号化鍵生成部366が算出した暗号化鍵цとに基づいて、ベクトルc^を算出する。ベクトルc^は、ベクトル空間Vにおける加法により、暗号化特徴ベクトルCのT個の成分ciと、暗号化特徴ベクトルC’のT個の成分c’iと、スカラー倍算出部364が算出したスカラー倍ベクトルのT個の成分2t1,iΔciと、暗号化鍵ц=Σi[t1,i2]ь1Σj[ujьj]iは、1以上T以下の整数。jは、1以上n以下の整数。とを結合したベクトルΣi[ci]Σi[c’i]Σi[2t1,iΔci]Σi[t1,i2]ь1Σj[ujьj]iは、1以上T以下の整数。jは、1以上n以下の整数。である。暗号の加法的準同型性より、ベクトルc^は、Σi[bib’i2t1,ibi-b’i2t1,i2]u1を暗号化したものである。図28は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。第二チャレンジ生成工程S712の処理の流れは、実施の形態1とほとんど同じであるが、ベクトル累計工程S747だけが異なっている。ベクトル累計工程S747において、ベクトル累計部367が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’iと、スカラー倍算出工程S746でスカラー倍算出部364が算出したスカラー倍ベクトル¢のi番目の成分¢i=2t1,iΔciとに基づいて、ベクトル空間Vにおける加法により、ベクトルciと、ベクトルc’iと、ベクトル¢iとを、ベクトルc^に結合する。復号装置103の復号部404は、実施の形態1と同じ構成であるが、ベクトルc^の意味が異なるため、復号部404が生成する第二レスポンスZの意味も、実施の形態1とは異なる。すなわち、第二レスポンスZは、有限群GTにおける累乗により、有限群GTの元eь1,ь1をΣi[bi-b’i2-bib’i]-u1iは、1以上T以下の整数。で累乗した元になる。ここで、bi及びb’iが0か1かのいずれかの値しか取らないので、常に、bi=bi2かつb’i=b’i2である。したがって、第二レスポンスZは、有限群GTにおける累乗により、有限群GTの元eь1,ь1を-2Σi[bib’i]-u1iは、1以上T以下の整数。で累乗した元になる。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との内積Σi[bib’i]を、一時鍵としての乱数u1で暗号化したものになる。認証装置102において、平文類似度抽出部315の元結合部372は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である位数qに基づいて、有限体Fqにおける乗法による-2の逆元ш=-2-1を算出する。認証装置102は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である有限群GTと、第二レスポンス受信部341が受信した第二レスポンスZと、群変換部371が算出した復号鍵Ц=eь1,ь1u1と、算出した逆元шとに基づいて、復号類似度元Z’を算出する。復号類似度元Z’は、有限群GTにおける乗法により第二レスポンスZと、復号鍵Цとを結合した元ZЦを、有限群GTにおける累乗により、逆元шで累乗した元ZЦшである。第二レスポンスZは、有限群GTにおける累乗により、有限群GTの元eь1,ь1を-2Σi[bib’i]-u1iは、1以上T以下の整数。で累乗した元であるから、復号類似度元Z’は、有限群GTにおける累乗により、有限群GTの元eь1,ь1をΣi[bib’i]iは、1以上T以下の整数。で累乗した元になる。図29は、この実施の形態における平文類似度算出工程S719の処理の流れの一例を示すフローチャート図である。平文類似度算出工程S719は、実施の形態1で説明した工程に加えて、逆数算出工程S690を有する。逆数算出工程S690において、元結合部372は、処理装置911を用いて、有限体Fqにおける乗法による-2の逆元шを算出する。なお、逆元шは、第二レスポンスZに関わらず一定なので、あらかじめ算出しておく構成であってもよい。元結合工程S692において、元結合部372は、処理装置911を用いて、第二レスポンス受信部341が受信した第二レスポンスZと、逆数算出工程S690で算出した逆元шと、群変換工程S691で群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’=ZЦшを算出する。なお、元結合部372が、復号類似度元Z’として、有限群GTにおける乗法により第二レスポンスZと復号鍵Цとを結合した元ZЦを算出し、離散対数算出部373が、類似度dとしt、復号類似度元Z’がeь1,ь1-2の何乗であるかを算出する構成であってもよい。2つの特徴ベクトルb,b’の内積Σi[bib’i]は、ユークリッド距離の二乗Σi[bi-b’i2]とは逆に、大きいほど、2つの特徴ベクトルb,b’が似ていることを表わす。このため、判定部306は、離散対数算出部373が算出した類似度dが、所定の閾値d0より大きい場合に、2つの特徴ベクトルb,b’が似ていると判定する。特徴ベクトルの各成分が0か1かの2つの値のいずれかしか取らないので、2つの特徴ベクトルb,b’の内積Σi[bib’i]は、0以上T以下の整数となる。離散対数算出部373は、例えば、d0以上T以下のすべての整数dについて、あらかじめeь1,ь1を整数dで累乗した元eь1,ь1dを算出しておくことにより、類似度dがd0以上かつT以下の場合に、類似度dを算出し、類似度dがd0未満である場合に、類似度dがd0より小さいことを判定する。なお、離散対数算出部373は、実施の形態1と同様、類似度dがd0以下の場合に類似度dを算出し、類似度dがd0より大きい場合に、類似度dがd0より大きいことを判定する構成であってもよい。これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。図30は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジC^を算出することにより、T個のδi=bi-b’it1,iiは、1以上T以下の整数。と、1個のδ=Σi[2t1,ibi-b’it1,i2bib’i]u1iは、1以上T以下の整数。とを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζ=Σi[δi2]-δiは、1以上T以下の整数。を算出する。この計算は、復号装置103の秘密鍵によって復号された状態で行われるが、復号装置103は、一時鍵u1を知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵u1で暗号化された状態で行われる。第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζu1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。なお、暗号方式は、岡本-高島暗号方式に限らず、BGN暗号方式、Gentry暗号方式、Paillier暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。なお、実施の形態1と比較すると、証明装置101、復号装置103、登録装置104の構成は、変わらず、認証装置102の構成だけが異なる。したがって、認証装置102を、実施の形態1で説明した構成と、この実施の形態で説明した構成とを切り替えることができる構成とすることにより、生体認証システム100の他の装置に変更を加えることなく、ユークリッド距離と内積との2種類の類似度を算出することができる。実施の形態4.実施の形態4について、図31~図45を用いて説明する。なお、実施の形態1~実施の形態3と共通する部分については、同一の符号を付し、説明を省略する。この実施の形態では、暗号方式として、BGN暗号方式を使う場合について説明する。なお、類似度dは、実施の形態1と同様、ユークリッド距離の二乗を使う。まず、BGN暗号方式の概要について説明する。Nは、互いに異なる2つの素数p,qの積である。G及びGTは、位数Nの有限群である。なお、有限群G及び有限群GTにおける群演算は、乗法として記述する。eは、有限群Gの2つの元の組を有限群GTの元に対応づけるペアリングG×G→GTである。ペアリングeは、双線形性と非退化性とを満たす。g及びuは、有限群Gの生成元のなかから一様ランダムに選択した元である。hは、有限群Gの元であり、有限群Gにおける累乗により、元uを素数qで累乗した元uqである。有限群G及び有限群GTは、位数pの巡回群と、位数qの巡回群との直積である。したがって、元hの位数は、pである。x及びrは、0以上N未満の整数である。有限群Gにおける累乗により元gを整数xで累乗した元gxと、有限群Gにおける累乗により元hを整数rで累乗した元hrとの積gxhrが与えられたとき、有限群Gにおける累乗により積gxhrを素数pで累乗した元[gxhr]pは、元hの位数がpなので、[gx]pと等しい。例えば、有限群Gと、有限群GTと、位数Nと、ペアリングeと、元gと、元hとの組を公開鍵pkとし、素数pを秘密鍵skとする。素数qよりも十分に小さい整数Lについて、0以上L以下の整数xを平文とし、有限群Gの元gxhrを、平文xを暗号化した暗号文Exとする。ただし、rは、0以上N未満の整数のなかから一様ランダムに選択した整数である。復号には、秘密鍵skである素数pを使う。有限群Gにおける累乗により、暗号文Exを素数pで累乗した元Exp=[gx]p=[gp]xを算出する。これが、gpの何乗であるかがわかれば、xが復号できる。Lが小さい場合、例えば、Pollardのラムダ法を用いることにより、この離散対数問題を解くことができる。その場合に必要な計算量は、√Lに比例する。したがって、現実的な計算量で計算できるよう、Lの値を設定すれば、xを復号することができる。整数x1の暗号文Ex1=gx1hr1と、整数x2の暗号文Ex2=gx2hr2とを、有限群Gにおける乗法により結合すると、Ex1Ex2=gx1x2hr1r2となるから、整数x1と整数x2との和x1x2の暗号文Ex1x2になる。また、暗号文Exは、暗号化されたままの状態で、ペアリングeを使って有限群GTへ写したのちに、復号することもできる。例えば、整数x1の暗号文Ex1=gx1hr1と、整数x2の暗号文Ex2=gx2hr2とのペアリングegx1hr1,gx2hr2は、ペアリングの双線形性より、eg,gx1x2eg,hx1r2eh,gx2r1eh,hr1r2である。有限群Gの元hの位数がpなので、有限群GTの元であるペアリングeg,h,eh,g,eh,hの位数はいずれもpである。したがって、有限群GTにおける累乗により、暗号文Ex1と暗号文Ex2とのペアリングeEx1,Ex2を素数pで累乗すると、[eg,gp]x1x2になる。すなわち、暗号文Ex1と暗号文Ex2とのペアリングeEx1,Ex2は、整数x1と整数x2との積x1x2の暗号文になっている。図31は、この実施の形態における鍵生成部401の構成の一例を示す詳細ブロック図である。復号装置103の鍵生成部401は、例えば、群決定部431と、生成元選択部432と、生成元累乗部433とを有する。群決定部431は、処理装置911を用いて、セキュリティレベルに応じて定まる大きさ例えば512ビットや1024ビットなどに基づいて、互いに異なる2つの素数p,qを生成する。群決定部431は、処理装置911を用いて、生成した2つの素数p,qの積N=pqを計算する。群決定部431は、処理装置911を用いて、計算した積Nに基づいて、有限群Gと有限群GTとを決定する。有限群Gと有限群GTとは、ともに位数がNであり、ペアリングe:G×G→GTを持つ。生成元選択部432は、処理装置911を用いて、群決定部431が決定した有限群Gに基づいて、有限群Gの2つの生成元g,uを選択する。生成元累乗部433は、処理装置911を用いて、群決定部431が生成した素数qと、生成元選択部432が選択した生成元uとに基づいて、元hを算出する。元hは、有限群Gにおける累乗により、生成元uを素数qで累乗した元uqである。底算出部434は、処理装置911を用いて、群決定部431が生成した素数pと、ペアリングeと、生成元選択部432が選択した生成元gとに基づいて、元πを算出する。元πは、有限群GTの元である。元πは、ペアリングeにより生成元g同士の組を変換した元eg,gを、有限群GTにおける累乗により、素数pで累乗した元eg,gpである。公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkとして、有限群Gと、有限群GTと、積Nと、ペアリングeと、生成元gと、元hと、元πの組G,GT,N,e,g,h,πを記憶する。秘密鍵記憶部413は、記憶装置914を用いて、秘密鍵skとして、群決定部431が生成した素数pを記憶する。図32は、この実施の形態における鍵生成工程S501の処理の流れの一例を示すフローチャート図である。鍵生成工程S501では、復号装置103が、公開鍵pkと秘密鍵skとの組を生成する。なお、ユーザごとに異なる公開鍵pkと秘密鍵skとの組を生成する構成であってもよいし、システム全体として1つの公開鍵pkと秘密鍵skとの組を生成する構成であってもよい。鍵生成工程S501は、例えば、群決定工程S521と、生成元選択工程S522と、生成元累乗工程S523と、底算出工程S524とを有する。最初に、群決定工程S521において、群決定部431が、処理装置911を用いて、2つの素数p,qと、積Nと、位数Nの有限群G及びGTとを決定する。公開鍵記憶部403が、記憶装置914を用いて、公開鍵pkの一部として、積Nと、有限群Gと、有限群GTとを記憶する。秘密鍵記憶部413が、記憶装置914を用いて、秘密鍵skとして、素数pを記憶する。生成元選択工程S522において、生成元選択部432が、処理装置911を用いて、群決定工程S521で群決定部431が決定した有限群Gに基づいて、有限群Gの2つの生成元g,uを選択する。公開鍵記憶部403が、記憶装置914を用いて、公開鍵pkの一部として、生成元gを記憶する。生成元累乗工程S523において、生成元累乗部433が、処理装置911を用いて、群決定工程S521で群決定部431が決定した素数qと、生成元選択工程S522で生成元選択部432が選択した生成元uとに基づいて、有限群Gの元h=uqを算出する。公開鍵記憶部403が、処理装置911を用いて、公開鍵pkの一部として、元hを記憶する。底算出工程S524において、底算出部434が、処理装置911を用いて、群決定工程S521で群決定部431が決定した素数p及びペアリングeと、生成元選択工程S522で生成元選択部432が選択した生成元gとに基づいて、有限群GTの元π=eg,gpを算出する。公開鍵記憶部403が、処理装置911を用いて、公開鍵pkの一部として、元πを記憶する。このようにして公開鍵記憶部403が記憶した公開鍵pk=G,GT,N,e,g,h,πは、公開鍵送信部408が認証装置102などに対して送信し、認証装置102などが受信して格納する。図33は、この実施の形態における特徴ベクトル暗号化工程S603の処理の流れの一例を示すフローチャート図である。特徴ベクトル暗号化工程S603では、登録装置104が、特徴ベクトルbを暗号化して暗号化特徴ベクトルCを生成する。特徴ベクトル暗号化工程S603は、例えば、初期化工程S610と、繰り返し工程S611と、乱数生成工程S612と、元算出工程S613aとを有する。登録装置104の特徴ベクトル形成部204が生成する特徴ベクトルbは、例えば、整数を成分とするT次元のベクトルb1,b2,...,bTTは、1以上の整数。である。暗号化データ生成部206が生成する暗号化特徴ベクトルCは、有限群Gの元を成分とするT次元のベクトルc1,c2,...,cTである。最初に、初期化工程S610において、暗号化データ生成部206が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S611において、暗号化データ生成部206が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化データ生成部206は、特徴ベクトル暗号化工程S603を終了する。整数iがT以下である場合、暗号化データ生成部206は、乱数生成工程S612へ処理を進め、暗号化特徴ベクトルCのi番目の成分ciを生成する。乱数生成工程S612において、乱数生成部205が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部である位数Nに基づいて、乱数riを生成する。乱数生成部205が生成する乱数riは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。元算出工程S613aにおいて、暗号化データ生成部206が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部である生成元gと元hと、特徴ベクトル形成部204が生成した特徴ベクトルbのi番目の成分biと、乱数生成工程S612で特徴ベクトル形成部204が生成した乱数riとに基づいて、暗号化特徴ベクトルCのi番目の成分ciを算出する。暗号化データ生成部206が算出する暗号化特徴ベクトルCのi番目の成分ciは、有限群Gにおける累乗により生成元gを整数biで累乗した元gbiと、有限群Gにおける累乗により元hを乱数riで累乗した元hriとを、有限群Gにおける乗法により結合した元gbihriである。暗号化データ生成部206は、繰り返し工程S611に処理を戻し、暗号化特徴ベクトルCの次の成分を生成する。このようにして暗号化データ生成部206が生成した暗号化特徴ベクトルCは、暗号化データ送信部201が認証装置102に対して送信し、認証装置102が受信して格納する。図34は、この実施の形態における第一チャレンジ生成工程S701の処理の流れの一例を示すフローチャート図である。第一チャレンジ生成工程S701では、認証装置102が、第一チャレンジRを生成する。第一チャレンジ生成工程S701は、例えば、初期化工程S729と、繰り返し工程S721と、乱数生成工程S722と、元算出工程S723aとを有する。認証装置102の暗号化乱数生成部304が生成する第一チャレンジRは、有限群Gの元を成分とするT次元のベクトルR1,R2,...,RTである。最初に、初期化工程S729において、暗号化乱数生成部304が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S721において、暗号化乱数生成部304が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化乱数生成部304は、第一チャレンジ生成工程S701を終了する。整数iがT以下である場合、暗号化乱数生成部304は、乱数生成工程S722へ処理を進め、第一チャレンジRのi番目の成分Riを生成する。乱数生成工程S722において、乱数生成部303が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である位数Nに基づいて、2個の乱数R1,i,R2,iを生成する。乱数生成部303が生成する乱数R1,i,R2,iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322が、記憶装置914を用いて、乱数生成部303が生成した乱数R1,iを記憶する。元算出工程S723aにおいて、暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である生成元g及び元hと、乱数生成工程S722で乱数生成部303が生成した2個の乱数R1,i,R2,iとに基づいて、第一チャレンジRのi番目の成分Riを算出する。暗号化乱数生成部304が算出する第一チャレンジRのi番目の成分Riは、有限群Gにおける累乗により生成元gを乱数R1,iで累乗した元と、有限群Gにおける累乗により元hを乱数R2,iで累乗した元とを、有限群Gにおける乗法により結合した元である。暗号化乱数生成部304は、繰り返し工程S721に処理を戻し、第一チャレンジRの次の成分を生成する。このようにして暗号化乱数生成部304が生成した第一チャレンジRは、第一チャレンジ送信部311が証明装置101に対して送信し、証明装置101が受信して処理をする。第一チャレンジ生成工程S701において乱数生成部303が生成する乱数R1,i,R2,iiは、1以上T以下の整数。は、全部で2T個である。このうち、T個の乱数R1,iiは、1以上T以下の整数。を、乱数記憶部322が記憶する。乱数記憶部322が記憶するT個の乱数R1,iは、平文としての乱数であり、残りのT個の乱数R2,iiは、1以上T以下の整数。は、暗号化のための乱数である。第一チャレンジRの各成分Riは、平文としての乱数R1,iを暗号化したものである。図35は、この実施の形態における暗号化データ埋め込み部217の構成の一例を示す詳細ブロック図である。証明装置101の暗号化データ埋め込み部217は、例えば、累乗算出部234と、零生成部232と、元結合部235とを有する。証明装置101の特徴ベクトル形成部214が生成する特徴ベクトルb’は、登録装置104の特徴ベクトル形成部204が生成する特徴ベクトルbと同様、整数を成分とするT次元のベクトルb’1,b’2,...,b’Tである。乱数生成部215は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵pkの一部である位数Nに基づいて、T個の乱数r’iiは、1以上T以下の整数。を生成する。乱数生成部215が生成する乱数r’iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。累乗算出部234は、処理装置911を用いて、第一チャレンジ受信部211が受信した第一チャレンジRと、特徴ベクトル形成部214が生成した特徴ベクトルb’とに基づいて、累乗ベクトルЯを算出する。累乗算出部234が算出する累乗ベクトルЯは、第一チャレンジRと同様に、有限群Gの元を成分とするT次元のベクトルя1,я2,...,яTである。累乗算出部234が算出する累乗ベクトルЯのi番目の成分яiiは、1以上T以下の整数。は、有限群Gにおける累乗により、第一チャレンジRのi番目の成分Riを、特徴ベクトルb’のi番目の成分b’iで累乗した元Rib’iである。累乗算出部234が算出する累乗ベクトルЯの各成分яiは、特徴ベクトルb’の成分b’iと、認証装置102が生成した平文としての乱数R1,iとの積を暗号化したものになる。零生成部232は、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部である元hと、乱数生成部215が生成したT個の乱数r’iとに基づいて、暗号化零ベクトルOを生成する。暗号化零ベクトルOは、有限群Gの元を成分とするT次元のベクトルo1,o2,...,oTである。暗号化零ベクトルOのi番目の成分oiiは、1以上T以下の整数。は、有限群Gにおける累乗により元hをi番目の乱数r’iで累乗した元hr’iである。暗号化零ベクトルOの各成分oiは、0を暗号化したものである。元結合部235は、処理装置911を用いて、累乗算出部234が算出した累乗ベクトルЯと、零生成部232が生成した暗号化零ベクトルOとに基づいて、第一レスポンスR’を算出する。第一レスポンスR’は、有限群Gの元を成分とするT次元のベクトルR’1,R’2,...,R’Tである。第一レスポンスR’のi番目の成分R’iiは、1以上T以下の整数。は、有限群Gにおける乗法により、累乗ベクトルのi番目の成分яi=Rib’iと、暗号化零ベクトルOのi番目の成分oi=hr’iとを結合した元Rib’ihr’iである。第一レスポンスR’の各成分R’iは、第一チャレンジRの成分Riにおいて暗号化されている平文としての乱数R1,iと、特徴ベクトルb’の成分b’iとの積を暗号化したものになる。図36は、この実施の形態における第一レスポンス生成工程S707の処理の流れの一例を示すフローチャート図である。第一レスポンス生成工程S707では、証明装置101が、特徴ベクトルb’と、第一チャレンジRとに基づいて、第一レスポンスR’を生成する。第一レスポンス生成工程S707は、例えば、初期化工程S660と、繰り返し工程S661と、累乗算出工程S662aと、乱数生成工程S663と、零生成工程S664と、元結合工程S665aとを有する。最初に、初期化工程S660において、元結合部235が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S661において、元結合部235が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、元結合部235は、第一レスポンス生成工程S707を終了する。整数iがT以下である場合、元結合部235は、累乗算出工程S662aへ処理を進め、第一レスポンスR’のi番目の成分R’iを生成する。累乗算出工程S662aにおいて、累乗算出部234が、処理装置911を用いて、特徴ベクトル形成部214が生成した特徴ベクトルb’のi番目の成分b’iと、第一チャレンジ受信部211が受信した第一チャレンジRのi番目のベクトルRiとに基づいて、累乗ベクトルЯのi番目の成分яi=Rib’iを算出する。乱数生成工程S663において、乱数生成部215が、処理装置911を用いて、乱数r’iを生成する。零生成工程S664において、零生成部232が、処理装置911を用いて、乱数生成工程S663で乱数生成部215が生成した乱数r’iに基づいて、暗号化零ベクトルOのi番目の成分oi=hr’iを算出する。元結合工程S665aにおいて、元結合部235が、処理装置911を用いて、累乗算出工程S662aで累乗算出部234が算出した累乗ベクトルЯのi番目の成分яiと、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oiとに基づいて、第一レスポンスR’のi番目の成分R’i=яioiを算出する。元結合部235は、繰り返し工程S661に処理を戻し、第一レスポンスR’の次の成分を生成する。このようにして暗号化データ埋め込み部217が生成した第一レスポンスR’は、第一レスポンス送信部221が認証装置102に対して送信し、認証装置102が受信して処理する。なお、特徴ベクトルb’の成分b’iが0か1かの2つの値しか取らない場合、第一レスポンス生成工程S707の処理は、例えば次のように簡略化できる。まず、累乗の必要がないので、累乗算出部234を設けず、累乗算出工程S662aを実行しない。元結合工程S665aにおいて、元結合部235は、処理装置911を用いて、特徴ベクトルb’のi番目の成分b’iが0であるか1であるかを判定する。特徴ベクトルb’のi番目の成分b’iが0である場合、元結合部235は、処理装置911を用いて、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oi=hr’iを、第一レスポンスR’のi番目の成分R’iとする。特徴ベクトルb’のi番目の成分b’iが1である場合、元結合部235は、処理装置911を用いて、有限群Gにおける乗法により、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oi=hr’iと、第一チャレンジ受信部211が受信した第一チャレンジRのi番目の成分Riとを結合した元Rihr’iを算出して、第一レスポンスR’のi番目の成分R’iとする。第一チャレンジRのi番目の成分Riは、生成元gのR1,i乗と、元hのR2,i乗との積であるから、第一レスポンスR’のi番目の成分R’iは、生成元gのb’iR1,i乗と、元hのb’iR2,ir’i乗との積である。すなわち、第一レスポンスR’のi番目の成分R’iは、特徴ベクトルb’のi番目の成分b’iと、乱数R1,iとの積を暗号化したものになっている。図37は、この実施の形態における暗号化データ抽出部305の構成の一例を示す詳細ブロック図である。認証装置102の暗号化データ抽出部305は、例えば、逆数算出部351と、スカラー倍算出部352とを有する。認証装置102の暗号化データ抽出部305が生成する暗号化特徴ベクトルC’は、登録装置104の暗号化データ生成部206が生成する暗号化特徴ベクトルCと同様、有限群Gの元を成分とするT次元のベクトルc’1,c’2,...,c’Tである。逆数算出部351は、処理装置911を用いて、乱数記憶部322が記憶したT個の乱数R1,iiは、1以上T以下の整数。に基づいて、Nを法とする整数の乗法における乱数R1,iそれぞれの逆数κi=R1,i-1を算出する。逆数κiは、乱数R1,iと逆数κiとの積をNで割った余りが1になる整数である。なお、Nが素数ではないので、必ずしも乱数R1,iに逆数κiが存在するとは限らない。しかし、Nの素因数である2つの素数p,qが十分大きければ、乱数R1,iが零因子である確率は、非常に小さく、無視できる。累乗算出部353は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’と、逆数算出部351が算出したT個の逆数κiとに基づいて、暗号化特徴ベクトルC’を算出する。累乗算出部353が算出する暗号化特徴ベクトルC’のi番目の成分c’iiは、1以上T以下の整数。は、有限群Gにおける累乗により、第一レスポンスR’のi番目の成分R’iを、i番目の逆数κiで累乗した元である。暗号化特徴ベクトルC’の各成分c’iは、特徴ベクトルb’の成分b’iを暗号化したものになる。図38は、この実施の形態における暗号化生体情報抽出工程S710の処理の流れの一例を示すフローチャート図である。暗号化生体情報抽出工程S710では、認証装置102が、第一レスポンスR’に基づいて、暗号化特徴ベクトルC’を生成する。暗号化生体情報抽出工程S710は、例えば、初期化工程S730と、繰り返し工程S731と、逆数算出工程S732と、累乗算出工程S733aとを有する。最初に、初期化工程S730において、累乗算出部353が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S731において、累乗算出部353が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、累乗算出部353は、暗号化生体情報抽出工程S710を終了する。整数iがT以下である場合、累乗算出部353は、逆数算出工程S732へ処理を進め、暗号化特徴ベクトルC’のi番目の成分c’iを生成する。逆数算出工程S732において、逆数算出部351が、処理装置911を用いて、第一チャレンジ生成工程S701で乱数記憶部322が記憶したT個の乱数のうちi番目の乱数R1,iに基づいて、逆数κi=R1,i-1を算出する。累乗算出工程S733aにおいて、累乗算出部353は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’のi番目の成分R’iと、逆数算出工程S732で算出した逆数κiとに基づいて、暗号化特徴ベクトルC’のi番目の成分c’i=R’iκiを算出する。累乗算出部353は、繰り返し工程S731に処理を戻し、暗号化特徴ベクトルC’の次の成分を生成する。このようにして暗号化データ抽出部305が生成した暗号化特徴ベクトルC’は、第二チャレンジ生成工程S712で使われる。第一レスポンスR’のi番目の成分R’iは、生成元gのb’iR1,i乗と、元hのb’iR2,ir’i乗との積であるから、暗号化特徴ベクトルC’のi番目の成分c’iは、生成元gのR1,i-1b’iR1,i乗と、元hのR1,i-1b’iR2,ir’i乗との積である。R1,iR1,i-1≡1modNであるから、c’iは、生成元gのb’i乗と、元hのR1,i-1b’iR2,ir’i乗との積である。すなわち、暗号化特徴ベクトルC’のi番目の成分c’iは、特徴ベクトルb’のi番目の成分b’iを暗号化したものになる。図39は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。認証装置102の暗号化ランダム類似度算出部314は、例えば、差分算出部361と、二乗算出部368と、暗号化鍵生成部366と、元結合部370とを有する。乱数生成部303は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である位数Nに基づいて、2個の乱数s1,s2を生成する。乱数生成部303が生成する乱数s1,s2は、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、1個の乱数s1を記憶する。差分算出部361は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、暗号化差分ベクトルΔCを算出する。暗号化差分ベクトルΔCは、有限群Gの元を成分とするT次元のベクトルΔc1,Δc2,...,ΔcTである。暗号化差分ベクトルΔCのi番目の成分Δciiは、1以上T以下の整数。は、有限群Gにおける乗法により、暗号化特徴ベクトルCのi番目の成分ciと、暗号化特徴ベクトルC’のi番目の成分c’iの逆元c’i-1とを結合した元cic’i-1である。暗号化差分ベクトルΔCの各成分Δciは、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差bi-b’iを暗号化したものである。なお、暗号化差分ベクトルΔCのi番目の成分Δciは、有限群Gにおける乗法により、暗号化特徴ベクトルCのi番目の成分ciの逆元ci-1と、暗号化特徴ベクトルC’のi番目の成分c’iとを結合した元ci-1c’iであってもよい。また、暗号化差分ベクトルΔCの成分Δciは、元cic’i-1と、元ci-1c’iとのなかから、ランダムに選択したいずれかの元であってもよい。二乗算出部368は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、差分算出部361が算出した暗号化差分ベクトルΔCとに基づいて、暗号化二乗ベクトルΔC’を算出する。暗号化二乗ベクトルΔC’は、有限群GTの元を成分とするT次元のベクトルΔc’1,Δc’2,...,Δc’Tである。暗号化二乗ベクトルΔC’のi番目の成分Δc’iiは、1以上T以下の整数。は、ペアリングeにより、暗号化差分ベクトルΔCのi番目の成分Δci同士の組を変換したペアリングeΔci,Δciである。暗号化二乗ベクトルΔC’の各成分Δc’iは、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差の二乗bi-b’i2を暗号化したものである。暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及び生成元g及び元hと、乱数生成部303が生成した2つの乱数s1,s2とに基づいて、暗号化鍵цを算出する。暗号化鍵цは、有限群GTの元である。暗号化鍵цは、有限群Gにおける累乗により生成元gを乱数s1で累乗した元gs1と、有限群Gにおける累乗により元hを乱数s2で累乗した元hs2とを、有限群Gにおける乗法により結合した元gs1hs2と、生成元gとの組を、ペアリングeにより変換した元egs1hs2,gである。例えば、暗号化鍵生成部366は、生成元gと乱数s1とに基づいて、有限群Gにおける累乗により、生成元gを乱数s1で累乗した元gs1を算出する。暗号化鍵生成部366は、元hと乱数s2とに基づいて、有限群Gにおける累乗により、元hを乱数s2で累乗した元hs2を算出する。暗号化鍵生成部366は、有限群Gにおける乗法により、算出した2つの元gs1,hs2を結合した元gs1hs2を算出する。暗号化鍵生成部366は、ペアリングeにより、算出した元gs1hs2と、生成元gとの組を変換した元egs1hs2,gを算出する。暗号化鍵цは、乱数生成部303が算出した乱数s1を暗号化したものである。元結合部370は、処理装置911を用いて、二乗算出部368が算出した暗号化二乗ベクトルΔC’と、暗号化鍵生成部366が算出した暗号化鍵цとに基づいて、第二チャレンジC^を算出する。第二チャレンジC^は、有限群GTの元である。元結合部370が算出する第二チャレンジC^は、有限群GTにおける乗法により、暗号化二乗ベクトルΔC’のT個の成分Δc’iと、暗号化鍵цとを結合した元Πi[Δc’i]цである。第二チャレンジC^は、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差bi-b’iの二乗bi-b’i2と、乱数s1との総和Σi[bi-b’i2]s1を暗号化したものである。図40は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。第二チャレンジ生成工程S712では、認証装置102が、2つの暗号化特徴ベクトルC,C’に基づいて、第二チャレンジC^を生成する。第二チャレンジ生成工程S712は、例えば、乱数生成工程S749と、暗号化鍵生成工程S752と、初期化工程S740と、繰り返し工程S741と、差分算出工程S742と、二乗算出工程S753と、元累計工程S748aとを有する。最初に、乱数生成工程S749において、乱数生成部303が、処理装置911を用いて、2つの乱数s1,s2を生成する。暗号化鍵生成工程S752において、暗号化鍵生成部366が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した2つの乱数s1,s2に基づいて、暗号化鍵ц=gs1hs2を算出する。元結合部370は、処理装置911を用いて、第二チャレンジC^を、暗号化鍵生成部366が算出した暗号化鍵цに初期化する。初期化工程S740において、元結合部370は、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S741において、元結合部370が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二チャレンジC^が完成したので、元結合部370は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、元結合部370は、差分算出工程S742へ処理を進める。差分算出工程S742において、差分算出部361が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’iとに基づいて、暗号化差分ベクトルΔCのi番目の成分Δciを算出する。二乗算出工程S753において、二乗算出部368が、処理装置911を用いて、差分算出工程S742で差分算出部361が算出した元Δciに基づいて、暗号化二乗ベクトルΔC’のi番目の成分Δc’i=eΔci,Δciを算出する。元累計工程S748aにおいて、元結合部370は、処理装置911を用いて、有限群GTの乗法により、二乗算出工程S753で二乗算出部368が算出した暗号化二乗ベクトルΔC’のi番目の成分Δc’iを、第二チャレンジC^に結合する。元結合部370は、繰り返し工程S741に処理を戻す。このようにして暗号化ランダム類似度算出部314が算出した第二チャレンジC^は、第二チャレンジ送信部321が復号装置103に対して送信し、復号装置103が受信して処理する。なお、第二チャレンジC^を算出する手順は、上述した手順と異なっていてもよい。例えば、有限群Gよりも有限群GTのほうが、乗法などの計算が速くできる場合、有限群GTにおける演算を増やし、有限群Gにおける演算を減らしたほうが、第二チャレンジ生成工程S712の計算にかかる時間を短くすることができる。図41は、この実施の形態における暗号化ランダム類似度算出部314の構成の別の例を示す詳細ブロック図である。認証装置102の暗号化ランダム類似度算出部314は、例えば、2つの二乗算出部381,382と、積算出部383と、累乗算出部384と、元結合部370とを有する。二乗算出部381は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCとに基づいて、第一暗号化二乗ベクトルЖを算出する。第一暗号化二乗ベクトルЖは、有限群GTの元を成分とするT次元のベクトルж1,ж2,...,жTである。第一暗号化二乗ベクトルЖのi番目の成分жiiは、1以上T以下の整数。は、ペアリングeにより、暗号化特徴ベクトルCのi番目の成分ci同士の組を変換した元eci,ciである。二乗算出部382は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、第二暗号化二乗ベクトルЖ’を算出する。第二暗号化二乗ベクトルЖ’は、有限群GTの元を成分とするT次元のベクトルж’1,ж’2,...,ж’Tである。第二暗号化二乗ベクトルЖ’のi番目の成分ж’iiは、1以上T以下の整数。は、ペアリングeにより、暗号化特徴ベクトルC’のi番目の成分c’i同士の組を変換した元ec’i,c’iである。積算出部383は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、暗号化積ベクトル¢を算出する。暗号化積ベクトル¢は、有限群GTの元を成分とするT次元のベクトル¢1,¢2,...,¢Tである。暗号化積ベクトル¢のi番目の成分¢iiは、1以上T以下の整数。は、ペアリングeにより、暗号化特徴ベクトルCのi番目の成分ciと、暗号化特徴ベクトルC’のi番目の成分c’iとの組を変換した元eci,c’iである。累乗算出部384は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及び生成元g及び元hと、乱数生成部303が生成した2つの乱数s1,s2とに基づいて、2つの累乗元ц1,ц2を算出する。第一の累乗元ц1は、ペアリングeにより生成元g同士の組を変換した元eg,gを、有限群GTにおける累乗により、乱数s1で累乗した元eg,gs1である。第二の累乗元ц2は、ペアリングeにより生成元gと元hとの組を変換した元eg,hを、有限群GTにおける累乗により、乱数s2で累乗した元eg,hs2である。元結合部370は、処理装置911を用いて、二乗算出部381が算出した第一暗号化二乗ベクトルЖと、二乗算出部382が算出した第二暗号化二乗ベクトルЖ’と、積算出部383が算出した暗号化積ベクトル¢と、累乗算出部384が算出した2つの累乗元ц1,ц2とに基づいて、第二チャレンジC^を算出する。第二チャレンジC^は、有限群GTの元である。元結合部370が算出する第二チャレンジC^は、有限群GTの乗法により、第一暗号化二乗ベクトルЖのT個の成分жiと、第二暗号化二乗ベクトルЖ’のT個の成分ж’iと、暗号化積ベクトル¢のT個の成分¢iの-2乗と、2つの累乗元ц1,ц2とをすべて結合した元Πi[жiж’i¢i-2]ц1ц2である。この場合、第二チャレンジC^は、Σi[bi2b’i2-2bib’i]s1=Σi[bi-b’i2]s1を暗号化したものである。図42は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの別の例を示すフローチャート図である。第二チャレンジ生成工程S712は、例えば、乱数生成工程S749と、累乗算出工程S752aと、初期化工程S740と、繰り返し工程S741と、二乗算出工程S753と、積算出工程S754と、元累計工程S748aとを有する。乱数生成工程S749において、乱数生成部303が、処理装置911を用いて、2つの乱数s1,s2を生成する。累乗算出工程S752aにおいて、累乗算出部384が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した2つの乱数s1,s2に基づいて、2つの累乗元ц1=eg,gs1,ц2=eg,hs2を算出する。初期化工程S740において、元結合部370が、処理装置911を用いて、整数iを0に初期化する。また、元結合部370が、処理装置911を用いて、有限群GTにおける乗法により、累乗算出工程S752aで累乗算出部384が算出した2つの累乗元ц1,ц2を結合した元ц1ц2を算出する。元結合部370は、処理装置911を用いて、第二チャレンジC^を、算出した元ц1ц2に初期化する。繰り返し工程S741において、元結合部370が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二チャレンジC^が完成したので、元結合部370は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、元結合部370は、二乗算出工程S753へ処理を進める。二乗算出工程S753において、二乗算出部381が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciに基づいて、第一暗号化二乗ベクトルЖのi番目の成分жi=eci,ciを算出する。また、二乗算出部382が、処理装置911を用いて、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’iに基づいて、第二暗号化二乗ベクトルЖ’のi番目の成分ж’i=ec’i,c’iを算出する。積算出工程S754において、積算出部383が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’iとに基づいて、暗号化積ベクトル¢のi番目の成分¢i=eci,c’iを算出する。元累計工程S748aにおいて、元結合部370は、処理装置911を用いて、有限群GTの乗法により、二乗算出工程S753で二乗算出部381が算出した第一暗号化二乗ベクトルЖのi番目の成分жiと、二乗算出工程S753で二乗算出部382が算出した第二暗号化二乗ベクトルЖ’のi番目の成分ж’iと、積算出工程S754で積算出部383が算出した暗号化積ベクトル¢のi番目の成分¢iの-2乗とを、第二チャレンジC^に結合する。元結合部370は、繰り返し工程S741に処理を戻す。このような処理手順とすることにより、有限群Gにおける演算がなくなり、ペアリングeの計算と、有限群GTにおける乗法の計算だけで、第二チャレンジC^を生成することができる。また、ペアリングeg,g及びeg,hや、第一暗号化二乗ベクトルЖの成分eci,ciは、暗号化特徴ベクトルC’と無関係であるから、前もって計算しておくことができる。これらを前もって計算しておくことにより、第二チャレンジC^を生成するのにかかる時間を短くすることができる。図43は、この実施の形態における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図である。第二レスポンス生成工程S716では、復号装置103が、第二チャレンジC^から、第二レスポンスZを生成する。第二レスポンス生成工程S716は、例えば、累乗算出工程S571を有する。累乗算出工程S571において、復号装置103の復号部404が、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである素数pと、第二チャレンジ受信部402が受信した第二チャレンジC^とに基づいて、第二レスポンスZを算出する。第二レスポンスZは、有限群GTの元である。復号部404が算出する第二レスポンスZは、有限群GTにおける累乗により、第二チャレンジC^を素数pで累乗した元である。第二チャレンジC^は、Σi[bi-b’i2]s1を暗号化したものであるから、第二レスポンスZは、ペアリングeにより生成元g同士の組を変換した元eg,gを有限群GTにおける累乗により素数pで累乗した元eg,gpを、有限群GTにおける累乗により、Σi[bi-b’i2]s1で累乗した元になる。なお、元eg,gpは、公開鍵pkの一部として公開されている元πであるから、第二レスポンスZは、有限群GTにおける累乗により元πをΣi[bi-b’i2]s1で累乗した元である。平文類似度抽出部315の構成は、実施の形態1で説明した構成と同様なので、図24を参照して説明する。群変換部371は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である元πと、乱数記憶部322が記憶した乱数s1とに基づいて、復号鍵Цを算出する。復号鍵Цは、有限群GTの元である。復号鍵Цは、有限群GTの累乗により、元πを乱数s1の反数-s1で累乗した元π-s1である。元結合部372は、処理装置911を用いて、第二レスポンス受信部341が受信した第二レスポンスZと、群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’を算出する。復号類似度元Z’は、有限群GTの元である。復号類似度元Z’は、有限群GTにおける乗法により、第二レスポンスZと、復号鍵Цとを結合した元ZЦである。第二レスポンスZは、有限群GTにおける累乗により元πをΣi[bi-b’i2]s1で累乗した元であるから、復号類似度元Z’は、有限群GTにおける累乗により元πをΣi[bi-b’i2]で累乗した元になる。離散対数算出部373は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である元πと、元結合部372が算出した復号類似度元Z’とに基づいて、復号類似度元Z’が元πの何乗であるかを算出して、類似度dとする。なお、実施の形態1と同様、離散対数算出部373は、類似度dが閾値d0以下である場合に、類似度dを算出し、類似度dが閾値d0より大きい場合は、類似度dが閾値d0より大きいことを判定する構成であってもよい。これにより、認証装置102は、類似度dとして、2つの特徴ベクトルb,b’の間のユークリッド距離の二乗Σi[bi-b’i2]を算出する。図44は、この実施の形態における平文類似度算出工程S719の処理の流れの一例を示すフローチャート図である。平文類似度算出工程S719では、認証装置102が、第二レスポンスZから、類似度dを算出する。平文類似度算出工程S719は、例えば、群変換工程S691と、元結合工程S692と、離散対数算出工程S693とを有する。最初に、群変換工程S691において、群変換部371は、処理装置911を用いて、乱数記憶部322が記憶した一時鍵としての乱数s1に基づいて、復号鍵Ц=π-s1を算出する。元結合工程S692において、元結合部372は、処理装置911を用いて、第二レスポンス受信部341が受信した第二レスポンスZと、群変換工程S691で群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’=ZЦを算出する。離散対数算出工程S693において、離散対数算出部373は、処理装置911を用いて、元結合部372で元結合部372が算出した復号類似度元Z’に基づいて、類似度dを算出する。平文類似度抽出部315が算出した類似度dに基づいて、判定部306が、2つの特徴ベクトルb,b’が似ているか否かを判定することにより、特徴ベクトルbで表わされる生体情報を持つ人物と、特徴ベクトルb’で表わされる生体情報を持つ人物とが同一人物であるか否かを判定する。判定部306は、類似度dが閾値d0より小さい場合に、2つの特徴ベクトルb,b’が似ていると判定する。図45は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジC^を算出することにより、δ=Σi[bi-b’i2]s1iは、1以上T以下の整数。を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζを算出する。復号装置103は、単に復号処理をするだけなので、ζは、δと等しい。復号装置103は、一時鍵s1を知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵s1で暗号化された状態で行われる。第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ-s1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。このように、暗号化したままの状態で、平文の加法に相当する演算だけでなく、平文の乗法に相当する演算を少なくとも1回はできる暗号方式を使うことにより、類似度算出の計算手順のほとんどを、第一段階で終わらせることができる。これにより、復号装置103は、単純に復号処理だけをすればよい。この実施の形態によれば、公開鍵pk、秘密鍵sk、生成する乱数、記憶する乱数の数を低減することができる。また、認証装置102から復号装置103に送付する第二チャレンジのデータ量が低減するので、認証に必要な通信量を低減することができる。なお、暗号方式は、BGN暗号方式に限らず、Gentry暗号方式など環準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。実施の形態5.実施の形態5について、図46~図48を用いて説明する。なお、実施の形態1~実施の形態4と共通する部分については、同一の符号を付し、説明を省略する。この実施の形態では、実施の形態4で説明したBGN暗号方式を使い、実施の形態3と同様、類似度dとして、内積Σi[bib’i]を算出する場合について説明する。この実施の形態における生体認証システム100の全体構成、証明装置101、認証装置102、復号装置103、登録装置104などの内部構成は、実施の形態4で説明したものと同様なので、異なる点のみ説明する。図46は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。認証装置102の暗号化ランダム類似度算出部314は、例えば、積算出部383と、累乗算出部384と、元結合部370とを有する。積算出部383は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、暗号化積ベクトル¢を算出する。暗号化積ベクトル¢は、有限群GTの元を成分とするT次元のベクトル¢1,¢2,...,¢Tである。暗号化積ベクトル¢のi番目の成分¢iは、ペアリングeにより、暗号化特徴ベクトルCのi番目の成分ciと、暗号化特徴ベクトルC’のi番目の成分c’iとの組を変換した元eci,c’iである。累乗算出部384は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及び生成元g及び元hと、乱数生成部303が生成した2つの乱数s1,s2とに基づいて、2つの累乗元ц1,ц2を算出する。第一の累乗元ц1は、ペアリングeにより生成元g同士の組を変換した元eg,gを、有限群GTにおける累乗により、乱数s1で累乗した元eg,gs1である。第二の累乗元ц2は、ペアリングeにより生成元gと元hとの組を変換した元eg,hを、有限群GTにおける累乗により、乱数s2で累乗した元eg,hs2である。元結合部370は、処理装置911を用いて、積算出部383が算出した暗号化積ベクトル¢と、累乗算出部384が算出した2つの累乗元ц1,ц2とに基づいて、第二チャレンジC^を算出する。第二チャレンジC^は、有限群GTの元である。元結合部370が算出する第二チャレンジC^は、有限群GTの乗法ににより、暗号化積ベクトル¢のT個の成分¢iと、2つの累乗元ц1,ц2とをすべて結合した元Πi[¢i]ц1ц2である。第二チャレンジC^は、Σi[bib’i]s1を暗号化したものになる。図47は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。第二チャレンジ生成工程S712は、例えば、乱数生成工程S749と、累乗算出工程S752aと、初期化工程S740と、繰り返し工程S741と、積算出工程S754と、元累計工程S748aとを有する。乱数生成工程S749において、乱数生成部303が、処理装置911を用いて、2つの乱数s1,s2を生成する。累乗算出工程S752aにおいて、累乗算出部384が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した2つの乱数s1,s2に基づいて、2つの累乗元ц1=eg,gs1,ц2=eg,hs2を算出する。初期化工程S740において、元結合部370が、処理装置911を用いて、整数iを0に初期化する。また、元結合部370は、処理装置911を用いて、有限群GTにおける乗法により、累乗算出部384が算出した2つの累乗元ц1,ц2を結合した元ц1ц2を算出する。元結合部370は、処理装置911を用いて、第二チャレンジC^を、算出した元ц1ц2に初期化する。繰り返し工程S741において、元結合部370が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二チャレンジC^が完成したので、元結合部370は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、元結合部370は、積算出工程S754へ処理を進める。積算出工程S754において、積算出部383が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’iとに基づいて、暗号化積ベクトル¢のi番目の成分¢i=eci,c’iを算出する。元累計工程S748aにおいて、元結合部370は、処理装置911を用いて、有限群GTの乗法により、積算出工程S754で積算出部383が算出した暗号化積ベクトル¢のi番目の成分¢iを、第二チャレンジC^に結合する。元結合部370は、繰り返し工程S741に処理を戻す。このようにして暗号化ランダム類似度算出部314が算出した第二チャレンジC^は、第二チャレンジ送信部321が復号装置103に対して送信し、復号装置103が受信して処理する。復号装置103の復号部404は、実施の形態4と同じ構成であるが、第二チャレンジC^の意味が異なるため、復号部404が生成する第二レスポンスZの意味も、実施の形態1とは異なる。すなわち、第二レスポンスZは、有限群GTにおける累乗により、有限群GTの元πをΣi[bib’i]s1iは、1以上T以下の整数。で累乗した元になる。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との内積Σi[bib’i]を、一時鍵としての乱数s1で暗号化したものになる。認証装置102の平文類似度抽出部315も、実施の形態4と同じ構成である。元結合部370が算出する復号類似度元Z’は、有限群GTにおける累乗により元πを特徴ベクトルbと特徴ベクトルb’との内積Σi[bib’i]で累乗した元である。したがって、平文類似度抽出部315は、類似度dとして、特徴ベクトルbと特徴ベクトルb’との内積Σi[bib’i]を算出する。判定部306は、離散対数算出部373が算出した類似度dが、所定の閾値d0より大きい場合に、2つの特徴ベクトルb,b’が似ていると判定する。これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。図48は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジC^を算出することにより、δ=Σi[bib’i]s1iは、1以上T以下の整数。を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζを算出する。復号装置103は、単に復号処理をするだけなので、ζは、δと等しい。復号装置103は、一時鍵s1を知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵s1で暗号化された状態で行われる。第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ-s1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。なお、暗号方式は、BGN暗号方式に限らず、Gentry暗号方式など環準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。なお、実施の形態4と比較すると、証明装置101、復号装置103、登録装置104の構成は、変わらず、認証装置102の構成だけが異なる。したがって、認証装置102を、実施の形態4で説明した構成と、この実施の形態で説明した構成とを切り替えることができる構成とすることにより、生体認証システム100の他の装置に変更を加えることなく、ユークリッド距離と内積との2種類の類似度を算出することができる。実施の形態6.実施の形態6について、図49~図61を用いて説明する。なお、実施の形態1~実施の形態5と共通する部分については、同一の符号を付し、説明を省略する。この実施の形態では、暗号方式として、Paillier暗号方式を使う場合について説明する。なお、類似度dは、実施の形態1と同様、ユークリッド距離の二乗を使う。まず、Paillier暗号方式の概要について説明する。Nは、互いに異なる2つの素数p,qの積である。λは、p-1とq-1との公倍数である。rをNと互いに素な整数とすると、rλN≡1modN2である。また、x,yを整数とすると、1xNy≡1xyNmodN2である。したがって、[rN1xN]λ≡1xλNmodN2である。例えば、Nを公開鍵pkとし、p-1とq-1との最小公倍数λを秘密鍵skとする。0以上N未満の整数xを平文とし、rN1xNを平文xを暗号化した暗号文Exとする。ただし、rは、0以上N未満の整数のなかから一様ランダムに選択した整数である。素数p,qが十分大きければrがNと互いに素でない確率は、非常に小さく、無視できる。復号には、秘密鍵skであるλを使う。Exλ≡1xλNmodN2であることを利用すると、乱数rを消去できる。Exλ-1は、Nの倍数になるから、[Exλ-1]/Nは、整数である。Nを法とする整数の乗法におけるλの逆元をλ-1とすると、[Exλ-1]/Nと、λ-1との積をNで割った余りを求めると、平文xが復号できる。整数x1の暗号文Ex1と、整数x2の暗号文Ex2との積を、N2で割った余りは、r1N1x1Nr2N1x2N≡r1r2N[1x1x2N]modN2だから、整数x1と整数x2との和x1x2の暗号文Ex1x2になっている。図49は、この実施の形態における鍵生成部401の構成の一例を示す詳細ブロック図である。復号装置103の鍵生成部401は、例えば、素数決定部441と、積算出部442と、公倍数算出部443とを有する。素数決定部441は、処理装置911を用いて、セキュリティレベルに応じて定まる大きさ例えば512ビットや1024ビットなどに基づいて、互いに異なる2つの素数p,qを生成する。積算出部442は、処理装置911を用いて、素数決定部441が生成した2つの素数p,qに基づいて、整数Nを算出する。整数Nは、2つの素数p,qの積である。公倍数算出部443は、処理装置911を用いて、素数決定部441が生成した2つの素数p,qに基づいて、p-1とq-1との最小公倍数λ=LCMp-1,q-1を算出する。公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkとして、積Nを記憶する。秘密鍵記憶部413は、記憶装置914を用いて、秘密鍵skとして、最小公倍数λを記憶する。なお、復号には、Nを法とする整数の乗法におけるλの逆数λ-1が必要なので、例えば、公倍数算出部443が、逆数λ-1を算出し、秘密鍵記憶部413が秘密鍵skの一部として記憶しておく構成であってもよい。図50は、この実施の形態における鍵生成工程S501の処理の流れの一例を示すフローチャート図である。鍵生成工程S501では、復号装置103が、公開鍵pkと秘密鍵skとの組を生成する。なお、ユーザごとに異なる公開鍵pkと秘密鍵skとの組を生成する構成であってもよいし、システム全体として1つの公開鍵pkと秘密鍵skとの組を生成する構成であってもよい。鍵生成工程S501は、例えば、素数決定工程S531と、積算出工程S532と、公倍数算出工程S533とを有する。最初に、素数決定工程S531において、素数決定部441が、処理装置911を用いて、2つの素数p,qを決定する。積算出工程S532において、積算出部442が、処理装置911を用いて、素数決定工程S531で素数決定部441が決定した2つの素数p,qに基づいて、整数N=pqを算出する。公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkとして、積算出部442が算出した整数Nを記憶する。公倍数算出工程S533において、公倍数算出部443が、処理装置911を用いて、素数決定工程S531で素数決定部441が決定した2つの素数p,qに基づいて、最小公倍数λ=LCMp-1,q-1を算出する。秘密鍵記憶部413は、記憶装置914を用いて、秘密鍵skとして、公倍数算出部443が算出した最小公倍数λを記憶する。このようにして公開鍵記憶部403が記憶した公開鍵pk=Nは、公開鍵送信部408が認証装置102などに対して送信し、認証装置102などが受信して格納する。図51は、この実施の形態における特徴ベクトル暗号化工程S603の処理の流れの一例を示すフローチャート図である。特徴ベクトル暗号化工程S603では、登録装置104が、特徴ベクトルbを暗号化して暗号化特徴ベクトルCを生成する。特徴ベクトル暗号化工程S603は、例えば、初期化工程S610と、繰り返し工程S611と、乱数生成工程S612と、整数算出工程S613bとを有する。登録装置104の特徴ベクトル形成部204が生成する特徴ベクトルbは、例えば、0以上N未満の整数を成分とするT次元のベクトルb1,b2,...,bTTは、1以上の整数。である。暗号化データ生成部206が生成する暗号化特徴ベクトルCは、0以上N2未満の整数を成分とするT次元のベクトルc1,c2,...,cTである。最初に、初期化工程S610において、暗号化データ生成部206が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S611において、暗号化データ生成部206が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化データ生成部206は、特徴ベクトル暗号化工程S603を終了する。整数iがT以下である場合、暗号化データ生成部206は、乱数生成工程S612へ処理を進め、暗号化特徴ベクトルCのi番目の成分ciを生成する。乱数生成工程S612において、乱数生成部205が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkである整数Nに基づいて、乱数riを生成する。乱数生成部205が生成する乱数riは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。整数算出工程S613bにおいて、暗号化データ生成部206が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkである整数Nと、特徴ベクトル形成部204が生成した特徴ベクトルbのi番目の成分biと、乱数生成工程S612で特徴ベクトル形成部204が生成した乱数riとに基づいて、暗号化特徴ベクトルCのi番目の成分ciを算出する。暗号化データ生成部206が算出する暗号化特徴ベクトルCのi番目の成分ciは、特徴ベクトルbのi番目の成分biと整数Nとの積biNに1を加えた和1biNと、乱数riを整数Nで累乗した整数riNとの積riN1biNを、整数Nの2乗で割った余りである。暗号化データ生成部206は、繰り返し工程S611に処理を戻し、暗号化特徴ベクトルCの次の成分を生成する。このようにして暗号化データ生成部206が生成した暗号化特徴ベクトルCは、暗号化データ送信部201が認証装置102に対して送信し、認証装置102が受信して格納する。図52は、この実施の形態における第一チャレンジ生成工程S701の処理の流れの一例を示すフローチャート図である。第一チャレンジ生成工程S701では、認証装置102が、第一チャレンジRを生成する。第一チャレンジ生成工程S701は、例えば、初期化工程S729と、繰り返し工程S721と、乱数生成工程S722と、整数算出工程S723bとを有する。認証装置102の暗号化乱数生成部304が生成する第一チャレンジRは、0以上N2未満の整数を成分とするT次元のベクトルR1,R2,...,RTである。最初に、初期化工程S729において、暗号化乱数生成部304が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S721において、暗号化乱数生成部304が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化乱数生成部304は、第一チャレンジ生成工程S701を終了する。整数iがT以下である場合、暗号化乱数生成部304は、乱数生成工程S722へ処理を進め、第一チャレンジRのi番目の成分Riを生成する。乱数生成工程S722において、乱数生成部303が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nに基づいて、2個の乱数R1,i,R2,iを生成する。乱数生成部303が生成する乱数R1,i,R2,iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322が、記憶装置914を用いて、乱数生成部303が生成した乱数R1,iを記憶する。元算出工程S723aにおいて、暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成工程S722で乱数生成部303が生成した2個の乱数R1,i,R2,iとに基づいて、第一チャレンジRのi番目の成分Riを算出する。暗号化乱数生成部304が算出する第一チャレンジRのi番目の成分Riは、乱数R1,iと整数Nとの積R1,iNに1を加えた和1R1,iNと、乱数R2,iを整数Nで累乗した整数R2,iNとの積を、整数Nの2乗で割った余りである。暗号化乱数生成部304は、繰り返し工程S721に処理を戻し、第一チャレンジRの次の成分を生成する。このようにして暗号化乱数生成部304が生成した第一チャレンジRは、第一チャレンジ送信部311が証明装置101に対して送信し、証明装置101が受信して処理をする。第一チャレンジ生成工程S701において乱数生成部303が生成する乱数R1,i,R2,iiは、1以上T以下の整数。は、全部で2T個である。このうち、T個の乱数R1,iiは、1以上T以下の整数。を、乱数記憶部322が記憶する。乱数記憶部322が記憶するT個の乱数R1,iは、平文としての乱数であり、残りのT個の乱数R2,iiは、1以上T以下の整数。は、暗号化のための乱数である。第一チャレンジRの各成分Riは、平文としての乱数R1,iを暗号化したものである。図53は、この実施の形態における暗号化データ埋め込み部217の構成の一例を示す詳細ブロック図である。証明装置101の暗号化データ埋め込み部217は、例えば、累乗算出部234と、零生成部232と、整数結合部236とを有する。証明装置101の特徴ベクトル形成部214が生成する特徴ベクトルb’は、登録装置104の特徴ベクトル形成部204が生成する特徴ベクトルbと同様、0以上N未満の整数を成分とするT次元のベクトルb’1,b’2,...,b’Tである。乱数生成部215は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵pkである整数Nに基づいて、T個の乱数r’iiは、1以上T以下の整数。を生成する。乱数生成部215が生成する乱数r’iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。累乗算出部234は、処理装置911を用いて、第一チャレンジ受信部211が受信した第一チャレンジRと、特徴ベクトル形成部214が生成した特徴ベクトルb’とに基づいて、累乗ベクトルЯを算出する。累乗算出部234が算出する累乗ベクトルЯは、第一チャレンジRと同様に、0以上N2未満の整数を成分とするT次元のベクトルя1,я2,...,яTである。累乗算出部234が算出する累乗ベクトルЯのi番目の成分яiiは、1以上T以下の整数。は、第一チャレンジRのi番目の成分Riを、特徴ベクトルb’のi番目の成分b’iで累乗した整数Rib’iを、整数Nの2乗で割った余りである。累乗算出部234が算出する累乗ベクトルЯの各成分яiは、特徴ベクトルb’の成分b’iと、認証装置102が生成した平文としての乱数R1,iとの積を暗号化したものになる。零生成部232は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵pkである整数Nと、乱数生成部215が生成したT個の乱数r’iとに基づいて、暗号化零ベクトルOを生成する。暗号化零ベクトルOは、0以上N2未満の整数を成分とするT次元のベクトルo1,o2,...,oTである。暗号化零ベクトルOのi番目の成分oiiは、1以上T以下の整数。は、i番目の乱数r’iを整数Nで累乗した整数r’iNを、整数Nの2乗で割った余りである。暗号化零ベクトルOの各成分oiは、0を暗号化したものである。整数結合部236は、処理装置911を用いて、累乗算出部234が算出した累乗ベクトルЯと、零生成部232が生成した暗号化零ベクトルOとに基づいて、第一レスポンスR’を算出する。第一レスポンスR’は、0以上N2未満の整数を成分とするT次元のベクトルR’1,R’2,...,R’Tである。第一レスポンスR’のi番目の成分R’iiは、1以上T以下の整数。は、累乗ベクトルЯのi番目の成分яiと、暗号化零ベクトルOのi番目の成分oiとの積を、整数Nの2乗で割った余りである。第一レスポンスR’の各成分R’iは、第一チャレンジRの成分Riにおいて暗号化されている平文としての乱数R1,iと、特徴ベクトルb’の成分b’iとの積を暗号化したものになる。図54は、この実施の形態における第一レスポンス生成工程S707の処理の流れの一例を示すフローチャート図である。第一レスポンス生成工程S707では、証明装置101が、特徴ベクトルb’と、第一チャレンジRとに基づいて、第一レスポンスR’を生成する。第一レスポンス生成工程S707は、例えば、初期化工程S660と、繰り返し工程S661と、累乗算出工程S662aと、乱数生成工程S663と、零生成工程S664と、整数結合工程S665bとを有する。最初に、初期化工程S660において、整数結合部236が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S661において、整数結合部236が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、整数結合部236は、第一レスポンス生成工程S707を終了する。整数iがT以下である場合、整数結合部236は、累乗算出工程S662aへ処理を進め、第一レスポンスR’のi番目の成分R’iを生成する。累乗算出工程S662aにおいて、累乗算出部234が、処理装置911を用いて、特徴ベクトル形成部214が生成した特徴ベクトルb’のi番目の成分b’iと、第一チャレンジ受信部211が受信した第一チャレンジRのi番目のベクトルRiとに基づいて、累乗ベクトルЯのi番目の成分яi=Rib’imodN2を算出する。乱数生成工程S663において、乱数生成部215が、処理装置911を用いて、乱数r’iを生成する。零生成工程S664において、零生成部232が、処理装置911を用いて、乱数生成工程S663で乱数生成部215が生成した乱数r’iに基づいて、暗号化零ベクトルOのi番目の成分oi=r’iNmodN2を算出する。整数結合工程S665bにおいて、整数結合部236が、処理装置911を用いて、累乗算出工程S662aで累乗算出部234が算出した累乗ベクトルЯのi番目の成分яiと、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oiとに基づいて、第一レスポンスR’のi番目の成分R’iを算出する。整数結合部236は、繰り返し工程S661に処理を戻し、第一レスポンスR’の次の成分を生成する。このようにして暗号化データ埋め込み部217が生成した第一レスポンスR’は、第一レスポンス送信部221が認証装置102に対して送信し、認証装置102が受信して処理する。なお、特徴ベクトルb’の成分b’iが0か1かの2つの値しか取らない場合、第一レスポンス生成工程S707の処理は、例えば次のように簡略化できる。まず、累乗の必要がないので、累乗算出部234を設けず、累乗算出工程S662aを実行しない。整数結合工程S665bにおいて、整数結合部236は、処理装置911を用いて、特徴ベクトルb’のi番目の成分b’iが0であるか1であるかを判定する。特徴ベクトルb’のi番目の成分b’iが0である場合、整数結合部236は、処理装置911を用いて、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oi=r’iNmodN2を、第一レスポンスR’のi番目の成分R’iとする。特徴ベクトルb’のi番目の成分b’iが1である場合、元結合部235は、処理装置911を用いて、有限群Gにおける乗法により、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oiと、第一チャレンジ受信部211が受信した第一チャレンジRのi番目の成分Riとの積を、整数Nの2乗で割った余りを算出して、第一レスポンスR’のi番目の成分R’iとする。第一チャレンジRのi番目の成分Riは、乱数R1,iと整数Nとの積に1を加えた整数1R1,iNと、乱数R2,iをN乗した整数との積を、N2で割った余りであるから、第一レスポンスR’のi番目の成分R’iは、特徴ベクトルb’のi番目の成分b’iと乱数R1,iと整数Nとの積に1を加えた整数1b’iR1,iNと、乱数R2,iのb’i乗と乱数r’iとの積をN乗した整数との積を、N2で割った余りである。すなわち、第一レスポンスR’のi番目の成分R’iは、特徴ベクトルb’のi番目の成分b’iと、乱数R1,iとの積を暗号化したものになっている。暗号化データ抽出部305の構成は、実施の形態4で説明した構成と同様なので、図37を参照して説明する。認証装置102の暗号化データ抽出部305は、例えば、逆数算出部351と、累乗算出部353とを有する。認証装置102の暗号化データ抽出部305が生成する暗号化特徴ベクトルC’は、登録装置104の暗号化データ生成部206が生成する暗号化特徴ベクトルCと同様、0以上N2未満の整数を成分とするT次元のベクトルc’1,c’2,...,c’Tである。逆数算出部351は、処理装置911を用いて、乱数記憶部322が記憶したT個の乱数R1,iiは、1以上T以下の整数。に基づいて、Nを法とする整数の乗法における乱数R1,iそれぞれの逆数κi=R1,i-1を算出する。逆数κiは、乱数R1,iと逆数κiとの積をNで割った余りが1になる整数である。なお、Nが素数ではないので、必ずしも乱数R1,iに逆数κiが存在するとは限らない。しかし、Nの素因数である2つの素数p,qが十分大きければ、乱数R1,iが零因子である確率は、非常に小さく、無視できる。累乗算出部353は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’と、逆数算出部351が算出したT個の逆数κiとに基づいて、暗号化特徴ベクトルC’を算出する。累乗算出部353が算出する暗号化特徴ベクトルC’のi番目の成分c’iiは、1以上T以下の整数。は、第一レスポンスR’のi番目の成分R’iを、i番目の逆数κiで累乗した整数を、整数Nの2乗で割った余りである。暗号化特徴ベクトルC’の各成分c’iは、特徴ベクトルb’の成分b’iを暗号化したものになる。図55は、この実施の形態における暗号化生体情報抽出工程S710の処理の流れの一例を示すフローチャート図である。暗号化生体情報抽出工程S710では、認証装置102が、第一レスポンスR’に基づいて、暗号化特徴ベクトルC’を生成する。暗号化生体情報抽出工程S710は、例えば、初期化工程S730と、繰り返し工程S731と、逆数算出工程S732と、累乗算出工程S733aとを有する。最初に、初期化工程S730において、累乗算出部353が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S731において、累乗算出部353が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、累乗算出部353は、暗号化生体情報抽出工程S710を終了する。整数iがT以下である場合、累乗算出部353は、逆数算出工程S732へ処理を進め、暗号化特徴ベクトルC’のi番目の成分c’iを生成する。逆数算出工程S732において、逆数算出部351が、処理装置911を用いて、第一チャレンジ生成工程S701で乱数記憶部322が記憶したT個の乱数のうちi番目の乱数R1,iに基づいて、逆数κi=R1,i-1を算出する。累乗算出工程S733aにおいて、累乗算出部353は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’のi番目の成分R’iと、逆数算出工程S732で算出した逆数κiとに基づいて、暗号化特徴ベクトルC’のi番目の成分c’i=R’iκiを算出する。累乗算出部353は、繰り返し工程S731に処理を戻し、暗号化特徴ベクトルC’の次の成分を生成する。このようにして暗号化データ抽出部305が生成した暗号化特徴ベクトルC’は、第二チャレンジ生成工程S712で使われる。第一レスポンスR’のi番目の成分R’iは、整数b’iR1,iと整数Nとの積に1を加えた整数1b’iR1,iNと、R2,ib’ir’iのN乗との積を、N2で割った余りであるから、暗号化特徴ベクトルC’のi番目の成分c’iは、整数κib’iR1,iと整数Nとの積に1を加えた整数1κib’iR1,iNと、R2,ib’ir’iκiのN乗との積である。R1,iκi≡1modNであるから、c’iは、整数b’iと整数Nとの積に1を加えた整数1b’iNと、R2,ib’ir’iκiのN乗との積である。すなわち、暗号化特徴ベクトルC’のi番目の成分c’iは、特徴ベクトルb’のi番目の成分b’iを暗号化したものになる。図56は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。認証装置102の暗号化ランダム類似度算出部314が生成する第二チャレンジC^は、0以上N2未満のT1個の整数c^1,c^2,...,c^T,c^からなる。暗号化ランダム類似度算出部314は、例えば、差分算出部361と、並べ替え部385と、暗号化鍵生成部366とを有する。乱数生成部303は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nに基づいて、2個の乱数s1,s2を生成する。乱数生成部303が生成する乱数s1,s2は、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、1個の乱数s1を記憶する。差分算出部361は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、暗号化差分ベクトルΔCを算出する。暗号化差分ベクトルΔCは、0以上N2未満の整数を成分とするT次元のベクトルΔc1,Δc2,...,ΔcTである。暗号化差分ベクトルΔCのi番目の成分Δciiは、1以上T以下の整数。は、次の2つの整数のなかから、ランダムに選択したいずれかの整数である。Δciの第一の候補となる整数は、N2を法とする整数の乗法における暗号化特徴ベクトルCのi番目の成分ciの逆数ci-1と、暗号化特徴ベクトルC’のi番目の成分c’iとの積を、N2で割った余りである。Δciの第二の候補となる整数は、N2を法とする整数の乗法における暗号化特徴ベクトルC’のi番目の成分c’iの逆数c’i-1と、暗号化特徴ベクトルCのi番目の成分ciとの積を、N2で割った余りである。すなわち、第一の候補と第二の候補とは、N2を法とする整数の乗法における逆数の関係にある。暗号化差分ベクトルΔCの各成分Δciは、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差bi-b’iの正負をランダムに変えたものを暗号化したものである。並べ替え部385は、処理装置911を用いて、差分算出部361が算出した暗号化差分ベクトルΔCに基づいて、第二チャレンジC^の一部であるT個の整数c^iiは、1以上T以下の整数。を生成する。整数c^iは、0以上N2未満の整数である。T個の整数c^iは、暗号化差分ベクトルΔCのT個の成分Δciの順序をランダムに並べ替えたものである。暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成した2つの乱数s1,s2とに基づいて、第二チャレンジC^の一部である1個の整数c^を生成する。整数c^は、0以上N2未満の整数である。整数c^は、乱数s1と整数Nとの積に1を加えた整数1s1Nと、乱数s2を整数Nで累乗した整数s2Nとの積を、整数Nの2乗で割った余りである。整数c^は、乱数生成部303が算出した乱数s1を暗号化したものである。図57は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。第二チャレンジ生成工程S712では、認証装置102が、2つの暗号化特徴ベクトルC,C’に基づいて、第二チャレンジC^を生成する。第二チャレンジ生成工程S712は、例えば、初期化工程S740と、繰り返し工程S741と、乱数生成工程S757と、2つの差分算出工程S742a,S742bと、乱数生成工程S758と、第二チャレンジ設定工程S759と、乱数生成工程S749と、暗号化鍵生成工程S752とを有する。最初に、初期化工程S740において、並べ替え部385が、処理装置911を用いて、整数iを0に初期化する。また、並べ替え部385は、処理装置911を用いて、集合Sを、1以上T以下のT個の整数を元とする集合に初期化する。繰り返し工程S741において、並べ替え部385が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、並べ替え部385は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、並べ替え部385は、乱数生成工程S757へ処理を進める。乱数生成工程S757において、乱数生成部303が、処理装置911を用いて、乱数tiを生成する。乱数tiは、0または1から一様ランダムに選択した整数である。乱数tiが0である場合、差分算出部361は、差分算出工程S742aへ処理を進める。乱数tiが1である場合、差分算出部361は、差分算出工程S742bへ処理を進める。差分算出工程S742aにおいて、差分算出部361が、処理装置911を用いて、暗号化特徴ベクトルCのi番目の成分ciに基づいて、N2を法とする整数の乗法における整数ciの逆数ci-1を算出する。差分算出部361は、処理装置911を用いて、算出した逆数ci-1と、暗号化特徴ベクトルC’のi番目の成分c’iとに基づいて、整数c’iと逆数ci-1との積を、整数Nの2乗で割った余りを算出して、暗号化差分ベクトルΔCのi番目の成分Δciとする。差分算出部361は、乱数生成工程S758へ処理を進める。差分算出工程S742bにおいて、差分算出部361が、処理装置911を用いて、暗号化特徴ベクトルC’のi番目の成分c’iに基づいて、N2を法とする整数の乗法における整数c’iの逆数c’i-1を算出する。差分算出部361は、処理装置911を用いて、算出した逆数c’i-1と、暗号化特徴ベクトルCのi番目の成分ciとに基づいて、整数ciと逆数c’i-1との積を、整数Nの2乗で割った余りを算出して、暗号化差分ベクトルΔCのi番目の成分Δciとする。差分算出部361は、乱数生成工程S758へ処理を進める。乱数生成工程S758において、乱数生成部303が、処理装置911を用いて、乱数jiを生成する。乱数jiは、集合Sの元のなかから一様ランダムに選択した整数である。並べ替え部385は、処理装置911を用いて、集合Sの元から、乱数jiを取り除く。第二チャレンジ設定工程S759において、並べ替え部385は、処理装置911を用いて、暗号化差分ベクトルΔCのi番目の成分Δciを、第二チャレンジC^のji番目の整数c^jiにする。並べ替え部385は、繰り返し工程S741に処理を戻す。乱数生成工程S749において、乱数生成部303が、処理装置911を用いて、2つの乱数s1,s2を生成する。暗号化鍵生成工程S752において、暗号化鍵生成部366が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した乱数s1,s2に基づいて、第二チャレンジC^のT1番目の整数c^=s2N1s1NmodN2を算出する。このようにして暗号化ランダム類似度算出部314が算出した第二チャレンジC^は、第二チャレンジ送信部321が復号装置103に対して送信し、復号装置103が受信して処理する。図58は、この実施の形態における復号部404の構成の一例を示す詳細ブロック図である。復号装置103の復号部404は、例えば、逆数算出部481と、復号整数算出部482と、二乗算出部473と、整数結合部485とを有する。逆数算出部481は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、秘密鍵記憶部413が記憶した秘密鍵skである整数λとに基づいて、Nを法とする整数の乗法における整数λの逆数λ-1を算出する。復号整数算出部482は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λと、第二チャレンジ受信部402が受信した第二チャレンジC^と、逆数算出部481が算出した逆数λ-1とに基づいて、T1個の整数zi,z’iは、1以上T以下の整数。を算出する。整数zi,z’は、0以上N未満の整数である。i番目の整数ziiは、1以上T1以下の整数。は、第二チャレンジC^のi番目の整数c^iを復号した整数である。整数z’は、第二チャレンジC^のT1番目の整数c^を復号した整数である。したがって、整数ziは、特徴ベクトルbの成分と特徴ベクトルb’の対応する成分との差を表わす。また、整数z’は、認証装置102の乱数生成部303が生成した乱数s1と等しい。第二チャレンジC^の1番目からT番目までの整数c^iは、暗号化差分ベクトルΔCの成分の順序をランダムに並べ替えたものであるから、復号装置103は、整数ziが特徴ベクトルのどの成分の差であるかがを知ることができない。また、暗号化差分ベクトルΔCの成分Δciは、正負をランダムに変えてあるので、復号装置103は、2つの特徴ベクトルb,b’のうち、その成分が大きいのがどちらかを知ることもできない。二乗算出部473は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、復号整数算出部482が算出したT個の整数ziとに基づいて、二乗値z’iiは、1以上T以下の整数。を算出する。二乗値z’iは、0以上N未満の整数である。i番目の二乗値z’iiは、1以上T以下の整数。は、i番目の整数ziの2乗を、整数Nで割った余りである。整数結合部485は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、復号整数算出部482が算出した整数z’と、二乗算出部473が算出したT個の整数z’iとに基づいて、第二レスポンスZを算出する。第二レスポンスZは、0以上N未満の整数である。整数結合部485が算出する第二レスポンスZは、T個の整数z’iと、整数z’とを合計した総和を、整数Nで割った余りである。第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間のユークリッド距離の二乗Σi[bi-b’i2]と、乱数s1との和に等しい。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間のユークリッド距離の二乗を、一時鍵としての乱数u1で暗号化したものである。図59は、この実施の形態における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図である。第二レスポンス生成工程S716では、復号装置103が、第二チャレンジC^から、第二レスポンスZを生成する。第二レスポンス生成工程S716は、例えば、逆数算出工程S561aと、復号整数算出工程S566aと、初期化工程S560と、繰り返し工程S562と、復号整数算出工程S563aと、二乗算出工程S564と、整数結合工程S565aとを有する。最初に、逆数算出工程S561aにおいて、逆数算出部481が、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λの逆数λ-1を算出する。なお、逆数算出部481は、処理装置911を用いて、あらかじめ例えばセットアップ処理S500で逆数λ-1を算出し、記憶装置914を用いて、算出した逆数λ-1を記憶しておく構成であってもよい。復号整数算出工程S566aにおいて、復号整数算出部482が、処理装置911を用いて、逆数算出工程S561aで逆数算出部481が算出した逆数λ-1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジC^の最後の整数c^を復号して、整数z’を算出する。例えば、復号整数算出部482は、整数c^を整数λで累乗した整数から1を差し引いた整数c^λ-1を整数Nの2乗で割った余りを、Nで割った商yを算出する。復号整数算出部482は、算出した商yと逆数λ-1との積yλ-1をNで割った余りを算出して、整数z’とする。初期化工程S560において、整数結合部485が、処理装置911を用いて、整数iを0に初期化し、第二レスポンスZを、復号整数算出工程S566aで復号整数算出部482が算出した整数z’に初期化する。繰り返し工程S562において、整数結合部485が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二レスポンスZが完成したので、整数結合部485は、第二レスポンス生成工程S716を終了する。整数iがT以下である場合、整数結合部485は、復号整数算出工程S563aへ処理を進める。復号整数算出工程S563aにおいて、復号整数算出部482が、処理装置911を用いて、逆数算出工程S561aで逆数算出部481が算出した逆数λ-1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジC^のi番目の整数c^iを復号して、i番目の整数ziを算出する。例えば、復号整数算出部482は、整数c^iを整数λで累乗した整数から1を差し引いた整数c^iλ-1を整数Nの2乗で割った商yiを算出する。復号整数算出部482は、算出した整数yiと逆数λ-1との積yiλ-1をNで割った余りを算出して、整数ziとする。二乗算出工程S564において、二乗算出部473が、処理装置911を用いて、復号整数算出工程S563aで復号整数算出部482が算出したi番目の整数ziに基づいて、i番目の二乗値z’iを算出する。整数結合工程S565aにおいて、整数結合部485が、処理装置911を用いて、整数Nを法とする整数の加法により、二乗算出工程S564で二乗算出部473が算出したi番目の二乗値z’iを、第二レスポンスZに結合する。整数結合部485は、繰り返し工程S562に処理を戻し、第二チャレンジC^の次の整数を処理する。このようにして復号部404が生成した第二レスポンスZは、第二レスポンス送信部412が認証装置102に対して送信し、認証装置102が受信して処理する。図60は、この実施の形態における平文類似度算出工程S719の処理の流れの一例を示すフローチャート図である。平文類似度算出工程S719では、認証装置102が、第二レスポンスZから、類似度dを算出する。平文類似度算出工程S719は、例えば、整数結合工程S692aを有する。整数結合工程S692aにおいて、認証装置102の平文類似度抽出部315が、処理装置911を用いて、乱数記憶部322が記憶した乱数s1と、第二レスポンス受信部341が受信した第二レスポンスZとに基づいて、類似度dを算出する。類似度dは、0以上N未満の整数である。平文類似度抽出部315が算出する類似度dは、第二レスポンスZから乱数s1を差し引いた差を、Nで割った余りである。平文類似度抽出部315が算出した類似度dに基づいて、判定部306が、2つの特徴ベクトルb,b’が似ているか否かを判定することにより、特徴ベクトルbで表わされる生体情報を持つ人物と、特徴ベクトルb’で表わされる生体情報を持つ人物とが同一人物であるか否かを判定する。判定部306は、類似度dが閾値d0より小さい場合に、2つの特徴ベクトルb,b’が似ていると判定する。図61は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジC^を算出することにより、T個のδj=±bi-b’ii及びjは、1以上T以下の整数。と、1個のδ=s1とを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。また、復号装置103に特徴ベクトルb,b’についての情報が渡らないよう、δjは、正負をランダムに変え、更に、順序もランダムに並べ替える。第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζ=Σi[δi2]δiは、1以上T以下の整数。を算出する。第一項Σi[δi2]は、類似度dであり、第二項δは、暗号化を意味する。すなわち、復号装置103は、類似度dを算出して、δ=s1を使って、暗号化する。この計算は、復号装置103の秘密鍵によって復号された状態で行われるが、第一段階でのランダム化により、復号装置103は、特徴ベクトルb,b’についての情報を得ることができない。第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ-s1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。なお、暗号方式は、Paillier暗号方式に限らず、岡本-高島暗号方式、BGN暗号方式、Gentry暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。実施の形態7.実施の形態7について、図62~図68を用いて説明する。なお、実施の形態1~実施の形態6と共通する部分については、同一の符号を付し、説明を省略する。この実施の形態では、第一チャレンジRのなかに暗号化特徴ベクトルCに由来する比較データbについての情報を埋め込み、証明装置101に、類似度算出の最初の段階の計算をさせる構成について説明する。なお、この実施の形態では、実施の形態6で説明したPaillier暗号方式を使い、実施の形態3と同様、類似度dとして、内積Σi[bib’i]を算出する場合について説明する。図62は、この実施の形態における暗号化乱数生成部304の構成の一例を示す詳細ブロック図である。認証装置102の暗号化乱数生成部304は、例えば、累乗算出部334と、零生成部332と、整数結合部336とを有する。乱数生成部303は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nに基づいて、2T個の乱数R1,i,R2,iiは、1以上T以下の整数。を生成する。乱数生成部303が生成する乱数R1,i,R2,iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうちT個の乱数R1,iiは、1以上T以下の整数。を記憶する。累乗算出部334は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、乱数生成部303が生成したT個の乱数R1,iとに基づいて、累乗ベクトルЯ’を算出する。累乗算出部334が算出する累乗ベクトルЯ’は、0以上N2未満の整数を成分とするT次元のベクトルя’1,я’2,...,я’Tである。累乗算出部334が算出する累乗ベクトルЯ’のi番目の成分я’iiは、1以上T以下の整数。は、暗号化特徴ベクトルCのi番目の成分ciを、i番目の乱数R1,iで累乗した整数を、整数Nの2乗で割った余りである。累乗算出部334が算出する累乗ベクトルЯ’の各成分я’iは、特徴ベクトルbの成分biと、平文としての乱数R1,iとの積を暗号化したものになる。零生成部332は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成したT個の乱数R2,iとに基づいて、暗号化零ベクトルO’を生成する。暗号化零ベクトルO’は、0以上N2未満の整数を成分とするT次元のベクトルo’1,o’2,...,o’Tである。暗号化零ベクトルO’のi番目の成分o’iiは、1以上T以下の整数。は、i番目の乱数R2,iを整数Nで累乗した整数R2,iNを、整数Nの2乗で割った余りである。暗号化零ベクトルO’の各成分o’iは、0を暗号化したものである。整数結合部336は、処理装置911を用いて、累乗算出部334が算出した累乗ベクトルЯ’と、零生成部332が生成した暗号化零ベクトルO’とに基づいて、第一チャレンジRを算出する。第一チャレンジRは、0以上N2未満の整数を成分とするT次元のベクトルR1,R2,...,RTである。第一チャレンジRのi番目の成分Riiは、1以上T以下の整数。は、累乗ベクトルЯ’のi番目の成分я’iと、暗号化零ベクトルO’のi番目の成分o’iとの積を、整数Nの2乗で割った余りである。第一チャレンジRの各成分Riは、特徴ベクトルbの成分biと、平文としての乱数R1,iとの積を暗号化したものになる。図63は、この実施の形態における第一チャレンジ生成工程S701の処理の流れの一例を示すフローチャート図である。第一チャレンジ生成工程S701では、認証装置102が、暗号化特徴ベクトルCに基づいて、第一チャレンジRを生成する。第一チャレンジ生成工程S701は、例えば、初期化工程S729と、繰り返し工程S721と、乱数生成工程S722と、累乗算出工程S724と、零生成工程S725と、整数結合工程S726とを有する。最初に、初期化工程S729において、整数結合部336が、処理装置911を用いて、整数iを0に初期化する。繰り返し工程S721において、整数結合部336が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、整数結合部336は、第一チャレンジ生成工程S701を終了する。整数iがT以下である場合、整数結合部336は、乱数生成工程S722へ処理を進め、第一チャレンジRのi番目の成分Riを生成する。乱数生成工程S722において、乱数生成部303が、処理装置911を用いて、2個の乱数R1,i,R2,iを生成する。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数R1,iを記憶する。累乗算出工程S724において、累乗算出部334が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciと、乱数生成工程S722で乱数生成部303が生成した乱数R1,iとに基づいて、累乗ベクトルЯ’のi番目の成分я’iを算出する。零生成工程S725において、零生成部332が、処理装置911を用いて、乱数生成工程S722で乱数生成部303が生成した乱数R2,iに基づいて、暗号化零ベクトルO’のi番目の成分o’iを算出する。整数結合工程S726において、整数結合部336が、処理装置911を用いて、累乗算出工程S724aで累乗算出部334が算出した累乗ベクトルЯ’のi番目の成分я’iと、零生成工程S725で零生成部332が算出した暗号化零ベクトルO’のi番目の成分o’iとに基づいて、第一チャレンジRのi番目の成分Riを算出する。整数結合部336は、繰り返し工程S721に処理を戻し、第一チャレンジRの次の成分を生成する。このようにして暗号化乱数生成部304が生成した第一チャレンジRは、第一チャレンジ送信部311が証明装置101に対して送信し、証明装置101が受信して処理をする。証明装置101の暗号化データ埋め込み部217は、実施の形態6と同じ構成であるが、第一チャレンジRの意味が異なるため、暗号化データ埋め込み部217が生成する第一レスポンスR’の意味も、実施の形態6とは異なる。すなわち、第一レスポンスR’のi番目の成分R’iiは、1以上T以下の整数。は、特徴ベクトルbのi番目の成分biと、特徴ベクトルb’のi番目の成分b’iと、乱数R1,iとの積を暗号化したものである。認証装置102の暗号化データ抽出部305も、実施の形態6と同じ構成である。暗号化データ抽出部305が生成する暗号化特徴ベクトルC’のi番目の成分c’iiは、1以上T以下の整数。は、特徴ベクトルb’のi番目の成分b’iの暗号化ではなく、2つの特徴ベクトルb,b’のi番目の成分bi,b’iの積bib’iを暗号化したものである。図64は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。認証装置102の暗号化ランダム類似度算出部314が生成する第二チャレンジC^は、0以上N2未満のT1個の整数c^1,c^2,...,c^T,c^からなる。暗号化ランダム類似度算出部314は、例えば、並べ替え部385と、暗号化鍵生成部366とを有する。乱数生成部303は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nに基づいて、2個の乱数s1,s2を生成する。乱数生成部303が生成する乱数s1,s2は、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、1個の乱数s1を記憶する。並べ替え部385は、処理装置911を用いて、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’に基づいて、第二チャレンジC^の一部であるT個の整数c^iiは、1以上T以下の整数。を生成する。整数c^iは、0以上N2未満の整数である。T個の整数c^iは、暗号化特徴ベクトルC’のT個の成分Δciの順序をランダムに並べ替えたものである。暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成した2つの乱数s1,s2とに基づいて、第二チャレンジC^の一部である1個の整数c^を生成する。整数c^は、0以上N2未満の整数である。整数c^は、乱数s1と整数Nとの積に1を加えた整数1s1Nと、乱数s2を整数Nで累乗した整数s2Nとの積を、整数Nの2乗で割った余りである。整数c^は、乱数生成部303が算出した乱数s1を暗号化したものである。図65は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。第二チャレンジ生成工程S712の処理の流れは、実施の形態6とほとんど同じであるが、2つだけ異なる点がある。第一点は、乱数生成工程S757と、2つの差分算出工程S742a,S742bとがなく、繰り返し工程S741で整数iがT以下である場合に、乱数生成工程S758へ処理を進める点である。第二点は、第二チャレンジ設定工程S759の処理である。第二チャレンジ設定工程S759において、並べ替え部385は、処理装置911を用いて、暗号化特徴ベクトルC’のi番目の成分Δciを、第二チャレンジC^のji番目の整数c^jiにする。図66は、この実施の形態における復号部404の構成の一例を示す詳細ブロック図である。復号装置103の復号部404は、例えば、逆数算出部481と、復号整数算出部482と、整数結合部485とを有する。逆数算出部481は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、秘密鍵記憶部413が記憶した秘密鍵skである整数λとに基づいて、Nを法とする整数の乗法における整数λの逆数λ-1を算出する。復号整数算出部482は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λと、第二チャレンジ受信部402が受信した第二チャレンジC^と、逆数算出部481が算出した逆数λ-1とに基づいて、T1個の整数zi,z’iは、1以上T以下の整数。を算出する。整数zi,z’は、0以上N未満の整数である。i番目の整数ziiは、1以上T1以下の整数。は、第二チャレンジC^のi番目の整数c^iを復号した整数である。整数z’は、第二チャレンジC^のT1番目の整数c^を復号した整数である。したがって、整数ziは、特徴ベクトルbの成分と特徴ベクトルb’の対応する成分との積を表わす。また、整数z’は、認証装置102の乱数生成部303が生成した乱数s1と等しい。整数結合部485は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、復号整数算出部482が算出したT1個の整数zi,z’とに基づいて、第二レスポンスZを算出する。第二レスポンスZは、0以上N未満の整数である。整数結合部485が算出する第二レスポンスZは、T個の整数ziと、整数z’とを合計した総和を、整数Nで割った余りである。第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積Σi[bib’i]と、乱数s1との和に等しい。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積を、一時鍵としての乱数s1で暗号化したものである。図67は、この実施の形態における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図である。第二レスポンス生成工程S716の処理の流れは、実施の形態6とほとんど同じであるが、2つだけ異なる点がある。第一点は、二乗算出工程S564がなく、復号整数算出工程S563aの次に、整数結合工程S565aへ処理を進める点である。第二点は、整数結合工程S565aの処理である。整数結合工程S565aにおいて、整数結合部485は、処理装置911を用いて、整数Nを法とする加法により、復号整数算出工程S563aで復号整数算出部482が算出したi番目の整数ziを、第二レスポンスZに結合する。このようにして復号部404が生成した第二レスポンスZは、第二レスポンス送信部412が認証装置102に対して送信し、認証装置102が受信して処理する。認証装置102の平文類似度抽出部315は、実施の形態6と同じ構成である。平文類似度抽出部315は、類似度dとして、2つの特徴ベクトルb,b’の内積Σi[bib’i]を算出する。判定部306は、離散対数算出部373が算出した類似度dが、所定の閾値d0より大きい場合に、2つの特徴ベクトルb,b’が似ていると判定する。これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。図68は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。なお、ρiは、第一レスポンスR’において暗号化されている情報を示す。第一段階は、第二チャレンジ生成工程S712ではなく、第一レスポンス生成工程S707である。第一レスポンス生成工程S707において、証明装置101が、第一チャレンジRから第一レスポンスR’を算出することにより、T個のρi=bib’iを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、証明装置101は、特徴ベクトルbについての情報を得ることができない。第二段階として、第二チャレンジ生成工程S712において、認証装置102が、暗号化特徴ベクトルC’から第二チャレンジC^を算出することにより、T個のδjjは、1以上T以下の整数。と、1個のδ=s1とを算出する。δjは、復号装置103に特徴ベクトルb,b’についての情報が渡らないよう、ρiの順序を入れ換えたものなので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。第三段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζ=Σi[δi]δiは、1以上T以下の整数。を算出する。第一項Σi[δi]は、類似度dであり、第二項δは、暗号化を意味する。すなわち、復号装置103は、類似度dを算出して、δ=s1を使って、暗号化する。この計算は、復号装置103の秘密鍵によって復号された状態で行われるが、第二段階でのランダム化により、復号装置103は、特徴ベクトルb,b’についての情報を得ることができない。第四段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ-s1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。なお、暗号方式は、Paillier暗号方式に限らず、岡本-高島暗号方式、BGN暗号方式、Gentry暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。なお、特徴ベクトルb,b’の各成分の値が、0か1かのいずれかである場合、2つの特徴ベクトルb,b’の成分の積bib’iは、0か1かのいずれかの値になるから、復号装置103の構成は、実施の形態6で説明した構成と同じであってもよい。そうすれば、証明装置101、復号装置103、登録装置104の構成は、実施の形態6と同じになり、認証装置102の構成だけが異なる。したがって、認証装置102を、実施の形態6で説明した構成と、この実施の形態で説明した構成とを切り替えることができる構成とすることにより、生体認証システム100の他の装置に変更を加えることなく、ユークリッド距離と内積との2種類の類似度を算出することができる。実施の形態8.実施の形態8について、図69~図72を用いて説明する。なお、実施の形態1~実施の形態7と共通する部分については、同一の符号を付し、説明を省略する。この実施の形態では、実施の形態7で説明した構成の変形例について説明する。暗号化特徴ベクトルC’は、0以上N2未満の整数を成分とするT次元のベクトルc’1c’2,...,c’Tである。暗号化特徴ベクトルC’のi番目の成分ciiは、1以上T以下の整数。は、特徴ベクトルbのi番目の成分biと、特徴ベクトルb’のi番目の成分b’iとの積bib’iを暗号化したものである。図69は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。認証装置102の暗号化ランダム類似度算出部314は、例えば、撹乱ベクトル生成部362と、整数結合部386とを有する。乱数生成部303は、処理装置911を用いて、2T個の乱数t1,i,t2,iiは、1以上T以下の整数。を生成する。乱数t1,i,t2,iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成したT個の乱数t1,iの合計値s1=Σi[t1,i]を記憶する。なお、乱数記憶部322は、乱数生成部303が生成したT個の乱数t1,iをそのまま記憶する構成であってもよいが、あとで必要になるのは、合計値だけなので、合計値を記憶する構成のほうが、記憶量が少なくて済む。撹乱ベクトル生成部362は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成した2T個の乱数t1,i,t2,iとに基づいて、撹乱ベクトルтを算出する。撹乱ベクトルтは、0以上N2未満の整数を成分とするT次元ベクトルt1,t2,...,tTである。撹乱ベクトルтのi番目の成分tiiは、1以上T以下の整数。は、乱数t1,iと整数Nとの積に1を加えた和1t1,iNと、乱数t2,iを整数Nで累乗した整数t2,iNとの積を、整数Nの2乗で割った余りである。撹乱ベクトルтの各成分tiは、乱数t1,iを暗号化したものである。整数結合部386は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’と、撹乱ベクトル生成部362が算出した撹乱ベクトルтとに基づいて、第二チャレンジC^を生成する。第二チャレンジC^は、T個の整数c^1,c^2,...,c^Tからなる。T個の整数c^iは、0以上N2未満の整数である。第二チャレンジC^のi番目の整数c^iiは、1以上T以下の整数。は、暗号化特徴ベクトルC’のi番目の成分c’iと、撹乱ベクトルтのi番目の成分tiとの積を、整数Nの2乗で割った余りである。第二チャレンジC^の各整数c^iは、暗号化特徴ベクトルC’の成分で暗号化されているbib’iと、乱数t1,iとの和bib’it1,iを暗号化したものである。なお、第二チャレンジC^のT個の整数c^iの順序は、特徴ベクトルb,b’の成分の順序と異なっていてもよい。図70は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。第二チャレンジ生成工程S712では、認証装置102が、暗号化特徴ベクトルC’に基づいて、第二チャレンジC^を生成する。第二チャレンジ生成工程S712は、例えば、初期化工程S740と、繰り返し工程S741と、乱数生成工程S743と、撹乱ベクトル生成工程S744と、整数結合工程S760とを有する。最初に、初期化工程S740において、整数結合部386が、処理装置911を用いて、整数iを0に初期化する。乱数記憶部322が、処理装置911を用いて、整数s1を0に初期化し、記憶装置914を用いて、初期化した整数s1を記憶する。繰り返し工程S741において、整数結合部386が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、整数結合部386は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、整数結合部386は、乱数生成工程S743へ処理を進め、第二チャレンジC^のi番目の整数c^iを生成する。乱数生成工程S743において、乱数生成部303が、処理装置911を用いて、2個の乱数t1,i,t2,iを生成する。乱数記憶部322は、処理装置911を用いて、乱数生成部303が生成した乱数t1,iを、整数s1に加え、記憶装置914を用いて、算出した整数s1を記憶する。撹乱ベクトル生成工程S744において、撹乱ベクトル生成部362が、処理装置911を用いて、乱数生成工程S743で乱数生成部303が生成した2つの乱数t1,i,t2,iに基づいて、撹乱ベクトルтのi番目の成分tiを算出する。整数結合工程S760において、整数結合部386が、処理装置911を用いて、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’のi番目の成分c’iと、撹乱ベクトル生成工程S744で撹乱ベクトル生成部362が算出した撹乱ベクトルтのi番目の成分tiとに基づいて、第二チャレンジC^のi番目の整数c^iを算出する。整数結合部386は、繰り返し工程S741に処理を戻し、第二チャレンジC^の次の整数を生成する。このようにして暗号化ランダム類似度算出部314が算出した第二チャレンジC^は、第二チャレンジ送信部321が復号装置103に対して送信し、復号装置103が受信して処理する。復号装置103の復号部404の構成は、実施の形態7で説明した構成と同様なので、図66を参照して説明する。復号装置103の復号部404は、例えば、逆数算出部481と、復号整数算出部482と、整数結合部485とを有する。逆数算出部481は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、秘密鍵記憶部413が記憶した秘密鍵skである整数λとに基づいて、Nを法とする整数の乗法における整数λの逆数λ-1を算出する。復号整数算出部482は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λと、第二チャレンジ受信部402が受信した第二チャレンジC^と、逆数算出部481が算出した逆数λ-1とに基づいて、T個の整数ziiは、1以上T以下の整数。を算出する。整数ziは、0以上N未満の整数である。i番目の整数ziiは、1以上T1以下の整数。は、第二チャレンジC^のi番目の整数c^iを復号した整数である。整数ziは、2つの特徴ベクトルbの対応する成分bi,b’iの積と、乱数t1,iとの和bib’it1,iと等しい。整数結合部485は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、復号整数算出部482が算出したT個の整数ziとに基づいて、第二レスポンスZを算出する。第二レスポンスZは、0以上N未満の整数である。整数結合部485が算出する第二レスポンスZは、T個の整数ziを合計した総和を、整数Nで割った余りである。第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積Σi[bib’i]と、乱数t1,iの合計値s1=Σi[t1,i]との和に等しい。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積を、一時鍵としての乱数s1で暗号化したものである。図71は、この実施の形態における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図である。第二レスポンス生成工程S716の処理の流れは、実施の形態7とほとんど同じであるが、2つ異なる点がある。第一点として、復号整数算出工程S566a、整数結合工程S568aがなく、逆数算出工程S561aの次に、初期化工程S560を実行する。第二点として、初期化工程S560で、整数結合部485が、処理装置911を用いて、第二レスポンスZを0に初期化する。このようにして復号部404が生成した第二レスポンスZは、第二レスポンス送信部412が認証装置102に対して送信し、認証装置102が受信して処理する。認証装置102の平文類似度抽出部315は、実施の形態6と同じ構成である。平文類似度抽出部315は、類似度dとして、2つの特徴ベクトルb,b’の内積Σi[bib’i]を算出する。判定部306は、離散対数算出部373が算出した類似度dが、所定の閾値d0より大きい場合に、2つの特徴ベクトルb,b’が似ていると判定する。これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。図72は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。第一段階として、第一レスポンス生成工程S707において、証明装置101が、第一チャレンジRから第一レスポンスR’を算出することにより、T個のρi=bib’iを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、証明装置101は、特徴ベクトルbについての情報を得ることができない。第二段階として、第二チャレンジ生成工程S712において、認証装置102が、暗号化特徴ベクトルC’から第二チャレンジC^を算出することにより、T個のδi=ρit1,iiは、1以上T以下の整数。を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’や類似度についての情報を得ることができない。第三段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζ=Σi[δi]iは、1以上T以下の整数。を算出する。この計算は、復号装置103の秘密鍵によって復号された状態で行われるが、復号装置103は、一時鍵s1=Σi[t1,i]を知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵s1で暗号化された状態で行われる。第四段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ-s1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。なお、暗号方式は、Paillier暗号方式に限らず、岡本-高島暗号方式、BGN暗号方式、Gentry暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。実施の形態9.実施の形態9について、図73~図77を用いて説明する。なお、実施の形態1~実施の形態8と共通する部分については、同一の符号を付し、説明を省略する。この実施の形態では、実施の形態7で説明した構成の別の変形例について説明する。暗号化特徴ベクトルC’は、0以上N2未満の整数を成分とするT次元のベクトルc’1c’2,...,c’Tである。暗号化特徴ベクトルC’のi番目の成分ciiは、1以上T以下の整数。は、特徴ベクトルbのi番目の成分biと、特徴ベクトルb’のi番目の成分b’iとの積bib’iを暗号化したものである。図73は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。認証装置102の暗号化ランダム類似度算出部314は、例えば、暗号化鍵生成部366と、整数結合部386とを有する。乱数生成部303は、処理装置911を用いて、2個の乱数s1,s2を生成する。乱数s1,s2は、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数s1を記憶する。暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成した乱数s1,s2とに基づいて、暗号化鍵цを算出する。暗号化鍵цは、0以上N2未満の整数である。暗号化鍵цは、乱数s1と整数Nとの積に1を加えた和1s1Nと、乱数s2を整数Nで累乗した整数s2Nとの積を、整数Nの2乗で割った余りである。暗号化鍵цは、平文としての乱数s1を暗号化したものである。整数結合部386は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’と、暗号化鍵生成部366が算出した暗号化鍵цとに基づいて、第二チャレンジC^を生成する。第二チャレンジC^は、0以上N2未満の整数である。第二チャレンジC^は、暗号化特徴ベクトルC’のT個の成分c’iと、暗号化鍵цとの総積Πi[c’i]цを、整数Nの2乗で割った余りである。第二チャレンジC^は、暗号化特徴ベクトルC’の成分で暗号化されているbib’iの総和すなわち、2つの特徴ベクトルb,b’の内積と、平文としての乱数s1との和Σi[bib’i]s1を暗号化したものである。図74は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。第二チャレンジ生成工程S712では、認証装置102が、暗号化特徴ベクトルC’に基づいて、第二チャレンジC^を生成する。第二チャレンジ生成工程S712は、例えば、乱数生成工程S749と、暗号化鍵生成工程S752と、初期化工程S740と、繰り返し工程S741と、整数結合工程S760とを有する。最初に、乱数生成工程S749において、乱数生成部303が、処理装置911を用いて、2個の乱数s1,s2を生成する。乱数記憶部322は、記憶装置914を用いて、整数s1を記憶する。暗号化鍵生成工程S752において、暗号化鍵生成部366が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した2つの乱数s1,s2に基づいて、暗号化鍵цを算出する。初期化工程S740において、整数結合部386が、処理装置911を用いて、整数iを0に初期化し、第二チャレンジC^を、暗号化鍵生成工程S752で暗号化鍵生成部366が算出した暗号化鍵цに初期化する。繰り返し工程S741において、整数結合部386が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二チャレンジC^が完成したので、整数結合部386は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、整数結合部386は、整数結合工程S760へ処理を進める。整数結合工程S760において、整数結合部386が、処理装置911を用いて、整数Nの2乗を法とする整数の乗法により、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’のi番目の成分c’iを、第二チャレンジC^に結合する。整数結合部386は、繰り返し工程S741に処理を戻す。このようにして暗号化ランダム類似度算出部314が算出した第二チャレンジC^は、第二チャレンジ送信部321が復号装置103に対して送信し、復号装置103が受信して処理する。図75は、この実施の形態における復号部404の構成の一例を示す詳細ブロック図である。復号装置103の復号部404は、例えば、逆数算出部481と、復号整数算出部482とを有する。逆数算出部481は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、秘密鍵記憶部413が記憶した秘密鍵skである整数λとに基づいて、Nを法とする整数の乗法における整数λの逆数λ-1を算出する。復号整数算出部482は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λと、第二チャレンジ受信部402が受信した第二チャレンジC^と、逆数算出部481が算出した逆数λ-1とに基づいて、第二レスポンスZを算出する。第二レスポンスZは、0以上N未満の整数である。第二レスポンスZは、第二チャレンジC^を復号した整数である。第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積Σi[bib’i]と、乱数s1との和に等しい。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積を、一時鍵としての乱数s1で暗号化したものである。図76は、この実施の形態における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図である。第二レスポンス生成工程S716では、復号装置103が、第二チャレンジC^から、第二レスポンスZを生成する。第二レスポンス生成工程S716は、例えば、逆数算出工程S561aと、復号整数算出工程S563aとを有する。最初に、逆数算出工程S561aにおいて、逆数算出部481が、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λの逆数λ-1を算出する。復号整数算出工程S563aにおいて、復号整数算出部482が、処理装置911を用いて、逆数算出工程S561aで逆数算出部481が算出した逆行列λ-1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジC^を復号して、第二レスポンスZを算出する。例えば、復号整数算出部482は、第二チャレンジC^を整数λで累乗した整数から1を差し引いた整数C^λ-1を整数Nの二乗で割った商yを算出する。復号整数算出部482は、算出した商yと逆数λ-1との積yλ-1を整数Nで割った余りを算出して、第二レスポンスZとする。このようにして復号部404が生成した第二レスポンスZは、第二レスポンス送信部412が認証装置102に対して送信し、認証装置102が受信して処理する。認証装置102の平文類似度抽出部315は、実施の形態6と同じ構成である。平文類似度抽出部315は、類似度dとして、2つの特徴ベクトルb,b’の内積Σi[bib’i]を算出する。判定部306は、離散対数算出部373が算出した類似度dが、所定の閾値d0より大きい場合に、2つの特徴ベクトルb,b’が似ていると判定する。これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。図77は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。第一段階として、第一レスポンス生成工程S707において、証明装置101が、第一チャレンジRから第一レスポンスR’を算出することにより、T個のρi=bib’iを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、証明装置101は、特徴ベクトルbについての情報を得ることができない。第二段階として、第二チャレンジ生成工程S712において、認証装置102が、暗号化特徴ベクトルC’から第二チャレンジC^を算出することにより、δ=Σi[bib’i]s1iは、1以上T以下の整数。を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。第三段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζを算出する。復号装置103は、単に復号処理をするだけなので、ζは、δと等しい。復号装置103は、一時鍵s1を知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵s1で暗号化された状態で行われる。第四段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ-s1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。なお、暗号方式は、Paillier暗号方式に限らず、岡本-高島暗号方式、BGN暗号方式、Gentry暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。実施の形態10.実施の形態10について、図78~図81を用いて説明する。なお、実施の形態1~実施の形態9と共通する部分については、同一の符号を付し、説明を省略する。図78は、この実施の形態における画像検索システム110の全体構成の一例を示すシステム構成図である。画像検索システム110は、暗号化されたままの状態で、登録された画像のなかから、指定された画像と似ているものを検索するシステムである。画像検索システム110類似度算出システムは、例えば、端末装置111と、検索装置112と、復号装置103と、登録装置104とを有する。登録装置104は、画像データを入力し、入力した画像データからその画像データが表わす画像の特徴を抽出して、特徴ベクトルbを生成する。登録装置104は、生成した特徴ベクトルbを暗号化して暗号化特徴ベクトルCを生成する。登録装置104は、入力した画像データを暗号化して暗号化画像データを生成する。登録装置104は、暗号化特徴ベクトルCと、暗号化画像データとを検索装置112に登録する。なお、暗号化画像データは、検索装置112とは別の場所に保管し、暗号化特徴ベクトルCと、暗号化画像データの所在を表わすデータとを検索装置112に登録する構成であってもよい。端末装置111は、画像データを入力し、入力した画像データからその画像データが表わす画像の特徴を抽出して、特徴ベクトルb’を生成する。端末装置111は、生成した特徴ベクトルb’を暗号化して暗号化特徴ベクトルC’を生成し、検索装置112に検索を要求する。検索装置112は、登録装置104によって登録された暗号化特徴ベクトルCを複数記憶している。検索装置112は、端末装置111からの検索要求に基づいて、記憶しているそれぞれの暗号化特徴ベクトルCと、端末装置111から送られた暗号化特徴ベクトルC’とに基づいて類似度dを算出する。検索装置112は、算出した類似度dに基づいて、登録された画像のなかから、指定された画像に似ている画像を判定し、判定した画像の暗号化画像データ、もしくは、暗号化画像データの所在を表わすデータを端末装置111に返す。端末装置111、検索装置112、復号装置103、登録装置104のハードウェア構成は、実施の形態1で説明したものと同様である。図79は、この実施の形態における登録装置104の機能ブロックの構成の一例を示すブロック構成図である。登録装置104は、例えば、公開鍵受信部208と、公開鍵記憶部202と、画像入力部209と、特徴ベクトル形成部204と、乱数生成部205と、暗号化データ生成部206と、暗号化データ送信部201と、画像暗号化部226と、暗号化画像送信部228とを有する。公開鍵受信部208公開鍵取得部は、通信装置などの入力装置912を用いて、復号装置103の公開鍵pkを受信する。復号装置103の公開鍵pkは、復号装置103が秘密裡に記憶した秘密鍵skに対応する公開鍵であり、復号装置103の公開鍵pkで暗号化したデータは、復号装置103が記憶した秘密鍵skでなければ復号できない。公開鍵記憶部202は、記憶装置914を用いて、公開鍵受信部208が受信した公開鍵pkを記憶する。画像入力部209は、入力装置912を用いて、登録すべき画像データを入力する。特徴ベクトル形成部204比較データ取得部は、処理装置911を用いて、画像入力部209が入力した画像データから特徴ベクトルb比較データを生成する。特徴ベクトルbは、例えば、整数を成分とするT次元ベクトルである。乱数生成部205は、処理装置911を用いて、特徴ベクトルbや画像データを暗号化するときに使用される乱数を生成する。暗号化データ生成部206比較暗号文生成部は、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵と、特徴ベクトル形成部204が生成した特徴ベクトルbと、乱数生成部205が生成した乱数とに基づいて、暗号化特徴ベクトルC比較暗号文を生成する。暗号化特徴ベクトルCは、暗号文を成分とするT次元のベクトルである。暗号化特徴ベクトルCの各成分は、特徴ベクトルbの各成分を暗号化したものである。暗号化データ送信部201比較暗号文通知部は、暗号化データ生成部206が生成した暗号化特徴ベクトルCを検索装置112に登録するため、通信装置などの出力装置913を用いて、暗号化特徴ベクトルCを検索装置112に対して送信する。画像暗号化部226は、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵と、画像入力部209が入力した画像データと、乱数生成部205が生成した乱数とに基づいて、暗号化画像データを生成する。暗号化画像データは、画像データを暗号化したものである。なお、画像暗号化部226が画像データを暗号化するときに使用する暗号方式は、暗号化データ生成部206が特徴ベクトルbを暗号化するときに使用する暗号方式と同じ暗号方式であってもよいし、異なる暗号方式であってもよい。暗号化画像送信部228は、画像暗号化部226が生成した暗号化画像データを登録するため、通信装置などの出力装置913を用いて、暗号化データ送信部201が送信する暗号化特徴ベクトルCとともに、暗号化画像データを検索装置112に対して送信する。なお、暗号化画像データを検索装置112に登録するのではなく、他の装置に登録する構成であってもよい。また、登録装置104自身が、暗号化画像データを保管する構成であってもよい。その場合、暗号化画像送信部228は、暗号化画像データのURI統一資源識別子など暗号化画像データの所在を表わすデータを、暗号化特徴ベクトルとともに、検索装置112に対して送信する。図80は、この実施の形態における端末装置111の機能ブロックの構成の一例を示すブロック構成図である。端末装置111は、例えば、公開鍵受信部218と、公開鍵記憶部212と、画像入力部219と、特徴ベクトル形成部214と、乱数生成部215と、暗号化データ生成部216と、暗号化データ送信部222と、結果受信部223と、結果出力部224とを有する。公開鍵受信部218公開鍵取得部は、通信装置などの入力装置912を用いて、復号装置103の公開鍵pkを受信する。公開鍵記憶部202は、記憶装置914を用いて、公開鍵受信部218が受信した公開鍵pkを記憶する。画像入力部219は、入力装置912を用いて、類似する画像を探すべき画像データを入力する。特徴ベクトル形成部214対象データ取得部は、処理装置911を用いて、画像入力部219が入力した画像データから特徴ベクトルb’対象データを生成する。特徴ベクトルb’は、例えば、整数を成分とするT次元ベクトルである。乱数生成部215は、処理装置911を用いて、特徴ベクトルb’を暗号化するときに使用される乱数を生成する。暗号化データ生成部216対象暗号文生成部は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵と、特徴ベクトル形成部214が生成した特徴ベクトルb’と、乱数生成部215が生成した乱数とに基づいて、暗号化特徴ベクトルC’対象暗号文を生成する。暗号化特徴ベクトルC’は、暗号文を成分とするT次元のベクトルである。暗号化特徴ベクトルC’の各成分は、特徴ベクトルb’の各成分を暗号化したものである。暗号化データ送信部222対象暗号文通知部は、画像入力部219が入力した画像データに似た画像を検索するため、通信装置などの出力装置913を用いて、暗号化データ生成部216が生成した暗号化特徴ベクトルC’を検索装置112に対して送信する。結果受信部223は、通信装置などの入力装置912を用いて、検索装置112が送信した検索結果を受信する。検索結果は、例えば、画像入力部219が入力した画像データに似た画像の暗号化画像データそのものや、その所在を表わすデータである。結果出力部224は、表示装置などの出力装置913を用いて、結果受信部223が受信した検索結果を出力する。結果出力部224は、例えば、画像入力部219が入力した画像データが表わす画像に似た画像の数を表示する。あるいは、結果出力部224は、暗号化画像データを復号して画像を表示する構成であってもよい。実施の形態1~実施の形態9で説明した証明装置101と異なり、端末装置111は、暗号化特徴ベクトルC’をそのまま送信する。認証システムでは、再送攻撃によるなりすましを防ぐ必要があるのに対し、この実施の形態における画像検索システム110において、端末装置111は、検索結果として暗号化された暗号化画像データを取得できるだけであり、暗号化画像データを復号する権限がなければ、検索された画像を表示することはできないから、再送攻撃を防ぐ必要がない。しかし、実施の形態1~実施の形態9で説明した証明装置101と同じように、端末装置111は、検索装置112から第一チャレンジRを受信し、受信した第一チャレンジRと、特徴ベクトルb’とに基づいて、第一レスポンスR’を生成し、生成した第一レスポンスR’を検索装置112に対して送信する構成であってもよい。図81は、この実施の形態における検索装置112の機能ブロックの構成の一例を示すブロック構成図である。検索装置112は、例えば、公開鍵受信部308と、公開鍵記憶部302と、2つの暗号化データ受信部301,325と、暗号化データ記憶部312と、乱数生成部303と、乱数記憶部322と、暗号化ランダム類似度算出部314と、第二チャレンジ送信部321と、第二レスポンス受信部341と、平文類似度抽出部315と、判定部306と、結果送信部323とを有する。公開鍵受信部308公開鍵取得部は、通信装置などの入力装置912を用いて、復号装置103の公開鍵pkを受信する。公開鍵記憶部302は、記憶装置914を用いて、公開鍵受信部308が受信した公開鍵pkを記憶する。暗号化データ受信部301比較暗号文取得部は、通信装置などの入力装置912を用いて、登録装置104が送信した暗号化特徴ベクトルCを受信する。暗号化データ記憶部312比較暗号文記憶部は、記憶装置914を用いて、暗号化データ受信部301が受信した暗号化特徴ベクトルCを記憶する。暗号化データ記憶部312は、複数の暗号化特徴ベクトルCを、暗号化画像データの所在を表わすデータと対応づけて記憶する。暗号化データ受信部325対象暗号文取得部は、通信装置などの入力装置912を用いて、端末装置111が送信した暗号化特徴ベクトルC’を受信する。乱数生成部303は、処理装置911を用いて、第二チャレンジC^の生成に使用する乱数を生成する。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、平文としての乱数を記憶する。暗号化ランダム類似度算出部314は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCそれぞれについて、暗号化データ受信部325が受信した暗号化特徴ベクトルC’や乱数生成部303が生成した乱数などに基づいて、第二チャレンジC^を生成する。第二チャレンジ送信部321は、通信装置などの出力装置913を用いて、暗号化ランダム類似度算出部314が生成した第二チャレンジC^を復号装置103に対して送信する。第二レスポンス受信部341は、通信装置などの入力装置912を用いて、第二チャレンジ送信部321が送信した第二チャレンジC^に対する応答として、復号装置103が送信した第二レスポンスZを受信する。平文類似度抽出部315は、処理装置911を用いて、乱数記憶部322が記憶した乱数や、第二レスポンス受信部341が受信した第二レスポンスZに基づいて、類似度dを算出する。判定部306は、処理装置911を用いて、平文類似度抽出部315が算出した類似度dに基づいて、端末装置111が入力した画像データが表わす画像に似ている画像を判定する。例えば、類似度dが、ユークリッド距離の二乗など、小さいほど似ていることを表わすものである場合、判定部306は、類似度dが所定の閾値d0より小さい場合に、その画像が、端末装置111が入力した画像データが表わす画像に似ていると判定する。なお、判定部306は、類似度dが閾値d0より小さい画像の数が所定の数より多い場合、類似度dが小さい順に、所定の数の画像だけを、端末装置111が入力した画像データに似ていると判定する構成であってもよい。結果送信部323は、通信装置などの出力装置913を用いて、平文類似度抽出部315が判定した結果を端末装置111に対して送信する。なお、暗号化ランダム類似度算出部314や平文類似度抽出部315などの詳細な構成は、実施の形態1~実施の形態9で説明した認証装置102の暗号化ランダム類似度算出部314や平文類似度抽出部315などと同様である。また、復号装置103の構成も、実施の形態1~実施の形態9で説明した復号装置103の構成と同様である。実施の形態1~実施の形態9で説明した方式で算出した類似度dに基づいて、端末装置111が入力した画像データと似ている画像を探すことにより、暗号化された画像データや特徴ベクトルを復号することなく、画像を検索することができる。なお、検索の対象となるデータは、画像データに限らず、文書データなど他のデータであってもよい。検索対象が文書データである場合、例えば、所定の単語の出現回数を、特徴ベクトルの各成分の値とする構成などが考えられる。以上各実施の形態で説明した構成は、一例であり、他の構成であってもよい。例えば、異なる実施の形態で説明した構成を組み合わせた構成としてもよいし、重要でない部分の構成を他の構成で置き換えた構成としてもよい。例えば、類似度dとして、2つの特徴ベクトルb,b’のユークリッド距離の二乗を算出する構成と、2つの特徴ベクトルb,b’の内積を算出する構成とを説明したが、2つの特徴ベクトルb,b’のハミング距離や、特徴点の一致数など、異なる算出式によって類似度dを算出する構成であってもよい。また、実施の形態1~実施の形態9で説明した生体認証システム100において、ユーザの識別子を使って、認証装置102の暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのなかから、第一レスポンス受信部331が受信した第一レスポンスR’に対応する暗号化特徴ベクトルCを特定し、第二チャレンジC^を生成する構成を説明したが、実施の形態10で説明した画像検索システム110と同じように、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCそれぞれとの間で類似度dを算出する構成であってもよい。その場合、例えば、判定部306は、証明装置101に生体情報を入力したユーザが、最も似ていると判定した暗号化特徴ベクトルCのユーザであると判定する構成であってもよい。また、実施の形態1~実施の形態9では、生体情報に基づいて認証を行う生体認証システム100について説明したが、他の情報に基づいて認証を行う認証システムであってもよい。更に、以上説明した類似度算出方式は、認証システムや検索システムに限らず、他の様々なシステムに応用することができる。以上説明した類似度算出装置認証装置102;検索装置112は、比較データ特徴ベクトルbと対象データ特徴ベクトルb’との類似度dを算出する。類似度算出装置は、データを記憶する記憶装置914と、データを処理する処理装置911と、比較暗号文記憶部暗号化データ記憶部312と、対象暗号文取得部暗号化データ抽出部305;暗号化データ受信部325と、一時鍵生成部乱数生成部303と、類似度途中暗号文算出部暗号化ランダム類似度算出部314と、類似度途中暗号文通知部第二チャレンジ送信部321と、類似度途中復号文取得部第二レスポンス受信部341と、類似度算出部平文類似度抽出部315とを有する。上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置103が記憶した秘密鍵skに対応する公開鍵pkを使った暗号化変換により上記比較データを変換した比較暗号文暗号化特徴ベクトルCを記憶する。上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文暗号化特徴ベクトルC’を取得する。上記一時鍵生成部は、上記処理装置を用いて、一時鍵乱数u1;乱数s1を生成する。上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文第二チャレンジC^を算出する。上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知する。上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文第二レスポンスZを取得する。上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出する。以上説明した類似度算出システム生体認証システム100;画像検索システム110は、上記類似度算出装置認証装置102;検索装置112と、復号装置103とを有する。上記復号装置は、データを記憶する記憶装置914と、データを処理する処理装置911と、秘密鍵記憶部413と、類似度途中暗号文取得部第二チャレンジ受信部402と、類似度途中復号文算出部復号部404と、類似度途中復号文通知部第二レスポンス送信部412とを有する。上記復号装置の秘密鍵記憶部は、上記復号装置の記憶装置を用いて、秘密鍵skを記憶する。上記復号装置の類似度途中暗号文取得部は、上記復号装置の処理装置を用いて、上記類似度算出装置から通知された類似度途中暗号文を取得する。上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の秘密鍵記憶部が記憶した秘密鍵と、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、上記類似度途中復号文を算出する。上記復号装置の類似度途中復号文通知部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中復号文算出部が算出した類似度途中復号文を上記類似度算出装置に対して通知する。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記比較データ特徴ベクトルb及び上記対象データ特徴ベクトルb’は、整数を成分とするT次元ベクトルTは、1以上の整数。である。上記類似度算出装置認証装置102;検索装置112の類似度途中暗号文算出部暗号化ランダム類似度算出部314は、上記類似度算出装置の処理装置911を用いて、上記比較暗号文暗号化特徴ベクトルC及び上記対象暗号文暗号化特徴ベクトルC’が暗号化されたままの状態で、上記比較データと上記対象データとの間の対応する成分の差または積を計算する。上記復号装置103の類似度途中暗号文算出部復号部404は、上記復号装置の処理装置911を用いて、上記秘密鍵skを使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、上記類似度dを計算する。上記類似度算出装置の類似度算出部平文類似度抽出部315は、上記類似度算出装置の処理装置を用いて、上記類似度途中復号文を復号することにより、上記類似度を取得する。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記暗号化変換は、整数0以上q未満の整数;0以上N未満の整数を暗号文ベクトル空間Vにおけるベクトル;有限群Gの元;0以上N2未満の整数に変換する変換である。上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算ベクトル空間Vにおける加法;有限群Gにおける乗法;N2を法とする整数の乗法が計算可能であり、任意の第一の整数x1を変換した暗号文Ex1と、任意の第二の整数x2を変換した暗号文Ex2とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和x1x2を変換した暗号文Ex1x2になる。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記比較データ特徴ベクトルb及び上記対象データ特徴ベクトルb’は、整数を成分bi,b’iとするT次元ベクトルTは、1以上の整数。である。上記比較暗号文暗号化特徴ベクトルCは、上記公開鍵pkを使った上記暗号化変換により、上記比較データの各成分を変換した暗号文ciを成分とするT次元ベクトルである。上記対象暗号文暗号化特徴ベクトルC’は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文c’iを成分とするT次元ベクトルである。上記類似度算出装置認証装置102;検索装置112は、更に、公開鍵記憶部302を有する。上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置914を用いて、上記復号装置103が記憶した秘密鍵skに対応する公開鍵pkを記憶する。上記類似度算出装置の一時鍵生成部乱数生成部303は、上記類似度算出装置の処理装置911を用いて、整数u1をランダムに生成して、上記一時鍵とする。上記類似度算出装置の類似度途中暗号文算出部暗号化ランダム類似度算出部314は、乱数平文生成部撹乱ベクトル生成部362と、第一暗号文算出部ベクトル結合部363と、第二暗号文算出部ベクトル累計部367とを有する。上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数t1,iを成分とするT次元ベクトルをランダムに生成して、乱数平文撹乱ベクトルтとする。上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部暗号化データ記憶部312が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部暗号化データ抽出部305;暗号化データ受信部325が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出する。上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和bi-b’it1,iを、上記公開鍵を使った上記暗号化変換により変換した暗号文c^iを成分とするT次元ベクトルである。上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文c^を算出する。上記第二の類似度途中暗号文は、補正値と、上記一時鍵u1との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文である。上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の2倍と、上記乱数平文の各成分の2乗とを、すべての成分について合計した整数Σi[2t1,ibi-b’it1,i2]である。上記類似度算出装置の類似度途中暗号文通知部第二チャレンジ送信部321は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知する。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記比較データ特徴ベクトルb及び上記対象データ特徴ベクトルb’は、0または1を成分bi,b’iとするT次元ベクトルTは、1以上の整数。である。上記比較暗号文暗号化特徴ベクトルCは、上記公開鍵pkを使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルである。上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分b’iを変換した暗号文を成分とするT次元ベクトルである。上記類似度算出装置認証装置102;検索装置112は、更に、公開鍵記憶部302を有する。上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置914を用いて、上記復号装置103が記憶した秘密鍵skに対応する公開鍵pkを記憶する。上記類似度算出装置の一時鍵生成部乱数生成部303は、上記類似度算出装置の処理装置911を用いて、整数u1をランダムに生成して、上記一時鍵とする。上記類似度算出装置の類似度途中暗号文算出部暗号化ランダム類似度算出部314は、乱数平文生成部撹乱ベクトル生成部362と、第一暗号文算出部ベクトル結合部363と、第二暗号文算出部ベクトル累計部367とを有する。上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分t1,iとするT次元ベクトルをランダムに生成して、乱数平文撹乱ベクトルтとする。上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部暗号化データ記憶部312が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部暗号化データ抽出部305;暗号化データ受信部325が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出する。上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和bi-b’it1,iを、上記公開鍵を使った上記暗号化変換により変換した暗号文c^iを成分とするT次元ベクトルである。上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文c^を算出する。上記第二の類似度途中暗号文は、補正値と、上記一時鍵との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文である。上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の2倍と、上記乱数平文の各成分の2乗と、上記比較データの各成分と、上記対象データの各成分とを、すべての成分について合計した整数Σi[2t1,ibi-b’it1,i2bib’i]である。上記類似度算出装置の類似度途中暗号文通知部第二チャレンジ送信部321は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知する。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記比較データ特徴ベクトルb及び上記対象データ特徴ベクトルb’は、整数を成分bi,b’iとするT次元ベクトルTは、1以上の整数。である。上記比較暗号文暗号化特徴ベクトルCは、上記公開鍵pkを使った上記暗号化変換により、上記比較データの各成分を変換した暗号文ciを成分とするT次元ベクトルである。上記対象暗号文暗号化特徴ベクトルC’は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文c’iを成分とするT次元ベクトルである。上記類似度算出装置認証装置102;検索装置112は、更に、公開鍵記憶部302を有する。上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置914を用いて、上記復号装置103が記憶した秘密鍵skに対応する公開鍵psを記憶する。上記類似度算出装置の一時鍵生成部乱数生成部303は、上記類似度算出装置の処理装置を用いて、整数s1をランダムに生成して、上記一時鍵とする。上記類似度算出装置の類似度途中暗号文算出部は、第一暗号文算出部差分算出部361,並べ替え部385と、第二暗号文算出部暗号化鍵生成部366とを有する。上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部暗号化データ記憶部312が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部暗号化データ抽出部305;暗号化データ受信部325が取得した対象暗号文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出する。上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差bi-b’iを、上記公開鍵を使った上記暗号化変換により変換した暗号文c^iを成分とするT次元ベクトルである。上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文c^を、第二の類似度途中暗号文とする。上記類似度算出装置の類似度途中暗号文通知部第二チャレンジ送信部321は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知する。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記類似度算出装置認証装置102;検索装置112の第一暗号文算出部差分算出部361,並べ替え部385は、上記類似度算出装置の処理装置911を用いて、上記比較データ特徴ベクトルbの成分から上記対象データ特徴ベクトルb’の対応する成分を差し引いた差を上記公開鍵pkを使った上記暗号化変換により変換した暗号文、及び、上記対象データの成分から上記比較データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文のうちから、各成分ごとにランダムに選択した暗号文を成分とし、成分の順序をランダムに入れ換えたT次元ベクトルを、上記第一の類似度途中暗号文とする。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記復号装置103の類似度途中復号文算出部復号部404は、上記復号装置の処理装置911を用いて、上記復号装置の類似度途中暗号文取得部第二チャレンジ受信部402が取得した2つの類似度途中暗号文第二チャレンジC^に基づいて、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個zは、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。結合した元を算出して、上記類似度途中復号文第二レスポンスZとする。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記比較データ特徴ベクトルb及び上記対象データ特徴ベクトルb’は、整数を成分bi,b’iとするT次元ベクトルTは、1以上の整数。である。上記比較暗号文暗号化特徴ベクトルCは、上記公開鍵pkを使った上記暗号化変換により、上記比較データの各成分を変換した暗号文ciを成分とするT次元ベクトルである。上記対象暗号文暗号化特徴ベクトルC’は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文c’iを成分とするT次元ベクトルである。上記類似度算出装置認証装置102;検索装置112は、更に、公開鍵記憶部302を有する。上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置914を用いて、上記復号装置103が記憶した秘密鍵skに対応する公開鍵pkを記憶する。上記類似度算出装置の一時鍵生成部乱数生成部303は、上記類似度算出装置の処理装置911を用いて、整数s1をランダムに生成して、上記一時鍵とする。上記類似度算出装置の類似度途中暗号文算出部暗号化ランダム類似度算出部314は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部暗号化データ記憶部312が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部暗号化データ抽出部305;暗号化データ受信部325が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記暗号文の演算を使って、上記類似度途中暗号文第二チャレンジC^を算出する。上記類似度途中暗号文は、合計値と上記一時鍵との和または差を、上記公開鍵を使った暗号化変換により変換した暗号文である。上記合計値は、上記比較データの各成分と上記対象データの対応する成分との差の二乗、または、上記比較データの各成分と上記対象データの対応する成分との積を、すべての成分について合計した整数Σi[bi-b’i2];Σi[bib’i]である。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記暗号化変換は、0以上q未満qは、素数。の整数を、ベクトル空間Vにおけるn次元ベクトルnは、2以上の整数。である暗号文に変換する変換である。上記ベクトル空間は、位数qの巡回群n個の直積である。上記暗号文の演算は、上記ベクトル空間におけるベクトルの加法である。上記公開鍵pkは、上記ベクトル空間の基底であるランダム基底Bを含む。上記暗号化変換は、0以上q未満の整数xを、上記ランダム基底の第一のベクトルь1のx倍と、上記ランダム基底の他のベクトルьjの乱数倍とを合計したベクトルに変換する変換である。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記暗号化変換は、0以上N未満Nは、互いに異なる2つの素数p,qの積。の整数を、位数Nの有限群Gの元である暗号文に変換する変換である。上記暗号文の演算は、上記有限群における群演算である。上記公開鍵pkは、上記有限群の生成元gと、上記有限群の元であって位数が上記素数pである撹乱元hとを含む。上記暗号化変換は、0以上N未満の整数xを、上記有限群における群演算により、x個の上記生成元と、ランダムな数の上記撹乱元とを結合した元に変換する変換である。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記暗号化変換は、0以上N未満Nは、互いに異なる2つの素数p,qの積。の整数を、0以上N2未満の整数である暗号文に変換する変換である。上記暗号文の演算は、N2を法とする整数の乗法である。上記暗号化変換は、0以上N未満の整数xを、整数xと整数Nとの積に1を加えた和と、ランダムな数のN乗との積を、N2で割った余りに変換する変換である。以上説明した類似度算出システム生体認証システム100;画像検索システム110は、更に、暗号化装置証明装置101;端末装置111を有する。上記暗号化装置は、データを記憶する記憶装置914と、データを処理する処理装置911と、公開鍵記憶部212と、対象データ取得部特徴ベクトル形成部214と、一時公開鍵取得部第一チャレンジ受信部211と、対象二重暗号文算出部暗号化データ埋め込み部217と、対象二重暗号文通知部第一レスポンス送信部221とを有する。上記暗号化装置の公開鍵記憶部は、上記暗号化装置の記憶装置を用いて、上記復号装置103が記憶した秘密鍵skに対応する公開鍵pkを記憶する。上記暗号化装置の対象データ取得部は、上記暗号化装置の処理装置を用いて、対象データ特徴ベクトルb’を取得する。上記暗号化装置の一時公開鍵取得部は、上記暗号化装置の処理装置を用いて、上記類似度算出装置認証装置102;検索装置112から通知された一時公開鍵第一チャレンジRを取得する。上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵と、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵とに基づいて、上記公開鍵と上記一時公開鍵とを使った第二の暗号化変換により上記対象データを変換することにより、対象二重暗号文第一レスポンスR’を算出する。上記暗号化装置の対象二重暗号文通知部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の対象二重暗号文算出部が算出した対象二重暗号文を上記類似度算出装置に対して通知する。上記類似度算出装置は、更に、一時秘密鍵生成部乱数生成部303、暗号化乱数生成部304と、一時公開鍵通知部第一チャレンジ送信部311と、対象二重暗号文取得部第一レスポンス受信部331とを有する。上記類似度算出装置の一時秘密鍵生成部は、上記類似度算出装置の処理装置911を用いて、一時秘密鍵R1,iと、上記一時秘密鍵に対応する一時公開鍵第一チャレンジRとを生成する。上記類似度算出装置の一時公開鍵通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時公開鍵を上記暗号化装置に対して通知する。上記類似度算出装置の対象二重暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記暗号化装置から通知された対象二重暗号文を取得する。上記類似度算出装置の対象暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵と、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使った第二の復号変換により上記対象二重暗号文を変換することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文暗号化特徴ベクトルC’を算出する。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記比較データ特徴ベクトルb及び上記対象データ特徴ベクトルb’は、整数を成分bi,b’iとするT次元ベクトルTは、1以上の整数。である。上記類似度算出装置認証装置102;検索装置112の一時秘密鍵生成部乱数生成部303、暗号化乱数生成部304は、上記類似度算出装置の処理装置911を用いて、上記類似度算出装置の比較暗号文記憶部暗号化データ記憶部312が記憶した比較暗号文暗号化特徴ベクトルCに基づいて、上記比較データについての暗号化された情報を含む一時公開鍵第一チャレンジRを生成する。上記暗号化装置証明装置101;端末装置111の対象二重暗号文算出部暗号化データ埋め込み部217は、上記暗号化装置の処理装置911を用いて、上記一時公開鍵を使った上記第二の暗号化変換により、上記対象データの成分と上記比較データの対応する成分との積bib’iについての暗号化された情報を含む対象二重暗号文第一レスポンスR’を算出する。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記暗号化変換は、整数0以上q未満の整数;0以上N未満の整数を暗号文ベクトル空間Vにおけるベクトル;有限群Gの元;0以上N2未満の整数に変換する変換である。上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算ベクトル空間Vにおける加法;有限群Gにおける乗法;N2を法とする整数の乗法が計算可能であり、任意の第一の整数x1を変換した暗号文Ex1と、任意の第二の整数x2を変換した暗号文Ex2とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和x1x2を変換した暗号文Ex1x2になる。上記対象データ特徴ベクトルb’は、整数を成分とするT次元ベクトルTは、1以上の整数。である。上記類似度算出装置認証装置102;検索装置112は、更に、公開鍵記憶部302を有する。上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置914を用いて、上記復号装置103が記憶した秘密鍵skに対応する公開鍵pkを記憶する。上記類似度算出装置の一時公開鍵生成部乱数生成部303;暗号化乱数生成部304は、上記類似度算出装置の処理装置911を用いて、整数R1,iを成分とするT次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、生成した一時秘密鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時秘密鍵の各成分を変換した暗号文Riを成分とするT次元ベクトルを算出して、上記一時公開鍵第一チャレンジRとする。上記暗号化装置証明装置101;端末装置111の対象二重暗号文算出部暗号化データ埋め込み部217は、上記暗号化装置の処理装置911を用いて、上記暗号化装置の公開鍵記憶部212が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文oiを成分とするT次元ベクトルをランダムに生成して、零暗号文暗号化零ベクトルOとし、上記暗号化装置の対象データ取得部特徴ベクトル形成部214が取得した対象データと、上記暗号化装置の一時公開鍵取得部第一チャレンジ受信部211が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分b’i個b’iは、上記対象データの対応する成分である整数。と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記対象二重暗号文第一レスポンスR’とする。上記類似度算出装置の対象暗号文取得部暗号化データ抽出部305は、一時復号鍵算出部逆数算出部351と、対象暗号文算出部スカラー倍算出部352とを有する。上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数κiを成分とするT次元ベクトルを算出して、一時復号鍵とする。上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部第一レスポンス受信部331が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分R’iをRi-1個Ri-1は、上記一時復号鍵の対応する成分である逆数。結合した暗号文を成分とするT次元ベクトルを算出して、上記対象暗号文暗号化特徴ベクトルC’とする。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記暗号化変換は、整数0以上q未満の整数;0以上N未満の整数を暗号文ベクトル空間Vにおけるベクトル;有限群Gの元;0以上N2未満の整数に変換する変換である。上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算ベクトル空間Vにおける加法;有限群Gにおける乗法;N2を法とする整数の乗法が計算可能である。任意の第一の整数x1を変換した暗号文Ex1と、任意の第二の整数x2を変換した暗号文Ex2とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和x1x2を変換した暗号文Ex1x2になる。上記比較データ特徴ベクトルb及び上記対象データ特徴ベクトルb’は、整数を成分bi,b’iとするT次元ベクトルTは、1以上の整数。である。上記比較暗号文暗号化特徴ベクトルCは、上記公開鍵pkを使った上記暗号化変換により、上記比較データの各成分を変換した暗号文ciを成分とするT次元ベクトルである。上記類似度算出装置認証装置102;検索装置112は、更に、公開鍵記憶部302を有する。上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置914を用いて、上記復号装置103が記憶した秘密鍵skに対応する公開鍵pkを記憶する。上記類似度算出装置の一時公開鍵生成部乱数生成部303;暗号化乱数生成部304は、上記類似度算出装置の処理装置911を用いて、整数R1,iを成分とするT次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文o’iを成分とするT次元ベクトルをランダムに生成して、零暗号文暗号化零ベクトルO’とし、上記類似度算出装置の比較暗号文記憶部暗号化データ記憶部312が記憶した比較暗号文と、生成した一時秘密鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記比較暗号文の各成分Ri個Riは、上記一時秘密鍵の対応する成分である整数。と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記一時公開鍵第一チャレンジRとする。上記暗号化装置証明装置101;端末装置111の対象二重暗号文算出部暗号化データ埋め込み部217は、上記暗号化装置の処理装置911を用いて、上記暗号化装置の公開鍵記憶部212が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文oiを成分とするT次元ベクトルをランダムに生成して、零暗号文暗号化零ベクトルOとし、上記暗号化装置の対象データ取得部特徴ベクトル形成部214が取得した対象データと、上記暗号化装置の一時公開鍵取得部第一チャレンジ受信部211が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分b’i個b’iは、上記対象データの対応する成分である整数。と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記対象二重暗号文第一レスポンスR’とする。上記類似度算出装置の対象暗号文取得部暗号化データ抽出部305は、一時復号鍵算出部逆数算出部351と、対象暗号文算出部累乗算出部353とを有する。上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数κiを成分とするT次元ベクトルを算出して、一時復号鍵とする。上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部第一チャレンジ送信部311が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分をRi-1個Ri-1は、上記一時復号鍵の対応する成分である逆数。結合した暗号文を成分とするT次元ベクトルを算出して、上記対象暗号文暗号化特徴ベクトルC’とする。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記類似度算出装置認証装置102;検索装置112の類似度途中暗号文算出部暗号化ランダム類似度算出部314は、乱数平文生成部暗号化鍵生成部366と、暗号文算出部整数結合部386とを有する。上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置911を用いて、整数t1,iを成分とするT次元ベクトルをランダムに生成して、乱数平文撹乱ベクトルтとする。上記類似度算出装置の一時鍵生成部乱数記憶部322は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の乱数平文生成部が生成した乱数平文の成分の総和Σi[t1,i]を算出し、算出した総和を上記一時鍵とする。上記類似度算出装置の暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象暗号文取得部暗号化データ抽出部305が取得した対象暗号文暗号化特徴ベクトルC’と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算により、上記対象暗号文の各成分と、上記乱数平文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、類似度途中暗号文第二チャレンジC^とする。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記類似度算出装置認証装置102;検索装置112の一時鍵生成部乱数生成部303は、上記類似度算出装置の処理装置911を用いて、整数s1をランダムに生成して、上記一時鍵とする。上記類似度算出装置の類似度途中暗号文算出部暗号化ランダム類似度算出部314は、第一暗号文算出部並べ替え部385と、第二暗号文算出部暗号化鍵生成部366とを有する。上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象暗号文取得部暗号化データ抽出部305が取得した対象暗号文暗号化特徴ベクトルC’に基づいて、上記対象暗号文の成分の順序をランダムに入れ換えたT次元ベクトルを算出して、第一の類似度途中暗号文とする。上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部302が記憶した公開鍵pkと、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文を算出して、第二の類似度途中暗号文とする。上記類似度算出装置の類似度途中暗号文通知部第二チャレンジ送信部321は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置103に対して通知する。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記復号装置103の類似度途中復号文算出部復号部404は、上記復号装置の処理装置911を用いて、上記復号装置の類似度途中暗号文取得部第二チャレンジ受信部402が取得した2つの類似度途中暗号文に基づいて、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個zは、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。結合した元を算出して、上記類似度途中復号文第二レスポンスZとする。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記類似度算出装置認証装置102;検索装置112の一時鍵生成部乱数生成部303は、上記類似度算出装置の処理装置911を用いて、整数s1をランダムに生成して、上記一時鍵とする。上記類似度算出装置の類似度途中暗号文算出部暗号化ランダム類似度算出部314は、上記類似度算出装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部302が記憶した公開鍵pkと、上記類似度算出装置の対象暗号文取得部暗号化データ抽出部305が取得した対象暗号文暗号化特徴ベクトルC’と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により上記一時鍵を変換した暗号文と、上記対象暗号文のT個の成分とを、上記暗号文の演算により結合した暗号文を算出して、上記類似度途中暗号文第二チャレンジC^とする。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記復号装置103の類似度途中復号文算出部復号部404は、上記復号装置の処理装置911を用いて、上記復号装置の類似度途中暗号文取得部第二チャレンジ受信部402が取得した類似度途中暗号文第二チャレンジC^に基づいて、上記類似度途中暗号文を復号して得られる整数、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個zは、上記類似度途中暗号文を復号して得られる整数。結合した元を算出して、上記類似度途中復号文第二レスポンスZとする。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記類似度途中復号文第二レスポンスZは、整数である。上記類似度算出装置認証装置102;検索装置112の一時鍵生成部乱数生成部303は、上記類似度算出装置の処理装置911を用いて、整数u1;s1をランダムに生成して、上記一時鍵とする。上記類似度算出装置の類似度算出部平文類似度抽出部315は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部第二レスポンス受信部341が取得した類似度途中復号文とに基づいて、上記一時鍵と、上記類似度途中復号文との和または差を算出して、上記類似度dとする。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記類似度途中復号文第二レスポンスZは、所定の有限群GTの元である。上記類似度算出装置の一時鍵生成部乱数生成部303は、上記類似度算出装置の処理装置911を用いて、整数u1;s1をランダムに生成して、上記一時鍵とする。上記類似度算出装置の類似度算出部平文類似度抽出部315は、類似度復号文算出部元結合部372と、離散対数算出部373とを有する。上記類似度算出装置の類似度復号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部第二レスポンス受信部341が取得した類似度途中復号文とに基づいて、上記所定の有限群の群演算により、上記所定の有限群の所定の元eь1,ь1;πu個uは、上記一時鍵である整数。と、上記類似度途中復号文とを結合した元を算出して、類似度復号文復号類似度元Z’とする。上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の類似度復号文が算出した類似度復号文に基づいて、上記所定の有限群の群演算により、上記所定の元を何個結合したら、上記類似度復号文と一致するかを算出して、上記類似度dとする。以上説明した類似度算出システム生体認証システム100;画像検索システム110において、上記類似度算出装置認証装置102;検索装置112の離散対数算出部373は、上記類似度算出装置の処理装置911を用いて、上記類似度dが、所定の範囲内の整数である場合に、上記類似度を算出し、上記類似度が、上記所定の範囲外である場合に、上記類似度が上記所定の範囲外であることを判定する。以上説明した類似度算出システム生体認証システム100;画像検索システム110は、更に、登録装置104を有する。上記登録装置は、データを記憶する記憶装置914と、データを処理する処理装置911と、公開鍵記憶部202と、比較データ取得部特徴ベクトル形成部204と、比較暗号文算出部暗号化データ生成部206と、比較暗号文通知部暗号化データ送信部201とを有する。上記登録装置の公開鍵記憶部は、上記登録装置の記憶装置を用いて、上記復号装置103が記憶した秘密鍵skに対応する公開鍵pkを記憶する。上記登録装置の比較データ取得部は、上記登録装置の処理装置を用いて、比較データ特徴ベクトルbを取得する。上記登録装置の比較暗号文算出部は、上記登録装置の処理装置を用いて、上記登録装置の公開鍵記憶部が記憶した公開鍵と、上記登録装置の比較データ取得部が取得した比較データとに基づいて、上記公開鍵を使った暗号化変換により上記比較データを変換することにより、比較暗号文暗号化特徴ベクトルCを算出する。上記登録装置の比較暗号文通知部は、上記登録装置の処理装置を用いて、上記登録装置の比較暗号文算出部が算出した比較暗号文を上記類似度算出装置認証装置102;検索装置112に対して通知する。上記類似度算出装置は、更に、比較暗号文取得部暗号化データ受信部301を有する。上記類似度算出装置の比較暗号文取得部は、上記類似度算出装置の処理装置911を用いて、上記登録装置から通知された比較暗号文を取得する。上記類似度算出装置の比較暗号文記憶部暗号化データ記憶部312は、上記類似度算出装置の記憶装置914を用いて、上記類似度算出装置の比較暗号文取得部が取得した比較暗号文を記憶する。以上説明した類似度算出装置及び類似度算出システム及びコンピュータプログラム及び類意度算出方法によれば、データが暗号化されたままの状態で、データ間の類似度を算出することができるとともに、その過程で、元のデータについての情報や、なりすましに利用される情報などが漏れるのを防ぐことができる。"