(57)【要約】  暗号化ランダム類似度算出部３１４（類似度途中暗号文算出部）は、復号装置の公開鍵ｐｋを使って暗号化された暗号化特徴ベクトルＣ（比較暗号文）と、復号装置の公開鍵ｐｋを使って暗号化された暗号化特徴ベクトルＣ’（対象暗号文）と、乱数生成部３０３（一時鍵生成部）が生成した乱数（一時鍵）とに基づいて、２つの暗号化特徴ベクトルＣ，Ｃ’が暗号化されたままの状態で、類似度算出の第一段階の計算をし、第二チャレンジＣ＾を算出する。復号装置が、復号装置の秘密鍵ｓｋで、第二チャレンジＣ＾を復号し、復号した結果が一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、第二レスポンスＺを算出する。平文類似度抽出部３１５（類似度算出部）は、一時鍵で第二レスポンスＺを復号することにより、類似度ｄを算出する。
2012114452.tif 000002
【特許請求の範囲】
【請求項１】
比較データと対象データとの類似度を算出する類似度算出装置において、
データを記憶する記憶装置と、データを処理する処理装置と、比較暗号文記憶部と、対象暗号文取得部と、一時鍵生成部と、類似度途中暗号文算出部と、類似度途中暗号文通知部と、類似度途中復号文取得部と、類似度算出部とを有し、
上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、
上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、
上記一時鍵生成部は、上記処理装置を用いて、一時鍵を生成し、
上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文を算出し、
上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知し、
上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文を取得し、
上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする類似度算出装置。
【請求項２】
上記類似度算出装置は、更に、一時秘密鍵生成部と、対象二重暗号文取得部とを有し、
上記一時秘密鍵生成部は、上記処理装置を用いて、一時秘密鍵と、上記一時秘密鍵に対応する一時公開鍵とを生成し、
上記対象二重暗号文取得部は、上記処理装置を用いて、上記一時秘密鍵生成部が生成した一時公開鍵を使って暗号化された対象二重暗号文を取得し、
上記対象暗号文取得部は、上記処理装置を用いて、上記一時秘密鍵記憶部が記憶した一時秘密鍵と、上記対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使って上記対象二重暗号文を復号することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得することを特徴とする請求項１に記載の類似度算出装置。
【請求項３】
請求項１に記載の類似度算出装置と、復号装置とを有し、
上記復号装置は、データを記憶する記憶装置と、データを処理する処理装置と、秘密鍵記憶部と、類似度途中暗号文取得部と、類似度途中復号文算出部と、類似度途中復号文通知部とを有し、
上記復号装置の秘密鍵記憶部は、上記復号装置の記憶装置を用いて、秘密鍵を記憶し、
上記復号装置の類似度途中暗号文取得部は、上記復号装置の処理装置を用いて、上記類似度算出装置から通知された類似度途中暗号文を取得し、
上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の秘密鍵記憶部が記憶した秘密鍵と、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、上記類似度途中復号文を算出し、
上記復号装置の類似度途中復号文通知部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中復号文算出部が算出した類似度途中復号文を上記類似度算出装置に対して通知することを特徴とする類似度算出システム。
【請求項４】
上記比較データ及び上記対象データは、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記類似度算出装置の類似度途中暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、上記比較データと上記対象データとの間の対応する成分の差または積を計算し、
上記復号装置の類似度途中暗号文算出部は、上記復号装置の処理装置を用いて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、上記類似度を計算し、
上記類似度算出装置の類似度算出部は、上記類似度算出装置の処理装置を用いて、上記類似度途中復号文を復号することにより、上記類似度を取得することを特徴とする請求項３に記載の類似度算出システム。
【請求項５】
上記暗号化変換は、整数を暗号文に変換する変換であって、上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算が計算可能であり、任意の第一の整数を変換した暗号文と、任意の第二の整数を変換した暗号文とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和を変換した暗号文になることを特徴とする請求項３に記載の類似度算出システム。
【請求項６】
上記比較データ及び上記対象データは、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度途中暗号文算出部は、乱数平文生成部と、第一暗号文算出部と、第二暗号文算出部とを有し、
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするＴ次元ベクトルをランダムに生成して、乱数平文とし、
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出し、上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文を算出し、上記第二の類似度途中暗号文は、補正値と、上記一時鍵との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文であり、上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の２倍と、上記乱数平文の各成分の２乗とを、すべての成分について合計した整数であり、
上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項５に記載の類似度算出システム。
【請求項７】
上記比較データ及び上記対象データは、０または１を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度途中暗号文算出部は、乱数平文生成部と、第一暗号文算出部と、第二暗号文算出部とを有し、
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするＴ次元ベクトルをランダムに生成して、乱数平文とし、
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出し、上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文を算出し、上記第二の類似度途中暗号文は、補正値と、上記一時鍵との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文であり、上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の２倍と、上記乱数平文の各成分の２乗と、上記比較データの各成分と、上記対象データの各成分とを、すべての成分について合計した整数であり、
上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項５に記載の類似度算出システム。
【請求項８】
上記比較データ及び上記対象データは、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度途中暗号文算出部は、第一暗号文算出部と、第二暗号文算出部とを有し、
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出し、上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差を、上記公開鍵を使った上記暗号化変換により変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文を、第二の類似度途中暗号文とし、
上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項５に記載の類似度算出システム。
【請求項９】
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記比較データの成分から上記対象データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文、及び、上記対象データの成分から上記比較データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文のうちから、各成分ごとにランダムに選択した暗号文を成分とし、成分の順序をランダムに入れ換えたＴ次元ベクトルを、上記第一の類似度途中暗号文とすることを特徴とする請求項８に記載の類似度算出システム。
【請求項１０】
上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中暗号文取得部が取得した２つの類似度途中暗号文に基づいて、上記第一の類似度途中暗号文のＴ個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりｚ個（ｚは、上記第一の類似度途中暗号文のＴ個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。）結合した元を算出して、上記類似度途中復号文とすることを特徴とする請求項６乃至請求項９のいずれかに記載の類似度算出システム。
【請求項１１】
上記比較データ及び上記対象データは、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度途中暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記暗号文の演算を使って、上記類似度途中暗号文を算出し、上記類似度途中暗号文は、合計値と上記一時鍵との和または差を、上記公開鍵を使った暗号化変換により変換した暗号文であり、上記合計値は、上記比較データの各成分と上記対象データの対応する成分との差の二乗、または、上記比較データの各成分と上記対象データの対応する成分との積を、すべての成分について合計した整数であることを特徴とする請求項５に記載の類似度算出システム。
【請求項１２】
上記暗号化変換は、０以上ｑ未満（ｑは、素数。）の整数を、ベクトル空間におけるｎ次元ベクトル（ｎは、２以上の整数。）である暗号文に変換する変換であり、
上記ベクトル空間は、位数ｑの巡回群ｎ個の直積であり、
上記暗号文の演算は、上記ベクトル空間におけるベクトルの加法であり、
上記公開鍵は、上記ベクトル空間の基底であるランダム基底を含み、
上記暗号化変換は、０以上ｑ未満の整数ｘを、上記ランダム基底の第一のベクトルのｘ倍と、上記ランダム基底の他のベクトルの乱数倍とを合計したベクトルに変換する変換であることを特徴とする請求項５に記載の類似度算出システム。
【請求項１３】
上記暗号化変換は、０以上Ｎ未満（Ｎは、互いに異なる２つの素数ｐ，ｑの積。）の整数を、位数Ｎの有限群の元である暗号文に変換する変換であり、
上記暗号文の演算は、上記有限群における群演算であり、
上記公開鍵は、上記有限群の生成元と、上記有限群の元であって位数が上記素数ｐである撹乱元とを含み、
上記暗号化変換は、０以上Ｎ未満の整数ｘを、上記有限群における群演算により、ｘ個の上記生成元と、ランダムな数の上記撹乱元とを結合した元に変換する変換であることを特徴とする請求項５に記載の類似度算出システム。
【請求項１４】
上記暗号化変換は、０以上Ｎ未満（Ｎは、互いに異なる２つの素数ｐ，ｑの積。）の整数を、０以上Ｎ２未満の整数である暗号文に変換する変換であり、
上記暗号文の演算は、Ｎ２を法とする整数の乗法であり、
上記暗号化変換は、０以上Ｎ未満の整数ｘを、整数ｘと整数Ｎとの積に１を加えた和と、ランダムな数のＮ乗との積を、Ｎ２で割った余りに変換する変換であることを特徴とする請求項５に記載の類似度算出システム。
【請求項１５】
上記類似度算出システムは、更に、暗号化装置を有し、
上記暗号化装置は、データを記憶する記憶装置と、データを処理する処理装置と、公開鍵記憶部と、対象データ取得部と、一時公開鍵取得部と、対象二重暗号文算出部と、対象二重暗号文通知部とを有し、
上記暗号化装置の公開鍵記憶部は、上記暗号化装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記暗号化装置の対象データ取得部は、上記暗号化装置の処理装置を用いて、対象データを取得し、
上記暗号化装置の一時公開鍵取得部は、上記暗号化装置の処理装置を用いて、上記類似度算出装置から通知された一時公開鍵を取得し、
上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵と、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵とに基づいて、上記公開鍵と上記一時公開鍵とを使った第二の暗号化変換により上記対象データを変換することにより、対象二重暗号文を算出し、
上記暗号化装置の対象二重暗号文通知部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の対象二重暗号文算出部が算出した対象二重暗号文を上記類似度算出装置に対して通知し、
上記類似度算出装置は、更に、一時秘密鍵生成部と、一時公開鍵通知部と、対象二重暗号文取得部とを有し、
上記類似度算出装置の一時秘密鍵生成部は、上記類似度算出装置の処理装置を用いて、一時秘密鍵と、上記一時秘密鍵に対応する一時公開鍵とを生成し、
上記類似度算出装置の一時公開鍵通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時公開鍵を上記暗号化装置に対して通知し、
上記類似度算出装置の対象二重暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記暗号化装置から通知された対象二重暗号文を取得し、
上記類似度算出装置の対象暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵と、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使った第二の復号変換により上記対象二重暗号文を変換することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を算出することを特徴とする請求項３に記載の類似度算出システム。
【請求項１６】
上記比較データ及び上記対象データは、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記類似度算出装置の一時秘密鍵生成部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文に基づいて、上記比較データについての暗号化された情報を含む一時公開鍵を生成し、
上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記一時公開鍵を使った上記第二の暗号化変換により、上記対象データの成分と上記比較データの対応する成分との積についての暗号化された情報を含む対象二重暗号文を算出することを特徴とする請求項１５に記載の類似度算出システム。
【請求項１７】
上記暗号化変換は、整数を暗号文に変換する変換であって、上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算が計算可能であり、任意の第一の整数を変換した暗号文と、任意の第二の整数を変換した暗号文とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和を変換した暗号文になり、
上記対象データは、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時公開鍵生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするＴ次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、生成した一時秘密鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時秘密鍵の各成分を変換した暗号文を成分とするＴ次元ベクトルを算出して、上記一時公開鍵とし、
上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により０を変換した暗号文を成分とするＴ次元ベクトルをランダムに生成して、零暗号文とし、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分ｂ’ｉ個（ｂ’ｉは、上記対象データの対応する成分である整数。）と、上記零暗号文の対応する成分とを結合した暗号文を成分とするＴ次元ベクトルを算出して、上記対象二重暗号文とし、
上記類似度算出装置の対象暗号文取得部は、一時復号鍵算出部と、対象暗号文算出部とを有し、
上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数を成分とするＴ次元ベクトルを算出して、一時復号鍵とし、
上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分をＲｉ−１個（Ｒｉ−１は、上記一時復号鍵の対応する成分である逆数。）結合した暗号文を成分とするＴ次元ベクトルを算出して、上記対象暗号文とすることを特徴とする請求項１５に記載の類似度算出システム。
【請求項１８】
上記暗号化変換は、整数を暗号文に変換する変換であって、上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算が計算可能であり、任意の第一の整数を変換した暗号文と、任意の第二の整数を変換した暗号文とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和を変換した暗号文になり、
上記比較データ及び上記対象データは、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時公開鍵生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするＴ次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により０を変換した暗号文を成分とするＴ次元ベクトルをランダムに生成して、零暗号文とし、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、生成した一時秘密鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記比較暗号文の各成分Ｒｉ個（Ｒｉは、上記一時秘密鍵の対応する成分である整数。）と、上記零暗号文の対応する成分とを結合した暗号文を成分とするＴ次元ベクトルを算出して、上記一時公開鍵とし、
上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により０を変換した暗号文を成分とするＴ次元ベクトルをランダムに生成して、零暗号文とし、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分ｂ’ｉ個（ｂ’ｉは、上記対象データの対応する成分である整数。）と、上記零暗号文の対応する成分とを結合した暗号文を成分とするＴ次元ベクトルを算出して、上記対象二重暗号文とし、
上記類似度算出装置の対象暗号文取得部は、一時復号鍵算出部と、対象暗号文算出部とを有し、
上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数を成分とするＴ次元ベクトルを算出して、一時復号鍵とし、
上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分をＲｉ−１個（Ｒｉ−１は、上記一時復号鍵の対応する成分である逆数。）結合した暗号文を成分とするＴ次元ベクトルを算出して、上記対象暗号文とすることを特徴とする請求項１５に記載の類似度算出システム。
【請求項１９】
上記類似度算出装置の類似度途中暗号文算出部は、乱数平文生成部と、暗号文算出部とを有し、
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするＴ次元ベクトルをランダムに生成して、乱数平文とし、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の乱数平文生成部が生成した乱数平文の成分の総和を算出し、算出した総和を上記一時鍵とし、
上記類似度算出装置の暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算により、上記対象暗号文の各成分と、上記乱数平文の対応する成分とを結合した暗号文を成分とするＴ次元ベクトルを算出して、上記類似度途中暗号文とすることを特徴とする請求項１８に記載の類似度算出システム。
【請求項２０】
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度途中暗号文算出部は、第一暗号文算出部と、第二暗号文算出部とを有し、
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文に基づいて、上記対象暗号文の成分の順序をランダムに入れ換えたＴ次元ベクトルを算出して、第一の類似度途中暗号文とし、
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文を算出して、第二の類似度途中暗号文とし、
上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項１８に記載の類似度算出システム。
【請求項２１】
上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中暗号文取得部が取得した２つの類似度途中暗号文に基づいて、上記第一の類似度途中暗号文のＴ個の成分をそれぞれ復号して得られる整数の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりｚ個（ｚは、上記第一の類似度途中暗号文のＴ個の成分をそれぞれ復号して得られる整数の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。）結合した元を算出して、上記類似度途中復号文とすることを特徴とする請求項２０に記載の類似度算出システム。
【請求項２２】
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度途中暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により上記一時鍵を変換した暗号文と、上記対象暗号文のＴ個の成分とを、上記暗号文の演算により結合した暗号文を算出して、上記類似度途中暗号文とすることを特徴とする請求項１８に記載の類似度算出システム。
【請求項２３】
上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文に基づいて、上記類似度途中暗号文を復号して得られる整数、または、所定の有限群の所定の元を上記所定の有限群の群演算によりｚ個（ｚは、上記類似度途中暗号文を復号して得られる整数。）結合した元を算出して、上記類似度途中復号文とすることを特徴とする請求項１１または請求項２２のいずれかに記載の類似度算出システム。
【請求項２４】
上記類似度途中復号文は、整数であり、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵と、上記類似度途中復号文との和または差を算出して、上記類似度とすることを特徴とする請求項３乃至請求項９及び請求項１１乃至請求項２２のいずれかに記載の類似度算出システム。
【請求項２５】
上記類似度途中復号文は、所定の有限群の元であり、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度算出部は、類似度復号文算出部と、離散対数算出部とを有し、
上記類似度算出装置の類似度復号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記所定の有限群の群演算により、上記所定の有限群の所定の元ｕ個（ｕは、上記一時鍵である整数。）と、上記類似度途中復号文とを結合した元を算出して、類似度復号文とし、
上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の類似度復号文が算出した類似度復号文に基づいて、上記所定の有限群の群演算により、上記所定の元を何個結合したら、上記類似度復号文と一致するかを算出して、上記類似度とすることを特徴とする請求項３乃至請求項９及び請求項１１乃至請求項２２のいずれかに記載の類似度算出システム。
【請求項２６】
上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度が、所定の範囲内の整数である場合に、上記類似度を算出し、上記類似度が、上記所定の範囲外である場合に、上記類似度が上記所定の範囲外であることを判定することを特徴とする請求項２５に記載の類似度算出システム。
【請求項２７】
上記類似度算出システムは、更に、登録装置を有し、
上記登録装置は、データを記憶する記憶装置と、データを処理する処理装置と、公開鍵記憶部と、比較データ取得部と、比較暗号文算出部と、比較暗号文通知部とを有し、
上記登録装置の公開鍵記憶部は、上記登録装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記登録装置の比較データ取得部は、上記登録装置の処理装置を用いて、比較データを取得し、
上記登録装置の比較暗号文算出部は、上記登録装置の処理装置を用いて、上記登録装置の公開鍵記憶部が記憶した公開鍵と、上記登録装置の比較データ取得部が取得した比較データとに基づいて、上記公開鍵を使った暗号化変換により上記比較データを変換することにより、比較暗号文を算出し、
上記登録装置の比較暗号文通知部は、上記登録装置の処理装置を用いて、上記登録装置の比較暗号文算出部が算出した比較暗号文を上記類似度算出装置に対して通知し、
上記類似度算出装置は、更に、比較暗号文取得部を有し、
上記類似度算出装置の比較暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記登録装置から通知された比較暗号文を取得し、
上記類似度算出装置の比較暗号文記憶部は、上記類似度算出装置の記憶装置を用いて、上記類似度算出装置の比較暗号文取得部が取得した比較暗号文を記憶することを特徴とする請求項３乃至請求項９及び請求項１１乃至請求項２２のいずれかに記載の類似度算出システム。
【請求項２８】
データを記憶する記憶装置と、データを処理する処理装置とを有するコンピュータが実行することにより、上記コンピュータを請求項１または請求項２に記載の類似度算出装置として機能させることを特徴とするコンピュータプログラム。
【請求項２９】
類似度算出装置と、復号装置とを有する類似度算出システムが、比較データと対象データとの類似度を算出する類似度算出方法において、
上記類似度算出装置及び上記復号装置は、データを記憶する記憶装置と、データを処理する処理装置とを有し、
上記復号装置の記憶装置が、秘密鍵を記憶し、
上記類似度算出装置の記憶装置が、上記復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、
上記類似度算出装置の処理装置が、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、
上記類似度算出装置の処理装置が、一時鍵を生成し、
上記類似度算出装置の処理装置が、上記類似度算出装置の記憶装置が記憶した比較暗号文と、上記類似度算出装置の処理装置が取得した対象暗号文と、上記類似度算出装置の処理装置が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵で暗号化した類似度途中暗号文を算出し、
上記類似度算出装置の処理装置が、上記類似度算出装置の処理装置が算出した類似度途中暗号文を上記復号装置に対して通知し、
上記復号装置の処理装置が、上記類似度算出装置から通知された類似度途中暗号文を取得し、
上記復号装置の処理装置が、上記復号装置の記憶装置が記憶した秘密鍵と、上記復号装置の処理装置が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、上記類似度途中復号文を算出し、
上記復号装置の処理装置が、上記復号装置の処理装置が算出した類似度途中復号文を上記類似度算出装置に対して通知し、
上記類似度算出装置の処理装置が、上記復号装置から通知された類似度途中復号文を取得し、
上記類似度算出装置の処理装置が、上記類似度算出装置の処理装置が生成した一時鍵と、上記類似度算出装置の処理装置が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする類似度算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、暗号化されたデータ間の類似度を算出する類似度算出システムに関する。
【背景技術】
【０００２】
生体情報など機密を要するデータを暗号化した状態で記憶しておき、暗号化されたままの状態で、別のデータとどの程度似ているかを表わす類似度を算出する技術がある。例えば、加法的な準同型性を有する暗号方式を利用すれば、データが暗号化されたままでの演算が可能になる。加法的な準同型性を有する暗号方式としては、岡本−高島暗号方式（特許文献３、非特許文献１）、ＢＧＮ暗号方式（非特許文献２）、Ｇｅｎｔｒｙ暗号方式（非特許文献３）、Ｐａｉｌｌｉｅｒ暗号方式などが知られている。なお、ＢＧＮ暗号方式やＧｅｎｔｒｙ暗号方式は、加法的な準同型性だけでなく、乗法的な準同型性も有するので、二重準同型暗号と呼ばれる。また、Ｇｅｎｔｒｙ暗号方式は、乗法の回数に制限がないので、完全準同型暗号あるいは環準同型暗号と呼ばれる。また、ＲＳＡ（登録商標）暗号方式など乗法的な準同型性のみを有する暗号方式もある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００８−５２１０２５号公報
【特許文献２】特開２００９−１２９２１０号公報
【特許文献３】特開２０１０−５４８７５号公報
【特許文献４】特開２００６−２６２３３３号公報
【特許文献５】特開２００１−７８０２号公報
【非特許文献】
【０００４】
【非特許文献１】服部充洋、柴田陽一、伊藤隆、松田規、高島克幸、米田健「２−ＤＮＦ準同型暗号を用いた秘匿生体認証」ＩＥＩＣＥ  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  １０９（２７２）、１１３〜１２０ページ、２００９年
【非特許文献２】Ｄ．Ｂｏｎｅｈ、Ｅ．−Ｊ．Ｇｏｈ、Ｋ．Ｎｉｓｓｉｍ「Ｅｖａｌｕａｔｉｎｇ  ２−ＤＮＦ  Ｆｏｒｍｕｌａｓ  ｏｎ  Ｃｉｐｈｅｒｔｅｘｔｓ」Ｔｈｅｏｒｙ  ｏｆ  Ｃｒｙｐｔｏｇｒａｐｈｙ  Ｃｏｎｆｅｒｅｎｃｅ、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、Ｖｏｌ．３３７８、３２５〜３４１ページ、２００５年
【非特許文献３】Ｃ．Ｇｅｎｔｒｙ「Ｆｕｌｌｙ  Ｈｏｍｏｍｏｒｐｈｉｃ  Ｅｎｃｒｙｐｔｉｏｎ  Ｕｓｉｎｇ  Ｉｄｅａｌ  Ｌａｔｔｉｃｅｓ」ＡＣＭ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｔｈｅｏｒｙ  ｏｆ  Ｃｏｍｐｕｔｉｎｇ、１６９−１７８ページ、２００９年
【非特許文献４】Ｍ．Ｕｐｍａｎｙｕ、Ａ．Ｍ．Ｎａｍｂｏｏｄｉｒｉ、Ｋ．Ｓｒｉｎａｔｈａｎ、Ｃ．Ｖ．Ｊａｗａｈａｒ「Ｂｌｉｎｄ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ：  Ａ  Ｓｅｃｕｒｅ  Ｃｒｙｐｔｏ−Ｂｉｏｍｅｔｒｉｃ  Ｖｅｒｉｆｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ」ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｆｏｒｅｎｓｉｃｓ  ａｎｄ  Ｓｅｃｕｒｉｔｙ、Ｖｏｌ．５、Ｎｏ．２、２０１０年。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
加法的な準同型性を有する暗号方式のように、データを暗号化したままの状態での演算が可能な暗号方式を使う場合、システム内の装置間でやり取りされる情報や、それぞれの装置が記憶している情報に準同型性を適用することで、思わぬ攻撃を受ける可能性がある。
特に、ユーザを認証する認証システムなどにおいては、元のデータの秘密を守るだけでは十分でなく、システム内の装置間でやり取りされる情報や、それぞれの装置が記憶している情報から、ユーザになりすますことができる情報が漏れることを防ぐ必要がある。
この発明は、例えば、上記のような課題を解決するためになされたものであり、元のデータについての情報や、なりすましに利用される情報などが漏れることを防ぎつつ、データが暗号化されたままの状態で、データ間の類似度を算出することを目的とする。
【課題を解決するための手段】
【０００６】
この発明にかかる類似度算出装置は、
比較データと対象データとの類似度を算出する類似度算出装置において、
データを記憶する記憶装置と、データを処理する処理装置と、比較暗号文記憶部と、対象暗号文取得部と、一時鍵生成部と、類似度途中暗号文算出部と、類似度途中暗号文通知部と、類似度途中復号文取得部と、類似度算出部とを有し、
上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、
上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、
上記一時鍵生成部は、上記処理装置を用いて、一時鍵を生成し、
上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文を算出し、
上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知し、
上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文を取得し、
上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする。
【発明の効果】
【０００７】
この発明にかかる類似度算出システムによれば、データが暗号化されたままの状態で、データ間の類似度を算出することができるとともに、その過程で、元のデータについての情報や、なりすましに利用される情報などが漏れるのを防ぐことができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１における生体認証システム１００の全体構成の一例を示すシステム構成図。
【図２】実施の形態１における証明装置１０１、認証装置１０２、復号装置１０３、登録装置１０４のハードウェア構成の一例を示す図。
【図３】実施の形態１における登録装置１０４の機能ブロックの構成の一例を示すブロック構成図。
【図４】実施の形態１における証明装置１０１の機能ブロックの構成の一例を示すブロック構成図。
【図５】実施の形態１における認証装置１０２の機能ブロックの構成の一例を示すブロック構成図。
【図６】実施の形態１における復号装置１０３の機能ブロックの構成の一例を示すブロック構成図。
【図７】実施の形態１における生体認証システム１００の全体の動作の一例を示すフローチャート図。
【図８】実施の形態１におけるセットアップ処理Ｓ５００の流れの一例を示すフローチャート図。
【図９】実施の形態１における登録処理Ｓ６００の流れの一例を示すフローチャート図。
【図１０】実施の形態１における認証処理Ｓ７００の流れの一例を示すフローチャート図。
【図１１】正則行列Ｘを使ってベクトル分解問題を解くベクトル分解処理Ｓ５４０の流れの一例を示すフローチャート図。
【図１２】実施の形態１における鍵生成部４０１の構成の一例を示す詳細ブロック図。
【図１３】実施の形態１における鍵生成工程Ｓ５０１の処理の流れの一例を示すフローチャート図。
【図１４】実施の形態１における特徴ベクトル暗号化工程Ｓ６０３の処理の流れの一例を示すフローチャート図。
【図１５】実施の形態１における第一チャレンジ生成工程Ｓ７０１の処理の流れの一例を示すフローチャート図。
【図１６】実施の形態１における暗号化データ埋め込み部２１７の構成の一例を示す詳細ブロック図。
【図１７】実施の形態１における第一レスポンス生成工程Ｓ７０７の処理の流れの一例を示すフローチャート図。
【図１８】実施の形態１における暗号化データ抽出部３０５の構成の一例を示す詳細ブロック図。
【図１９】実施の形態１における暗号化生体情報抽出工程Ｓ７１０の処理の流れの一例を示すフローチャート図。
【図２０】実施の形態１における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図。
【図２１】実施の形態１における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図。
【図２２】実施の形態１における復号部４０４の構成の一例を示す詳細ブロック図。
【図２３】実施の形態１における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図。
【図２４】実施の形態１における平文類似度抽出部３１５の構成の一例を示す詳細ブロック図。
【図２５】実施の形態１における平文類似度算出工程Ｓ７１９の処理の流れの一例を示すフローチャート図。
【図２６】実施の形態１の生体認証システム１００における類似度算出の計算手順を示すフローチャート図。
【図２７】実施の形態２における生体認証システム１００の全体構成の一例を示すシステム構成図。
【図２８】実施の形態３における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図。
【図２９】実施の形態３における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図。
【図３０】実施の形態３の生体認証システム１００における類似度算出の計算手順を示すフローチャート図。
【図３１】実施の形態４における鍵生成部４０１の構成の一例を示す詳細ブロック図。
【図３２】実施の形態４における鍵生成工程Ｓ５０１の処理の流れの一例を示すフローチャート図。
【図３３】実施の形態４における特徴ベクトル暗号化工程Ｓ６０３の処理の流れの一例を示すフローチャート図。
【図３４】実施の形態４における第一チャレンジ生成工程Ｓ７０１の処理の流れの一例を示すフローチャート図。
【図３５】実施の形態４における暗号化データ埋め込み部２１７の構成の一例を示す詳細ブロック図。
【図３６】実施の形態４における第一レスポンス生成工程Ｓ７０７の処理の流れの一例を示すフローチャート図。
【図３７】実施の形態４における暗号化データ抽出部３０５の構成の一例を示す詳細ブロック図。
【図３８】実施の形態４における暗号化生体情報抽出工程Ｓ７１０の処理の流れの一例を示すフローチャート図。
【図３９】実施の形態４における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図。
【図４０】実施の形態４における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図。
【図４１】実施の形態４における暗号化ランダム類似度算出部３１４の構成の別の例を示す詳細ブロック図。
【図４２】実施の形態４における第二チャレンジ生成工程Ｓ７１２の処理の流れの別の例を示すフローチャート図。
【図４３】実施の形態４における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図。
【図４４】実施の形態４における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図。
【図４５】実施の形態４の生体認証システム１００における類似度算出の計算手順を示すフローチャート図。
【図４６】実施の形態５における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図。
【図４７】実施の形態５における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図。
【図４８】実施の形態５の生体認証システム１００における類似度算出の計算手順を示すフローチャート図。
【図４９】実施の形態６における鍵生成部４０１の構成の一例を示す詳細ブロック図。
【図５０】実施の形態６における鍵生成工程Ｓ５０１の処理の流れの一例を示すフローチャート図。
【図５１】実施の形態６における特徴ベクトル暗号化工程Ｓ６０３の処理の流れの一例を示すフローチャート図。
【図５２】実施の形態６における第一チャレンジ生成工程Ｓ７０１の処理の流れの一例を示すフローチャート図。
【図５３】実施の形態６における暗号化データ埋め込み部２１７の構成の一例を示す詳細ブロック図。
【図５４】実施の形態６における第一レスポンス生成工程Ｓ７０７の処理の流れの一例を示すフローチャート図。
【図５５】実施の形態６における暗号化生体情報抽出工程Ｓ７１０の処理の流れの一例を示すフローチャート図。
【図５６】実施の形態６における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図。
【図５７】実施の形態６における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図。
【図５８】実施の形態６における復号部４０４の構成の一例を示す詳細ブロック図。
【図５９】実施の形態６における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図。
【図６０】実施の形態６における平文類似度算出工程Ｓ７１９の処理の流れの一例を示すフローチャート図。
【図６１】実施の形態６の生体認証システム１００における類似度算出の計算手順を示すフローチャート図。
【図６２】実施の形態７における暗号化乱数生成部３０４の構成の一例を示す詳細ブロック図。
【図６３】実施の形態７における第一チャレンジ生成工程Ｓ７０１の処理の流れの一例を示すフローチャート図。
【図６４】実施の形態７における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図。
【図６５】実施の形態７における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図。
【図６６】実施の形態７における復号部４０４の構成の一例を示す詳細ブロック図。
【図６７】実施の形態７における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図。
【図６８】実施の形態７の生体認証システム１００における類似度算出の計算手順を示すフローチャート図。
【図６９】実施の形態８における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図。
【図７０】実施の形態８における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図。
【図７１】実施の形態８における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図。
【図７２】実施の形態８の生体認証システム１００における類似度算出の計算手順を示すフローチャート図。
【図７３】実施の形態９における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図。
【図７４】実施の形態９における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図。
【図７５】実施の形態９における復号部４０４の構成の一例を示す詳細ブロック図。
【図７６】実施の形態９における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図。
【図７７】実施の形態９の生体認証システム１００における類似度算出の計算手順を示すフローチャート図。
【図７８】実施の形態１０における画像検索システム１１０の全体構成の一例を示すシステム構成図。
【図７９】実施の形態１０における登録装置１０４の機能ブロックの構成の一例を示すブロック構成図。
【図８０】実施の形態１０における端末装置１１１の機能ブロックの構成の一例を示すブロック構成図。
【図８１】実施の形態１０における検索装置１１２の機能ブロックの構成の一例を示すブロック構成図。
【発明を実施するための形態】
【０００９】
実施の形態１．
実施の形態１について、図１〜図２６を用いて説明する。
【００１０】
図１は、この実施の形態における生体認証システム１００の全体構成の一例を示すシステム構成図である。
生体認証システム１００は、ユーザの指紋などの生体情報を入力し、入力した生体情報と、あらかじめ登録された生体情報とを照合することにより、利用者を認証するシステムである。
生体認証システム１００（類似度算出システム）は、例えば、証明装置１０１と、認証装置１０２と、復号装置１０３と、登録装置１０４とを有する。
登録装置１０４は、ユーザから生体情報を抽出し、抽出した生体情報を暗号化して、認証装置１０２に登録する。
証明装置１０１（暗号化装置）は、ユーザから生体情報を抽出し、抽出した生体情報を暗号化する。また、証明装置１０１は、認証装置１０２と対話を行い、認証を実施する。
認証装置１０２（類似度算出装置）は、登録装置１０４により登録されたユーザの暗号化生体情報を格納する。また、認証装置１０２は、証明装置１０１、復号装置１０３と対話を行い、認証を実施する。
復号装置１０３は、認証装置１０２と対話を行い、認証装置から送られてきた暗号化された類似度に関連したデータを復号する。
なお、証明装置１０１や登録装置１０４は、複数あってもよい。また、証明装置１０１と登録装置１０４とは、物理的に一つの装置であってもよい。また、証明装置１０１と復号装置１０３とは、物理的に一つの装置であってもよい。また、認証装置１０２と登録装置１０４とは、物理的に一つの装置であってもよい。
【００１１】
図２は、この実施の形態における証明装置１０１、認証装置１０２、復号装置１０３、登録装置１０４のハードウェア構成の一例を示す図である。
証明装置１０１、認証装置１０２、復号装置１０３、登録装置１０４は、例えばコンピュータであり、処理装置９１１と、入力装置９１２と、出力装置９１３と、記憶装置９１４とを有する。
記憶装置９１４は、処理装置９１１が実行するプログラムや、処理装置９１１が処理するデータなどを記憶する。記憶装置９１４は、例えば、揮発性メモリ、不揮発性メモリ、ハードディスク装置などである。
処理装置９１１は、記憶装置９１４が記憶したプログラムを実行することにより、データを処理し、装置全体を制御する。
入力装置９１２は、外部からの情報を、処理装置９１１が処理できるデータに変換する。入力装置９１２が変換したデータは、処理装置９１１が直接処理してもよいし、記憶装置９１４が記憶してもよい。入力装置９１２は、例えば、キーボードやマウスなど使用者の操作を入力する操作入力装置、ユーザの指紋や虹彩などの生体情報を抽出して入力する生体情報入力装置、他の装置が送信した信号を受信する受信装置（通信装置）、記録媒体からデータを読み出す読み出し装置などである。
出力装置９１３は、処理装置９１１が処理したデータや、記憶装置９１４が記憶したデータなどを変換して、外部に出力する装置である。出力装置９１３は、例えば、画像を表示する表示装置、他の装置に対して信号を送信する送信装置（通信装置）、記録媒体にデータを書き込む書き込み装置などである。
【００１２】
図３は、この実施の形態における登録装置１０４の機能ブロックの構成の一例を示すブロック構成図である。
登録装置１０４は、例えば、公開鍵受信部２０８と、公開鍵記憶部２０２と、生体情報抽出部２０３と、特徴ベクトル形成部２０４と、乱数生成部２０５と、暗号化データ生成部２０６と、暗号化データ送信部２０１とを有する。
公開鍵受信部２０８（公開鍵取得部）は、通信装置などの入力装置９１２を用いて、復号装置１０３で生成された公開鍵を受信する。通信装置（通信部）は、認証装置１０２や復号装置１０３などの他の装置との間でデータのやりとりを行う。
暗号化データ送信部２０１（比較暗号文通知部）は、通信装置などの出力装置９１３を用いて、認証装置１０２に対して暗号化生体情報（比較暗号文）を送信する。
公開鍵記憶部２０２は、記憶装置９１４を用いて、公開鍵受信部２０８が受信した公開鍵を記憶する。記憶装置９１４（記憶部）は、復号装置１０３から送られてきた公開鍵などの各種データを格納する。
生体情報抽出部２０３は、光学カメラ、赤外線カメラ、その他の各種センサなどの入力装置９１２を用いて、個人識別を行うのに必要となる生体情報をユーザから抽出する。
特徴ベクトル形成部２０４（比較データ取得部）は、処理装置９１１を用いて、生体情報抽出部２０３が抽出した生体情報から、個人の特徴を表す特徴ベクトル（比較データ）を形成する。
乱数生成部２０５は、処理装置９１１を用いて、公開鍵記憶部２０２が格納した公開鍵の一部などに基づいて、乱数を生成する。乱数生成部２０５が生成した乱数は、暗号化データ生成部２０６などが使用する。
暗号化データ生成部２０６（暗号化部、比較暗号文生成部）は、処理装置９１１を用いて、乱数生成部２０５が生成した乱数に基づいて、特徴ベクトル形成部２０４が形成した特徴ベクトルを暗号化し、暗号化生体情報（暗号化特徴ベクトル）を生成する。
【００１３】
図４は、この実施の形態における証明装置１０１の機能ブロックの構成の一例を示すブロック構成図である。
証明装置１０１は、例えば、公開鍵受信部２１８と、公開鍵記憶部２１２と、生体情報抽出部２１３と、特徴ベクトル形成部２１４と、乱数生成部２１５と、第一チャレンジ受信部２１１と、暗号化データ埋め込み部２１７と、第一レスポンス送信部２２１とを有する。
公開鍵受信部２１８（公開鍵取得部）は、通信装置などの入力装置９１２を用いて、復号装置１０３で生成された公開鍵を受信する。通信装置（通信部）は、認証装置１０２や復号装置１０３などの他の装置との間でデータのやりとりを行う。
第一チャレンジ受信部２１１（一時公開鍵取得部）は、通信装置などの入力装置９１２を用いて、認証装置１０２からの第一チャレンジ（一時公開鍵）を受信する。
第一レスポンス送信部２２１（対象二重暗号文通知部）は、通信装置などの入力装置９１２を用いて、第一チャレンジに対応した第一レスポンス（対象二重暗号文）を、認証装置１０２に対して返信する。
公開鍵記憶部２１２は、記憶装置９１４を用いて、公開鍵受信部２１８が受信した公開鍵を記憶する。記憶装置９１４（記憶部）は、復号装置１０３から送られてきた公開鍵などの各種データを格納する。
生体情報抽出部２１３は、光学カメラ、赤外線カメラ、その他の各種センサなどの入力装置９１２を用いて、個人識別を行うのに必要となる生体情報をユーザから抽出する。
特徴ベクトル形成部２１４（対象データ取得部）は、処理装置９１１を用いて、生体情報抽出部２１３が抽出した生体情報から、個人の特徴を表す特徴ベクトル（対象データ）を形成する。
乱数生成部２１５は、処理装置９１１を用いて、公開鍵記憶部２１２が格納した公開鍵の一部などに基づいて、乱数を生成する。乱数生成部２１５が生成した乱数は、暗号化データ埋め込み部２１７などが使用する。
暗号化データ埋め込み部２１７（レスポンス生成部、対象二重暗号文算出部）は、処理装置９１１を用いて、認証装置１０２から送られてきた第一チャレンジを、特徴ベクトル形成部２１４が形成した特徴ベクトルの値に応じて処理を行う。すなわち、暗号化データ埋め込み部２１７は、第一チャレンジに暗号化生体情報を埋め込む。暗号化データ埋め込み部２１７は、認証装置１０２に返す第一レスポンスを計算する。
【００１４】
図５は、この実施の形態における認証装置１０２の機能ブロックの構成の一例を示すブロック構成図である。
認証装置１０２は、例えば、公開鍵受信部３０８と、公開鍵記憶部３０２と、暗号化データ受信部３０１と、暗号化データ記憶部３１２と、乱数生成部３０３と、乱数記憶部３２２と、暗号化乱数生成部３０４と、第一チャレンジ送信部３１１と、第一レスポンス受信部３３１と、暗号化データ抽出部３０５と、暗号化ランダム類似度算出部３１４と、第二チャレンジ送信部３２１と、第二レスポンス受信部３４１と、平文類似度抽出部３１５と、判定部３０６とを有する。
公開鍵受信部３０８（公開鍵取得部）は、通信装置（通信部）などの入力装置９１２を用いて、復号装置１０３で生成された公開鍵を受信する。
暗号化データ受信部３０１（比較暗号文取得部）は、通信装置などの入力装置９１２を用いて、証明装置１０１から暗号化特徴ベクトル（比較暗号文）を受信する。
第一チャレンジ送信部３１１（一時公開鍵通知部）は、通信装置などの出力装置９１３を用いて、証明装置１０１へ第一チャレンジ（一時公開鍵）を送信する。
第一レスポンス受信部３３１（対象二重暗号文取得部）は、通信装置などの入力装置９１２を用いて、証明装置１０１から第一チャレンジに対応する第一レスポンス（対象二重暗号文）を受信する。
第二チャレンジ送信部３２１（類似度途中暗号文通知部）は、通信装置などの出力装置９１３を用いて、復号装置１０３へ第二チャレンジ（類似度途中暗号文）を送信する。
第二レスポンス受信部３４１（類似度途中復号文取得部）は、通信装置などの入力装置９１２を用いて、復号装置１０３から第二レスポンス（類似度途中復号文）を受信する。
公開鍵記憶部３０２は、記憶装置９１４（記憶部）を用いて、復号装置１０３から送付された公開鍵を格納する。
暗号化データ記憶部３１２（比較暗号文記憶部）は、記憶装置９１４を用いて、証明装置１０１から送られてきた暗号化特徴ベクトルを格納する。暗号化データ記憶部３１２は、複数の暗号化特徴ベクトルを、例えば、ユーザの識別子と対応づけて記憶する。
乱数記憶部３２２（一時秘密鍵記憶部、一時鍵記憶部）は、記憶装置９１４を用いて、乱数生成部３０３が生成した乱数のうち一部の乱数（一時秘密鍵、一時鍵）を格納する。
乱数生成部３０３（一時秘密鍵生成部、一時鍵生成部）は、処理装置９１１を用いて、公開鍵記憶部３０２が格納した公開鍵の一部などに基づいて、乱数を生成する。乱数生成部３０３が生成した乱数は、暗号化乱数生成部３０４、暗号化データ抽出部３０５、暗号化ランダム類似度算出部３１４、平文類似度抽出部３１５などで用いられる。
暗号化乱数生成部３０４（チャレンジ生成部、一時公開鍵算出部）は、証明装置１０１と対話を行うために、処理装置９１１を用いて、第一チャレンジ（暗号化乱数）を生成する。
暗号化データ抽出部３０５（乱数除去部、対象暗号文取得部）は、処理装置９１１を用いて、証明装置１０１から送られてきた第一レスポンスに対して、その第一レスポンスに対応した第一チャレンジで使用した（乱数記憶部３２２が格納している）乱数を用いて、第一レスポンスに含まれている乱数を除去する。暗号化データ抽出部３０５は、第一レスポンスから第一チャレンジで用いた乱数の一部を取り除いて、暗号化特徴ベクトルを抽出する。
暗号化ランダム類似度算出部３１４（チャレンジ生成部、類似度途中暗号文算出部）は、復号装置１０３と対話を行うために、処理装置９１１を用いて、第二チャレンジ（暗号化ランダム類似度）を生成する。暗号化ランダム類似度算出部３１４は、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルと、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルとに基づいて、第二チャレンジを生成する。暗号化ランダム類似度算出部３１４は、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルのなかから、第一レスポンス受信部３３１が受信した第一レスポンスとユーザの識別子が一致する暗号化特徴ベクトルを取得して、第二チャレンジを生成する。
平文類似度抽出部３１５（乱数除去部、類似度算出部）は、復号装置１０３に送られてきた第二レスポンスから、その第二レスポンスに対応する第二チャレンジで使用した（乱数記憶部３２２が格納している）乱数を用いて、第二レスポンスに含まれている乱数を除去する。平文類似度抽出部３１５は、第二レスポンスから乱数を除去して、平文の類似度を算出する。
判定部３０６（類似判定部）は、処理装置９１１を用いて、平文類似度抽出部３１５が生成した平文の類似度を用いて個人識別を行い、本人か否かを判定する。つまり、判定部３０６は、平文の類似度を解析して、認証用の特徴ベクトルの発生源が正当であるか否かを判定する。
【００１５】
図６は、この実施の形態における復号装置１０３の機能ブロックの構成の一例を示すブロック構成図である。
復号装置１０３は、例えば、鍵生成部４０１と、秘密鍵記憶部４１３と、公開鍵記憶部４０３と、公開鍵送信部４０８と、第二チャレンジ受信部４０２と、復号部４０４と、第二レスポンス送信部４１２とを有する。
鍵生成部４０１（パラメータ生成部、秘密鍵生成部、公開鍵算出部）は、処理装置９１１を用いて、公開鍵や秘密鍵など、暗号化と復号に必要なパラメータを生成する。
公開鍵送信部４０８（公開鍵通知部）は、通信装置（通信部）などの出力装置９１３を用いて、証明装置１０１や認証装置１０２などに対して、鍵生成部４０１が生成した公開鍵を送信する。
第二チャレンジ受信部４０２（類似途中暗号文取得部）は、通信装置などの入力装置９１２を用いて、認証装置１０２から、第二チャレンジ（類似途中暗号文）を受信する。
第二レスポンス送信部４１２（類似途中復号文通知部）は、通信装置などの出力装置９１３を用いて、認証装置１０２に対して、第二チャレンジに対応した第二レスポンス（類似途中復号文）を送信する。
公開鍵記憶部４０３は、記憶装置９１４（記憶部）を用いて、鍵生成部４０１が生成した公開鍵などの各種データを格納する。
秘密鍵記憶部４１３は、記憶装置９１４を用いて、鍵生成部４０１が生成した秘密鍵を格納する。
復号部４０４（レスポンス生成部、類似途中復号文算出部）は、処理装置９１１を用いて、認証装置１０２から送信された第二チャレンジに対応した第二レスポンスを生成する。復号部４０４は、第二チャレンジ（暗号化ランダム類似度）を復号して、第二レスポンスを算出する。
【００１６】
図７は、この実施の形態における生体認証システム１００の全体の動作の一例を示すフローチャート図である。
生体認証システム１００の動作は、例えば、セットアップ処理Ｓ５００と、登録処理Ｓ６００と、認証処理Ｓ７００との３つからなる。
セットアップ処理Ｓ５００（設定処理）では、復号装置１０３が、暗号化と復号に必要となるパラメータや公開鍵・秘密鍵などを生成する。
登録処理Ｓ６００では、登録装置１０４が、ユーザの生体情報（比較データ）を暗号化して認証装置１０２に送付する。認証装置１０２が、暗号化生体情報（比較暗号文）を格納する。
認証処理Ｓ７００では、最初に、認証装置１０２が、証明装置１０１と対話を行い、その対話のデータ（第一チャレンジ及び第一レスポンス）から暗号化生体情報（対象暗号文）を抽出する。
次に、認証装置１０２が、抽出した暗号化生体情報と、登録処理Ｓ６００であらかじめ登録された暗号化生体情報とに基づいて、復号装置１０３と対話を行い、その対話のデータ（第二チャレンジ及び第二レスポンス）からランダム類似度を抽出する。
最後に、認証装置１０２が、ランダム類似度から平文の類似度を抽出し、閾値と比較して本人であるかどうかの判定を行う。なお、ここでの閾値は、あらかじめ定められているシステムで共通の値であってもよいし、ユーザ毎に異なる値であってもよい。
【００１７】
図８は、この実施の形態におけるセットアップ処理Ｓ５００の流れの一例を示すフローチャート図である。
セットアップ処理Ｓ５００は、例えば、鍵生成工程Ｓ５０１と、公開鍵通知工程Ｓ５０２と、公開鍵取得工程Ｓ５０３〜Ｓ５０５とを有する。
最初に、鍵生成工程Ｓ５０１において、復号装置１０３の鍵生成部４０１が、処理装置９１１を用いて、準同型暗号方式の鍵生成アルゴリズムに基づき、秘密鍵ｓｋと公開鍵ｐｋとを生成する。準同型暗号方式には、例えば、岡本−高島暗号方式、ＢＧＮ暗号方式、Ｐａｉｌｌｉｅｒ暗号方式などがある。
次に、公開鍵通知工程Ｓ５０２において、復号装置１０３の公開鍵記憶部４０３が、記憶装置９１４を用いて、公開鍵ｐｋを記憶する。復号装置１０３の秘密鍵記憶部４１３が、記憶装置９１４を用いて、秘密鍵ｓｋを記憶する。復号装置１０３の公開鍵送信部４０８が、出力装置９１３を用いて、公開鍵ｐｋを、登録装置１０４、証明装置１０１、認証装置１０２などに対して送信する。
公開鍵取得工程Ｓ５０３において、登録装置１０４の公開鍵受信部２０８が、入力装置９１２を用いて、復号装置１０３が送信した公開鍵ｐｋを受信する。登録装置１０４の公開鍵記憶部２０２が、記憶装置９１４を用いて、公開鍵受信部２０８が受信した公開鍵ｐｋを記憶する。
公開鍵取得工程Ｓ５０４において、証明装置１０１の公開鍵受信部２１８が、入力装置９１２を用いて、復号装置１０３が送信した公開鍵ｐｋを受信する。証明装置１０１の公開鍵記憶部２１２が、記憶装置９１４を用いて、公開鍵受信部２１８が受信した公開鍵ｐｋを記憶する。
公開鍵取得工程Ｓ５０５において、認証装置１０２の公開鍵受信部３０８が、入力装置９１２を用いて、復号装置１０３が送信した公開鍵ｐｋを受信する。認証装置１０２の公開鍵記憶部３０２が、記憶装置９１４を用いて、公開鍵受信部３０８が受信した公開鍵ｐｋを記憶する。
なお、ネットワークなどを介して公開鍵ｐｋを送受信するのではなく、他の方式で、証明装置１０１などに公開鍵ｐｋを配布する構成であってもよい。例えば、復号装置１０３が、公開鍵ｐｋを、記録媒体（例えば、ハードディスクドライブや光学ディスクなど）に格納し、証明装置１０１などが、ネットワークなどを介してその記録媒体にアクセスし、あるいは、記録媒体自体を物理的に移動させて、記録媒体から公開鍵ｐｋを読み出して格納する構成であってもよい。
【００１８】
図９は、この実施の形態における登録処理Ｓ６００の流れの一例を示すフローチャート図である。
登録処理Ｓ６００は、例えば、生体情報抽出工程Ｓ６０１と、特徴ベクトル生成工程Ｓ６０２と、特徴ベクトル暗号化工程Ｓ６０３と、暗号化生体情報通知工程Ｓ６０４と、暗号化生体情報取得工程Ｓ６０５とを有する。
最初に、生体情報抽出工程Ｓ６０１において、登録装置１０４の生体情報抽出部２０３が、入力装置９１２を用いて、ユーザの生体情報を抽出する。
特徴ベクトル生成工程Ｓ６０２において、登録装置１０４の特徴ベクトル形成部２０４が、処理装置９１１を用いて、生体情報抽出工程Ｓ６０１で生体情報抽出部２０３が抽出した生体情報の特徴ベクトルｂを生成する。
特徴ベクトル暗号化工程Ｓ６０３において、登録装置１０４の乱数生成部２０５が、処理装置９１１を用いて、公開鍵ｐｋの一部などに基づいて、乱数を生成する。登録装置１０４の暗号化データ生成部２０６が、処理装置９１１を用いて、公開鍵記憶部２０２が記憶した公開鍵ｐｋを読み出す。登録装置１０４の暗号化データ生成部２０６が、処理装置９１１を用いて、読み出した公開鍵ｐｋと、乱数生成部２０５が生成した乱数とに基づいて、暗号化特徴ベクトルＣを生成する。暗号化特徴ベクトルＣが、特徴ベクトルｂを暗号化したものである。
暗号化生体情報通知工程Ｓ６０４において、登録装置１０４の暗号化データ送信部２０１が、出力装置９１３を用いて、特徴ベクトル暗号化工程Ｓ６０３で暗号化データ生成部２０６が生成した暗号化特徴ベクトルＣを、認証装置１０２に対して送信する。
暗号化生体情報取得工程Ｓ６０５において、認証装置１０２の暗号化データ受信部３０１が、入力装置９１２を用いて、暗号化生体情報通知工程Ｓ６０４で登録装置１０４が送信した暗号化特徴ベクトルＣを受信する。認証装置１０２の暗号化データ記憶部３１２が、記憶装置９１４を用いて、暗号化データ受信部３０１が受信した暗号化特徴ベクトルＣを記憶する。
【００１９】
なお、ユーザの生体情報や特徴ベクトルｂは、暗号化特徴ベクトルＣの生成後、不要となるので、消去する構成とすることが望ましい。そうすれば、不正者が、登録装置１０４の記憶装置９１４から、ユーザの生体情報や特徴ベクトルｂを窃取することを防止できる。
また、暗号化特徴ベクトルＣは、復号装置の公開鍵で暗号化されているので、不正者が、登録装置１０４と認証装置１０２との間の通信を傍受したり、認証装置１０２の記憶装置９１４から窃取したりして、暗号化特徴ベクトルＣを入手したとしても、復号装置の秘密鍵を使わなければ、ユーザの生体情報や特徴ベクトルを知ることはできない。
更に、後述するように、認証時における特徴ベクトルの情報を含む第一レスポンスは、特徴ベクトルからしか生成できず、暗号化特徴ベクトルから生成することはできない。不正者が、暗号化特徴ベクトルＣを入手したとしても、第一レスポンスを生成できないので、正規のユーザになりすますことはできない。
【００２０】
図１０は、この実施の形態における認証処理Ｓ７００の流れの一例を示すフローチャート図である。
認証処理Ｓ７００は、例えば、第一チャレンジ生成工程Ｓ７０１と、乱数記憶工程Ｓ７０２と、第一チャレンジ通知工程Ｓ７０３と、第一チャレンジ取得工程Ｓ７０４と、生体情報抽出工程Ｓ７０５と、特徴ベクトル生成工程Ｓ７０６と、第一レスポンス生成工程Ｓ７０７と、第一レスポンス通知工程Ｓ７０８と、第一レスポンス取得工程Ｓ７０９と、暗号化生体情報抽出工程Ｓ７１０と、暗号化生体情報読出し工程Ｓ７１１と、第二チャレンジ生成工程Ｓ７１２と、乱数記憶工程Ｓ７１３と、第二チャレンジ通知工程Ｓ７１４と、第二チャレンジ取得工程Ｓ７１５と、第二レスポンス生成工程Ｓ７１６と、第二レスポンス通知工程Ｓ７１７と、第二レスポンス取得工程Ｓ７１８と、平文類似度算出工程Ｓ７１９と、認証判定工程Ｓ７２０とを有する。
【００２１】
最初に、第一チャレンジ生成工程Ｓ７０１において、認証装置１０２の乱数生成部３０３が、処理装置９１１を用いて、公開鍵記憶部３０２から公開鍵ｐｋを読み出し、乱数を生成する。認証装置１０２の暗号化乱数生成部３０４が、処理装置９１１を用いて、公開鍵記憶部３０２から公開鍵ｐｋを読み出し、乱数生成部３０３が生成した乱数を暗号化して、第一チャレンジ（暗号化乱数）を生成する。
乱数記憶工程Ｓ７０２において、認証装置１０２の乱数記憶部３２２が、記憶装置９１４を用いて、第一チャレンジ生成工程Ｓ７０１で乱数生成部３０３が生成した乱数を格納する。
第一チャレンジ通知工程Ｓ７０３において、認証装置１０２の第一チャレンジ送信部３１１が、出力装置９１３を用いて、第一チャレンジ生成工程Ｓ７０１で暗号化乱数生成部３０４が生成した第一チャレンジを、証明装置１０１に対して送信する。
【００２２】
第一チャレンジ取得工程Ｓ７０４において、証明装置１０１の第一チャレンジ受信部２１１が、入力装置９１２を用いて、第一チャレンジ通知工程Ｓ７０３で認証装置１０２が送信した第一チャレンジを受信する。
生体情報抽出工程Ｓ７０５において、証明装置１０１の生体情報抽出部２１３が、入力装置９１２を用いて、ユーザの生体情報を抽出する。
特徴ベクトル生成工程Ｓ７０６において、証明装置１０１の特徴ベクトル形成部２１４が、処理装置９１１を用いて、生体情報抽出工程Ｓ７０５で生体情報抽出部２１３が抽出した生体情報の特徴ベクトルｂ’を形成する。
第一レスポンス生成工程Ｓ７０７において、証明装置１０１の乱数生成部２１５が、処理装置９１１を用いて、公開鍵記憶部２１２が格納している公開鍵ｐｋを読み出し、乱数を生成する。証明装置１０１の暗号化データ埋め込み部２１７が、公開鍵記憶部２１２から公開鍵ｐｋを読み出し、乱数生成部２１５が生成した乱数に基づいて、特徴ベクトル生成工程Ｓ７０６で特徴ベクトル形成部２１４が形成した特徴ベクトルｂ’の値に応じて第一チャレンジを処理して、第一レスポンスを生成する。第一レスポンスは、第一チャレンジに暗号化特徴ベクトルＣ’を埋め込んだものになる。
第一レスポンス通知工程Ｓ７０８において、証明装置１０１の第一レスポンス送信部２２１が、出力装置９１３を用いて、第一レスポンス生成工程Ｓ７０７で暗号化データ埋め込み部２１７が生成した第一レスポンスを認証装置１０２に対して送信する。
【００２３】
第一レスポンス取得工程Ｓ７０９において、認証装置１０２の第一レスポンス受信部３３１が、入力装置９１２を用いて、第一レスポンス通知工程Ｓ７０８で証明装置１０１が送信した第一レスポンスを受信する。
暗号化生体情報抽出工程Ｓ７１０において、認証装置１０２の暗号化データ抽出部３０５が、処理装置９１１を用いて、第一チャレンジ生成工程Ｓ７０１で乱数生成部３０３が生成した乱数を乱数記憶部３２２から取り出し、第一レスポンスから乱数を除去して、暗号化特徴ベクトルＣ’を抽出する。
暗号化生体情報読出し工程Ｓ７１１において、認証装置１０２の暗号化ランダム類似度算出部３１４が、処理装置９１１を用いて、暗号化データ記憶部３１２から暗号化特徴ベクトルＣを取り出す。
第二チャレンジ生成工程Ｓ７１２において、認証装置１０２の乱数生成部３０３が、処理装置９１１を用いて、公開鍵記憶部３０２が格納している公開鍵ｐｋを読み出し、乱数を生成する。認証装置１０２の暗号化乱数生成部３０４が、処理装置９１１を用いて、公開鍵記憶部３０２から公開鍵ｐｋを読み出し、暗号化生体情報抽出工程Ｓ７１０で暗号化データ抽出部３０５が第一レスポンスから抽出した暗号化特徴ベクトルＣ’と、暗号化生体情報読出し工程Ｓ７１１で取り出した暗号化特徴ベクトルＣと、読み出した公開鍵ｐｋと、乱数生成部３０３が生成した乱数とに基づいて、第二チャレンジ（暗号化ランダム類似度）を生成する。
乱数記憶工程Ｓ７１３において、認証装置１０２の乱数記憶部３２２が、記憶装置９１４を用いて、第二チャレンジ生成工程Ｓ７１２で乱数生成部３０３が生成した乱数を格納する。
第二チャレンジ通知工程Ｓ７１４において、認証装置１０２の第二チャレンジ送信部３２１が、出力装置９１３を用いて、第二チャレンジ生成工程Ｓ７１２で暗号化ランダム類似度算出部３１４が生成した第二チャレンジを復号装置１０３に対して送信する。
【００２４】
第二チャレンジ取得工程Ｓ７１５において、復号装置１０３の第二チャレンジ受信部４０２が、入力装置９１２を用いて、第二チャレンジ通知工程Ｓ７１４で認証装置１０２が送信した第二チャレンジを受信する。
第二レスポンス生成工程Ｓ７１６において、復号装置１０３の復号部４０４が、処理装置９１１を用いて、秘密鍵記憶部４１３から秘密鍵ｓｋを読み出し、第二チャレンジ取得工程Ｓ７１５で第二チャレンジ受信部４０２が受信した第二チャレンジ（暗号化ランダム類似度）に対して秘密鍵ｓｋを使った復号処理を行い、第二レスポンスを生成（ランダム類似度を導出）する。
第二レスポンス通知工程Ｓ７１７において、復号装置１０３の第二レスポンス送信部４１２が、出力装置９１３を用いて、第二レスポンス生成工程Ｓ７１６で復号部４０４が生成した第二レスポンスを認証装置１０２に対して送信する。
【００２５】
第二レスポンス取得工程Ｓ７１８において、認証装置１０２の第二レスポンス受信部３４１が、入力装置９１２を用いて、第二レスポンス通知工程Ｓ７１７で復号装置１０３が送信した第二レスポンスを受信する。
平文類似度算出工程Ｓ７１９において、認証装置１０２の平文類似度抽出部３１５が、処理装置９１１を用いて、第二チャレンジ生成工程Ｓ７１２で乱数生成部３０３が生成した乱数を乱数記憶部３２２から取り出し、第二レスポンス取得工程Ｓ７１８で第二レスポンス受信部３４１が受信した第二レスポンス（ランダム類似度）から乱数を除去して、平文の類似度を抽出する。
認証判定工程Ｓ７２０において、認証装置１０２の判定部３０６が、処理装置９１１を用いて、平文類似度算出工程Ｓ７１９で抽出した平文の類似度と、所定の閾値とに基づいて、本人認証を行う。
【００２６】
なお、認証処理Ｓ７００は、例えば、証明装置１０１からの認証要求により開始する。しかし、通信コストの低減などのため、認証要求が来る前に、プロトコルの事前準備をしておく構成であってもよい。例えば、第一チャレンジ生成工程Ｓ７０１から第一チャレンジ取得工程Ｓ７０４までをあかじめ実行しておく構成であってもよい。すなわち、証明装置１０１から認証要求が来る前に、認証装置１０２が第一チャレンジ（暗号化乱数）を生成し、生成した第一チャレンジを証明装置１０１に対して送信し、証明装置１０１の暗号化データ埋め込み部２１７が、記憶装置９１４を用いて、受信した第一チャレンジを格納しておく。第一チャレンジの生成時に用いた乱数は、認証装置１０２の乱数記憶部３２２が、記憶装置９１４を用いて格納しておく。なお、乱数記憶部３２２が格納した乱数を、他の装置に公開してはならない。
【００２７】
第一チャレンジ生成工程Ｓ７０１で認証装置１０２の乱数生成部３０３が生成し、暗号化乱数生成部３０４が第一チャレンジを作成するために使う乱数には、平文としての乱数と、その平文を暗号化するために使用する乱数との２種類がある。乱数記憶工程Ｓ７０２で認証装置１０２の乱数記憶部３２２が格納する乱数は、このうち、平文としての乱数だけでよい。
【００２８】
第一レスポンス生成工程Ｓ７０７において、証明装置１０１は、暗号の加法的な準同型性を利用して、第一チャレンジと、特徴ベクトルの値とに基づいて、第一レスポンスを生成する。第一チャレンジは、平文としての乱数を暗号化したものである。一方、特徴ベクトルの値は、暗号化される前の平文である。第一レスポンスには、暗号化特徴ベクトルの値が埋め込まれる。
【００２９】
暗号の加法的準同型性により、暗号文を元とする有限群における群演算で暗号文Ｅ（ｍ１），Ｅ（ｍ２）を結合すると、平文を元とする有限群における群演算でもとの平文ｍ１，ｍ２を結合した平文ｍ１＋ｍ２を暗号化した暗号文Ｅ（ｍ１＋ｍ２）になる。ここで、ｍ１及びｍ２は、平文を表わす。Ｅは、暗号化変換を表わす。「＋」は、平文または暗号文を元とする有限群における群演算を表わす。
有限群における群演算で有限群の元ａをｎ個（ｎは、整数。）結合した元を「ｎ・ａ」と記述すると、ｎ・Ｅ（ｍ）＝Ｅ（ｎ・ｍ）である。ここで、ｍは、平文を表わす。この演算のことを「スカラー倍」と呼ぶ。なお、ここでは有限群の群演算を加法として記述しているが、有限群の群演算を乗法として記述する場合、同じ演算を「累乗」と呼び、「ｎａ」のように記述する。
平文が、所定の数を法とする整数であるとすると、平文を元とする有限群は、環（または体）になる。環の演算には、加法と乗法とがある。平文を元とする有限環における加法は、暗号文を元とする有限群における群演算に対応づけられる。所定の数を法とする整数を元とする有限環における乗法は、スカラー倍と一致する。すなわち、平文を元とする有限環における乗法は、暗号文を元とする有限群における元のスカラー倍に対応づけられる。
平文を元とする有限環の乗法における元ａの逆元を「ａ−１」と記述する。平文ｍの逆元ｍ−１が存在する場合、暗号文を元とする有限群の群演算でＥ（ｎ・ｍ）をｍ−１個結合すると、平文ｎを暗号化した暗号文Ｅ（ｎ）になる。
生体認証システム１００は、このことを利用する。
【００３０】
特徴ベクトルが、０以上ｑ未満の整数を成分とするＴ次元ベクトル（ｙ１，ｙ２，…，ｙＴ）（Ｔは、１以上の整数。）であるとする。ただし、ｑは、有限環の位数であって、２以上の整数である。なお、実際の特徴ベクトルの成分は、例えば０か１かなど、限られた値しかとらないものであってもよい。
第一チャレンジ生成工程Ｓ７０１において、乱数生成部３０３は、０以上ｑ未満の整数のなかからランダムに選択した整数を、平文としての乱数とする。乱数生成部３０３は、Ｔ個の平文としての乱数ｘ１，ｘ２，…，ｘＴを生成する。これを、特徴ベクトルと同じＴ次元のベクトル（ｘ１，ｘ２，…，ｘＴ）とみなす。
暗号化乱数生成部３０４は、Ｔ次元ベクトル（ｘ１，ｘ２，…，ｘＴ）の各成分を、暗号化変換したＴ次元ベクトル（Ｅ（ｘ１），Ｅ（ｘ２），…，Ｅ（ｘＴ））を生成する。これが、第一チャレンジである。
【００３１】
第一レスポンス生成工程Ｓ７０７において、暗号化データ埋め込み部２１７は、第一チャレンジ（Ｅ（ｘ１），Ｅ（ｘ２），…，Ｅ（ｘＴ））の各成分を、特徴ベクトル（ｙ１，ｙ２，…，ｙＴ）の対応する成分でスカラー倍して、Ｔ次元ベクトル（ｙ１・Ｅ（ｘ１），ｙ２・Ｅ（ｘ２），…，ｙＴ・Ｅ（ｘＴ））を算出する。暗号の加法的準同型性より、算出したＴ次元ベクトルの各成分ｙｉ・Ｅ（ｘｉ）（ｉは、１以上Ｔ以下の整数。）は、特徴ベクトルの成分ｙｉと乱数ｘｉとの積ｙｉ・ｘｉを暗号化変換した暗号文Ｅ（ｙｉ・ｘｉ）になる。
原理的には、これをそのまま第一レスポンスとしてもよいが、そうすると、第一チャレンジと第一レスポンスとの間の関係から、特徴ベクトルの値が計算できる可能性がある。
これを防ぐため、暗号化データ埋め込み部２１７は、乱数生成部２１５が生成した乱数を使ってランダム化処理をする。乱数生成部２１５が生成する乱数は、平文を暗号化するために使用する乱数である。暗号化データ埋め込み部２１７は、乱数生成部２１５が生成した乱数を使って、平文「０」を暗号化した暗号文Ｅ（０）をＴ個生成する。生体認証システム１００が利用する暗号方式は、１つの平文に対応する暗号文が複数あり、そのなかからランダムに暗号文を選択することにより、暗号文から平文に関する情報が漏れるのを防ぐ。したがって、平文「０」に対応する暗号文Ｅ（０）も複数あり、暗号化データ埋め込み部２１７が生成するＴ個の暗号文Ｅ（０）は、通常、互いに異なっている。そこで、これをＥ０１，Ｅ０２，…，Ｅ０Ｔと記述する。暗号化データ埋め込み部２１７は、暗号文を元とする有限群における群演算により、算出したＴ次元ベクトル（ｙ１・Ｅ（ｘ１），ｙ２・Ｅ（ｘ２），…，ｙＴ・Ｅ（ｘＴ））の各成分と、算出した暗号文Ｅ０１，Ｅ０２，…，Ｅ０Ｔとを、それぞれ結合して、Ｔ次元ベクトル（ｙ１・Ｅ（ｘ１）＋Ｅ０１，ｙ２・Ｅ（ｘ２）＋Ｅ０２，…，ｙＴ・Ｅ（ｘＴ）＋Ｅ０Ｔ）を算出する。暗号の加法的準同型性より、算出したＴ次元ベクトルの各成分ｙｉ・Ｅ（ｘｉ）＋Ｅ０ｉ（ｉは、１以上Ｔ以下の整数。）は、特徴ベクトルの成分ｙｉと乱数ｘｉとの積ｙｉ・ｘｉを暗号化変換した暗号文Ｅ（ｙｉ・ｘｉ）になるが、暗号文Ｅ０ｉと結合する前の暗号文とは、異なる暗号文に変わっている。
このＴ次元ベクトル（ｙ１・Ｅ（ｘ１）＋Ｅ０１，ｙ２・Ｅ（ｘ２）＋Ｅ０２，…，ｙＴ・Ｅ（ｘＴ）＋Ｅ０Ｔ）＝（Ｅ（ｙ１・ｘ１），Ｅ（ｙ２・ｘ２），…，Ｅ（ｙＴ，ｘＴ））が、第一レスポンスである。
【００３２】
暗号化生体情報抽出工程Ｓ７１０において、暗号化データ抽出部３０５は、乱数記憶部３２２が記憶したＴ個の乱数ｘ１，ｘ２，…，ｘＴそれぞれについて、ｑを法とする整数の乗法における逆元（逆数）ｘ１−１，ｘ２−１，…，ｘＴ−１を算出する。ｑが素数の場合、ｑを法とする整数を元とする有限環は体になるから、必ず逆元が存在する。また、ｑが素数でない場合、乗法における逆元が存在しない可能性があるが、ｑが十分大きければその可能性は極めて低く、無視してよい。
暗号化データ抽出部３０５は、第一レスポンス（Ｅ（ｙ１・ｘ１），Ｅ（ｙ２・ｘ２），…，Ｅ（ｙＴ，ｘＴ））の各成分を、算出した逆元でスカラー倍して、Ｔ次元ベクトル（ｘ１−１・Ｅ（ｙ１，ｘ１），ｘ２−１・Ｅ（ｙ２，ｘ２），…ｘＴ−１・Ｅ（ｙＴ・ｘＴ））を算出する。暗号の加法的準同型性より、算出したＴ次元ベクトルの各成分ｘｉ−１・Ｅ（ｙｉ・ｘｉ）（ｉは、１以上Ｔ以下の整数。）は、特徴ベクトルの成分ｙｉを暗号化変換した暗号文Ｅ（ｙｉ）になる。
このようにして、認証装置１０２は、暗号化特徴ベクトルＣ’を算出する。
【００３３】
ｑを法とする整数の乗法における逆元は、容易に算出できる。したがって、ｘｉを知っていれば、ｘｉ−１を容易に算出でき、したがって、第一レスポンスから暗号化特徴ベクトルＣ’を算出することも容易である。しかし、ｘｉを知らなければ、第一レスポンスから暗号化特徴ベクトルＣ’を算出することは事実上不可能である。すなわち、第一チャレンジ生成工程Ｓ７０１で乱数生成部３０３が生成する平文としての乱数は、認証装置１０２だけが知っている秘密鍵（一時秘密鍵）であり、平文としての乱数を暗号化した第一チャレンジは、特徴ベクトルから第一レスポンスを生成するための公開鍵（一時公開鍵）である。
ここで、第一レスポンスは、特徴ベクトルを認証装置１０２の公開鍵で暗号化したものであると同時に、復号装置１０３の公開鍵ｐｋでも暗号化したものであり、特徴ベクトルを二重に暗号化したものと言える。認証装置１０２は、秘密鍵で第一レスポンスを復号できるが、その結果として得られるのは、特徴ベクトルを復号装置１０３の公開鍵ｐｋで暗号化した暗号化特徴ベクトルである。暗号化特徴ベクトルを更に復号して特徴ベクトルを得るには、復号装置１０３の秘密鍵ｓｋが必要である。認証装置１０２は、公開鍵ｐｋに対応付けられている秘密鍵ｓｋを知らないので、暗号化特徴ベクトルＣや暗号化特徴ベクトルＣ’を復号することはできない。
なお、認証装置１０２になりすました装置が、復号装置１０３の公開鍵ｐｋを使った暗号化変換により第一チャレンジを生成するのではなく、秘密鍵ｓｋ’と公開鍵ｐｋ’との組を生成し、生成した公開鍵ｐｋ’を使った暗号化変換により第一チャレンジを生成したとしても、第一レスポンスから暗号化特徴ベクトルＣ’を復号することはできない。第一レスポンスの各成分には、復号装置１０３の公開鍵ｐｋを使った暗号化変換により生成したＥ０ｉが結合されるから、その時点で、第一レスポンスは、いかなる秘密鍵でも復号できない無意味なデータになる。すなわち、第一レスポンスが意味のあるデータとなるためには、証明装置１０１が記憶している公開鍵と、認証装置１０２が記憶している公開鍵とが同じであることが条件となる。
【００３４】
また、第二チャレンジ生成工程Ｓ７１２において、認証装置１０２の乱数生成部３０３が生成する乱数にも、平文としての乱数と、暗号化のために使用する乱数との２種類がある。乱数記憶工程Ｓ７１３で認証装置１０２の乱数記憶部３２２が格納する乱数は、このうち、平文としての乱数だけでよい。
第一チャレンジ生成工程Ｓ７０１で乱数生成部３０３が生成する平文としての乱数が、第一レスポンスを復号するための鍵（一時秘密鍵）であるのと同様、第二チャレンジ生成工程Ｓ７１２で乱数生成部３０３が生成する平文としての乱数は、第二レスポンスを復号するための鍵（一時鍵）である。
ただし、第二チャレンジと第二レスポンスとの関係は、第一チャレンジと第一レスポンスとの関係とは異なる。第一チャレンジは、認証装置１０２の一回限りの公開鍵である。証明装置１０１は、認証装置１０２の公開鍵と、復号装置１０３の公開鍵とを使って、特徴ベクトルを二重に暗号化することにより、第一レスポンスを生成する。これに対し、第二チャレンジは、それ自身が暗号化されたデータである。第二チャレンジは、認証装置１０２の鍵を使って、復号装置１０３の公開鍵で暗号化されたデータを更に暗号化したデータである。すなわち、第二チャレンジは、二重に暗号化されたデータである。復号装置１０３は、復号装置１０３の秘密鍵を使って、第二チャレンジを復号して第二レスポンスを生成する。復号装置１０３は、二重に暗号化された第二チャレンジを復号して、認証装置１０２の鍵だけで暗号化されたデータを生成する。認証装置１０２は、認証装置１０２の鍵を使って、第二レスポンスを復号することにより、平文の類似度を得る。
平文の類似度を算出するための計算は、いくつかの段階に分けられ、それぞれの段階が、例えば、第二チャレンジ生成工程Ｓ７１２、第二レスポンス生成工程Ｓ７１６などで実行される。第二チャレンジ生成工程Ｓ７１２において、認証装置１０２は、特徴ベクトルが暗号化されたままの状態で、類似度算出のための計算の一部を実行する。したがって、この段階で、認証装置１０２が特徴ベクトルを知ることはできない。第二チャレンジは、既に一部の計算が終わった状態のデータを二重に暗号化したものである。既に一部の計算が終わっているので、第二チャレンジのなかには、もとの特徴ベクトルの情報すべてが含まれるのではなく、類似度の計算に必要な情報だけが含まれている。第二レスポンス生成工程Ｓ７１６において、復号装置１０３は、第二チャレンジを復号して、類似度の計算に必要な情報を認証装置１０２の鍵で暗号化したデータを得る。復号装置１０３は、認証装置１０２の鍵で暗号化されたままの状態で、類似度算出のための計算の一部を実行する。したがって、この段階で、復号装置１０３が特徴ベクトルや平文の類似度を知ることはできない。第二レスポンスは、既にほとんどの計算が終わった状態のデータを暗号化したものである。既にほとんどの計算が終わっているので、第二レスポンスのなかには、もとの特徴ベクトルの情報は含まれていない。平文類似度算出工程Ｓ７１９において、認証装置１０２は、第二レスポンスを復号し、類似度を算出する。平文の類似度そのものは、平文類似度算出工程Ｓ７１９より前には現れない。
また、平文の類似度は、登録用の特徴ベクトルｂと認証用の特徴ベクトルｂ’とがどの程度類似しているかのみを示す情報である。したがって、平文の類似度から特徴ベクトルや生体情報を計算することは困難である。
【００３５】
次に、各段階における処理の詳細について、具体的な暗号方式を使った例を説明する。この実施の形態では、岡本−高島暗号方式を使った例について説明する。
【００３６】
まず、岡本−高島暗号方式の概要を説明する。
【００３７】
ｑは、２以上の素数である。Ｇ及びＧＴは、位数ｑの有限群である。なお、有限群Ｇ及び有限群ＧＴにおける群演算は、乗法として記述する。Ｆｑは、０以上ｑ未満の整数を元とする有限体である。ｅは、有限群Ｇの２つの元の組を有限群ＧＴの元に対応づけるペアリングＧ×Ｇ→ＧＴである。ペアリングｅは、双線形性と非退化性とを満たす。双線形性とは、有限群Ｇの任意の２つの元ｕ，ｖと、有限体Ｆｑの任意の２つの元ａ，ｂとに対して、ｅ（ｕａ，ｖｂ）＝ｅ（ｕ，ｖ）ａｂであることを言う。また、非退化性とは、有限群Ｇの元のなかに、ｅ（ｇ，ｇ）≠１である元ｇが少なくとも１つ存在することを言う。なお、ペアリングｅは、非対称ペアリングであってもよい。
【００３８】
Ｖは、ｎ個の有限群Ｇの直積集合Ｇ×Ｇ×…×Ｇである。
Ｖにおける加法「＋」は、Ｖの任意の２つの元ｘ＝（ｇｘ１，ｇｘ２，…，ｇｘｎ），ｙ＝（ｇｙ１，ｇｙ２，…，ｇｙｎ）に対して、Ｖの元（ｇｘ１＋ｙ１，ｇｘ２＋ｙ２，…，ｇｘｎ＋ｙｎ）を、２つの元ｘ，ｙの加法「＋」による結合ｘ＋ｙとして定義する。
Ｖにおけるスカラー倍は、Ｖの任意の元ｘ＝（ｇｘ１，ｇｘ２，…，ｇｘｎ）と、有限体Ｆｑの任意の元αとに対して、Ｖの元（ｇαｘ１，ｇαｘ２，…，ｇαｘｎ）を、元ｘを元αでスカラー倍した元αｘとして定義する。
このとき、Ｖは、ベクトル空間となる。ベクトル空間Ｖの元を「ベクトル」と呼ぶ。
【００３９】
また、ベクトル空間Ｖ同士のペアリングｅ：Ｖ×Ｖ→ＧＴは、ベクトル空間Ｖにおける任意の２つのベクトルｕ＝（ｕ１，ｕ２，…，ｕｎ），ｖ＝（ｖ１，ｖ２，…，ｖｎ）に対して、有限群ＧＴの元Πｉ［ｅ（ｕｉ，ｖｉ）］（ただし、ｉ∈｛１，２，…，ｎ｝。）を、２つのベクトルｕ，ｖのペアリングｅ（ｕ，ｖ）として定義する。
【００４０】
また、Ａは、ベクトル空間Ｖにおけるｎ個のベクトルの順序列（ａ１，ａ２，…，ａｎ）であり、ベクトルａｉ＝（ａｉ１，ａｉ２，…，ａｉｎ）は、ｉ＝ｊのときａｉｊ＝ｇ、ｉ≠ｊのときａｉｊ＝１である（１は、有限群Ｇの単位元。）と定義する。
このとき、Ａは、ベクトル空間Ｖの基底となる。基底Ａを標準基底と呼ぶ。
【００４１】
ベクトル空間Ｖにおけるディストーション写像φｉ，ｊ：Ｖ→Ｖは、ベクトル空間Ｖにおける任意のベクトルｘ＝ｘ１ａ１＋ｘ２ａ２＋…＋ｘｎａｎと、１以上ｎ以下の任意の２つの整数ｉ，ｊとに対して、ベクトルｘｊａｉを、ベクトルｘのディストーション写像φｉ，ｊ（ｘ）として定義する。なお、ディストーション写像φｉ，ｊは、コンピュータを用いて効率よく計算可能であるものとする。
【００４２】
ベクトル空間Ｖは、標準基底があり、ベクトル空間同士のペアリングが定義され、計算可能なディストーション写像が定義されている。このようなベクトル空間を、双対ペアリングベクトル空間と呼ぶ。
【００４３】
Ｘは、有限体Ｆｑから一様ランダムに選んだｎ２個の値χｉ，ｊ（ｉ，ｊは、１以上ｎ以下の整数。）をｉ行ｊ列の成分とするｎ次の正方行列とする。ｑが十分大きければ、正方行列Ｘは、極めて高い確率で正則行列となる。
【００４４】
Ｂは、ベクトル空間Ｖにおけるｎ個のベクトルの順序列（ь１，ь２，…，ьｎ）であり、ьｉ＝Σｊ［χｉ，ｊａｊ］（ただし、ｉ，ｊは、１以上ｎ以下の整数。）と定義する。正方行列Ｘが正則行列であれば、Ｂは、Ａと同様、ベクトル空間Ｖの基底となる。基底Ｂをランダム基底と呼ぶ。
【００４５】
このとき、以下の性質が成り立つ。
ｎ個の有限体Ｆｑの直積Ｆｑｎの要素（ｘ１，ｘ２，…，ｘｎ）が与えられたとき、ベクトル空間Ｖにおけるベクトルｘ＝ｘ１ь１＋ｘ２ь２＋…＋ｘｎьｎは、容易に計算できる。また、ベクトル空間Ｖにおけるベクトルｘ＝ｘ１ь１＋ｘ２ь２＋…＋ｘＬьＬ（Ｌは、２以上ｎ以下の整数。）が与えられたとき、正則行列Ｘを使えば、ベクトル空間Ｖにおけるベクトルｙ＝ｘ１ь１＋ｘ２ь２＋ｘｌьｌ（ｌは、１以上Ｌ未満の整数。）を計算できる。しかし、正則行列Ｘを使わなければ、ベクトルｙを計算することは、一般化されたディフィー−ヘルマン計算問題と同程度に困難である。
【００４６】
図１１は、正則行列Ｘを使ってベクトル分解問題を解くベクトル分解処理Ｓ５４０の流れの一例を示すフローチャート図である。
ベクトル分解処理Ｓ５４０は、ベクトル空間Ｖにおけるベクトルｘと、ベクトルｘから取り出したいベクトル成分＜ь１，ь２，…，ьｌ＞と、ｎ次の正則行列Ｘと、ランダム基底Ｂとを入力し、ベクトル空間Ｖにおけるベクトルｙ＝ΣｉΣｊΣｋ［ｔｉ，ｊχｊ，ｋφｋ，ｉ（ｘ）］（ｉは、１以上Ｌ以下の整数。ｊは、１以上ｌ以下の整数。ｋは、１以上Ｌ以下の整数。ｔｉ，ｊは、正則行列Ｘの逆行列Ｔ＝Ｘ−１のｉ行ｊ列成分。）を出力する。ベクトル分解処理Ｓ５４０は、例えば、逆行列算出工程Ｓ５４１と、第一初期化工程Ｓ５４２と、第一繰り返し工程Ｓ５４３と、第二初期化工程Ｓ５４４と、第二繰り返し工程Ｓ５４５と、第三初期化工程Ｓ５４６と、第三繰り返し工程Ｓ５４７と、係数累計工程Ｓ５４８と、写像計算工程Ｓ５４９と、スカラー倍工程Ｓ５５０と、ベクトル累計工程Ｓ５５１とを有する。
【００４７】
最初に、逆行列算出工程Ｓ５４１において、正則行列Ｘの逆行列Ｘ−１を算出する。
第一初期化工程Ｓ５４２において、ベクトル空間Ｖの元ｙを０に初期化する。整数ｉを０に初期化する。
第一繰り返し工程Ｓ５４３において、整数ｉに１を加える。整数ｉが整数Ｌより大きい場合、元ｙを出力して、ベクトル分解処理Ｓ５４０を終了する。整数ｉが整数Ｌ以下である場合、第二初期化工程Ｓ５４４へ進む。
第二初期化工程Ｓ５４４において、整数ｋを０に初期化する。
第二繰り返し工程Ｓ５４５において、整数ｋに１を加える。整数ｋが整数Ｌより大きい場合、第一繰り返し工程Ｓ５４３に戻る。整数ｋが整数Ｌ以下である場合、第三初期化工程Ｓ５４６へ進む。
第三初期化工程Ｓ５４６において、整数ｊを０に初期化し、係数κを０に初期化する。
第三繰り返し工程Ｓ５４７において、整数ｊに１を加える。整数ｊが整数ｌより大きい場合、写像計算工程Ｓ５４９へ進む。整数ｊが整数ｌ以下である場合、係数累計工程Ｓ５４８へ進む。
係数累計工程Ｓ５４８において、逆行列算出工程Ｓ５４１で算出した逆行列Ｘ−１のｉ行ｊ列の成分ｔｉ，ｊと、正則行列Ｘのｊ行ｋ列の成分χｊ，ｋとの積を計算する。計算した積を係数κに加え、第三繰り返し工程Ｓ５４７に戻る。
写像計算工程Ｓ５４９において、ベクトル空間Ｖにおけるベクトルｘのディストーション写像φｋ，ｉ（ｘ）を計算して、ベクトルφとする。
スカラー倍工程Ｓ５５０において、写像計算工程Ｓ５４９で計算したベクトルφ＝φｋ，ｉ（ｘ）をκ倍したベクトルφ’＝κφを計算する。
ベクトル累計工程Ｓ５５１において、スカラー倍工程Ｓ５５０で計算したベクトルφ’＝κφｋ，ｉ（ｘ）をベクトルｙに加え、第二繰り返し工程Ｓ５４５に戻る。
【００４８】
岡本−高島暗号方式は、正則行列Ｘを秘密鍵とすることで、トラップドア関数を実現する。
【００４９】
例えば、有限体Ｆｑの元ｍを平文とし、ベクトル空間Ｖにおけるベクトルｍь１＋ｒ２ь２＋…＋ｒｎьｎを、平文ｍを暗号化した暗号文Ｅ（ｍ）とする。ただし、ｒｉ（ｉは、２以上ｎ以下の整数。）は、有限体Ｆｑから一様ランダムに選択した元である。復号時には、秘密鍵である正則行列Ｘを使って、ベクトル分解処理Ｓ５４０を実行し、暗号文Ｅ（ｍ）から、ベクトル空間Ｖにおけるベクトルｍь１を算出することにより、ランダム化要素であるｒｉを消去する。
【００５０】
図１２は、この実施の形態における鍵生成部４０１の構成の一例を示す詳細ブロック図である。
復号装置１０３の鍵生成部４０１は、例えば、群決定部４２１と、標準基底設定部４２２と、乱数生成部４２３と、行列式算出部４２４と、正則行列設定部４２５と、ランダム基底算出部４２６とを有する。
群決定部４２１は、処理装置９１１を用いて、セキュリティレベルに応じて定まる大きさ（ビット数）に基づいて、素数ｑを生成する。素数ｑが大きいほど、安全性は高くなるが、暗号文が大きくなり、暗号処理や復号処理に時間がかかる。素数ｑの大きさは、例えば２００ビットや１０２４ビットなどである。群決定部４２１は、生成した素数ｑに基づいて、有限群Ｇと有限群ＧＴとを決定する。群決定部４２１が決定する有限群Ｇと有限群ＧＴとは、ともに位数がｑであり、ペアリングｅ：Ｇ×Ｇ→ＧＴを持つ。群決定部４２１は、有限群Ｇの生成元ｇを算出する。なお、設定の順序は異なっていてもよく、例えば、最初に有限群Ｇを決定してから、有限群Ｇの位数を算出し、有限群Ｇの位数が、セキュリティレベルを満たす大きさの素数であるかを判定する構成であってもよい。
標準基底設定部４２２は、処理装置９１１を用いて、セキュリティレベルに応じて定まる次元ｎに基づいて、ｎ次元のベクトル空間Ｖを設定し、ベクトル空間Ｖの標準基底Ａを設定する。次元ｎが大きいほど、安全性は高くなるが、暗号文が大きくなり、暗号処理や復号処理に時間がかかる。次元ｎは、例えば３などである。
乱数生成部４２３は、処理装置９１１を用いて、群決定部４２１が決定した有限群Ｇの位数ｑに基づいて、ｎ２個の乱数χｉ，ｊ（ｉ，ｊは、１以上ｎ以下の整数。）を生成する。乱数生成部４２３が生成する乱数χｉ，ｊは、０以上ｑ未満の整数のなかから、一様ランダムに選択した整数である。
行列式算出部４２４は、処理装置９１１を用いて、乱数生成部４２３が生成したｎ２個の乱数χｉ，ｊに基づいて、ｎ次の正方行列Ｘを生成する。行列式算出部４２４が生成する正方行列Ｘは、それぞれの乱数χｉ，ｊをｉ行ｊ列の成分とする行列である。行列式算出部４２４は、処理装置９１１を用いて、生成した正方行列Ｘの行列式｜Ｘ｜を算出する。
正則行列設定部４２５は、処理装置９１１を用いて、行列式算出部４２４が算出した行列式｜Ｘ｜が０でない場合に、行列式算出部４２４が生成した正方行列Ｘを、正則行列Ｘとして設定する。
ランダム基底算出部４２６は、処理装置９１１を用いて、標準基底設定部４２２が設定した標準基底Ａと、正則行列設定部４２５が設定した正則行列Ｘとに基づいて、ランダム基底Ｂを算出する。ランダム基底算出部４２６が算出するランダム基底Ｂの各ベクトルьｉ（ｉは、１以上ｎ以下の整数。）は、ьｉ＝Σｊ［χｉ，ｊａｊ］（ｊは、１以上ｎ以下の整数。）である。ランダム基底算出部４２６は、例えば次のようにして、ランダム基底Ｂのｉ番目のベクトルьｉを算出する。ランダム基底算出部４２６は、１以上ｎ以下のすべての整数ｊについて、正則行列Ｘのｉ行ｊ列の成分χｉ，ｊと、標準基底Ａのｊ番目のベクトルａｊとに基づいて、ベクトル空間Ｖにおけるスカラー倍により、ベクトルａｊをχｉ，ｊ倍したベクトルχｉ，ｊａｊを算出する。ランダム基底算出部４２６は、ベクトル空間Ｖにおける加法により、算出したｎ個のベクトルχｉ，ｊａｊを結合したベクトルΣｊ［χｉ，ｊａｊ］を算出する。
【００５１】
復号装置１０３の公開鍵記憶部４０３は、記憶装置９１４を用いて、公開鍵ｐｋとして、群決定部４２１が設定した位数ｑとペアリングｅと有限群ＧＴと、標準基底設定部４２２が設定したベクトル空間Ｖと標準基底Ａと、ランダム基底算出部４２６が設定したランダム基底Ｂとの組（ｑ，Ｖ，ｅ，ＧＴ，Ａ，Ｂ）を格納する。
復号装置１０３の秘密鍵記憶部４１３は、記憶装置９１４を用いて、秘密鍵ｓｋとして、正則行列設定部４２５が設定した正則行列Ｘを格納する。
【００５２】
図１３は、この実施の形態における鍵生成工程Ｓ５０１の処理の流れの一例を示すフローチャート図である。
鍵生成工程Ｓ５０１では、復号装置１０３が、公開鍵ｐｋと秘密鍵ｓｋとの組を生成する。なお、ユーザごとに異なる公開鍵ｐｋと秘密鍵ｓｋとの組を生成する構成であってもよいし、システム全体として１つの公開鍵ｐｋと秘密鍵ｓｋとの組を生成する構成であってもよい。
鍵生成工程Ｓ５０１は、例えば、群決定工程Ｓ５１１と、標準基底設定工程Ｓ５１２と、行列生成工程Ｓ５１３と、正則判定工程Ｓ５１４と、ランダム基底算出工程Ｓ５１５とを有する。
【００５３】
最初に、群決定工程Ｓ５１１において、群決定部４２１が、処理装置９１１を用いて、位数ｑと、位数ｑの有限群Ｇ及び有限群ＧＴと、有限群Ｇの生成元ｇとを決定する。公開鍵記憶部４０３は、記憶装置９１４を用いて、公開鍵ｐｋの一部として、群決定部４２１が決定した位数ｑと有限群ＧＴとを記憶する。
標準基底設定工程Ｓ５１２において、標準基底設定部４２２が、処理装置９１１を用いて、群決定工程Ｓ５１１で群決定部４２１が決定した有限群Ｇに基づいて、ベクトル空間Ｖと、ベクトル空間Ｖの標準基底Ａとを設定する。公開鍵記憶部４０３は、記憶装置９１４を用いて、公開鍵ｐｋの一部として、標準基底設定部４２２が設定したベクトル空間Ｖと標準基底Ａとを記憶する。
行列生成工程Ｓ５１３において、乱数生成部４２３が、処理装置９１１を用いて、ｎ２個の乱数χｉ，ｊを生成する。行列式算出部４２４が、処理装置９１１を用いて、乱数生成部４２３が生成したｎ２個の乱数χｉ，ｊに基づいて、ｎ次の正方行列Ｘを生成する。
正則判定工程Ｓ５１４において、行列式算出部４２４が、処理装置９１１を用いて、行列生成工程Ｓ５１３で生成した正方行列Ｘの行列式｜Ｘ｜を計算する。
行列式算出部４２４が計算した行列式｜Ｘ｜が０である場合、行列式算出部４２４が、行列生成工程Ｓ５１３に処理を戻し、乱数生成部４２３が乱数を生成し直す。
行列式算出部４２４が計算した行列式｜Ｘ｜が０でない場合、正則行列設定部４２５が、処理装置９１１を用いて、正方行列Ｘを正則行列Ｘとして設定する。秘密鍵記憶部４１３が、記憶装置９１４を用いて、秘密鍵ｓｋとして、正則行列設定部４２５が設定した正則行列Ｘを記憶する。
ランダム基底算出工程Ｓ５１５において、ランダム基底算出部４２６が、処理装置９１１を用いて、標準基底設定工程Ｓ５１２で標準基底設定部４２２が設定した標準基底Ａと、正則判定工程Ｓ５１４で正則行列設定部４２５が設定した正則行列Ｘとに基づいて、ランダム基底Ｂを算出する。公開鍵記憶部４０３が、記憶装置９１４を用いて、公開鍵ｐｋの一部として、ランダム基底算出部４２６が算出したランダム基底Ｂを記憶する。
【００５４】
このようにして公開鍵記憶部４０３が記憶した公開鍵ｐｋ＝（ｑ，Ｖ，ｅ，ＧＴ，Ａ，Ｂ）は、公開鍵送信部４０８が認証装置１０２などに対して送信し、認証装置１０２などが受信して格納する。
【００５５】
図１４は、この実施の形態における特徴ベクトル暗号化工程Ｓ６０３の処理の流れの一例を示すフローチャート図である。
特徴ベクトル暗号化工程Ｓ６０３では、登録装置１０４が、特徴ベクトルｂを暗号化して暗号化特徴ベクトルＣを生成する。特徴ベクトル暗号化工程Ｓ６０３は、例えば、初期化工程Ｓ６１０と、繰り返し工程Ｓ６１１と、乱数生成工程Ｓ６１２と、ベクトル算出工程Ｓ６１３とを有する。
【００５６】
登録装置１０４の特徴ベクトル形成部２０４が生成し、暗号化データ生成部２０６が暗号化する特徴ベクトルｂは、例えば、整数を成分とするＴ次元のベクトル（ｂ１，ｂ２，…，ｂＴ）（Ｔは、１以上の整数。）である。特徴ベクトルｂの各成分ｂｉ（ｉは、１以上Ｔ以下の整数。）は、例えば、０か１かの２つの値のうちのいずれかであり、生体情報が、その成分に対応する特徴を持っているか否かを表わす。例えば、特徴ベクトル形成部２０４は、生体情報抽出部２０３が指紋に光を当てて紋様を撮影した画像（生体情報）を、Ｔ個の領域に分割し、分割したそれぞれの領域のなかに特徴点（例えば紋様の端点や分岐点など）があるか否かを判定する。特徴ベクトル形成部２０４は、特徴点がある場合に１、特徴点がない場合に０を、その領域に対応する特徴ベクトルの成分に設定する。
暗号化データ生成部２０６が生成する暗号化特徴ベクトルＣは、ベクトル空間Ｖにおけるベクトルを成分とするＴ次元のベクトル（ｃ１，ｃ２，…，ｃＴ）である。
【００５７】
最初に、初期化工程Ｓ６１０において、暗号化データ生成部２０６が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ６１１において、暗号化データ生成部２０６が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、暗号化データ生成部２０６は、特徴ベクトル暗号化工程Ｓ６０３を終了する。整数ｉがＴ以下である場合、暗号化データ生成部２０６は、乱数生成工程Ｓ６１２へ処理を進め、暗号化特徴ベクトルＣのｉ番目の成分ｃｉを生成する。
乱数生成工程Ｓ６１２において、乱数生成部２０５が、処理装置９１１を用いて、公開鍵記憶部２０２が記憶した公開鍵ｐｋの一部である位数ｑに基づいて、（ｎ−１）個の乱数ｒｊ，ｉ（ｊは、２以上ｎ以下の整数。）を生成する。乱数生成部２０５が生成する乱数ｒｊ，ｉは、０以上ｑ未満の整数のなかから、一様ランダムに選択した整数である。
ベクトル算出工程Ｓ６１３において、暗号化データ生成部２０６が、処理装置９１１を用いて、公開鍵記憶部２０２が記憶した公開鍵ｐｋの一部であるランダム基底Ｂと、特徴ベクトル形成部２０４が生成した特徴ベクトルｂのｉ番目の成分ｂｉと、乱数生成工程Ｓ６１２で乱数生成部２０５が生成した（ｎ−１）個の乱数ｒｊ，ｉとに基づいて、暗号化特徴ベクトルＣのｉ番目の成分ｃｉを算出する。暗号化データ生成部２０６が算出する暗号化特徴ベクトルＣのｉ番目の成分ｃｉは、ベクトル空間Ｖにおけるスカラー倍によりランダム基底Ｂの最初のベクトルь１を整数ｂｉでスカラー倍したベクトルｂｉь１と、ベクトル空間Ｖにおけるスカラー倍によりランダム基底Ｂの２番目以降のベクトルьｊ（ｊは、２以上ｎ以下の整数。）をそれぞれ乱数ｒｊ，ｉでスカラー倍した（ｎ−１）個のベクトルｒｊ，ｉьｊとを、ベクトル空間Ｖにおける加法により結合したベクトルｂｉь１＋Σｊ［ｒｊ，ｉьｊ］（ｊは、２以上ｎ以下の整数。）である。例えば、暗号化データ生成部２０６は、ランダム基底Ｂの最初のベクトルь１と、特徴ベクトルｂのｉ番目の成分ｂｉとに基づいて、ベクトル空間Ｖにおけるスカラー倍によりベクトルь１を整数ｂｉでスカラー倍したベクトルｂｉь１を算出する。また、暗号化データ生成部２０６は、２以上ｎ以下のすべての整数ｊについて、ランダム基底Ｂのｊ番目のベクトルьｊと、乱数生成部２０５が生成した（ｎ−１）個の乱数のうち（ｊ−１）番目の乱数ｒｊ，ｉとに基づいて、ベクトル空間Ｖにおけるスカラー倍によりベクトルьｊを乱数ｒｊ，ｉでスカラー倍したベクトルｒｊ，ｉьｊを算出する。暗号化データ生成部２０６は、ベクトル空間Ｖにおける加法により、算出したベクトルｂｉь１と、算出した（ｎ−１）個のベクトルｒｊ，ｉьｊとをすべて結合したベクトルｂｉь１＋Σｊ［ｒｊ，ｉьｊ］（ｊは、２以上ｎ以下の整数。）を算出する。
暗号化データ生成部２０６は、繰り返し工程Ｓ６１１に処理を戻し、暗号化特徴ベクトルＣの次の成分を生成する。
【００５８】
このようにして暗号化データ生成部２０６が生成した暗号化特徴ベクトルＣは、暗号化データ送信部２０１が認証装置１０２に対して送信し、認証装置１０２が受信して格納する。
【００５９】
図１５は、この実施の形態における第一チャレンジ生成工程Ｓ７０１の処理の流れの一例を示すフローチャート図である。
第一チャレンジ生成工程Ｓ７０１では、認証装置１０２が、第一チャレンジＲを生成する。第一チャレンジ生成工程Ｓ７０１は、例えば、初期化工程Ｓ７２９と、繰り返し工程Ｓ７２１と、乱数生成工程Ｓ７２２と、ベクトル算出工程Ｓ７２３とを有する。
認証装置１０２の暗号化乱数生成部３０４が生成する第一チャレンジＲは、ベクトル空間Ｖにおけるベクトルを成分とするＴ次元のベクトル（Ｒ１，Ｒ２，…，ＲＴ）である。
【００６０】
最初に、初期化工程Ｓ７２９において、暗号化乱数生成部３０４が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ７２１において、暗号化乱数生成部３０４が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、暗号化乱数生成部３０４は、第一チャレンジ生成工程Ｓ７０１を終了する。整数ｉがＴ以下である場合、暗号化乱数生成部３０４は、乱数生成工程Ｓ７２２へ処理を進め、第一チャレンジＲのｉ番目の成分Ｒｉを生成する。
乱数生成工程Ｓ７２２において、乱数生成部３０３が、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部である位数ｑに基づいて、ｎ個の乱数Ｒｊ，ｉ（ｊは、１以上ｎ以下の整数。）を生成する。乱数生成部３０３が生成する乱数Ｒｊ，ｉは、０以上ｑ未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部３２２が、記憶装置９１４を用いて、乱数生成部３０３が生成したｎ個の乱数Ｒｊ，ｉのうち最初の乱数Ｒ１，ｉを記憶する。
ベクトル算出工程Ｓ７２３において、暗号化乱数生成部３０４が、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるランダム基底Ｂと、乱数生成工程Ｓ７２２で乱数生成部３０３が生成したｎ個の乱数Ｒｊ，ｉとに基づいて、第一チャレンジＲのｉ番目の成分Ｒｉを算出する。暗号化乱数生成部３０４が算出する第一チャレンジＲのｉ番目の成分Ｒｉは、ベクトル空間Ｖにおけるスカラー倍によりランダム基底Ｂの各ベクトルьｊ（ｊは、１以上ｎ以下の整数。）をそれぞれ乱数Ｒｊ，ｉでスカラー倍したｎ個のベクトルＲｊ，ｉьｊを、ベクトル空間Ｖにおける加法により結合したベクトルΣｊ［Ｒｊ，ｉьｊ］（ｊは、１以上ｎ以下の整数。）である。例えば、暗号化乱数生成部３０４は、１以上ｎ以下のすべての整数ｊについて、ランダム基底Ｂのｊ番目のベクトルьｊと、乱数生成部２０５が生成したｎ個の乱数のうちｊ番目の乱数ｒｊ，ｉとに基づいて、ベクトル空間Ｖにおけるスカラー倍により、ベクトルьｊを乱数Ｒｊ，ｉでスカラー倍したベクトルＲｊ，ｉьｊを算出する。暗号化乱数生成部３０４は、ベクトル空間Ｖにおける加法により、算出したｎ個のベクトルＲｊ，ｉьｊを結合したベクトルΣｊ［Ｒｊ，ｉьｊ］（ｊは、１以上ｎ以下の整数。）を算出する。
暗号化乱数生成部３０４は、繰り返し工程Ｓ７２１に処理を戻し、第一チャレンジＲの次の成分を生成する。
【００６１】
このようにして暗号化乱数生成部３０４が生成した第一チャレンジＲは、第一チャレンジ送信部３１１が証明装置１０１に対して送信し、証明装置１０１が受信して処理をする。
【００６２】
第一チャレンジ生成工程Ｓ７０１において乱数生成部３０３が生成する乱数Ｒｊ，ｉ（ｉは、１以上Ｔ以下の整数。ｊは、１以上ｎ以下の整数。）は、全部でｎＴ個である。このうち、Ｔ個の乱数Ｒ１，ｉ（ｉは、１以上Ｔ以下の整数。）を、乱数記憶部３２２が記憶する。乱数記憶部３２２が記憶するＴ個の乱数Ｒ１，ｉは、平文としての乱数であり、残りの（ｎ−１）Ｔ個の乱数Ｒｊ，ｉ（ｉは、１以上Ｔ以下の整数。ｊは、２以上ｎ以下の整数。）は、暗号化のための乱数である。第一チャレンジＲの各成分Ｒｉは、平文としての乱数Ｒ１，ｉを暗号化したものである。
【００６３】
図１６は、この実施の形態における暗号化データ埋め込み部２１７の構成の一例を示す詳細ブロック図である。
証明装置１０１の暗号化データ埋め込み部２１７は、例えば、スカラー倍算出部２３１と、零生成部２３２と、ベクトル結合部２３３とを有する。
【００６４】
特徴ベクトル形成部２１４が生成し、暗号化データ埋め込み部２１７が暗号化する特徴ベクトルｂ’は、登録装置１０４の特徴ベクトル形成部２０４が生成する特徴ベクトルｂと同様、整数を成分とするＴ次元のベクトル（ｂ’１，ｂ’２，…，ｂ’Ｔ）である。
乱数生成部２１５は、処理装置９１１を用いて、公開鍵記憶部２１２が記憶した公開鍵ｐｋの一部である位数ｑに基づいて、（ｎ−１）Ｔ個の乱数Ｒ’ｊ，ｉ（ｉは、１以上Ｔ以下の整数。ｊは、２以上ｎ以下の整数。）を生成する。乱数生成部２１５が生成する乱数Ｒ’ｊ，ｉは、０以上ｑ未満の整数のなかから、一様ランダムに選択した整数である。
【００６５】
スカラー倍算出部２３１は、処理装置９１１を用いて、第一チャレンジ受信部２１１が受信した第一チャレンジＲと、特徴ベクトル形成部２１４が生成した特徴ベクトルｂ’とに基づいて、スカラー倍ベクトルЯを算出する。スカラー倍ベクトルЯは、第一チャレンジＲと同様に、ベクトル空間Ｖにおけるベクトルを成分とするＴ次元のベクトル（я１，я２，…，яＴ）である。スカラー倍算出部２３１が算出するスカラー倍ベクトルЯのｉ番目の成分яｉ（ｉは、１以上Ｔ以下の整数。）は、ベクトル空間Ｖにおけるスカラー倍により、第一チャレンジＲのｉ番目の成分Ｒｉを、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉでスカラー倍したベクトルｂ’ｉＲｉである。スカラー倍ベクトルЯの各成分は、特徴ベクトルｂ’の成分ｂ’ｉと、認証装置１０２が生成した平文としての乱数Ｒ１，ｉとの積を暗号化したものになる。
零生成部２３２は、処理装置９１１を用いて、公開鍵記憶部２０２が記憶した公開鍵ｐｋの一部であるランダム基底Ｂと、乱数生成部２１５が生成した（ｎ−１）Ｔ個の乱数Ｒ’ｊ，ｉとに基づいて、暗号化零ベクトルＯを生成する。暗号化零ベクトルＯは、ベクトル空間Ｖにおけるベクトルを成分とするＴ次元のベクトル（ｏ１，ｏ２，…，ｏＴ）である。暗号化零ベクトルＯのｉ番目の成分ｏｉ（ｉは、１以上Ｔ以下の整数。）は、ベクトル空間Ｖにおけるスカラー倍により、ランダム基底Ｂの２番目からｎ番目までのベクトルьｊ（ｊは、２以上ｎ以下の整数。）をそれぞれ乱数Ｒ’ｊ，ｉでスカラー倍した（ｎ−１）個のベクトルＲ’ｊ，ｉьｊを、ベクトル空間Ｖにおける加法により結合したベクトルΣｊ［Ｒ’ｊ，ｉьｊ］（ｊは、２以上ｎ以下の整数。）である。暗号化零ベクトルＯの各成分は、０を暗号化したものである。
ベクトル結合部２３３は、処理装置９１１を用いて、スカラー倍算出部２３１が算出したスカラー倍ベクトルЯと、零生成部２３２が生成した暗号化零ベクトルＯとに基づいて、第一レスポンスＲ’を算出する。第一レスポンスＲ’は、ベクトル空間Ｖにおけるベクトルを成分とするＴ次元のベクトル（Ｒ’１，Ｒ’２，…，Ｒ’Ｔ）である。第一レスポンスＲ’のｉ番目の成分Ｒ’ｉ（ｉは、１以上Ｔ以下の整数。）は、ベクトル空間Ｖにおける加法により、スカラー倍ベクトルЯのｉ番目の成分яｉと、暗号化零ベクトルＯのｉ番目の成分ｏｉとを結合したベクトルяｉ＋ｏｉである。第一レスポンスＲ’の各成分Ｒ’ｉは、第一チャレンジＲの成分Ｒｉにおいて暗号化されている平文としての乱数Ｒ１，ｉと、特徴ベクトルｂ’の成分ｂ’ｉとの積を暗号化したものになる。
【００６６】
図１７は、この実施の形態における第一レスポンス生成工程Ｓ７０７の処理の流れの一例を示すフローチャート図である。
第一レスポンス生成工程Ｓ７０７では、証明装置１０１が、特徴ベクトルｂ’と、第一チャレンジＲとに基づいて、第一レスポンスＲ’を生成する。第一レスポンス生成工程Ｓ７０７は、例えば、初期化工程Ｓ６６０と、繰り返し工程Ｓ６６１と、スカラー倍算出工程Ｓ６６２と、乱数生成工程Ｓ６６３と、零生成工程Ｓ６６４と、ベクトル結合工程Ｓ６６５とを有する。
【００６７】
最初に、初期化工程Ｓ６６０において、ベクトル結合部２３３が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ６６１において、ベクトル結合部２３３が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、ベクトル結合部２３３は、第一レスポンス生成工程Ｓ７０７を終了する。整数ｉがＴ以下である場合、ベクトル結合部２３３は、スカラー倍算出工程Ｓ６６２へ処理を進め、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉを生成する。
スカラー倍算出工程Ｓ６６２において、スカラー倍算出部２３１が、処理装置９１１を用いて、特徴ベクトル形成部２１４が生成した特徴ベクトルｂ’のｉ番目の成分ｂ’ｉと、第一チャレンジ受信部２１１が受信した第一チャレンジＲのｉ番目のベクトルＲｉとに基づいて、スカラー倍ベクトルЯのｉ番目の成分яｉ＝ｂ’ｉＲｉを算出する。
乱数生成工程Ｓ６６３において、乱数生成部２１５が、処理装置９１１を用いて、（ｎ−１）個の乱数Ｒ’ｊ，ｉ（ｊは、２以上ｎ以下の整数。）を生成する。
零生成工程Ｓ６６４において、零生成部２３２が、処理装置９１１を用いて、乱数生成工程Ｓ６６３で乱数生成部２１５が生成した（ｎ−１）個の乱数Ｒ’ｊ，ｉに基づいて、暗号化零ベクトルＯのｉ番目の成分ｏｉ＝Σｊ［Ｒ’ｊ，ｉьｊ］（ｊは、２以上ｎ以下の整数。）を算出する。例えば、零生成部２３２は、２以上ｎ以下のすべての整数ｊについて、ランダム基底Ｂのｊ番目のベクトルьｊと、乱数生成部２１５が生成した（ｎ−１）個の乱数のうち（ｊ−１）番目の乱数Ｒ’ｊ，ｉとに基づいて、ベクトル空間Ｖにおけるスカラー倍により、ベクトルьｊをＲ’ｊ，ｉでスカラー倍したベクトルＲ’ｊ，ｉьｊを算出する。零生成部２３２は、ベクトル空間Ｖにおける加法により、算出した（ｎ−１）個のベクトルＲ’ｊ，ｉьｊを結合したベクトルΣｊ［Ｒ’ｊ，ｉьｊ］を算出する。
ベクトル結合工程Ｓ６６５において、ベクトル結合部２３３が、処理装置９１１を用いて、スカラー倍算出工程Ｓ６６２でスカラー倍算出部２３１が算出したスカラー倍ベクトルЯのｉ番目の成分яｉ＝ｂ’ｉＲｉと、零生成工程Ｓ６６４で零生成部２３２が算出した暗号化零ベクトルＯのｉ番目の成分ｏｉ＝Σｊ［Ｒ’ｊ，ｉьｊ］（ｊは、２以上ｎ以下の整数。）とに基づいて、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉ＝яｉ＋ｏｉ＝ｂ’ｉＲｉ＋Σｊ［Ｒ’ｊ，ｉьｊ］を算出する。
ベクトル結合部２３３は、繰り返し工程Ｓ６６１に処理を戻し、第一レスポンスＲ’の次の成分を生成する。
【００６８】
このようにして暗号化データ埋め込み部２１７が生成した第一レスポンスＲ’は、第一レスポンス送信部２２１が認証装置１０２に対して送信し、認証装置１０２が受信して処理する。
【００６９】
なお、特徴ベクトルｂ’の成分ｂ’ｉが０か１かの２つの値しか取らない場合、第一レスポンス生成工程Ｓ７０７の処理は、例えば次のように簡略化できる。
まず、スカラー倍する必要がないので、スカラー倍算出部２３１を設けず、スカラー倍算出工程Ｓ６６２を実行しない。
ベクトル結合工程Ｓ６６５において、ベクトル結合部２３３は、処理装置９１１を用いて、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉが０であるか１であるかを判定する。特徴ベクトルｂ’のｉ番目の成分ｂ’ｉが０である場合、ベクトル結合部２３３は、処理装置９１１を用いて、零生成工程Ｓ６６４で零生成部２３２が算出した暗号化零ベクトルＯのｉ番目の成分ｏｉ＝Σｊ［Ｒ’ｊ，ｉьｊ］を、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉとする。特徴ベクトルｂ’のｉ番目の成分ｂ’ｉが１である場合、ベクトル結合部２３３は、処理装置９１１を用いて、ベクトル空間Ｖにおける加法により、零生成工程Ｓ６６４で零生成部２３２が算出した暗号化零ベクトルＯのｉ番目の成分ｏｉ＝Σｊ［Ｒ’ｊ，ｉьｊ］と、第一チャレンジ受信部２１１が受信した第一チャレンジＲのｉ番目の成分Ｒｉとを結合したベクトルｏｉ＋Ｒｉ＝Ｒｉ＋Σｊ［Ｒ’ｊ，ｉьｊ］を算出して、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉとする。
【００７０】
第一チャレンジＲのｉ番目の成分Ｒｉは、Σｊ［Ｒｊ，ｉьｊ］（ｊは、１以上ｎ以下の整数。）であるから、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉは、Ｒ’ｉ＝ｂ’ｉΣｋ［Ｒｋ，ｉьｊ］＋Σｊ［Ｒ’ｊ，ｉьｊ］（ｊは、２以上ｎ以下の整数。ｋは、１以上ｎ以下の整数。）＝ｂ’ｉＲ１，ｉь１＋Σｊ［（ｂ’ｉＲｊ，ｉ＋Ｒ’ｊ，ｉ）ьｊ］（ｊは、２以上ｎ以下の整数。）である。すなわち、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉは、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉと、乱数Ｒ１，ｉとの積を暗号化したものになっている。
【００７１】
図１８は、この実施の形態における暗号化データ抽出部３０５の構成の一例を示す詳細ブロック図である。
認証装置１０２の暗号化データ抽出部３０５は、例えば、逆数算出部３５１と、スカラー倍算出部３５２とを有する。
【００７２】
認証装置１０２の暗号化データ抽出部３０５が生成する暗号化特徴ベクトルＣ’は、登録装置１０４の暗号化データ生成部２０６が生成する暗号化特徴ベクトルＣと同様、ベクトル空間Ｖにおけるベクトルを成分とするＴ次元のベクトル（ｃ’１，ｃ’２，…，ｃ’Ｔ）である。
【００７３】
逆数算出部３５１は、処理装置９１１を用いて、乱数記憶部３２２が記憶したＴ個の乱数Ｒ１，ｉ（ｉは、１以上Ｔ以下の整数。）に基づいて、有限体Ｆｑにおける乗法による乱数Ｒ１，ｉそれぞれの逆元κｉ＝Ｒ１，ｉ−１を算出する。逆元κｉは、乱数Ｒ１，ｉと逆元κｉとの積をｑで割った余りが１になる整数である。暗号化データ抽出部３０５は、例えば、乱数Ｒ１，ｉの（ｑ−２）乗をｑで割った余りを計算することにより、逆元κｉを算出する。
スカラー倍算出部３５２は、処理装置９１１を用いて、第一レスポンス受信部３３１が受信した第一レスポンスＲ’と、逆数算出部３５１が算出したＴ個の逆元κｉとに基づいて、暗号化特徴ベクトルＣ’を算出する。スカラー倍算出部３５２が算出する暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉ（ｉは、１以上Ｔ以下の整数。）は、ベクトル空間Ｖにおけるスカラー倍により、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉを、ｉ番目の逆元κｉでスカラー倍したベクトルκｉＲ’ｉである。暗号化特徴ベクトルＣ’の各成分ｃ’ｉは、特徴ベクトルｂ’の成分ｂ’ｉを暗号化したものになる。
【００７４】
図１９は、この実施の形態における暗号化生体情報抽出工程Ｓ７１０の処理の流れの一例を示すフローチャート図である。
暗号化生体情報抽出工程Ｓ７１０では、認証装置１０２が、第一レスポンスＲ’に基づいて、暗号化特徴ベクトルＣ’を生成する。暗号化生体情報抽出工程Ｓ７１０は、例えば、初期化工程Ｓ７３０と、繰り返し工程Ｓ７３１と、逆数算出工程Ｓ７３２と、スカラー倍算出工程Ｓ７３３とを有する。
【００７５】
最初に、初期化工程Ｓ７３０において、スカラー倍算出部３５２が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ７３１において、スカラー倍算出部３５２が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、スカラー倍算出部３５２は、暗号化生体情報抽出工程Ｓ７１０を終了する。整数ｉがＴ以下である場合、スカラー倍算出部３５２は、逆数算出工程Ｓ７３２へ処理を進め、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉを生成する。
逆数算出工程Ｓ７３２において、逆数算出部３５１が、処理装置９１１を用いて、第一チャレンジ生成工程Ｓ７０１で乱数記憶部３２２が記憶したＴ個の乱数のうちｉ番目の乱数Ｒ１，ｉに基づいて、有限体Ｆｑの乗法における乱数Ｒ１，ｉの逆元κｉ＝Ｒ１，ｉ−１を算出する。
スカラー倍算出工程Ｓ７３３において、スカラー倍算出部３５２は、処理装置９１１を用いて、第一レスポンス受信部３３１が受信した第一レスポンスＲ’のｉ番目の成分Ｒ’ｉと、逆数算出工程Ｓ７３２で算出した逆元κｉとに基づいて、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉ＝κｉＲ’ｉを算出する。
スカラー倍算出部３５２は、繰り返し工程Ｓ７３１に処理を戻し、暗号化特徴ベクトルＣ’の次の成分を生成する。
【００７６】
このようにして暗号化データ抽出部３０５が生成した暗号化特徴ベクトルＣ’は、第二チャレンジ生成工程Ｓ７１２で使われる。
【００７７】
第一レスポンスＲ’のｉ番目の成分Ｒ’ｉは、Ｒ’ｉ＝ｂ’ｉＲ１，ｉь１＋Σ［（ｂ’ｉＲｊ，ｉ＋Ｒ’ｊ，ｉ）ьｊ］（ｊは、２以上ｎ以下の整数。）であるから、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉは、ｃ’ｉ＝Ｒ１，ｉ−１ｂ’ｉＲ１，ｉь１＋Ｒ１，ｉ−１Σ［（ｂ’ｉＲｊ，ｉ＋Ｒ’ｊ，ｉ）ьｊ］（ｊは、２以上ｎ以下の整数。）である。Ｒ１，ｉＲ１，ｉ−１≡１（ｍｏｄ  ｑ）であるから、ｃ’ｉ＝ｂ’ｉь１＋Ｒ１，ｉ−１Σ［（ｂ’ｉＲｊ，ｉ＋Ｒ’ｊ，ｉ）ьｊ］（ｊは、２以上ｎ以下の整数。）である。すなわち、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉは、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉを暗号化したものになる。
【００７８】
図２０は、この実施の形態における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図である。
認証装置１０２の暗号化ランダム類似度算出部３１４は、例えば、差分算出部３６１と、撹乱ベクトル生成部３６２と、ベクトル結合部３６３と、スカラー倍算出部３６４と、二乗和算出部３６５と、暗号化鍵生成部３６６と、ベクトル累計部３６７とを有する。
【００７９】
乱数生成部３０３は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部である位数ｑに基づいて、ｎ（Ｔ＋１）個の乱数ｔｊ，ｉ，ｕｊ（ｉは、１以上Ｔ以下の整数。ｊは、１以上ｎ以下の整数。）を生成する。乱数生成部３０３が生成する乱数ｔｊ，ｉ，ｕｊは、０以上ｑ未満の整数のなかから、一様ランダムに選択した整数である。
乱数記憶部３２２は、記憶装置９１４を用いて、乱数生成部３０３が生成した乱数のうち、１個の乱数ｕ１を記憶する。
【００８０】
差分算出部３６１は、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣと、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’とに基づいて、暗号化差分ベクトルΔＣを算出する。暗号化差分ベクトルΔＣは、ベクトル空間Ｖにおけるベクトルを成分とするＴ次元のベクトル（Δｃ１，Δｃ２，…，ΔｃＴ）である。暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉ（ｉは、１以上Ｔ以下の整数。）は、ベクトル空間Ｖにおける加法により、暗号化特徴ベクトルＣのｉ番目の成分ｃｉと、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉの逆ベクトル−ｃ’ｉとを結合したベクトルｃｉ−ｃ’ｉである。暗号化差分ベクトルΔＣの各成分Δｃｉは、特徴ベクトルｂの成分ｂｉと特徴ベクトルｂ’の成分ｂ’ｉとの差ｂｉ−ｂ’ｉを暗号化したものである。
なお、暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉは、ベクトル空間Ｖにおける加法により、暗号化特徴ベクトルＣのｉ番目の成分ｃｉの逆ベクトル−ｃｉと、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉとを結合したベクトルｃ’ｉ−ｃｉであってもよい。また、暗号化差分ベクトルΔＣの成分Δｃｉは、ベクトルｃｉ−ｃ’ｉと、ベクトルｃ’ｉ−ｃｉとのなかから、ランダムに選択したいずれかのベクトルであってもよい。
撹乱ベクトル生成部３６２は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるランダム基底Ｂと、乱数生成部３０３が生成した乱数のうちｎＴ個の乱数ｔｊ，ｉとに基づいて、撹乱ベクトルтを生成する。撹乱ベクトルтは、ベクトル空間Ｖにおけるベクトルを成分とするＴ次元のベクトル（ｔ１，ｔ２，…，ｔＴ）である。撹乱ベクトルтの各成分ｔｉ（ｉは、１以上Ｔ以下の整数。）は、ベクトル空間Ｖにおけるスカラー倍により、ランダム基底Ｂの各ベクトルьｊ（ｊは、１以上ｎ以下の整数。）を、それぞれ乱数ｔｊ，ｉでスカラー倍したｎ個のベクトルｔｊ，ｉьｊを、ベクトル空間Ｖにおける加法により結合したベクトルΣｊ［ｔｊ，ｉьｊ］（ｊは、１以上ｎ以下の整数。）である。撹乱ベクトルтの各成分ｔｉは、平文としての乱数ｔ１，ｉを暗号化したものである。
ベクトル結合部３６３は、処理装置９１１を用いて、差分算出部３６１が算出した暗号化差分ベクトルΔＣと、撹乱ベクトル生成部３６２が算出した撹乱ベクトルтとに基づいて、第二チャレンジＣ＾の一部であるＴ個のベクトルｃ＾ｉ（ｉは、１以上Ｔ以下の整数。）を算出する。ベクトルｃ＾ｉは、ベクトル空間Ｖにおけるベクトルである。ｉ番目のベクトルｃ＾ｉは、ベクトル空間Ｖにおける加法により、暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉと、撹乱ベクトルтのｉ番目の成分ｔｉとを結合したベクトルΔｃｉ＋ｔｉである。ベクトルｃ＾ｉは、特徴ベクトルｂの成分ｂｉと特徴ベクトルｂ’の成分ｂ’ｉとの差と平文としての乱数ｔ１，ｉとの和（ｂｉ−ｂ’ｉ）＋ｔ１，ｉを暗号化したものである。
スカラー倍算出部３６４は、処理装置９１１を用いて、差分算出部３６１が算出した暗号化差分ベクトルΔＣと、乱数生成部３０３が生成した乱数のうちＴ個の平文としての乱数ｔ１，ｉとに基づいて、スカラー倍ベクトル¢を算出する。スカラー倍ベクトル¢は、ベクトル空間Ｖにおけるベクトルを成分とするＴ次元のベクトル（¢１，¢２，…，¢Ｔ）である。スカラー倍算出部３６４が算出するスカラー倍ベクトル¢のｉ番目の成分¢ｉ（ｉは、１以上Ｔ以下の整数。）は、ベクトル空間Ｖにおけるスカラー倍により、暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉを、Ｔ個の平文としての乱数のうちのｉ番目の乱数ｔ１，ｉの２倍でスカラー倍したベクトル２ｔ１，ｉΔｃｉである。スカラー倍算出部３６４が算出するスカラー倍ベクトル¢の各成分¢ｉは、特徴ベクトルｂの成分ｂｉと特徴ベクトルｂ’の成分ｂ’ｉとの差と２ｔ１，ｉとの積２ｔ１，ｉ（ｂ−ｂ’）を暗号化したものである。
二乗和算出部３６５は、処理装置９１１を用いて、乱数生成部３０３が生成した乱数のうちＴ個の平文としての乱数ｔ１，ｉに基づいて、二乗和Σを算出する。二乗和Σは、Ｔ個の乱数ｔ１，ｉの二乗を合計した値Σｉ［ｔ１，ｉ２］（ｉは、１以上Ｔ以下の整数。）である。
暗号化鍵生成部３６６は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるランダム基底Ｂと、乱数生成部３０３が生成した乱数のうちｎ個の乱数ｕｊと、二乗和算出部３６５が算出した二乗和Σとに基づいて、暗号化鍵цを算出する。暗号化鍵цは、ベクトル空間Ｖにおけるベクトルである、暗号化鍵цは、ベクトル空間Ｖにおけるスカラー倍により、ランダム基底Ｂの最初のベクトルь１を、ｎ個の乱数のうちの最初の乱数ｕ１と二乗和Σとの和でスカラー倍したベクトル（ｕ１＋Σ）ь１と、ベクトル空間Ｖにおけるスカラー倍により、ランダム基底Ｂの２番目以降のベクトルьｊ（ｊは、２以上ｎ以下の整数。）を、ｎ個の乱数のうちの２番目以降の乱数ｕｊでそれぞれスカラー倍した（ｎ−１）個のベクトルｕｊьｊとを、ベクトル空間Ｖにおける加法により結合したベクトル（ｕ１＋Σ）ь１＋Σｊ［ｕｊьｊ］（ｊは、１以上ｎ以下の整数。）である。例えば、暗号化鍵生成部３６６は、乱数生成部３０３が生成した乱数ｕ１と、二乗和算出部３６５が算出した二乗和Σとの和ｕ１＋Σを算出する。暗号化鍵生成部３６６は、ベクトル空間Ｖにおけるスカラー倍により、ランダム基底Ｂの最初のベクトルь１を、算出した和ｕ１＋Σでスカラー倍したベクトル（ｕ１＋Σ）ь１を算出する。暗号化鍵生成部３６６は、２以上ｎ以下のすべての整数ｊについて、ベクトル空間Ｖにおけるスカラー倍により、ランダム基底Ｂのｊ番目のベクトルьｊを、乱数生成部３０３が生成した乱数ｕｊでスカラー倍したベクトルｕｊьｊを算出する。暗号化鍵生成部３６６は、ベクトル空間Ｖにおける加法により、算出したベクトル（ｕ１＋Σ）ь１と、算出した（ｎ−１）個のベクトルｕｊьｊとを結合したベクトル（ｕ１＋Σ）ь１＋Σｊ［ｕｊьｊ］（ｊは、１以上ｎ以下の整数。）を算出する。
ベクトル累計部３６７は、処理装置９１１を用いて、スカラー倍算出部３６４が算出したスカラー倍ベクトル¢と、暗号化鍵生成部３６６が算出した暗号化鍵цとに基づいて、第二チャレンジＣ＾の一部である１個のベクトルｃ＾を算出する。ベクトルｃ＾は、ベクトル空間Ｖにおけるベクトルである。ベクトルｃ＾は、ベクトル空間Ｖにおける加法により、スカラー倍算出部３６４が算出したスカラー倍ベクトルの成分であるＴ個のベクトル¢ｉ＝２ｔ１，ｉΔｃｉ（ｉは、１以上Ｔ以下の整数。）と、暗号化鍵ц＝（ｕ１＋Σ）ь１＋Σｊ［ｕｊьｊ］（ｊは、１以上ｎ以下の整数。）とを結合したベクトルΣｉ［２ｔ１，ｉΔｃｉ］＋（ｕ１＋Σ）ь１＋Σｊ［ｕｊьｊ］（ｉは、１以上Ｔ以下の整数。ｊは、１以上ｎ以下の整数。）である。ベクトルｃ＾は、特徴ベクトルｂの成分ｂｉと特徴ベクトルｂ’の成分ｂ’ｉとの差と２ｔ１，ｉとの積の総和と、ｔ１，ｉの二乗の総和と、乱数ｕ１との総合計ｕ１＋Σｉ［２ｔ１，ｉ（ｂｉ−ｂ’ｉ）＋ｔ１，ｉ２］を暗号化したものである。このうち、乱数ｕ１は、類似度を暗号化・復号するための一時鍵としての乱数である。それ以外の部分であるΣｉ［２ｔ１，ｉ（ｂｉ−ｂ’ｉ）＋ｔ１，ｉ２］は、復号装置１０３が、平文としての乱数ｔ１，ｉによる撹乱を除去して、暗号化された類似度を算出できるようにするための情報である。
【００８１】
暗号化ランダム類似度算出部３１４が生成する第二チャレンジＣ＾は、ベクトル結合部３６３が算出したＴ個のベクトルｃ＾ｉ（ｉは、１以上Ｔ以下の整数。）と、ベクトル累計部３６７が算出した１個のベクトルｃ＾とを合わせた（Ｔ＋１）個のベクトルからなる。
なお、第二チャレンジＣ＾の最初のＴ個のベクトルｃ＾ｉの順序は、特徴ベクトルｂ，ｂ’の成分の順序と異なっていてもよい。
【００８２】
図２１は、この実施の形態における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程Ｓ７１２では、認証装置１０２が、２つの暗号化特徴ベクトルＣ，Ｃ’に基づいて、第二チャレンジＣ＾を生成する。第二チャレンジ生成工程Ｓ７１２は、例えば、初期化工程Ｓ７４０と、繰り返し工程Ｓ７４１と、差分算出工程Ｓ７４２と、乱数生成工程Ｓ７４３と、撹乱ベクトル生成工程Ｓ７４４と、ベクトル結合工程Ｓ７４５と、スカラー倍算出工程Ｓ７４６と、ベクトル累計工程Ｓ７４７と、二乗累計工程Ｓ７４８と、乱数生成工程Ｓ７４９と、暗号化鍵生成工程Ｓ７５０と、ベクトル累計工程Ｓ７５１とを有する。
【００８３】
最初に、初期化工程Ｓ７４０において、ベクトル結合部３６３が、処理装置９１１を用いて、整数ｉを０に初期化し、ベクトルｃ＾を０（ベクトル空間Ｖにおける零ベクトル）に初期化する。二乗和算出部３６５が、処理装置９１１を用いて、二乗和Σを０に初期化する。
繰り返し工程Ｓ７４１において、ベクトル結合部３６３が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、ベクトル結合部３６３は、乱数生成工程Ｓ７４９へ処理を進める。整数ｉがＴ以下である場合、ベクトル結合部３６３は、差分算出工程Ｓ７４２へ処理を進め、第二チャレンジＣ＾のｉ番目のベクトルｃ＾ｉを生成する。
差分算出工程Ｓ７４２において、差分算出部３６１が、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣのｉ番目の成分ｃｉと、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉとに基づいて、暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉを算出する。
乱数生成工程Ｓ７４３において、乱数生成部３０３が、処理装置９１１を用いて、ｎ個の乱数ｔｊ，ｉ（ｊは、１以上ｎ以下の整数。）を生成する。
撹乱ベクトル生成工程Ｓ７４４において、撹乱ベクトル生成部３６２が、処理装置９１１を用いて、乱数生成工程Ｓ７４３で乱数生成部３０３が生成したｎ個の乱数ｔｊ，ｉに基づいて、撹乱ベクトルтのｉ番目の成分ｔｉ＝Σｊ［ｔｊ，ｉьｊ］（ｊは、１以上ｎ以下の整数。）を生成する。
ベクトル結合工程Ｓ７４５において、ベクトル結合部３６３が、処理装置９１１を用いて、差分算出工程Ｓ７４２で差分算出部３６１が算出した暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉと、撹乱ベクトル生成工程Ｓ７４４で撹乱ベクトル生成部３６２が算出した撹乱ベクトルтのｉ番目の成分ｔｉとに基づいて、第二チャレンジＣ＾のｉ番目のベクトルｃ＾ｉ＝Δｃｉ＋ｔｉを算出する。
なお、第二チャレンジＣ＾の最初のＴ個のベクトルｃ＾ｉの順序と、特徴ベクトルｂ，ｂ’の成分の順序とが異なる構成とする場合、ベクトル結合部３６３は、例えば、次のようにする。ベクトル結合部３６３は、初期化工程Ｓ７４０で、１以上Ｔ以下の整数をランダムに並べ替えた数列を生成しておく。ベクトル結合工程Ｓ７４５において、ベクトル結合部３６３は、その数列のｉ番目の整数を取得して整数ｊとし、算出したベクトルΔｃｉ＋ｔｉを、第二チャレンジＣ＾のｊ番目のベクトルｃ＾ｊにする。
スカラー倍算出工程Ｓ７４６において、スカラー倍算出部３６４が、処理装置９１１を用いて、差分算出工程Ｓ７４２で差分算出部３６１が算出した暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉと、乱数生成工程Ｓ７４３で乱数生成部３０３が生成したｎ個の乱数ｔｊ，ｉのうちの最初の乱数ｔ１，ｉとに基づいて、スカラー倍ベクトル¢のｉ番目の成分¢ｉ＝ｔ１，ｉΔｃｉを算出する。
ベクトル累計工程Ｓ７４７において、ベクトル累計部３６７が、処理装置９１１を用いて、スカラー倍算出工程Ｓ７４６でスカラー倍算出部３６４が算出したスカラー倍ベクトル¢のｉ番目の成分¢ｉ＝ｔ１，ｉΔｃｉに基づいて、ベクトル空間Ｖにおける加法により、ベクトル¢ｉを、ベクトルｃ＾に結合する。
二乗累計工程Ｓ７４８において、二乗和算出部３６５が、処理装置９１１を用いて、乱数生成工程Ｓ７４３で乱数生成部３０３が生成したｎ個の乱数ｔｊ，ｉのうちの最初の乱数ｔ１，ｉに基づいて、有限体Ｆｑにおける乗法により、乱数ｔ１，ｉの二乗ｔ１，ｉ２を算出し、有限体Ｆｑにおける加法により、算出した二乗ｔ１，ｉ２を、二乗和Σに結合する。
ベクトル結合部３６３は、繰り返し工程Ｓ７４１に処理を戻し、第二チャレンジＣ＾の次のベクトルを生成する。
【００８４】
乱数生成工程Ｓ７４９において、乱数生成部３０３が、処理装置９１１を用いて、ｎ個の乱数ｕｊ（ｊは、１以上ｎ以下の整数。）を生成する。乱数記憶部３２２が、記憶装置９１４を用いて、乱数生成部３０３が生成したｎ個の乱数のうち、一時鍵としての乱数である乱数ｕ１を記憶する。
暗号化鍵生成工程Ｓ７５０において、暗号化鍵生成部３６６が、処理装置９１１を用いて、二乗累計工程Ｓ７４８で二乗和算出部３６５が累計した二乗和Σと、乱数生成工程Ｓ７４９で乱数生成部３０３が生成したｎ個の乱数ｕｊとに基づいて、暗号化鍵цを生成する。
ベクトル累計工程Ｓ７５１において、ベクトル累計部３６７が、処理装置９１１を用いて、暗号化鍵生成工程Ｓ７５０で暗号化鍵生成部３６６が生成した暗号化鍵цに基づいて、ベクトル空間Ｖにおける加法により、暗号化鍵цを、ベクトルｃ＾に結合する。これにより、第二チャレンジＣ＾の（Ｔ＋１）番目のベクトルｃ＾が完成し、第二チャレンジＣ＾も完成する。
【００８５】
このようにして暗号化ランダム類似度算出部３１４が算出した第二チャレンジＣ＾は、第二チャレンジ送信部３２１が復号装置１０３に対して送信し、復号装置１０３が受信して処理する。
【００８６】
図２２は、この実施の形態における復号部４０４の構成の一例を示す詳細ブロック図である。
復号装置１０３の復号部４０４は、例えば、逆行列算出部４７１と、ベクトル分解部４７２と、二乗算出部４７３と、群変換部４７４と、元結合部４７５とを有する。
【００８７】
逆行列算出部４７１は、処理装置９１１を用いて、公開鍵記憶部４０３が記憶した公開鍵ｐｋの一部である位数ｑと、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである正則行列Ｘとに基づいて、有限体Ｆｑにおける正則行列Ｘの逆行列Ｘ−１を算出する。
ベクトル分解部４７２は、処理装置９１１を用いて、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである正則行列Ｘと、第二チャレンジ受信部４０２が受信した第二チャレンジＣ＾と、逆行列算出部４７１が算出した逆行列Ｘ−１とに基づいて、（Ｔ＋１）個の復号ベクトルｙｉ，ｙ（ｉは、１以上Ｔ以下の整数。）を算出する。復号ベクトルｙｉ，ｙは、ベクトル空間におけるベクトルである。ｉ番目の復号ベクトルｙｉ（ｉは、１以上Ｔ以下の整数。）は、第二チャレンジＣ＾のｉ番目のベクトルｃ＾ｉを、ランダム基底Ｂの一次結合に分解し、２番目以降のベクトルьｊ（ｊは、２以上ｎ以下の整数。）にかかる成分を取り除いて、ランダム基底Ｂの最初のベクトルь１のスカラー倍にしたベクトルである。復号ベクトルｙは、第二チャレンジＣ＾の（Ｔ＋１）番目のベクトルｃ＾を、ランダム基底Ｂの一次結合に分解し、２番目以降のベクトルьｊ（ｊは、２以上ｎ以下の整数。）にかかる成分を取り除いて、ランダム基底Ｂの最初のベクトルь１のスカラー倍にしたベクトルである。ベクトル分解部４７２は、例えば、図１１に示したベクトル分解処理Ｓ５４０の手順により、復号ベクトルｙｉ，ｙを算出する。第二チャレンジＣ＾のｉ番目のベクトルｃ＾ｉ（ｉは、１以上Ｔ以下の整数。）は、Δｃｉ＋ｔｉであるから、ｉ番目の復号ベクトルｙｉは、（ｂｉ−ｂ’ｉ＋ｔ１，ｉ）ь１になる。また、第二チャレンジＣ＾の（Ｔ＋１）番目のベクトルｃ＾は、Σｉ［２ｔ１，ｉΔｃｉ］＋（Σｉ［ｔ１，ｉ２］）ь１＋Σｊ［ｕｊьｊ］（ｉは、１以上Ｔ以下の整数。ｊは、１以上ｎ以下の整数。）であるから、復号ベクトルｙは、（ｕ１＋Σｉ［２ｔ１，ｉ（ｂｉ−ｂ’ｉ）＋ｔ１，ｉ２］）ь１になる。
二乗算出部４７３は、処理装置９１１を用いて、公開鍵記憶部４０３が記憶した公開鍵ｐｋの一部であるペアリングｅと、ベクトル分解部４７２が算出したＴ個の復号ベクトルｙｉとに基づいて、Ｔ個の二乗元ｙ’ｉ（ｉは、１以上Ｔ以下の整数。）を算出する。二乗元ｙ’ｉは、有限群ＧＴの元である。ｉ番目の二乗元ｙ’ｉ（ｉは、１以上Ｔ以下の整数。）は、ペアリングｅにより、ｉ番目の復号ベクトルｙｉ同士の組を変換した元ｅ（ｙｉ，ｙｉ）である。ｉ番目の復号ベクトルｙｉは、（ｂｉ−ｂ’ｉ＋ｔ１，ｉ）ь１であるから、ペアリングｅの双線形性より、ｉ番目の二乗元ｙ’ｉは、ペアリングｅによりランダム基底Ｂの最初のベクトルь１同士の組を変換した有限群ＧＴの元ｅ（ь１，ь１）を、有限群ＧＴにおける累乗により、（ｂｉ−ｂ’ｉ＋ｔ１，ｉ）の二乗で累乗した元になる。
群変換部４７４は、処理装置９１１を用いて、公開鍵記憶部４０３が記憶した公開鍵ｐｋの一部であるペアリングｅ及びランダム基底Ｂと、ベクトル分解部４７２が算出した復号ベクトルｙとに基づいて、変換元ｙ’を算出する。変換元ｙ’は、有限群ＧＴの元である。変換元ｙ’は、ペアリングｅにより、復号ベクトルｙと、ランダム基底Ｂの最初のベクトルь１との組を変換した元ｅ（ｙ，ь１）である。復号ベクトルｙは、（ｕ１＋Σｉ［２ｔ１，ｉ（ｂｉ−ｂ’ｉ）＋ｔ１，ｉ２］）ь１であるから、ペアリングｅの双線形性より、変換元ｙ’は、有限群ＧＴにおける累乗により、有限群ＧＴの元ｅ（ь１，ь１）を（ｕ１＋Σｉ［２ｔ１，ｉ（ｂｉ−ｂ’ｉ）＋ｔ１，ｉ２］）（ｉは、１以上Ｔ以下の整数。）で累乗した元になる。
元結合部４７５は、処理装置９１１を用いて、公開鍵記憶部４０３が記憶した公開鍵ｐｋの一部である有限群ＧＴと、二乗算出部４７３が算出したＴ個の二乗元ｙ’ｉと、群変換部４７４が算出した変換元ｙ’とに基づいて、第二レスポンスＺを算出する。第二レスポンスＺは、有限群ＧＴの元である。元結合部４７５が算出する第二レスポンスＺは、有限群ＧＴにおける乗法により、Ｔ個の二乗元ｙ’ｉと、変換元ｙ’の逆元ｙ’−１とを結合した元である。第二レスポンスＺは、有限群ＧＴにおける累乗により、有限群ＧＴの元ｅ（ь１，ь１）を（Σｉ［（ｂｉ−ｂ’ｉ）２］−ｕ１）（ｉは、１以上Ｔ以下の整数。）で累乗した元になる。すなわち、第二レスポンスＺは、特徴ベクトルｂと特徴ベクトルｂ’との間のユークリッド距離の二乗Σｉ［（ｂｉ−ｂ’ｉ）２］を、一時鍵としての乱数ｕ１で暗号化したものになる。
【００８８】
図２３は、この実施の形態における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図である。
第二レスポンス生成工程Ｓ７１６では、復号装置１０３が、第二チャレンジＣ＾から、第二レスポンスＺを生成する。第二レスポンス生成工程Ｓ７１６は、例えば、逆行列算出工程Ｓ５６１と、ベクトル分解工程Ｓ５６６と、群変換工程Ｓ５６７と、初期化工程Ｓ５６０と、繰り返し工程Ｓ５６２と、ベクトル分解工程Ｓ５６３と、二乗算出工程Ｓ５６４と、元結合工程Ｓ５６５とを有する。
【００８９】
最初に、逆行列算出工程Ｓ５６１において、逆行列算出部４７１が、処理装置９１１を用いて、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである正則行列Ｘの逆行列Ｘ−１を算出する。なお、逆行列算出部４７１は、処理装置９１１を用いて、あらかじめ（例えばセットアップ処理Ｓ５００で）逆行列Ｘ−１を算出し、記憶装置９１４を用いて、算出した逆行列Ｘ−１を記憶しておく構成であってもよい。
ベクトル分解工程Ｓ５６６において、ベクトル分解部４７２が、処理装置９１１を用いて、逆行列算出工程Ｓ５６１で逆行列算出部４７１が算出した逆行列Ｘ−１などに基づいて、第二チャレンジ受信部４０２が受信した第二チャレンジＣ＾の最後のベクトルｃ＾をベクトル分解して、復号ベクトルｙを算出する。
群変換工程Ｓ５６７において、群変換部４７４が、処理装置９１１を用いて、ベクトル分解工程Ｓ５６６でベクトル分解部４７２が算出した復号ベクトルｙに基づいて、変換元ｙ’を算出する。
初期化工程Ｓ５６０において、元結合部４７５が、処理装置９１１を用いて、整数ｉを０に初期化し、第二レスポンスＺを、有限群ＧＴの乗法における変換元ｙ’の逆元ｙ’−１に初期化する。
繰り返し工程Ｓ５６２において、元結合部４７５が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、第二レスポンスＺが完成したので、元結合部４７５は、第二レスポンス生成工程Ｓ７１６を終了する。整数ｉがＴ以下である場合、元結合部４７５は、ベクトル分解工程Ｓ５６３へ処理を進める。
ベクトル分解工程Ｓ５６３において、ベクトル分解部４７２が、処理装置９１１を用いて、逆行列算出工程Ｓ５６１で逆行列算出部４７１が算出した逆行列Ｘ−１などに基づいて、第二チャレンジ受信部４０２が受信した第二チャレンジＣ＾のｉ番目のベクトルｃ＾ｉをベクトル分解して、ｉ番目の復号ベクトルｙｉを算出する。
二乗算出工程Ｓ５６４において、二乗算出部４７３が、処理装置９１１を用いて、ベクトル分解工程Ｓ５６３でベクトル分解部４７２が算出したｉ番目の復号ベクトルｙｉに基づいて、ｉ番目の二乗元ｙ’ｉ＝ｅ（ｙｉ，ｙｉ）を算出する。
元結合工程Ｓ５６５において、元結合部４７５が、処理装置９１１を用いて、二乗算出工程Ｓ５６４で二乗算出部４７３が算出したｉ番目の二乗元ｙ’ｉに基づいて、有限群ＧＴにおける乗法により、ｉ番目の二乗元ｙ’ｉを、第二レスポンスＺに結合する。
元結合部４７５は、繰り返し工程Ｓ５６２に処理を戻し、第二チャレンジＣ＾の次のベクトルを処理する。
【００９０】
このようにして復号部４０４が生成した第二レスポンスＺは、第二レスポンス送信部４１２が認証装置１０２に対して送信し、認証装置１０２が受信して処理する。
【００９１】
図２４は、この実施の形態における平文類似度抽出部３１５の構成の一例を示す詳細ブロック図である。
認証装置１０２の平文類似度抽出部３１５は、例えば、群変換部３７１と、元結合部３７２と、離散対数算出部３７３とを有する。
群変換部３７１は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるペアリングｅ及びランダム基底Ｂと、乱数記憶部３２２が記憶した一時鍵としての乱数ｕ１とに基づいて、復号鍵Цを算出する。復号鍵Цは、有限群ＧＴの元である。群変換部３７１が算出する復号鍵Цは、ペアリングｅによりランダム基底Ｂの最初のベクトルь１同士の組を変換した元ｅ（ь１，ь１）を、有限群ＧＴにおける累乗により、乱数ｕ１で累乗した元ｅ（ь１，ь１）ｕ１である。
元結合部３７２は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部である有限群ＧＴと、第二レスポンス受信部３４１が受信した第二レスポンスＺと、群変換部３７１が算出した復号鍵Цとに基づいて、復号類似度元Ｚ’を算出する。復号類似度元Ｚ’は、有限群ＧＴの元である。復号類似度元Ｚ’は、有限群ＧＴにおける乗法により、第二レスポンスＺと、復号鍵Цとを結合した元である。第二レスポンスＺは、有限群ＧＴにおける累乗により、有限群ＧＴの元ｅ（ь１，ь１）を（Σｉ［（ｂｉ−ｂ’ｉ）２］−ｕ１）（ｉは、１以上Ｔ以下の整数。）で累乗した元であるから、復号類似度元Ｚ’は、有限群ＧＴにおける累乗により、有限群ＧＴの元ｅ（ь１，ь１）をΣｉ［（ｂｉ−ｂ’ｉ）２］（ｉは、１以上Ｔ以下の整数。）で累乗した元になる。
離散対数算出部３７３は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるペアリングｅ及びランダム基底Ｂと、元結合部３７２が算出した復号類似度元Ｚ’とに基づいて、類似度ｄを算出する。類似度ｄは、有限体Ｆｑの元である。離散対数算出部３７３が算出する類似度ｄは、有限群ＧＴにおける累乗による有限群ＧＴの元ｅ（ь１，ь１）の何乗が、復号類似度元Ｚ’に一致するかを求めたものである。
離散対数算出部３７３が復号類似度元Ｚ’から類似度ｄを算出することは、いわゆる離散対数問題を解くことであるから、一般的には、困難である。しかし、類似度ｄの範囲があらかじめ限定されていれば、類似度ｄを算出することが可能になる。例えば、その範囲内のすべての整数ｄについて、あらかじめｅ（ь１，ь１）を整数ｄで累乗した元ｅ（ь１，ь１）ｄを算出しておき、復号類似度元Ｚ’がどれと一致するかを判定すればよい。
類似度ｄは、２つの特徴ベクトルｂ，ｂ’の間のユークリッド距離の二乗であるから、類似度ｄが小さいほど２つの特徴ベクトルｂ，ｂ’が似ていることを表わす。判定部３０６は、例えば、類似度ｄを所定の閾値ｄ０と比較して、類似度ｄのほうが小さい場合に、２つの特徴ベクトルｂ，ｂ’が似ていると判定する。このため、類似度ｄが具体的にいくつであるかを知る必要はなく、類似度ｄが閾値ｄ０より大きいか小さいかだけがわかればよい。
閾値ｄ０は、位数ｑよりもはるかに小さい整数であり、例えば数百〜数万程度である。特徴ベクトルｂ，ｂ’の成分が０か１かのいずれかの値である場合、２つの特徴ベクトルｂ，ｂ’の間のユークリッド距離の二乗は、０以上Ｔ以下の整数になる。この場合、閾値ｄ０が特徴ベクトルの次数Ｔよりも小さい整数でなければ、すべての場合に２つの特徴ベクトルｂ，ｂ’が似ていると判定することになり、意味をなさない。
よって、０以上ｄ０以下のすべての整数ｄについて、あらかじめｅ（ь１，ь１）ｄを算出しておくことは容易である。そうすれば、類似度ｄがｄ０以下である場合、離散対数算出部３７３は類似度ｄを算出できる。類似度ｄがｄ０より大きい場合、離散対数算出部３７３は類似度ｄを算出できないが、類似度ｄがｄ０より大きいことだけは判定できる。
【００９２】
図２５は、この実施の形態における平文類似度算出工程Ｓ７１９の処理の流れの一例を示すフローチャート図である。
平文類似度算出工程Ｓ７１９では、認証装置１０２が、第二レスポンスＺから、類似度ｄを算出する。平文類似度算出工程Ｓ７１９は、例えば、群変換工程Ｓ６９１と、元結合工程Ｓ６９２と、離散対数算出工程Ｓ６９３とを有する。
【００９３】
最初に、群変換工程Ｓ６９１において、群変換部３７１は、処理装置９１１を用いて、乱数記憶部３２２が記憶した一時鍵としての乱数ｕ１に基づいて、復号鍵Ц＝ｅ（ь１，ь１）ｕ１を算出する。
元結合工程Ｓ６９２において、元結合部３７２は、処理装置９１１を用いて、第二レスポンス受信部３４１が受信した第二レスポンスＺと、群変換工程Ｓ６９１で群変換部３７１が算出した復号鍵Цとに基づいて、復号類似度元Ｚ’＝ＺЦを算出する。
離散対数算出工程Ｓ６９３において、離散対数算出部３７３は、処理装置９１１を用いて、元結合部３７２で元結合部３７２が算出した復号類似度元Ｚ’に基づいて、類似度ｄを算出する。
【００９４】
平文類似度抽出部３１５が算出した類似度ｄに基づいて、判定部３０６が、２つの特徴ベクトルｂ，ｂ’が似ているか否かを判定することにより、特徴ベクトルｂで表わされる生体情報を持つ人物と、特徴ベクトルｂ’で表わされる生体情報を持つ人物とが同一人物であるか否かを判定する。上述したように、判定部３０６は、類似度ｄが閾値ｄ０より小さい場合に、２つの特徴ベクトルｂ，ｂ’が似ていると判定する。
【００９５】
以上説明したように、生体認証システム１００は、２つの特徴ベクトルｂ，ｂ’の類似度として、２つの特徴ベクトルｂ，ｂ’の間のユークリッド距離の２乗を算出する。類似度算出の計算手順を、いくつかの段階に分け、認証装置１０２と復号装置１０３とが、各段階の計算をすることにより、認証装置１０２が、特徴ベクトルｂ，ｂ’についての情報を得ることを防ぎ、復号装置１０３が、特徴ベクトルｂ，ｂ’や類似度ｄについての情報を得ることを防いでいる。
【００９６】
図２６は、この実施の形態の生体認証システム１００における類似度算出の計算手順を示すフローチャート図である。
この図は、認証処理Ｓ７００から、類似度算出手順に関わる部分を抜き出したものである。なお、δｉ及びδ＊は、第二チャレンジＣ＾において暗号化されている情報を示し、ζは、第二レスポンスＺによって表わされる情報を示す。
第一段階として、第二チャレンジ生成工程Ｓ７１２において、認証装置１０２が、２つの暗号化特徴ベクトルＣ，Ｃ’から第二チャレンジＣ＾を算出することにより、Ｔ個のδｉ＝（ｂｉ−ｂ’ｉ）＋ｔ１，ｉ（ｉは、１以上Ｔ以下の整数。）と、１個のδ＊＝Σｉ［２ｔ１，ｉ（ｂｉ−ｂ’ｉ）＋ｔ１，ｉ２］＋ｕ１（ｉは、１以上Ｔ以下の整数。）とを算出する。この計算は、復号装置１０３の鍵により暗号化されたままの状態で行われるので、認証装置１０２は、特徴ベクトルｂ，ｂ’についての情報を得ることができない。
第二段階として、第二レスポンス生成工程Ｓ７１６において、復号装置１０３が、第二チャレンジＣ＾から第二レスポンスＺを算出することにより、ζ＝Σｉ［δｉ２］−δ＊（ｉは、１以上Ｔ以下の整数。）を算出する。この計算は、復号装置１０３の秘密鍵ｓｋによって復号された状態で行われるが、復号装置１０３は、一時鍵ｕ１を知らないので、特徴ベクトルｂ，ｂ’や類似度ｄについての情報を得ることができない。すなわち、この計算は、一時鍵ｕ１で暗号化された状態で行われる。
第三段階として、平文類似度算出工程Ｓ７１９において、認証装置１０２が、第二レスポンスＺから、類似度ｄ＝ζ＋ｕ１を算出する。これにより、認証装置１０２は、類似度ｄを得ることができるが、特徴ベクトルｂ，ｂ’についての情報を得ることはできない。
【００９７】
この実施の形態における生体認証システム１００（データ照合装置）は、加法的準同型方式の鍵生成アルゴリズムに基づいて鍵生成部（４０１）が公開鍵と秘密鍵とを生成する。
データ抽出装置（認証装置１０２）は、前記鍵生成部から配布された前記公開鍵を保有する公開鍵記憶部（３０２）と、前記鍵生成部から配布された前記公開鍵を保有するデータ処理装置（登録装置１０４）が保有する前記公開鍵を用いて暗号化した第一データ（特徴ベクトルｂ）を暗号化第一データ（暗号化特徴ベクトルＣ）として記憶する暗号化データ記憶部（３１２）と、前記公開鍵の少なくとも一部を用いて第一乱数と第二乱数を生成する乱数生成部（３０３）と、前記第一乱数と前記第二乱数を記憶する乱数記憶部（３２２）と、前記第一乱数を暗号化して第一チャレンジを生成する暗号化乱数生成部（３０４）と、データ処理装置（証明装置１０１）が第二データ（特徴ベクトルｂ’）を前記第一チャレンジと演算して生成した第一レスポンスから前記乱数記憶部に記憶されている前記第一乱数を用いて処理し第二データの暗号化である暗号化第二データ（暗号化特徴ベクトルＣ’）を算出する暗号化データ抽出部（３０５）と、前記暗号化第二データと前記第二乱数を用いて第二チャレンジを生成する暗号化ランダム類似度算出部（３１４）と、前記復号装置もしくは前記データ処理装置が前記秘密鍵記憶部（４１３）に記憶されている前記秘密鍵を用いて前記第二チャレンジを処理した第二レスポンスを前記乱数記憶部に記憶されている前記第二乱数を用いて処理し平文の類似度を算出する平文類似度抽出部（３１５）とを有する。
データ処理装置（証明装置１０１）は、前記第二データを前記第一チャレンジと演算して前記第一レスポンスを生成する暗号化データ埋め込み部（２１７）を有する。
復号装置（１０３）もしくはデータ処理装置は、前記加法的準同型方式の鍵生成アルゴリズムに基づいて前記公開鍵と前記秘密鍵を生成する前記鍵生成部（４０１）と、前記秘密鍵を記憶する前記秘密鍵記憶部（４１３）と、前記第二チャレンジを前記秘密鍵記憶部に記憶されている前記秘密鍵を用いて処理し前記第二レスポンスを生成する復号部（４０４）とを有する。
【００９８】
これにより、攻撃者は、証明装置１０１と、認証装置１０２と、復号装置１０３と、登録装置１０４との間のネットワーク上でやり取りされている情報（例えば、第一チャレンジＲと第一レスポンスＲ’との組や、第二チャレンジＣ＾と第二レスポンスＺとの組）を持っていたとしても、正規のユーザとしてなりすますことは難しい。つまり、装置間でやり取りされている情報から、なりすましに致命的な情報は一切漏れていない。
この第一の理由としては、認証装置１０２によって生成された第一チャレンジＲ及び第二チャレンジＣ＾や第一レスポンスＲ’及び第二レスポンスＺで用いる平文としての乱数Ｒ１，ｉ，ｕ１は、認証が行われる度に毎回値が変わることから、これらのデータをそのまま再利用したリプレイ攻撃ができない。
第二の理由として、この実施の形態で説明した岡本−高島暗号方式や、ＢＧＮ暗号、Ｐａｉｌｌｉｅｒ暗号などは、暗号文の識別不可能性という安全性を有している。このため、たとえ攻撃者が準同型性を利用したとしても、第一チャレンジＲ及び第二チャレンジＣ＾とそれに対応する第一レスポンスＲ’及び第二レスポンスＺとから、平文の特徴ベクトルｂ，ｂ’や平文としての乱数Ｒ１，ｉ，ｕ１、また秘密鍵ｓｋが漏洩することはない。
第三の理由として、認証装置１０２と証明装置１０１とは、それぞれ相手の装置が知らない情報を用いて第一チャレンジＲと第一レスポンスＲ’とを生成している。つまり、認証装置１０２は第一チャレンジＲで用いた乱数Ｒ１，ｉを所持しており、また証明装置１０１はユーザの平文の特徴ベクトルｂ’を所持している。これらの秘密情報を知ることなしに、攻撃者は、第一チャレンジＲや第一レスポンスＲ’から平文の特徴ベクトルｂ’や乱数Ｒ１，ｉについての情報を得ることができない。さらに、認証装置１０２は、乱数Ｒ１，ｉを知っていても平文の特徴ベクトルｂを得ることができず、また証明装置１０１は、特徴ベクトルｂを知っていても乱数Ｒ１，ｉの情報を得ることはできない。
また、第二チャレンジＣ＾と第二レスポンスＺとの関係も同様であり、認証装置１０２と復号装置１０３とは、それぞれ相手の装置が知らない情報を用いて第二チャレンジＣ＾と第二レスポンスＺとを生成している。つまり、認証装置１０２は第二チャレンジＣ＾で用いた乱数ｕ１を所持しており、また復号装置１０３は秘密鍵ｓｋを所持している。これらの秘密情報を知ることなしに、攻撃者は、第二チャレンジＣ＾や第二レスポンスＺから乱数ｕ１や秘密鍵ｓｋについての情報を得ることができない。さらに、認証装置１０２は、乱数ｕ１を知っていても秘密鍵ｓｋを得ることができず、また復号装置１０３は、秘密鍵ｓｋを知っていても乱数ｕ１の情報を得ることはできない。
【００９９】
この実施の形態の生体情報の登録処理Ｓ６００において、ユーザ（登録装置１０４）は、認証装置１０２に暗号化特徴ベクトルＣそのものを送信し、認証装置１０２はその送られてきた暗号化特徴ベクトルＣを保存するだけである。特徴ベクトルｂのやり取りの必要がないので、信頼された登録処理装置が必要ない。
この実施の形態における乱数は、乱数空間から一様に生成されている。このため、乱数同士に相関がなく、乱数同士の相関から何らかの情報が漏れる可能性がない。
認証装置１０２には特徴ベクトルｂがそのまま保管されるのではなく、暗号化された状態で保管される。このため、ユーザのプライバシー情報である特徴ベクトルｂが、認証装置１０２の管理者に盗み見られるというリスクを低減させることができる。
認証装置１０２にとっては、暗号化特徴ベクトルＣが仮に漏洩したとしても元の特徴ベクトルｂ自体が漏洩することはないため、特徴ベクトルｂそのものを保管するのに比べてデータ管理の手間を削減できる。
【０１００】
また、この実施の形態の手順にしたがえば、復号装置１０３が復号できるのはランダム類似度という指標値だけであり、特徴ベクトルｂ，ｂ’を復号することはできない。よって、認証の過程において特徴ベクトルｂ，ｂ’が現れることはないから、生体情報を秘匿したままでの生体認証が可能である。
【０１０１】
また、この実施の形態によれば、認証時に証明装置１０１から認証装置１０２へ第一レスポンスＲ’を送付するために生体情報を抽出するが、第一レスポンスＲ’の生成が終わると、その後は平文の生体情報を用いた処理がない。このため、証明装置１０１上で取得した生体情報をただちに消去できる。したがって、証明装置１０１において生体情報が窃取される機会を低減できる。
【０１０２】
なお、暗号方式は、岡本−高島暗号方式に限らず、ＢＧＮ暗号方式、Ｇｅｎｔｒｙ暗号方式、Ｐａｉｌｌｉｅｒ暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。
【０１０３】
証明装置１０１が認証装置１０２へ送信する第一レスポンスＲ’は、暗号化特徴ベクトルＣ’を暗号化したものであり、証明装置１０１が第一レスポンスＲ’を復号することにより、暗号化特徴ベクトルＣ’を取得する。生体認証システム１００は、この暗号化・復号に用いる暗号方式に、異なる暗号方式を使用する構成であってもよい。その場合の暗号方式は、加法的準同型性を有する暗号方式ではなく、普通の公開鍵暗号方式を使用する構成であってもよい。
例えば、認証装置１０２が、第二の暗号方式における公開鍵と秘密鍵との組を生成して、公開鍵を第一チャレンジＲとして、証明装置１０１に対して送信する。証明装置１０１は、復号装置１０３の公開鍵を使って、加法的準同型性を有する第一の暗号方式により、特徴ベクトルｂ’を暗号化し、暗号化特徴ベクトルＣ’を生成する。次に、証明装置１０１は、第一チャレンジＲとして認証装置１０２から受信した公開鍵を使って、第二の暗号方式により、生成した暗号化特徴ベクトルＣ’を暗号化して、第一レスポンスＲ’とし、認証装置１０２に対して送信する。認証装置１０２は、自身で生成した秘密鍵を使って、第二の暗号方式により、受信した第一レスポンスＲ’を復号して、暗号化特徴ベクトルＣ’を得る。
【０１０４】
ただし、第一チャレンジＲが第二の暗号方式における公開鍵であり、その公開鍵を使って暗号化特徴ベクトルＣ’を暗号化したものを第一レスポンスＲ’とする場合、第一チャレンジＲと暗号化特徴ベクトルＣ’とから第一レスポンスＲ’を生成できる。これに対し、この実施の形態で説明した方式では、第一チャレンジＲと生の特徴ベクトルｂ’とから第一レスポンスＲ’を生成し、第一チャレンジＲと暗号化特徴ベクトルＣ’とからでは第一レスポンスＲ’を生成できない。このため、登録処理Ｓ６００で登録装置１０４から認証装置１０２へ送信された暗号化特徴ベクトルＣを第三者が盗聴するなどして、暗号化特徴ベクトルＣを手に入れたとしても、証明装置１０１になりすまして認証を受けることはできない。
【０１０５】
実施の形態２．
実施の形態２について、図２７を用いて説明する。
なお、実施の形態１と共通する部分については、同一の符号を付し、説明を省略する。
【０１０６】
図２７は、この実施の形態における生体認証システム１００の全体構成の一例を示すシステム構成図である。
生体認証システム１００は、証明装置１０１と、認証装置１０２とを有する。証明装置１０１は、実施の形態１で説明した証明装置１０１としての機能と、復号装置１０３としての機能と、登録装置１０４としての機能とを兼ね備えている。
証明装置１０１は、公開鍵ｐｋと秘密鍵ｓｋとの組を生成し、公開鍵ｐｋを公開し、秘密鍵ｓｋを秘密裡に保持する。認証装置１０２は、証明装置１０１が公開した公開鍵ｐｋを使って暗号処理をする。
生体認証システム１００は、証明装置１０１を複数有する場合がある。例えば、生体認証システム１００が認証すべき各ユーザが、それぞれ自分の証明装置１０１を持っている。ユーザは、自分の証明装置１０１をネットワークなどに接続し、証明装置１０１は、ネットワークなどを介して認証装置１０２との間で通信を行う。
認証装置１０２は、それぞれの証明装置１０１の公開鍵ｐｋを記憶している。認証装置１０２は、認証を求めてきた証明装置１０１やユーザのＩＤなどに基づいて、記憶した公開鍵ｐｋのなかから、その証明装置１０１の公開鍵ｐｋを選択し、選択した公開鍵ｐｋを使って暗号処理をする。
それぞれの証明装置１０１の公開鍵ｐｋは、例えば、登録処理Ｓ６００において、暗号化特徴ベクトルＣとともに、証明装置１０１が認証装置１０２に対して送信し、認証装置１０２が、受信した公開鍵ｐｋを、暗号化特徴ベクトルＣと対応づけて記憶する。
【０１０７】
認証処理Ｓ７００において、認証装置１０２は、証明装置１０１の公開鍵ｐｋに基づいて、第一チャレンジＲを生成し、証明装置１０１に対して送信する。証明装置１０１は、自身の公開鍵ｐｋと、受信した第一チャレンジＲと、特徴ベクトルｂ’とに基づいて、第一レスポンスＲ’を生成し、認証装置１０２に対して送信する。認証装置１０２は、証明装置１０１の公開鍵ｐｋと、受信した第一レスポンスＲ’とに基づいて、暗号化特徴ベクトルＣ’を生成する。認証装置１０２は、証明装置１０１の公開鍵ｐｋと、生成した暗号化特徴ベクトルＣ’と、登録処理Ｓ６００で記憶した暗号化特徴ベクトルＣとに基づいて、第二チャレンジＣ＾を生成し、証明装置１０１に対して送信する。証明装置１０１は、自身の秘密鍵ｓｋと、受信した第二チャレンジＣ＾とに基づいて、第二レスポンスＺを生成し、認証装置１０２に対して送信する。認証装置１０２は、受信した第二レスポンスに基づいて、類似度ｄを算出する。
【０１０８】
第三者が証明装置１０１になりすました場合、第三者は、特徴ベクトルｂと特徴ベクトルｂ’とが似ていることを意味する第二レスポンスＺを生成しようとする。しかし、第三者は、証明装置１０１が生成した一時鍵ｕ１を知らないので、どのような第二レスポンスＺが、特徴ベクトルｂと特徴ベクトルｂ’とが似ているという意味になるのかわからない。仮に、第三者が、証明装置１０１の秘密鍵を窃取して第二チャレンジＣ＾を復号したとしても、一時鍵ｕ１を知ることはできないので、特徴ベクトルｂと特徴ベクトルｂ’とが似ていることを意味する第二レスポンスＺを生成することはできない。
【０１０９】
実施の形態３．
実施の形態３について、図２８〜図３０を用いて説明する。
なお、実施の形態１〜実施の形態２と共通する部分については、同一の符号を付し、説明を省略する。
【０１１０】
この実施の形態では、２つの特徴ベクトルｂ，ｂ’の間の類似度ｄとして、ユークリッド距離の二乗Σｉ［（ｂｉ−ｂ’ｉ）２］ではなく、内積Σｉ［ｂｉｂ’ｉ］を算出する場合について説明する。
なお、特徴ベクトルの各成分は、１か０かの２つの値のいずれかであるものとする。
【０１１１】
この実施の形態における生体認証システム１００の全体構成、証明装置１０１、認証装置１０２、復号装置１０３、登録装置１０４などの内部構成は、実施の形態１で説明したものと同様なので、異なる点のみ説明する。
【０１１２】
認証装置１０２において、暗号化ランダム類似度算出部３１４のベクトル累計部３６７は、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣと、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’と、スカラー倍算出部３６４が算出したスカラー倍ベクトルと、暗号化鍵生成部３６６が算出した暗号化鍵цとに基づいて、ベクトルｃ＾を算出する。ベクトルｃ＾は、ベクトル空間Ｖにおける加法により、暗号化特徴ベクトルＣのＴ個の成分ｃｉと、暗号化特徴ベクトルＣ’のＴ個の成分ｃ’ｉと、スカラー倍算出部３６４が算出したスカラー倍ベクトルのＴ個の成分２ｔ１，ｉΔｃｉと、暗号化鍵ц＝（Σｉ［ｔ１，ｉ２］）ь１＋Σｊ［ｕｊьｊ］（ｉは、１以上Ｔ以下の整数。ｊは、１以上ｎ以下の整数。）とを結合したベクトルΣｉ［ｃｉ］＋Σｉ［ｃ’ｉ］＋Σｉ［２ｔ１，ｉΔｃｉ］＋（Σｉ［ｔ１，ｉ２］）ь１＋Σｊ［ｕｊьｊ］（ｉは、１以上Ｔ以下の整数。ｊは、１以上ｎ以下の整数。）である。暗号の加法的準同型性より、ベクトルｃ＾は、Σｉ［ｂｉ＋ｂ’ｉ＋２ｔ１，ｉ（ｂｉ−ｂ’ｉ）＋２ｔ１，ｉ２］＋ｕ１を暗号化したものである。
【０１１３】
図２８は、この実施の形態における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程Ｓ７１２の処理の流れは、実施の形態１とほとんど同じであるが、ベクトル累計工程Ｓ７４７だけが異なっている。
ベクトル累計工程Ｓ７４７において、ベクトル累計部３６７が、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣのｉ番目の成分ｃｉと、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉと、スカラー倍算出工程Ｓ７４６でスカラー倍算出部３６４が算出したスカラー倍ベクトル¢のｉ番目の成分¢ｉ＝２ｔ１，ｉΔｃｉとに基づいて、ベクトル空間Ｖにおける加法により、ベクトルｃｉと、ベクトルｃ’ｉと、ベクトル¢ｉとを、ベクトルｃ＾に結合する。
【０１１４】
復号装置１０３の復号部４０４は、実施の形態１と同じ構成であるが、ベクトルｃ＾の意味が異なるため、復号部４０４が生成する第二レスポンスＺの意味も、実施の形態１とは異なる。
すなわち、第二レスポンスＺは、有限群ＧＴにおける累乗により、有限群ＧＴの元ｅ（ь１，ь１）を（Σｉ［（ｂｉ−ｂ’ｉ）２−（ｂｉ＋ｂ’ｉ）］−ｕ１）（ｉは、１以上Ｔ以下の整数。）で累乗した元になる。ここで、ｂｉ及びｂ’ｉが０か１かのいずれかの値しか取らないので、常に、ｂｉ＝ｂｉ２かつｂ’ｉ＝ｂ’ｉ２である。したがって、第二レスポンスＺは、有限群ＧＴにおける累乗により、有限群ＧＴの元ｅ（ь１，ь１）を（−２Σｉ［ｂｉｂ’ｉ］−ｕ１）（ｉは、１以上Ｔ以下の整数。）で累乗した元になる。すなわち、第二レスポンスＺは、特徴ベクトルｂと特徴ベクトルｂ’との内積Σｉ［ｂｉｂ’ｉ］を、一時鍵としての乱数ｕ１で暗号化したものになる。
【０１１５】
認証装置１０２において、平文類似度抽出部３１５の元結合部３７２は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部である位数ｑに基づいて、有限体Ｆｑにおける乗法による（−２）の逆元ш＝（−２）−１を算出する。認証装置１０２は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部である有限群ＧＴと、第二レスポンス受信部３４１が受信した第二レスポンスＺと、群変換部３７１が算出した復号鍵Ц＝ｅ（ь１，ь１）ｕ１と、算出した逆元шとに基づいて、復号類似度元Ｚ’を算出する。復号類似度元Ｚ’は、有限群ＧＴにおける乗法により第二レスポンスＺと、復号鍵Цとを結合した元ＺЦを、有限群ＧＴにおける累乗により、逆元шで累乗した元（ＺЦ）шである。第二レスポンスＺは、有限群ＧＴにおける累乗により、有限群ＧＴの元ｅ（ь１，ь１）を（−２Σｉ［ｂｉｂ’ｉ］−ｕ１）（ｉは、１以上Ｔ以下の整数。）で累乗した元であるから、復号類似度元Ｚ’は、有限群ＧＴにおける累乗により、有限群ＧＴの元ｅ（ь１，ь１）をΣｉ［ｂｉｂ’ｉ］（ｉは、１以上Ｔ以下の整数。）で累乗した元になる。
【０１１６】
図２９は、この実施の形態における平文類似度算出工程Ｓ７１９の処理の流れの一例を示すフローチャート図である。
平文類似度算出工程Ｓ７１９は、実施の形態１で説明した工程に加えて、逆数算出工程Ｓ６９０を有する。
逆数算出工程Ｓ６９０において、元結合部３７２は、処理装置９１１を用いて、有限体Ｆｑにおける乗法による（−２）の逆元шを算出する。なお、逆元шは、第二レスポンスＺに関わらず一定なので、あらかじめ算出しておく構成であってもよい。
元結合工程Ｓ６９２において、元結合部３７２は、処理装置９１１を用いて、第二レスポンス受信部３４１が受信した第二レスポンスＺと、逆数算出工程Ｓ６９０で算出した逆元шと、群変換工程Ｓ６９１で群変換部３７１が算出した復号鍵Цとに基づいて、復号類似度元Ｚ’＝（ＺЦ）шを算出する。
【０１１７】
なお、元結合部３７２が、復号類似度元Ｚ’として、有限群ＧＴにおける乗法により第二レスポンスＺと復号鍵Цとを結合した元ＺЦを算出し、離散対数算出部３７３が、類似度ｄとしｔ、復号類似度元Ｚ’がｅ（ь１，ь１）−２の何乗であるかを算出する構成であってもよい。
【０１１８】
２つの特徴ベクトルｂ，ｂ’の内積Σｉ［ｂｉｂ’ｉ］は、ユークリッド距離の二乗Σｉ［（ｂｉ−ｂ’ｉ）２］とは逆に、大きいほど、２つの特徴ベクトルｂ，ｂ’が似ていることを表わす。このため、判定部３０６は、離散対数算出部３７３が算出した類似度ｄが、所定の閾値ｄ０より大きい場合に、２つの特徴ベクトルｂ，ｂ’が似ていると判定する。
【０１１９】
特徴ベクトルの各成分が０か１かの２つの値のいずれかしか取らないので、２つの特徴ベクトルｂ，ｂ’の内積Σｉ［ｂｉｂ’ｉ］は、０以上Ｔ以下の整数となる。離散対数算出部３７３は、例えば、ｄ０以上Ｔ以下のすべての整数ｄについて、あらかじめｅ（ь１，ь１）を整数ｄで累乗した元ｅ（ь１，ь１）ｄを算出しておくことにより、類似度ｄがｄ０以上かつＴ以下の場合に、類似度ｄを算出し、類似度ｄがｄ０未満である場合に、類似度ｄがｄ０より小さいことを判定する。なお、離散対数算出部３７３は、実施の形態１と同様、類似度ｄがｄ０以下の場合に類似度ｄを算出し、類似度ｄがｄ０より大きい場合に、類似度ｄがｄ０より大きいことを判定する構成であってもよい。
【０１２０】
これにより、特徴点の一致数を指標として、２つの特徴ベクトルｂ，ｂ’が類似しているか否かを判定することができる。
【０１２１】
図３０は、この実施の形態の生体認証システム１００における類似度算出の計算手順を示すフローチャート図である。
第一段階として、第二チャレンジ生成工程Ｓ７１２において、認証装置１０２が、２つの暗号化特徴ベクトルＣ，Ｃ’から第二チャレンジＣ＾を算出することにより、Ｔ個のδｉ＝（ｂｉ−ｂ’ｉ）＋ｔ１，ｉ（ｉは、１以上Ｔ以下の整数。）と、１個のδ＊＝Σｉ［２ｔ１，ｉ（ｂｉ−ｂ’ｉ）＋ｔ１，ｉ２＋ｂｉ＋ｂ’ｉ］＋ｕ１（ｉは、１以上Ｔ以下の整数。）とを算出する。この計算は、復号装置１０３の鍵により暗号化されたままの状態で行われるので、認証装置１０２は、特徴ベクトルｂ，ｂ’についての情報を得ることができない。
第二段階として、第二レスポンス生成工程Ｓ７１６において、復号装置１０３が、第二チャレンジＣ＾から第二レスポンスＺを算出することにより、ζ＝Σｉ［δｉ２］−δ＊（ｉは、１以上Ｔ以下の整数。）を算出する。この計算は、復号装置１０３の秘密鍵によって復号された状態で行われるが、復号装置１０３は、一時鍵ｕ１を知らないので、特徴ベクトルｂ，ｂ’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵ｕ１で暗号化された状態で行われる。
第三段階として、平文類似度算出工程Ｓ７１９において、認証装置１０２が、第二レスポンスＺから、類似度ｄ＝ζ＋ｕ１を算出する。これにより、認証装置１０２は、類似度ｄを得ることができるが、特徴ベクトルｂ，ｂ’についての情報を得ることはできない。
【０１２２】
なお、暗号方式は、岡本−高島暗号方式に限らず、ＢＧＮ暗号方式、Ｇｅｎｔｒｙ暗号方式、Ｐａｉｌｌｉｅｒ暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置１０１と認証装置１０２との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
【０１２３】
また、生体認証システム１００は、実施の形態２と同様に、証明装置１０１が、復号装置１０３や登録装置１０４としての機能を兼ね備える構成であってもよい。
【０１２４】
なお、実施の形態１と比較すると、証明装置１０１、復号装置１０３、登録装置１０４の構成は、変わらず、認証装置１０２の構成だけが異なる。したがって、認証装置１０２を、実施の形態１で説明した構成と、この実施の形態で説明した構成とを切り替えることができる構成とすることにより、生体認証システム１００の他の装置に変更を加えることなく、ユークリッド距離と内積との２種類の類似度を算出することができる。
【０１２５】
実施の形態４．
実施の形態４について、図３１〜図４５を用いて説明する。
なお、実施の形態１〜実施の形態３と共通する部分については、同一の符号を付し、説明を省略する。
【０１２６】
この実施の形態では、暗号方式として、ＢＧＮ暗号方式を使う場合について説明する。なお、類似度ｄは、実施の形態１と同様、ユークリッド距離の二乗を使う。
【０１２７】
まず、ＢＧＮ暗号方式の概要について説明する。
【０１２８】
Ｎは、互いに異なる２つの素数ｐ，ｑの積である。Ｇ及びＧＴは、位数Ｎの有限群である。なお、有限群Ｇ及び有限群ＧＴにおける群演算は、乗法として記述する。ｅは、有限群Ｇの２つの元の組を有限群ＧＴの元に対応づけるペアリングＧ×Ｇ→ＧＴである。ペアリングｅは、双線形性と非退化性とを満たす。
ｇ及びｕは、有限群Ｇの生成元のなかから一様ランダムに選択した元である。ｈは、有限群Ｇの元であり、有限群Ｇにおける累乗により、元ｕを素数ｑで累乗した元ｕｑである。
有限群Ｇ及び有限群ＧＴは、位数ｐの巡回群と、位数ｑの巡回群との直積である。したがって、元ｈの位数は、ｐである。
【０１２９】
ｘ及びｒは、０以上Ｎ未満の整数である。有限群Ｇにおける累乗により元ｇを整数ｘで累乗した元ｇｘと、有限群Ｇにおける累乗により元ｈを整数ｒで累乗した元ｈｒとの積ｇｘｈｒが与えられたとき、有限群Ｇにおける累乗により積ｇｘｈｒを素数ｐで累乗した元［ｇｘｈｒ］ｐは、元ｈの位数がｐなので、［ｇｘ］ｐと等しい。
【０１３０】
例えば、有限群Ｇと、有限群ＧＴと、位数Ｎと、ペアリングｅと、元ｇと、元ｈとの組を公開鍵ｐｋとし、素数ｐを秘密鍵ｓｋとする。素数ｑよりも十分に小さい整数Ｌについて、０以上Ｌ以下の整数ｘを平文とし、有限群Ｇの元ｇｘｈｒを、平文ｘを暗号化した暗号文Ｅ（ｘ）とする。ただし、ｒは、０以上Ｎ未満の整数のなかから一様ランダムに選択した整数である。
復号には、秘密鍵ｓｋである素数ｐを使う。有限群Ｇにおける累乗により、暗号文Ｅ（ｘ）を素数ｐで累乗した元Ｅ（ｘ）ｐ＝［ｇｘ］ｐ＝［ｇｐ］ｘを算出する。これが、ｇｐの何乗であるかがわかれば、ｘが復号できる。
Ｌが小さい場合、例えば、Ｐｏｌｌａｒｄのラムダ法を用いることにより、この離散対数問題を解くことができる。その場合に必要な計算量は、√Ｌに比例する。したがって、現実的な計算量で計算できるよう、Ｌの値を設定すれば、ｘを復号することができる。
【０１３１】
整数ｘ１の暗号文Ｅ（ｘ１）＝ｇｘ１ｈｒ１と、整数ｘ２の暗号文Ｅ（ｘ２）＝ｇｘ２ｈｒ２とを、有限群Ｇにおける乗法により結合すると、Ｅ（ｘ１）Ｅ（ｘ２）＝ｇｘ１＋ｘ２ｈｒ１＋ｒ２となるから、整数ｘ１と整数ｘ２との和ｘ１＋ｘ２の暗号文Ｅ（ｘ１＋ｘ２）になる。
【０１３２】
また、暗号文Ｅ（ｘ）は、暗号化されたままの状態で、ペアリングｅを使って有限群ＧＴへ写したのちに、復号することもできる。例えば、整数ｘ１の暗号文Ｅ（ｘ１）＝ｇｘ１ｈｒ１と、整数ｘ２の暗号文Ｅ（ｘ２）＝ｇｘ２ｈｒ２とのペアリングｅ（ｇｘ１ｈｒ１，ｇｘ２ｈｒ２）は、ペアリングの双線形性より、ｅ（ｇ，ｇ）ｘ１ｘ２ｅ（ｇ，ｈ）ｘ１ｒ２ｅ（ｈ，ｇ）ｘ２ｒ１ｅ（ｈ，ｈ）ｒ１ｒ２である。有限群Ｇの元ｈの位数がｐなので、有限群ＧＴの元であるペアリングｅ（ｇ，ｈ），ｅ（ｈ，ｇ），ｅ（ｈ，ｈ）の位数はいずれもｐである。したがって、有限群ＧＴにおける累乗により、暗号文Ｅ（ｘ１）と暗号文Ｅ（ｘ２）とのペアリングｅ（Ｅ（ｘ１），Ｅ（ｘ２））を素数ｐで累乗すると、［ｅ（ｇ，ｇ）ｐ］ｘ１ｘ２になる。すなわち、暗号文Ｅ（ｘ１）と暗号文Ｅ（ｘ２）とのペアリングｅ（Ｅ（ｘ１），Ｅ（ｘ２））は、整数ｘ１と整数ｘ２との積ｘ１ｘ２の暗号文になっている。
【０１３３】
図３１は、この実施の形態における鍵生成部４０１の構成の一例を示す詳細ブロック図である。
復号装置１０３の鍵生成部４０１は、例えば、群決定部４３１と、生成元選択部４３２と、生成元累乗部４３３とを有する。
群決定部４３１は、処理装置９１１を用いて、セキュリティレベルに応じて定まる大きさ（例えば５１２ビットや１０２４ビットなど）に基づいて、互いに異なる２つの素数ｐ，ｑを生成する。群決定部４３１は、処理装置９１１を用いて、生成した２つの素数ｐ，ｑの積Ｎ＝ｐｑを計算する。群決定部４３１は、処理装置９１１を用いて、計算した積Ｎに基づいて、有限群Ｇと有限群ＧＴとを決定する。有限群Ｇと有限群ＧＴとは、ともに位数がＮであり、ペアリングｅ：Ｇ×Ｇ→ＧＴを持つ。
生成元選択部４３２は、処理装置９１１を用いて、群決定部４３１が決定した有限群Ｇに基づいて、有限群Ｇの２つの生成元ｇ，ｕを選択する。
生成元累乗部４３３は、処理装置９１１を用いて、群決定部４３１が生成した素数ｑと、生成元選択部４３２が選択した生成元ｕとに基づいて、元ｈを算出する。元ｈは、有限群Ｇにおける累乗により、生成元ｕを素数ｑで累乗した元ｕｑである。
底算出部４３４は、処理装置９１１を用いて、群決定部４３１が生成した素数ｐと、ペアリングｅと、生成元選択部４３２が選択した生成元ｇとに基づいて、元πを算出する。元πは、有限群ＧＴの元である。元πは、ペアリングｅにより生成元ｇ同士の組を変換した元ｅ（ｇ，ｇ）を、有限群ＧＴにおける累乗により、素数ｐで累乗した元ｅ（ｇ，ｇ）ｐである。
【０１３４】
公開鍵記憶部４０３は、記憶装置９１４を用いて、公開鍵ｐｋとして、有限群Ｇと、有限群ＧＴと、積Ｎと、ペアリングｅと、生成元ｇと、元ｈと、元πの組（Ｇ，ＧＴ，Ｎ，ｅ，ｇ，ｈ，π）を記憶する。
秘密鍵記憶部４１３は、記憶装置９１４を用いて、秘密鍵ｓｋとして、群決定部４３１が生成した素数ｐを記憶する。
【０１３５】
図３２は、この実施の形態における鍵生成工程Ｓ５０１の処理の流れの一例を示すフローチャート図である。
鍵生成工程Ｓ５０１では、復号装置１０３が、公開鍵ｐｋと秘密鍵ｓｋとの組を生成する。なお、ユーザごとに異なる公開鍵ｐｋと秘密鍵ｓｋとの組を生成する構成であってもよいし、システム全体として１つの公開鍵ｐｋと秘密鍵ｓｋとの組を生成する構成であってもよい。
鍵生成工程Ｓ５０１は、例えば、群決定工程Ｓ５２１と、生成元選択工程Ｓ５２２と、生成元累乗工程Ｓ５２３と、底算出工程Ｓ５２４とを有する。
【０１３６】
最初に、群決定工程Ｓ５２１において、群決定部４３１が、処理装置９１１を用いて、２つの素数ｐ，ｑと、積Ｎと、位数Ｎの有限群Ｇ及びＧＴとを決定する。公開鍵記憶部４０３が、記憶装置９１４を用いて、公開鍵ｐｋの一部として、積Ｎと、有限群Ｇと、有限群ＧＴとを記憶する。秘密鍵記憶部４１３が、記憶装置９１４を用いて、秘密鍵ｓｋとして、素数ｐを記憶する。
生成元選択工程Ｓ５２２において、生成元選択部４３２が、処理装置９１１を用いて、群決定工程Ｓ５２１で群決定部４３１が決定した有限群Ｇに基づいて、有限群Ｇの２つの生成元ｇ，ｕを選択する。公開鍵記憶部４０３が、記憶装置９１４を用いて、公開鍵ｐｋの一部として、生成元ｇを記憶する。
生成元累乗工程Ｓ５２３において、生成元累乗部４３３が、処理装置９１１を用いて、群決定工程Ｓ５２１で群決定部４３１が決定した素数ｑと、生成元選択工程Ｓ５２２で生成元選択部４３２が選択した生成元ｕとに基づいて、有限群Ｇの元ｈ＝ｕｑを算出する。公開鍵記憶部４０３が、処理装置９１１を用いて、公開鍵ｐｋの一部として、元ｈを記憶する。
底算出工程Ｓ５２４において、底算出部４３４が、処理装置９１１を用いて、群決定工程Ｓ５２１で群決定部４３１が決定した素数ｐ及びペアリングｅと、生成元選択工程Ｓ５２２で生成元選択部４３２が選択した生成元ｇとに基づいて、有限群ＧＴの元π＝ｅ（ｇ，ｇ）ｐを算出する。公開鍵記憶部４０３が、処理装置９１１を用いて、公開鍵ｐｋの一部として、元πを記憶する。
【０１３７】
このようにして公開鍵記憶部４０３が記憶した公開鍵ｐｋ＝（Ｇ，ＧＴ，Ｎ，ｅ，ｇ，ｈ，π）は、公開鍵送信部４０８が認証装置１０２などに対して送信し、認証装置１０２などが受信して格納する。
【０１３８】
図３３は、この実施の形態における特徴ベクトル暗号化工程Ｓ６０３の処理の流れの一例を示すフローチャート図である。
特徴ベクトル暗号化工程Ｓ６０３では、登録装置１０４が、特徴ベクトルｂを暗号化して暗号化特徴ベクトルＣを生成する。特徴ベクトル暗号化工程Ｓ６０３は、例えば、初期化工程Ｓ６１０と、繰り返し工程Ｓ６１１と、乱数生成工程Ｓ６１２と、元算出工程Ｓ６１３ａとを有する。
登録装置１０４の特徴ベクトル形成部２０４が生成する特徴ベクトルｂは、例えば、整数を成分とするＴ次元のベクトル（ｂ１，ｂ２，…，ｂＴ）（Ｔは、１以上の整数。）である。暗号化データ生成部２０６が生成する暗号化特徴ベクトルＣは、有限群Ｇの元を成分とするＴ次元のベクトル（ｃ１，ｃ２，…，ｃＴ）である。
【０１３９】
最初に、初期化工程Ｓ６１０において、暗号化データ生成部２０６が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ６１１において、暗号化データ生成部２０６が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、暗号化データ生成部２０６は、特徴ベクトル暗号化工程Ｓ６０３を終了する。整数ｉがＴ以下である場合、暗号化データ生成部２０６は、乱数生成工程Ｓ６１２へ処理を進め、暗号化特徴ベクトルＣのｉ番目の成分ｃｉを生成する。
乱数生成工程Ｓ６１２において、乱数生成部２０５が、処理装置９１１を用いて、公開鍵記憶部２０２が記憶した公開鍵ｐｋの一部である位数Ｎに基づいて、乱数ｒｉを生成する。乱数生成部２０５が生成する乱数ｒｉは、０以上Ｎ未満の整数のなかから、一様ランダムに選択した整数である。
元算出工程Ｓ６１３ａにおいて、暗号化データ生成部２０６が、処理装置９１１を用いて、公開鍵記憶部２０２が記憶した公開鍵ｐｋの一部である生成元ｇと元ｈと、特徴ベクトル形成部２０４が生成した特徴ベクトルｂのｉ番目の成分ｂｉと、乱数生成工程Ｓ６１２で特徴ベクトル形成部２０４が生成した乱数ｒｉとに基づいて、暗号化特徴ベクトルＣのｉ番目の成分ｃｉを算出する。暗号化データ生成部２０６が算出する暗号化特徴ベクトルＣのｉ番目の成分ｃｉは、有限群Ｇにおける累乗により生成元ｇを整数ｂｉで累乗した元ｇｂｉと、有限群Ｇにおける累乗により元ｈを乱数ｒｉで累乗した元ｈｒｉとを、有限群Ｇにおける乗法により結合した元ｇｂｉｈｒｉである。
暗号化データ生成部２０６は、繰り返し工程Ｓ６１１に処理を戻し、暗号化特徴ベクトルＣの次の成分を生成する。
【０１４０】
このようにして暗号化データ生成部２０６が生成した暗号化特徴ベクトルＣは、暗号化データ送信部２０１が認証装置１０２に対して送信し、認証装置１０２が受信して格納する。
【０１４１】
図３４は、この実施の形態における第一チャレンジ生成工程Ｓ７０１の処理の流れの一例を示すフローチャート図である。
第一チャレンジ生成工程Ｓ７０１では、認証装置１０２が、第一チャレンジＲを生成する。第一チャレンジ生成工程Ｓ７０１は、例えば、初期化工程Ｓ７２９と、繰り返し工程Ｓ７２１と、乱数生成工程Ｓ７２２と、元算出工程Ｓ７２３ａとを有する。
認証装置１０２の暗号化乱数生成部３０４が生成する第一チャレンジＲは、有限群Ｇの元を成分とするＴ次元のベクトル（Ｒ１，Ｒ２，…，ＲＴ）である。
【０１４２】
最初に、初期化工程Ｓ７２９において、暗号化乱数生成部３０４が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ７２１において、暗号化乱数生成部３０４が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、暗号化乱数生成部３０４は、第一チャレンジ生成工程Ｓ７０１を終了する。整数ｉがＴ以下である場合、暗号化乱数生成部３０４は、乱数生成工程Ｓ７２２へ処理を進め、第一チャレンジＲのｉ番目の成分Ｒｉを生成する。
乱数生成工程Ｓ７２２において、乱数生成部３０３が、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部である位数Ｎに基づいて、２個の乱数Ｒ１，ｉ，Ｒ２，ｉを生成する。乱数生成部３０３が生成する乱数Ｒ１，ｉ，Ｒ２，ｉは、０以上Ｎ未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部３２２が、記憶装置９１４を用いて、乱数生成部３０３が生成した乱数Ｒ１，ｉを記憶する。
元算出工程Ｓ７２３ａにおいて、暗号化乱数生成部３０４が、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部である生成元ｇ及び元ｈと、乱数生成工程Ｓ７２２で乱数生成部３０３が生成した２個の乱数Ｒ１，ｉ，Ｒ２，ｉとに基づいて、第一チャレンジＲのｉ番目の成分Ｒｉを算出する。暗号化乱数生成部３０４が算出する第一チャレンジＲのｉ番目の成分Ｒｉは、有限群Ｇにおける累乗により生成元ｇを乱数Ｒ１，ｉで累乗した元と、有限群Ｇにおける累乗により元ｈを乱数Ｒ２，ｉで累乗した元とを、有限群Ｇにおける乗法により結合した元である。
暗号化乱数生成部３０４は、繰り返し工程Ｓ７２１に処理を戻し、第一チャレンジＲの次の成分を生成する。
【０１４３】
このようにして暗号化乱数生成部３０４が生成した第一チャレンジＲは、第一チャレンジ送信部３１１が証明装置１０１に対して送信し、証明装置１０１が受信して処理をする。
【０１４４】
第一チャレンジ生成工程Ｓ７０１において乱数生成部３０３が生成する乱数Ｒ１，ｉ，Ｒ２，ｉ（ｉは、１以上Ｔ以下の整数。）は、全部で２Ｔ個である。このうち、Ｔ個の乱数Ｒ１，ｉ（ｉは、１以上Ｔ以下の整数。）を、乱数記憶部３２２が記憶する。乱数記憶部３２２が記憶するＴ個の乱数Ｒ１，ｉは、平文としての乱数であり、残りのＴ個の乱数Ｒ２，ｉ（ｉは、１以上Ｔ以下の整数。）は、暗号化のための乱数である。第一チャレンジＲの各成分Ｒｉは、平文としての乱数Ｒ１，ｉを暗号化したものである。
【０１４５】
図３５は、この実施の形態における暗号化データ埋め込み部２１７の構成の一例を示す詳細ブロック図である。
証明装置１０１の暗号化データ埋め込み部２１７は、例えば、累乗算出部２３４と、零生成部２３２と、元結合部２３５とを有する。
【０１４６】
証明装置１０１の特徴ベクトル形成部２１４が生成する特徴ベクトルｂ’は、登録装置１０４の特徴ベクトル形成部２０４が生成する特徴ベクトルｂと同様、整数を成分とするＴ次元のベクトル（ｂ’１，ｂ’２，…，ｂ’Ｔ）である。
乱数生成部２１５は、処理装置９１１を用いて、公開鍵記憶部２１２が記憶した公開鍵ｐｋの一部である位数Ｎに基づいて、Ｔ個の乱数ｒ’ｉ（ｉは、１以上Ｔ以下の整数。）を生成する。乱数生成部２１５が生成する乱数ｒ’ｉは、０以上Ｎ未満の整数のなかから、一様ランダムに選択した整数である。
【０１４７】
累乗算出部２３４は、処理装置９１１を用いて、第一チャレンジ受信部２１１が受信した第一チャレンジＲと、特徴ベクトル形成部２１４が生成した特徴ベクトルｂ’とに基づいて、累乗ベクトルЯを算出する。累乗算出部２３４が算出する累乗ベクトルЯは、第一チャレンジＲと同様に、有限群Ｇの元を成分とするＴ次元のベクトル（я１，я２，…，яＴ）である。累乗算出部２３４が算出する累乗ベクトルЯのｉ番目の成分яｉ（ｉは、１以上Ｔ以下の整数。）は、有限群Ｇにおける累乗により、第一チャレンジＲのｉ番目の成分Ｒｉを、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉで累乗した元Ｒｉｂ’ｉである。累乗算出部２３４が算出する累乗ベクトルЯの各成分яｉは、特徴ベクトルｂ’の成分ｂ’ｉと、認証装置１０２が生成した平文としての乱数Ｒ１，ｉとの積を暗号化したものになる。
零生成部２３２は、処理装置９１１を用いて、公開鍵記憶部２０２が記憶した公開鍵ｐｋの一部である元ｈと、乱数生成部２１５が生成したＴ個の乱数ｒ’ｉとに基づいて、暗号化零ベクトルＯを生成する。暗号化零ベクトルＯは、有限群Ｇの元を成分とするＴ次元のベクトル（ｏ１，ｏ２，…，ｏＴ）である。暗号化零ベクトルＯのｉ番目の成分ｏｉ（ｉは、１以上Ｔ以下の整数。）は、有限群Ｇにおける累乗により元ｈをｉ番目の乱数ｒ’ｉで累乗した元ｈｒ’ｉである。暗号化零ベクトルＯの各成分ｏｉは、０を暗号化したものである。
【０１４８】
元結合部２３５は、処理装置９１１を用いて、累乗算出部２３４が算出した累乗ベクトルЯと、零生成部２３２が生成した暗号化零ベクトルＯとに基づいて、第一レスポンスＲ’を算出する。第一レスポンスＲ’は、有限群Ｇの元を成分とするＴ次元のベクトル（Ｒ’１，Ｒ’２，…，Ｒ’Ｔ）である。第一レスポンスＲ’のｉ番目の成分Ｒ’ｉ（ｉは、１以上Ｔ以下の整数。）は、有限群Ｇにおける乗法により、累乗ベクトルのｉ番目の成分яｉ＝Ｒｉｂ’ｉと、暗号化零ベクトルＯのｉ番目の成分ｏｉ＝ｈｒ’ｉとを結合した元Ｒｉｂ’ｉｈｒ’ｉである。第一レスポンスＲ’の各成分Ｒ’ｉは、第一チャレンジＲの成分Ｒｉにおいて暗号化されている平文としての乱数Ｒ１，ｉと、特徴ベクトルｂ’の成分ｂ’ｉとの積を暗号化したものになる。
【０１４９】
図３６は、この実施の形態における第一レスポンス生成工程Ｓ７０７の処理の流れの一例を示すフローチャート図である。
第一レスポンス生成工程Ｓ７０７では、証明装置１０１が、特徴ベクトルｂ’と、第一チャレンジＲとに基づいて、第一レスポンスＲ’を生成する。第一レスポンス生成工程Ｓ７０７は、例えば、初期化工程Ｓ６６０と、繰り返し工程Ｓ６６１と、累乗算出工程Ｓ６６２ａと、乱数生成工程Ｓ６６３と、零生成工程Ｓ６６４と、元結合工程Ｓ６６５ａとを有する。
【０１５０】
最初に、初期化工程Ｓ６６０において、元結合部２３５が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ６６１において、元結合部２３５が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、元結合部２３５は、第一レスポンス生成工程Ｓ７０７を終了する。整数ｉがＴ以下である場合、元結合部２３５は、累乗算出工程Ｓ６６２ａへ処理を進め、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉを生成する。
累乗算出工程Ｓ６６２ａにおいて、累乗算出部２３４が、処理装置９１１を用いて、特徴ベクトル形成部２１４が生成した特徴ベクトルｂ’のｉ番目の成分ｂ’ｉと、第一チャレンジ受信部２１１が受信した第一チャレンジＲのｉ番目のベクトルＲｉとに基づいて、累乗ベクトルЯのｉ番目の成分яｉ＝Ｒｉｂ’ｉを算出する。
乱数生成工程Ｓ６６３において、乱数生成部２１５が、処理装置９１１を用いて、乱数ｒ’ｉを生成する。
零生成工程Ｓ６６４において、零生成部２３２が、処理装置９１１を用いて、乱数生成工程Ｓ６６３で乱数生成部２１５が生成した乱数ｒ’ｉに基づいて、暗号化零ベクトルＯのｉ番目の成分ｏｉ＝ｈｒ’ｉを算出する。
元結合工程Ｓ６６５ａにおいて、元結合部２３５が、処理装置９１１を用いて、累乗算出工程Ｓ６６２ａで累乗算出部２３４が算出した累乗ベクトルЯのｉ番目の成分яｉと、零生成工程Ｓ６６４で零生成部２３２が算出した暗号化零ベクトルＯのｉ番目の成分ｏｉとに基づいて、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉ＝яｉｏｉを算出する。
元結合部２３５は、繰り返し工程Ｓ６６１に処理を戻し、第一レスポンスＲ’の次の成分を生成する。
【０１５１】
このようにして暗号化データ埋め込み部２１７が生成した第一レスポンスＲ’は、第一レスポンス送信部２２１が認証装置１０２に対して送信し、認証装置１０２が受信して処理する。
【０１５２】
なお、特徴ベクトルｂ’の成分ｂ’ｉが０か１かの２つの値しか取らない場合、第一レスポンス生成工程Ｓ７０７の処理は、例えば次のように簡略化できる。
まず、累乗の必要がないので、累乗算出部２３４を設けず、累乗算出工程Ｓ６６２ａを実行しない。
元結合工程Ｓ６６５ａにおいて、元結合部２３５は、処理装置９１１を用いて、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉが０であるか１であるかを判定する。特徴ベクトルｂ’のｉ番目の成分ｂ’ｉが０である場合、元結合部２３５は、処理装置９１１を用いて、零生成工程Ｓ６６４で零生成部２３２が算出した暗号化零ベクトルＯのｉ番目の成分ｏｉ＝ｈｒ’ｉを、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉとする。特徴ベクトルｂ’のｉ番目の成分ｂ’ｉが１である場合、元結合部２３５は、処理装置９１１を用いて、有限群Ｇにおける乗法により、零生成工程Ｓ６６４で零生成部２３２が算出した暗号化零ベクトルＯのｉ番目の成分ｏｉ＝ｈｒ’ｉと、第一チャレンジ受信部２１１が受信した第一チャレンジＲのｉ番目の成分Ｒｉとを結合した元Ｒｉｈｒ’ｉを算出して、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉとする。
【０１５３】
第一チャレンジＲのｉ番目の成分Ｒｉは、生成元ｇのＲ１，ｉ乗と、元ｈのＲ２，ｉ乗との積であるから、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉは、生成元ｇのｂ’ｉＲ１，ｉ乗と、元ｈの（ｂ’ｉＲ２，ｉ＋ｒ’ｉ）乗との積である。すなわち、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉは、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉと、乱数Ｒ１，ｉとの積を暗号化したものになっている。
【０１５４】
図３７は、この実施の形態における暗号化データ抽出部３０５の構成の一例を示す詳細ブロック図である。
認証装置１０２の暗号化データ抽出部３０５は、例えば、逆数算出部３５１と、スカラー倍算出部３５２とを有する。
【０１５５】
認証装置１０２の暗号化データ抽出部３０５が生成する暗号化特徴ベクトルＣ’は、登録装置１０４の暗号化データ生成部２０６が生成する暗号化特徴ベクトルＣと同様、有限群Ｇの元を成分とするＴ次元のベクトル（ｃ’１，ｃ’２，…，ｃ’Ｔ）である。
【０１５６】
逆数算出部３５１は、処理装置９１１を用いて、乱数記憶部３２２が記憶したＴ個の乱数Ｒ１，ｉ（ｉは、１以上Ｔ以下の整数。）に基づいて、Ｎを法とする整数の乗法における乱数Ｒ１，ｉそれぞれの逆数κｉ＝Ｒ１，ｉ−１を算出する。逆数κｉは、乱数Ｒ１，ｉと逆数κｉとの積をＮで割った余りが１になる整数である。なお、Ｎが素数ではないので、必ずしも乱数Ｒ１，ｉに逆数κｉが存在するとは限らない。しかし、Ｎの素因数である２つの素数ｐ，ｑが十分大きければ、乱数Ｒ１，ｉが零因子である確率は、非常に小さく、無視できる。
累乗算出部３５３は、処理装置９１１を用いて、第一レスポンス受信部３３１が受信した第一レスポンスＲ’と、逆数算出部３５１が算出したＴ個の逆数κｉとに基づいて、暗号化特徴ベクトルＣ’を算出する。累乗算出部３５３が算出する暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉ（ｉは、１以上Ｔ以下の整数。）は、有限群Ｇにおける累乗により、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉを、ｉ番目の逆数κｉで累乗した元である。暗号化特徴ベクトルＣ’の各成分ｃ’ｉは、特徴ベクトルｂ’の成分ｂ’ｉを暗号化したものになる。
【０１５７】
図３８は、この実施の形態における暗号化生体情報抽出工程Ｓ７１０の処理の流れの一例を示すフローチャート図である。
暗号化生体情報抽出工程Ｓ７１０では、認証装置１０２が、第一レスポンスＲ’に基づいて、暗号化特徴ベクトルＣ’を生成する。暗号化生体情報抽出工程Ｓ７１０は、例えば、初期化工程Ｓ７３０と、繰り返し工程Ｓ７３１と、逆数算出工程Ｓ７３２と、累乗算出工程Ｓ７３３ａとを有する。
【０１５８】
最初に、初期化工程Ｓ７３０において、累乗算出部３５３が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ７３１において、累乗算出部３５３が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、累乗算出部３５３は、暗号化生体情報抽出工程Ｓ７１０を終了する。整数ｉがＴ以下である場合、累乗算出部３５３は、逆数算出工程Ｓ７３２へ処理を進め、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉを生成する。
逆数算出工程Ｓ７３２において、逆数算出部３５１が、処理装置９１１を用いて、第一チャレンジ生成工程Ｓ７０１で乱数記憶部３２２が記憶したＴ個の乱数のうちｉ番目の乱数Ｒ１，ｉに基づいて、逆数κｉ＝Ｒ１，ｉ−１を算出する。
累乗算出工程Ｓ７３３ａにおいて、累乗算出部３５３は、処理装置９１１を用いて、第一レスポンス受信部３３１が受信した第一レスポンスＲ’のｉ番目の成分Ｒ’ｉと、逆数算出工程Ｓ７３２で算出した逆数κｉとに基づいて、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉ＝Ｒ’ｉκｉを算出する。
累乗算出部３５３は、繰り返し工程Ｓ７３１に処理を戻し、暗号化特徴ベクトルＣ’の次の成分を生成する。
【０１５９】
このようにして暗号化データ抽出部３０５が生成した暗号化特徴ベクトルＣ’は、第二チャレンジ生成工程Ｓ７１２で使われる。
【０１６０】
第一レスポンスＲ’のｉ番目の成分Ｒ’ｉは、生成元ｇのｂ’ｉＲ１，ｉ乗と、元ｈの（ｂ’ｉＲ２，ｉ＋ｒ’ｉ）乗との積であるから、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉは、生成元ｇのＲ１，ｉ−１ｂ’ｉＲ１，ｉ乗と、元ｈのＲ１，ｉ−１（ｂ’ｉＲ２，ｉ＋ｒ’ｉ）乗との積である。Ｒ１，ｉＲ１，ｉ−１≡１（ｍｏｄ  Ｎ）であるから、ｃ’ｉは、生成元ｇのｂ’ｉ乗と、元ｈのＲ１，ｉ−１（ｂ’ｉＲ２，ｉ＋ｒ’ｉ）乗との積である。すなわち、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉは、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉを暗号化したものになる。
【０１６１】
図３９は、この実施の形態における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図である。
認証装置１０２の暗号化ランダム類似度算出部３１４は、例えば、差分算出部３６１と、二乗算出部３６８と、暗号化鍵生成部３６６と、元結合部３７０とを有する。
【０１６２】
乱数生成部３０３は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部である位数Ｎに基づいて、２個の乱数ｓ１，ｓ２を生成する。乱数生成部３０３が生成する乱数ｓ１，ｓ２は、０以上Ｎ未満の整数のなかから、一様ランダムに選択した整数である。
乱数記憶部３２２は、記憶装置９１４を用いて、乱数生成部３０３が生成した乱数のうち、１個の乱数ｓ１を記憶する。
【０１６３】
差分算出部３６１は、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣと、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’とに基づいて、暗号化差分ベクトルΔＣを算出する。暗号化差分ベクトルΔＣは、有限群Ｇの元を成分とするＴ次元のベクトル（Δｃ１，Δｃ２，…，ΔｃＴ）である。暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉ（ｉは、１以上Ｔ以下の整数。）は、有限群Ｇにおける乗法により、暗号化特徴ベクトルＣのｉ番目の成分ｃｉと、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉの逆元ｃ’ｉ−１とを結合した元ｃｉｃ’ｉ−１である。暗号化差分ベクトルΔＣの各成分Δｃｉは、特徴ベクトルｂの成分ｂｉと特徴ベクトルｂ’の成分ｂ’ｉとの差ｂｉ−ｂ’ｉを暗号化したものである。
なお、暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉは、有限群Ｇにおける乗法により、暗号化特徴ベクトルＣのｉ番目の成分ｃｉの逆元ｃｉ−１と、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉとを結合した元ｃｉ−１ｃ’ｉであってもよい。また、暗号化差分ベクトルΔＣの成分Δｃｉは、元ｃｉｃ’ｉ−１と、元ｃｉ−１ｃ’ｉとのなかから、ランダムに選択したいずれかの元であってもよい。
二乗算出部３６８は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるペアリングｅと、差分算出部３６１が算出した暗号化差分ベクトルΔＣとに基づいて、暗号化二乗ベクトルΔＣ’を算出する。暗号化二乗ベクトルΔＣ’は、有限群ＧＴの元を成分とするＴ次元のベクトル（Δｃ’１，Δｃ’２，…，Δｃ’Ｔ）である。暗号化二乗ベクトルΔＣ’のｉ番目の成分Δｃ’ｉ（ｉは、１以上Ｔ以下の整数。）は、ペアリングｅにより、暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉ同士の組を変換したペアリングｅ（Δｃｉ，Δｃｉ）である。暗号化二乗ベクトルΔＣ’の各成分Δｃ’ｉは、特徴ベクトルｂの成分ｂｉと特徴ベクトルｂ’の成分ｂ’ｉとの差の二乗（ｂｉ−ｂ’ｉ）２を暗号化したものである。
暗号化鍵生成部３６６は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるペアリングｅ及び生成元ｇ及び元ｈと、乱数生成部３０３が生成した２つの乱数ｓ１，ｓ２とに基づいて、暗号化鍵цを算出する。暗号化鍵цは、有限群ＧＴの元である。暗号化鍵цは、有限群Ｇにおける累乗により生成元ｇを乱数ｓ１で累乗した元ｇｓ１と、有限群Ｇにおける累乗により元ｈを乱数ｓ２で累乗した元ｈｓ２とを、有限群Ｇにおける乗法により結合した元ｇｓ１ｈｓ２と、生成元ｇとの組を、ペアリングｅにより変換した元ｅ（ｇｓ１ｈｓ２，ｇ）である。例えば、暗号化鍵生成部３６６は、生成元ｇと乱数ｓ１とに基づいて、有限群Ｇにおける累乗により、生成元ｇを乱数ｓ１で累乗した元ｇｓ１を算出する。暗号化鍵生成部３６６は、元ｈと乱数ｓ２とに基づいて、有限群Ｇにおける累乗により、元ｈを乱数ｓ２で累乗した元ｈｓ２を算出する。暗号化鍵生成部３６６は、有限群Ｇにおける乗法により、算出した２つの元ｇｓ１，ｈｓ２を結合した元ｇｓ１ｈｓ２を算出する。暗号化鍵生成部３６６は、ペアリングｅにより、算出した元ｇｓ１ｈｓ２と、生成元ｇとの組を変換した元ｅ（ｇｓ１ｈｓ２，ｇ）を算出する。暗号化鍵цは、乱数生成部３０３が算出した乱数ｓ１を暗号化したものである。
元結合部３７０は、処理装置９１１を用いて、二乗算出部３６８が算出した暗号化二乗ベクトルΔＣ’と、暗号化鍵生成部３６６が算出した暗号化鍵цとに基づいて、第二チャレンジＣ＾を算出する。第二チャレンジＣ＾は、有限群ＧＴの元である。元結合部３７０が算出する第二チャレンジＣ＾は、有限群ＧＴにおける乗法により、暗号化二乗ベクトルΔＣ’のＴ個の成分Δｃ’ｉと、暗号化鍵цとを結合した元Πｉ［Δｃ’ｉ］цである。第二チャレンジＣ＾は、特徴ベクトルｂの成分ｂｉと特徴ベクトルｂ’の成分ｂ’ｉとの差ｂｉ−ｂ’ｉの二乗（ｂｉ−ｂ’ｉ）２と、乱数ｓ１との総和Σｉ［（ｂｉ−ｂ’ｉ）２］＋ｓ１を暗号化したものである。
【０１６４】
図４０は、この実施の形態における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程Ｓ７１２では、認証装置１０２が、２つの暗号化特徴ベクトルＣ，Ｃ’に基づいて、第二チャレンジＣ＾を生成する。第二チャレンジ生成工程Ｓ７１２は、例えば、乱数生成工程Ｓ７４９と、暗号化鍵生成工程Ｓ７５２と、初期化工程Ｓ７４０と、繰り返し工程Ｓ７４１と、差分算出工程Ｓ７４２と、二乗算出工程Ｓ７５３と、元累計工程Ｓ７４８ａとを有する。
【０１６５】
最初に、乱数生成工程Ｓ７４９において、乱数生成部３０３が、処理装置９１１を用いて、２つの乱数ｓ１，ｓ２を生成する。
暗号化鍵生成工程Ｓ７５２において、暗号化鍵生成部３６６が、処理装置９１１を用いて、乱数生成工程Ｓ７４９で乱数生成部３０３が生成した２つの乱数ｓ１，ｓ２に基づいて、暗号化鍵ц＝ｇｓ１ｈｓ２を算出する。元結合部３７０は、処理装置９１１を用いて、第二チャレンジＣ＾を、暗号化鍵生成部３６６が算出した暗号化鍵цに初期化する。
初期化工程Ｓ７４０において、元結合部３７０は、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ７４１において、元結合部３７０が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、第二チャレンジＣ＾が完成したので、元結合部３７０は、第二チャレンジ生成工程Ｓ７１２を終了する。整数ｉがＴ以下である場合、元結合部３７０は、差分算出工程Ｓ７４２へ処理を進める。
差分算出工程Ｓ７４２において、差分算出部３６１が、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣのｉ番目の成分ｃｉと、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉとに基づいて、暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉを算出する。
二乗算出工程Ｓ７５３において、二乗算出部３６８が、処理装置９１１を用いて、差分算出工程Ｓ７４２で差分算出部３６１が算出した元Δｃｉに基づいて、暗号化二乗ベクトルΔＣ’のｉ番目の成分Δｃ’ｉ＝ｅ（Δｃｉ，Δｃｉ）を算出する。
元累計工程Ｓ７４８ａにおいて、元結合部３７０は、処理装置９１１を用いて、有限群ＧＴの乗法により、二乗算出工程Ｓ７５３で二乗算出部３６８が算出した暗号化二乗ベクトルΔＣ’のｉ番目の成分Δｃ’ｉを、第二チャレンジＣ＾に結合する。
元結合部３７０は、繰り返し工程Ｓ７４１に処理を戻す。
【０１６６】
このようにして暗号化ランダム類似度算出部３１４が算出した第二チャレンジＣ＾は、第二チャレンジ送信部３２１が復号装置１０３に対して送信し、復号装置１０３が受信して処理する。
【０１６７】
なお、第二チャレンジＣ＾を算出する手順は、上述した手順と異なっていてもよい。例えば、有限群Ｇよりも有限群ＧＴのほうが、乗法などの計算が速くできる場合、有限群ＧＴにおける演算を増やし、有限群Ｇにおける演算を減らしたほうが、第二チャレンジ生成工程Ｓ７１２の計算にかかる時間を短くすることができる。
【０１６８】
図４１は、この実施の形態における暗号化ランダム類似度算出部３１４の構成の別の例を示す詳細ブロック図である。
認証装置１０２の暗号化ランダム類似度算出部３１４は、例えば、２つの二乗算出部３８１，３８２と、積算出部３８３と、累乗算出部３８４と、元結合部３７０とを有する。
【０１６９】
二乗算出部３８１は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるペアリングｅと、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣとに基づいて、第一暗号化二乗ベクトルЖを算出する。第一暗号化二乗ベクトルЖは、有限群ＧＴの元を成分とするＴ次元のベクトル（ж１，ж２，…，жＴ）である。第一暗号化二乗ベクトルЖのｉ番目の成分жｉ（ｉは、１以上Ｔ以下の整数。）は、ペアリングｅにより、暗号化特徴ベクトルＣのｉ番目の成分ｃｉ同士の組を変換した元ｅ（ｃｉ，ｃｉ）である。
二乗算出部３８２は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるペアリングｅと、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’とに基づいて、第二暗号化二乗ベクトルЖ’を算出する。第二暗号化二乗ベクトルЖ’は、有限群ＧＴの元を成分とするＴ次元のベクトル（ж’１，ж’２，…，ж’Ｔ）である。第二暗号化二乗ベクトルЖ’のｉ番目の成分ж’ｉ（ｉは、１以上Ｔ以下の整数。）は、ペアリングｅにより、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉ同士の組を変換した元ｅ（ｃ’ｉ，ｃ’ｉ）である。
積算出部３８３は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるペアリングｅと、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣと、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’とに基づいて、暗号化積ベクトル¢を算出する。暗号化積ベクトル¢は、有限群ＧＴの元を成分とするＴ次元のベクトル（¢１，¢２，…，¢Ｔ）である。暗号化積ベクトル¢のｉ番目の成分¢ｉ（ｉは、１以上Ｔ以下の整数。）は、ペアリングｅにより、暗号化特徴ベクトルＣのｉ番目の成分ｃｉと、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉとの組を変換した元ｅ（ｃｉ，ｃ’ｉ）である。
累乗算出部３８４は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるペアリングｅ及び生成元ｇ及び元ｈと、乱数生成部３０３が生成した２つの乱数ｓ１，ｓ２とに基づいて、２つの累乗元ц１，ц２を算出する。第一の累乗元ц１は、ペアリングｅにより生成元ｇ同士の組を変換した元ｅ（ｇ，ｇ）を、有限群ＧＴにおける累乗により、乱数ｓ１で累乗した元ｅ（ｇ，ｇ）ｓ１である。第二の累乗元ц２は、ペアリングｅにより生成元ｇと元ｈとの組を変換した元ｅ（ｇ，ｈ）を、有限群ＧＴにおける累乗により、乱数ｓ２で累乗した元ｅ（ｇ，ｈ）ｓ２である。
元結合部３７０は、処理装置９１１を用いて、二乗算出部３８１が算出した第一暗号化二乗ベクトルЖと、二乗算出部３８２が算出した第二暗号化二乗ベクトルЖ’と、積算出部３８３が算出した暗号化積ベクトル¢と、累乗算出部３８４が算出した２つの累乗元ц１，ц２とに基づいて、第二チャレンジＣ＾を算出する。第二チャレンジＣ＾は、有限群ＧＴの元である。元結合部３７０が算出する第二チャレンジＣ＾は、有限群ＧＴの乗法により、第一暗号化二乗ベクトルЖのＴ個の成分жｉと、第二暗号化二乗ベクトルЖ’のＴ個の成分ж’ｉと、暗号化積ベクトル¢のＴ個の成分¢ｉの（−２）乗と、２つの累乗元ц１，ц２とをすべて結合した元Πｉ［жｉж’ｉ¢ｉ−２］ц１ц２である。この場合、第二チャレンジＣ＾は、Σｉ［ｂｉ２＋ｂ’ｉ２−２ｂｉｂ’ｉ］＋ｓ１＝Σｉ［（ｂｉ−ｂ’ｉ）２］＋ｓ１を暗号化したものである。
【０１７０】
図４２は、この実施の形態における第二チャレンジ生成工程Ｓ７１２の処理の流れの別の例を示すフローチャート図である。
第二チャレンジ生成工程Ｓ７１２は、例えば、乱数生成工程Ｓ７４９と、累乗算出工程Ｓ７５２ａと、初期化工程Ｓ７４０と、繰り返し工程Ｓ７４１と、二乗算出工程Ｓ７５３と、積算出工程Ｓ７５４と、元累計工程Ｓ７４８ａとを有する。
【０１７１】
乱数生成工程Ｓ７４９において、乱数生成部３０３が、処理装置９１１を用いて、２つの乱数ｓ１，ｓ２を生成する。
累乗算出工程Ｓ７５２ａにおいて、累乗算出部３８４が、処理装置９１１を用いて、乱数生成工程Ｓ７４９で乱数生成部３０３が生成した２つの乱数ｓ１，ｓ２に基づいて、２つの累乗元ц１＝ｅ（ｇ，ｇ）ｓ１，ц２＝ｅ（ｇ，ｈ）ｓ２を算出する。
初期化工程Ｓ７４０において、元結合部３７０が、処理装置９１１を用いて、整数ｉを０に初期化する。また、元結合部３７０が、処理装置９１１を用いて、有限群ＧＴにおける乗法により、累乗算出工程Ｓ７５２ａで累乗算出部３８４が算出した２つの累乗元ц１，ц２を結合した元ц１ц２を算出する。元結合部３７０は、処理装置９１１を用いて、第二チャレンジＣ＾を、算出した元ц１ц２に初期化する。
繰り返し工程Ｓ７４１において、元結合部３７０が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、第二チャレンジＣ＾が完成したので、元結合部３７０は、第二チャレンジ生成工程Ｓ７１２を終了する。整数ｉがＴ以下である場合、元結合部３７０は、二乗算出工程Ｓ７５３へ処理を進める。
二乗算出工程Ｓ７５３において、二乗算出部３８１が、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣのｉ番目の成分ｃｉに基づいて、第一暗号化二乗ベクトルЖのｉ番目の成分жｉ＝ｅ（ｃｉ，ｃｉ）を算出する。また、二乗算出部３８２が、処理装置９１１を用いて、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉに基づいて、第二暗号化二乗ベクトルЖ’のｉ番目の成分ж’ｉ＝ｅ（ｃ’ｉ，ｃ’ｉ）を算出する。
積算出工程Ｓ７５４において、積算出部３８３が、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣのｉ番目の成分ｃｉと、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉとに基づいて、暗号化積ベクトル¢のｉ番目の成分¢ｉ＝ｅ（ｃｉ，ｃ’ｉ）を算出する。
元累計工程Ｓ７４８ａにおいて、元結合部３７０は、処理装置９１１を用いて、有限群ＧＴの乗法により、二乗算出工程Ｓ７５３で二乗算出部３８１が算出した第一暗号化二乗ベクトルЖのｉ番目の成分жｉと、二乗算出工程Ｓ７５３で二乗算出部３８２が算出した第二暗号化二乗ベクトルЖ’のｉ番目の成分ж’ｉと、積算出工程Ｓ７５４で積算出部３８３が算出した暗号化積ベクトル¢のｉ番目の成分¢ｉの（−２）乗とを、第二チャレンジＣ＾に結合する。
元結合部３７０は、繰り返し工程Ｓ７４１に処理を戻す。
【０１７２】
このような処理手順とすることにより、有限群Ｇにおける演算がなくなり、ペアリングｅの計算と、有限群ＧＴにおける乗法の計算だけで、第二チャレンジＣ＾を生成することができる。
また、ペアリングｅ（ｇ，ｇ）及びｅ（ｇ，ｈ）や、第一暗号化二乗ベクトルЖの成分ｅ（ｃｉ，ｃｉ）は、暗号化特徴ベクトルＣ’と無関係であるから、前もって計算しておくことができる。これらを前もって計算しておくことにより、第二チャレンジＣ＾を生成するのにかかる時間を短くすることができる。
【０１７３】
図４３は、この実施の形態における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図である。
第二レスポンス生成工程Ｓ７１６では、復号装置１０３が、第二チャレンジＣ＾から、第二レスポンスＺを生成する。第二レスポンス生成工程Ｓ７１６は、例えば、累乗算出工程Ｓ５７１を有する。
【０１７４】
累乗算出工程Ｓ５７１において、復号装置１０３の復号部４０４が、処理装置９１１を用いて、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである素数ｐと、第二チャレンジ受信部４０２が受信した第二チャレンジＣ＾とに基づいて、第二レスポンスＺを算出する。第二レスポンスＺは、有限群ＧＴの元である。復号部４０４が算出する第二レスポンスＺは、有限群ＧＴにおける累乗により、第二チャレンジＣ＾を素数ｐで累乗した元である。
【０１７５】
第二チャレンジＣ＾は、Σｉ［（ｂｉ−ｂ’ｉ）２］＋ｓ１を暗号化したものであるから、第二レスポンスＺは、ペアリングｅにより生成元ｇ同士の組を変換した元ｅ（ｇ，ｇ）を有限群ＧＴにおける累乗により素数ｐで累乗した元ｅ（ｇ，ｇ）ｐを、有限群ＧＴにおける累乗により、Σｉ［（ｂｉ−ｂ’ｉ）２］＋ｓ１で累乗した元になる。なお、元ｅ（ｇ，ｇ）ｐは、公開鍵ｐｋの一部として公開されている元πであるから、第二レスポンスＺは、有限群ＧＴにおける累乗により元πをΣｉ［（ｂｉ−ｂ’ｉ）２］＋ｓ１で累乗した元である。
【０１７６】
平文類似度抽出部３１５の構成は、実施の形態１で説明した構成と同様なので、図２４を参照して説明する。
【０１７７】
群変換部３７１は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部である元πと、乱数記憶部３２２が記憶した乱数ｓ１とに基づいて、復号鍵Цを算出する。復号鍵Цは、有限群ＧＴの元である。復号鍵Цは、有限群ＧＴの累乗により、元πを乱数ｓ１の反数−ｓ１で累乗した元π−ｓ１である。
元結合部３７２は、処理装置９１１を用いて、第二レスポンス受信部３４１が受信した第二レスポンスＺと、群変換部３７１が算出した復号鍵Цとに基づいて、復号類似度元Ｚ’を算出する。復号類似度元Ｚ’は、有限群ＧＴの元である。復号類似度元Ｚ’は、有限群ＧＴにおける乗法により、第二レスポンスＺと、復号鍵Цとを結合した元ＺЦである。第二レスポンスＺは、有限群ＧＴにおける累乗により元πをΣｉ［（ｂｉ−ｂ’ｉ）２］＋ｓ１で累乗した元であるから、復号類似度元Ｚ’は、有限群ＧＴにおける累乗により元πをΣｉ［（ｂｉ−ｂ’ｉ）２］で累乗した元になる。
離散対数算出部３７３は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部である元πと、元結合部３７２が算出した復号類似度元Ｚ’とに基づいて、復号類似度元Ｚ’が元πの何乗であるかを算出して、類似度ｄとする。なお、実施の形態１と同様、離散対数算出部３７３は、類似度ｄが閾値ｄ０以下である場合に、類似度ｄを算出し、類似度ｄが閾値ｄ０より大きい場合は、類似度ｄが閾値ｄ０より大きいことを判定する構成であってもよい。
【０１７８】
これにより、認証装置１０２は、類似度ｄとして、２つの特徴ベクトルｂ，ｂ’の間のユークリッド距離の二乗Σｉ［（ｂｉ−ｂ’ｉ）２］を算出する。
【０１７９】
図４４は、この実施の形態における平文類似度算出工程Ｓ７１９の処理の流れの一例を示すフローチャート図である。
平文類似度算出工程Ｓ７１９では、認証装置１０２が、第二レスポンスＺから、類似度ｄを算出する。平文類似度算出工程Ｓ７１９は、例えば、群変換工程Ｓ６９１と、元結合工程Ｓ６９２と、離散対数算出工程Ｓ６９３とを有する。
【０１８０】
最初に、群変換工程Ｓ６９１において、群変換部３７１は、処理装置９１１を用いて、乱数記憶部３２２が記憶した一時鍵としての乱数ｓ１に基づいて、復号鍵Ц＝π−ｓ１を算出する。
元結合工程Ｓ６９２において、元結合部３７２は、処理装置９１１を用いて、第二レスポンス受信部３４１が受信した第二レスポンスＺと、群変換工程Ｓ６９１で群変換部３７１が算出した復号鍵Цとに基づいて、復号類似度元Ｚ’＝ＺЦを算出する。
離散対数算出工程Ｓ６９３において、離散対数算出部３７３は、処理装置９１１を用いて、元結合部３７２で元結合部３７２が算出した復号類似度元Ｚ’に基づいて、類似度ｄを算出する。
【０１８１】
平文類似度抽出部３１５が算出した類似度ｄに基づいて、判定部３０６が、２つの特徴ベクトルｂ，ｂ’が似ているか否かを判定することにより、特徴ベクトルｂで表わされる生体情報を持つ人物と、特徴ベクトルｂ’で表わされる生体情報を持つ人物とが同一人物であるか否かを判定する。判定部３０６は、類似度ｄが閾値ｄ０より小さい場合に、２つの特徴ベクトルｂ，ｂ’が似ていると判定する。
【０１８２】
図４５は、この実施の形態の生体認証システム１００における類似度算出の計算手順を示すフローチャート図である。
第一段階として、第二チャレンジ生成工程Ｓ７１２において、認証装置１０２が、２つの暗号化特徴ベクトルＣ，Ｃ’から第二チャレンジＣ＾を算出することにより、δ＝Σｉ［（ｂｉ−ｂ’ｉ）２］＋ｓ１（ｉは、１以上Ｔ以下の整数。）を算出する。この計算は、復号装置１０３の鍵により暗号化されたままの状態で行われるので、認証装置１０２は、特徴ベクトルｂ，ｂ’についての情報を得ることができない。
第二段階として、第二レスポンス生成工程Ｓ７１６において、復号装置１０３が、第二チャレンジＣ＾から第二レスポンスＺを算出することにより、ζを算出する。復号装置１０３は、単に復号処理をするだけなので、ζは、δと等しい。復号装置１０３は、一時鍵ｓ１を知らないので、特徴ベクトルｂ，ｂ’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵ｓ１で暗号化された状態で行われる。
第三段階として、平文類似度算出工程Ｓ７１９において、認証装置１０２が、第二レスポンスＺから、類似度ｄ＝ζ−ｓ１を算出する。これにより、認証装置１０２は、類似度ｄを得ることができるが、特徴ベクトルｂ，ｂ’についての情報を得ることはできない。
【０１８３】
このように、暗号化したままの状態で、平文の加法に相当する演算だけでなく、平文の乗法に相当する演算を少なくとも１回はできる暗号方式を使うことにより、類似度算出の計算手順のほとんどを、第一段階で終わらせることができる。これにより、復号装置１０３は、単純に復号処理だけをすればよい。
【０１８４】
この実施の形態によれば、公開鍵ｐｋ、秘密鍵ｓｋ、生成する乱数、記憶する乱数の数を低減することができる。
また、認証装置１０２から復号装置１０３に送付する第二チャレンジのデータ量が低減するので、認証に必要な通信量を低減することができる。
【０１８５】
なお、暗号方式は、ＢＧＮ暗号方式に限らず、Ｇｅｎｔｒｙ暗号方式など環準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置１０１と認証装置１０２との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
【０１８６】
また、生体認証システム１００は、実施の形態２と同様に、証明装置１０１が、復号装置１０３や登録装置１０４としての機能を兼ね備える構成であってもよい。
【０１８７】
実施の形態５．
実施の形態５について、図４６〜図４８を用いて説明する。
なお、実施の形態１〜実施の形態４と共通する部分については、同一の符号を付し、説明を省略する。
【０１８８】
この実施の形態では、実施の形態４で説明したＢＧＮ暗号方式を使い、実施の形態３と同様、類似度ｄとして、内積Σｉ［ｂｉｂ’ｉ］を算出する場合について説明する。
【０１８９】
この実施の形態における生体認証システム１００の全体構成、証明装置１０１、認証装置１０２、復号装置１０３、登録装置１０４などの内部構成は、実施の形態４で説明したものと同様なので、異なる点のみ説明する。
【０１９０】
図４６は、この実施の形態における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図である。
認証装置１０２の暗号化ランダム類似度算出部３１４は、例えば、積算出部３８３と、累乗算出部３８４と、元結合部３７０とを有する。
【０１９１】
積算出部３８３は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるペアリングｅと、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣと、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’とに基づいて、暗号化積ベクトル¢を算出する。暗号化積ベクトル¢は、有限群ＧＴの元を成分とするＴ次元のベクトル（¢１，¢２，…，¢Ｔ）である。暗号化積ベクトル¢のｉ番目の成分¢ｉは、ペアリングｅにより、暗号化特徴ベクトルＣのｉ番目の成分ｃｉと、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉとの組を変換した元ｅ（ｃｉ，ｃ’ｉ）である。
累乗算出部３８４は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋの一部であるペアリングｅ及び生成元ｇ及び元ｈと、乱数生成部３０３が生成した２つの乱数ｓ１，ｓ２とに基づいて、２つの累乗元ц１，ц２を算出する。第一の累乗元ц１は、ペアリングｅにより生成元ｇ同士の組を変換した元ｅ（ｇ，ｇ）を、有限群ＧＴにおける累乗により、乱数ｓ１で累乗した元ｅ（ｇ，ｇ）ｓ１である。第二の累乗元ц２は、ペアリングｅにより生成元ｇと元ｈとの組を変換した元ｅ（ｇ，ｈ）を、有限群ＧＴにおける累乗により、乱数ｓ２で累乗した元ｅ（ｇ，ｈ）ｓ２である。
元結合部３７０は、処理装置９１１を用いて、積算出部３８３が算出した暗号化積ベクトル¢と、累乗算出部３８４が算出した２つの累乗元ц１，ц２とに基づいて、第二チャレンジＣ＾を算出する。第二チャレンジＣ＾は、有限群ＧＴの元である。元結合部３７０が算出する第二チャレンジＣ＾は、有限群ＧＴの乗法ににより、暗号化積ベクトル¢のＴ個の成分¢ｉと、２つの累乗元ц１，ц２とをすべて結合した元Πｉ［¢ｉ］ц１ц２である。第二チャレンジＣ＾は、Σｉ［ｂｉｂ’ｉ］＋ｓ１を暗号化したものになる。
【０１９２】
図４７は、この実施の形態における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程Ｓ７１２は、例えば、乱数生成工程Ｓ７４９と、累乗算出工程Ｓ７５２ａと、初期化工程Ｓ７４０と、繰り返し工程Ｓ７４１と、積算出工程Ｓ７５４と、元累計工程Ｓ７４８ａとを有する。
【０１９３】
乱数生成工程Ｓ７４９において、乱数生成部３０３が、処理装置９１１を用いて、２つの乱数ｓ１，ｓ２を生成する。
累乗算出工程Ｓ７５２ａにおいて、累乗算出部３８４が、処理装置９１１を用いて、乱数生成工程Ｓ７４９で乱数生成部３０３が生成した２つの乱数ｓ１，ｓ２に基づいて、２つの累乗元ц１＝ｅ（ｇ，ｇ）ｓ１，ц２＝ｅ（ｇ，ｈ）ｓ２を算出する。
初期化工程Ｓ７４０において、元結合部３７０が、処理装置９１１を用いて、整数ｉを０に初期化する。また、元結合部３７０は、処理装置９１１を用いて、有限群ＧＴにおける乗法により、累乗算出部３８４が算出した２つの累乗元ц１，ц２を結合した元ц１ц２を算出する。元結合部３７０は、処理装置９１１を用いて、第二チャレンジＣ＾を、算出した元ц１ц２に初期化する。
繰り返し工程Ｓ７４１において、元結合部３７０が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、第二チャレンジＣ＾が完成したので、元結合部３７０は、第二チャレンジ生成工程Ｓ７１２を終了する。整数ｉがＴ以下である場合、元結合部３７０は、積算出工程Ｓ７５４へ処理を進める。
積算出工程Ｓ７５４において、積算出部３８３が、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣのｉ番目の成分ｃｉと、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉとに基づいて、暗号化積ベクトル¢のｉ番目の成分¢ｉ＝ｅ（ｃｉ，ｃ’ｉ）を算出する。
元累計工程Ｓ７４８ａにおいて、元結合部３７０は、処理装置９１１を用いて、有限群ＧＴの乗法により、積算出工程Ｓ７５４で積算出部３８３が算出した暗号化積ベクトル¢のｉ番目の成分¢ｉを、第二チャレンジＣ＾に結合する。
元結合部３７０は、繰り返し工程Ｓ７４１に処理を戻す。
【０１９４】
このようにして暗号化ランダム類似度算出部３１４が算出した第二チャレンジＣ＾は、第二チャレンジ送信部３２１が復号装置１０３に対して送信し、復号装置１０３が受信して処理する。
【０１９５】
復号装置１０３の復号部４０４は、実施の形態４と同じ構成であるが、第二チャレンジＣ＾の意味が異なるため、復号部４０４が生成する第二レスポンスＺの意味も、実施の形態１とは異なる。
すなわち、第二レスポンスＺは、有限群ＧＴにおける累乗により、有限群ＧＴの元πを（Σｉ［ｂｉｂ’ｉ］＋ｓ１）（ｉは、１以上Ｔ以下の整数。）で累乗した元になる。すなわち、第二レスポンスＺは、特徴ベクトルｂと特徴ベクトルｂ’との内積Σｉ［ｂｉｂ’ｉ］を、一時鍵としての乱数ｓ１で暗号化したものになる。
【０１９６】
認証装置１０２の平文類似度抽出部３１５も、実施の形態４と同じ構成である。
元結合部３７０が算出する復号類似度元Ｚ’は、有限群ＧＴにおける累乗により元πを特徴ベクトルｂと特徴ベクトルｂ’との内積Σｉ［ｂｉｂ’ｉ］で累乗した元である。したがって、平文類似度抽出部３１５は、類似度ｄとして、特徴ベクトルｂと特徴ベクトルｂ’との内積Σｉ［ｂｉｂ’ｉ］を算出する。
【０１９７】
判定部３０６は、離散対数算出部３７３が算出した類似度ｄが、所定の閾値ｄ０より大きい場合に、２つの特徴ベクトルｂ，ｂ’が似ていると判定する。
これにより、特徴点の一致数を指標として、２つの特徴ベクトルｂ，ｂ’が類似しているか否かを判定することができる。
【０１９８】
図４８は、この実施の形態の生体認証システム１００における類似度算出の計算手順を示すフローチャート図である。
第一段階として、第二チャレンジ生成工程Ｓ７１２において、認証装置１０２が、２つの暗号化特徴ベクトルＣ，Ｃ’から第二チャレンジＣ＾を算出することにより、δ＝Σｉ［ｂｉｂ’ｉ］＋ｓ１（ｉは、１以上Ｔ以下の整数。）を算出する。この計算は、復号装置１０３の鍵により暗号化されたままの状態で行われるので、認証装置１０２は、特徴ベクトルｂ，ｂ’についての情報を得ることができない。
第二段階として、第二レスポンス生成工程Ｓ７１６において、復号装置１０３が、第二チャレンジＣ＾から第二レスポンスＺを算出することにより、ζを算出する。復号装置１０３は、単に復号処理をするだけなので、ζは、δと等しい。復号装置１０３は、一時鍵ｓ１を知らないので、特徴ベクトルｂ，ｂ’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵ｓ１で暗号化された状態で行われる。
第三段階として、平文類似度算出工程Ｓ７１９において、認証装置１０２が、第二レスポンスＺから、類似度ｄ＝ζ−ｓ１を算出する。これにより、認証装置１０２は、類似度ｄを得ることができるが、特徴ベクトルｂ，ｂ’についての情報を得ることはできない。
【０１９９】
なお、暗号方式は、ＢＧＮ暗号方式に限らず、Ｇｅｎｔｒｙ暗号方式など環準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置１０１と認証装置１０２との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
【０２００】
また、生体認証システム１００は、実施の形態２と同様に、証明装置１０１が、復号装置１０３や登録装置１０４としての機能を兼ね備える構成であってもよい。
【０２０１】
なお、実施の形態４と比較すると、証明装置１０１、復号装置１０３、登録装置１０４の構成は、変わらず、認証装置１０２の構成だけが異なる。したがって、認証装置１０２を、実施の形態４で説明した構成と、この実施の形態で説明した構成とを切り替えることができる構成とすることにより、生体認証システム１００の他の装置に変更を加えることなく、ユークリッド距離と内積との２種類の類似度を算出することができる。
【０２０２】
実施の形態６．
実施の形態６について、図４９〜図６１を用いて説明する。
なお、実施の形態１〜実施の形態５と共通する部分については、同一の符号を付し、説明を省略する。
【０２０３】
この実施の形態では、暗号方式として、Ｐａｉｌｌｉｅｒ暗号方式を使う場合について説明する。なお、類似度ｄは、実施の形態１と同様、ユークリッド距離の二乗を使う。
【０２０４】
まず、Ｐａｉｌｌｉｅｒ暗号方式の概要について説明する。
【０２０５】
Ｎは、互いに異なる２つの素数ｐ，ｑの積である。λは、ｐ−１とｑ−１との公倍数である。ｒをＮと互いに素な整数とすると、ｒλＮ≡１（ｍｏｄ  Ｎ２）である。また、ｘ，ｙを整数とすると、（１＋ｘＮ）ｙ≡１＋ｘｙＮ（ｍｏｄ  Ｎ２）である。したがって、［ｒＮ（１＋ｘＮ）］λ≡１＋ｘλＮ（ｍｏｄ  Ｎ２）である。
【０２０６】
例えば、Ｎを公開鍵ｐｋとし、ｐ−１とｑ−１との最小公倍数λを秘密鍵ｓｋとする。０以上Ｎ未満の整数ｘを平文とし、ｒＮ（１＋ｘＮ）を平文ｘを暗号化した暗号文Ｅ（ｘ）とする。ただし、ｒは、０以上Ｎ未満の整数のなかから一様ランダムに選択した整数である。素数ｐ，ｑが十分大きければｒがＮと互いに素でない確率は、非常に小さく、無視できる。
復号には、秘密鍵ｓｋであるλを使う。Ｅ（ｘ）λ≡１＋ｘλＮ（ｍｏｄ  Ｎ２）であることを利用すると、乱数ｒを消去できる。Ｅ（ｘ）λ−１は、Ｎの倍数になるから、［Ｅ（ｘ）λ−１］／Ｎは、整数である。Ｎを法とする整数の乗法におけるλの逆元をλ−１とすると、［Ｅ（ｘ）λ−１］／Ｎと、λ−１との積をＮで割った余りを求めると、平文ｘが復号できる。
【０２０７】
整数ｘ１の暗号文Ｅ（ｘ１）と、整数ｘ２の暗号文Ｅ（ｘ２）との積を、Ｎ２で割った余りは、ｒ１Ｎ（１＋ｘ１Ｎ）ｒ２Ｎ（１＋ｘ２Ｎ）≡（ｒ１ｒ２）Ｎ［１＋（ｘ１＋ｘ２）Ｎ］（ｍｏｄ  Ｎ２）だから、整数ｘ１と整数ｘ２との和ｘ１＋ｘ２の暗号文Ｅ（ｘ１＋ｘ２）になっている。
【０２０８】
図４９は、この実施の形態における鍵生成部４０１の構成の一例を示す詳細ブロック図である。
復号装置１０３の鍵生成部４０１は、例えば、素数決定部４４１と、積算出部４４２と、公倍数算出部４４３とを有する。
素数決定部４４１は、処理装置９１１を用いて、セキュリティレベルに応じて定まる大きさ（例えば５１２ビットや１０２４ビットなど）に基づいて、互いに異なる２つの素数ｐ，ｑを生成する。
積算出部４４２は、処理装置９１１を用いて、素数決定部４４１が生成した２つの素数ｐ，ｑに基づいて、整数Ｎを算出する。整数Ｎは、２つの素数ｐ，ｑの積である。
公倍数算出部４４３は、処理装置９１１を用いて、素数決定部４４１が生成した２つの素数ｐ，ｑに基づいて、ｐ−１とｑ−１との最小公倍数λ＝ＬＣＭ（ｐ−１，ｑ−１）を算出する。
【０２０９】
公開鍵記憶部４０３は、記憶装置９１４を用いて、公開鍵ｐｋとして、積Ｎを記憶する。
秘密鍵記憶部４１３は、記憶装置９１４を用いて、秘密鍵ｓｋとして、最小公倍数λを記憶する。
【０２１０】
なお、復号には、Ｎを法とする整数の乗法におけるλの逆数λ−１が必要なので、例えば、公倍数算出部４４３が、逆数λ−１を算出し、秘密鍵記憶部４１３が秘密鍵ｓｋの一部として記憶しておく構成であってもよい。
【０２１１】
図５０は、この実施の形態における鍵生成工程Ｓ５０１の処理の流れの一例を示すフローチャート図である。
鍵生成工程Ｓ５０１では、復号装置１０３が、公開鍵ｐｋと秘密鍵ｓｋとの組を生成する。なお、ユーザごとに異なる公開鍵ｐｋと秘密鍵ｓｋとの組を生成する構成であってもよいし、システム全体として１つの公開鍵ｐｋと秘密鍵ｓｋとの組を生成する構成であってもよい。
鍵生成工程Ｓ５０１は、例えば、素数決定工程Ｓ５３１と、積算出工程Ｓ５３２と、公倍数算出工程Ｓ５３３とを有する。
【０２１２】
最初に、素数決定工程Ｓ５３１において、素数決定部４４１が、処理装置９１１を用いて、２つの素数ｐ，ｑを決定する。
積算出工程Ｓ５３２において、積算出部４４２が、処理装置９１１を用いて、素数決定工程Ｓ５３１で素数決定部４４１が決定した２つの素数ｐ，ｑに基づいて、整数Ｎ＝ｐｑを算出する。公開鍵記憶部４０３は、記憶装置９１４を用いて、公開鍵ｐｋとして、積算出部４４２が算出した整数Ｎを記憶する。
公倍数算出工程Ｓ５３３において、公倍数算出部４４３が、処理装置９１１を用いて、素数決定工程Ｓ５３１で素数決定部４４１が決定した２つの素数ｐ，ｑに基づいて、最小公倍数λ＝ＬＣＭ（ｐ−１，ｑ−１）を算出する。秘密鍵記憶部４１３は、記憶装置９１４を用いて、秘密鍵ｓｋとして、公倍数算出部４４３が算出した最小公倍数λを記憶する。
【０２１３】
このようにして公開鍵記憶部４０３が記憶した公開鍵ｐｋ＝（Ｎ）は、公開鍵送信部４０８が認証装置１０２などに対して送信し、認証装置１０２などが受信して格納する。
【０２１４】
図５１は、この実施の形態における特徴ベクトル暗号化工程Ｓ６０３の処理の流れの一例を示すフローチャート図である。
特徴ベクトル暗号化工程Ｓ６０３では、登録装置１０４が、特徴ベクトルｂを暗号化して暗号化特徴ベクトルＣを生成する。特徴ベクトル暗号化工程Ｓ６０３は、例えば、初期化工程Ｓ６１０と、繰り返し工程Ｓ６１１と、乱数生成工程Ｓ６１２と、整数算出工程Ｓ６１３ｂとを有する。
登録装置１０４の特徴ベクトル形成部２０４が生成する特徴ベクトルｂは、例えば、０以上Ｎ未満の整数を成分とするＴ次元のベクトル（ｂ１，ｂ２，…，ｂＴ）（Ｔは、１以上の整数。）である。暗号化データ生成部２０６が生成する暗号化特徴ベクトルＣは、０以上Ｎ２未満の整数を成分とするＴ次元のベクトル（ｃ１，ｃ２，…，ｃＴ）である。
【０２１５】
最初に、初期化工程Ｓ６１０において、暗号化データ生成部２０６が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ６１１において、暗号化データ生成部２０６が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、暗号化データ生成部２０６は、特徴ベクトル暗号化工程Ｓ６０３を終了する。整数ｉがＴ以下である場合、暗号化データ生成部２０６は、乱数生成工程Ｓ６１２へ処理を進め、暗号化特徴ベクトルＣのｉ番目の成分ｃｉを生成する。
乱数生成工程Ｓ６１２において、乱数生成部２０５が、処理装置９１１を用いて、公開鍵記憶部２０２が記憶した公開鍵ｐｋである整数Ｎに基づいて、乱数ｒｉを生成する。乱数生成部２０５が生成する乱数ｒｉは、０以上Ｎ未満の整数のなかから、一様ランダムに選択した整数である。
整数算出工程Ｓ６１３ｂにおいて、暗号化データ生成部２０６が、処理装置９１１を用いて、公開鍵記憶部２０２が記憶した公開鍵ｐｋである整数Ｎと、特徴ベクトル形成部２０４が生成した特徴ベクトルｂのｉ番目の成分ｂｉと、乱数生成工程Ｓ６１２で特徴ベクトル形成部２０４が生成した乱数ｒｉとに基づいて、暗号化特徴ベクトルＣのｉ番目の成分ｃｉを算出する。暗号化データ生成部２０６が算出する暗号化特徴ベクトルＣのｉ番目の成分ｃｉは、特徴ベクトルｂのｉ番目の成分ｂｉと整数Ｎとの積ｂｉＮに１を加えた和（１＋ｂｉＮ）と、乱数ｒｉを整数Ｎで累乗した整数ｒｉＮとの積ｒｉＮ（１＋ｂｉＮ）を、整数Ｎの２乗で割った余りである。
暗号化データ生成部２０６は、繰り返し工程Ｓ６１１に処理を戻し、暗号化特徴ベクトルＣの次の成分を生成する。
【０２１６】
このようにして暗号化データ生成部２０６が生成した暗号化特徴ベクトルＣは、暗号化データ送信部２０１が認証装置１０２に対して送信し、認証装置１０２が受信して格納する。
【０２１７】
図５２は、この実施の形態における第一チャレンジ生成工程Ｓ７０１の処理の流れの一例を示すフローチャート図である。
第一チャレンジ生成工程Ｓ７０１では、認証装置１０２が、第一チャレンジＲを生成する。第一チャレンジ生成工程Ｓ７０１は、例えば、初期化工程Ｓ７２９と、繰り返し工程Ｓ７２１と、乱数生成工程Ｓ７２２と、整数算出工程Ｓ７２３ｂとを有する。
認証装置１０２の暗号化乱数生成部３０４が生成する第一チャレンジＲは、０以上Ｎ２未満の整数を成分とするＴ次元のベクトル（Ｒ１，Ｒ２，…，ＲＴ）である。
【０２１８】
最初に、初期化工程Ｓ７２９において、暗号化乱数生成部３０４が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ７２１において、暗号化乱数生成部３０４が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、暗号化乱数生成部３０４は、第一チャレンジ生成工程Ｓ７０１を終了する。整数ｉがＴ以下である場合、暗号化乱数生成部３０４は、乱数生成工程Ｓ７２２へ処理を進め、第一チャレンジＲのｉ番目の成分Ｒｉを生成する。
乱数生成工程Ｓ７２２において、乱数生成部３０３が、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋである整数Ｎに基づいて、２個の乱数Ｒ１，ｉ，Ｒ２，ｉを生成する。乱数生成部３０３が生成する乱数Ｒ１，ｉ，Ｒ２，ｉは、０以上Ｎ未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部３２２が、記憶装置９１４を用いて、乱数生成部３０３が生成した乱数Ｒ１，ｉを記憶する。
元算出工程Ｓ７２３ａにおいて、暗号化乱数生成部３０４が、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋである整数Ｎと、乱数生成工程Ｓ７２２で乱数生成部３０３が生成した２個の乱数Ｒ１，ｉ，Ｒ２，ｉとに基づいて、第一チャレンジＲのｉ番目の成分Ｒｉを算出する。暗号化乱数生成部３０４が算出する第一チャレンジＲのｉ番目の成分Ｒｉは、乱数Ｒ１，ｉと整数Ｎとの積Ｒ１，ｉＮに１を加えた和（１＋Ｒ１，ｉＮ）と、乱数Ｒ２，ｉを整数Ｎで累乗した整数Ｒ２，ｉＮとの積を、整数Ｎの２乗で割った余りである。
暗号化乱数生成部３０４は、繰り返し工程Ｓ７２１に処理を戻し、第一チャレンジＲの次の成分を生成する。
【０２１９】
このようにして暗号化乱数生成部３０４が生成した第一チャレンジＲは、第一チャレンジ送信部３１１が証明装置１０１に対して送信し、証明装置１０１が受信して処理をする。
【０２２０】
第一チャレンジ生成工程Ｓ７０１において乱数生成部３０３が生成する乱数Ｒ１，ｉ，Ｒ２，ｉ（ｉは、１以上Ｔ以下の整数。）は、全部で２Ｔ個である。このうち、Ｔ個の乱数Ｒ１，ｉ（ｉは、１以上Ｔ以下の整数。）を、乱数記憶部３２２が記憶する。乱数記憶部３２２が記憶するＴ個の乱数Ｒ１，ｉは、平文としての乱数であり、残りのＴ個の乱数Ｒ２，ｉ（ｉは、１以上Ｔ以下の整数。）は、暗号化のための乱数である。第一チャレンジＲの各成分Ｒｉは、平文としての乱数Ｒ１，ｉを暗号化したものである。
【０２２１】
図５３は、この実施の形態における暗号化データ埋め込み部２１７の構成の一例を示す詳細ブロック図である。
証明装置１０１の暗号化データ埋め込み部２１７は、例えば、累乗算出部２３４と、零生成部２３２と、整数結合部２３６とを有する。
【０２２２】
証明装置１０１の特徴ベクトル形成部２１４が生成する特徴ベクトルｂ’は、登録装置１０４の特徴ベクトル形成部２０４が生成する特徴ベクトルｂと同様、０以上Ｎ未満の整数を成分とするＴ次元のベクトル（ｂ’１，ｂ’２，…，ｂ’Ｔ）である。
乱数生成部２１５は、処理装置９１１を用いて、公開鍵記憶部２１２が記憶した公開鍵ｐｋである整数Ｎに基づいて、Ｔ個の乱数ｒ’ｉ（ｉは、１以上Ｔ以下の整数。）を生成する。乱数生成部２１５が生成する乱数ｒ’ｉは、０以上Ｎ未満の整数のなかから、一様ランダムに選択した整数である。
【０２２３】
累乗算出部２３４は、処理装置９１１を用いて、第一チャレンジ受信部２１１が受信した第一チャレンジＲと、特徴ベクトル形成部２１４が生成した特徴ベクトルｂ’とに基づいて、累乗ベクトルЯを算出する。累乗算出部２３４が算出する累乗ベクトルЯは、第一チャレンジＲと同様に、０以上Ｎ２未満の整数を成分とするＴ次元のベクトル（я１，я２，…，яＴ）である。累乗算出部２３４が算出する累乗ベクトルЯのｉ番目の成分яｉ（ｉは、１以上Ｔ以下の整数。）は、第一チャレンジＲのｉ番目の成分Ｒｉを、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉで累乗した整数Ｒｉｂ’ｉを、整数Ｎの２乗で割った余りである。累乗算出部２３４が算出する累乗ベクトルЯの各成分яｉは、特徴ベクトルｂ’の成分ｂ’ｉと、認証装置１０２が生成した平文としての乱数Ｒ１，ｉとの積を暗号化したものになる。
零生成部２３２は、処理装置９１１を用いて、公開鍵記憶部２１２が記憶した公開鍵ｐｋである整数Ｎと、乱数生成部２１５が生成したＴ個の乱数ｒ’ｉとに基づいて、暗号化零ベクトルＯを生成する。暗号化零ベクトルＯは、０以上Ｎ２未満の整数を成分とするＴ次元のベクトル（ｏ１，ｏ２，…，ｏＴ）である。暗号化零ベクトルＯのｉ番目の成分ｏｉ（ｉは、１以上Ｔ以下の整数。）は、ｉ番目の乱数ｒ’ｉを整数Ｎで累乗した整数ｒ’ｉＮを、整数Ｎの２乗で割った余りである。暗号化零ベクトルＯの各成分ｏｉは、０を暗号化したものである。
整数結合部２３６は、処理装置９１１を用いて、累乗算出部２３４が算出した累乗ベクトルЯと、零生成部２３２が生成した暗号化零ベクトルＯとに基づいて、第一レスポンスＲ’を算出する。第一レスポンスＲ’は、０以上Ｎ２未満の整数を成分とするＴ次元のベクトル（Ｒ’１，Ｒ’２，…，Ｒ’Ｔ）である。第一レスポンスＲ’のｉ番目の成分Ｒ’ｉ（ｉは、１以上Ｔ以下の整数。）は、累乗ベクトルЯのｉ番目の成分яｉと、暗号化零ベクトルＯのｉ番目の成分ｏｉとの積を、整数Ｎの２乗で割った余りである。第一レスポンスＲ’の各成分Ｒ’ｉは、第一チャレンジＲの成分Ｒｉにおいて暗号化されている平文としての乱数Ｒ１，ｉと、特徴ベクトルｂ’の成分ｂ’ｉとの積を暗号化したものになる。
【０２２４】
図５４は、この実施の形態における第一レスポンス生成工程Ｓ７０７の処理の流れの一例を示すフローチャート図である。
第一レスポンス生成工程Ｓ７０７では、証明装置１０１が、特徴ベクトルｂ’と、第一チャレンジＲとに基づいて、第一レスポンスＲ’を生成する。第一レスポンス生成工程Ｓ７０７は、例えば、初期化工程Ｓ６６０と、繰り返し工程Ｓ６６１と、累乗算出工程Ｓ６６２ａと、乱数生成工程Ｓ６６３と、零生成工程Ｓ６６４と、整数結合工程Ｓ６６５ｂとを有する。
【０２２５】
最初に、初期化工程Ｓ６６０において、整数結合部２３６が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ６６１において、整数結合部２３６が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、整数結合部２３６は、第一レスポンス生成工程Ｓ７０７を終了する。整数ｉがＴ以下である場合、整数結合部２３６は、累乗算出工程Ｓ６６２ａへ処理を進め、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉを生成する。
累乗算出工程Ｓ６６２ａにおいて、累乗算出部２３４が、処理装置９１１を用いて、特徴ベクトル形成部２１４が生成した特徴ベクトルｂ’のｉ番目の成分ｂ’ｉと、第一チャレンジ受信部２１１が受信した第一チャレンジＲのｉ番目のベクトルＲｉとに基づいて、累乗ベクトルЯのｉ番目の成分яｉ＝Ｒｉｂ’ｉ  ｍｏｄ  Ｎ２を算出する。
乱数生成工程Ｓ６６３において、乱数生成部２１５が、処理装置９１１を用いて、乱数ｒ’ｉを生成する。
零生成工程Ｓ６６４において、零生成部２３２が、処理装置９１１を用いて、乱数生成工程Ｓ６６３で乱数生成部２１５が生成した乱数ｒ’ｉに基づいて、暗号化零ベクトルＯのｉ番目の成分ｏｉ＝ｒ’ｉＮ  ｍｏｄ  Ｎ２を算出する。
整数結合工程Ｓ６６５ｂにおいて、整数結合部２３６が、処理装置９１１を用いて、累乗算出工程Ｓ６６２ａで累乗算出部２３４が算出した累乗ベクトルЯのｉ番目の成分яｉと、零生成工程Ｓ６６４で零生成部２３２が算出した暗号化零ベクトルＯのｉ番目の成分ｏｉとに基づいて、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉを算出する。
整数結合部２３６は、繰り返し工程Ｓ６６１に処理を戻し、第一レスポンスＲ’の次の成分を生成する。
【０２２６】
このようにして暗号化データ埋め込み部２１７が生成した第一レスポンスＲ’は、第一レスポンス送信部２２１が認証装置１０２に対して送信し、認証装置１０２が受信して処理する。
【０２２７】
なお、特徴ベクトルｂ’の成分ｂ’ｉが０か１かの２つの値しか取らない場合、第一レスポンス生成工程Ｓ７０７の処理は、例えば次のように簡略化できる。
まず、累乗の必要がないので、累乗算出部２３４を設けず、累乗算出工程Ｓ６６２ａを実行しない。
整数結合工程Ｓ６６５ｂにおいて、整数結合部２３６は、処理装置９１１を用いて、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉが０であるか１であるかを判定する。特徴ベクトルｂ’のｉ番目の成分ｂ’ｉが０である場合、整数結合部２３６は、処理装置９１１を用いて、零生成工程Ｓ６６４で零生成部２３２が算出した暗号化零ベクトルＯのｉ番目の成分ｏｉ＝ｒ’ｉＮ  ｍｏｄ  Ｎ２を、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉとする。特徴ベクトルｂ’のｉ番目の成分ｂ’ｉが１である場合、元結合部２３５は、処理装置９１１を用いて、有限群Ｇにおける乗法により、零生成工程Ｓ６６４で零生成部２３２が算出した暗号化零ベクトルＯのｉ番目の成分ｏｉと、第一チャレンジ受信部２１１が受信した第一チャレンジＲのｉ番目の成分Ｒｉとの積を、整数Ｎの２乗で割った余りを算出して、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉとする。
【０２２８】
第一チャレンジＲのｉ番目の成分Ｒｉは、乱数Ｒ１，ｉと整数Ｎとの積に１を加えた整数（１＋Ｒ１，ｉＮ）と、乱数Ｒ２，ｉをＮ乗した整数との積を、Ｎ２で割った余りであるから、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉは、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉと乱数Ｒ１，ｉと整数Ｎとの積に１を加えた整数（１＋ｂ’ｉＲ１，ｉＮ）と、乱数Ｒ２，ｉのｂ’ｉ乗と乱数ｒ’ｉとの積をＮ乗した整数との積を、Ｎ２で割った余りである。すなわち、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉは、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉと、乱数Ｒ１，ｉとの積を暗号化したものになっている。
【０２２９】
暗号化データ抽出部３０５の構成は、実施の形態４で説明した構成と同様なので、図３７を参照して説明する。
【０２３０】
認証装置１０２の暗号化データ抽出部３０５は、例えば、逆数算出部３５１と、累乗算出部３５３とを有する。
【０２３１】
認証装置１０２の暗号化データ抽出部３０５が生成する暗号化特徴ベクトルＣ’は、登録装置１０４の暗号化データ生成部２０６が生成する暗号化特徴ベクトルＣと同様、０以上Ｎ２未満の整数を成分とするＴ次元のベクトル（ｃ’１，ｃ’２，…，ｃ’Ｔ）である。
【０２３２】
逆数算出部３５１は、処理装置９１１を用いて、乱数記憶部３２２が記憶したＴ個の乱数Ｒ１，ｉ（ｉは、１以上Ｔ以下の整数。）に基づいて、Ｎを法とする整数の乗法における乱数Ｒ１，ｉそれぞれの逆数κｉ＝Ｒ１，ｉ−１を算出する。逆数κｉは、乱数Ｒ１，ｉと逆数κｉとの積をＮで割った余りが１になる整数である。なお、Ｎが素数ではないので、必ずしも乱数Ｒ１，ｉに逆数κｉが存在するとは限らない。しかし、Ｎの素因数である２つの素数ｐ，ｑが十分大きければ、乱数Ｒ１，ｉが零因子である確率は、非常に小さく、無視できる。
累乗算出部３５３は、処理装置９１１を用いて、第一レスポンス受信部３３１が受信した第一レスポンスＲ’と、逆数算出部３５１が算出したＴ個の逆数κｉとに基づいて、暗号化特徴ベクトルＣ’を算出する。累乗算出部３５３が算出する暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉ（ｉは、１以上Ｔ以下の整数。）は、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉを、ｉ番目の逆数κｉで累乗した整数を、整数Ｎの２乗で割った余りである。暗号化特徴ベクトルＣ’の各成分ｃ’ｉは、特徴ベクトルｂ’の成分ｂ’ｉを暗号化したものになる。
【０２３３】
図５５は、この実施の形態における暗号化生体情報抽出工程Ｓ７１０の処理の流れの一例を示すフローチャート図である。
暗号化生体情報抽出工程Ｓ７１０では、認証装置１０２が、第一レスポンスＲ’に基づいて、暗号化特徴ベクトルＣ’を生成する。暗号化生体情報抽出工程Ｓ７１０は、例えば、初期化工程Ｓ７３０と、繰り返し工程Ｓ７３１と、逆数算出工程Ｓ７３２と、累乗算出工程Ｓ７３３ａとを有する。
【０２３４】
最初に、初期化工程Ｓ７３０において、累乗算出部３５３が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ７３１において、累乗算出部３５３が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、累乗算出部３５３は、暗号化生体情報抽出工程Ｓ７１０を終了する。整数ｉがＴ以下である場合、累乗算出部３５３は、逆数算出工程Ｓ７３２へ処理を進め、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉを生成する。
逆数算出工程Ｓ７３２において、逆数算出部３５１が、処理装置９１１を用いて、第一チャレンジ生成工程Ｓ７０１で乱数記憶部３２２が記憶したＴ個の乱数のうちｉ番目の乱数Ｒ１，ｉに基づいて、逆数κｉ＝Ｒ１，ｉ−１を算出する。
累乗算出工程Ｓ７３３ａにおいて、累乗算出部３５３は、処理装置９１１を用いて、第一レスポンス受信部３３１が受信した第一レスポンスＲ’のｉ番目の成分Ｒ’ｉと、逆数算出工程Ｓ７３２で算出した逆数κｉとに基づいて、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉ＝Ｒ’ｉκｉを算出する。
累乗算出部３５３は、繰り返し工程Ｓ７３１に処理を戻し、暗号化特徴ベクトルＣ’の次の成分を生成する。
【０２３５】
このようにして暗号化データ抽出部３０５が生成した暗号化特徴ベクトルＣ’は、第二チャレンジ生成工程Ｓ７１２で使われる。
【０２３６】
第一レスポンスＲ’のｉ番目の成分Ｒ’ｉは、整数ｂ’ｉＲ１，ｉと整数Ｎとの積に１を加えた整数（１＋ｂ’ｉＲ１，ｉＮ）と、Ｒ２，ｉｂ’ｉｒ’ｉのＮ乗との積を、Ｎ２で割った余りであるから、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉは、整数κｉｂ’ｉＲ１，ｉと整数Ｎとの積に１を加えた整数（１＋κｉｂ’ｉＲ１，ｉＮ）と、（Ｒ２，ｉｂ’ｉｒ’ｉ）κｉのＮ乗との積である。Ｒ１，ｉκｉ≡１（ｍｏｄ  Ｎ）であるから、ｃ’ｉは、整数ｂ’ｉと整数Ｎとの積に１を加えた整数（１＋ｂ’ｉＮ）と、（Ｒ２，ｉｂ’ｉｒ’ｉ）κｉのＮ乗との積である。すなわち、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉは、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉを暗号化したものになる。
【０２３７】
図５６は、この実施の形態における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図である。
認証装置１０２の暗号化ランダム類似度算出部３１４が生成する第二チャレンジＣ＾は、０以上Ｎ２未満の（Ｔ＋１）個の整数ｃ＾１，ｃ＾２，…，ｃ＾Ｔ，ｃ＾からなる。暗号化ランダム類似度算出部３１４は、例えば、差分算出部３６１と、並べ替え部３８５と、暗号化鍵生成部３６６とを有する。
【０２３８】
乱数生成部３０３は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋである整数Ｎに基づいて、２個の乱数ｓ１，ｓ２を生成する。乱数生成部３０３が生成する乱数ｓ１，ｓ２は、０以上Ｎ未満の整数のなかから、一様ランダムに選択した整数である。
乱数記憶部３２２は、記憶装置９１４を用いて、乱数生成部３０３が生成した乱数のうち、１個の乱数ｓ１を記憶する。
【０２３９】
差分算出部３６１は、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣと、暗号化データ抽出部３０５が抽出した暗号化特徴ベクトルＣ’とに基づいて、暗号化差分ベクトルΔＣを算出する。暗号化差分ベクトルΔＣは、０以上Ｎ２未満の整数を成分とするＴ次元のベクトル（Δｃ１，Δｃ２，…，ΔｃＴ）である。暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉ（ｉは、１以上Ｔ以下の整数。）は、次の２つの整数のなかから、ランダムに選択したいずれかの整数である。Δｃｉの第一の候補となる整数は、Ｎ２を法とする整数の乗法における暗号化特徴ベクトルＣのｉ番目の成分ｃｉの逆数ｃｉ−１と、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉとの積を、Ｎ２で割った余りである。Δｃｉの第二の候補となる整数は、Ｎ２を法とする整数の乗法における暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉの逆数ｃ’ｉ−１と、暗号化特徴ベクトルＣのｉ番目の成分ｃｉとの積を、Ｎ２で割った余りである。すなわち、第一の候補と第二の候補とは、Ｎ２を法とする整数の乗法における逆数の関係にある。暗号化差分ベクトルΔＣの各成分Δｃｉは、特徴ベクトルｂの成分ｂｉと特徴ベクトルｂ’の成分ｂ’ｉとの差ｂｉ−ｂ’ｉの正負をランダムに変えたものを暗号化したものである。
並べ替え部３８５は、処理装置９１１を用いて、差分算出部３６１が算出した暗号化差分ベクトルΔＣに基づいて、第二チャレンジＣ＾の一部であるＴ個の整数ｃ＾ｉ（ｉは、１以上Ｔ以下の整数。）を生成する。整数ｃ＾ｉは、０以上Ｎ２未満の整数である。Ｔ個の整数ｃ＾ｉは、暗号化差分ベクトルΔＣのＴ個の成分Δｃｉの順序をランダムに並べ替えたものである。
暗号化鍵生成部３６６は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋである整数Ｎと、乱数生成部３０３が生成した２つの乱数ｓ１，ｓ２とに基づいて、第二チャレンジＣ＾の一部である１個の整数ｃ＾を生成する。整数ｃ＾は、０以上Ｎ２未満の整数である。整数ｃ＾は、乱数ｓ１と整数Ｎとの積に１を加えた整数（１＋ｓ１Ｎ）と、乱数ｓ２を整数Ｎで累乗した整数ｓ２Ｎとの積を、整数Ｎの２乗で割った余りである。整数ｃ＾は、乱数生成部３０３が算出した乱数ｓ１を暗号化したものである。
【０２４０】
図５７は、この実施の形態における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程Ｓ７１２では、認証装置１０２が、２つの暗号化特徴ベクトルＣ，Ｃ’に基づいて、第二チャレンジＣ＾を生成する。第二チャレンジ生成工程Ｓ７１２は、例えば、初期化工程Ｓ７４０と、繰り返し工程Ｓ７４１と、乱数生成工程Ｓ７５７と、２つの差分算出工程Ｓ７４２ａ，Ｓ７４２ｂと、乱数生成工程Ｓ７５８と、第二チャレンジ設定工程Ｓ７５９と、乱数生成工程Ｓ７４９と、暗号化鍵生成工程Ｓ７５２とを有する。
【０２４１】
最初に、初期化工程Ｓ７４０において、並べ替え部３８５が、処理装置９１１を用いて、整数ｉを０に初期化する。また、並べ替え部３８５は、処理装置９１１を用いて、集合Ｓを、１以上Ｔ以下のＴ個の整数を元とする集合に初期化する。
繰り返し工程Ｓ７４１において、並べ替え部３８５が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、並べ替え部３８５は、第二チャレンジ生成工程Ｓ７１２を終了する。整数ｉがＴ以下である場合、並べ替え部３８５は、乱数生成工程Ｓ７５７へ処理を進める。
乱数生成工程Ｓ７５７において、乱数生成部３０３が、処理装置９１１を用いて、乱数ｔｉを生成する。乱数ｔｉは、０または１から一様ランダムに選択した整数である。
乱数ｔｉが０である場合、差分算出部３６１は、差分算出工程Ｓ７４２ａへ処理を進める。
乱数ｔｉが１である場合、差分算出部３６１は、差分算出工程Ｓ７４２ｂへ処理を進める。
【０２４２】
差分算出工程Ｓ７４２ａにおいて、差分算出部３６１が、処理装置９１１を用いて、暗号化特徴ベクトルＣのｉ番目の成分ｃｉに基づいて、Ｎ２を法とする整数の乗法における整数ｃｉの逆数ｃｉ−１を算出する。差分算出部３６１は、処理装置９１１を用いて、算出した逆数ｃｉ−１と、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉとに基づいて、整数ｃ’ｉと逆数ｃｉ−１との積を、整数Ｎの２乗で割った余りを算出して、暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉとする。差分算出部３６１は、乱数生成工程Ｓ７５８へ処理を進める。
差分算出工程Ｓ７４２ｂにおいて、差分算出部３６１が、処理装置９１１を用いて、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉに基づいて、Ｎ２を法とする整数の乗法における整数ｃ’ｉの逆数ｃ’ｉ−１を算出する。差分算出部３６１は、処理装置９１１を用いて、算出した逆数ｃ’ｉ−１と、暗号化特徴ベクトルＣのｉ番目の成分ｃｉとに基づいて、整数ｃｉと逆数ｃ’ｉ−１との積を、整数Ｎの２乗で割った余りを算出して、暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉとする。差分算出部３６１は、乱数生成工程Ｓ７５８へ処理を進める。
乱数生成工程Ｓ７５８において、乱数生成部３０３が、処理装置９１１を用いて、乱数ｊｉを生成する。乱数ｊｉは、集合Ｓの元のなかから一様ランダムに選択した整数である。並べ替え部３８５は、処理装置９１１を用いて、集合Ｓの元から、乱数ｊｉを取り除く。
第二チャレンジ設定工程Ｓ７５９において、並べ替え部３８５は、処理装置９１１を用いて、暗号化差分ベクトルΔＣのｉ番目の成分Δｃｉを、第二チャレンジＣ＾のｊｉ番目の整数ｃ＾ｊｉにする。
並べ替え部３８５は、繰り返し工程Ｓ７４１に処理を戻す。
【０２４３】
乱数生成工程Ｓ７４９において、乱数生成部３０３が、処理装置９１１を用いて、２つの乱数ｓ１，ｓ２を生成する。
暗号化鍵生成工程Ｓ７５２において、暗号化鍵生成部３６６が、処理装置９１１を用いて、乱数生成工程Ｓ７４９で乱数生成部３０３が生成した乱数ｓ１，ｓ２に基づいて、第二チャレンジＣ＾の（Ｔ＋１）番目の整数ｃ＾＝ｓ２Ｎ（１＋ｓ１Ｎ）  ｍｏｄ  Ｎ２を算出する。
【０２４４】
このようにして暗号化ランダム類似度算出部３１４が算出した第二チャレンジＣ＾は、第二チャレンジ送信部３２１が復号装置１０３に対して送信し、復号装置１０３が受信して処理する。
【０２４５】
図５８は、この実施の形態における復号部４０４の構成の一例を示す詳細ブロック図である。
復号装置１０３の復号部４０４は、例えば、逆数算出部４８１と、復号整数算出部４８２と、二乗算出部４７３と、整数結合部４８５とを有する。
【０２４６】
逆数算出部４８１は、処理装置９１１を用いて、公開鍵記憶部４０３が記憶した公開鍵ｐｋである整数Ｎと、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである整数λとに基づいて、Ｎを法とする整数の乗法における整数λの逆数λ−１を算出する。
復号整数算出部４８２は、処理装置９１１を用いて、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである整数λと、第二チャレンジ受信部４０２が受信した第二チャレンジＣ＾と、逆数算出部４８１が算出した逆数λ−１とに基づいて、（Ｔ＋１）個の整数ｚｉ，ｚ’（ｉは、１以上Ｔ以下の整数。）を算出する。整数ｚｉ，ｚ’は、０以上Ｎ未満の整数である。ｉ番目の整数ｚｉ（ｉは、１以上Ｔ＋１以下の整数。）は、第二チャレンジＣ＾のｉ番目の整数ｃ＾ｉを復号した整数である。整数ｚ’は、第二チャレンジＣ＾の（Ｔ＋１）番目の整数ｃ＾を復号した整数である。したがって、整数ｚｉは、特徴ベクトルｂの成分と特徴ベクトルｂ’の対応する成分との差を表わす。また、整数ｚ’は、認証装置１０２の乱数生成部３０３が生成した乱数ｓ１と等しい。
第二チャレンジＣ＾の１番目からＴ番目までの整数ｃ＾ｉは、暗号化差分ベクトルΔＣの成分の順序をランダムに並べ替えたものであるから、復号装置１０３は、整数ｚｉが特徴ベクトルのどの成分の差であるかがを知ることができない。また、暗号化差分ベクトルΔＣの成分Δｃｉは、正負をランダムに変えてあるので、復号装置１０３は、２つの特徴ベクトルｂ，ｂ’のうち、その成分が大きいのがどちらかを知ることもできない。
二乗算出部４７３は、処理装置９１１を用いて、公開鍵記憶部４０３が記憶した公開鍵ｐｋである整数Ｎと、復号整数算出部４８２が算出したＴ個の整数ｚｉとに基づいて、二乗値ｚ’ｉ（ｉは、１以上Ｔ以下の整数。）を算出する。二乗値ｚ’ｉは、０以上Ｎ未満の整数である。ｉ番目の二乗値ｚ’ｉ（ｉは、１以上Ｔ以下の整数。）は、ｉ番目の整数ｚｉの２乗を、整数Ｎで割った余りである。
整数結合部４８５は、処理装置９１１を用いて、公開鍵記憶部４０３が記憶した公開鍵ｐｋである整数Ｎと、復号整数算出部４８２が算出した整数ｚ’と、二乗算出部４７３が算出したＴ個の整数ｚ’ｉとに基づいて、第二レスポンスＺを算出する。第二レスポンスＺは、０以上Ｎ未満の整数である。整数結合部４８５が算出する第二レスポンスＺは、Ｔ個の整数ｚ’ｉと、整数ｚ’とを合計した総和を、整数Ｎで割った余りである。第二レスポンスＺは、特徴ベクトルｂと特徴ベクトルｂ’との間のユークリッド距離の二乗Σｉ［（ｂｉ−ｂ’ｉ）２］と、乱数ｓ１との和に等しい。すなわち、第二レスポンスＺは、特徴ベクトルｂと特徴ベクトルｂ’との間のユークリッド距離の二乗を、一時鍵としての乱数ｕ１で暗号化したものである。
【０２４７】
図５９は、この実施の形態における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図である。
第二レスポンス生成工程Ｓ７１６では、復号装置１０３が、第二チャレンジＣ＾から、第二レスポンスＺを生成する。第二レスポンス生成工程Ｓ７１６は、例えば、逆数算出工程Ｓ５６１ａと、復号整数算出工程Ｓ５６６ａと、初期化工程Ｓ５６０と、繰り返し工程Ｓ５６２と、復号整数算出工程Ｓ５６３ａと、二乗算出工程Ｓ５６４と、整数結合工程Ｓ５６５ａとを有する。
【０２４８】
最初に、逆数算出工程Ｓ５６１ａにおいて、逆数算出部４８１が、処理装置９１１を用いて、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである整数λの逆数λ−１を算出する。なお、逆数算出部４８１は、処理装置９１１を用いて、あらかじめ（例えばセットアップ処理Ｓ５００で）逆数λ−１を算出し、記憶装置９１４を用いて、算出した逆数λ−１を記憶しておく構成であってもよい。
復号整数算出工程Ｓ５６６ａにおいて、復号整数算出部４８２が、処理装置９１１を用いて、逆数算出工程Ｓ５６１ａで逆数算出部４８１が算出した逆数λ−１などに基づいて、第二チャレンジ受信部４０２が受信した第二チャレンジＣ＾の最後の整数ｃ＾を復号して、整数ｚ’を算出する。例えば、復号整数算出部４８２は、整数ｃ＾を整数λで累乗した整数から１を差し引いた整数（ｃ＾λ−１）を整数Ｎの２乗で割った余りを、Ｎで割った商ｙを算出する。復号整数算出部４８２は、算出した商ｙと逆数λ−１との積ｙλ−１をＮで割った余りを算出して、整数ｚ’とする。
初期化工程Ｓ５６０において、整数結合部４８５が、処理装置９１１を用いて、整数ｉを０に初期化し、第二レスポンスＺを、復号整数算出工程Ｓ５６６ａで復号整数算出部４８２が算出した整数ｚ’に初期化する。
繰り返し工程Ｓ５６２において、整数結合部４８５が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、第二レスポンスＺが完成したので、整数結合部４８５は、第二レスポンス生成工程Ｓ７１６を終了する。整数ｉがＴ以下である場合、整数結合部４８５は、復号整数算出工程Ｓ５６３ａへ処理を進める。
復号整数算出工程Ｓ５６３ａにおいて、復号整数算出部４８２が、処理装置９１１を用いて、逆数算出工程Ｓ５６１ａで逆数算出部４８１が算出した逆数λ−１などに基づいて、第二チャレンジ受信部４０２が受信した第二チャレンジＣ＾のｉ番目の整数ｃ＾ｉを復号して、ｉ番目の整数ｚｉを算出する。例えば、復号整数算出部４８２は、整数ｃ＾ｉを整数λで累乗した整数から１を差し引いた整数（ｃ＾ｉλ−１）を整数Ｎの２乗で割った商ｙｉを算出する。復号整数算出部４８２は、算出した整数ｙｉと逆数λ−１との積ｙｉλ−１をＮで割った余りを算出して、整数ｚｉとする。
二乗算出工程Ｓ５６４において、二乗算出部４７３が、処理装置９１１を用いて、復号整数算出工程Ｓ５６３ａで復号整数算出部４８２が算出したｉ番目の整数ｚｉに基づいて、ｉ番目の二乗値ｚ’ｉを算出する。
整数結合工程Ｓ５６５ａにおいて、整数結合部４８５が、処理装置９１１を用いて、整数Ｎを法とする整数の加法により、二乗算出工程Ｓ５６４で二乗算出部４７３が算出したｉ番目の二乗値ｚ’ｉを、第二レスポンスＺに結合する。
整数結合部４８５は、繰り返し工程Ｓ５６２に処理を戻し、第二チャレンジＣ＾の次の整数を処理する。
【０２４９】
このようにして復号部４０４が生成した第二レスポンスＺは、第二レスポンス送信部４１２が認証装置１０２に対して送信し、認証装置１０２が受信して処理する。
【０２５０】
図６０は、この実施の形態における平文類似度算出工程Ｓ７１９の処理の流れの一例を示すフローチャート図である。
平文類似度算出工程Ｓ７１９では、認証装置１０２が、第二レスポンスＺから、類似度ｄを算出する。平文類似度算出工程Ｓ７１９は、例えば、整数結合工程Ｓ６９２ａを有する。
【０２５１】
整数結合工程Ｓ６９２ａにおいて、認証装置１０２の平文類似度抽出部３１５が、処理装置９１１を用いて、乱数記憶部３２２が記憶した乱数ｓ１と、第二レスポンス受信部３４１が受信した第二レスポンスＺとに基づいて、類似度ｄを算出する。類似度ｄは、０以上Ｎ未満の整数である。平文類似度抽出部３１５が算出する類似度ｄは、第二レスポンスＺから乱数ｓ１を差し引いた差を、Ｎで割った余りである。
【０２５２】
平文類似度抽出部３１５が算出した類似度ｄに基づいて、判定部３０６が、２つの特徴ベクトルｂ，ｂ’が似ているか否かを判定することにより、特徴ベクトルｂで表わされる生体情報を持つ人物と、特徴ベクトルｂ’で表わされる生体情報を持つ人物とが同一人物であるか否かを判定する。判定部３０６は、類似度ｄが閾値ｄ０より小さい場合に、２つの特徴ベクトルｂ，ｂ’が似ていると判定する。
【０２５３】
図６１は、この実施の形態の生体認証システム１００における類似度算出の計算手順を示すフローチャート図である。
第一段階として、第二チャレンジ生成工程Ｓ７１２において、認証装置１０２が、２つの暗号化特徴ベクトルＣ，Ｃ’から第二チャレンジＣ＾を算出することにより、Ｔ個のδｊ＝±（ｂｉ−ｂ’ｉ）（ｉ及びｊは、１以上Ｔ以下の整数。）と、１個のδ＊＝ｓ１とを算出する。この計算は、復号装置１０３の鍵により暗号化されたままの状態で行われるので、認証装置１０２は、特徴ベクトルｂ，ｂ’についての情報を得ることができない。また、復号装置１０３に特徴ベクトルｂ，ｂ’についての情報が渡らないよう、δｊは、正負をランダムに変え、更に、順序もランダムに並べ替える。
第二段階として、第二レスポンス生成工程Ｓ７１６において、復号装置１０３が、第二チャレンジＣ＾から第二レスポンスＺを算出することにより、ζ＝Σｉ［δｉ２］＋δ＊（ｉは、１以上Ｔ以下の整数。）を算出する。第一項Σｉ［δｉ２］は、類似度ｄであり、第二項δ＊は、暗号化を意味する。すなわち、復号装置１０３は、類似度ｄを算出して、δ＊＝ｓ１を使って、暗号化する。この計算は、復号装置１０３の秘密鍵によって復号された状態で行われるが、第一段階でのランダム化により、復号装置１０３は、特徴ベクトルｂ，ｂ’についての情報を得ることができない。
第三段階として、平文類似度算出工程Ｓ７１９において、認証装置１０２が、第二レスポンスＺから、類似度ｄ＝ζ−ｓ１を算出する。これにより、認証装置１０２は、類似度ｄを得ることができるが、特徴ベクトルｂ，ｂ’についての情報を得ることはできない。
【０２５４】
なお、暗号方式は、Ｐａｉｌｌｉｅｒ暗号方式に限らず、岡本−高島暗号方式、ＢＧＮ暗号方式、Ｇｅｎｔｒｙ暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置１０１と認証装置１０２との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
【０２５５】
また、生体認証システム１００は、実施の形態２と同様に、証明装置１０１が、復号装置１０３や登録装置１０４としての機能を兼ね備える構成であってもよい。
【０２５６】
実施の形態７．
実施の形態７について、図６２〜図６８を用いて説明する。
なお、実施の形態１〜実施の形態６と共通する部分については、同一の符号を付し、説明を省略する。
【０２５７】
この実施の形態では、第一チャレンジＲのなかに暗号化特徴ベクトルＣに由来する比較データｂについての情報を埋め込み、証明装置１０１に、類似度算出の最初の段階の計算をさせる構成について説明する。
なお、この実施の形態では、実施の形態６で説明したＰａｉｌｌｉｅｒ暗号方式を使い、実施の形態３と同様、類似度ｄとして、内積Σｉ［ｂｉｂ’ｉ］を算出する場合について説明する。
【０２５８】
図６２は、この実施の形態における暗号化乱数生成部３０４の構成の一例を示す詳細ブロック図である。
認証装置１０２の暗号化乱数生成部３０４は、例えば、累乗算出部３３４と、零生成部３３２と、整数結合部３３６とを有する。
【０２５９】
乱数生成部３０３は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋである整数Ｎに基づいて、２Ｔ個の乱数Ｒ１，ｉ，Ｒ２，ｉ（ｉは、１以上Ｔ以下の整数。）を生成する。乱数生成部３０３が生成する乱数Ｒ１，ｉ，Ｒ２，ｉは、０以上Ｎ未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部３２２は、記憶装置９１４を用いて、乱数生成部３０３が生成した乱数のうちＴ個の乱数Ｒ１，ｉ（ｉは、１以上Ｔ以下の整数。）を記憶する。
【０２６０】
累乗算出部３３４は、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣと、乱数生成部３０３が生成したＴ個の乱数Ｒ１，ｉとに基づいて、累乗ベクトルЯ’を算出する。累乗算出部３３４が算出する累乗ベクトルЯ’は、０以上Ｎ２未満の整数を成分とするＴ次元のベクトル（я’１，я’２，…，я’Ｔ）である。累乗算出部３３４が算出する累乗ベクトルЯ’のｉ番目の成分я’ｉ（ｉは、１以上Ｔ以下の整数。）は、暗号化特徴ベクトルＣのｉ番目の成分ｃｉを、ｉ番目の乱数Ｒ１，ｉで累乗した整数を、整数Ｎの２乗で割った余りである。累乗算出部３３４が算出する累乗ベクトルЯ’の各成分я’ｉは、特徴ベクトルｂの成分ｂｉと、平文としての乱数Ｒ１，ｉとの積を暗号化したものになる。
零生成部３３２は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋである整数Ｎと、乱数生成部３０３が生成したＴ個の乱数Ｒ２，ｉとに基づいて、暗号化零ベクトルＯ’を生成する。暗号化零ベクトルＯ’は、０以上Ｎ２未満の整数を成分とするＴ次元のベクトル（ｏ’１，ｏ’２，…，ｏ’Ｔ）である。暗号化零ベクトルＯ’のｉ番目の成分ｏ’ｉ（ｉは、１以上Ｔ以下の整数。）は、ｉ番目の乱数Ｒ２，ｉを整数Ｎで累乗した整数Ｒ２，ｉＮを、整数Ｎの２乗で割った余りである。暗号化零ベクトルＯ’の各成分ｏ’ｉは、０を暗号化したものである。
整数結合部３３６は、処理装置９１１を用いて、累乗算出部３３４が算出した累乗ベクトルЯ’と、零生成部３３２が生成した暗号化零ベクトルＯ’とに基づいて、第一チャレンジＲを算出する。第一チャレンジＲは、０以上Ｎ２未満の整数を成分とするＴ次元のベクトル（Ｒ１，Ｒ２，…，ＲＴ）である。第一チャレンジＲのｉ番目の成分Ｒｉ（ｉは、１以上Ｔ以下の整数。）は、累乗ベクトルЯ’のｉ番目の成分я’ｉと、暗号化零ベクトルＯ’のｉ番目の成分ｏ’ｉとの積を、整数Ｎの２乗で割った余りである。第一チャレンジＲの各成分Ｒｉは、特徴ベクトルｂの成分ｂｉと、平文としての乱数Ｒ１，ｉとの積を暗号化したものになる。
【０２６１】
図６３は、この実施の形態における第一チャレンジ生成工程Ｓ７０１の処理の流れの一例を示すフローチャート図である。
第一チャレンジ生成工程Ｓ７０１では、認証装置１０２が、暗号化特徴ベクトルＣに基づいて、第一チャレンジＲを生成する。第一チャレンジ生成工程Ｓ７０１は、例えば、初期化工程Ｓ７２９と、繰り返し工程Ｓ７２１と、乱数生成工程Ｓ７２２と、累乗算出工程Ｓ７２４と、零生成工程Ｓ７２５と、整数結合工程Ｓ７２６とを有する。
【０２６２】
最初に、初期化工程Ｓ７２９において、整数結合部３３６が、処理装置９１１を用いて、整数ｉを０に初期化する。
繰り返し工程Ｓ７２１において、整数結合部３３６が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、整数結合部３３６は、第一チャレンジ生成工程Ｓ７０１を終了する。整数ｉがＴ以下である場合、整数結合部３３６は、乱数生成工程Ｓ７２２へ処理を進め、第一チャレンジＲのｉ番目の成分Ｒｉを生成する。
乱数生成工程Ｓ７２２において、乱数生成部３０３が、処理装置９１１を用いて、２個の乱数Ｒ１，ｉ，Ｒ２，ｉを生成する。乱数記憶部３２２は、記憶装置９１４を用いて、乱数生成部３０３が生成した乱数Ｒ１，ｉを記憶する。
累乗算出工程Ｓ７２４において、累乗算出部３３４が、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣのｉ番目の成分ｃｉと、乱数生成工程Ｓ７２２で乱数生成部３０３が生成した乱数Ｒ１，ｉとに基づいて、累乗ベクトルЯ’のｉ番目の成分я’ｉを算出する。
零生成工程Ｓ７２５において、零生成部３３２が、処理装置９１１を用いて、乱数生成工程Ｓ７２２で乱数生成部３０３が生成した乱数Ｒ２，ｉに基づいて、暗号化零ベクトルＯ’のｉ番目の成分ｏ’ｉを算出する。
整数結合工程Ｓ７２６において、整数結合部３３６が、処理装置９１１を用いて、累乗算出工程Ｓ７２４ａで累乗算出部３３４が算出した累乗ベクトルЯ’のｉ番目の成分я’ｉと、零生成工程Ｓ７２５で零生成部３３２が算出した暗号化零ベクトルＯ’のｉ番目の成分ｏ’ｉとに基づいて、第一チャレンジＲのｉ番目の成分Ｒｉを算出する。
整数結合部３３６は、繰り返し工程Ｓ７２１に処理を戻し、第一チャレンジＲの次の成分を生成する。
【０２６３】
このようにして暗号化乱数生成部３０４が生成した第一チャレンジＲは、第一チャレンジ送信部３１１が証明装置１０１に対して送信し、証明装置１０１が受信して処理をする。
【０２６４】
証明装置１０１の暗号化データ埋め込み部２１７は、実施の形態６と同じ構成であるが、第一チャレンジＲの意味が異なるため、暗号化データ埋め込み部２１７が生成する第一レスポンスＲ’の意味も、実施の形態６とは異なる。
すなわち、第一レスポンスＲ’のｉ番目の成分Ｒ’ｉ（ｉは、１以上Ｔ以下の整数。）は、特徴ベクトルｂのｉ番目の成分ｂｉと、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉと、乱数Ｒ１，ｉとの積を暗号化したものである。
【０２６５】
認証装置１０２の暗号化データ抽出部３０５も、実施の形態６と同じ構成である。
暗号化データ抽出部３０５が生成する暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉ（ｉは、１以上Ｔ以下の整数。）は、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉの暗号化ではなく、２つの特徴ベクトルｂ，ｂ’のｉ番目の成分ｂｉ，ｂ’ｉの積ｂｉｂ’ｉを暗号化したものである。
【０２６６】
図６４は、この実施の形態における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図である。
認証装置１０２の暗号化ランダム類似度算出部３１４が生成する第二チャレンジＣ＾は、０以上Ｎ２未満の（Ｔ＋１）個の整数ｃ＾１，ｃ＾２，…，ｃ＾Ｔ，ｃ＾からなる。暗号化ランダム類似度算出部３１４は、例えば、並べ替え部３８５と、暗号化鍵生成部３６６とを有する。
【０２６７】
乱数生成部３０３は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋである整数Ｎに基づいて、２個の乱数ｓ１，ｓ２を生成する。乱数生成部３０３が生成する乱数ｓ１，ｓ２は、０以上Ｎ未満の整数のなかから、一様ランダムに選択した整数である。
乱数記憶部３２２は、記憶装置９１４を用いて、乱数生成部３０３が生成した乱数のうち、１個の乱数ｓ１を記憶する。
【０２６８】
並べ替え部３８５は、処理装置９１１を用いて、暗号化データ抽出部３０５が生成した暗号化特徴ベクトルＣ’に基づいて、第二チャレンジＣ＾の一部であるＴ個の整数ｃ＾ｉ（ｉは、１以上Ｔ以下の整数。）を生成する。整数ｃ＾ｉは、０以上Ｎ２未満の整数である。Ｔ個の整数ｃ＾ｉは、暗号化特徴ベクトルＣ’のＴ個の成分Δｃｉの順序をランダムに並べ替えたものである。
暗号化鍵生成部３６６は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋである整数Ｎと、乱数生成部３０３が生成した２つの乱数ｓ１，ｓ２とに基づいて、第二チャレンジＣ＾の一部である１個の整数ｃ＾を生成する。整数ｃ＾は、０以上Ｎ２未満の整数である。整数ｃ＾は、乱数ｓ１と整数Ｎとの積に１を加えた整数（１＋ｓ１Ｎ）と、乱数ｓ２を整数Ｎで累乗した整数ｓ２Ｎとの積を、整数Ｎの２乗で割った余りである。整数ｃ＾は、乱数生成部３０３が算出した乱数ｓ１を暗号化したものである。
【０２６９】
図６５は、この実施の形態における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程Ｓ７１２の処理の流れは、実施の形態６とほとんど同じであるが、２つだけ異なる点がある。
第一点は、乱数生成工程Ｓ７５７と、２つの差分算出工程Ｓ７４２ａ，Ｓ７４２ｂとがなく、繰り返し工程Ｓ７４１で整数ｉがＴ以下である場合に、乱数生成工程Ｓ７５８へ処理を進める点である。
第二点は、第二チャレンジ設定工程Ｓ７５９の処理である。第二チャレンジ設定工程Ｓ７５９において、並べ替え部３８５は、処理装置９１１を用いて、暗号化特徴ベクトルＣ’のｉ番目の成分Δｃｉを、第二チャレンジＣ＾のｊｉ番目の整数ｃ＾ｊｉにする。
【０２７０】
図６６は、この実施の形態における復号部４０４の構成の一例を示す詳細ブロック図である。
復号装置１０３の復号部４０４は、例えば、逆数算出部４８１と、復号整数算出部４８２と、整数結合部４８５とを有する。
【０２７１】
逆数算出部４８１は、処理装置９１１を用いて、公開鍵記憶部４０３が記憶した公開鍵ｐｋである整数Ｎと、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである整数λとに基づいて、Ｎを法とする整数の乗法における整数λの逆数λ−１を算出する。
復号整数算出部４８２は、処理装置９１１を用いて、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである整数λと、第二チャレンジ受信部４０２が受信した第二チャレンジＣ＾と、逆数算出部４８１が算出した逆数λ−１とに基づいて、（Ｔ＋１）個の整数ｚｉ，ｚ’（ｉは、１以上Ｔ以下の整数。）を算出する。整数ｚｉ，ｚ’は、０以上Ｎ未満の整数である。ｉ番目の整数ｚｉ（ｉは、１以上Ｔ＋１以下の整数。）は、第二チャレンジＣ＾のｉ番目の整数ｃ＾ｉを復号した整数である。整数ｚ’は、第二チャレンジＣ＾の（Ｔ＋１）番目の整数ｃ＾を復号した整数である。したがって、整数ｚｉは、特徴ベクトルｂの成分と特徴ベクトルｂ’の対応する成分との積を表わす。また、整数ｚ’は、認証装置１０２の乱数生成部３０３が生成した乱数ｓ１と等しい。
整数結合部４８５は、処理装置９１１を用いて、公開鍵記憶部４０３が記憶した公開鍵ｐｋである整数Ｎと、復号整数算出部４８２が算出した（Ｔ＋１）個の整数ｚｉ，ｚ’とに基づいて、第二レスポンスＺを算出する。第二レスポンスＺは、０以上Ｎ未満の整数である。整数結合部４８５が算出する第二レスポンスＺは、Ｔ個の整数ｚｉと、整数ｚ’とを合計した総和を、整数Ｎで割った余りである。第二レスポンスＺは、特徴ベクトルｂと特徴ベクトルｂ’との間の内積Σｉ［ｂｉｂ’ｉ］と、乱数ｓ１との和に等しい。すなわち、第二レスポンスＺは、特徴ベクトルｂと特徴ベクトルｂ’との間の内積を、一時鍵としての乱数ｓ１で暗号化したものである。
【０２７２】
図６７は、この実施の形態における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図である。
第二レスポンス生成工程Ｓ７１６の処理の流れは、実施の形態６とほとんど同じであるが、２つだけ異なる点がある。
第一点は、二乗算出工程Ｓ５６４がなく、復号整数算出工程Ｓ５６３ａの次に、整数結合工程Ｓ５６５ａへ処理を進める点である。
第二点は、整数結合工程Ｓ５６５ａの処理である。整数結合工程Ｓ５６５ａにおいて、整数結合部４８５は、処理装置９１１を用いて、整数Ｎを法とする加法により、復号整数算出工程Ｓ５６３ａで復号整数算出部４８２が算出したｉ番目の整数ｚｉを、第二レスポンスＺに結合する。
【０２７３】
このようにして復号部４０４が生成した第二レスポンスＺは、第二レスポンス送信部４１２が認証装置１０２に対して送信し、認証装置１０２が受信して処理する。
【０２７４】
認証装置１０２の平文類似度抽出部３１５は、実施の形態６と同じ構成である。
平文類似度抽出部３１５は、類似度ｄとして、２つの特徴ベクトルｂ，ｂ’の内積Σｉ［ｂｉｂ’ｉ］を算出する。
【０２７５】
判定部３０６は、離散対数算出部３７３が算出した類似度ｄが、所定の閾値ｄ０より大きい場合に、２つの特徴ベクトルｂ，ｂ’が似ていると判定する。
これにより、特徴点の一致数を指標として、２つの特徴ベクトルｂ，ｂ’が類似しているか否かを判定することができる。
【０２７６】
図６８は、この実施の形態の生体認証システム１００における類似度算出の計算手順を示すフローチャート図である。
なお、ρｉは、第一レスポンスＲ’において暗号化されている情報を示す。
第一段階は、第二チャレンジ生成工程Ｓ７１２ではなく、第一レスポンス生成工程Ｓ７０７である。第一レスポンス生成工程Ｓ７０７において、証明装置１０１が、第一チャレンジＲから第一レスポンスＲ’を算出することにより、Ｔ個のρｉ＝ｂｉｂ’ｉを算出する。この計算は、復号装置１０３の鍵により暗号化されたままの状態で行われるので、証明装置１０１は、特徴ベクトルｂについての情報を得ることができない。
第二段階として、第二チャレンジ生成工程Ｓ７１２において、認証装置１０２が、暗号化特徴ベクトルＣ’から第二チャレンジＣ＾を算出することにより、Ｔ個のδｊ（ｊは、１以上Ｔ以下の整数。）と、１個のδ＊＝ｓ１とを算出する。δｊは、復号装置１０３に特徴ベクトルｂ，ｂ’についての情報が渡らないよう、ρｉの順序を入れ換えたものなので、認証装置１０２は、特徴ベクトルｂ，ｂ’についての情報を得ることができない。
第三段階として、第二レスポンス生成工程Ｓ７１６において、復号装置１０３が、第二チャレンジＣ＾から第二レスポンスＺを算出することにより、ζ＝Σｉ［δｉ］＋δ＊（ｉは、１以上Ｔ以下の整数。）を算出する。第一項Σｉ［δｉ］は、類似度ｄであり、第二項δ＊は、暗号化を意味する。すなわち、復号装置１０３は、類似度ｄを算出して、δ＊＝ｓ１を使って、暗号化する。この計算は、復号装置１０３の秘密鍵によって復号された状態で行われるが、第二段階でのランダム化により、復号装置１０３は、特徴ベクトルｂ，ｂ’についての情報を得ることができない。
第四段階として、平文類似度算出工程Ｓ７１９において、認証装置１０２が、第二レスポンスＺから、類似度ｄ＝ζ−ｓ１を算出する。これにより、認証装置１０２は、類似度ｄを得ることができるが、特徴ベクトルｂ，ｂ’についての情報を得ることはできない。
【０２７７】
なお、暗号方式は、Ｐａｉｌｌｉｅｒ暗号方式に限らず、岡本−高島暗号方式、ＢＧＮ暗号方式、Ｇｅｎｔｒｙ暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置１０１と認証装置１０２との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
【０２７８】
また、生体認証システム１００は、実施の形態２と同様に、証明装置１０１が、復号装置１０３や登録装置１０４としての機能を兼ね備える構成であってもよい。
【０２７９】
なお、特徴ベクトルｂ，ｂ’の各成分の値が、０か１かのいずれかである場合、２つの特徴ベクトルｂ，ｂ’の成分の積ｂｉｂ’ｉは、０か１かのいずれかの値になるから、復号装置１０３の構成は、実施の形態６で説明した構成と同じであってもよい。そうすれば、証明装置１０１、復号装置１０３、登録装置１０４の構成は、実施の形態６と同じになり、認証装置１０２の構成だけが異なる。したがって、認証装置１０２を、実施の形態６で説明した構成と、この実施の形態で説明した構成とを切り替えることができる構成とすることにより、生体認証システム１００の他の装置に変更を加えることなく、ユークリッド距離と内積との２種類の類似度を算出することができる。
【０２８０】
実施の形態８．
実施の形態８について、図６９〜図７２を用いて説明する。
なお、実施の形態１〜実施の形態７と共通する部分については、同一の符号を付し、説明を省略する。
【０２８１】
この実施の形態では、実施の形態７で説明した構成の変形例について説明する。
【０２８２】
暗号化特徴ベクトルＣ’は、０以上Ｎ２未満の整数を成分とするＴ次元のベクトル（ｃ’１,ｃ’２，…，ｃ’Ｔ）である。暗号化特徴ベクトルＣ’のｉ番目の成分ｃｉ（ｉは、１以上Ｔ以下の整数。）は、特徴ベクトルｂのｉ番目の成分ｂｉと、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉとの積ｂｉｂ’ｉを暗号化したものである。
【０２８３】
図６９は、この実施の形態における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図である。
認証装置１０２の暗号化ランダム類似度算出部３１４は、例えば、撹乱ベクトル生成部３６２と、整数結合部３８６とを有する。
【０２８４】
乱数生成部３０３は、処理装置９１１を用いて、２Ｔ個の乱数ｔ１，ｉ，ｔ２，ｉ（ｉは、１以上Ｔ以下の整数。）を生成する。乱数ｔ１，ｉ，ｔ２，ｉは、０以上Ｎ未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部３２２は、記憶装置９１４を用いて、乱数生成部３０３が生成したＴ個の乱数ｔ１，ｉの合計値ｓ１＝Σｉ［ｔ１，ｉ］を記憶する。なお、乱数記憶部３２２は、乱数生成部３０３が生成したＴ個の乱数ｔ１，ｉをそのまま記憶する構成であってもよいが、あとで必要になるのは、合計値だけなので、合計値を記憶する構成のほうが、記憶量が少なくて済む。
【０２８５】
撹乱ベクトル生成部３６２は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋである整数Ｎと、乱数生成部３０３が生成した２Ｔ個の乱数ｔ１，ｉ，ｔ２，ｉとに基づいて、撹乱ベクトルтを算出する。撹乱ベクトルтは、０以上Ｎ２未満の整数を成分とするＴ次元ベクトル（ｔ１，ｔ２，…，ｔＴ）である。撹乱ベクトルтのｉ番目の成分ｔｉ（ｉは、１以上Ｔ以下の整数。）は、乱数ｔ１，ｉと整数Ｎとの積に１を加えた和（１＋ｔ１，ｉＮ）と、乱数ｔ２，ｉを整数Ｎで累乗した整数ｔ２，ｉＮとの積を、整数Ｎの２乗で割った余りである。撹乱ベクトルтの各成分ｔｉは、乱数ｔ１，ｉを暗号化したものである。
整数結合部３８６は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋである整数Ｎと、暗号化データ抽出部３０５が生成した暗号化特徴ベクトルＣ’と、撹乱ベクトル生成部３６２が算出した撹乱ベクトルтとに基づいて、第二チャレンジＣ＾を生成する。第二チャレンジＣ＾は、Ｔ個の整数ｃ＾１，ｃ＾２，…，ｃ＾Ｔからなる。Ｔ個の整数ｃ＾ｉは、０以上Ｎ２未満の整数である。第二チャレンジＣ＾のｉ番目の整数ｃ＾ｉ（ｉは、１以上Ｔ以下の整数。）は、暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉと、撹乱ベクトルтのｉ番目の成分ｔｉとの積を、整数Ｎの２乗で割った余りである。第二チャレンジＣ＾の各整数ｃ＾ｉは、暗号化特徴ベクトルＣ’の成分で暗号化されているｂｉｂ’ｉと、乱数ｔ１，ｉとの和ｂｉｂ’ｉ＋ｔ１，ｉを暗号化したものである。
なお、第二チャレンジＣ＾のＴ個の整数ｃ＾ｉの順序は、特徴ベクトルｂ，ｂ’の成分の順序と異なっていてもよい。
【０２８６】
図７０は、この実施の形態における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程Ｓ７１２では、認証装置１０２が、暗号化特徴ベクトルＣ’に基づいて、第二チャレンジＣ＾を生成する。第二チャレンジ生成工程Ｓ７１２は、例えば、初期化工程Ｓ７４０と、繰り返し工程Ｓ７４１と、乱数生成工程Ｓ７４３と、撹乱ベクトル生成工程Ｓ７４４と、整数結合工程Ｓ７６０とを有する。
【０２８７】
最初に、初期化工程Ｓ７４０において、整数結合部３８６が、処理装置９１１を用いて、整数ｉを０に初期化する。乱数記憶部３２２が、処理装置９１１を用いて、整数ｓ１を０に初期化し、記憶装置９１４を用いて、初期化した整数ｓ１を記憶する。
繰り返し工程Ｓ７４１において、整数結合部３８６が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、整数結合部３８６は、第二チャレンジ生成工程Ｓ７１２を終了する。整数ｉがＴ以下である場合、整数結合部３８６は、乱数生成工程Ｓ７４３へ処理を進め、第二チャレンジＣ＾のｉ番目の整数ｃ＾ｉを生成する。
乱数生成工程Ｓ７４３において、乱数生成部３０３が、処理装置９１１を用いて、２個の乱数ｔ１，ｉ，ｔ２，ｉを生成する。乱数記憶部３２２は、処理装置９１１を用いて、乱数生成部３０３が生成した乱数ｔ１，ｉを、整数ｓ１に加え、記憶装置９１４を用いて、算出した整数ｓ１を記憶する。
撹乱ベクトル生成工程Ｓ７４４において、撹乱ベクトル生成部３６２が、処理装置９１１を用いて、乱数生成工程Ｓ７４３で乱数生成部３０３が生成した２つの乱数ｔ１，ｉ，ｔ２，ｉに基づいて、撹乱ベクトルтのｉ番目の成分ｔｉを算出する。
整数結合工程Ｓ７６０において、整数結合部３８６が、処理装置９１１を用いて、暗号化データ抽出部３０５が生成した暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉと、撹乱ベクトル生成工程Ｓ７４４で撹乱ベクトル生成部３６２が算出した撹乱ベクトルтのｉ番目の成分ｔｉとに基づいて、第二チャレンジＣ＾のｉ番目の整数ｃ＾ｉを算出する。
整数結合部３８６は、繰り返し工程Ｓ７４１に処理を戻し、第二チャレンジＣ＾の次の整数を生成する。
【０２８８】
このようにして暗号化ランダム類似度算出部３１４が算出した第二チャレンジＣ＾は、第二チャレンジ送信部３２１が復号装置１０３に対して送信し、復号装置１０３が受信して処理する。
【０２８９】
復号装置１０３の復号部４０４の構成は、実施の形態７で説明した構成と同様なので、図６６を参照して説明する。
【０２９０】
復号装置１０３の復号部４０４は、例えば、逆数算出部４８１と、復号整数算出部４８２と、整数結合部４８５とを有する。
【０２９１】
逆数算出部４８１は、処理装置９１１を用いて、公開鍵記憶部４０３が記憶した公開鍵ｐｋである整数Ｎと、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである整数λとに基づいて、Ｎを法とする整数の乗法における整数λの逆数λ−１を算出する。
復号整数算出部４８２は、処理装置９１１を用いて、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである整数λと、第二チャレンジ受信部４０２が受信した第二チャレンジＣ＾と、逆数算出部４８１が算出した逆数λ−１とに基づいて、Ｔ個の整数ｚｉ（ｉは、１以上Ｔ以下の整数。）を算出する。整数ｚｉは、０以上Ｎ未満の整数である。ｉ番目の整数ｚｉ（ｉは、１以上Ｔ＋１以下の整数。）は、第二チャレンジＣ＾のｉ番目の整数ｃ＾ｉを復号した整数である。整数ｚｉは、２つの特徴ベクトルｂの対応する成分ｂｉ，ｂ’ｉの積と、乱数ｔ１，ｉとの和ｂｉｂ’ｉ＋ｔ１，ｉと等しい。
整数結合部４８５は、処理装置９１１を用いて、公開鍵記憶部４０３が記憶した公開鍵ｐｋである整数Ｎと、復号整数算出部４８２が算出したＴ個の整数ｚｉとに基づいて、第二レスポンスＺを算出する。第二レスポンスＺは、０以上Ｎ未満の整数である。整数結合部４８５が算出する第二レスポンスＺは、Ｔ個の整数ｚｉを合計した総和を、整数Ｎで割った余りである。第二レスポンスＺは、特徴ベクトルｂと特徴ベクトルｂ’との間の内積Σｉ［ｂｉｂ’ｉ］と、乱数ｔ１，ｉの合計値ｓ１＝Σｉ［ｔ１，ｉ］との和に等しい。すなわち、第二レスポンスＺは、特徴ベクトルｂと特徴ベクトルｂ’との間の内積を、一時鍵としての乱数ｓ１で暗号化したものである。
【０２９２】
図７１は、この実施の形態における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図である。
第二レスポンス生成工程Ｓ７１６の処理の流れは、実施の形態７とほとんど同じであるが、２つ異なる点がある。
第一点として、復号整数算出工程Ｓ５６６ａ、整数結合工程Ｓ５６８ａがなく、逆数算出工程Ｓ５６１ａの次に、初期化工程Ｓ５６０を実行する。
第二点として、初期化工程Ｓ５６０で、整数結合部４８５が、処理装置９１１を用いて、第二レスポンスＺを０に初期化する。
【０２９３】
このようにして復号部４０４が生成した第二レスポンスＺは、第二レスポンス送信部４１２が認証装置１０２に対して送信し、認証装置１０２が受信して処理する。
【０２９４】
認証装置１０２の平文類似度抽出部３１５は、実施の形態６と同じ構成である。
平文類似度抽出部３１５は、類似度ｄとして、２つの特徴ベクトルｂ，ｂ’の内積Σｉ［ｂｉｂ’ｉ］を算出する。
【０２９５】
判定部３０６は、離散対数算出部３７３が算出した類似度ｄが、所定の閾値ｄ０より大きい場合に、２つの特徴ベクトルｂ，ｂ’が似ていると判定する。
これにより、特徴点の一致数を指標として、２つの特徴ベクトルｂ，ｂ’が類似しているか否かを判定することができる。
【０２９６】
図７２は、この実施の形態の生体認証システム１００における類似度算出の計算手順を示すフローチャート図である。
第一段階として、第一レスポンス生成工程Ｓ７０７において、証明装置１０１が、第一チャレンジＲから第一レスポンスＲ’を算出することにより、Ｔ個のρｉ＝ｂｉｂ’ｉを算出する。この計算は、復号装置１０３の鍵により暗号化されたままの状態で行われるので、証明装置１０１は、特徴ベクトルｂについての情報を得ることができない。
第二段階として、第二チャレンジ生成工程Ｓ７１２において、認証装置１０２が、暗号化特徴ベクトルＣ’から第二チャレンジＣ＾を算出することにより、Ｔ個のδｉ＝ρｉ＋ｔ１，ｉ（ｉは、１以上Ｔ以下の整数。）を算出する。この計算は、復号装置１０３の鍵により暗号化されたままの状態で行われるので、認証装置１０２は、特徴ベクトルｂ，ｂ’や類似度についての情報を得ることができない。
第三段階として、第二レスポンス生成工程Ｓ７１６において、復号装置１０３が、第二チャレンジＣ＾から第二レスポンスＺを算出することにより、ζ＝Σｉ［δｉ］（ｉは、１以上Ｔ以下の整数。）を算出する。この計算は、復号装置１０３の秘密鍵によって復号された状態で行われるが、復号装置１０３は、一時鍵ｓ１＝Σｉ［ｔ１，ｉ］を知らないので、特徴ベクトルｂ，ｂ’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵ｓ１で暗号化された状態で行われる。
第四段階として、平文類似度算出工程Ｓ７１９において、認証装置１０２が、第二レスポンスＺから、類似度ｄ＝ζ−ｓ１を算出する。これにより、認証装置１０２は、類似度ｄを得ることができるが、特徴ベクトルｂ，ｂ’についての情報を得ることはできない。
【０２９７】
なお、暗号方式は、Ｐａｉｌｌｉｅｒ暗号方式に限らず、岡本−高島暗号方式、ＢＧＮ暗号方式、Ｇｅｎｔｒｙ暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置１０１と認証装置１０２との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
【０２９８】
また、生体認証システム１００は、実施の形態２と同様に、証明装置１０１が、復号装置１０３や登録装置１０４としての機能を兼ね備える構成であってもよい。
【０２９９】
実施の形態９．
実施の形態９について、図７３〜図７７を用いて説明する。
なお、実施の形態１〜実施の形態８と共通する部分については、同一の符号を付し、説明を省略する。
【０３００】
この実施の形態では、実施の形態７で説明した構成の別の変形例について説明する。
【０３０１】
暗号化特徴ベクトルＣ’は、０以上Ｎ２未満の整数を成分とするＴ次元のベクトル（ｃ’１,ｃ’２，…，ｃ’Ｔ）である。暗号化特徴ベクトルＣ’のｉ番目の成分ｃｉ（ｉは、１以上Ｔ以下の整数。）は、特徴ベクトルｂのｉ番目の成分ｂｉと、特徴ベクトルｂ’のｉ番目の成分ｂ’ｉとの積ｂｉｂ’ｉを暗号化したものである。
【０３０２】
図７３は、この実施の形態における暗号化ランダム類似度算出部３１４の構成の一例を示す詳細ブロック図である。
認証装置１０２の暗号化ランダム類似度算出部３１４は、例えば、暗号化鍵生成部３６６と、整数結合部３８６とを有する。
【０３０３】
乱数生成部３０３は、処理装置９１１を用いて、２個の乱数ｓ１，ｓ２を生成する。乱数ｓ１，ｓ２は、０以上Ｎ未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部３２２は、記憶装置９１４を用いて、乱数生成部３０３が生成した乱数ｓ１を記憶する。
【０３０４】
暗号化鍵生成部３６６は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋである整数Ｎと、乱数生成部３０３が生成した乱数ｓ１，ｓ２とに基づいて、暗号化鍵цを算出する。暗号化鍵цは、０以上Ｎ２未満の整数である。暗号化鍵цは、乱数ｓ１と整数Ｎとの積に１を加えた和（１＋ｓ１Ｎ）と、乱数ｓ２を整数Ｎで累乗した整数ｓ２Ｎとの積を、整数Ｎの２乗で割った余りである。暗号化鍵цは、平文としての乱数ｓ１を暗号化したものである。
整数結合部３８６は、処理装置９１１を用いて、公開鍵記憶部３０２が記憶した公開鍵ｐｋである整数Ｎと、暗号化データ抽出部３０５が生成した暗号化特徴ベクトルＣ’と、暗号化鍵生成部３６６が算出した暗号化鍵цとに基づいて、第二チャレンジＣ＾を生成する。第二チャレンジＣ＾は、０以上Ｎ２未満の整数である。第二チャレンジＣ＾は、暗号化特徴ベクトルＣ’のＴ個の成分ｃ’ｉと、暗号化鍵цとの総積Πｉ［ｃ’ｉ］цを、整数Ｎの２乗で割った余りである。第二チャレンジＣ＾は、暗号化特徴ベクトルＣ’の成分で暗号化されているｂｉｂ’ｉの総和（すなわち、２つの特徴ベクトルｂ，ｂ’の内積）と、平文としての乱数ｓ１との和Σｉ［ｂｉｂ’ｉ］＋ｓ１を暗号化したものである。
【０３０５】
図７４は、この実施の形態における第二チャレンジ生成工程Ｓ７１２の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程Ｓ７１２では、認証装置１０２が、暗号化特徴ベクトルＣ’に基づいて、第二チャレンジＣ＾を生成する。第二チャレンジ生成工程Ｓ７１２は、例えば、乱数生成工程Ｓ７４９と、暗号化鍵生成工程Ｓ７５２と、初期化工程Ｓ７４０と、繰り返し工程Ｓ７４１と、整数結合工程Ｓ７６０とを有する。
【０３０６】
最初に、乱数生成工程Ｓ７４９において、乱数生成部３０３が、処理装置９１１を用いて、２個の乱数ｓ１，ｓ２を生成する。乱数記憶部３２２は、記憶装置９１４を用いて、整数ｓ１を記憶する。
暗号化鍵生成工程Ｓ７５２において、暗号化鍵生成部３６６が、処理装置９１１を用いて、乱数生成工程Ｓ７４９で乱数生成部３０３が生成した２つの乱数ｓ１，ｓ２に基づいて、暗号化鍵цを算出する。
初期化工程Ｓ７４０において、整数結合部３８６が、処理装置９１１を用いて、整数ｉを０に初期化し、第二チャレンジＣ＾を、暗号化鍵生成工程Ｓ７５２で暗号化鍵生成部３６６が算出した暗号化鍵цに初期化する。
繰り返し工程Ｓ７４１において、整数結合部３８６が、処理装置９１１を用いて、整数ｉに１を加える。整数ｉがＴより大きい場合、第二チャレンジＣ＾が完成したので、整数結合部３８６は、第二チャレンジ生成工程Ｓ７１２を終了する。整数ｉがＴ以下である場合、整数結合部３８６は、整数結合工程Ｓ７６０へ処理を進める。
整数結合工程Ｓ７６０において、整数結合部３８６が、処理装置９１１を用いて、整数Ｎの２乗を法とする整数の乗法により、暗号化データ抽出部３０５が生成した暗号化特徴ベクトルＣ’のｉ番目の成分ｃ’ｉを、第二チャレンジＣ＾に結合する。
整数結合部３８６は、繰り返し工程Ｓ７４１に処理を戻す。
【０３０７】
このようにして暗号化ランダム類似度算出部３１４が算出した第二チャレンジＣ＾は、第二チャレンジ送信部３２１が復号装置１０３に対して送信し、復号装置１０３が受信して処理する。
【０３０８】
図７５は、この実施の形態における復号部４０４の構成の一例を示す詳細ブロック図である。
復号装置１０３の復号部４０４は、例えば、逆数算出部４８１と、復号整数算出部４８２とを有する。
逆数算出部４８１は、処理装置９１１を用いて、公開鍵記憶部４０３が記憶した公開鍵ｐｋである整数Ｎと、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである整数λとに基づいて、Ｎを法とする整数の乗法における整数λの逆数λ−１を算出する。
復号整数算出部４８２は、処理装置９１１を用いて、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである整数λと、第二チャレンジ受信部４０２が受信した第二チャレンジＣ＾と、逆数算出部４８１が算出した逆数λ−１とに基づいて、第二レスポンスＺを算出する。第二レスポンスＺは、０以上Ｎ未満の整数である。第二レスポンスＺは、第二チャレンジＣ＾を復号した整数である。第二レスポンスＺは、特徴ベクトルｂと特徴ベクトルｂ’との間の内積Σｉ［ｂｉｂ’ｉ］と、乱数ｓ１との和に等しい。すなわち、第二レスポンスＺは、特徴ベクトルｂと特徴ベクトルｂ’との間の内積を、一時鍵としての乱数ｓ１で暗号化したものである。
【０３０９】
図７６は、この実施の形態における第二レスポンス生成工程Ｓ７１６の処理の流れの一例を示すフローチャート図である。
第二レスポンス生成工程Ｓ７１６では、復号装置１０３が、第二チャレンジＣ＾から、第二レスポンスＺを生成する。第二レスポンス生成工程Ｓ７１６は、例えば、逆数算出工程Ｓ５６１ａと、復号整数算出工程Ｓ５６３ａとを有する。
【０３１０】
最初に、逆数算出工程Ｓ５６１ａにおいて、逆数算出部４８１が、処理装置９１１を用いて、秘密鍵記憶部４１３が記憶した秘密鍵ｓｋである整数λの逆数λ−１を算出する。
復号整数算出工程Ｓ５６３ａにおいて、復号整数算出部４８２が、処理装置９１１を用いて、逆数算出工程Ｓ５６１ａで逆数算出部４８１が算出した逆行列λ−１などに基づいて、第二チャレンジ受信部４０２が受信した第二チャレンジＣ＾を復号して、第二レスポンスＺを算出する。例えば、復号整数算出部４８２は、第二チャレンジＣ＾を整数λで累乗した整数から１を差し引いた整数（Ｃ＾λ−１）を整数Ｎの二乗で割った商ｙを算出する。復号整数算出部４８２は、算出した商ｙと逆数λ−１との積ｙλ−１を整数Ｎで割った余りを算出して、第二レスポンスＺとする。
【０３１１】
このようにして復号部４０４が生成した第二レスポンスＺは、第二レスポンス送信部４１２が認証装置１０２に対して送信し、認証装置１０２が受信して処理する。
【０３１２】
認証装置１０２の平文類似度抽出部３１５は、実施の形態６と同じ構成である。
平文類似度抽出部３１５は、類似度ｄとして、２つの特徴ベクトルｂ，ｂ’の内積Σｉ［ｂｉｂ’ｉ］を算出する。
【０３１３】
判定部３０６は、離散対数算出部３７３が算出した類似度ｄが、所定の閾値ｄ０より大きい場合に、２つの特徴ベクトルｂ，ｂ’が似ていると判定する。
これにより、特徴点の一致数を指標として、２つの特徴ベクトルｂ，ｂ’が類似しているか否かを判定することができる。
【０３１４】
図７７は、この実施の形態の生体認証システム１００における類似度算出の計算手順を示すフローチャート図である。
第一段階として、第一レスポンス生成工程Ｓ７０７において、証明装置１０１が、第一チャレンジＲから第一レスポンスＲ’を算出することにより、Ｔ個のρｉ＝ｂｉｂ’ｉを算出する。この計算は、復号装置１０３の鍵により暗号化されたままの状態で行われるので、証明装置１０１は、特徴ベクトルｂについての情報を得ることができない。
第二段階として、第二チャレンジ生成工程Ｓ７１２において、認証装置１０２が、暗号化特徴ベクトルＣ’から第二チャレンジＣ＾を算出することにより、δ＝Σｉ［ｂｉｂ’ｉ］＋ｓ１（ｉは、１以上Ｔ以下の整数。）を算出する。この計算は、復号装置１０３の鍵により暗号化されたままの状態で行われるので、認証装置１０２は、特徴ベクトルｂ，ｂ’についての情報を得ることができない。
第三段階として、第二レスポンス生成工程Ｓ７１６において、復号装置１０３が、第二チャレンジＣ＾から第二レスポンスＺを算出することにより、ζを算出する。復号装置１０３は、単に復号処理をするだけなので、ζは、δと等しい。復号装置１０３は、一時鍵ｓ１を知らないので、特徴ベクトルｂ，ｂ’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵ｓ１で暗号化された状態で行われる。
第四段階として、平文類似度算出工程Ｓ７１９において、認証装置１０２が、第二レスポンスＺから、類似度ｄ＝ζ−ｓ１を算出する。これにより、認証装置１０２は、類似度ｄを得ることができるが、特徴ベクトルｂ，ｂ’についての情報を得ることはできない。
【０３１５】
なお、暗号方式は、Ｐａｉｌｌｉｅｒ暗号方式に限らず、岡本−高島暗号方式、ＢＧＮ暗号方式、Ｇｅｎｔｒｙ暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置１０１と認証装置１０２との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
【０３１６】
また、生体認証システム１００は、実施の形態２と同様に、証明装置１０１が、復号装置１０３や登録装置１０４としての機能を兼ね備える構成であってもよい。
【０３１７】
実施の形態１０．
実施の形態１０について、図７８〜図８１を用いて説明する。
なお、実施の形態１〜実施の形態９と共通する部分については、同一の符号を付し、説明を省略する。
【０３１８】
図７８は、この実施の形態における画像検索システム１１０の全体構成の一例を示すシステム構成図である。
画像検索システム１１０は、暗号化されたままの状態で、登録された画像のなかから、指定された画像と似ているものを検索するシステムである。
画像検索システム１１０（類似度算出システム）は、例えば、端末装置１１１と、検索装置１１２と、復号装置１０３と、登録装置１０４とを有する。
登録装置１０４は、画像データを入力し、入力した画像データからその画像データが表わす画像の特徴を抽出して、特徴ベクトルｂを生成する。登録装置１０４は、生成した特徴ベクトルｂを暗号化して暗号化特徴ベクトルＣを生成する。登録装置１０４は、入力した画像データを暗号化して暗号化画像データを生成する。登録装置１０４は、暗号化特徴ベクトルＣと、暗号化画像データとを検索装置１１２に登録する。なお、暗号化画像データは、検索装置１１２とは別の場所に保管し、暗号化特徴ベクトルＣと、暗号化画像データの所在を表わすデータとを検索装置１１２に登録する構成であってもよい。
端末装置１１１は、画像データを入力し、入力した画像データからその画像データが表わす画像の特徴を抽出して、特徴ベクトルｂ’を生成する。端末装置１１１は、生成した特徴ベクトルｂ’を暗号化して暗号化特徴ベクトルＣ’を生成し、検索装置１１２に検索を要求する。
検索装置１１２は、登録装置１０４によって登録された暗号化特徴ベクトルＣを複数記憶している。検索装置１１２は、端末装置１１１からの検索要求に基づいて、記憶しているそれぞれの暗号化特徴ベクトルＣと、端末装置１１１から送られた暗号化特徴ベクトルＣ’とに基づいて類似度ｄを算出する。検索装置１１２は、算出した類似度ｄに基づいて、登録された画像のなかから、指定された画像に似ている画像を判定し、判定した画像の暗号化画像データ、もしくは、暗号化画像データの所在を表わすデータを端末装置１１１に返す。
【０３１９】
端末装置１１１、検索装置１１２、復号装置１０３、登録装置１０４のハードウェア構成は、実施の形態１で説明したものと同様である。
【０３２０】
図７９は、この実施の形態における登録装置１０４の機能ブロックの構成の一例を示すブロック構成図である。
登録装置１０４は、例えば、公開鍵受信部２０８と、公開鍵記憶部２０２と、画像入力部２０９と、特徴ベクトル形成部２０４と、乱数生成部２０５と、暗号化データ生成部２０６と、暗号化データ送信部２０１と、画像暗号化部２２６と、暗号化画像送信部２２８とを有する。
公開鍵受信部２０８（公開鍵取得部）は、通信装置などの入力装置９１２を用いて、復号装置１０３の公開鍵ｐｋを受信する。復号装置１０３の公開鍵ｐｋは、復号装置１０３が秘密裡に記憶した秘密鍵ｓｋに対応する公開鍵であり、復号装置１０３の公開鍵ｐｋで暗号化したデータは、復号装置１０３が記憶した秘密鍵ｓｋでなければ復号できない。
公開鍵記憶部２０２は、記憶装置９１４を用いて、公開鍵受信部２０８が受信した公開鍵ｐｋを記憶する。
画像入力部２０９は、入力装置９１２を用いて、登録すべき画像データを入力する。
特徴ベクトル形成部２０４（比較データ取得部）は、処理装置９１１を用いて、画像入力部２０９が入力した画像データから特徴ベクトルｂ（比較データ）を生成する。特徴ベクトルｂは、例えば、整数を成分とするＴ次元ベクトルである。
乱数生成部２０５は、処理装置９１１を用いて、特徴ベクトルｂや画像データを暗号化するときに使用される乱数を生成する。
暗号化データ生成部２０６（比較暗号文生成部）は、処理装置９１１を用いて、公開鍵記憶部２０２が記憶した公開鍵と、特徴ベクトル形成部２０４が生成した特徴ベクトルｂと、乱数生成部２０５が生成した乱数とに基づいて、暗号化特徴ベクトルＣ（比較暗号文）を生成する。暗号化特徴ベクトルＣは、暗号文を成分とするＴ次元のベクトルである。暗号化特徴ベクトルＣの各成分は、特徴ベクトルｂの各成分を暗号化したものである。
暗号化データ送信部２０１（比較暗号文通知部）は、暗号化データ生成部２０６が生成した暗号化特徴ベクトルＣを検索装置１１２に登録するため、通信装置などの出力装置９１３を用いて、暗号化特徴ベクトルＣを検索装置１１２に対して送信する。
画像暗号化部２２６は、処理装置９１１を用いて、公開鍵記憶部２０２が記憶した公開鍵と、画像入力部２０９が入力した画像データと、乱数生成部２０５が生成した乱数とに基づいて、暗号化画像データを生成する。暗号化画像データは、画像データを暗号化したものである。なお、画像暗号化部２２６が画像データを暗号化するときに使用する暗号方式は、暗号化データ生成部２０６が特徴ベクトルｂを暗号化するときに使用する暗号方式と同じ暗号方式であってもよいし、異なる暗号方式であってもよい。
暗号化画像送信部２２８は、画像暗号化部２２６が生成した暗号化画像データを登録するため、通信装置などの出力装置９１３を用いて、暗号化データ送信部２０１が送信する暗号化特徴ベクトルＣとともに、暗号化画像データを検索装置１１２に対して送信する。なお、暗号化画像データを検索装置１１２に登録するのではなく、他の装置に登録する構成であってもよい。また、登録装置１０４自身が、暗号化画像データを保管する構成であってもよい。その場合、暗号化画像送信部２２８は、暗号化画像データのＵＲＩ（統一資源識別子）など暗号化画像データの所在を表わすデータを、暗号化特徴ベクトルとともに、検索装置１１２に対して送信する。
【０３２１】
図８０は、この実施の形態における端末装置１１１の機能ブロックの構成の一例を示すブロック構成図である。
端末装置１１１は、例えば、公開鍵受信部２１８と、公開鍵記憶部２１２と、画像入力部２１９と、特徴ベクトル形成部２１４と、乱数生成部２１５と、暗号化データ生成部２１６と、暗号化データ送信部２２２と、結果受信部２２３と、結果出力部２２４とを有する。
公開鍵受信部２１８（公開鍵取得部）は、通信装置などの入力装置９１２を用いて、復号装置１０３の公開鍵ｐｋを受信する。
公開鍵記憶部２０２は、記憶装置９１４を用いて、公開鍵受信部２１８が受信した公開鍵ｐｋを記憶する。
画像入力部２１９は、入力装置９１２を用いて、類似する画像を探すべき画像データを入力する。
特徴ベクトル形成部２１４（対象データ取得部）は、処理装置９１１を用いて、画像入力部２１９が入力した画像データから特徴ベクトルｂ’（対象データ）を生成する。特徴ベクトルｂ’は、例えば、整数を成分とするＴ次元ベクトルである。
乱数生成部２１５は、処理装置９１１を用いて、特徴ベクトルｂ’を暗号化するときに使用される乱数を生成する。
暗号化データ生成部２１６（対象暗号文生成部）は、処理装置９１１を用いて、公開鍵記憶部２１２が記憶した公開鍵と、特徴ベクトル形成部２１４が生成した特徴ベクトルｂ’と、乱数生成部２１５が生成した乱数とに基づいて、暗号化特徴ベクトルＣ’（対象暗号文）を生成する。暗号化特徴ベクトルＣ’は、暗号文を成分とするＴ次元のベクトルである。暗号化特徴ベクトルＣ’の各成分は、特徴ベクトルｂ’の各成分を暗号化したものである。
暗号化データ送信部２２２（対象暗号文通知部）は、画像入力部２１９が入力した画像データに似た画像を検索するため、通信装置などの出力装置９１３を用いて、暗号化データ生成部２１６が生成した暗号化特徴ベクトルＣ’を検索装置１１２に対して送信する。
結果受信部２２３は、通信装置などの入力装置９１２を用いて、検索装置１１２が送信した検索結果を受信する。検索結果は、例えば、画像入力部２１９が入力した画像データに似た画像の暗号化画像データそのものや、その所在を表わすデータである。
結果出力部２２４は、表示装置などの出力装置９１３を用いて、結果受信部２２３が受信した検索結果を出力する。結果出力部２２４は、例えば、画像入力部２１９が入力した画像データが表わす画像に似た画像の数を表示する。あるいは、結果出力部２２４は、暗号化画像データを復号して画像を表示する構成であってもよい。
【０３２２】
実施の形態１〜実施の形態９で説明した証明装置１０１と異なり、端末装置１１１は、暗号化特徴ベクトルＣ’をそのまま送信する。認証システムでは、再送攻撃によるなりすましを防ぐ必要があるのに対し、この実施の形態における画像検索システム１１０において、端末装置１１１は、検索結果として暗号化された暗号化画像データを取得できるだけであり、暗号化画像データを復号する権限がなければ、検索された画像を表示することはできないから、再送攻撃を防ぐ必要がない。
しかし、実施の形態１〜実施の形態９で説明した証明装置１０１と同じように、端末装置１１１は、検索装置１１２から第一チャレンジＲを受信し、受信した第一チャレンジＲと、特徴ベクトルｂ’とに基づいて、第一レスポンスＲ’を生成し、生成した第一レスポンスＲ’を検索装置１１２に対して送信する構成であってもよい。
【０３２３】
図８１は、この実施の形態における検索装置１１２の機能ブロックの構成の一例を示すブロック構成図である。
検索装置１１２は、例えば、公開鍵受信部３０８と、公開鍵記憶部３０２と、２つの暗号化データ受信部３０１，３２５と、暗号化データ記憶部３１２と、乱数生成部３０３と、乱数記憶部３２２と、暗号化ランダム類似度算出部３１４と、第二チャレンジ送信部３２１と、第二レスポンス受信部３４１と、平文類似度抽出部３１５と、判定部３０６と、結果送信部３２３とを有する。
公開鍵受信部３０８（公開鍵取得部）は、通信装置などの入力装置９１２を用いて、復号装置１０３の公開鍵ｐｋを受信する。
公開鍵記憶部３０２は、記憶装置９１４を用いて、公開鍵受信部３０８が受信した公開鍵ｐｋを記憶する。
暗号化データ受信部３０１（比較暗号文取得部）は、通信装置などの入力装置９１２を用いて、登録装置１０４が送信した暗号化特徴ベクトルＣを受信する。
暗号化データ記憶部３１２（比較暗号文記憶部）は、記憶装置９１４を用いて、暗号化データ受信部３０１が受信した暗号化特徴ベクトルＣを記憶する。暗号化データ記憶部３１２は、複数の暗号化特徴ベクトルＣを、暗号化画像データの所在を表わすデータと対応づけて記憶する。
暗号化データ受信部３２５（対象暗号文取得部）は、通信装置などの入力装置９１２を用いて、端末装置１１１が送信した暗号化特徴ベクトルＣ’を受信する。
乱数生成部３０３は、処理装置９１１を用いて、第二チャレンジＣ＾の生成に使用する乱数を生成する。
乱数記憶部３２２は、記憶装置９１４を用いて、乱数生成部３０３が生成した乱数のうち、平文としての乱数を記憶する。
暗号化ランダム類似度算出部３１４は、処理装置９１１を用いて、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣそれぞれについて、暗号化データ受信部３２５が受信した暗号化特徴ベクトルＣ’や乱数生成部３０３が生成した乱数などに基づいて、第二チャレンジＣ＾を生成する。
第二チャレンジ送信部３２１は、通信装置などの出力装置９１３を用いて、暗号化ランダム類似度算出部３１４が生成した第二チャレンジＣ＾を復号装置１０３に対して送信する。
第二レスポンス受信部３４１は、通信装置などの入力装置９１２を用いて、第二チャレンジ送信部３２１が送信した第二チャレンジＣ＾に対する応答として、復号装置１０３が送信した第二レスポンスＺを受信する。
平文類似度抽出部３１５は、処理装置９１１を用いて、乱数記憶部３２２が記憶した乱数や、第二レスポンス受信部３４１が受信した第二レスポンスＺに基づいて、類似度ｄを算出する。
判定部３０６は、処理装置９１１を用いて、平文類似度抽出部３１５が算出した類似度ｄに基づいて、端末装置１１１が入力した画像データが表わす画像に似ている画像を判定する。例えば、類似度ｄが、ユークリッド距離の二乗など、小さいほど似ていることを表わすものである場合、判定部３０６は、類似度ｄが所定の閾値ｄ０より小さい場合に、その画像が、端末装置１１１が入力した画像データが表わす画像に似ていると判定する。なお、判定部３０６は、類似度ｄが閾値ｄ０より小さい画像の数が所定の数より多い場合、類似度ｄが小さい順に、所定の数の画像だけを、端末装置１１１が入力した画像データに似ていると判定する構成であってもよい。
【０３２４】
結果送信部３２３は、通信装置などの出力装置９１３を用いて、平文類似度抽出部３１５が判定した結果を端末装置１１１に対して送信する。
【０３２５】
なお、暗号化ランダム類似度算出部３１４や平文類似度抽出部３１５などの詳細な構成は、実施の形態１〜実施の形態９で説明した認証装置１０２の暗号化ランダム類似度算出部３１４や平文類似度抽出部３１５などと同様である。
また、復号装置１０３の構成も、実施の形態１〜実施の形態９で説明した復号装置１０３の構成と同様である。
【０３２６】
実施の形態１〜実施の形態９で説明した方式で算出した類似度ｄに基づいて、端末装置１１１が入力した画像データと似ている画像を探すことにより、暗号化された画像データや特徴ベクトルを復号することなく、画像を検索することができる。
【０３２７】
なお、検索の対象となるデータは、画像データに限らず、文書データなど他のデータであってもよい。検索対象が文書データである場合、例えば、所定の単語の出現回数を、特徴ベクトルの各成分の値とする構成などが考えられる。
【０３２８】
以上各実施の形態で説明した構成は、一例であり、他の構成であってもよい。例えば、異なる実施の形態で説明した構成を組み合わせた構成としてもよいし、重要でない部分の構成を他の構成で置き換えた構成としてもよい。
【０３２９】
例えば、類似度ｄとして、２つの特徴ベクトルｂ，ｂ’のユークリッド距離の二乗を算出する構成と、２つの特徴ベクトルｂ，ｂ’の内積を算出する構成とを説明したが、２つの特徴ベクトルｂ，ｂ’のハミング距離や、特徴点の一致数など、異なる算出式によって類似度ｄを算出する構成であってもよい。
【０３３０】
また、実施の形態１〜実施の形態９で説明した生体認証システム１００において、ユーザの識別子を使って、認証装置１０２の暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣのなかから、第一レスポンス受信部３３１が受信した第一レスポンスＲ’に対応する暗号化特徴ベクトルＣを特定し、第二チャレンジＣ＾を生成する構成を説明したが、実施の形態１０で説明した画像検索システム１１０と同じように、暗号化データ記憶部３１２が記憶した暗号化特徴ベクトルＣそれぞれとの間で類似度ｄを算出する構成であってもよい。その場合、例えば、判定部３０６は、証明装置１０１に生体情報を入力したユーザが、最も似ていると判定した暗号化特徴ベクトルＣのユーザであると判定する構成であってもよい。
【０３３１】
また、実施の形態１〜実施の形態９では、生体情報に基づいて認証を行う生体認証システム１００について説明したが、他の情報に基づいて認証を行う認証システムであってもよい。
【０３３２】
更に、以上説明した類似度算出方式は、認証システムや検索システムに限らず、他の様々なシステムに応用することができる。
【０３３３】
以上説明した類似度算出装置（認証装置１０２；検索装置１１２）は、比較データ（特徴ベクトルｂ）と対象データ（特徴ベクトルｂ’）との類似度（ｄ）を算出する。
類似度算出装置は、データを記憶する記憶装置（９１４）と、データを処理する処理装置（９１１）と、比較暗号文記憶部（暗号化データ記憶部３１２）と、対象暗号文取得部（暗号化データ抽出部３０５；暗号化データ受信部３２５）と、一時鍵生成部（乱数生成部３０３）と、類似度途中暗号文算出部（暗号化ランダム類似度算出部３１４）と、類似度途中暗号文通知部（第二チャレンジ送信部３２１）と、類似度途中復号文取得部（第二レスポンス受信部３４１）と、類似度算出部（平文類似度抽出部３１５）とを有する。
上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置（１０３）が記憶した秘密鍵（ｓｋ）に対応する公開鍵（ｐｋ）を使った暗号化変換により上記比較データを変換した比較暗号文（暗号化特徴ベクトルＣ）を記憶する。
上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文（暗号化特徴ベクトルＣ’）を取得する。
上記一時鍵生成部は、上記処理装置を用いて、一時鍵（乱数ｕ１；乱数ｓ１）を生成する。
上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文（第二チャレンジＣ＾）を算出する。
上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知する。
上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文（第二レスポンスＺ）を取得する。
上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出する。
【０３３４】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）は、上記類似度算出装置（認証装置１０２；検索装置１１２）と、復号装置（１０３）とを有する。
上記復号装置は、データを記憶する記憶装置（９１４）と、データを処理する処理装置（９１１）と、秘密鍵記憶部（４１３）と、類似度途中暗号文取得部（第二チャレンジ受信部４０２）と、類似度途中復号文算出部（復号部４０４）と、類似度途中復号文通知部（第二レスポンス送信部４１２）とを有する。
上記復号装置の秘密鍵記憶部は、上記復号装置の記憶装置を用いて、秘密鍵（ｓｋ）を記憶する。
上記復号装置の類似度途中暗号文取得部は、上記復号装置の処理装置を用いて、上記類似度算出装置から通知された類似度途中暗号文を取得する。
上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の秘密鍵記憶部が記憶した秘密鍵と、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、上記類似度途中復号文を算出する。
上記復号装置の類似度途中復号文通知部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中復号文算出部が算出した類似度途中復号文を上記類似度算出装置に対して通知する。
【０３３５】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記比較データ（特徴ベクトルｂ）及び上記対象データ（特徴ベクトルｂ’）は、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）である。
上記類似度算出装置（認証装置１０２；検索装置１１２）の類似度途中暗号文算出部（暗号化ランダム類似度算出部３１４）は、上記類似度算出装置の処理装置（９１１）を用いて、上記比較暗号文（暗号化特徴ベクトルＣ）及び上記対象暗号文（暗号化特徴ベクトルＣ’）が暗号化されたままの状態で、上記比較データと上記対象データとの間の対応する成分の差または積を計算する。
上記復号装置（１０３）の類似度途中暗号文算出部（復号部４０４）は、上記復号装置の処理装置（９１１）を用いて、上記秘密鍵（ｓｋ）を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、上記類似度（ｄ）を計算する。
上記類似度算出装置の類似度算出部（平文類似度抽出部３１５）は、上記類似度算出装置の処理装置を用いて、上記類似度途中復号文を復号することにより、上記類似度を取得する。
【０３３６】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記暗号化変換は、整数（０以上ｑ未満の整数；０以上Ｎ未満の整数）を暗号文（ベクトル空間Ｖにおけるベクトル；有限群Ｇの元；０以上Ｎ２未満の整数）に変換する変換である。上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算（ベクトル空間Ｖにおける加法；有限群Ｇにおける乗法；Ｎ２を法とする整数の乗法）が計算可能であり、任意の第一の整数（ｘ１）を変換した暗号文（Ｅ（ｘ１））と、任意の第二の整数（ｘ２）を変換した暗号文（Ｅ（ｘ２））とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和（ｘ１＋ｘ２）を変換した暗号文（Ｅ（ｘ１＋ｘ２））になる。
【０３３７】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記比較データ（特徴ベクトルｂ）及び上記対象データ（特徴ベクトルｂ’）は、整数を成分（ｂｉ，ｂ’ｉ）とするＴ次元ベクトル（Ｔは、１以上の整数。）である。
上記比較暗号文（暗号化特徴ベクトルＣ）は、上記公開鍵（ｐｋ）を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文（ｃｉ）を成分とするＴ次元ベクトルである。
上記対象暗号文（暗号化特徴ベクトルＣ’）は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文（ｃ’ｉ）を成分とするＴ次元ベクトルである。
上記類似度算出装置（認証装置１０２；検索装置１１２）は、更に、公開鍵記憶部（３０２）を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置（９１４）を用いて、上記復号装置（１０３）が記憶した秘密鍵（ｓｋ）に対応する公開鍵（ｐｋ）を記憶する。
上記類似度算出装置の一時鍵生成部（乱数生成部３０３）は、上記類似度算出装置の処理装置（９１１）を用いて、整数（ｕ１）をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部（暗号化ランダム類似度算出部３１４）は、乱数平文生成部（撹乱ベクトル生成部３６２）と、第一暗号文算出部（ベクトル結合部３６３）と、第二暗号文算出部（ベクトル累計部３６７）とを有する。
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数（ｔ１，ｉ）を成分とするＴ次元ベクトルをランダムに生成して、乱数平文（撹乱ベクトルт）とする。
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部（暗号化データ記憶部３１２）が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部（暗号化データ抽出部３０５；暗号化データ受信部３２５）が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出する。上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和（ｂｉ−ｂ’ｉ＋ｔ１，ｉ）を、上記公開鍵を使った上記暗号化変換により変換した暗号文（ｃ＾ｉ）を成分とするＴ次元ベクトルである。
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文（ｃ＾）を算出する。上記第二の類似度途中暗号文は、補正値と、上記一時鍵（ｕ１）との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文である。上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の２倍と、上記乱数平文の各成分の２乗とを、すべての成分について合計した整数（Σｉ［２ｔ１，ｉ（ｂｉ−ｂ’ｉ）＋ｔ１，ｉ２］）である。
上記類似度算出装置の類似度途中暗号文通知部（第二チャレンジ送信部３２１）は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知する。
【０３３８】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記比較データ（特徴ベクトルｂ）及び上記対象データ（特徴ベクトルｂ’）は、０または１を成分（ｂｉ，ｂ’ｉ）とするＴ次元ベクトル（Ｔは、１以上の整数。）である。
上記比較暗号文（暗号化特徴ベクトルＣ）は、上記公開鍵（ｐｋ）を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするＴ次元ベクトルである。
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分（ｂ’ｉ）を変換した暗号文を成分とするＴ次元ベクトルである。
上記類似度算出装置（認証装置１０２；検索装置１１２）は、更に、公開鍵記憶部（３０２）を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置（９１４）を用いて、上記復号装置（１０３）が記憶した秘密鍵（ｓｋ）に対応する公開鍵（ｐｋ）を記憶する。
上記類似度算出装置の一時鍵生成部（乱数生成部３０３）は、上記類似度算出装置の処理装置（９１１）を用いて、整数（ｕ１）をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部（暗号化ランダム類似度算出部３１４）は、乱数平文生成部（撹乱ベクトル生成部３６２）と、第一暗号文算出部（ベクトル結合部３６３）と、第二暗号文算出部（ベクトル累計部３６７）とを有する。
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分（ｔ１，ｉ）とするＴ次元ベクトルをランダムに生成して、乱数平文（撹乱ベクトルт）とする。
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部（暗号化データ記憶部３１２）が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部（暗号化データ抽出部３０５；暗号化データ受信部３２５）が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出する。上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和（ｂｉ−ｂ’ｉ＋ｔ１，ｉ）を、上記公開鍵を使った上記暗号化変換により変換した暗号文（ｃ＾ｉ）を成分とするＴ次元ベクトルである。
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文（ｃ＾）を算出する。上記第二の類似度途中暗号文は、補正値と、上記一時鍵との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文である。上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の２倍と、上記乱数平文の各成分の２乗と、上記比較データの各成分と、上記対象データの各成分とを、すべての成分について合計した整数（Σｉ［２ｔ１，ｉ（ｂｉ−ｂ’ｉ）＋ｔ１，ｉ２＋ｂｉ＋ｂ’ｉ］）である。
上記類似度算出装置の類似度途中暗号文通知部（第二チャレンジ送信部３２１）は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知する。
【０３３９】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記比較データ（特徴ベクトルｂ）及び上記対象データ（特徴ベクトルｂ’）は、整数を成分（ｂｉ，ｂ’ｉ）とするＴ次元ベクトル（Ｔは、１以上の整数。）である。
上記比較暗号文（暗号化特徴ベクトルＣ）は、上記公開鍵（ｐｋ）を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文（ｃｉ）を成分とするＴ次元ベクトルである。
上記対象暗号文（暗号化特徴ベクトルＣ’）は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文（ｃ’ｉ）を成分とするＴ次元ベクトルである。
上記類似度算出装置（認証装置１０２；検索装置１１２）は、更に、公開鍵記憶部（３０２）を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置（９１４）を用いて、上記復号装置（１０３）が記憶した秘密鍵（ｓｋ）に対応する公開鍵（ｐｓ）を記憶する。
上記類似度算出装置の一時鍵生成部（乱数生成部３０３）は、上記類似度算出装置の処理装置を用いて、整数（ｓ１）をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部は、第一暗号文算出部（差分算出部３６１，並べ替え部３８５）と、第二暗号文算出部（暗号化鍵生成部３６６）とを有する。
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部（暗号化データ記憶部３１２）が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部（暗号化データ抽出部３０５；暗号化データ受信部３２５）が取得した対象暗号文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出する。上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差（ｂｉ−ｂ’ｉ）を、上記公開鍵を使った上記暗号化変換により変換した暗号文（ｃ＾ｉ）を成分とするＴ次元ベクトルである。
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文（ｃ＾）を、第二の類似度途中暗号文とする。
上記類似度算出装置の類似度途中暗号文通知部（第二チャレンジ送信部３２１）は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知する。
【０３４０】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記類似度算出装置（認証装置１０２；検索装置１１２）の第一暗号文算出部（差分算出部３６１，並べ替え部３８５）は、上記類似度算出装置の処理装置（９１１）を用いて、上記比較データ（特徴ベクトルｂ）の成分から上記対象データ（特徴ベクトルｂ’）の対応する成分を差し引いた差を上記公開鍵（ｐｋ）を使った上記暗号化変換により変換した暗号文、及び、上記対象データの成分から上記比較データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文のうちから、各成分ごとにランダムに選択した暗号文を成分とし、成分の順序をランダムに入れ換えたＴ次元ベクトルを、上記第一の類似度途中暗号文とする。
【０３４１】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記復号装置（１０３）の類似度途中復号文算出部（復号部４０４）は、上記復号装置の処理装置（９１１）を用いて、上記復号装置の類似度途中暗号文取得部（第二チャレンジ受信部４０２）が取得した２つの類似度途中暗号文（第二チャレンジＣ＾）に基づいて、上記第一の類似度途中暗号文のＴ個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりｚ個（ｚは、上記第一の類似度途中暗号文のＴ個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。）結合した元を算出して、上記類似度途中復号文（第二レスポンスＺ）とする。
【０３４２】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記比較データ（特徴ベクトルｂ）及び上記対象データ（特徴ベクトルｂ’）は、整数を成分（ｂｉ，ｂ’ｉ）とするＴ次元ベクトル（Ｔは、１以上の整数。）である。
上記比較暗号文（暗号化特徴ベクトルＣ）は、上記公開鍵（ｐｋ）を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文（ｃｉ）を成分とするＴ次元ベクトルである。
上記対象暗号文（暗号化特徴ベクトルＣ’）は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文（ｃ’ｉ）を成分とするＴ次元ベクトルである。
上記類似度算出装置（認証装置１０２；検索装置１１２）は、更に、公開鍵記憶部（３０２）を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置（９１４）を用いて、上記復号装置（１０３）が記憶した秘密鍵（ｓｋ）に対応する公開鍵（ｐｋ）を記憶する。
上記類似度算出装置の一時鍵生成部（乱数生成部３０３）は、上記類似度算出装置の処理装置（９１１）を用いて、整数（ｓ１）をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部（暗号化ランダム類似度算出部３１４）は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部（暗号化データ記憶部３１２）が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部（暗号化データ抽出部３０５；暗号化データ受信部３２５）が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記暗号文の演算を使って、上記類似度途中暗号文（第二チャレンジＣ＾）を算出する。上記類似度途中暗号文は、合計値と上記一時鍵との和または差を、上記公開鍵を使った暗号化変換により変換した暗号文である。上記合計値は、上記比較データの各成分と上記対象データの対応する成分との差の二乗、または、上記比較データの各成分と上記対象データの対応する成分との積を、すべての成分について合計した整数（Σｉ［（ｂｉ−ｂ’ｉ）２］；Σｉ［ｂｉｂ’ｉ］）である。
【０３４３】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記暗号化変換は、０以上ｑ未満（ｑは、素数。）の整数を、ベクトル空間（Ｖ）におけるｎ次元ベクトル（ｎは、２以上の整数。）である暗号文に変換する変換である。
上記ベクトル空間は、位数ｑの巡回群ｎ個の直積である。
上記暗号文の演算は、上記ベクトル空間におけるベクトルの加法である。
上記公開鍵（ｐｋ）は、上記ベクトル空間の基底であるランダム基底（Ｂ）を含む。
上記暗号化変換は、０以上ｑ未満の整数ｘを、上記ランダム基底の第一のベクトル（ь１）のｘ倍と、上記ランダム基底の他のベクトル（ьｊ）の乱数倍とを合計したベクトルに変換する変換である。
【０３４４】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記暗号化変換は、０以上Ｎ未満（Ｎは、互いに異なる２つの素数ｐ，ｑの積。）の整数を、位数Ｎの有限群（Ｇ）の元である暗号文に変換する変換である。
上記暗号文の演算は、上記有限群における群演算である。
上記公開鍵（ｐｋ）は、上記有限群の生成元（ｇ）と、上記有限群の元であって位数が上記素数ｐである撹乱元（ｈ）とを含む。
上記暗号化変換は、０以上Ｎ未満の整数ｘを、上記有限群における群演算により、ｘ個の上記生成元と、ランダムな数の上記撹乱元とを結合した元に変換する変換である。
【０３４５】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記暗号化変換は、０以上Ｎ未満（Ｎは、互いに異なる２つの素数ｐ，ｑの積。）の整数を、０以上Ｎ２未満の整数である暗号文に変換する変換である。
上記暗号文の演算は、Ｎ２を法とする整数の乗法である。
上記暗号化変換は、０以上Ｎ未満の整数ｘを、整数ｘと整数Ｎとの積に１を加えた和と、ランダムな数のＮ乗との積を、Ｎ２で割った余りに変換する変換である。
【０３４６】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）は、更に、暗号化装置（証明装置１０１；端末装置１１１）を有する。
上記暗号化装置は、データを記憶する記憶装置（９１４）と、データを処理する処理装置（９１１）と、公開鍵記憶部（２１２）と、対象データ取得部（特徴ベクトル形成部２１４）と、一時公開鍵取得部（第一チャレンジ受信部２１１）と、対象二重暗号文算出部（暗号化データ埋め込み部２１７）と、対象二重暗号文通知部（第一レスポンス送信部２２１）とを有する。
上記暗号化装置の公開鍵記憶部は、上記暗号化装置の記憶装置を用いて、上記復号装置（１０３）が記憶した秘密鍵（ｓｋ）に対応する公開鍵（ｐｋ）を記憶する。
上記暗号化装置の対象データ取得部は、上記暗号化装置の処理装置を用いて、対象データ（特徴ベクトルｂ’）を取得する。
上記暗号化装置の一時公開鍵取得部は、上記暗号化装置の処理装置を用いて、上記類似度算出装置（認証装置１０２；検索装置１１２）から通知された一時公開鍵（第一チャレンジＲ）を取得する。
上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵と、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵とに基づいて、上記公開鍵と上記一時公開鍵とを使った第二の暗号化変換により上記対象データを変換することにより、対象二重暗号文（第一レスポンスＲ’）を算出する。
上記暗号化装置の対象二重暗号文通知部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の対象二重暗号文算出部が算出した対象二重暗号文を上記類似度算出装置に対して通知する。
上記類似度算出装置は、更に、一時秘密鍵生成部（乱数生成部３０３、暗号化乱数生成部３０４）と、一時公開鍵通知部（第一チャレンジ送信部３１１）と、対象二重暗号文取得部（第一レスポンス受信部３３１）とを有する。
上記類似度算出装置の一時秘密鍵生成部は、上記類似度算出装置の処理装置（９１１）を用いて、一時秘密鍵（Ｒ１，ｉ）と、上記一時秘密鍵に対応する一時公開鍵（第一チャレンジＲ）とを生成する。
上記類似度算出装置の一時公開鍵通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時公開鍵を上記暗号化装置に対して通知する。
上記類似度算出装置の対象二重暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記暗号化装置から通知された対象二重暗号文を取得する。
上記類似度算出装置の対象暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵と、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使った第二の復号変換により上記対象二重暗号文を変換することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文（暗号化特徴ベクトルＣ’）を算出する。
【０３４７】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記比較データ（特徴ベクトルｂ）及び上記対象データ（特徴ベクトルｂ’）は、整数を成分（ｂｉ，ｂ’ｉ）とするＴ次元ベクトル（Ｔは、１以上の整数。）である。
上記類似度算出装置（認証装置１０２；検索装置１１２）の一時秘密鍵生成部（乱数生成部３０３、暗号化乱数生成部３０４）は、上記類似度算出装置の処理装置（９１１）を用いて、上記類似度算出装置の比較暗号文記憶部（暗号化データ記憶部３１２）が記憶した比較暗号文（暗号化特徴ベクトルＣ）に基づいて、上記比較データについての暗号化された情報を含む一時公開鍵（第一チャレンジＲ）を生成する。
上記暗号化装置（証明装置１０１；端末装置１１１）の対象二重暗号文算出部（暗号化データ埋め込み部２１７）は、上記暗号化装置の処理装置（９１１）を用いて、上記一時公開鍵を使った上記第二の暗号化変換により、上記対象データの成分と上記比較データの対応する成分との積（ｂｉｂ’ｉ）についての暗号化された情報を含む対象二重暗号文（第一レスポンスＲ’）を算出する。
【０３４８】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記暗号化変換は、整数（０以上ｑ未満の整数；０以上Ｎ未満の整数）を暗号文（ベクトル空間Ｖにおけるベクトル；有限群Ｇの元；０以上Ｎ２未満の整数）に変換する変換である。上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算（ベクトル空間Ｖにおける加法；有限群Ｇにおける乗法；Ｎ２を法とする整数の乗法）が計算可能であり、任意の第一の整数（ｘ１）を変換した暗号文（Ｅ（ｘ１））と、任意の第二の整数（ｘ２）を変換した暗号文（Ｅ（ｘ２））とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和（ｘ１＋ｘ２）を変換した暗号文（Ｅ（ｘ１＋ｘ２））になる。
上記対象データ（特徴ベクトルｂ’）は、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）である。
上記類似度算出装置（認証装置１０２；検索装置１１２）は、更に、公開鍵記憶部（３０２）を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置（９１４）を用いて、上記復号装置（１０３）が記憶した秘密鍵（ｓｋ）に対応する公開鍵（ｐｋ）を記憶する。
上記類似度算出装置の一時公開鍵生成部（乱数生成部３０３；暗号化乱数生成部３０４）は、上記類似度算出装置の処理装置（９１１）を用いて、整数（Ｒ１，ｉ）を成分とするＴ次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、生成した一時秘密鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時秘密鍵の各成分を変換した暗号文（Ｒｉ）を成分とするＴ次元ベクトルを算出して、上記一時公開鍵（第一チャレンジＲ）とする。
上記暗号化装置（証明装置１０１；端末装置１１１）の対象二重暗号文算出部（暗号化データ埋め込み部２１７）は、上記暗号化装置の処理装置（９１１）を用いて、上記暗号化装置の公開鍵記憶部（２１２）が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により０を変換した暗号文（ｏｉ）を成分とするＴ次元ベクトルをランダムに生成して、零暗号文（暗号化零ベクトルＯ）とし、上記暗号化装置の対象データ取得部（特徴ベクトル形成部２１４）が取得した対象データと、上記暗号化装置の一時公開鍵取得部（第一チャレンジ受信部２１１）が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分ｂ’ｉ個（ｂ’ｉは、上記対象データの対応する成分である整数。）と、上記零暗号文の対応する成分とを結合した暗号文を成分とするＴ次元ベクトルを算出して、上記対象二重暗号文（第一レスポンスＲ’）とする。
上記類似度算出装置の対象暗号文取得部（暗号化データ抽出部３０５）は、一時復号鍵算出部（逆数算出部３５１）と、対象暗号文算出部（スカラー倍算出部３５２）とを有する。
上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数（κｉ）を成分とするＴ次元ベクトルを算出して、一時復号鍵とする。
上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部（第一レスポンス受信部３３１）が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分（Ｒ’ｉ）をＲｉ−１個（Ｒｉ−１は、上記一時復号鍵の対応する成分である逆数。）結合した暗号文を成分とするＴ次元ベクトルを算出して、上記対象暗号文（暗号化特徴ベクトルＣ’）とする。
【０３４９】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記暗号化変換は、整数（０以上ｑ未満の整数；０以上Ｎ未満の整数）を暗号文（ベクトル空間Ｖにおけるベクトル；有限群Ｇの元；０以上Ｎ２未満の整数）に変換する変換である。上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算（ベクトル空間Ｖにおける加法；有限群Ｇにおける乗法；Ｎ２を法とする整数の乗法）が計算可能である。任意の第一の整数（ｘ１）を変換した暗号文（Ｅ（ｘ１））と、任意の第二の整数（ｘ２）を変換した暗号文（Ｅ（ｘ２））とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和（ｘ１＋ｘ２）を変換した暗号文（Ｅ（ｘ１＋ｘ２））になる。
上記比較データ（特徴ベクトルｂ）及び上記対象データ（特徴ベクトルｂ’）は、整数を成分（ｂｉ，ｂ’ｉ）とするＴ次元ベクトル（Ｔは、１以上の整数。）である。
上記比較暗号文（暗号化特徴ベクトルＣ）は、上記公開鍵（ｐｋ）を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文（ｃｉ）を成分とするＴ次元ベクトルである。
上記類似度算出装置（認証装置１０２；検索装置１１２）は、更に、公開鍵記憶部（３０２）を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置（９１４）を用いて、上記復号装置（１０３）が記憶した秘密鍵（ｓｋ）に対応する公開鍵（ｐｋ）を記憶する。
上記類似度算出装置の一時公開鍵生成部（乱数生成部３０３；暗号化乱数生成部３０４）は、上記類似度算出装置の処理装置（９１１）を用いて、整数（Ｒ１，ｉ）を成分とするＴ次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により０を変換した暗号文（ｏ’ｉ）を成分とするＴ次元ベクトルをランダムに生成して、零暗号文（暗号化零ベクトルＯ’）とし、上記類似度算出装置の比較暗号文記憶部（暗号化データ記憶部３１２）が記憶した比較暗号文と、生成した一時秘密鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記比較暗号文の各成分Ｒｉ個（Ｒｉは、上記一時秘密鍵の対応する成分である整数。）と、上記零暗号文の対応する成分とを結合した暗号文を成分とするＴ次元ベクトルを算出して、上記一時公開鍵（第一チャレンジＲ）とする。
上記暗号化装置（証明装置１０１；端末装置１１１）の対象二重暗号文算出部（暗号化データ埋め込み部２１７）は、上記暗号化装置の処理装置（９１１）を用いて、上記暗号化装置の公開鍵記憶部（２１２）が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により０を変換した暗号文（ｏｉ）を成分とするＴ次元ベクトルをランダムに生成して、零暗号文（暗号化零ベクトルＯ）とし、上記暗号化装置の対象データ取得部（特徴ベクトル形成部２１４）が取得した対象データと、上記暗号化装置の一時公開鍵取得部（第一チャレンジ受信部２１１）が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分ｂ’ｉ個（ｂ’ｉは、上記対象データの対応する成分である整数。）と、上記零暗号文の対応する成分とを結合した暗号文を成分とするＴ次元ベクトルを算出して、上記対象二重暗号文（第一レスポンスＲ’）とする。
上記類似度算出装置の対象暗号文取得部（暗号化データ抽出部３０５）は、一時復号鍵算出部（逆数算出部３５１）と、対象暗号文算出部（累乗算出部３５３）とを有する。
上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数（κｉ）を成分とするＴ次元ベクトルを算出して、一時復号鍵とする。
上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部（第一チャレンジ送信部３１１）が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分をＲｉ−１個（Ｒｉ−１は、上記一時復号鍵の対応する成分である逆数。）結合した暗号文を成分とするＴ次元ベクトルを算出して、上記対象暗号文（暗号化特徴ベクトルＣ’）とする。
【０３５０】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記類似度算出装置（認証装置１０２；検索装置１１２）の類似度途中暗号文算出部（暗号化ランダム類似度算出部３１４）は、乱数平文生成部（暗号化鍵生成部３６６）と、暗号文算出部（整数結合部３８６）とを有する。
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置（９１１）を用いて、整数（ｔ１，ｉ）を成分とするＴ次元ベクトルをランダムに生成して、乱数平文（撹乱ベクトルт）とする。
上記類似度算出装置の一時鍵生成部（乱数記憶部３２２）は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の乱数平文生成部が生成した乱数平文の成分の総和（Σｉ［ｔ１，ｉ］）を算出し、算出した総和を上記一時鍵とする。
上記類似度算出装置の暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象暗号文取得部（暗号化データ抽出部３０５）が取得した対象暗号文（暗号化特徴ベクトルＣ’）と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算により、上記対象暗号文の各成分と、上記乱数平文の対応する成分とを結合した暗号文を成分とするＴ次元ベクトルを算出して、類似度途中暗号文（第二チャレンジＣ＾）とする。
【０３５１】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記類似度算出装置（認証装置１０２；検索装置１１２）の一時鍵生成部（乱数生成部３０３）は、上記類似度算出装置の処理装置（９１１）を用いて、整数（ｓ１）をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部（暗号化ランダム類似度算出部３１４）は、第一暗号文算出部（並べ替え部３８５）と、第二暗号文算出部（暗号化鍵生成部３６６）とを有する。
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象暗号文取得部（暗号化データ抽出部３０５）が取得した対象暗号文（暗号化特徴ベクトルＣ’）に基づいて、上記対象暗号文の成分の順序をランダムに入れ換えたＴ次元ベクトルを算出して、第一の類似度途中暗号文とする。
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部（３０２）が記憶した公開鍵（ｐｋ）と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文を算出して、第二の類似度途中暗号文とする。
上記類似度算出装置の類似度途中暗号文通知部（第二チャレンジ送信部３２１）は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置（１０３）に対して通知する。
【０３５２】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記復号装置（１０３）の類似度途中復号文算出部（復号部４０４）は、上記復号装置の処理装置（９１１）を用いて、上記復号装置の類似度途中暗号文取得部（第二チャレンジ受信部４０２）が取得した２つの類似度途中暗号文に基づいて、上記第一の類似度途中暗号文のＴ個の成分をそれぞれ復号して得られる整数の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりｚ個（ｚは、上記第一の類似度途中暗号文のＴ個の成分をそれぞれ復号して得られる整数の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。）結合した元を算出して、上記類似度途中復号文（第二レスポンスＺ）とする。
【０３５３】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記類似度算出装置（認証装置１０２；検索装置１１２）の一時鍵生成部（乱数生成部３０３）は、上記類似度算出装置の処理装置（９１１）を用いて、整数（ｓ１）をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部（暗号化ランダム類似度算出部３１４）は、上記類似度算出装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部（３０２）が記憶した公開鍵（ｐｋ）と、上記類似度算出装置の対象暗号文取得部（暗号化データ抽出部３０５）が取得した対象暗号文（暗号化特徴ベクトルＣ’）と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により上記一時鍵を変換した暗号文と、上記対象暗号文のＴ個の成分とを、上記暗号文の演算により結合した暗号文を算出して、上記類似度途中暗号文（第二チャレンジＣ＾）とする。
【０３５４】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記復号装置（１０３）の類似度途中復号文算出部（復号部４０４）は、上記復号装置の処理装置（９１１）を用いて、上記復号装置の類似度途中暗号文取得部（第二チャレンジ受信部４０２）が取得した類似度途中暗号文（第二チャレンジＣ＾）に基づいて、上記類似度途中暗号文を復号して得られる整数、または、所定の有限群の所定の元を上記所定の有限群の群演算によりｚ個（ｚは、上記類似度途中暗号文を復号して得られる整数。）結合した元を算出して、上記類似度途中復号文（第二レスポンスＺ）とする。
【０３５５】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記類似度途中復号文（第二レスポンスＺ）は、整数である。
上記類似度算出装置（認証装置１０２；検索装置１１２）の一時鍵生成部（乱数生成部３０３）は、上記類似度算出装置の処理装置（９１１）を用いて、整数（ｕ１；ｓ１）をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度算出部（平文類似度抽出部３１５）は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部（第二レスポンス受信部３４１）が取得した類似度途中復号文とに基づいて、上記一時鍵と、上記類似度途中復号文との和または差を算出して、上記類似度（ｄ）とする。
【０３５６】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記類似度途中復号文（第二レスポンスＺ）は、所定の有限群（ＧＴ）の元である。
上記類似度算出装置の一時鍵生成部（乱数生成部３０３）は、上記類似度算出装置の処理装置（９１１）を用いて、整数（ｕ１；ｓ１）をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度算出部（平文類似度抽出部３１５）は、類似度復号文算出部（元結合部３７２）と、離散対数算出部（３７３）とを有する。
上記類似度算出装置の類似度復号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部（第二レスポンス受信部３４１）が取得した類似度途中復号文とに基づいて、上記所定の有限群の群演算により、上記所定の有限群の所定の元（ｅ（ь１，ь１）；π）ｕ個（ｕは、上記一時鍵である整数。）と、上記類似度途中復号文とを結合した元を算出して、類似度復号文（復号類似度元Ｚ’）とする。
上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の類似度復号文が算出した類似度復号文に基づいて、上記所定の有限群の群演算により、上記所定の元を何個結合したら、上記類似度復号文と一致するかを算出して、上記類似度（ｄ）とする。
【０３５７】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）において、
上記類似度算出装置（認証装置１０２；検索装置１１２）の離散対数算出部（３７３）は、上記類似度算出装置の処理装置（９１１）を用いて、上記類似度（ｄ）が、所定の範囲内の整数である場合に、上記類似度を算出し、上記類似度が、上記所定の範囲外である場合に、上記類似度が上記所定の範囲外であることを判定する。
【０３５８】
以上説明した類似度算出システム（生体認証システム１００；画像検索システム１１０）は、更に、登録装置（１０４）を有する。
上記登録装置は、データを記憶する記憶装置（９１４）と、データを処理する処理装置（９１１）と、公開鍵記憶部（２０２）と、比較データ取得部（特徴ベクトル形成部２０４）と、比較暗号文算出部（暗号化データ生成部２０６）と、比較暗号文通知部（暗号化データ送信部２０１）とを有する。
上記登録装置の公開鍵記憶部は、上記登録装置の記憶装置を用いて、上記復号装置（１０３）が記憶した秘密鍵（ｓｋ）に対応する公開鍵（ｐｋ）を記憶する。
上記登録装置の比較データ取得部は、上記登録装置の処理装置を用いて、比較データ（特徴ベクトルｂ）を取得する。
上記登録装置の比較暗号文算出部は、上記登録装置の処理装置を用いて、上記登録装置の公開鍵記憶部が記憶した公開鍵と、上記登録装置の比較データ取得部が取得した比較データとに基づいて、上記公開鍵を使った暗号化変換により上記比較データを変換することにより、比較暗号文（暗号化特徴ベクトルＣ）を算出する。
上記登録装置の比較暗号文通知部は、上記登録装置の処理装置を用いて、上記登録装置の比較暗号文算出部が算出した比較暗号文を上記類似度算出装置（認証装置１０２；検索装置１１２）に対して通知する。
上記類似度算出装置は、更に、比較暗号文取得部（暗号化データ受信部３０１）を有する。
上記類似度算出装置の比較暗号文取得部は、上記類似度算出装置の処理装置（９１１）を用いて、上記登録装置から通知された比較暗号文を取得する。
上記類似度算出装置の比較暗号文記憶部（暗号化データ記憶部３１２）は、上記類似度算出装置の記憶装置（９１４）を用いて、上記類似度算出装置の比較暗号文取得部が取得した比較暗号文を記憶する。
【０３５９】
以上説明した類似度算出装置及び類似度算出システム及びコンピュータプログラム及び類意度算出方法によれば、データが暗号化されたままの状態で、データ間の類似度を算出することができるとともに、その過程で、元のデータについての情報や、なりすましに利用される情報などが漏れるのを防ぐことができる。
【符号の説明】
【０３６０】
１００  生体認証システム、１０１  証明装置、１０２  認証装置、１０３  復号装置、１０４  登録装置、１１０  画像検索システム、１１１  端末装置、１１２  検索装置、２０１，２２２  暗号化データ送信部、２０２，２１２，３０２，４０３  公開鍵記憶部、２０３，２１３  生体情報抽出部、２０４，２１４  特徴ベクトル形成部、２０５，２１５，３０３  乱数生成部、２０６，２１６  暗号化データ生成部、２０８，２１８，３０８  公開鍵受信部、２０９，２１９  画像入力部、２１１  第一チャレンジ受信部、２１７  暗号化データ埋め込み部、２２１  第一レスポンス送信部、２２３  結果受信部、２２４  結果出力部、２２６  画像暗号化部、２２８  暗号化画像送信部、２３１，３５２，３６４  スカラー倍算出部、２３２，３３２  零生成部、２３３，３６３  ベクトル結合部、２３４，３５３，３８４，３３４  累乗算出部、２３５，３７０，３７２，４７５  元結合部、２３６，３３６，３８６，４８５  整数結合部、３０１，３２５  暗号化データ受信部、３０４  暗号化乱数生成部、３０５  暗号化データ抽出部、３０６  判定部、３１１  第一チャレンジ送信部、３１２  暗号化データ記憶部、３１４  暗号化ランダム類似度算出部、３１５  平文類似度抽出部、３２１  第二チャレンジ送信部、３２２  乱数記憶部、３２３  結果送信部、３３１  第一レスポンス受信部、３４１  第二レスポンス受信部、３５１  逆数算出部、３６１  差分算出部、３６２  撹乱ベクトル生成部、３６５  二乗和算出部、３６６  暗号化鍵生成部、３６７  ベクトル累計部、３６８，３８１，３８２，４７３  二乗算出部、３７１，４７４  群変換部、３７３  離散対数算出部、３８３  積算出部、３８５  並べ替え部、４０１  鍵生成部、４０２  第二チャレンジ受信部、４０４  復号部、４０８  公開鍵送信部、４１２  第二レスポンス送信部、４１３  秘密鍵記憶部、４２１，４３１  群決定部、４２２  標準基底設定部、４２３  乱数生成部、４２４  行列式算出部、４２５  正則行列設定部、４２６  ランダム基底算出部、４３２  生成元選択部、４３３  生成元累乗部、４３４  底算出部、４４１  素数決定部、４４２  積算出部、４４３  公倍数算出部、４７１  逆行列算出部、４７２  ベクトル分解部、４８１  逆数算出部、４８２  復号整数算出部、９１１  処理装置、９１２  入力装置、９１３  出力装置、９１４  記憶装置、Ａ  標準基底、Ｂ  ランダム基底、ｂ，ｂ’  特徴ベクトル、Ｃ，Ｃ’  暗号化特徴ベクトル、Ｃ＾  第二チャレンジ、ΔＣ  暗号化差分ベクトル、ΔＣ’  暗号化二乗ベクトル、ｄ  類似度、ｄ０  閾値、Ｆｑ  有限体、Ｇ，ＧＴ  有限群、ｇ  生成元、Ｏ，Ｏ’  暗号化零ベクトル、ｐｋ  公開鍵、Ｒ  第一チャレンジ、Ｒ’  第一レスポンス、Я  ベクトル、Я’  累乗ベクトル、Ｓ５００  セットアップ処理、Ｓ５０１  鍵生成工程、Ｓ５０２  公開鍵通知工程、Ｓ５０３，Ｓ５０４，Ｓ５０５  公開鍵取得工程、Ｓ５１１，Ｓ５２１  群決定工程、Ｓ５１２  標準基底設定工程、Ｓ５１３  行列生成工程、Ｓ５１４  正則判定工程、Ｓ５１５  ランダム基底算出工程、Ｓ５２２  生成元選択工程、Ｓ５２３  生成元累乗工程、Ｓ５２４  底算出工程、Ｓ５３１  素数決定工程、Ｓ５３２，Ｓ７５４  積算出工程、Ｓ５３３  公倍数��出工程、Ｓ５４０  ベクトル分解処理、Ｓ５４１，Ｓ５６１  逆行列算出工程、Ｓ５４２  第一初期化工程、Ｓ５４３  第一繰り返し工程、Ｓ５４４  第二初期化工程、Ｓ５４５  第二繰り返し工程、Ｓ５４６  第三初期化工程、Ｓ５４７  第三繰り返し工程、Ｓ５４８  係数累計工程、Ｓ５４９  写像計算工程、Ｓ５５０  スカラー倍工程、Ｓ５５１，Ｓ７４７，Ｓ７５１  ベクトル累計工程、Ｓ５６０，Ｓ６１０，Ｓ６６０，Ｓ７２９，Ｓ７３０，Ｓ７４０  初期化工程、Ｓ５６１ａ，Ｓ６９０，Ｓ７３２  逆数算出工程、Ｓ５６２，Ｓ６１１，Ｓ６６１，Ｓ７２１，Ｓ７３１，Ｓ７４１  繰り返し工程、Ｓ５６３，Ｓ５６６  ベクトル分解工程、Ｓ５６３ａ，Ｓ５６６ａ  復号整数算出工程、Ｓ５６４，Ｓ７５３  二乗算出工程、Ｓ５６５，Ｓ６６５ａ，Ｓ６９２  元結合工程、Ｓ５６５ａ，Ｓ６６５ｂ，Ｓ６９２ａ，Ｓ７２６，Ｓ７６０  整数結合工程、Ｓ５６７，Ｓ６９１  群変換工程、Ｓ５７１，Ｓ６６２ａ，Ｓ７２４，Ｓ７３３ａ，Ｓ７５２ａ，Ｓ７５５  累乗算出工程、Ｓ６００  登録処理、Ｓ６０１，Ｓ７０５  生体情報抽出工程、Ｓ６０２，Ｓ７０６  特徴ベクトル生成工程、Ｓ６０３  特徴ベクトル暗号化工程、Ｓ６０４  暗号化生体情報通知工程、Ｓ６０５  暗号化生体情報取得工程、Ｓ６１２，Ｓ６６３，Ｓ７２２，Ｓ７４３，Ｓ７４９，Ｓ７５７，Ｓ７５８  乱数生成工程、Ｓ６１３，Ｓ７２３  ベクトル算出工程、Ｓ６１３ａ，Ｓ７２３ａ  元算出工程、Ｓ６１３ｂ，Ｓ７２３ｂ  整数算出工程、Ｓ６６２，Ｓ７３３，Ｓ７４６  スカラー倍算出工程、Ｓ６６４，Ｓ７２５  零生成工程、Ｓ６６５，Ｓ７４５  ベクトル結合工程、Ｓ６９３  離散対数算出工程、Ｓ７００  認証処理、Ｓ７０１  第一チャレンジ生成工程、Ｓ７０２，Ｓ７１３  乱数記憶工程、Ｓ７０３  第一チャレンジ通知工程、Ｓ７０４  第一チャレンジ取得工程、Ｓ７０７  第一レスポンス生成工程、Ｓ７０８  第一レスポンス通知工程、Ｓ７０９  第一レスポンス取得工程、Ｓ７１０  暗号化生体情報抽出工程、Ｓ７１１  暗号化生体情報読出し工程、Ｓ７１２  第二チャレンジ生成工程、Ｓ７１４  第二チャレンジ通知工程、Ｓ７１５  第二チャレンジ取得工程、Ｓ７１６  第二レスポンス生成工程、Ｓ７１７  第二レスポンス通知工程、Ｓ７１８  第二レスポンス取得工程、Ｓ７１９  平文類似度算出工程、Ｓ７２０  認証判定工程、Ｓ７４２，Ｓ７４２ａ，Ｓ７４２ｂ  差分算出工程、Ｓ７４４  撹乱ベクトル生成工程、Ｓ７４８  二乗累計工程、Ｓ７４８ａ  元累計工程、Ｓ７５０  暗号化鍵生成工程、Ｓ７５２  暗号化鍵生成工程、Ｓ７５９  第二チャレンジ設定工程、ｓｋ  秘密鍵、т  撹乱ベクトル、Ц  復号鍵、ц  暗号化鍵、ц１，ц２  累乗元、Ｖ  ベクトル空間、ш  逆元、Ｘ  正則行列、Ｘ−１  逆行列、Ｚ  第二レスポンス、Ｚ’  復号類似度元、Ж  第一暗号化二乗ベクトル、Ж’  第二暗号化二乗ベクトル。
【図１】
2012114452.tif 000003
【図２】
2012114452.tif 000004
【図３】
2012114452.tif 000005
【図４】
2012114452.tif 000006
【図５】
2012114452.tif 000007
【図６】
2012114452.tif 000008
【図７】
2012114452.tif 000009
【図８】
2012114452.tif 000010
【図９】
2012114452.tif 000011
【図１０】
2012114452.tif 000012
【図１１】
2012114452.tif 000013
【図１２】
2012114452.tif 000014
【図１３】
2012114452.tif 000015
【図１４】
2012114452.tif 000016
【図１５】
2012114452.tif 000017
【図１６】
2012114452.tif 000018
【図１７】
2012114452.tif 000019
【図１８】
2012114452.tif 000020
【図１９】
2012114452.tif 000021
【図２０】
2012114452.tif 000022
【図２１】
2012114452.tif 000023
【図２２】
2012114452.tif 000024
【図２３】
2012114452.tif 000025
【図２４】
2012114452.tif 000026
【図２５】
2012114452.tif 000027
【図２６】
2012114452.tif 000028
【図２７】
2012114452.tif 000029
【図２８】
2012114452.tif 000030
【図２９】
2012114452.tif 000031
【図３０】
2012114452.tif 000032
【図３１】
2012114452.tif 000033
【図３２】
2012114452.tif 000034
【図３３】
2012114452.tif 000035
【図３４】
2012114452.tif 000036
【図３５】
2012114452.tif 000037
【図３６】
2012114452.tif 000038
【図３７】
2012114452.tif 000039
【図３８】
2012114452.tif 000040
【図３９】
2012114452.tif 000041
【図４０】
2012114452.tif 000042
【図４１】
2012114452.tif 000043
【図４２】
2012114452.tif 000044
【図４３】
2012114452.tif 000045
【図４４】
2012114452.tif 000046
【図４５】
2012114452.tif 000047
【図４６】
2012114452.tif 000048
【図４７】
2012114452.tif 000049
【図４８】
2012114452.tif 000050
【図４９】
2012114452.tif 000051
【図５０】
2012114452.tif 000052
【図５１】
2012114452.tif 000053
【図５２】
2012114452.tif 000054
【図５３】
2012114452.tif 000055
【図５４】
2012114452.tif 000056
【図５５】
2012114452.tif 000057
【図５６】
2012114452.tif 000058
【図５７】
2012114452.tif 000059
【図５８】
2012114452.tif 000060
【図５９】
2012114452.tif 000061
【図６０】
2012114452.tif 000062
【図６１】
2012114452.tif 000063
【図６２】
2012114452.tif 000064
【図６３】
2012114452.tif 000065
【図６４】
2012114452.tif 000066
【図６５】
2012114452.tif 000067
【図６６】
2012114452.tif 000068
【図６７】
2012114452.tif 000069
【図６８】
2012114452.tif 000070
【図６９】
2012114452.tif 000071
【図７０】
2012114452.tif 000072
【図７１】
2012114452.tif 000073
【図７２】
2012114452.tif 000074
【図７３】
2012114452.tif 000075
【図７４】
2012114452.tif 000076
【図７５】
2012114452.tif 000077
【図７６】
2012114452.tif 000078
【図７７】
2012114452.tif 000079
【図７８】
2012114452.tif 000080
【図７９】
2012114452.tif 000081
【図８０】
2012114452.tif 000082
【図８１】
2012114452.tif 000083
【手続補正書】
【提出日】平成25年4月2日(2013.4.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
比較データと対象データとの類似度を算出する類似度算出装置において、
データを記憶する記憶装置と、データを処理する処理装置と、比較暗号文記憶部と、対象暗号文取得部と、一時鍵生成部と、類似度途中暗号文算出部と、類似度途中暗号文通知部と、類似度途中復号文取得部と、類似度算出部とを有し、
上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、
上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、
上記一時鍵生成部は、上記処理装置を用いて、一時鍵を生成し、
上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文を算出し、
上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知し、
上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文を取得し、
上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする類似度算出装置。
【請求項２】
上記類似度算出装置は、更に、一時秘密鍵生成部と、対象二重暗号文取得部と、一時秘密鍵記憶部とを有し、
上記一時秘密鍵生成部は、上記処理装置を用いて、一時秘密鍵と、上記一時秘密鍵に対応する一時公開鍵とを生成し、
上記対象二重暗号文取得部は、上記処理装置を用いて、上記一時秘密鍵生成部が生成した一時公開鍵を使って暗号化された対象二重暗号文を取得し、
上記対象暗号文取得部は、上記処理装置を用いて、上記一時秘密鍵記憶部が記憶した一時秘密鍵と、上記対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使って上記対象二重暗号文を復号することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得することを特徴とする請求項１に記載の類似度算出装置。
【請求項３】
請求項１に記載の類似度算出装置と、復号装置とを有し、
上記復号装置は、データを記憶する記憶装置と、データを処理する処理装置と、秘密鍵記憶部と、類似度途中暗号文取得部と、類似度途中復号文算出部と、類似度途中復号文通知部とを有し、
上記復号装置の秘密鍵記憶部は、上記復号装置の記憶装置を用いて、秘密鍵を記憶し、
上記復号装置の類似度途中暗号文取得部は、上記復号装置の処理装置を用いて、上記類似度算出装置から通知された類似度途中暗号文を取得し、
上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の秘密鍵記憶部が記憶した秘密鍵と、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、上記類似度途中復号文を算出し、
上記復号装置の類似度途中復号文通知部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中復号文算出部が算出した類似度途中復号文を上記類似度算出装置に対して通知することを特徴とする類似度算出システム。
【請求項４】
上記比較データ及び上記対象データは、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記類似度算出装置の類似度途中暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、上記比較データと上記対象データとの間の対応する成分の差または積を計算し、
上記復号装置の類似度途中暗号文算出部は、上記復号装置の処理装置を用いて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、上記類似度を計算し、
上記類似度算出装置の類似度算出部は、上記類似度算出装置の処理装置を用いて、上記類似度途中復号文を復号することにより、上記類似度を取得することを特徴とする請求項３に記載の類似度算出システム。
【請求項５】
上記暗号化変換は、整数を暗号文に変換する変換であって、上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算が計算可能であり、任意の第一の整数を変換した暗号文と、任意の第二の整数を変換した暗号文とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和を変換した暗号文になることを特徴とする請求項３に記載の類似度算出システム。
【請求項６】
上記比較データ及び上記対象データは、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度途中暗号文算出部は、乱数平文生成部と、第一暗号文算出部と、第二暗号文算出部とを有し、
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするＴ次元ベクトルをランダムに生成して、乱数平文とし、
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出し、上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文を算出し、上記第二の類似度途中暗号文は、補正値と、上記一時鍵との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文であり、上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の２倍と、上記乱数平文の各成分の２乗とを、すべての成分について合計した整数であり、
上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項５に記載の類似度算出システム。
【請求項７】
上記比較データ及び上記対象データは、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度途中暗号文算出部は、第一暗号文算出部と、第二暗号文算出部とを有し、
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出し、上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差を、上記公開鍵を使った上記暗号化変換により変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文を、第二の類似度途中暗号文とし、
上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項５に記載の類似度算出システム。
【請求項８】
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記比較データの成分から上記対象データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文、及び、上記対象データの成分から上記比較データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文のうちから、各成分ごとにランダムに選択した暗号文を成分とし、成分の順序をランダムに入れ換えたＴ次元ベクトルを、上記第一の類似度途中暗号文とすることを特徴とする請求項７に記載の類似度算出システム。
【請求項９】
上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中暗号文取得部が取得した２つの類似度途中暗号文に基づいて、上記第一の類似度途中暗号文のＴ個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりｚ個（ｚは、上記第一の類似度途中暗号文のＴ個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。）結合した元を算出して、上記類似度途中復号文とすることを特徴とする請求項６乃至請求項８のいずれかに記載の類似度算出システム。
【請求項１０】
上記比較データ及び上記対象データは、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするＴ次元ベクトルであり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度途中暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記暗号文の演算を使って、上記類似度途中暗号文を算出し、上記類似度途中暗号文は、合計値と上記一時鍵との和または差を、上記公開鍵を使った暗号化変換により変換した暗号文であり、上記合計値は、上記比較データの各成分と上記対象データの対応する成分との差の二乗、または、上記比較データの各成分と上記対象データの対応する成分との積を、すべての成分について合計した整数であることを特徴とする請求項５に記載の類似度算出システム。
【請求項１１】
上記類似度算出システムは、更に、暗号化装置を有し、
上記暗号化装置は、データを記憶する記憶装置と、データを処理する処理装置と、公開鍵記憶部と、対象データ取得部と、一時公開鍵取得部と、対象二重暗号文算出部と、対象二重暗号文通知部とを有し、
上記暗号化装置の公開鍵記憶部は、上記暗号化装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記暗号化装置の対象データ取得部は、上記暗号化装置の処理装置を用いて、対象データを取得し、
上記暗号化装置の一時公開鍵取得部は、上記暗号化装置の処理装置を用いて、上記類似度算出装置から通知された一時公開鍵を取得し、
上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵と、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵とに基づいて、上記公開鍵と上記一時公開鍵とを使った第二の暗号化変換により上記対象データを変換することにより、対象二重暗号文を算出し、
上記暗号化装置の対象二重暗号文通知部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の対象二重暗号文算出部が算出した対象二重暗号文を上記類似度算出装置に対して通知し、
上記類似度算出装置は、更に、一時秘密鍵生成部と、一時公開鍵通知部と、対象二重暗号文取得部とを有し、
上記類似度算出装置の一時秘密鍵生成部は、上記類似度算出装置の処理装置を用いて、一時秘密鍵と、上記一時秘密鍵に対応する一時公開鍵とを生成し、
上記類似度算出装置の一時公開鍵通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時公開鍵を上記暗号化装置に対して通知し、
上記類似度算出装置の対象二重暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記暗号化装置から通知された対象二重暗号文を取得し、
上記類似度算出装置の対象暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵と、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使った第二の復号変換により上記対象二重暗号文を変換することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を算出することを特徴とする請求項３に記載の類似度算出システム。
【請求項１２】
上記暗号化変換は、整数を暗号文に変換する変換であって、上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算が計算可能であり、任意の第一の整数を変換した暗号文と、任意の第二の整数を変換した暗号文とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和を変換した暗号文になり、
上記対象データは、整数を成分とするＴ次元ベクトル（Ｔは、１以上の整数。）であり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時公開鍵生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするＴ次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、生成した一時秘密鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時秘密鍵の各成分を変換した暗号文を成分とするＴ次元ベクトルを算出して、上記一時公開鍵とし、
上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により０を変換した暗号文を成分とするＴ次元ベクトルをランダムに生成して、零暗号文とし、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分ｂ’ｉ個（ｂ’ｉは、上記対象データの対応する成分である整数。）と、上記零暗号文の対応する成分とを結合した暗号文を成分とするＴ次元ベクトルを算出して、上記対象二重暗号文とし、
上記類似度算出装置の対象暗号文取得部は、一時復号鍵算出部と、対象暗号文算出部とを有し、
上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数を成分とするＴ次元ベクトルを算出して、一時復号鍵とし、
上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分をＲｉ−１個（Ｒｉ−１は、上記一時復号鍵の対応する成分である逆数。）結合した暗号文を成分とするＴ次元ベクトルを算出して、上記対象暗号文とすることを特徴とする請求項１１に記載の類似度算出システム。
【請求項１３】
上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文に基づいて、上記類似度途中暗号文を復号して得られる整数、または、所定の有限群の所定の元を上記所定の有限群の群演算によりｚ個（ｚは、上記類似度途中暗号文を復号して得られる整数。）結合した元を算出して、上記類似度途中復号文とすることを特徴とする請求項１０に記載の類似度算出システム。
【請求項１４】
上記類似度途中復号文は、整数であり、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵と、上記類似度途中復号文との和または差を算出して、上記類似度とすることを特徴とする請求項３乃至請求項８及び請求項１０乃至請求項１２のいずれかに記載の類似度算出システム。
【請求項１５】
上記類似度途中復号文は、所定の有限群の元であり、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度算出部は、類似度復号文算出部と、離散対数算出部とを有し、
上記類似度算出装置の類似度復号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記所定の有限群の群演算により、上記所定の有限群の所定の元ｕ個（ｕは、上記一時鍵である整数。）と、上記類似度途中復号文とを結合した元を算出して、類似度復号文とし、
上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の類似度復号文が算出した類似度復号文に基づいて、上記所定の有限群の群演算により、上記所定の元を何個結合したら、上記類似度復号文と一致するかを算出して、上記類似度とすることを特徴とする請求項３乃至請求項８及び請求項１０乃至請求項１２のいずれかに記載の類似度算出システム。
【請求項１６】
上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度が、所定の範囲内の整数である場合に、上記類似度を算出し、上記類似度が、上記所定の範囲外である場合に、上記類似度が上記所定の範囲外であることを判定することを特徴とする請求項１５に記載の類似度算出システム。
【請求項１７】
上記類似度算出システムは、更に、登録装置を有し、
上記登録装置は、データを記憶する記憶装置と、データを処理する処理装置と、公開鍵記憶部と、比較データ取得部と、比較暗号文算出部と、比較暗号文通知部とを有し、
上記登録装置の公開鍵記憶部は、上記登録装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記登録装置の比較データ取得部は、上記登録装置の処理装置を用いて、比較データを取得し、
上記登録装置の比較暗号文算出部は、上記登録装置の処理装置を用いて、上記登録装置の公開鍵記憶部が記憶した公開鍵と、上記登録装置の比較データ取得部が取得した比較データとに基づいて、上記公開鍵を使った暗号化変換により上記比較データを変換することにより、比較暗号文を算出し、
上記登録装置の比較暗号文通知部は、上記登録装置の処理装置を用いて、上記登録装置の比較暗号文算出部が算出した比較暗号文を上記類似度算出装置に対して通知し、
上記類似度算出装置は、更に、比較暗号文取得部を有し、
上記類似度算出装置の比較暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記登録装置から通知された比較暗号文を取得し、
上記類似度算出装置の比較暗号文記憶部は、上記類似度算出装置の記憶装置を用いて、上記類似度算出装置の比較暗号文取得部が取得した比較暗号文を記憶することを特徴とする請求項３乃至請求項８及び請求項１０乃至請求項１２のいずれかに記載の類似度算出システム。
【請求項１８】
データを記憶する記憶装置と、データを処理する処理装置とを有するコンピュータが実行することにより、上記コンピュータを請求項１または請求項２に記載の類似度算出装置として機能させることを特徴とするコンピュータプログラム。
【請求項１９】
類似度算出装置と、復号装置とを有する類似度算出システムが、比較データと対象データとの類似度を算出する類似度算出方法において、
上記類似度算出装置及び上記復号装置は、データを記憶する記憶装置と、データを処理する処理装置とを有し、
上記復号装置の記憶装置が、秘密鍵を記憶し、
上記類似度算出装置の記憶装置が、上記復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、
上記類似度算出装置の処理装置が、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、
上記類似度算出装置の処理装置が、一時鍵を生成し、
上記類似度算出装置の処理装置が、上記類似度算出装置の記憶装置が記憶した比較暗号文と、上記類似度算出装置の処理装置が取得した対象暗号文と、上記類似度算出装置の処理装置が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵で暗号化した類似度途中暗号文を算出し、
上記類似度算出装置の処理装置が、上記類似度算出装置の処理装置が算出した類似度途中暗号文を上記復号装置に対して通知し、
上記復号装置の処理装置が、上記類似度算出装置から通知された類似度途中暗号文を取得し、
上記復号装置の処理装置が、上記復号装置の記憶装置が記憶した秘密鍵と、上記復号装置の処理装置が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、類似度途中復号文を算出し、
上記復号装置の処理装置が、上記復号装置の処理装置が算出した類似度途中復号文を上記類似度算出装置に対して通知し、
上記類似度算出装置の処理装置が、上記復号装置から通知された類似度途中復号文を取得し、
上記類似度算出装置の処理装置が、上記類似度算出装置の処理装置が生成した一時鍵と、上記類似度算出装置の処理装置が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする類似度算出方法。
【国際調査報告】
2012114452.tif 000084
2012114452.tif 000085