(57)【特許請求の範囲】
【請求項１】
個人の生体情報の特徴量配列同士の相互相関に基づいて個人を認証する、処理装置と記憶装置を備えたコンピュータによる生体認証方法において、
生体情報の登録時に、
前記処理装置が、検出装置によって検出された登録者の生体情報から登録用特徴量配列を抽出し、前記記憶装置に格納する抽出ステップと、
前記処理装置が、ランダムな値に基づいて各要素毎にランダムな値を持つ変換フィルタ配列を生成し、前記記憶装置に格納する生成ステップと、
前記処理装置が、前記記憶装置上の前記登録用特徴量配列を、前記記憶装置上の前記変換フィルタ配列を用いて変換し、その結果として前記記憶装置上に登録用変換特徴量配列を計算する変換ステップとを含み、
認証時に、
前記処理装置が、検出装置によって検出された利用者の生体情報から認証用特徴量配列を抽出し、前記記憶装置に格納する抽出ステップと、
前記処理装置が、所定の定義域においてランダムな値を持つマスク関数を生成し、前記記憶装置に格納する生成ステップと、
前記処理装置が、前記記憶装置上の前記認証用特徴量配列と、前記記憶装置上の前記変換フィルタ配列と、前記記憶装置上の前記登録用変換特徴量配列と、前記記憶装置上の前記マスク関数を用いて、前記登録用特徴量配列を復元することなく、かつ処理過程において前記登録用特徴量配列と前記認証用特徴量配列との相互相関関数を生成することなく、前記相互相関関数と前記マスク関数との和関数であるマスクつき相互相関関数を計算し、前記記憶装置に格納する計算ステップと、
前記処理装置が、前記記憶装置上の前記マスク付き相互相関関数から、前記登録用特徴量配列と前記認証用特徴量配列の類似度を計算し、その類似度に基づいて一致／不一致を判定する判定ステップとを含むことを特徴とする生体認証方法。
【請求項２】
生体情報を取得する認証端末と、前記認証端末により取得された生体情報に基づいて利用者を認証する認証サーバとを備えた生体認証システムにおいて、
前記認証端末は、
前記認証サーバとの通信手段と、
利用者の生体情報を取得する手段と、
前記生体情報から認証用特徴量配列を抽出する手段と、
所定の定義域においてランダムな値を持つマスク関数を生成する生成手段と、
前記認証用特徴量配列と変換フィルタ配列と前記マスク関数とを用いて、所定の登録用特徴量配列を知ることなく、前記登録用特徴量配列と前記認証用特徴量配列との相互相関関数と前記マスク関数との和関数であるマスクつき相互相関関数を前記認証サーバに開示するように計算を行う計算手段とを持ち、
前記認証サーバは、
前記認証端末との通信手段と、
前記登録用特徴量配列と前記認証用特徴量配列と前記相互相関関数とのいずれをも知ることなく、前記マスクつき相互相関関数を計算する、計算手段と、
前記マスク付き相互相関関数から、前記登録用特徴量配列と前記認証用特徴量配列の類似度を計算し、その類似度に基づいて一致／不一致を判定する判定手段とを含むことを特徴とする、生体認証システム。
【請求項３】
生体情報の登録を行う登録端末を備え、
前記登録端末は、
登録者の生体情報を取得する取得手段と、
前記生体情報から登録用特徴量配列を抽出する抽出手段と、
ランダムな値に基づいて各要素毎にランダムな値を持つ一つ以上の変換フィルタ配列を生成する生成手段と、
前記登録用特徴量配列を、前記変換フィルタ配列を用いて変換し、登録用変換特徴量配列を計算する変換手段と、
前記登録用変換特徴量配列を前記認証サーバに対して発行する発行手段とを持つことを特徴とする、請求項２に記載の生体認証システム。
【請求項４】
前記変換フィルタ配列Ｋの各要素Ｋ［i］は、サイズが２以上の所定の整数ｄである、ｄ×ｄのランダムな正則行列であり、
前記登録用特徴量の変換手段は、
前記登録用特徴量配列を基底変換して登録用基底変換配列Ｘを計算し、
前記登録用基底変換配列Ｘの各ｉ番目の要素Ｘ［i］に対し、所定の（ｄ−２）次元ベクトル（ｕ３，・・・，ｕｄ）を用いてｄ次元ベクトルｕ［i］＝（Ｘ［i］，１，ｕ３，・・・，ｕｄ）を生成し、
前記変換フィルタ配列Ｋの各ｉ番目の要素である行列Ｋ［i］に対して逆行列Ｌ［i］を計算し、前記ｄ次元ベクトルｕ［i］を前記逆行列Ｌ［i］で変換してベクトルＴ［i］＝ｕ［i］Ｌ［i］を計算し、各i番目の要素を前記ベクトルＴ［i］とする登録用変換特徴量配列Ｔを作成し、
前記認証端末側秘密相互相関の計算手段は、
前記認証用特徴量配列を逆順にソートし、基底変換して認証用基底変換配列Ｙを計算し、
前記認証用基底変換配列Ｙの各ｉ番目の要素Ｙ［i］に対して、前記（ｄ−２）次元ベクトル（ｕ３，・・・，ｕｄ）と直交するベクトル（ｖ３，・・・，ｖｄ）をランダムに生成し、ｄ次元ベクトルｖ［i］＝（Ｙ［i］，Ｒ［i］，ｖ３，・・・，ｖｄ）を生成し、
前記マスク関数を基底変換して基底変換マスク配列Ｒを計算する手段と、
前記変換フィルタ配列Ｋの各ｉ番目の要素である行列Ｋ［i］に対し、その転置行列Ｍ［i］を計算し、
前記ｄ次元ベクトルｖ［i］を前記転置行列Ｍ［i］で変換してベクトルＶ［i］＝ｖ［i］Ｍ［i］を計算し、各i番目の要素を前記ベクトルＶ［i］とする認証用変換特徴量配列Ｖを作成し、
前記認証サーバ側秘密相互相関の計算手段は、
登録用変換特徴量配列Ｔと前記認証用変換特徴量配列Ｖの各ｉ番目の要素毎に、内積値Ｃ［i］＝Ｔ［i］・Ｖ［i］（＝Ｘ［i］×Ｙ［i］＋Ｒ［i］）を計算し、各i番目の要素を前記内積値Ｃ［ｉ］とする基底変換相関配列Ｃを計算し、
前記基底変換相関配列Ｃを逆基底変換し、前記マスクつき相互相関関数を計算することを特徴とする、請求項３に記載の生体認証システム。
【請求項５】
前記登録用特徴量の変換手段は、
前記登録用特徴量配列を基底変換して登録用基底変換配列Ｘを計算し、
前記変換フィルタ配列Ｋを用いて、各ｉ番目の要素毎にＴ［i］＝Ｘ［i］／Ｋ［i］なる値を持つ登録用変換特徴量配列Ｔを計算し、
前記認証端末側秘密相互相関の計算手段は、
前記認証用特徴量配列を逆順にソートし、基底変換して認証用基底変換配列Ｙを計算し、
前記マスク関数を基底変換して基底変換マスク配列Ｒを計算し、
前記変換フィルタ配列Ｋを用いて、各ｉ番目の要素毎にＶ［i］＝Ｙ［i］×Ｋ［i］なる値を持つ認証用変換特徴量配列Ｖを計算し、
前記認証サーバ側秘密相互相関の計算手段は、
所定の準同型暗号Ｅｎｃ（）を用いて、前記登録用変換特徴量配列Ｔの各i番目の要素毎にＥＴ［i］＝Ｅｎｃ（Ｔ［i］）なる値を持つ暗号化変換特徴量配列ＥＴを計算し、
前記暗号化変換特徴量配列ＥＴを前記認証端末に送信し、
前記認証端末側秘密相互相関の計算手段は、
前記暗号化変換特徴量配列ＥＴを受信し、
前記認証用変換特徴量配列Ｖと前記基底変換マスク配列Ｒと前記暗号化変換特徴量配列ＥＴとから、各i番目の要素毎に、前記準同型暗号Ｅｎｃ（）を用いてＥＣ［i］＝Ｅｎｃ（Ｔ［i］×Ｖ［i］＋Ｒ［i］）を計算し、暗号化基底変換相関配列ＥＣを計算し、
前記暗号化基底変換相関配列ＥＣを前記認証サーバに送信し、
前記認証サーバ側秘密相互相関の計算手段は、
前記暗号化基底変換相関配列ＥＣを受信し、
前記暗号化基底変換相関配列ＥＣの各i番目の要素毎に前記準同型暗号Ｅｎｃ（）に対する復号化を行い、Ｃ［i］＝Ｔ［i］×Ｖ［i］＋Ｒ［i］なる値を持つ基底変換相関配列Ｃを計算し、
前記基底変換相関配列Ｃを逆基底変換し、前記マスクつき相互相関関数を計算することを特徴とする、請求項３に記載の生体認証システム。
【請求項６】
前記基底変換は離散フーリエ変換であり、
前記逆基底変換は逆離散フーリエ変換であることを特徴とする、請求項４または５に記載の生体認証システム。
【請求項７】
前記基底変換は所定の有限体上で定義される数論変換であり、
前記逆基底変換は前記数論変換に対応する逆数論変換であり、
前記全ての四則演算および行列演算とベクトル演算は、前記有限体上の演算として計算することを特徴とする、請求項４または５に記載の生体認証システム。
【請求項８】
認証用の生体情報を予め登録された登録用の生体情報と照合するのに用いられるデータを生成するための、処理装置と記憶装置とを備えたコンピュータによる、生体認証方法において、
前記記憶装置が、巡回畳み込みの性質を持つ基底変換を定義する定義体上の整数によって構成された数値配列を前記基底変換によって変換して得たフィルタ配列を記憶し、
前記処理装置が、前記記憶装置上で、前記登録用の生体情報と前記認証用の生体情報とを演算したものに対してさらに前記フィルタ配列を演算して、前記データを生成することを特徴とする生体認証方法。
【請求項９】
認証用の生体情報を予め登録された登録用の生体情報と照合するのに用いられるデータを生成するための、処理装置と記憶装置とを備えた生体認証装置において、
前記記憶装置は、巡回畳み込みの性質を持つ基底変換を定義する定義体上の整数によって構成された数値配列を前記基底変換によって変換して得たフィルタ配列を記憶し、
前記処理装置は、前記記憶装置上で、前記登録用の生体情報と前記認証用の生体情報とを演算したものに対してさらに前記フィルタ配列を演算して、前記データを生成することを特徴とする生体認証装置。
【請求項１０】
前記数値配列を構成する整数は、前記定義体上のランダムな整数を含むことを特徴とする請求項９に記載の生体認証装置。
【請求項１１】
前記数値配列のうち、前記認証用の生体情報を所定の値にパディングした領域に関係する領域は、０または所定の範囲に含まれる乱数によってパディングされることを特徴とする請求項９に記載の生体認証装置。
【請求項１２】
前記データは、逆基底変換によって変換されて、前記認証用の生体情報と前記登録用の生体情報との照合を判定するための相互相関関数へ変換されることを特徴とする請求項９に記載の生体認証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、個人の生体情報を用いて本人を認証する生体認証方法およびシステムに関する。
【背景技術】
【０００２】
生体情報を用いた個人認証システムは、初期の登録時に個人の生体情報を取得し、特徴量と呼ばれる情報を抽出して登録する。この登録情報をテンプレートという。認証時には、再び個人から生体情報を取得して特徴量を抽出し、先に登録されたテンプレートと照合して本人か否かを確認する。
【０００３】
クライアントとサーバがネットワークを介して接続されたシステムにおいて、サーバがクライアント側にいるユーザを生体認証する場合、典型的にはサーバがテンプレートを保持する。クライアントは認証時にユーザの生体情報を取得し、特徴量を抽出してサーバへ送信し、サーバは特徴量をテンプレートと照合して本人か否かを確認する。
【０００４】
しかし、テンプレートは個人を特定することのできる情報であるため、個人情報として厳密な管理が必要とされ、高い管理コストが必要となる。例え厳密に管理されていても、プライバシの観点からテンプレートを登録することに心理的な抵抗を感じる人も多い。また、一人の個人が持つ一種類の生体情報の数には限りがある（例えば指紋は１０本の指のみ）ため、パスワードや暗号鍵のように容易にテンプレートを変更することができない。仮にテンプレートが漏洩して偽造の危険が生じた場合、その生体認証を使用することができなくなるという問題がある。さらに、異なるシステムに対して同じ生体情報を登録している場合には他のシステムまで脅威にさらされることになる。
【０００５】
そこで、生体情報の登録時に特徴量を一定の関数（一種の暗号化）とクライアントが持つ秘密のパラメータ（一種の暗号鍵）で変換し、元の情報を秘匿した状態でテンプレートとしてサーバに保管し、認証時にクライアントが新たに抽出した生体情報の特徴量を、同じ関数とパラメータで変換してサーバへ送信し、サーバは受信した特徴量とテンプレートを変換された状態のまま照合する方法（キャンセラブル生体認証という）が提案されている。
【０００６】
この方法によれば、クライアントが変換パラメータを秘密に保持することで、サーバは認証時においても元の特徴量を知ることができず、個人のプライバシが保護される。またテンプレートが漏洩した場合にも、変換パラメータを変更して再度テンプレートを作成、登録することで、安全性を保つことができる。更に異なるシステムに対して同じ生体情報を用いる場合に、各々異なるパラメータで変換したテンプレートを登録することで、一つのテンプレートが漏洩しても他のシステムの安全性が低下することを防止することができる。
【０００７】
キャンセラブル生体認証の具体的な実現方法は、生体情報の種類や照合アルゴリズムに依存する。特許文献１では、静脈認証など、特徴量（画像）の相関値に基づいて類似度を判定するような生体認証技術に対して適用可能な実現方法（以下、相関不変ランダムフィルタリングと呼ぶ）を示している。
【０００８】
【特許文献１】特願２００７−０００６７１号公報
【非特許文献１】Okamoto， T. and Uchiyama， S.， “A New Public-Key Cryptosystem as Secure as Factoring”， Proc. EUROCRYPT'98， pp. 308-318.
【非特許文献２】P. Paillier， “Public-Key Cryptosystems Based on Composite Degree Residuosity Classes”， Proc. EUROCRYPT’99， pp. 223-238.
【非特許文献３】比良田 他，”画像マッチングに適用可能なキャンセラブル生体認証方式の脆弱性分析と安全性向上”， SCIS2007.
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記特許文献１によれば、登録時、クライアントはユーザの生体から抽出した特徴量画像ｘを基底変換（フーリエ変換または数論変換）して基底変換画像Ｘを計算し、これに対してランダムに生成した変換フィルタＫを作用させ、各ｉ番目の画素毎にＴ［ｉ］＝Ｘ［ｉ］／Ｋ［ｉ］を計算して変換画像Ｔを作成し、サーバに登録する。変換フィルタＫはＩＣカードなどに保存してユーザが所持する。
【００１０】
認証時にはクライアントがあらたにユーザの生体から特徴量画像ｙを抽出し、画素を縦方向および横方向に関して逆順にソートした上で基底変換して画像Ｙを計算し、これに対してユーザのＩＣカードから読み出したフィルタＫを作用させ、各ｉ番目の画素毎にＶ［ｉ］＝Ｙ［ｉ］×Ｋ［ｉ］を計算して変換画像Ｖを作成し、サーバに送信する。サーバは各画素毎にＣ［ｉ］＝Ｔ［ｉ］×Ｖ［ｉ］（＝Ｘ［ｉ］×Ｙ［ｉ］）を計算し、画像Ｃを逆基底変換（逆フーリエ変換または逆数論変換）することで、ｘとｙの相互相関関数
【００１１】
【数１】
0004929136.tif 000002
【００１２】
を計算する。この相互相関関数からｘ、ｙの類似度を計算し、一致／不一致を判定する。
【００１３】
このように秘密の変換フィルタＫによってｘ、ｙを変換してからサーバに送信することで、サーバに対してｘ、ｙを秘匿したまま、サーバが照合処理を実行可能とする。
【００１４】
しかしサーバ管理者が悪意を持ってｘ、ｙを推定しようとした場合、ｘ、ｙを一意に特定することができなくても、その候補をある程度絞り込むことができる可能性がある。例えば、サーバは
【００１５】
【数１】
0004929136.tif 000003
【００１６】
を計算することができるが、ｘ、ｙがそれぞれＮピクセルの画像であったとするならば、
【００１７】
【数１】
0004929136.tif 000004
【００１８】
もＮピクセルの画像（相関画像）であり、ここからｘ、ｙの各画素（合計２Ｎ個の値）を未知数とするＮ元連立方程式を立てることができる。この連立方程式は未知数の方が多いので一意に解くことはできないが、しかし解空間を２Ｎ次元からＮ次元に絞り込むことはできる。
【００１９】
また一人のユーザが認証を繰り返したとき、サーバに送信されるデータ同士の関係から、同様にＹの各画素値に関する連立方程式を立てることができる。具体的には、例えば認証をｍ回繰り返したとし、各認証において抽出された特徴量画像をｙ１、ｙ２、・・・、ｙｍとする。各特徴量画像の逆順ソートに対する基底変換画像をＹ１、Ｙ２、・・・、Ｙｍとすると、サーバに送信されるデータはＶ１＝Ｙ１×Ｋ、Ｖ２＝Ｙ２×Ｋ、・・・、Ｖｍ＝Ｙｍ×Ｋ、・・・である。従ってサーバは、Ｖ１／Ｖ２、Ｖ１／Ｖ３、・・・、Ｖ１／Ｖｍを計算することができる。ところでＶ１／Ｖｉ＝Ｙ１／Ｙｉであり、これは左辺が既知の定数、右辺が未知の変数であるような連立方程式と見なすことができる。ｉ＝２、３、・・・、ｍについてまとめると、全体としてｍＮ個の未知数に関する（ｍ−１）Ｎ元連立方程式となる。これも未知数の方が多いので一意に解くことはできないが、しかし解空間をｍＮ次元からＮ次元に絞り込むことはできる。
【００２０】
本発明の目的は、相関不変ランダムフィルタリングにおいて、悪意のあるサーバが特徴量ｘ、ｙを推定（解読）しようと試みる攻撃に対し、上記のような解の絞り込みを困難として、安全性を向上したシステム、方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００２１】
本発明は以上の課題を解決するため、個人の生体情報の特徴量配列同士の相互相関に基づいて個人を認証する生体認証方法において、生体情報の登録時に、登録者の生体情報から登録用特徴量配列を抽出するステップと、各要素毎にランダムな値を持つ一つ以上の変換フィルタ配列を生成する変換フィルタ配列生成ステップと、前記登録用特徴量配列を、前記変換フィルタ配列を用いて変換し、登録用変換特徴量配列を計算する登録用特徴量配列変換ステップと、認証時に、利用者の生体情報から認証用特徴量配列を抽出するステップと、所定の定義域においてランダムな値を持つマスク関数を生成するマスク関数生成ステップと、前記認証用特徴量配列と、前記変換フィルタ配列と、前記登録用変換特徴量配列と、前記マスク関数を用いて、前記登録用特徴量配列を復元することなく、かつ処理過程において前記登録用特徴量配列と前記認証用特徴量配列との相互相関関数を生成することなく、前記相互相関関数と前記マスク関数との和関数であるマスクつき相互相関関数を計算する、マスク付き相互相関関数計算ステップと、前記マスク付き相互相関関数から、前記登録用特徴量配列と前記認証用特徴量配列の類似度を計算し、一致／不一致を判定する一致判定ステップと、を含むことを特徴とする、生体認証方法を提供する。
【００２２】
本発明は、クライアントにて、登録用の生体情報と認証用の生体情報とを演算（例えば、乗算、除算）したものに対して、さらに、巡回畳み込みの性質を持つ基底変換（例えば、フーリエ変換、数論変換）を定義する定義体上の整数によって構成された数値配列（例えば、マスク配列）を基底変換によって変換して得たフィルタ配列（例えば、マスクフィルタは配列）を演算（例えば、加算、減算）して、サーバにて認証用の生体情報と登録用の生体情報との照合を判定するための相互相関関数を得るためのデータを生成する。
【発明の効果】
【００２３】
本発明によれば、生体情報の特徴量ベクトル同士の相互相関に基いて個人を認証する生体認証システムにおいて、認証サーバに対してユーザの生体情報を秘匿したまま認証が可能となり、サーバからの生体情報漏洩を防止することができる。特に、認証サーバの管理者が不正を行い、ユーザの生体特徴量を推定しようとする高度な攻撃に対しても、高い安全性を確保することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施例１および実施例２を説明する。
【実施例１】
【００２５】
以下、図面を参照して、本発明の第一の実施形態について説明する。本実施形態では、生体情報の特徴量を変換し、サーバに対して秘匿したまま、サーバ内で生体情報の照合を行う、キャンセラブル生体認証システムを例にあげて説明する。
【００２６】
図１に、キャンセラブル生体認証システムのシステム構成を示す。本実施例のキャンセラブル生体認証システムは、登録・認証時の生体情報取得、特徴量抽出、および特徴量の変換を行うクライアント端末（以下、クライアント）１００と、テンプレートの保管と照合を行う認証サーバ（以下、サーバ）１３０が、インターネットやイントラネットなどのネットワークを介し接続して構成される。
【００２７】
クライアント１００は、ユーザ自身か又は信頼できる第三者によって管理され、生体情報（例えば指紋や静脈、虹彩など）を取得するセンサ１１０を有すると共に、記録媒体１２０に対してデータを読み書きする。記録媒体１２０は、ＩＣカードやＵＳＢメモリなどの携帯型記録媒体としてユーザが管理するとしてもよいし、クライアントに固定して接続されたハードディスクなどの記録媒体でもよい。例えば自宅からインターネットバンキングを行う場合、クライアント１００はユーザが管理する自宅のＰＣであり、サーバ１３０は銀行が管理するサーバマシンとするような構成も可能である。
【００２８】
クライアント１００は、センサから取得した生体情報の特徴量を抽出する特徴量抽出部１０１と、特徴量データの基底変換を行う基底変換部１０２と、特徴量を変換するための変換フィルタを生成する変換フィルタ生成部１０３と、変換の安全性を向上するために使うマスクフィルタを生成する、マスクフィルタ生成部１０４と、記録媒体１２０に対して変換フィルタを読み書きする記録媒体Ｉ／Ｆ部１０５と、特徴量を変換して登録用のテンプレートを作成する登録用変換部１０６と、特徴量を秘匿したまま、特徴量同士のマスクつき相互相関関数を認証サーバ１３０に開示するように計算を行う、秘密相互相関計算部１０７と、サーバとの通信を行う通信部１０８から構成される。
【００２９】
ここで生体情報とは、例えば指紋画像や静脈画像、虹彩画像といったデータであり、特徴量とは、例えば指紋や静脈の画像を強調処理して２値化した画像や、あるいは虹彩画像から作成するアイリスコード（虹彩コード）と呼ばれるビット列などを含む。２つの特徴量の間の類似度は、相互相関により計算されるものとする。相互相関に基づいて類似度を計算する照合アルゴリズムに対しては、２つの特徴量に特殊な変換を施して秘匿したまま、それらを元に戻すことなく類似度を計算するアルゴリズム（相関不変ランダムフィルタリング）が知られている。類似度がしきい値以上であれば一致と判定し、類似度がしきい値より小さければ不一致と判定する。（逆に、類似度がしきい値以下であれば一致と判定し、類似度がしきい値より大きければ不一致と判定してもよい。）本実施形態は、相関不変ランダムフィルタリングを改良し、特徴量秘匿性能をより高める効果を持つ。なお相関不変ランダムフィルタリングの詳細については特許文献１を参照のこと。
【００３０】
サーバ１３０は、クライアント１００と通信を行う通信部１３１、テンプレートを管理するデータベース１３３、クライアントから受信したテンプレートをデータベース１３３に登録する登録部１３２、クライアントが取得した特徴量を知ることなく、その特徴量とテンプレートの元になった特徴量とのマスクつき相互相関関数を計算する、秘密相互相関計算部１３４と、前記マスクつき相互相関関数から、特徴量同士の一致／不一致を判定する判定部１３５とから構成される。
【００３１】
図５に、本実施形態におけるクライアント１００、サーバ１３０のハードウェア構成を示す。クライアント１００、サーバ１３０は、情報処理が可能なコンピュータ（情報処理装置）である。これらは図のようにＣＰＵ５００、メモリ５０１、ＨＤＤ５０２、入力装置５０３、出力装置５０４、通信装置５０５とから構成することができる。変換部や生成部、抽出部、計算部、登録部、判定部などは、ＨＤＤ５０５からメモリ５０１にロードされたプログラムに従って、ＣＰＵ５００が動作することにより実現される。データベースはＨＤＤ５０２内に構築される。
【００３２】
次に本実施形態における生体情報の登録処理フローを図２を用いて説明する。
【００３３】
まずセンサ１１０がユーザの生体情報を取得し、メモリに格納する（Ｓ２０１）。
【００３４】
クライアントの特徴量抽出１０１がメモリ上の生体情報から特徴量を抽出し、メモリに格納する。ここでは例として、特徴量が画像であるとする。特徴量画像６０１の周辺部分は、図６Ａに示すように、所定の幅Δで輝度値を０にセットしておく（０パディングする）。つまり、特徴量画像６０１の周辺部分には、特徴量の画像とは異なる画像が存在することとなる。これは、フーリエ変換や数論変換などの基底変換を用いて相互相関を計算する際に、線形畳み込みを計算するためである。Δは、特徴量画像同士を照合する際の、縦横方向のずれ許容量から決定する。例えば上下左右にそれぞれ±４画素分のずれを許容するならば、Δ＝４とする。このようにして０パディングした後の画像を特徴量配列ｘとする。説明の簡単のためｘは一次元配列で表すこととし、０パディング後の画像サイズをＷ×Ｈとしたときに、座標（ｗ，ｈ）（０≦ｗ＜Ｗ，０≦ｈ＜Ｈ）の輝度値をｘ［ｈ×Ｗ＋ｗ］とする。輝度値は０以上θ未満の整数値を取るものとする。また画素数をＮ（＝Ｗ×Ｈ）とする。特徴量画像６０１の周辺部分の輝度値は、０であることが好ましいが、０以外の値であってもよいし、画素ごとに異なる値であってもよい。
【００３５】
基底変換部１０２が、メモリ上の特徴量配列ｘを基底変換してメモリ上に基底変換特徴量配列Ｘを作成する（Ｓ２０３）。基底変換は、フーリエ変換や数論変換など、巡回畳み込みの性質を持つものならば何でもよいが、ここでは数論変換を用いるものとする。数論変換の定義体を素体Ｚｐ（ｐは素数）とする。変換の詳細は特許文献１を参照のこと。基底変換特徴量配列Ｘのサイズ（要素数）はＮである。
【００３６】
変換フィルタ生成部１０３が、基底変換特徴量ベクトルＸと同じサイズＮの変換フィルタ配列Ｋをメモリ上に生成する（Ｓ２０４）。図７Ａに示すように、変換フィルタ配列Ｋ７００の各要素Ｋ［ｉ］（ｉ＝０〜Ｎ−１）はＺｐ上の０でないランダムな整数（１以上（ｐ−１）以下の一様乱数）として生成する。乱数系列を生成する方法としては、擬似乱数生成器に適当なシード値（例えば時刻や、キーボードからのランダムなキー入力など）を与えて擬似乱数列を計算させる方法がある。例えば、変換フィルタ生成部１０３は、擬似乱数生成器を用いて順次疑似乱数を生成し、変換フィルタ配列Ｋを構成する数に至るまでその疑似乱数をメモリ上に順次格納していく。尚、疑似乱数の代わりに、乱数を用いてもよい。
【００３７】
記録媒体Ｉ／Ｆ部１０５が、変換フィルタ配列Ｋを記録媒体１２０に書き込む（Ｓ２０５）。なお変換フィルタＫを直接書き込むかわりに、ステップ２０４で用いたシード値（擬似乱数生成器への入力値）を書き込んでもよい。シード値を用いることで、記録媒体１２０が記録すべきデータサイズを大幅に削減することができる。
【００３８】
登録用変換部１０６が、メモリ上の基底変換特徴量配列Ｘを、メモリ上の変換フィルタ配列Ｋを用いて変換し、その変換結果としてメモリ上にテンプレート配列Ｔを作成して、サーバ１３０に送信する（Ｓ２０６）。具体的には以下の計算式に従ってテンプレート配列Ｔを作成する。
【００３９】
【数２】
0004929136.tif 000005
【００４０】
ここで
【００４１】
【数３】
0004929136.tif 000006
【００４２】
はＺｐにおけるＫ［ｉ］の逆数を表し、掛け算もＺｐ上で行うものとする。変換フィルタ配列Ｋの各要素はランダムな値であったため、サーバ１３０がテンプレート配列Ｔから基底変換特徴量配列Ｘを知ることはできない。
【００４３】
サーバ１３０は、通信部１３１がクライアント１００からテンプレート配列Ｔを受信し、登録部１３２がデータベース１３３に登録する（Ｓ２０７）。
【００４４】
なお、前記変換フィルタ配列Ｋと、テンプレート配列Ｔは、役割を入れ替えてもよい。つまりランダムに生成した配列Ｋ（あるいは擬似乱数のシード値）を、テンプレート配列Ｔとしてサーバ１３０に送信し、数２で計算した配列Ｔを、変換フィルタ配列Ｋとして記録媒体１２０に書き込んでもよい。こうすることで、サーバ１３０に登録されるテンプレート配列Ｔを、完全にランダムに生成されたデータとし、元の特徴量ｘに関する情報を全く含めないようにすることができる。
【００４５】
次に本実施形態における認証フローを図３を用いて説明する。
【００４６】
サーバ１３０の秘密相互相関計算部１３４が、所定の公開鍵暗号方式に従い、暗号化のための公開鍵Ｋｐ、複合化のための秘密鍵Ｋｓのペアをメモリ上に生成する（Ｓ３００）。ただし、公開鍵暗号方式としては、暗号化関数Ｅｎｃ（・）が以下の準同型性を満たす方式（準同型暗号）を用いることとする。
【００４７】
【数４】
0004929136.tif 000007
【００４８】
準同型暗号方式の例としては、岡本−内山暗号（非特許文献１）や、Ｐａｉｌｌｉｅｒ暗号（非特許文献２）などがある。
【００４９】
次にセンサ１１０がユーザの生体情報を取得する（Ｓ３０１）。
【００５０】
クライアントの特徴量抽出１０１がメモリ上の生体情報から特徴量画像を抽出し、メモリに格納する（Ｓ３０２）。登録時と同様に、特徴量画像６０１の周囲は０パディングしておく（図６Ｂ）。これを特徴量配列ｙとする。
【００５１】
次にクライアントの特徴量抽出１０１がメモリ上の特徴量配列ｙの各要素をメモリ上で逆順にソートし、配列ｙ’６０２を作成する（Ｓ３０３）。特徴量配列ｘと配列ｙ’の畳み込みは、ｘとｙの相互相関になることに注意する。
【００５２】
基底変換部１０２が、メモリ上の配列ｙ’をメモリ上で基底変換して基底変換特徴量配列Ｙを作成する（Ｓ３０４）。Ｙのサイズは、登録時の基底変換特徴量Ｘのサイズと同じＮであるとする。
【００５３】
記録媒体Ｉ／Ｆ部１０５が、変換フィルタ配列Ｋを記録媒体１２０から読み込む（Ｓ３０５）。
【００５４】
マスクフィルタ生成部１０３は、マスクフィルタ配列Ｒをメモリ上で生成する（Ｓ３０６）。以下、具体的な生成方法を、図８を用いて説明する。前記特徴量配列ｘ、ｙと同じサイズのマスク配列ｒ８００を用意し、これを画像として見たときの左上（Δ＋１）×（Δ＋１）、左下（Δ＋１）×Δ、右上Δ×（Δ＋１）、右下Δ×Δの領域の画素値を全て０とする。それ以外の領域の画素値は、全てＺｐ上のランダムな整数（０以上ｐ−１以下の一様乱数）として生成する。次にｒを基底変換し、マスクフィルタ配列Ｒ８０１とする。マスクフィルタ配列Ｒは、認証毎に生成して使い捨てる、一時的なデータであることが好ましい。尚、0に設定する領域は、四隅の代わりに、数論変換の実装形態により中央であってもよい。
【００５５】
秘密相互相関計算部１０７が、メモリ上の基底変換特徴量配列Ｙを、メモリ上の変換フィルタ配列Ｋを用いて変換し、その変換結果としてメモリ上に変換特徴量配列Ｖを作成する（Ｓ３０７）。具体的には以下の式に従って計算する。なお掛け算はＺｐ上で行う。
【００５６】
【数５】
0004929136.tif 000008
【００５７】
サーバ１３０の秘密相互相関計算部１３４が、データベース１３３より前記テンプレート配列Ｔを読み込み、前記公開鍵Ｋｐを用いて下式のように各要素を暗号化した暗号化テンプレート配列ｅを作成して、公開鍵Ｋｐとともにクライアント１００に送信する（Ｓ３０８）。
【００５８】
【数６】
0004929136.tif 000009
【００５９】
クライアント１００は通信部１０８が前記暗号化テンプレート配列ｅと公開鍵Ｋｐを受信し、メモリに格納し、秘密相互相関計算部１０７が、メモリ上で配列ｅ’を以下の式に従って計算して、サーバ１３０に送信する。
【００６０】
【数７】
0004929136.tif 000010
【００６１】
ここで暗号化関数Ｅｎｃ（・）の準同型性を表す数４と、数２、数５より、以下が成り立つ。
【００６２】
【数８】
0004929136.tif 000011
【００６３】
つまり、配列ｅ’は、配列Ｘと配列Ｙを掛け合わせたものに対してさらにフィルタ配列Ｒを加算したものを暗号化したものである。なおクライアント１００は前記秘密鍵Ｋｓを知らないため（前記秘密鍵Ｋｓはサーバ１３０でのみ管理されるため）、暗号文を復号化することはできず、Ｔ［ｉ］やＸ［ｉ］を知ることはできない。従って、仮に攻撃者がクライアント１００を不正利用してサーバ１３０との通信を行い、通信ログを解析しても、テンプレート配列Ｔや、元の特徴量画像ｘを手に入れることはできない。
【００６４】
サーバ１３０は、通信部１３１が前記配列ｅ’を受信し、メモリに格納し、秘密相互相関計算部１３４が、メモリ上の前記秘密鍵Ｋｓを用いて、下式のように各要素毎に復号化し、その複合結果としてメモリ上に配列Ｃを作成する（Ｓ３１０）。Ｄｅｃ（・）は復号化関数を表すものとする。
【００６５】
【数９】
0004929136.tif 000012
【００６６】
秘密相互相関計算部１３４が、メモリ上の前記配列Ｃを逆基底変換（逆数論変換）し、その変換結果としてメモリ上にマスクつき相互相関関数ｃを作成する（Ｓ３１１）。マスクつき相互相関関数ｃは要素数Ｎの配列であり、基底変換の線形性より以下の式が成立する。
【００６７】
【数１０】
0004929136.tif 000013
【００６８】
ここで演算ｘ＊ｙ’は、ｘとｙ’の畳み込みを表し、
【００６９】
【数１】
0004929136.tif 000014
【００７０】
はｘとｙの相互相関関数を表すものとする。マスク配列ｒが加算されているため、サーバはマスク配列ｒが０である四隅の領域（図８Ａを参照）においてのみ、相互相関関数
【００７１】
【数１】
0004929136.tif 000015
【００７２】
の値を知ることができる。この四隅の領域は、特徴量配列ｘ、ｙを、上下左右にそれぞれ−Δ〜Δの範囲でずらして重ね合わせたときの、（２Δ＋１）×（２Δ＋１）通りの相互相関値に対応している。つまりサーバは、許容ずれ量の範囲内における相互相関値のみを正しく知ることができるが、それ以外の相互相関値は全く知ることができない。
【００７３】
最後に判定部１３５が、メモリ上のマスクつき相互相関関数ｃから、元の特徴量ｘ、ｙの一致／不一致を判定する（Ｓ３１２）。判定には、例えば非特許文献３の方法などを用いることができる。
【００７４】
本実施例によれば、サーバは正しく認証を行うことができるが、元の特徴量ｘ、ｙを知ることはできない。実際、悪意のあるサーバが、ｘ、ｙの相互相関関数からｘ、ｙに関する連立方程式を立てて解こうとしても、サーバが知ることができる情報は、マスクつき相互相関関数
【００７５】
【数１１】
0004929136.tif 000016
【００７６】
のみである。認証の度にランダムに生成されるマスク配列ｒを加算することで、ｘ、ｙに関して立式可能な方程式の数（相互相関値の数）は、一回の認証あたりＮ（＝Ｗ×Ｈ）本から（２Δ＋１）×（２Δ＋１）本に減少している。図６、７、８の例に示したようにＷ＝Ｈ＝２０、Δ＝４とすると、方程式の数は８１／４００＝２０％に減少する。未知数は２Ｎ個で変化はないため、連立方程式の解の空間は大幅に増加し、悪意のあるサーバがｘ、ｙを推定することが困難となる。これによりサーバ管理者の不正に対して安全性が向上する。
【００７７】
なお本実施例ではｒを作成する際に、四隅の領域を全て０で埋めるとしたが、代わりに、照合結果に影響を与えない程度の絶対値の小さな乱数（例えば、−２、−１、０、１、２）としてもよい。このように乱数を用いることで、悪意のあるサーバ管理者は相互相関関数から方程式を立てることが全くできなくなり、安全性をより向上させることができる。
【実施例２】
【００７８】
以下、図面を参照して、本発明の第二の実施形態について説明する。
【００７９】
本実施形態では第一の実施例と同様、生体情報の特徴量を変換し、サーバに対して秘匿したまま、サーバ内で生体情報の照合を行う、キャンセラブル生体認証システムを例にあげて説明する。第一の実施例とは、変換フィルタ配列の形式、特徴量変換の方法、秘密相互相関計算の方法が異なる。
【００８０】
本実施例におけるキャンセラブル生体認証システムのシステム構成（図１）およびハードウェア構成（図５）は、実施例１と同様である。
【００８１】
次に本実施形態における生体情報の登録処理フローを図２を用いて説明する。
ステップＳ２０１からＳ２０３は、実施例１と同様である。
【００８２】
クライアント１００の変換フィルタ生成部１０３が、基底変換特徴量ベクトルＸと同じサイズＮの変換フィルタ配列Ｋをメモリ上に生成する（Ｓ２０４）。図７Ｂに示すように、変換フィルタ配列Ｋ７０１の各要素Ｋ［ｉ］（ｉ＝０〜Ｎ−１）はＺｐ上のｄ×ｄ正則行列としてランダムに生成し、メモリに順次格納する。ｄは２以上の所定の整数とする。例えばｄ＝３の場合、下式のように３×３の行列の各要素をＺｐ上でランダムに決定し、正則である（行列式が非０）であることをチェックし、非正則なら再度ランダムに生成することを繰り返せばよい。乱数系列は、実施例１と同様、擬似乱数生成器に適当なシード値を与えることで実現できる。
【００８３】
【数１２】
0004929136.tif 000017
【００８４】
記録媒体Ｉ／Ｆ部１０５が、変換フィルタ配列Ｋを記録媒体１２０に書き込む（Ｓ２０５）。実施例１と同様、変換フィルタＫを直接書き込むかわりに、ステップ２０４で用いたシード値（擬似乱数生成器への入力値）を書き込んでもよい。シード値を用いることで、書き込むべきデータのサイズを大幅に削減することができる。
【００８５】
登録用変換部１０６が、メモリ上の基底変換特徴量配列Ｘを、メモリ上の変換フィルタ配列Ｋを用いて変換し、その変換結果としてメモリ上にテンプレート配列Ｔを作成して、サーバ１３０に送信する（Ｓ２０６）。具体的には以下の計算式に従ってテンプレート配列Ｔを作成する。
【００８６】
【数１３】
0004929136.tif 000018
【００８７】
ここで
【００８８】
【数１４】
0004929136.tif 000019
【００８９】
はＺｐ上で計算したＫ［ｉ］の逆行列であり、ベクトルと行列の掛け算もＺｐ上で行うものとする。変換フィルタ配列Ｋの各要素はランダムな値であったため、サーバ１３０がテンプレート配列Ｔから基底変換特徴量配列Ｘを知ることはできない。
【００９０】
ステップＳ２０７は実施例と同様である。
【００９１】
次に本実施形態における認証フローを図４を用いて説明する。
【００９２】
ステップＳ３０１からＳ３０６までは実施例１と同様である。
【００９３】
クライアント１００の秘密相互相関計算部１０７は、メモリ上の基底変換特徴量配列Ｙとメモリ上のマスクフィルタ配列Ｒを、メモリ上の変換フィルタ配列Ｋを用いて変換し、その変換結果としてメモリ上に認証用ベクトル配列Ｖを作成して、サーバ１３０に送信する（Ｓ４０７）。具体的には以下の計算式に従って、認証用ベクトル配列Ｖを作成する。
【００９４】
【数１５】
0004929136.tif 000020
【００９５】
ここで
【００９６】
【数１６】
0004929136.tif 000021
【００９７】
はＫ［ｉ］の転置行列である。
【００９８】
【数１７】
0004929136.tif 000022
【００９９】
はＺｐ上でランダムに決定する。これらの値は配列の各ｉ番目の要素毎に、また認証毎にランダムに生成する。ベクトルと行列の掛け算はＺｐ上で行うものとする。変換フィルタ配列Ｋの各要素はランダムな値であり、また
【０１００】
【数１７】
0004929136.tif 000023
【０１０１】
もランダムに生成されるため、サーバ１３０が認証用ベクトル配列Ｖから基底変換特徴量配列Ｙや変換フィルタ配列Ｒを知ることはできない。
【０１０２】
サーバ１３０は通信部１３１が認証用ベクトル配列Ｖを受信し、メモリに格納し、秘密相互相関計算部１３４が、メモリ上で各ｉ番目の要素毎に、認証用ベクトル配列Ｖとテンプレート配列Ｔの内積をＺｐ上で計算し、メモリ上に配列Ｃを作成する（Ｓ４０８）。数１０、数１１より、下式が成立する。
【０１０３】
【数１８】
0004929136.tif 000024
【０１０４】
ステップＳ３１１、Ｓ３１２は実施例１と同様である。
【０１０５】
本実施例も実施例１と同様、サーバが相互相関関数
【０１０６】
【数１】
0004929136.tif 000025
【０１０７】
を知ることができないため、相互相関値からｘ、ｙの連立方程式を立ててｘ、ｙを推定（解読）する攻撃を困難とすることができる。また実施例１と比較して、計算コスト、通信コストを低くすることができる。行列Ｋ［ｉ］のサイズｄはセキュリティパラメータであり、これを大きくすることで、より解読を困難として安全性を向上させることができる。
【０１０８】
なお実施例１，２を併用することも可能である。例えば、基底変換特徴量配列Ｘ，Ｙの、前半のｎ個の要素（Ｘ［０］〜Ｘ［ｎ−１］、Ｙ［０］〜Ｙ［ｎ−１］）については実施例１の方法を使って秘密相互相関計算を行い、後半のＮ−ｎ個の要素（Ｘ［ｎ］〜Ｘ［Ｎ−１］、Ｙ［ｎ］〜Ｙ［Ｎ−１］）については実施例２の方法を使って秘密相互相関計算を行う、といったこともできる。
【産業上の利用可能性】
【０１０９】
本発明は、生体情報に基づいてユーザ認証を行う任意のアプリケーションに対して適用可能である。例えば社内ネットワークにおける情報アクセス制御、インターネットバンキングシステムやＡＴＭにおける本人確認、会員向けＷｅｂサイトへのログイン、保護エリアへの入場時の個人認証、パソコンのログインなどへの適用が可能である。
【図面の簡単な説明】
【０１１０】
【図１】本発明の実施形態の機能構成を示すブロック図である
【図２】本発明の実施形態における登録処理を示す流れ図である
【図３】本発明の第一の実施形態における認証処理を示す流れ図である
【図４】本発明の第二の実施形態における認証処理を示す流れ図である
【図５】本発明の実施形態におけるハードウェア構成を示すブロック図である
【図６】本発明の実施形態における特徴量配列を示す図である
【図７】本発明の実施形態における変換フィルタ配列を示す図である
【図８】本発明の実施形態におけるマスク配列およびマスクフィルタ配列を示す図である
【符号の説明】
【０１１１】
１００  クライアント
１０１  特徴量抽出部
１０２  基底変換部
１０３  変換フィルタ生成部
１０４  マスクフィルタ生成部
１０５  記録媒体Ｉ／Ｆ部
１０６  登録用変換部
１０７  秘密相互相関計算部
１０８  通信部
１１０  センサ
１２０  記録媒体
１３０  サーバ
１３１  通信部
１３２  登録部
１３３  データベース
１３４  秘密相互相関計算部
１３５  判定部
５００  ＣＰＵ
５０１  メモリ
５０２  ＨＤＤ
５０３  入力装置
５０４  出力装置
５０５  通信装置
６００  登録時の特徴量配列
６０１  認証時の特徴量配列
６０２  逆順にソートした認証時の特徴量配列
７００  第一の実施例における変換フィルタ配列
７０１  第二の実施例における変換フィルタ配列
８００  マスク配列
８０１  マスクフィルタ配列
【図１】
0004929136.tif 000026
【図２】
0004929136.tif 000027
【図３】
0004929136.tif 000028
【図４】
0004929136.tif 000029
【図５】
0004929136.tif 000030
【図６】
0004929136.tif 000031
【図７】
0004929136.tif 000032
【図８】
0004929136.tif 000033