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