(57)【特許請求の範囲】
【請求項１】
照合データと登録データとの類似性を判定するための閾値および鍵データに関する閾値を対角成分とする行列に乱数ベクトルが最終列として付加された判定行列の行ベクトルの一次結合と、第１の乱数とに基づいて、前記登録データと鍵データとを秘匿して得られた第１の秘匿ベクトルを記憶する記憶部と、
前記判定行列の行ベクトルの第２の一次結合と、第２の乱数とに基づいて、前記照合データを秘匿して得られた第２の秘匿ベクトルを取得する取得部と、
前記第１の秘匿ベクトルと前記第２の秘匿ベクトルの差分から、前記判定行列を法とする剰余である剰余ベクトルを算出する剰余算出部と、
前記剰余ベクトルに基づいて、前記登録データと前記照合データの類似性を判定する第１の判定部と、
前記第１の判定部において、前記登録データと前記照合データが類似していると判定された場合に、前記剰余ベクトルから鍵データを抽出する抽出部と、
前記剰余ベクトルの成分を抽出し、前記登録データと前記照合データのベクトル間距離を算出する距離算出部と、
前記ベクトル間距離と認証閾値との大小関係に基づいて前記登録データと前記照合データの類似性を判定する第２の判定部と、
を有することを特徴とする秘匿データ照合装置。
【請求項２】
前記認証閾値は、認証のセキュリティレベルが高いほど小さい値とされ、
前記第２の判定部は、前記ベクトル間距離が前記認証閾値よりも小さい場合、前記登録データと前記照合データが類似していると判定する
ことを特徴とする請求項１に記載の秘匿データ照合装置。
【請求項３】
前記第１の判定部および前記第２の判定部で共に類似していると判定された場合、前記抽出部によって抽出された鍵データを、前記第２の秘匿ベクトルの判定依頼元に対して出力する出力部
をさらに有することを特徴とする請求項１または請求項２に記載の秘匿データ照合装置。
【請求項４】
照合データと登録データとの類似性を判定するための閾値および鍵データに関する閾値を対角成分とする行列に乱数ベクトルが最終列として付加された判定行列の行ベクトルの一次結合と、第１の乱数とに基づいて、前記登録データと鍵データとを秘匿して得られた第１の秘匿ベクトルを記憶部に登録し、
前記判定行列の行ベクトルの第２の一次結合と、第２の乱数とに基づいて、前記照合データを秘匿して得られた第２の秘匿ベクトルを取得し、
前記第１の秘匿ベクトルと前記第２の秘匿ベクトルの差分から、前記判定行列を法とする剰余である剰余ベクトルを算出し、
前記剰余ベクトルに基づいて、前記登録データと前記照合データの類似性を判定し、
前記登録データと前記照合データが類似していると判定された場合に、前記剰余ベクトルから鍵データを抽出し、
前記剰余ベクトルの成分を抽出し、前記登録データと照合データのベクトル間距離を算出し、
前記ベクトル間距離と認証閾値との大小関係に基づいて前記登録データと前記照合データの類似性を判定する
処理をコンピュータに実行させることを特徴とする秘匿データ照合プログラム。
【請求項５】
コンピュータが、
照合データと登録データとの類似性を判定するための閾値および鍵データに関する閾値を対角成分とする行列に乱数ベクトルが最終列として付加された判定行列の行ベクトルの一次結合と、第１の乱数とに基づいて、前記登録データと鍵データとを秘匿して得られた第１の秘匿ベクトルを記憶部に登録し、
前記判定行列の行ベクトルの第２の一次結合と、第２の乱数とに基づいて、前記照合データを秘匿して得られた第２の秘匿ベクトルを取得し、
前記第１の秘匿ベクトルと前記第２の秘匿ベクトルの差分から、前記判定行列を法とする剰余である剰余ベクトルを算出し、
前記剰余ベクトルに基づいて、前記登録データと前記照合データの類似性を判定し、
前記登録データと前記照合データが類似していると判定された場合に、前記剰余ベクトルから鍵データを抽出し、
前記剰余ベクトルの成分を抽出し、前記登録データと照合データのベクトル間距離を算出し、
前記ベクトル間距離と認証閾値との大小関係に基づいて前記登録データと前記照合データの類似性を判定する
処理を実行することを特徴とする秘匿データ照合方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘匿データ照合装置、秘匿データ照合プログラムおよび秘匿データ照合方法に関する。
【背景技術】
【０００２】
生体認証とは、人間の身体的特徴や行動的特徴の情報を用いた個人認証技術である。人間の身体的特徴には、例えば、指紋、静脈、虹彩やＤＮＡなどがある。行動的特徴には、例えば、筆跡などがある。生体認証では、テンプレートと呼ばれる生体情報を事前に採取し、照合時にセンサで取得した情報と比較することで認証が行われる。
【０００３】
近年、テンプレートに何らかの変換を施したものをデータベースに格納しておき、照合時に元のテンプレートに復元することなく比較する生体認証技術が着目されている。この生体認証技術は、「テンプレート保護型の生体認証技術」といわれる。テンプレート保護型の生体認証技術を用いたシステムでは、変換後のテンプレートが漏洩したとしても、変換方法を変更することで、漏洩したテンプレートを使用不可にし、漏洩したテンプレートへのアクセスを防ぐことができる。
【０００４】
テンプレート保護型の生体認証技術には、キーバインディング（Ｋｅｙ  ｂｉｎｄｉｎｇ）手法というテンプレート保護手法が知られている。このＫｅｙ  ｂｉｎｄｉｎｇ手法のひとつとして、格子元付加によるＫｅｙ  ｂｉｎｄｉｎｇ方式がある。この格子元付加によるＫｅｙ  ｂｉｎｄｉｎｇ方式では、例えば、照合データと登録データとの類似性を判定するための閾値を含んだ判定行列を予め定める。格子元付加によるＫｅｙ  ｂｉｎｄｉｎｇ方式では、判定行列などを用いて登録用の生体情報を秘匿したテンプレートを生成して、判定行列とテンプレートをデータベースに格納しておく。格子元付加によるＫｅｙ  ｂｉｎｄｉｎｇ方式では、照合時に、判定行列などを用いて照合用の生体情報を秘匿したデータを生成し、生成したデータとテンプレートから判定行列を法とする剰余である剰余ベクトルを算出する。そして、格子元付加によるＫｅｙ  ｂｉｎｄｉｎｇ方式では、算出された剰余ベクトルに基づいて、登録時の生体情報と照合時の生体情報が十分近いかを判定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１０８３６５号公報
【特許文献２】特開２０１０−１４６２４５号公報
【特許文献３】国際公開第２０１２／０５６５８２号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の格子元付加によるＫｅｙ  ｂｉｎｄｉｎｇ方式では、登録時の生体情報と照合時の生体情報はベクトルとしてあらわされ、「登録時の生体情報と照合時の生体情報が十分近い」ことは「ベクトルの各成分の差が閾値以下である」という基準で判定される。一方、生体認証において、生体情報の類似判定の基準は、一般にベクトルの各成分の差によるわけではなく、ベクトル間のハミング距離や二乗ノルム距離など、生体情報の種類によって異なる基準が用いられる。
【０００７】
しかしながら、従来の格子元付加によるＫｅｙ  ｂｉｎｄｉｎｇ方式は、生体情報の種類によって異なるさまざまな基準には対応しておらず、適用できる生体情報の種類が限られ、無理に適用した場合、認証精度が低下してしまう場合がある。
【０００８】
なお、上記課題は、生体情報による認証に限らず、照合データと登録データとの類似性により認証を行う全般に同様に生じる課題である。照合データと登録データは、位置情報や機密情報等の数値情報であっても良い。
【０００９】
一つの側面では、認証精度を向上させることができる秘匿データ照合装置、秘匿データ照合プログラムおよび秘匿データ照合方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの側面では、秘匿データ照合装置は、記憶部と、取得部と、剰余算出部と、第１の判定部と、抽出部と、距離算出部と、第２の判定部とを有する。記憶部は、照合データと登録データとの類似性を判定するための閾値および鍵データに関する閾値を対角成分とする行列に乱数ベクトルが最終列として付加された判定行列の行ベクトルの一次結合と、第１の乱数とに基づいて、前記登録データと鍵データとを秘匿して得られた第１の秘匿ベクトルを記憶する。取得部は、判定行列の行ベクトルの第２の一次結合と、第２の乱数とに基づいて、照合データを秘匿して得られた第２の秘匿ベクトルを取得する。剰余算出部は、第１の秘匿ベクトルと第２の秘匿ベクトルの差分から、判定行列を法とする剰余である剰余ベクトルを算出する。第１の判定部は、剰余ベクトルに基づいて、登録データと照合データの類似性を判定する。抽出部は、第１の判定部において、登録データと照合データが類似していると判定された場合に、剰余ベクトルから鍵データを抽出する。距離算出部は、剰余ベクトルの成分を抽出し、登録データと照合データのベクトル間距離を算出する。第２の判定部は、ベクトル間距離と認証閾値との大小関係に基づいて登録データと照合データの類似性を判定する。
【発明の効果】
【００１１】
本発明の一の実施態様によれば、認証精度を向上させることができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例に係る秘匿データ照合システムの機能構成の一例を説明する図である。
【図２】図２は、実施例に係る近似判定行列を説明する図である。
【図３】図３は、実施例に係る近似判定行列に対応する行ベクトルを説明する図である。
【図４】図４は、実施例に係る近似判定行列による近似範囲と認証閾値との関係を説明する図である。
【図５】図５は、実施例に係る秘匿データの登録処理のシーケンスを示す図である。
【図６】図６は、実施例に係る秘匿データの照合処理のシーケンスを示す図である。
【図７】図７は、秘匿データ照合プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する秘匿データ照合装置、秘匿データ照合プログラムおよび秘匿データ照合方法の実施例を図面に基づいて詳細に説明する。なお、秘匿データ照合装置は、テンプレート保護型の生体認証技術のうち格子元付加によるＫｅｙ  ｂｉｎｄｉｎｇ方式を採用する。また、実施例によりこの発明が限定されるものではない。
【実施例】
【００１４】
［秘匿データ照合システムの構成］
図１は、実施例に係る秘匿データ照合システムの機能構成の一例を説明する図である。図１に示すように、秘匿データ照合システム９は、クライアント端末１，２と、秘匿データ照合装置３とを有する。秘匿データ照合装置３には、データベース３３０が含まれる。秘匿データ照合装置３とクライアント端末１，２とは、ネットワークで接続されている。
【００１５】
ここで、秘匿データ照合システム９は、クライアントの生体データおよびクライアント固有の鍵データを格子マスキングと呼ばれる特殊な乱数（格子の元）に基づいて秘匿化し、秘匿化して得られた第１の秘匿データをデータベース３３０に登録する。そして、秘匿データ照合システム９は、生体データについて照合の依頼があったとき、照合対象の生体データを異なる格子の元に基づいて秘匿化し、秘匿化して得られた第２の秘匿データを取得する。そして、秘匿データ照合システム９は、第１の秘匿データと、第２の秘匿データとの差分から、格子理論特有の写像を用いることで、第１の秘匿データに対応する生体データと、第２の秘匿データに対応する生体データが近似（類似）しているか否かを判定する。そして、秘匿データ照合システム９は、近似していると判定した場合、第１の秘匿データと第２の秘匿データとの差分から鍵データを抽出する。また、秘匿データ照合システム９は、近似していると判定した場合、第１の秘匿データに対応する生体データと、第２の秘匿データに対応する生体データのベクトル間距離を算出する。秘匿データ照合システム９は、算出したベクトル間距離と認証閾値との大小関係に基づいて、生体データの類似性を判定する。秘匿データ照合システム９は、生体データが近似していると判定した場合、抽出した鍵データを依頼元に出力する。実施例では、説明の便宜上、クライアント端末１が、生体データを登録するクライアントの端末であるとし、クライアント端末２が、生体データについて照合を依頼する端末であるとする。なお、クライアント端末１は、複数台存在しても良い。クライアント端末２は、複数台存在しても良い。
【００１６】
このような秘匿データ照合システム９における生体データおよびクライアント固有の鍵データの秘匿化、および秘匿化された秘匿データ同士の近似判定の内容について、以下に説明する。
【００１７】
クライアント端末１は、登録依頼部１１と、秘匿データ生成部１２とを有する。実施例では、鍵１１２は、例えば、数値で表されるものとする。
【００１８】
登録依頼部１１は、生体データ１１１および鍵１１２の登録を秘匿データ照合装置３に依頼する。例えば、登録依頼部１１は、生体データ１１１および鍵１１２を外部の端末から受信する。そして、登録依頼部１１は、受信した生体データ１１１および鍵１１２の登録を秘匿データ照合装置３に依頼する。なお、外部の端末は、ネットワークを介した端末であっても良い。
【００１９】
ここで、生体データ１１１は、クライアントの身体的特徴や行動的特徴のデータである。身体的特徴のデータの一例として、指紋、静脈、虹彩およびＤＮＡが挙げられる。行動的特徴のデータの一例として、筆跡が挙げられる。実施例では、生体データ１１１は、ｎ次元の成分を有するベクトルで表されるものとする。鍵１１２は、クライアント自身が生体データと共に登録を所望する鍵データである。実施例では、鍵１１２は、例えば、数値で表されるものとする。
【００２０】
また、登録依頼部１１は、登録依頼に対する応答として、後述する近似判定行列３３１に対応する一次結合（格子の元）を秘匿データ照合装置３から受信し、受信した格子の元を秘匿データ生成部１２に出力する。また、登録依頼部１１は、生体データ１１１および鍵１１２を秘匿化した秘匿ベクトルを秘匿データ生成部１２から受け取ると、当該秘匿ベクトルの登録を秘匿データ照合装置３に依頼する。
【００２１】
秘匿データ生成部１２は、生体データ１１１および鍵１１２を秘匿化した秘匿ベクトルを生成する。
【００２２】
例えば、秘匿データ生成部１２は、生体データ１１１と鍵１１２に対して、生体データ１１１と鍵１１２の結合データの最終成分に「０」を追加したｎ＋２次元ベクトルを生成する。すなわち、秘匿データ生成部１２は、生体データ１１２が有するｎ次元の成分に、鍵１１２が有する１次元の成分と、ｎ＋２番目の成分として「０」を追加したｎ＋２次元ベクトルを生成する。一例として、生体データ１１１がｎ次元の成分を示すＴであり、鍵１１２が１次元の成分を示すＫであるとする。すると、秘匿データ生成部１２は、ｎ＋２次元ベクトルとして、［Ｔ、Ｋ、０］を生成する。
【００２３】
ここで、秘匿データ照合装置３から受信される、近似判定行列３３１に対応する一次結合（格子の元）は、後述するように、ｎ＋２次元ベクトルとなっている。秘匿データ生成部１２は、登録依頼部１１から一次結合（格子の元）を取得すると、乱数を生成する。そして、秘匿データ生成部１２は、一次結合（格子の元）と、乱数との積に、生成したｎ＋２次元ベクトルを加算した秘匿ベクトルを生成する。一例として、乱数がｒ１であり、ｎ＋２次元の格子の元がｂ１であるとすると、秘匿ベクトルは、［Ｔ、Ｋ、０］＋ｒ１×ｂ１で表される。そして、秘匿データ生成部１２は、生成した秘匿ベクトルを登録依頼部１１に出力する。
【００２４】
クライアント端末２は、照合依頼部２１と、秘匿データ生成部２２とを有する。
【００２５】
照合依頼部２１は、生体データの照合を秘匿データ照合装置３に依頼する。照合を依頼する生体データを照合データ２１１とする。実施例では、照合データ２１１は、ｎ次元の成分を有するベクトルで表されるものとする。また、照合依頼部２１は、照合依頼に対する応答として、後述する近似判定行列３３１に対応する一次結合（格子の元）を秘匿データ照合装置３から受信し、受信した格子の元を秘匿データ生成部２２に出力する。また、照合依頼部２１は、照合データ２１１を秘匿化した秘匿ベクトルを秘匿データ生成部２２から受け取ると、当該秘匿ベクトルの照合を秘匿データ照合装置３に依頼する。なお、秘匿データ照合装置３から受信される格子の元は、登録時にクライアント端末１の登録依頼部１１によって受信された格子の元と異なるものである。
【００２６】
秘匿データ生成部２２は、照合データ２１１を秘匿化した秘匿ベクトルを生成する。
【００２７】
例えば、秘匿データ生成部２２は、照合データ２１１の最終成分と最終から１つ前の成分に「０」を追加したｎ＋２次元ベクトルを生成する。すなわち、秘匿データ生成部２２は、照合データ２１１が有するｎ次元の成分に、ｎ＋１番目の成分およびｎ＋２番目の成分としてそれぞれ「０」を追加したｎ＋２次元ベクトルを生成する。一例として、照合データ２１１がｎ次元の成分を示すＱであるとする。すると、秘匿データ生成部２２は、ｎ＋２次元ベクトルとして、［Ｑ、０、０］を生成する。
【００２８】
また、秘匿データ生成部２２は、照合依頼部２１から一次結合（格子の元）を取得すると、乱数を生成する。そして、秘匿データ生成部２２は、一次結合（格子の元）と、乱数との積に、生成したｎ＋２次元ベクトルを加算した秘匿ベクトルを生成する。一例として、乱数がｒ２であり、ｎ＋２次元の格子の元がｂ２であるとすると、秘匿ベクトルは、［Ｑ、０、０］＋ｒ２×ｂ２で表される。そして、秘匿データ生成部２２は、生成した秘匿ベクトルを照合依頼部２１に出力する。なお、乱数を生成する手法は、任意の手法を用いることが可能であるものの、各クライアント端末１，２同士で生成する乱数が重複しないように、各種パラメータがそれぞれ異なることが望ましい。
【００２９】
秘匿データ照合装置３は、登録部３１と、照合判定部３２と、記憶部３３とを有する。登録部３１は、後述する近似判定行列を生成し、生成した近似判定行列を記憶部３３のデータベース３３０に登録する。また、登録部３１は、登録依頼のあった秘匿データを記憶部３３のデータベース３３０に登録する。照合判定部３２は、照合依頼のあった照合データを秘匿化した秘匿データと登録した秘匿データとを照合し、近似しているか否かを判定する。
【００３０】
記憶部３３は、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部３３は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）などのデータを書き換え可能な半導体メモリであっても良い。
【００３１】
記憶部３３は、データベース３３０を有する。データベース３３０には、近似判定行列３３１と、秘匿データ３３２と、閾値情報３３３とが記憶される。近似判定行列３３１および秘匿データ３３２は、後述する登録部３１によって登録される。近似判定行列３３１の詳細は、後述する。閾値情報３３３は、ベクトル間距離により照合データと登録データとの類似性を判定するための認証閾値を記憶したデータである。閾値情報３３３に記憶される認証閾値は、端末装置などにより外部から変更可能とされている。
【００３２】
登録部３１は、乱数生成部３１１と、近似判定行列生成部３１２と、近似判定行列登録部３１３と、秘匿データ登録部３１４とを有する。
【００３３】
乱数生成部３１１は、近似判定行列３３１で用いられる乱数を生成し、生成した乱数を近似判定行列生成部３１２に出力する。ここで、近似判定行列３３１で用いられる乱数とは、近似判定行列３３１を生成する際に近似範囲の閾値を示す正方行列に、最終列より１つ前の列、最終列として付加する乱数である。近似範囲の閾値とは、クライアンが近似範囲として設定した数値であり、近似範囲のベクトルとしての各次元方向の長さを示す情報である。例えば、乱数生成部３１１は、生体データを３次元（ｎ＝３）とし、生体データの各成分の近似範囲の閾値が「ｅ、ｆ、ｇ」である場合、ｅ／２≧ｈ、ｆ／２≧ｉ、ｇ／２≧ｊを満たす乱数「ｈ、ｉ、ｊ」、および任意の乱数「ｋ、ｌ」を生成する。
【００３４】
近似判定行列生成部３１２は、近似判定を行うための近似判定行列３３１を生成する。生成される近似判定行列３３１は、秘匿データ照合装置３が搭載されるシステム毎に異なるように生成されるものとする。
【００３５】
例えば、近似判定行列生成部３１２は、近似範囲を示す閾値を対角成分とし、他の成分を「０」とする対角行列を生成する。一例として、近似判定行列生成部３１２は、判定対象となる生体データがｎ個の成分を有する情報である場合、すなわち生体データ１１１がｎ次元の情報である場合には、ｎ×ｎの対角行列を生成する。また、近似判定行列生成部３１２は、鍵１１２の閾値を（ｎ＋１）行（ｎ＋１）列に設定する。鍵１１２の閾値とは、クライアントによって設定される鍵自体が採り得る最大値を示す情報である。
【００３６】
そして、近似判定行列生成部３１２は、生成したｎ×ｎの対角行列に、全ての成分が「０」である最終行−１行と最終行を付加した（ｎ＋２）×ｎ行列を生成する。そして、近似判定行列生成部３１２は、対角行列の行の数ｎの成分を有する乱数ベクトルを生成する。近似判定行列生成部３１２は、対角行列の行の数ｎに２を加算した数（最終行数）の成分を有する乱数ベクトルを生成する。乱数ベクトルの成分には、乱数生成部３１１によって生成された乱数が設定される。そして、秘匿データ照合装置３は、乱数ベクトルを付加した（ｎ＋２）×（ｎ＋２）の正方行列を近似判定行列３３１として生成する。
【００３７】
近似判定行列登録部３１３は、近似判定行列生成部３１２によって生成された近似判定行列３３１をデータベース３３０に登録する。
【００３８】
ここで、近似判定行列３３１について、図２を参照して説明する。図２は、実施例に係る近似判定行列を説明する図である。なお、図２に示す例では、生体データ、および近似範囲が３次元の数値によって表される例について説明する。図２に示すように、近似判定行列３３１に対応する近似判定行列Ｖは、点線で示す範囲の近似判定用の行列に鍵の閾値と乱数ベクトルとを付加した行列である。
【００３９】
近似判定用の行列は、近似範囲の各次元方向のベクトルとしての長さを指定する閾値を対角要素として有する。例えば、生体データを［ｘ，ｙ，ｚ］の３次元とした場合、図２に示す例では、１行目がｘ軸方向の近似範囲の長さが「２０」であり、２行目がｙ軸方向の近似範囲の長さが「２０」であり、３行目がｚ軸方向の近似範囲の長さが「２０」である旨を示す。すなわち、図２に示す近似判定用の行列は、ｘ軸方向に「±１０」、ｙ軸方向に「±１０」、ｚ軸方向に「±１０」の範囲内に２つの生体データが含まれるか否かを判定するための行列である。
【００４０】
そして、鍵埋め込み用の４行目に、「０、０、０」が付加される。さらに、４列目に、乱数ベクトル「７、４、５」と鍵の閾値「２００００」とを合わせた「７、４、５、２００００」が付加される。そして、最終行の５行目に、「０、０、０、０」が付加される。さらに、最終列の５列目に、乱数ベクトル「５、３、−２、−４２、１２３」が付加される。なお、図２に示す例では、近似範囲を３次元の数値で指定したが、実施例はこれに限定されるものではなく、任意の次元の数値を用いることができる。
【００４１】
秘匿データ登録部３１４は、秘匿データをデータベース３３０に登録する。登録された秘匿データが、キーバインディング（ｋｅｙ  ｂｉｎｄｉｎｇ）手法において、保護されるテンプレートに相当する。
【００４２】
例えば、秘匿データ登録部３１４は、クライアント端末１から生体データ１１１および鍵１１２の登録依頼があった場合、近似判定行列３３１に対応する一次結合用の乱数を生成する。一例として、秘匿データ登録部３１４は、近似判定行列３３１に対応するｎ＋２個の成分を有する行ベクトルｖ１、ｖ２、・・・、ｖｎ＋２を取得する。図３は、実施例に係る近似判定行列に対応する行ベクトルを説明する図である。例えば、近似判定行列３３１が図３に示すように５×５の行例の場合、秘匿データ登録部３１４は、近似判定行列３３１の各行をそれぞれ成分とする行ベクトルｖ１、ｖ２、・・・、ｖ5を取得する。そして、秘匿データ登録部３１４は、各行ベクトルｖ１、ｖ２、・・・、ｖｎ＋２に対して、それぞれ適当な整数ｄ１、ｄ２、・・・、ｄｎ＋２を選択する。すなわち、秘匿データ登録部３１４は、行ベクトルの数と同じ数だけ、整数を選択する。そして、秘匿データ登録部３１４は、各行ベクトルと各整数との積の和、すなわちｄ１×ｖ１＋ｄ２×ｖ２＋・・・＋ｄｎ＋２×ｖｎ＋２で表されるｎ＋２次元のベクトルを一次結合として算出する。この一次結合が「格子の元」である。なお、秘匿データ登録部３１４は、生体データ毎に、異なる整数ｄ１、ｄ２、・・・、ｄｎ＋２の組を選択し、選択した整数の組と近似判定行列３３１の各行ベクトルとの積の和である一次結合を算出する。
【００４３】
また、秘匿データ登録部３１４は、算出した一次結合すなわち格子の元を、登録依頼の応答として、クライアント端末１に配布する。そして、秘匿データ登録部３１４は、クライアント端末１から秘匿データ３３２の登録依頼があった場合、登録依頼があった秘匿データ３３２をデータベース３３０に登録する。
【００４４】
照合判定部３２は、照合依頼受付部３２１と、演算部３２２と、第１判定部３２３と、距離算出部３２４と、第２判定部３２５と、鍵出力部３２６とを有する。
【００４５】
照合依頼受付部３２１は、クライアント端末２から照合依頼を受け付けた場合、近似判定行列３３１に対応する一次結合（格子の元）用の乱数を生成する。一次結合用の乱数の生成は、秘匿データ登録部３１４による生成と同様であるので、その説明を省略する。なお、照合依頼受付部３２１によって生成される格子の元は、登録時に秘匿データ登録部３１４よって生成された格子の元と異なるように生成される。
【００４６】
また、照合依頼受付部３２１は、算出した一次結合すなわち格子の元を、照合依頼の応答として、クライアント端末２に配布する。そして、照合依頼受付部３２１は、クライアント端末２から照合データ２１１を秘匿化した秘匿ベクトルの照合依頼があった場合、照合依頼があった秘匿ベクトルを演算部３２２に出力する。
【００４７】
演算部３２２は、データベース３３０に登録された秘匿データ３３２（秘匿ベクトル）と、クライアント端末２から受信した照合データ２１１を秘匿化した秘匿ベクトルとの差分ベクトルを算出する。そして、演算部３２２は、算出した差分ベクトルから、近似判定行列３３１を法とした際の剰余である剰余ベクトルを算出する。例えば、演算部３２２は、算出した差分ベクトルを、近似判定行列３３１でｍｏｄ演算して  剰余ベクトルを算出する。一例として、差分ベクトルをｚ、近似判定行列３３１をＶとした場合、剰余ベクトルは、「ｚ  ｍｏｄ  Ｖ」で表される。そして、演算部３２２は、算出した剰余ベクトルを第１判定部３２３に出力する。
【００４８】
第１判定部３２３は、演算部３２２から受け取った剰余ベクトルの最終成分が「０」であるか否かを判定し、剰余ベクトルの最終成分が「０」である場合は、登録元の生体データ１１１と照合データ２１１が近似していると判定する。一方、第１判定部３２３は、剰余ベクトルの最終成分が「０」でない場合は、登録元の生体データ１１１と照合データ２１１が近似していないと判定する。
【００４９】
鍵出力部３２６は、第１判定部３２３において、近似していると判定された場合、剰余ベクトルからｎ＋１成分の鍵１１２を抽出する。
【００５０】
距離算出部３２４は、第１判定部３２３において、近似していると判定された場合、剰余ベクトルから、登録時の生体情報と照合時の生体情報のベクトル間距離を算出する。例えば、距離算出部３２４は、剰余ベクトルの生体情報に関する各成分を抽出し、ベクトル間距離として、各成分をそれぞれ二乗和した二乗ノルム距離を算出する。なお、ベクトル間距離は、二乗ノルム距離に限定されず、ハミング距離であってもよく、マンハッタン距離であってもよく、各成分に重みを付けて加算した距離であっても良い。
【００５１】
第２判定部３２５は、距離算出部３２４により算出されたベクトル間距離と閾値情報３３３に記憶された認証閾値との大小関係に基づいて、登録元の生体データ１１１と照合データ２１１の類似性を判定する。例えば、第２判定部３２５は、ベクトル間距離が認証閾値以下の場合は、登録元の生体データ１１１と照合データ２１１が近似していると判定する。一方、第２判定部３２５は、ベクトル間距離が認証閾値より大きい場合は、登録元の生体データ１１１と照合データ２１１が近似していないと判定する。
【００５２】
鍵出力部３２６は、第１判定部３２３および第２判定部３２５で共に類似していると判定された場合、抽出した鍵１１２を照合元となるクライアント端末２に送信する。
【００５３】
ここで、照合判定部３２が実行する近似判定の原理について説明する。近似判定行列３３１を近似判定行列Ｖとして説明する。近似判定行列Ｖの各行ベクトルｖ１、ｖ２、・・・、ｖｎ＋２の一次結合は、近似判定行列Ｖの各行ベクトルの一次結合ｄ１×ｖ１＋ｄ２×ｖ２＋・・・＋ｄｎ＋２×ｖｎ＋２を元とする集合Ｌ（格子Ｌ）で表すことができる。つまり、近似判定行列Ｖの各行ベクトルの一次結合は、集合Ｌの元からなる格子上のいずれかの交点に対応する。
【００５４】
ｎ次元の生体データＴおよび鍵Ｋを秘匿化した秘匿ベクトルＨは、集合Ｌの格子の元ｂ１と乱数ｒ１を用いて以下の式（１）で表される。なお、［Ｔ、Ｋ、０］とは、生体データＴに鍵Ｋとｎ＋２番目の成分として「０」を追加したｎ＋２次元ベクトルである。
Ｈ＝［Ｔ、Ｋ、０］＋ｒ１×ｂ１・・・式（１）
【００５５】
また、ｎ次元の照合データＱを秘匿化した秘匿ベクトルＨ´は、集合Ｌの格子の元ｂ２と乱数ｒ２を用いて以下の式（２）で表される。なお、［Ｑ、０、０］とは、照合データＱにｎ＋１番目の成分とｎ＋２番目の成分としてそれぞれ「０」を追加したｎ＋２次元ベクトルである。また、ｂ２はｂ１と異なる。
Ｈ´＝［Ｑ、０、０］＋ｒ２×ｂ２・・・式（２）
【００５６】
このような場合に、秘匿ベクトルＨとＨ´との差分ベクトルｚは、以下の式（３）で表される。
ｚ＝Ｈ−Ｈ´＝［Ｔ−Ｑ、Ｋ、０］＋ｒ１×ｂ１−ｒ２×ｂ２・・・式（３）
【００５７】
ここで、差分ベクトルｚが有するｒ１×ｂ１−ｒ２×ｂ２は、集合Ｌの元と乱数との積同士の差分であるため、集合Ｌの元に含まれている。つまり、ｒ１×ｂ１−ｒ２×ｂ２は、集合Ｌの元からなる格子上のいずれかの交点に対応する。また、差分ベクトルｚから近似判定行列Ｖの剰余ベクトルを計算した場合（ｚ  ｍｏｄ  Ｖ）は、集合Ｌによって定まる基本領域Ｐ（Ｌ）に差分ベクトルｚを写像することに対応する。このため、差分ベクトルｚから近似判定行列Ｖの剰余ベクトルを計算した場合は、ｒ１×ｂ１−ｒ２×ｂ２が無視されることとなる。このため、ｚ  ｍｏｄ  Ｖを算出した場合には、差分ベクトルｚのうち、差分ベクトルｚの先端以外を含む格子部分を無視し、差分ベクトルｚの先端を含む１つの格子のみを基本領域Ｐ（Ｌ）に写像することとなる。すなわち、以下の式（４）で表される。
ｚ  ｍｏｄ  Ｖ＝［Ｔ−Ｑ、Ｋ、０］  ｍｏｄ  Ｖ・・・式（４）
【００５８】
ベクトル［Ｔ−Ｑ、Ｋ、０］が基本領域Ｐ（Ｌ）に含まれる場合、すなわち、生体データＴと照合データＱが近似している場合には、ｚ  ｍｏｄ  Ｖ＝［Ｔ−Ｑ、Ｋ、０］となる。この結果、生体データＴと照合データＱが近似している場合には、ｚ  ｍｏｄ  Ｖの最終成分が非常に高い確率で「０」となる。
【００５９】
一方、ベクトル［Ｔ−Ｑ、Ｋ、０］が基本領域Ｐ（Ｌ）に含まれない場合、すなわち、生体データＴと照合データＱが近似していない場合には、集合Ｌに属する格子のある元をｂとすると、ｚ  ｍｏｄ  Ｖ＝［Ｔ−Ｑ、Ｋ、０］＋ｂとなる。この結果、生体データＴと照合データＱが近似していない場合には、ｚ  ｍｏｄ  Ｖの最終成分が非常に高い確率で「０」以外の値となる。
【００６０】
このような原理の下、照合判定部３２は、秘匿ベクトルの差分ｚから近似判定行列Ｖの剰余ベクトルを算出し、算出した剰余ベクトルの最終成分に基づいて、秘匿された生体データの近似判定を行うことができる。
【００６１】
次に、近似判定行列３３１の対角要素に近似範囲として指定する各閾値と、閾値情報３３３に記憶された認証閾値との関係について説明する。秘匿データ３３２は、クライアント端末１に配布した格子の元により秘匿化されており、近似判定行列３３１に対応して生成されている。このため、秘匿データ照合システム９では、近似判定行列３３１を一旦定めた後に変更すると、登録済みの秘匿データ３３２を、変更された近似判定行列３３１に対応させて再生成して登録しなければならなくなる。このように、秘匿データ照合システム９では、近似判定行列３３１の変更に手間がかかり、容易に変更し難い。
【００６２】
また、秘匿データ照合システム９では、近似判定行列３３１の対角要素の各閾値を小さな値として、近似範囲を小さくすると、照合データと登録データの小さい差異でも異なるものと判定されるため、セキュリティレベルが向上する。しかし、照合データと登録データとして使用される生体情報は、取得時の状況により誤差などを含む。例えば、生体情報として、人の指から指紋を取得する場合、読み取り面に配置された指の角度や向きなどの誤差により、指紋が全体的にずれて読み取られる場合や、指紋の一部の特徴点が読み取れない場合がある。よって、近似判定行列３３１の近似範囲を小さくすると、同じ人から取得した照合データと登録データを異なる人のものと判定してしまう場合がある。
【００６３】
そこで、秘匿データ照合システム９では、近似判定行列３３１の対角要素の各閾値を比較的大きな値として、近似範囲を比較的大きな範囲とする。例えば、秘匿データ照合システム９では、読み取りに誤差があっても、同じ人から取得した照合データと登録データが類似と判定されるように近似判定行列３３１の近似範囲を設定する。例えば、秘匿データ照合システム９では、近似判定行列３３１の対角要素の各閾値について、それぞれ誤差の範囲と見なせる値を指定する。
【００６４】
一方、近似判定行列３３１の近似範囲を比較的大きな範囲とした場合、異なる人の生体情報を類似していると判定してしまう場合がある。そこで、秘匿データ照合システム９では、確保すべきセキュリティレベルに応じて、閾値情報３３３に記憶された認証閾値を変更する。例えば、秘匿データ照合システム９では、認証のセキュリティレベルを高くするほど認証閾値を小さい値とする。これにより、秘匿データ照合システム９では、確保すべきセキュリティレベルに応じて、閾値情報３３３に記憶された認証閾値を変更することで、認証のセキュリティレベルを柔軟に変えることができる。
【００６５】
図４は、実施例に係る近似判定行列による近似範囲と認証閾値との関係を説明する図である。図４には、近似判定行列による近似範囲４０と、認証閾値４１による範囲４２が模式的に示されている。例えば、近似判定行列３３１の対角要素の各閾値は、それぞれ誤差の範囲と見なせる値に指定する。これにより、近似範囲４０内の場合に、第１判定部３２３により、近似していると判定される。また、認証閾値４１は、近似範囲４０内で確保すべきセキュリティレベルに応じて、値を変更する。範囲４２内の場合に、第２判定部３２５により、近似していると判定される。秘匿データ照合システム９では、近似判定行列３３１の変更は難いため、近似判定行列による近似範囲４０を生体情報の種類によらず誤差の範囲にする。また、秘匿データ照合システム９では、生体情報の種類によって認証閾値４１を変える。これにより、秘匿データ照合システム９では、さまざまな種類の生体情報の認証に柔軟に対応でき、認証精度を向上させることができる。秘匿データ照合システム９では、近似判定行列３３１の変更は難いが、認証閾値４１を変えることにより、認証のセキュリティレベルを柔軟に変えることができる。
【００６６】
［秘匿データの登録処理のシーケンス］
次に、秘匿データの登録処理のシーケンスを、図５を参照して説明する。図５は、実施例に係る秘匿データの登録処理のシーケンスを示す図である。なお、図５では、クライアントの生体データ１１１をＴ、クライアント固有の鍵１１２をＫ、近似判定行列３３１をＶ、秘匿ベクトルをＨで示すものとする。
【００６７】
秘匿データ照合装置３では、近似判定行列生成部３１２が、近似判定行列Ｖを生成する（ステップＳ１１）。そして、近似判定行列登録部３１３は、生成された近似判定行列Ｖをデータベース３３０に登録する（ステップＳ１２）。
【００６８】
クライアント端末１では、登録依頼部１１が、登録情報を取得する（ステップＳ１３）。ここでは、登録依頼部１１は、登録情報として、生体データＴおよび鍵Ｋを取得する。そして、登録依頼部１１は、生体データＴおよび鍵Ｋの登録を、秘匿データ照合装置３に依頼する（ステップＳ１４）。
【００６９】
秘匿データ照合装置３では、クライアント端末１から登録依頼を受け取った秘匿データ登録部３１４は、乱数格子ベクトルを生成する（ステップＳ１５）。ここでは、秘匿データ登録部３１４は、近似判定行列Ｖの各行ベクトルと適当な各整数との積の和で表される一次結合を算出する。算出された一次結合が乱数格子ベクトルｂ１であり、格子の元である。そして、秘匿データ登録部３１４は、算出した乱数格子ベクトル（格子の元）ｂ１をクライアント端末１に送信する（ステップＳ１６）。
【００７０】
クライアント端末１では、秘匿データ生成部１２が、登録情報を生成する（ステップＳ１７）。ここでは、秘匿データ生成部１２は、生体データＴと鍵Ｋの結合データの最終成分に「０」を追加したベクトル（Ｔ、Ｋ、０）を生成する。
【００７１】
そして、秘匿データ生成部１２は、登録情報を秘匿する（ステップＳ１８）。ここでは、秘匿データ生成部１２は、乱数格子ベクトル（格子の元）ｂ１と乱数との積に、生成したベクトル（Ｔ、Ｋ、０）を加算した秘匿ベクトルＨを生成する。乱数がｒ１であるとすると、秘匿ベクトルＨは、（Ｔ、Ｋ、０）＋ｒ１×ｂ１で表される。
【００７２】
そして、登録依頼部１１は、秘匿データ生成部１２によって秘匿された登録情報である秘匿ベクトルＨの登録を依頼すべく、当該秘匿ベクトルＨを秘匿データ照合装置３に送信する（ステップＳ１９）。この結果、秘匿ベクトルＨは、秘匿データ照合装置３のデータベース３３０に登録される。
【００７３】
［秘匿データの照合処理のシーケンス］
次に、秘匿データの照合処理のシーケンスを、図６を参照して説明する。図６は、実施例に係る秘匿データの照合処理のシーケンスを示す図である。なお、図６では、クライアントの照合データ２１１をＱ、クライアント固有の鍵１１２をＫ、近似判定行列３３１をＶ、秘匿ベクトルをＨ´、Ｈで示すものとする。
【００７４】
クライアント端末２では、照合依頼部２１が、照合情報を取得する（ステップＳ２１）。ここでは、照合依頼部２１は、照合情報として、照合データＱを取得する。そして、照合依頼部２１は、照合データＱの照合を、秘匿データ照合装置３に依頼する（ステップＳ２２）。
【００７５】
秘匿データ照合装置３では、クライアント端末２から照合依頼を受け取った照合依頼受付部３２１は、データベース３３０から近似判定行列Ｖを取得する（ステップＳ２３）。そして、照合依頼受付部３２１は、乱数格子ベクトルを生成する（ステップＳ２４）。ここでは、照合依頼受付部３２１は、読み出した近似判定行列Ｖの各行ベクトルと適当な各整数との積の和で表される一次結合を算出する。算出された一次結合が乱数格子ベクトルｂ２であり、格子の元である。そして、照合依頼受付部３２１は、算出した乱数格子ベクトル（格子の元）ｂ２をクライアント端末２に送信する（ステップＳ２５）。なお、ｂ２とｂ１とは、異なるものである。
【００７６】
クライアント端末２では、秘匿データ生成部２２が、秘匿照合情報を生成する（ステップＳ２６）。ここでは、秘匿データ生成部２２は、照合データＱに「０」を追加したベクトル（Ｑ、０、０）を生成する。そして、秘匿データ生成部２２は、乱数格子ベクトル（格子の元）ｂ２と乱数との積に、生成したベクトル（Ｑ、０、０）を加算した秘匿ベクトルＨ´を生成する。乱数がｒ２であるとすると、秘匿ベクトルＨ´は、（Ｑ、０、０）＋ｒ２×ｂ２で表される。そして、照合依頼部２１は、秘匿ベクトルＨ´の照合を依頼すべく、当該秘匿ベクトルＨ´を秘匿データ照合装置３に送信する（ステップＳ２７）。
【００７７】
秘匿データ照合装置３では、演算部３２２が、データベース３３０から秘匿ベクトルＨを取得する（ステップＳ２８）。そして、第１判定部３２３は、照合を依頼された秘匿ベクトルＨ´と、取得した秘匿ベクトルＨとの差分ベクトルから算出される剰余ベクトルを用いて、秘匿したまま照合する第一の認証を行う（ステップＳ２９）。ここでは、第１判定部３２３は、剰余ベクトルの最終成分が「０」であるか否かを判定する。そして、第１判定部３２３は、剰余ベクトルの最終成分が「０」である場合、登録元の生体データＴと照合データＱが近似していると判定する。一方、第１判定部３２３は、剰余ベクトルの最終成分が「０」でない場合、登録元の生体データＴと照合データＱが近似していないと判定する。
【００７８】
鍵出力部３２６は、近似していると判定された場合、剰余ベクトルからユーザ固有の鍵Ｋを抽出する（ステップＳ３０）。距離算出部３２４は、近似していると判定された場合、剰余ベクトルから、登録時の生体情報と照合時の生体情報のベクトル間距離を算出する（ステップＳ３１）。第２判定部３２５は、距離算出部３２４により算出されたベクトル間距離と、閾値情報３３３に記憶された認証閾値との大小関係に基づいて、登録元の生体データ１１１と照合データ２１１の類似性を判定する第二の認証を行う（ステップＳ３２）。ここでは、第２判定部３２５は、ベクトル間距離が認証閾値以下の場合は、登録元の生体データ１１１と照合データ２１１としていると判定する。一方、第２判定部３２５は、ベクトル間距離が認証閾値より大きい場合は、登録元の生体データ１１１と照合データ２１１が近似していないと判定する。
【００７９】
鍵出力部３２６は、第１判定部３２３および第２判定部３２５で共に類似していると判定された場合、抽出した鍵Ｋを、照合を依頼したクライアント端末２に送信する（ステップＳ３３）。
【００８０】
これにより、この後、クライアント端末２では、抽出されたクライアント固有の鍵Ｋを用いて認証チェックを行うことができる。一例として、クライアント端末２では、抽出されたクライアント固有の鍵Ｋを秘密鍵とすれば、秘密鍵と予め保管された公開鍵とを用いて、公開鍵認証方式に基づく認証チェックを行うことができる。
【００８１】
また、秘匿データ照合装置３は、生体データについて、テンプレート保護型の生体認証技術におけるｋｅｙ  ｂｉｎｄｉｎｇ手法において、ダイバーシティ（ｄｉｖｅｒｓｉｔｙ）性を満たすことができる。ｄｉｖｅｒｓｉｔｙ性とは、セキュリティ要件の１つであり、変換後のテンプレートが複数のデータベース間でクロスマッチングできない性質のことをいう。つまり、同じ生体情報について、複数のデータベースにそれぞれ格納された変換後のテンプレートに共通性が認められないことを意味する。秘匿データ照合装置３は、生体データＴとクライアント固有の鍵Ｋに対して、データベース３３０に登録する秘匿ベクトルＨを近似判定行列Ｖに応じて生成する。仮に、生体データＴとクライアント固有の鍵Ｋに対して、異なる２つの近似判定行列Ｖ１、Ｖ２から、それぞれ秘匿ベクトルＨ１、Ｈ２が生成されたとする。ｂ１がＶ１の近似判定行列から生成される格子の元とすると、Ｖ１の近似判定行列から生成された秘匿ベクトルＨ１は、（Ｔ、Ｋ、０）＋ｒ１×ｂ１で表せる。ｂ２がＶ２の近似判定行列から生成される格子の元とすると、Ｖ２の近似判定行列から生成された秘匿ベクトルＨ２は、（Ｔ、Ｋ、０）＋ｒ２×ｂ２で表せる。そうすると、近似判定行列Ｖ１とＶ２が異なるため、ｂ１、ｂ２が異なり、２つの秘匿ベクトルＨ１、Ｈ２から共通の情報が得られない。したがって、システム毎に近似判定行列Ｖ１、Ｖ２が異なれば、生体データＴとクライアント固有の鍵Ｋに対して、秘匿ベクトルＨ１、Ｈ２がクロスマッチングされることはない。つまり、ｄｉｖｅｒｓｉｔｙ性が満たされる。
【００８２】
［秘匿データの登録処理および照合処理の具体例］
次に、実施例に係る秘匿データの登録処理および照合処理について、具体例を挙げて説明する。秘匿データ照合システム９は、生体データとして３次元のデータを用いているものとする。例えば、登録時に、クライアント端末１に入力される第１のユーザの生体データＴが、［１２３、５１２、１２０］であり、鍵Ｋが「６４９７」であるとする。なお、秘匿データ照合装置３によって、図２に示す近似判定行列Ｖが生成されたとする。
【００８３】
［秘匿データの登録処理の具体例］
クライアント端末１から生体データＴおよび鍵Ｋの登録依頼を受け取った秘匿データ照合装置３は、近似判定行列Ｖの各行ベクトルをｖ１〜ｖ５とする。そして、秘匿データ照合装置３は、各行ベクトルｖ１〜ｖ５と適当な各整数との積の和で表される一次結合ｂ１を算出する。ここでは、一次結合ｂ１は、以下の式（５）で表される。
【００８４】
ｂ１＝２×ｖ１＋３×ｖ２−５×ｖ３−ｖ４＋５×ｖ５＝［４０、６０、−１００、−１９９９９９、６８６］・・・式（５）
【００８５】
そして、秘匿データ照合装置３は、算出した一次結合ｂ１をクライアント端末１に送信する。
【００８６】
一次結合ｂ１を受信したクライアント端末１は、一次結合ｂ１と乱数との積に、生体データＴと鍵Ｋの結合データの最終成分に「０」を追加したベクトル（Ｔ、Ｋ、０）を加算した秘匿ベクトルＨを生成する。ここでは、クライアントによって選択された乱数ｒ１が「７」であるとすると、秘匿ベクトルＨは、以下の式（６）で表される。
【００８７】
Ｈ＝［Ｔ、Ｋ、０］＋ｒ１×ｂ１＝［４０３、９３２、−５８０、−１３３４９６、４８０２］・・・式（６）
【００８８】
そして、クライアント端末１は、算出した秘匿ベクトルＨを秘匿データ照合装置３に送信する。そして、秘匿ベクトルＨは、秘匿データ照合装置３によってデータベース３３０に登録される。
【００８９】
［秘匿データの照合処理の具体例１］
１つの例として、照合時に、クライアント端末２に入力される第１のユーザの生体データである照合データＱ１が、［１２２、５１４、１２４］であるとする。
【００９０】
クライアント端末２から照合データＱ１の照合依頼を受け取った秘匿データ照合装置３は、近似判定行列Ｖの各行ベクトルをｖ１〜ｖ５とする。そして、秘匿データ照合装置３は、各行ベクトルｖ１〜ｖ５と適当な各整数との積の和で表される一次結合ｂ２を算出する。ここでは、一次結合ｂ２は、以下の式（７）で表される。
【００９１】
ｂ２＝５×ｖ１−２×ｖ２＋７×ｖ３＋ｖ５＝［１００、−４０、１４０、６２、１２８］・・・式（７）
【００９２】
そして、秘匿データ照合装置３は、算出した一次結合ｂ２をクライアント端末２に送信する。
【００９３】
一次結合ｂ２を受信したクライアント端末２は、一次結合ｂ２と乱数との積に、照合データＱ１に「０」を追加したベクトル［Ｑ１、０、０］を加算した秘匿ベクトルＨ１を生成する。ここでは、クライアントによって選択された乱数ｒ２が「１２３」であるとすると、秘匿ベクトルＨ１は、以下の式（８）で表される。
【００９４】
Ｈ１＝［Ｑ１、０、０］＋ｒ２×ｂ２＝［１２４２２、−４４０６、１７３４４、７６２６、１５７４４］・・・式（８）
【００９５】
そして、クライアント端末２は、算出した秘匿ベクトルＨ１の照合を依頼すべく、秘匿ベクトルＨ１を秘匿データ照合装置３に送信する。
【００９６】
続いて、秘匿データ照合装置３は、第一の認証を行う。秘匿データ照合装置３は、照合を依頼された秘匿ベクトルＨ１と、登録された秘匿ベクトルＨとの差分ベクトルｚ１から、近似判定行列Ｖを法とする剰余ベクトルを算出する。ここでは、差分ベクトルｚ１＝（Ｈ−Ｈ１）が算出され、近似判定行列Ｖを法とする剰余ベクトルが、以下の式（９）のように算出される。
【００９７】
ｚ１  ｍｏｄ  Ｖ＝ｚ１−［ｚ１×Ｖ−１］×Ｖ＝［１、−２、−４、６４９７、０］・・・式（９）
【００９８】
そして、秘匿データ照合装置３は、秘匿ベクトルＨ１から算出された剰余ベクトルの最終成分が「０」であるので、登録元の生体データＴと照合データＱ１が近似しており、第一の認証を成功と判定する。秘匿データ照合装置３は、第一の認証が成功すると、剰余ベクトルの最終成分の１つ前の成分の鍵Ｋを抽出する。ここでは、鍵Ｋとして「６４９７」が抽出される。
【００９９】
続いて、秘匿データ照合装置３は、第二の認証を行う。ここでは、第二の認証は登録元の生体データＴと照合データＱとの間のユークリッド距離ｄによって行われ、閾値情報３３３に記憶された認証閾値が「１０」であるとする。すなわち、秘匿データ照合装置３は、Ｔ−Ｑ＝［ｘ，ｙ，ｚ］に対し以下の式（１０）が成立するときに第二の認証を成功と判定し、そうでないとき認証失敗と判定する。
【０１００】
ｄ２＝ｘ２＋ｙ２＋ｚ２≦１０２・・・式（１０）
【０１０１】
秘匿データ照合装置３は、第二の認証として、式（９）からＴ−Ｑ１＝［１，−２，−４］を抽出し、式（１０）によりｄ１２＝２１を求める。秘匿データ照合装置３は、ｄ１２≦１００であるため第二の認証を成功と判定する。
【０１０２】
そして、秘匿データ照合装置３は、第一の認証および第二の認証が成功すると、照合を依頼したクライアント端末２に「６４９７」を鍵Ｋとして送信する。
【０１０３】
［秘匿データの照合処理の具体例２］
別の例として、照合時に、クライアント端末２に入力される第２のユーザの生体データである照合データＱ２が、［１２１、５５５、１２３］であるとする。
【０１０４】
クライアント端末２から照合データＱ２の照合依頼を受け取った秘匿データ照合装置３は、近似判定行列Ｖの各行ベクトルをｖ１〜ｖ５とする。そして、秘匿データ照合装置３は、各行ベクトルｖ１〜ｖ５と適当な各整数との積の和で表される一次結合ｂ２を算出する。ここでは、一次結合ｂ２は、前述の式（７）で表される。
【０１０５】
そして、秘匿データ照合装置３は、算出した一次結合ｂ２をクライアント端末２に送信する。
【０１０６】
一次結合ｂ２を受信したクライアント端末２は、一次結合ｂ２と乱数との積に、照合データＱ２に「０」を追加したベクトル［Ｑ２、０、０］を加算した秘匿ベクトルＨ２を生成する。ここでは、クライアントによって選択された乱数ｒ３が「−１７」であるとすると、秘匿ベクトルＨ２は、以下の式（１１）で表される。
【０１０７】
Ｈ２＝［Ｑ２、０、０］＋ｒ３×ｂ２＝［−１５７９、１２３５、−２２５７、−１０５４、−２１７６］・・・式（１１）
【０１０８】
そして、クライアント端末２は、算出した秘匿ベクトルＨ２の照合を依頼すべく、秘匿ベクトルＨ２を秘匿データ照合装置３に送信する。
【０１０９】
続いて、秘匿データ照合装置３は、第一の認証を行う。秘匿データ照合装置３は、照合を依頼された秘匿ベクトルＨ２と、登録された秘匿ベクトルＨとの差分ベクトルｚ２から、近似判定行列Ｖを法とする剰余ベクトルを算出する。ここでは、差分ベクトルｚ２＝（Ｈ−Ｈ２）が算出され、近似判定行列Ｖを法とする剰余ベクトルが、以下の式（１２）のように算出される。
【０１１０】
ｚ２  ｍｏｄ  Ｖ＝ｚ２−［ｚ２×Ｖ−１］×Ｖ＝［２、−３、−３、６５０５、６］・・・式（１２）
【０１１１】
そして、秘匿データ照合装置３は、秘匿ベクトルＨ２から算出された剰余ベクトルの最終成分が「０」でないので、登録元の生体データＴと照合データＱ２が近似していないと判定する。そして、秘匿データ照合装置３は、照合が失敗した旨を、照合を依頼したクライアント端末２に送信する。なお、秘匿データ照合装置３は、照合が失敗した旨の代わりに、剰余ベクトルの最終成分の１つ前の成分「６５０５」を送信しても良い。
【０１１２】
［秘匿データの照合処理の具体例３］
さらに別の例として、照合時に、クライアント端末２に入力される第２のユーザの生体データである照合データＱ３が、［１２９、５０４、１２２］であるとする。
【０１１３】
クライアント端末２から照合データＱ３の照合依頼を受け取った秘匿データ照合装置３は、近似判定行列Ｖの各行ベクトルをｖ１〜ｖ５とする。そして、秘匿データ照合装置３は、各行ベクトルｖ１〜ｖ５と適当な各整数との積の和で表される一次結合ｂ２を算出する。ここでは、一次結合ｂ２は、前述の式（７）で表される。
【０１１４】
そして、秘匿データ照合装置３は、算出した一次結合ｂ２をクライアント端末２に送信する。
【０１１５】
一次結合ｂ２を受信したクライアント端末２は、一次結合ｂ２と乱数との積に、照合データＱ３に「０」を追加したベクトル［Ｑ３、０、０］を加算した秘匿ベクトルＨ２を生成する。ここでは、クライアントによって選択された乱数ｒ４が「２６」であるとすると、秘匿ベクトルＨ３は、以下の式（１３）で表される。
【０１１６】
Ｈ３＝［Ｑ３、０、０］＋ｒ４×ｂ２＝［２７２９、−５３６、３７６２、１６１２、３３２８］・・・式（１３）
【０１１７】
そして、クライアント端末２は、算出した秘匿ベクトルＨ３の照合を依頼すべく、秘匿ベクトルＨ３を秘匿データ照合装置３に送信する。
【０１１８】
続いて、秘匿データ照合装置３は、第一の認証を行う。秘匿データ照合装置３は、照合を依頼された秘匿ベクトルＨ３と、登録された秘匿ベクトルＨとの差分ベクトルｚ３から、近似判定行列Ｖを法とする剰余ベクトルを算出する。ここでは、差分ベクトルｚ３＝（Ｈ−Ｈ３）が算出され、近似判定行列Ｖを法とする剰余ベクトルが、以下の式（１４）のように算出される。
【０１１９】
ｚ３  ｍｏｄ  Ｖ＝ｚ３−［ｚ３×Ｖ−１］×Ｖ＝［−６、８、−２、６４９７、０］・・・式（１４）
【０１２０】
そして、秘匿データ照合装置３は、秘匿ベクトルＨ３から算出された剰余ベクトルの最終成分が「０」であるので、登録元の生体データＴと照合データＱ３が近似しており、第一の認証を成功と判定する。秘匿データ照合装置３は、第一の認証が成功すると、剰余ベクトルの最終成分の１つ前の成分の鍵Ｋを抽出する。ここでは、鍵Ｋとして「６４９７」が抽出される。
【０１２１】
続いて、秘匿データ照合装置３は、第二の認証を行う。秘匿データ照合装置３は、式（１４）からＴ−Ｑ３＝［−６，８，−２］を抽出し、式（１０）によりｄ３２＝１０４を求める。秘匿データ照合装置３は、ｄ３２＞１００であるため第二の認証を失敗と判定する。この場合、秘匿データ照合装置３は、照合が失敗した旨を、照合を依頼したクライアント端末２に送信する。
【０１２２】
［実施例の効果］
上記実施例によれば、秘匿データ照合装置３は、照合データと登録データとの類似性を判定するための閾値および鍵データに関する閾値を対角成分とする行列に乱数ベクトルが最終列として付加された近似判定行列３３１の行ベクトルの一次結合と、第１の乱数とに基づいて、登録データと鍵データとを秘匿して得られた秘匿データ３３２を記憶部３３に記憶する。秘匿データ照合装置３は、近似判定行列３３１の行ベクトルの第２の一次結合と、第２の乱数とに基づいて、照合データを秘匿して得られた秘匿ベクトルを取得する。秘匿データ照合装置３は、秘匿データ３３２と秘匿ベクトルの差分から、近似判定行列３３１を法とする剰余である剰余ベクトルを算出する。秘匿データ照合装置３は、剰余ベクトルに基づいて、登録データと照合データの類似性を判定する。秘匿データ照合装置３は、登録データと照合データが類似していると判定された場合に、剰余ベクトルから鍵データを抽出する。秘匿データ照合装置３は、剰余ベクトルの成分を抽出し、登録データと照合データのベクトル間距離を算出する。秘匿データ照合装置３は、ベクトル間距離と認証閾値との大小関係に基づいて登録データと照合データの類似性を判定する。これにより、秘匿データ照合装置３は、さまざまな種類の生体情報の認証に柔軟に対応でき、認証精度を向上させることができる。例えば、秘匿データ照合装置３は、格子元付加によるＫｅｙ  ｂｉｎｄｉｎｇ方式において、さまざまな基準に基づいた認証が可能となり、生体情報を保護したままで既存の生体認証と同等の認証精度を実現できる。また、秘匿データ照合装置３は、単一の近似判定行列３３１をテンプレートとして用いて認証閾値の変更に対応することが可能となり、テンプレートの再登録の手間をかけることも、閾値の異なる複数のテンプレートを保持することもなく、確保すべきセキュリティレベルに応じた認証が行える。
【０１２３】
また、上記実施例によれば、秘匿データ照合装置３は、認証閾値を、認証のセキュリティレベルが高いほど小さい値とし、ベクトル間距離が認証閾値よりも小さい場合、登録データと照合データが類似していると判定する。これにより、秘匿データ照合装置３は、認証閾値を小さな値とすることで、認証のセキュリティレベルを高くできる。
【０１２４】
また、上記実施例によれば、秘匿データ照合装置３は、第１判定部３２３および第２判定部３２５で共に類似していると判定された場合、抽出された鍵を、照合データの判定依頼元に対して出力する。これにより、判定依頼元では、受け取った鍵を利用して、認証チェックを行うことができる。
【０１２５】
［その他］
なお、実施例では、秘匿データ照合装置３は、１クライアントに関する生体データ１１１と鍵１１２とを秘匿化した秘匿データ３３２をデータベース３３０に登録し、登録した秘匿データ３３２と照合データ２１１を秘匿した秘匿データを照合する場合を説明した。しかしながら、秘匿データ照合装置３は、複数クライアントに関する生体データ１１１と鍵１１２とをそれぞれ秘匿化した複数の秘匿データ３３２をデータベース３３０に登録しても良い。かかる場合、秘匿データ照合装置３は、照合依頼を受け付けると、登録された秘匿データ３３２を１つずつ選択し、選択した秘匿データ３３２と、照合依頼のあった照合データ２１１を秘匿した秘匿データとを照合すれば良い。そして、秘匿データ照合装置３は、照合の結果、近似していると判定した場合に、照合の際生成される剰余ベクトルから鍵１１２を抽出し、照合依頼元に送信すれば良い。
【０１２６】
また、実施例では、秘匿データ照合装置３は、照合の際生成される剰余ベクトルの最終成分が「０」であるか否かを判定することで、登録元の生体データ１１１と照合データ２１１が近似しているか否かを判定すると説明した。しかしながら、秘匿データ照合装置３は、これに限定されるものでなく、剰余ベクトルの複数成分が「０」であるか否かを判定することで、登録元の生体データ１１１と照合データ２１１が近似しているか否かを判定するようにしても良い。
【０１２７】
例えば、近似判定行列生成部３１２は、判定対象となる生体データがｎ個の成分を有する情報である場合、すなわち生体データ１１１がｎ次元の情報である場合には、ｎ×ｎの対角行列を生成する。また、近似判定行列生成部３１２は、ｎ×ｎの対角行列に、ｎ＋１行目の各成分が「０」の行ベクトルを付加する。そして、近似判定行列生成部３１２は、ｎ次元の乱数ベクトルと鍵１１２の閾値を合わせた列ベクトルをｎ＋１列目に付加する。そして、近似判定行列生成部３１２は、ｎ＋２行目の各成分が「０」の行ベクトルを付加する。そして、近似判定行列生成部３１２は、ｎ＋２次元の乱数ベクトルをｎ＋２列目に付加した（ｎ＋２）×（ｎ＋２）の行列を生成する。
【０１２８】
さらに、近似判定行列生成部３１２は、ｎ＋３行目の各成分が「０」の行ベクトルを付加する。そして、近似判定行列生成部３１２は、ｎ＋３次元の乱数ベクトルをｎ＋３列目に付加した（ｎ＋３）×（ｎ＋３）の近似判定行列３３１を生成するようにしても良い。
【０１２９】
すると、秘匿データ照合装置３は、実施例と同様の処理を行うことで、近似判定行列３３１を法としたｎ＋３次元の剰余ベクトルを算出する。そして、秘匿データ照合装置３は、剰余ベクトルのｎ＋２次元目からｎ＋３次元目までの成分が全て「０」であるか否かを判定することで、近似判定をすることができる。これにより、秘匿データ照合装置３は、近似判定の精度を向上させることができる。なお、同様に、近似判定行列生成部３１２は、（ｎ＋ｍ）×（ｎ＋ｍ）（ｍは３より大きい自然数）の近似判定行列３３１を生成するようにすれば、近似判定の精度をさらに向上させることができる。
【０１３０】
また、実施例では、秘匿データ照合装置３は、第１判定部３２３において、近似していると判定された場合、剰余ベクトルからｎ＋１成分の鍵１１２を抽出する場合を説明した。しかしながら、秘匿データ照合装置３は、第１判定部３２３および第２判定部３２５で共に類似していると判定された場合、鍵１１２を抽出するようにしても良い。
【０１３１】
また、実施例では、秘匿データ照合装置３は、生体データ１１１の近似判定に用いる場合を説明した。しかしながら、秘匿データ照合装置３は、これに限定されるものではなく、機密文章間の秘匿類似判定に用いることができる。例えば、クライアント端末１は、機密文章から特徴を有する文字や文章部分を抽出し、抽出した部分の特徴量を示す特徴量ベクトルを生成する。そして、クライアント端末１は、実施例と同様の処理を行うことで、生成した特徴量ベクトルと鍵を秘匿化した秘匿ベクトルを生成し、秘匿データ照合装置３のデータベース３３０に登録する。そして、秘匿データ照合装置３は、実施例と同様の処理を行うことで、クライアント端末２によって生成された、照合したい特徴量ベクトルを秘匿化した秘匿ベクトルと登録した秘匿ベクトルとを照合するようにすれば良い。
【０１３２】
また、秘匿データ照合装置３は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した登録部３１および照合判定部３２などの各機能を搭載することによって実現することができる。
【０１３３】
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、乱数生成部３１１と近似判定行列生成部３１２とを１個の部として統合しても良い。一方、近似判定行列生成部３１２を、近似範囲を示す閾値と鍵の閾値を行列に設定する第１の設定部と、乱数を設定する第２の設定部とを分散しても良い。また、データベース３３０を秘匿データ照合装置３の外部装置として接続するようにしても良いし、ネットワーク経由で接続するようにしても良い。
【０１３４】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１に示した秘匿データ照合装置３と同様の機能を実現する秘匿データ照合プログラムを実行するコンピュータの一例を説明する。図７は、秘匿データ照合プログラムを実行するコンピュータの一例を示す図である。
【０１３５】
図７に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラムなどを読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【０１３６】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、秘匿データ照合プログラム２０５ａおよび秘匿データ照合関連情報２０５ｂを記憶する。
【０１３７】
ＣＰＵ２０３は、秘匿データ照合プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、秘匿データ照合装置３の各機能部に対応する。秘匿データ照合関連情報２０５ｂは、近似判定行列３３１、秘匿データ３３２、閾値情報３３３に対応する。そして、例えばリムーバブルディスク２１１が、秘匿データ照合プログラム２０５ａなどの各情報を記憶する。
【０１３８】
なお、秘匿データ照合プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらから秘匿データ照合プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【０１３９】
１，２  クライアント端末
３  秘匿データ照合装置
９  秘匿データ照合システム
１１  登録依頼部
１１１  生体データ
１１２  鍵
１２  秘匿データ生成部
２１  照合依頼部
２１１  照合データ
２２  秘匿データ生成部
３１  登録部
３１１  乱数生成部
３１２  近似判定行列生成部
３１３  近似判定行列登録部
３１４  秘匿データ登録部
３２  照合判定部
３２１  照合依頼受付部
３２２  演算部
３２３  第１判定部
３２４  距離算出部
３２５  第２判定部
３２６  鍵出力部
３３  記憶部
３３０  データベース
３３１  近似判定行列
３３２  秘匿データ
３３３  閾値情報
【図１】
0006524899.tif 000002
【図２】
0006524899.tif 000003
【図３】
0006524899.tif 000004
【図４】
0006524899.tif 000005
【図５】
0006524899.tif 000006
【図６】
0006524899.tif 000007
【図７】
0006524899.tif 000008