(57)【特許請求の範囲】
【請求項１】
２つのデータが近似しているかを判定するための閾値と鍵データに関する閾値とを対角成分とする行列に乱数ベクトルを最終列として付加して生成された判定行列の行ベクトルを用いた第１の一次結合と、第１の乱数とに基づいて、第１のデータと鍵データとを秘匿して得られる第１の秘匿ベクトルを記憶する記憶部と、
前記判定行列の行ベクトルを用いた第２の一次結合と、第２の乱数とに基づいて、第２のデータを秘匿して得られる第２の秘匿ベクトルを取得する取得部と、
前記記憶部に記憶された第１の秘匿ベクトルと、前記取得部によって取得された第２の秘匿ベクトルとの差分から、前記判定行列を法とした際の剰余である剰余ベクトルを算出する算出部と、
前記算出部によって算出された剰余ベクトルに基づいて、前記第１のデータと前記第２のデータとが近似しているか否かを判定する判定部と、
前記判定部による判定の結果、前記第１のデータと前記第２のデータとが近似していると判定された場合に、前記剰余ベクトルから鍵データを抽出する抽出部と、
前記抽出部によって抽出された鍵データと前記取得部によって取得された第２の秘匿ベクトルとを足し合わせて第３の秘匿ベクトルを生成する生成部と、
前記生成部によって生成された第３の秘匿ベクトルを前記記憶部に格納する格納部と、
を有することを特徴とする秘匿データ照合装置。
【請求項２】
前記格納部は、前記生成部によって生成された第３の秘匿ベクトルを追加し、前記第１の秘匿ベクトルを削除する
ことを特徴とする請求項１に記載の秘匿データ照合装置。
【請求項３】
前記格納部は、前記生成部によって生成された第３の秘匿ベクトルを、さらに追加する
ことを特徴とする請求項１に記載の秘匿データ照合装置。
【請求項４】
前記生成部は、前記第１のデータと前記第２のデータとが近似していると判定された場合に、前記第１のデータと前記鍵データとを秘匿して得られた前記第１の秘匿ベクトルと前記取得部によって取得された第２の秘匿ベクトルとを足し合わせた第３の秘匿ベクトルを生成し、
前記格納部は、前記生成部によって生成された第３の秘匿ベクトルを追加し、前記第１の秘匿ベクトルを削除する
ことを特徴とする請求項１に記載の秘匿データ照合装置。
【請求項５】
前記生成部は、所定のタイミングで、前記鍵データと前記第２の秘匿ベクトルとを足し合わせて第３の秘匿ベクトルを生成する
ことを特徴とする請求項１から請求項４のいずれか１つに記載の秘匿データ照合装置。
【請求項６】
２つのデータが近似しているかを判定するための閾値と鍵データに関する閾値とを対角成分とする行列に乱数ベクトルを最終列として付加して生成された判定行列の行ベクトルを用いた第１の一次結合と、第１の乱数とに基づいて、第１のデータと鍵データとを秘匿して得られる第１の秘匿ベクトルを記憶部に登録し、
前記判定行列の行ベクトルを用いた第２の一次結合と、第２の乱数とに基づいて、第２のデータを秘匿して得られる第２の秘匿ベクトルを取得し、
前記記憶部に記憶された第１の秘匿ベクトルと、前記取得する処理によって取得された第２の秘匿ベクトルとの差分から、前記判定行列を法とした際の剰余である剰余ベクトルを算出し、
前記算出する処理によって算出された剰余ベクトルに基づいて、前記第１のデータと前記第２のデータとが近似しているか否かを判定し、
前記判定する処理による判定の結果、前記第１のデータと前記第２のデータとが近似していると判定された場合に、前記剰余ベクトルから鍵データを抽出し、
前記抽出する処理によって抽出された鍵データと前記取得部によって取得された第２の秘匿ベクトルとを足し合わせて第３の秘匿ベクトルを生成し、
前記生成する処理によって生成された第３の秘匿ベクトルを前記記憶部に格納する
処理をコンピュータに実行させることを特徴とする秘匿データ更新プログラム。
【請求項７】
コンピュータが、
２つのデータが近似しているかを判定するための閾値と鍵データに関する閾値とを対角成分とする行列に乱数ベクトルを最終列として付加して生成された判定行列の行ベクトルを用いた第１の一次結合と、第１の乱数とに基づいて、第１のデータと鍵データとを秘匿して得られる第１の秘匿ベクトルを記憶部に登録し、
前記判定行列の行ベクトルを用いた第２の一次結合と、第２の乱数とに基づいて、第２のデータを秘匿して得られる第２の秘匿ベクトルを取得し、
前記記憶部に記憶された第１の秘匿ベクトルと、前記取得する処理によって取得された第２の秘匿ベクトルとの差分から、前記判定行列を法とした際の剰余である剰余ベクトルを算出し、
前記算出する処理によって算出された剰余ベクトルに基づいて、前記第１のデータと前記第２のデータとが近似しているか否かを判定し、
前記判定する処理による判定の結果、前記第１のデータと前記第２のデータとが近似していると判定された場合に、前記剰余ベクトルから鍵データを抽出し、
前記抽出する処理によって抽出された鍵データと前記取得部によって取得された第２の秘匿ベクトルとを足し合わせて第３の秘匿ベクトルを生成し、
前記生成する処理によって生成された第３の秘匿ベクトルを前記記憶部に格納する
各処理を実行することを特徴とする秘匿データ更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘匿データ照合装置などに関する。
【背景技術】
【０００２】
生体認証とは、人間の身体的特徴や行動的特徴の情報を用いた個人認証技術である。人間の身体的特徴には、例えば、指紋、静脈、虹彩や顔などがある。行動的特徴には、例えば、筆跡や歩容などがある。生体認証では、テンプレートと呼ばれる生体情報を事前に採取し、採取した生体情報と照合時にセンサで取得した情報とを比較することで認証が行われる。
【０００３】
近年、テンプレートに何らかの変換を施したものをデータベースに格納しておき、照合時に元のテンプレートに復元することなく比較する生体認証技術が着目されている。この生体認証技術は、「テンプレート保護型の生体認証技術」といわれる。テンプレート保護型の生体認証技術を用いたシステムでは、変換後のテンプレートが漏洩したとしても、変換方法を変更することで、漏洩したテンプレートを使用不可にし、漏洩したテンプレートへのアクセスを防ぐことができる。
【０００４】
テンプレート保護型の生体認証技術には、キーバインディング（Ｋｅｙ  ｂｉｎｄｉｎｇ）手法というテンプレート保護手法が知られている。Ｋｅｙ  ｂｉｎｄｉｎｇ手法は、生体情報を示すテンプレートとユーザ固有の鍵を結合してこれらを保護する手法である。Ｋｅｙ  ｂｉｎｄｉｎｇ手法では、生体情報の登録時に、ユーザは、生体情報とユーザ固有の鍵を入力し、サーバは、これらを結合したものをセキュアテンプレートとしてデータベースに登録する。生体情報の照合時に、ユーザは、生体情報を入力し、サーバは、入力された生体情報とセキュアテンプレートとを照合し、十分近い場合に、ユーザ固有の鍵を抽出する。
【０００５】
Ｋｅｙ  ｂｉｎｄｉｎｇ手法を実現する技術の１つとして、格子元付加によるＫｅｙ  ｂｉｎｄｉｎｇ手法の技術が知られている（例えば、非特許文献１参照）。かかる技術では、同一の生体情報と鍵とからシステム毎に異なるセキュアテンプレートを生成できるとともに、登録時および照合時に秘匿されていない状態の生体情報をサーバに送る必要がない。
【０００６】
また、Ｋｅｙ  ｂｉｎｄｉｎｇ手法を実現する他の技術には、誤り訂正符号の技術を利用したｆｕｚｚｙ  ｃｏｍｍｉｔｍｅｎｔやｆｕｚｚｙ  ｖａｕｌｔなどの方式が知られている。ｆｕｚｚｙ  ｃｏｍｍｉｔｍｅｎｔおよびｆｕｚｚｙ  ｖａｕｌｔは、同じ生体情報について、テンプレートとユーザ固有の鍵から生成される補助情報に共通部分があることが知られている。ｆｕｚｚｙ  ｃｏｍｍｉｔｍｅｎｔおよびｆｕｚｚｙ  ｖａｕｌｔは、登録時および照合時に秘匿されていない状態の生体情報をサーバに送ることが知られている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】杉村由花，安田雅哉，山田茂史，安部登樹，新崎卓，「格子マスキングを利用したKey  Binding技術の提案」．情報セキュリティ研究会（ISEC），電子情報通信学会技術研究報告，Vol.  113,  No.  135,  pp.  297-304
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、生体認証に用いられる生体情報として、個人に特有で変化の少ない生体情報が選ばれる。しかしながら、一般に年月の経過により、照合時に採取される生体情報と最初に登録したテンプレートとの類似度は徐々に低下する。これは、身体的特徴や行動的特徴そのものの長期的な変化により起こる。また、照合時に、身体的特徴や行動的特徴を採取する機器に対する操作慣れなどにより起こる。このような類似度低下を防ぐために、テンプレートを一定期間毎、若しくは類似度低下の兆候に応じて更新することが行われている。テンプレートの更新の方法として、最初の登録時の手順を繰り返す方法が挙げられる。
【０００９】
しかしながら、従来のＫｅｙ  ｂｉｎｄｉｎｇ手法を実現する技術では、生体情報を安全且つ簡便に更新することができないという問題がある。
【００１０】
例えば、最初の登録時の手順を繰り返す方法では、ユーザが、生体情報を登録する専用の場所に赴いたり、一定期間若しくは類似度低下の兆候の都度、生体情報の採取を繰り返したりするため、サーバは、生体情報を簡便に更新することができない。
【００１１】
また、ｆｕｚｚｙ  ｃｏｍｍｉｔｍｅｎｔおよびｆｕｚｚｙ  ｖａｕｌｔは、登録時に秘匿されていない状態の生体情報をサーバに送るので、サーバは、生体情報を安全に更新することができない。
【００１２】
格子元付加によるＫｅｙ  ｂｉｎｄｉｎｇ手法であっても、登録時および照合時に秘匿されていない状態の生体情報をサーバに送らないものの、最初の登録時の手順を繰り返すことになるので、サーバは、生体情報を簡便に更新することができない。
【００１３】
なお、上記課題は、生体情報の更新に限らず、位置情報や機密情報等の数値情報の更新であっても、同様に生じる課題である。
【００１４】
１つの側面では、本発明は、テンプレート保護型の生体認証技術におけるＫｅｙ  ｂｉｎｄｉｎｇ手法において、生体情報を安全且つ簡便に更新することを目的とする。
【課題を解決するための手段】
【００１５】
１つの側面では、秘匿データ照合装置は、２つのデータが近似しているかを判定するための閾値と鍵データに関する閾値とを対角成分とする行列に乱数ベクトルを最終列として付加して生成された判定行列の行ベクトルを用いた第１の一次結合と、第１の乱数とに基づいて、第１のデータと鍵データとを秘匿して得られる第１の秘匿ベクトルを記憶する記憶部と、前記判定行列の行ベクトルを用いた第２の一次結合と、第２の乱数とに基づいて、第２のデータを秘匿して得られる第２の秘匿ベクトルを取得する取得部と、前記記憶部に記憶された第１の秘匿ベクトルと、前記取得部によって取得された第２の秘匿ベクトルとの差分から、前記判定行列を法とした際の剰余である剰余ベクトルを算出する算出部と、前記算出部によって算出された剰余ベクトルに基づいて、前記第１のデータと前記第２のデータとが近似しているか否かを判定する判定部と、前記判定部による判定の結果、前記第１のデータと前記第２のデータとが近似していると判定された場合に、前記剰余ベクトルから鍵データを抽出する抽出部と、前記抽出部によって抽出された鍵データと前記取得部によって取得された第２の秘匿ベクトルとを足し合わせて第３の秘匿ベクトルを生成する生成部と、前記生成部によって生成された第３の秘匿ベクトルを前記記憶部に格納する格納部と、を有する。
【発明の効果】
【００１６】
本願の開示するシステムの１つの態様によれば、テンプレート保護型の生体認証技術におけるｋｅｙ  ｂｉｎｄｉｎｇ手法において、生体情報を安全且つ簡便に更新することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施例１に係る秘匿データ照合システムの機能構成の一例を説明する図である。
【図２】図２は、近似判定行列の一例を示す図である。
【図３】図３は、秘匿データの登録処理のシーケンスを示す図である。
【図４】図４は、実施例１に係る秘匿データの更新処理のシーケンスを示す図である。
【図５】図５は、実施例２に係る秘匿データ照合システムの機能構成の一例を説明する図である。
【図６】図６は、実施例２に係る秘匿データの更新処理のシーケンスを示す図である。
【図７】図７は、実施例３に係る秘匿データ照合システムの機能構成の一例を説明する図である。
【図８】図８は、実施例３に係る秘匿データの更新処理のシーケンスを示す図である。
【図９】図９は、テンプレート更新の効果を示す図である。
【図１０】図１０は、秘匿データ更新プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１８】
以下に、本願の開示する秘匿データ照合装置、秘匿データ更新プログラムおよび秘匿データ更新方法の実施例を図面に基づいて詳細に説明する。なお、秘匿データ照合装置は、テンプレート保護型の生体認証技術のうちｋｅｙ  ｂｉｎｄｉｎｇ手法を採用する。また、実施例によりこの発明が限定されるものではない。
【実施例１】
【００１９】
［秘匿データ照合システムの構成］
図１は、実施例に係る秘匿データ照合システムの機能構成の一例を説明する図である。図１に示すように、秘匿データ照合システム９は、クライアント端末１，２と、秘匿データ照合装置３とを有する。秘匿データ照合装置３には、データベース３３０が含まれる。秘匿データ照合装置３とクライアント端末１，２とは、ネットワークで接続されている。
【００２０】
ここで、秘匿データ照合システム９は、クライアントの生体データおよびクライアント固有の鍵データを格子マスキングと呼ばれる特殊な乱数（格子の元）に基づいて秘匿化し、秘匿化して得られた第１の秘匿データをデータベース３３０に登録する。そして、秘匿データ照合システム９は、クライアントから生体データの照合の依頼があったとき、照合対象の生体データを異なる格子の元に基づいて秘匿化し、秘匿化して得られた第２の秘匿データを取得する。そして、秘匿データ照合システム９は、第１の秘匿データと、第２の秘匿データとの差分から、格子理論特有の写像を用いることで、第１の秘匿データに対応する生体データと、第２の秘匿データに対応する生体データとが近似しているか否かを判定する。そして、秘匿データ照合システム９は、近似していると判定した場合、第１の秘匿データから鍵データを抽出し、抽出した鍵データと、認証時に用いられた第２の秘匿データとを足し合わせた第３の秘匿データを生成する。そして、秘匿データ照合システム９は、生成した第３の秘匿データを第１の秘匿データに代えてデータベース３３０に登録する。すなわち、秘匿データ照合システム９は、照合の依頼があったクライアントの生体データを秘匿した秘匿データとして第３の秘匿データを更新登録する。実施例では、説明の便宜上、クライアント端末１が、生体データを登録するクライアントの端末であるとし、クライアント端末２が、生体データについて照合を依頼する端末であるとする。なお、クライアント端末１は、複数台存在しても良い。クライアント端末２は、複数台存在しても良い。
【００２１】
このような秘匿データ照合システム９において、クライアントの生体データおよびクライアント固有の鍵データが秘匿化された秘匿データを更新する内容について、以下に説明する。
【００２２】
クライアント端末１は、登録依頼部１１と、秘匿データ生成部１２とを有する。実施例では、鍵１１２は、例えば、数値で表されるものとする。
【００２３】
登録依頼部１１は、生体データ１１１および鍵１１２の登録を秘匿データ照合装置３に依頼する。例えば、登録依頼部１１は、生体データ１１１および鍵１１２を外部の端末から受信する。そして、登録依頼部１１は、受信した生体データ１１１および鍵１１２の登録を秘匿データ照合装置３に依頼する。なお、外部の端末は、ネットワークを介した端末であっても良い。
【００２４】
ここで、生体データ１１１は、クライアントの身体的特徴や行動的特徴のデータである。身体的特徴のデータの一例として、指紋、静脈、虹彩および顔が挙げられる。行動的特徴のデータの一例として、筆跡および歩容が挙げられる。実施例では、生体データ１１１は、ｎ次元の成分を有するベクトルで表されるものとする。鍵１１２は、クライアント自身が生体データと共に登録を所望する鍵データである。実施例では、鍵１１２は、例えば、数値で表されるものとする。
【００２５】
また、登録依頼部１１は、登録依頼に対する応答として、後述する近似判定行列３３１に対応する一次結合（格子の元）を秘匿データ照合装置３から受信し、受信した格子の元を秘匿データ生成部１２に出力する。また、登録依頼部１１は、生体データ１１１および鍵１１２を秘匿化した秘匿データを秘匿データ生成部１２から受け取ると、当該秘匿データの登録を秘匿データ照合装置３に依頼する。
【００２６】
秘匿データ生成部１２は、生体データ１１１および鍵１１２を秘匿化した秘匿データを生成する。
【００２７】
例えば、秘匿データ生成部１２は、生体データ１１１と鍵１１２に対して、生体データ１１１と鍵１１２の結合データの最終成分に「０」を追加したｎ＋２次元ベクトルを生成する。すなわち、秘匿データ生成部１２は、生体データ１１１が有するｎ次元の成分に、鍵１１２が有する１次元の成分と、ｎ＋２番目の成分として「０」を追加したｎ＋２次元ベクトルを生成する。一例として、生体データ１１１がｎ次元の成分を示すＴであり、鍵１１２が１次元の成分を示すＫであるとする。すると、秘匿データ生成部１２は、ｎ＋２次元ベクトルとして、（Ｔ、Ｋ、０）を生成する。
【００２８】
また、秘匿データ生成部１２は、登録依頼部１１から一次結合（格子の元）を取得すると、乱数を生成する。そして、秘匿データ生成部１２は、一次結合（格子の元）と、乱数との積に、生成したｎ＋２次元ベクトルを加算した秘匿ベクトルを生成する。一例として、乱数がｒ１であり、格子の元がｂ１であるとすると、秘匿ベクトルは、（Ｔ、Ｋ、０）＋ｒ１×ｂ１で表される。そして、秘匿データ生成部１２は、生成した秘匿ベクトルを秘匿データとして登録依頼部１１に出力する。
【００２９】
クライアント端末２は、照合依頼部２１と、秘匿データ生成部２２とを有する。
【００３０】
照合依頼部２１は、生体データの照合を秘匿データ照合装置３に依頼する。照合を依頼する生体データを照合データ２１１とする。実施例では、照合データ２１１は、ｎ次元の成分を有するベクトルで表されるものとする。また、照合依頼部２１は、照合依頼に対する応答として、後述する近似判定行列３３１に対応する一次結合（格子の元）を秘匿データ照合装置３から受信し、受信した格子の元を秘匿データ生成部２２に出力する。また、照合依頼部２１は、照合データ２１１を秘匿化した秘匿データを秘匿データ生成部２２から受け取ると、当該秘匿データの照合を秘匿データ照合装置３に依頼する。なお、秘匿データ照合装置３から受信される格子の元は、登録時にクライアント端末１の登録依頼部１１によって受信された格子の元と異なるものである。
【００３１】
秘匿データ生成部２２は、照合データ２１１を秘匿化した秘匿データを生成する。
【００３２】
例えば、秘匿データ生成部２２は、照合データ２１１の最終成分と最終から１つ前の成分に「０」を追加したｎ＋２次元ベクトルを生成する。すなわち、秘匿データ生成部２２は、照合データ２１１が有するｎ次元の成分に、ｎ＋１番目の成分およびｎ＋２番目の成分としてそれぞれ「０」を追加したｎ＋２次元ベクトルを生成する。一例として、照合データ２１１がｎ次元の成分を示すＱであるとする。すると、秘匿データ生成部２２は、ｎ＋２次元ベクトルとして、（Ｑ、０、０）を生成する。
【００３３】
また、秘匿データ生成部２２は、照合依頼部２１から一次結合（格子の元）を取得すると、乱数を生成する。そして、秘匿データ生成部２２は、一次結合（格子の元）と、乱数との積に、生成したｎ＋２次元ベクトルを加算した秘匿ベクトルを秘匿データとして生成する。一例として、乱数がｒ２であり、格子の元がｂ２であるとすると、秘匿ベクトルは、（Ｑ、０、０）＋ｒ２×ｂ２で表される。そして、秘匿データ生成部２２は、生成した秘匿ベクトルを秘匿データとして照合依頼部２１に出力する。なお、乱数を生成する手法は、任意の手法を用いることが可能であるものの、各クライアント端末１，２同士で生成する乱数が重複しないように、各種パラメータがそれぞれ異なることが望ましい。
【００３４】
秘匿データ照合装置３は、登録部３１と、照合判定部３２と、記憶部３３とを有する。登録部３１は、後述する近似判定行列３３１を生成し、生成した近似判定行列を記憶部３３のデータベース３３０に登録する。また、登録部３１は、登録依頼のあった秘匿データを記憶部３３のデータベース３３０に登録する。照合判定部３２は、照合依頼のあった照合データを秘匿化した秘匿データと登録された秘匿データとを照合し、近似しているか否かを判定し、近似している場合には、照合依頼のあった照合データを秘匿化した秘匿データを用いて、既に登録された秘匿データを更新する。
【００３５】
記憶部３３は、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部３３は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）などのデータを書き換え可能な半導体メモリであっても良い。
【００３６】
記憶部３３は、データベース３３０を記憶する。データベース３３０には、近似判定行列３３１および秘匿データ３３２が記憶される。秘匿データ３３２は、１ユーザに対して１つ記憶されるものとする。なお、近似判定行列３３１は、後述する登録部３１によって登録される。秘匿データ３３２は、後述する登録部３１によって登録され、後述する照合判定部３２によって更新される。また、近似判定行列３３１の詳細は、後述する。
【００３７】
登録部３１は、乱数生成部３１１と、近似判定行列生成部３１２と、近似判定行列登録部３１３と、秘匿データ登録部３１４とを有する。
【００３８】
乱数生成部３１１は、近似判定行列３３１の生成に用いられる乱数を生成し、生成した乱数を近似判定行列生成部３１２に出力する。ここで、近似判定行列３３１の生成に用いられる乱数とは、近似判定行列３３１を生成する際に近似範囲の閾値を示す正方行列に対して最終列および最終列より１つ前の列に付加する乱数である。近似範囲の閾値とは、クライアントが近似範囲として設定した数値であり、近似範囲のベクトルとしての各次元方向の長さを示す情報である。例えば、乱数生成部３１１は、近似範囲の閾値が「ｅ、ｆ、ｇ」である場合、ｅ／２≧ｈ、ｆ／２≧ｉ、ｇ／２≧ｊを満たす乱数「ｈ、ｉ、ｊ」、および任意の乱数「ｋ、ｌ」を生成する。
【００３９】
近似判定行列生成部３１２は、近似判定を行うための近似判定行列３３１を生成する。生成される近似判定行列３３１は、秘匿データ照合装置３が搭載されるシステム毎に異なるように生成されるものとする。
【００４０】
例えば、近似判定行列生成部３１２は、近似範囲を示す閾値を対角成分とし、他の成分を「０」とする対角行列を生成する。一例として、近似判定行列生成部３１２は、判定対象となる生体データがｎ個の成分を有する情報である場合、すなわち生体データ１１１がｎ次元の情報である場合には、ｎ×ｎの対角行列を生成する。また、近似判定行列生成部３１２は、鍵１１２の閾値を（ｎ＋１）行（ｎ＋１）列に設定する。鍵１１２の閾値とは、クライアントによって設定される鍵自体が採り得る最大値を示す情報である。
【００４１】
そして、近似判定行列生成部３１２は、生成したｎ×ｎの対角行列に、全ての成分が「０」である最終行−１行と最終行を付加した（ｎ＋２）×ｎ行列を生成する。そして、近似判定行列生成部３１２は、対角行列の列の数ｎの成分を有する乱数ベクトルを生成する。近似判定行列生成部３１２は、対角行列の列の数ｎに２を加算した数（最終列数）の成分を有する乱数ベクトルを生成する。乱数ベクトルの成分には、乱数生成部３１１によって生成された乱数が設定される。そして、秘匿データ照合装置３は、乱数ベクトルを付加した（ｎ＋２）×（ｎ＋２）の正方行列を近似判定行列３３１として生成する。
【００４２】
近似判定行列登録部３１３は、近似判定行列生成部３１２によって生成された近似判定行列３３１をデータベース３３０に登録する。
【００４３】
ここで、近似判定行列３３１について、図２を参照して説明する。図２は、近似判定行列の一例を示す図である。なお、図２に示す例では、生体データ、および近似範囲が３次元の数値によって表される例について説明する。図２に示すように、近似判定行列３３１に対応する近似判定行列Ｖは、点線で示す範囲の近似判定用の行列に鍵の閾値と乱数ベクトルとを付加した行列である。
【００４４】
近似判定用の行列は、近似範囲の各次元方向のベクトルとしての長さを指定する閾値を対角要素として有する。例えば、図２に示す例では、近似範囲のｘ軸方向のベクトルとしての長さが「２０」であり、ｙ軸方向のベクトルとしての長さが「１０」であり、ｚ軸方向のベクトルとしての長さが「１４」である旨を示す。すなわち、図２に示す近似判定用の行列は、ｘ軸方向に「±１０」、ｙ軸方向に「±５」、ｚ軸方向に「±７」の範囲内に２つの生体データが含まれるか否かを判定するための行列である。
【００４５】
そして、鍵埋め込み用の４行目に、「０、０、０」が付加される。さらに、４列目に、乱数ベクトル「７、４、５」と鍵の閾値「２００００」とを合わせた「７、４、５、２００００」が付加される。そして、最終行の５行目に、「０、０、０、０」が付加される。さらに、最終列の５列目に、乱数ベクトル「５、３、−２、−４２、１２３」が付加される。なお、図２に示す例では、近似範囲を３次元の数値で指定したが、実施例はこれに限定されるものではなく、任意の次元の数値を用いることができる。
【００４６】
図１に戻って、秘匿データ登録部３１４は、秘匿データをデータベース３３０に登録する。登録された秘匿データが、ｋｅｙ  ｂｉｎｄｉｎｇ手法において、保護されるテンプレートに相当する。
【００４７】
例えば、秘匿データ登録部３１４は、クライアント端末１から登録依頼があった場合、近似判定行列３３１に対応する一次結合用の乱数を生成する。一例として、秘匿データ登録部３１４は、近似判定行列３３１に対応するｎ＋２個の成分を有する行ベクトルｖ１、ｖ２、・・・、ｖｎ＋２を取得する。そして、秘匿データ登録部３１４は、各行ベクトルｖ１、ｖ２、・・・、ｖｎ＋２に対して、それぞれ適当な整数ｄ１、ｄ２、・・・、ｄｎ＋２を選択する。そして、秘匿データ登録部３１４は、各行ベクトルと各整数との積の和、すなわちｄ１×ｖ１＋ｄ２×ｖ２＋・・・＋ｄｎ＋２×ｖｎ＋２で表されるｎ＋２次元のベクトルを一次結合として算出する。この一次結合が「格子の元」である。なお、秘匿データ登録部３１４は、生体データ毎に、異なる整数ｄ１、ｄ２、・・・、ｄｎ＋２の組を選択し、選択した整数の組と近似判定行列３３１の各行ベクトルとの積の和である一次結合を算出する。
【００４８】
また、秘匿データ登録部３１４は、算出した一次結合すなわち格子の元を、登録依頼の応答として、クライアント端末１に配布する。そして、秘匿データ登録部３１４は、クライアント端末１から秘匿データ３３２の登録依頼があった場合、登録依頼があった秘匿データ３３２をデータベース３３０に登録する。
【００４９】
照合判定部３２は、照合依頼受付部３２１と、演算部３２２と、近似判定部３２３と、鍵抽出部３２４と、更新秘匿データ生成部３２５と、秘匿データ更新部３２６とを有する。
【００５０】
照合依頼受付部３２１は、クライアント端末２から照合依頼を受け付けた場合、近似判定行列３３１に対応する一次結合用の乱数（格子の元）を生成する。一次結合用の乱数の生成は、秘匿データ登録部３１４による生成と同様であるので、その説明を省略する。なお、照合依頼受付部３２１によって生成される格子の元は、登録時に秘匿データ登録部３１４よって生成された格子の元と異なるように生成される。
【００５１】
また、照合依頼受付部３２１は、算出した一次結合すなわち格子の元を、照合依頼の応答として、クライアント端末２に配布する。そして、照合依頼受付部３２１は、クライアント端末２から照合データ２１１を秘匿化した秘匿データの照合依頼があった場合、照合依頼があった秘匿データを演算部３２２に出力する。
【００５２】
演算部３２２は、データベース３３０に登録された秘匿データ３３２（秘匿ベクトル）と、クライアント端末２から受信した照合データ２１１を秘匿化した秘匿データとの差分を示す差分ベクトルを算出する。そして、演算部３２２は、算出した差分ベクトルから、近似判定行列３３１を法とした際の剰余である剰余ベクトルを算出する。一例として、差分ベクトルをｚ、近似判定行列３３１をＶとした場合、剰余ベクトルは、「ｚ  ｍｏｄ  Ｖ」で表わされる。「ｚ  ｍｏｄ  Ｖ」は、「ｚ−「ｚ×Ｖ−１」×Ｖ」と等しいものである。なお、Ｖ−１は、行列Ｖの逆行列を表す。「ｚ×Ｖ−１」は、ベクトルｚ×Ｖ−１の各次元について、もっとも近い整数に丸めたベクトルを表す。そして、演算部３２２は、算出した剰余ベクトルを近似判定部３２３に出力する。
【００５３】
近似判定部３２３は、演算部３２２から受け取った剰余ベクトルの最終成分が「０」であるか否かを判定し、剰余ベクトルの最終成分が「０」である場合は、登録元の生体データ１１１と照合データ２１１とが近似していると判定する。一方、近似判定部３２３は、剰余ベクトルの最終成分が「０」でない場合は、登録元の生体データ１１１と照合データ２１１とが近似していないと判定する。
【００５４】
鍵抽出部３２４は、近似していると判定された場合に、剰余ベクトルのｎ＋１成分をユーザ固有の鍵１１２として抽出する。そして、鍵抽出部３２４は、抽出した鍵１１２を照合元となるクライアント端末２に送信する。なお、鍵抽出部３２４は、近似していないと判定された場合には、近似していない旨（認証失敗である旨）をクライアント端末２に送信する。
【００５５】
更新秘匿データ生成部３２５は、近似していると判定された場合に、鍵抽出部３２４によって抽出された鍵１１２と照合依頼があった秘匿データとを足し合わせて更新用の秘匿データを生成する。例えば、更新秘匿データ生成部３２５は、鍵抽出部３２４によって抽出された鍵１１２にｎ個の０および１つの０を付け加えて拡張した鍵ベクトル（０、Ｋ、０）を生成する。鍵ベクトルの最初の０は、ｎ次元の零ベクトルを表し、最後の０は、スカラーである。そして、更新秘匿データ生成部３２５は、鍵ベクトルと照合依頼があった秘匿データとを足し合わせて更新秘匿データを生成する。
【００５６】
秘匿データ更新部３２６は、更新秘匿データ生成部３２５によって生成された更新秘匿データをデータベース３３０に格納する。すなわち、秘匿データ更新部３２６は、更新秘匿データを、秘匿データ３３２に代えてデータベース３３０に登録する。
【００５７】
［近似判定の原理］
ここで、まず、照合判定部３２が実行する近似判定の原理について説明する。近似判定行列３３１を近似判定行列Ｖとして説明する。近似判定行列Ｖの各行ベクトルｖ１、ｖ２、・・・、ｖｎ＋２の一次結合は、近似判定行列Ｖの各行ベクトルの一次結合ｄ１×ｖ１＋ｄ２×ｖ２＋・・・＋ｄｎ＋２×ｖｎ＋２を元とする集合Ｌ（格子Ｌ）で表すことができる。つまり、近似判定行列Ｖの各行ベクトルの一次結合は、集合Ｌの元からなる格子上のいずれかの交点に対応する。
【００５８】
ｎ次元の生体データＴおよび鍵Ｋを秘匿化した秘匿ベクトルＨは、集合Ｌの格子の元ｂ１と乱数ｒ１を用いて以下の式（１）で表される。なお、（Ｔ、Ｋ、０）とは、生体データＴに鍵Ｋとｎ＋２番目の成分として「０」を追加したｎ＋２次元ベクトルである。
Ｈ＝（Ｔ、Ｋ、０）＋ｒ１×ｂ１・・・式（１）
秘匿ベクトルＨは、クライアント端末１の秘匿データ生成部１２によって生成される。そして、生成された秘匿ベクトルＨは、登録依頼部１１によってデータベース３３０に登録される。
【００５９】
また、ｎ次元の照合データＱを秘匿化した秘匿ベクトルＨ´は、集合Ｌの格子の元ｂ２と乱数ｒ２を用いて以下の式（２）で表される。なお、（Ｑ、０、０）とは、照合データＱにｎ＋１番目の成分とｎ＋２番目の成分としてそれぞれ「０」を追加したｎ＋２次元ベクトルである。また、ｂ２はｂ１と異なる。
Ｈ´＝（Ｑ、０、０）＋ｒ２×ｂ２・・・式（２）
秘匿ベクトルＨ´は、クライアント端末２の秘匿データ生成部２２によって生成される。そして、生成された秘匿ベクトルＨ´は、照合依頼部２１によって秘匿データ照合装置３に送信される。
【００６０】
このような場合に、秘匿ベクトルＨとＨ´との差分ベクトルｚは、以下の式（３）で表される。
ｚ＝Ｈ−Ｈ´＝（Ｔ−Ｑ、Ｋ、０）＋ｒ１×ｂ１−ｒ２×ｂ２・・・式（３）
【００６１】
ここで、差分ベクトルｚが有するｒ１×ｂ１−ｒ２×ｂ２は、集合Ｌの元と乱数との積同士の差分であるため、集合Ｌの元に含まれている。つまり、ｒ１×ｂ１−ｒ２×ｂ２は、集合Ｌの元からなる格子上のいずれかの交点に対応する。また、差分ベクトルｚから近似判定行列Ｖの剰余ベクトルを計算した場合、「ｚ  ｍｏｄ  Ｖ」は、集合Ｌによって定まる基本領域Ｐ（Ｌ）に差分ベクトルｚを写像することに対応する。このため、差分ベクトルｚから近似判定行列Ｖの剰余ベクトルを計算した場合は、ｒ１×ｂ１−ｒ２×ｂ２が無視されることとなる。このため、ｚ  ｍｏｄ  Ｖを算出した場合には、差分ベクトルｚのうち、差分ベクトルｚの先端以外を含む格子部分を無視し、差分ベクトルｚの先端を含む１つの格子のみを基本領域Ｐ（Ｌ）に写像することとなる。すなわち、以下の式（４）で表される。
ｚ  ｍｏｄ  Ｖ＝（Ｔ−Ｑ、Ｋ、０）  ｍｏｄ  Ｖ・・・式（４）
【００６２】
ベクトル（Ｔ−Ｑ、Ｋ、０）が基本領域Ｐ（Ｌ）に含まれる場合、すなわち、生体データＴと照合データＱとが近似している場合、ｚ  ｍｏｄ  Ｖ＝（Ｔ−Ｑ、Ｋ、０）となる。この結果、生体データＴと照合データＱとが近似している場合には、「ｚ  ｍｏｄ  Ｖ」の最終成分が非常に高い確率で「０」となる。
【００６３】
一方、ベクトル（Ｔ−Ｑ、Ｋ、０）が基本領域Ｐ（Ｌ）に含まれない場合、すなわち、生体データＴと照合データＱとが近似していない場合には、集合Ｌに属する格子のある元をｂとすると、ｚ  ｍｏｄ  Ｖ＝（Ｔ−Ｑ、Ｋ、０）＋ｂとなる。この結果、生体データＴと照合データＱとが近似していない場合には、「ｚ  ｍｏｄ  Ｖ」の最終成分が非常に高い確率で「０」以外の値となる。
【００６４】
このような近似判定の原理の下、照合判定部３２は、秘匿ベクトルＨおよびＨ´の差分から近似判定行列Ｖの剰余ベクトルを算出し、算出した剰余ベクトルの最終成分に基づいて、秘匿された生体データの近似判定を行う。そして、照合判定部３２は、近似判定の結果、近似していると判定した場合に、秘匿ベクトルＨから鍵Ｋを抽出する。そして、照合判定部３２は、抽出した鍵Ｋを照合元に出力する。
【００６５】
［更新秘匿データの生成処理の原理］
次に、照合判定部３２が実行する更新秘匿データの生成の原理について説明する。生体データＴと照合データＱとが近似している場合、秘匿データ照合装置３は、ｎ次元の照合データＱを秘匿化した秘匿ベクトルＨ´（＝（Ｑ、０、０）＋ｒ２×ｂ２）（式（２）参照））およびユーザ固有の鍵Ｋを有している。照合判定部３２は、鍵Ｋを用いて、ｎ＋２次元の鍵ベクトル（０、Ｋ、０）を生成する。ここで、最初の０は、ｎ次元（生体データと同じデータ構造）の零ベクトルを表し、最後の０は、スカラーである。
【００６６】
照合判定部３２は、秘匿ベクトルＨ´と鍵ベクトルとから、以下の式（５）により更新秘匿データＨ１を生成する。
Ｈ１＝Ｈ´＋（０、Ｋ、０）・・・式（５）
【００６７】
式（５）を変形すると、以下の式（６）になる。
Ｈ１＝｛（Ｑ、０、０）＋ｒ２×ｂ２｝＋（０、Ｋ、０）
＝（Ｑ、Ｋ、０）＋ｒ２×ｂ２                  ・・・式（６）
【００６８】
式（６）のＱ、ｒ２、ｂ２は、それぞれ照合データ２１１、乱数、格子の元である。ここで、式（１）に表される秘匿ベクトルＨ（＝（Ｔ、Ｋ、０）＋ｒ１×ｂ１）と、式（６）で表わされる秘匿ベクトルＨ１（＝（Ｑ、Ｋ、０）＋ｒ２×ｂ２）とを比較する。秘匿ベクトルＨ１は、照合データ２１１であるＱとユーザ固有の鍵Ｋとから生成される秘匿ベクトルであることがわかる。よって、秘匿データとして秘匿ベクトルＨ１をＨに代えてデータベース３３０に登録することで、ｋｅｙ  ｂｉｎｄｉｎｇ手法におけるテンプレートの更新が行える。すなわち、照合判定部３２は、照合データＱの秘匿データを既に登録されている秘匿データ３３２に代えてデータベース３３０に登録する。
【００６９】
［秘匿データの登録処理のシーケンス］
次に、秘匿データの登録処理のシーケンスを、図３を参照して説明する。図３は、秘匿データの登録処理のシーケンスを示す図である。なお、図３では、クライアントの生体データ１１１をＴ、クライアント固有の鍵１１２をＫ、近似判定行列３３１をＶ、秘匿ベクトルをＨで示すものとする。
【００７０】
秘匿データ照合装置３では、近似判定行列生成部３１２が、近似判定行列Ｖを生成する（ステップＳ１１）。そして、近似判定行列登録部３１３は、生成された近似判定行列Ｖをデータベース３３０に登録する（ステップＳ１２）。
【００７１】
クライアント端末１では、登録依頼部１１が、登録情報を取得する（ステップＳ１３）。ここでは、登録依頼部１１は、登録情報として、生体データＴおよび鍵Ｋを取得する。そして、登録依頼部１１は、生体データＴおよび鍵Ｋの登録を、秘匿データ照合装置３に依頼する（ステップＳ１４）。
【００７２】
秘匿データ照合装置３では、クライアント端末１から登録依頼を受け取った秘匿データ登録部３１４は、乱数格子ベクトルを生成する（ステップＳ１５）。ここでは、秘匿データ登録部３１４は、近似判定行列Ｖの各行ベクトルと適当な各整数との積の和で表される一次結合を算出する。算出された一次結合が乱数格子ベクトルｂ１であり、格子の元である。そして、秘匿データ登録部３１４は、算出した乱数格子ベクトル（格子の元）ｂ１をクライアント端末１に送信する（ステップＳ１６）。
【００７３】
クライアント端末１では、秘匿データ生成部１２が、登録情報を生成する（ステップＳ１７）。ここでは、秘匿データ生成部１２は、生体データＴと鍵Ｋの結合データの最終成分に「０」を追加したベクトル（Ｔ、Ｋ、０）を生成する。
【００７４】
そして、秘匿データ生成部１２は、登録情報を秘匿する（ステップＳ１８）。ここでは、秘匿データ生成部１２は、乱数格子ベクトル（格子の元）ｂ１と乱数との積に、生成したベクトル（Ｔ、Ｋ、０）を加算した秘匿ベクトルＨを生成する。乱数がｒ１であるとすると、秘匿ベクトルＨは、（Ｔ、Ｋ、０）＋ｒ１×ｂ１で表される。
【００７５】
そして、登録依頼部１１は、秘匿データ生成部１２によって秘匿された登録情報である秘匿ベクトルＨの登録を依頼すべく、当該秘匿ベクトルＨを秘匿データ照合装置３に送信する（ステップＳ１９）。この結果、秘匿ベクトルＨは、秘匿データ照合装置３のデータベース３３０に登録される。
【００７６】
［秘匿データの更新処理のシーケンス］
次に、秘匿データの更新処理のシーケンスを、図４を参照して説明する。図４は、実施例１に係る秘匿データの更新処理のシーケンスを示す図である。なお、図４では、クライアントの照合データ２１１をＱ、クライアント固有の鍵１１２をＫ、近似判定行列３３１をＶ、秘匿ベクトルをＨ´、Ｈで示すものとする。
【００７７】
クライアント端末２では、照合依頼部２１が、照合情報を取得する（ステップＳ２１）。ここでは、照合依頼部２１は、照合情報として、照合データＱを取得する。そして、照合依頼部２１は、照合データＱの照合を、秘匿データ照合装置３に依頼する（ステップＳ２２）。
【００７８】
秘匿データ照合装置３では、クライアント端末２から照合依頼を受け取った照合依頼受付部３２１は、データベース３３０から近似判定行列Ｖを取得する（ステップＳ２３）。そして、照合依頼受付部３２１は、乱数格子ベクトルを生成する（ステップＳ２４）。ここでは、照合依頼受付部３２１は、読み出した近似判定行列Ｖの各行ベクトルと適当な各整数との積の和で表される一次結合を算出する。算出された一次結合が乱数格子ベクトルｂ２であり、格子の元である。そして、照合依頼受付部３２１は、算出した乱数格子ベクトル（格子の元）ｂ２をクライアント端末２に送信する（ステップＳ２５）。なお、ｂ２とｂ１とは、異なるものである。
【００７９】
クライアント端末２では、秘匿データ生成部２２が、秘匿照合情報を生成する（ステップＳ２６）。ここでは、秘匿データ生成部２２は、照合データＱに「０」を追加したベクトル（Ｑ、０、０）を生成する。そして、秘匿データ生成部２２は、乱数格子ベクトル（格子の元）ｂ２と乱数との積に、生成したベクトル（Ｑ、０、０）を加算した秘匿ベクトルＨ´を生成する。乱数がｒ２であるとすると、秘匿ベクトルＨ´は、（Ｑ、０、０）＋ｒ２×ｂ２で表される。そして、照合依頼部２１は、秘匿ベクトルＨ´の照合を依頼すべく、当該秘匿ベクトルＨ´を秘匿データ照合装置３に送信する（ステップＳ２７）。
【００８０】
秘匿データ照合装置３では、演算部３２２が、データベース３３０から秘匿ベクトルＨを取得する（ステップＳ２８）。そして、近似判定部３２３は、照合を依頼された秘匿ベクトルＨ´と、取得した秘匿ベクトルＨとの差分ベクトルから算出される剰余ベクトルを用いて、秘匿したまま照合処理を行う（ステップＳ２９）。ここでは、近似判定部３２３は、剰余ベクトルの最終成分が「０」であるか否かを判定する。そして、近似判定部３２３は、剰余ベクトルの最終成分が「０」である場合、登録元の生体データＴと照合データＱが近似していると判定する。一方、近似判定部３２３は、剰余ベクトルの最終成分が「０」でない場合、登録元の生体データＴと照合データＱが近似していないと判定する。
【００８１】
そして、鍵抽出部３２４は、近似していると判定された場合、剰余ベクトルからユーザ固有の鍵Ｋを抽出する（ステップＳ３０）。そして、鍵抽出部３２４は、抽出した鍵Ｋを、照合を依頼したクライアント端末２に送信する（ステップＳ３１）。
【００８２】
そして、更新秘匿データ生成部３２５は、鍵抽出部３２４によって抽出された鍵Ｋから更新秘匿登録情報用の鍵ベクトルを生成する（ステップＳ３２）。ここでは、更新秘匿データ生成部３２５は、鍵Ｋにｎ個の０および１つの０を付け加えて拡張した鍵ベクトル（０、Ｋ、０）を生成する。
【００８３】
そして、更新秘匿データ生成部３２５は、更新秘匿登録情報を生成する（ステップＳ３３）。ここでは、更新秘匿データ生成部３２５は、鍵ベクトル（０、Ｋ、０）と照合依頼があった秘匿ベクトルＨ´とを足し合わせて更新秘匿登録情報として更新秘匿ベクトルＨ１を生成する。
【００８４】
そして、秘匿データ更新部３２６は、更新秘匿データ生成部３２５によって生成された更新秘匿登録情報をデータベース３３０に送信する（ステップＳ３４）。ここでは、秘匿データ更新部３２６は、データベース３３０に保持されていた秘匿登録情報（秘匿ベクトル）Ｈを破棄し、代わりに更新秘匿登録情報（秘匿ベクトル）Ｈ１を登録する。
【００８５】
［実施例１の効果］
上記実施例１によれば、秘匿データ照合装置３は、近似判定行列３３１の行ベクトルを用いた第１の一次結合と、第１の乱数とに基づいて、生体データと鍵とを秘匿して得られた第１の秘匿ベクトルをデータベース３３０に登録する。そして、秘匿データ照合装置３は、近似判定行列３３１の行ベクトルを用いた第２の一次結合と、第２の乱数とに基づいて、照合データを秘匿して得られた第２の秘匿ベクトルを取得する。そして、秘匿データ照合装置３は、第１の秘匿ベクトルと第２の秘匿ベクトルとの差分から、近似判定行列３３１を法とした際の剰余である剰余ベクトルを算出する。そして、秘匿データ照合装置３は、算出された剰余ベクトルに基づいて、生体データと照合データとが近似しているか否かを判定し、近似している場合に、剰余ベクトルから鍵を抽出する。そして、秘匿データ照合装置３は、抽出された鍵と照合データを秘匿して得られた第２の秘匿ベクトルとを足し合わせて第３の秘匿ベクトルを生成する。そして、秘匿データ照合装置３は、生成された第３の秘匿ベクトルをデータベース３３０に登録する。このため、秘匿データ照合装置３は、ｋｅｙ  ｂｉｎｄｉｎｇ手法において、生体データを安全且つ簡便に更新することができる。すなわち、秘匿データ照合装置３は、照合の際に用いられる生体データを秘匿した第２の秘匿ベクトルを取得するので、当該生体データを安全に取得できる。そして、秘匿データ照合装置３は、取得した第２の秘匿ベクトルと既に登録された鍵とを用いて照合の際に用いられる生体データを新たに秘匿する秘匿ベクトルを生成し、登録する。この結果、秘匿データ照合装置３は、ユーザの生体データを安全且つ簡便に更新できる。
【００８６】
また、上記実施例１によれば、秘匿データ照合装置３は、第１の秘匿ベクトルを削除し、第３の秘匿ベクトルを追加する。このため、秘匿データ照合装置３は、ユーザの最新の生体情報を簡便に更新できる。
【実施例２】
【００８７】
ところで、実施例１に係る秘匿データ照合装置３では、１ユーザに対して１つ記憶される秘匿データ３３２を、照合時に照合データを秘匿した秘匿データに更新する場合を説明した。しかしながら、秘匿データ照合装置３は、これに限定されず、１ユーザに対する秘匿データ３３２を複数記憶しても良く、照合時に照合データを秘匿した秘匿データをさらに追加しても良い。
【００８８】
そこで、実施例２では、秘匿データ照合装置３は、１ユーザに対する秘匿データ３３２を複数記憶するようにし、照合時に照合データを秘匿した秘匿データをさらに追加する場合について説明する。
【００８９】
［秘匿データ照合システムの構成］
図５は、実施例２に係る秘匿データ照合システムの機能構成の一例を説明する図である。なお、図１に示す秘匿データ照合システム９と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例１と実施例２とが異なるところは、演算部３２２Ａ、近似判定部３２３Ａ、鍵抽出部３２４Ａおよび秘匿データ更新部３２６Ａを変更した点にある。実施例１と実施例２とが異なるところは、１ユーザに対して秘匿データ３２２を複数記憶する点にある。ここでは、一例として、秘匿データ３３２は、１ユーザに対してｈ（ｈは、自然数）個記憶しているものとする。
【００９０】
演算部３２２Ａは、データベース３３０に登録された複数の秘匿データ３３２１〜ｈ（秘匿ベクトル）と、クライアント端末２から受信した照合データ２１１を秘匿化した秘匿データとの差分を示すｈ個の差分ベクトルを算出する。そして、演算部３２２Ａは、算出したｈ個の差分ベクトルから、近似判定行列３３１を法とした際の剰余であるｈ個の剰余ベクトルを算出する。一例として、秘匿データ３３２１に対して、差分ベクトルをｚ１、近似判定行列３３１をＶとした場合、剰余ベクトルは、「ｚ１  ｍｏｄ  Ｖ」で表される。そして、演算部３２２Ａは、算出したｈ個の剰余ベクトルを近似判定部３２３Ａに出力する。
【００９１】
近似判定部３２３Ａは、演算部３２２Ａから受け取ったｈ個の剰余ベクトルの最終成分がそれぞれ「０」であるか否かを判定する。近似判定部３２３Ａは、いずれかの剰余ベクトルの最終成分が「０」である場合は、照合データ２１１が秘匿データ３３２１〜ｈと近似していると判定する。一方、近似判定部３２３Ａは、いずれの剰余ベクトルの最終成分も「０」でない場合は、照合データ２１１が秘匿データ３３２１〜ｈと近似していないと判定する。
【００９２】
鍵抽出部３２４Ａは、近似していると判定された場合に、剰余ベクトルの最終成分が「０」であると判定された剰余ベクトルのｎ＋１成分をユーザ固有の鍵１１２として抽出する。そして、鍵抽出部３２４Ａは、抽出した鍵１１２を照合元となるクライアント端末２に送信する。なお、鍵抽出部３２４Ａは、近似していないと判定された場合には、近似していない旨（認証失敗である旨）をクライアント端末２に送信する。
【００９３】
更新秘匿データ生成部３２５は、近似していると判定された場合に、鍵抽出部３２４Ａによって抽出された鍵１１２と照合依頼があった秘匿データとを足し合わせて更新秘匿データを生成する。
【００９４】
秘匿データ更新部３２６Ａは、照合データ２１１について更新秘匿データ生成部３２５によって生成された更新秘匿データをデータベース３３０に追加する。すなわち、秘匿データ更新部３２６Ａは、更新秘匿データを、新たな秘匿データ３３２ｈ＋１としてデータベース３３０に追加する。
【００９５】
［秘匿データの更新処理のシーケンス］
次に、秘匿データの更新処理のシーケンスを、図６を参照して説明する。図６は、実施例２に係る秘匿データの更新処理のシーケンスを示す図である。なお、図６では、クライアントの照合データ２１１をＱ、クライアント固有の鍵１１２をＫ、近似判定行列３３１をＶ、秘匿ベクトルをＨ´、Ｈ１〜ｈ、ｈ＋１で示すものとする。
【００９６】
クライアント端末２において、照合情報として照合データＱを取得してから、秘匿照合情報として照合データＱを秘匿した秘匿ベクトルＨ´を生成し秘匿データ照合装置３に送信するまでの処理（ステップＳ２１〜Ｓ２７）は、図４の処理と同じである。したがって、その説明は、省略する。
【００９７】
クライアント端末２から秘匿ベクトルＨ´を受信した秘匿データ照合装置３では、演算部３２２Ａが、データベース３３０から秘匿ベクトルＨ１、Ｈ２、・・・Ｈｈを取得する（ステップＳ４１）。ここでは、秘匿データ照合装置３は、クライアント端末２からユーザの識別子であるユーザＩＤ（identification  data）および秘匿ベクトルＨ´を受信する。そして、演算部３２２Ａは、データベース３３０からユーザＩＤに対応する秘匿ベクトルＨ１、Ｈ２、・・・Ｈｈを取得する。
【００９８】
そして、近似判定部３２３Ａは、照合を依頼された秘匿ベクトルＨ´と、取得した秘匿ベクトルＨ１〜ｈとの差分から算出されるｈ個の剰余ベクトルを用いて、秘匿したまま複数の照合処理を行う（ステップＳ４２）。ここでは、近似判定部３２３Ａは、ｈ個の剰余ベクトルの剰余ベクトルの最終成分がそれぞれ「０」であるか否かを判定する。近似判定部３２３Ａは、いずれかの剰余ベクトルの最終成分が「０」である場合は、照合データＱが秘匿ベクトルＨ１〜ｈと近似していると判定する。一方、近似判定部３２３Ａは、いずれの剰余ベクトルの最終成分も「０」でない場合は、照合データＱが秘匿ベクトルＨ１〜ｈと近似していないと判定する。
【００９９】
そして、鍵抽出部３２４Ａは、近似していると判定された場合、剰余ベクトルの最終成分が「０」であると判定された剰余ベクトルからユーザ固有の鍵Ｋを抽出する（ステップＳ４３）。そして、鍵抽出部３２４Ａは、抽出した鍵Ｋを、照合を依頼したクライアント端末２に送信する（ステップＳ４４）。
【０１００】
そして、更新秘匿データ生成部３２５は、鍵抽出部３２４Ａによって抽出された鍵Ｋから更新秘匿登録情報用の鍵ベクトルを生成する（ステップＳ４５）。ここでは、更新秘匿データ生成部３２５は、鍵Ｋにｎ個の０および１つの０を付け加えて拡張した鍵ベクトル（０、Ｋ、０）を生成する。
【０１０１】
そして、更新秘匿データ生成部３２５は、更新秘匿登録情報を生成する（ステップＳ４６）。ここでは、更新秘匿データ生成部３２５は、鍵ベクトル（０、Ｋ、０）と照合依頼があった秘匿ベクトルＨ´とを足し合わせて更新秘匿登録情報として更新秘匿ベクトルＨｈ＋１を生成する。
【０１０２】
そして、秘匿データ更新部３２６Ａは、更新秘匿データ生成部３２５によって生成された更新秘匿登録情報をデータベース３３０に送信する（ステップＳ４７）。ここでは、秘匿データ更新部３２６Ａは、秘匿登録情報（秘匿ベクトル）Ｈ１、Ｈ２、・・・Ｈｈに加えて、更新秘匿登録情報（秘匿ベクトル）Ｈｈ＋１をデータベース３３０に追加する。
【０１０３】
［実施例２の効果］
上記実施例２によれば、秘匿データ照合装置３は、近似判定行列３３１の行ベクトルを用いた第１の一次結合と、第１の乱数とに基づいて、生体データと鍵とを秘匿して得られた第１の秘匿ベクトルをデータベース３３０に登録する。そして、秘匿データ照合装置３は、近似判定行列３３１の行ベクトルを用いた第２の一次結合と、第２の乱数とに基づいて、照合データを秘匿して得られた第２の秘匿ベクトルを取得する。そして、秘匿データ照合装置３は、第１の秘匿ベクトルと第２の秘匿ベクトルとの差分から、近似判定行列３３１を法とした際の剰余である剰余ベクトルを算出する。そして、秘匿データ照合装置３は、算出された剰余ベクトルに基づいて、生体データと照合データとが近似しているか否かを判定し、近似している場合に、剰余ベクトルから鍵を抽出する。そして、秘匿データ照合装置３は、抽出された鍵と照合データを秘匿して得られた第２の秘匿ベクトルとを足し合わせて第３の秘匿ベクトルを生成する。そして、秘匿データ照合装置３は、生成された第３の秘匿ベクトルをさらにデータベース３３０に追加する。このため、秘匿データ照合装置３は、ｋｅｙ  ｂｉｎｄｉｎｇ手法において、生体データを安全且つ簡便に追加することができる。この結果、秘匿データ照合装置３は、生体データを秘匿した秘匿ベクトルをさらに追加するので、複数の秘匿ベクトルを用いて近似判定することが可能となり、近似判定の精度を上げることができる。
【実施例３】
【０１０４】
ところで、実施例１に係る秘匿データ照合装置３では、１ユーザに対して１つ記憶される秘匿データ３３２を、照合時に照合データを秘匿した秘匿データに更新する場合を説明した。しかしながら、秘匿データ照合装置３は、これに限定されず、１ユーザに対する複数の生体データ（照合データを含む）を合成して得られた秘匿データを記憶しても良く、照合時に照合データを秘匿した秘匿データを合成し、合成した秘匿データを更新しても良い。
【０１０５】
そこで、実施例３では、秘匿データ照合装置３は、１ユーザに対する複数の秘匿データを合成して得られた秘匿データを記憶するようにし、照合時に照合データを秘匿した秘匿データを合成し、合成した秘匿データを更新する場合について説明する。
【０１０６】
［秘匿データ照合システムの構成］
図７は、実施例３に係る秘匿データ照合システムの機能構成の一例を説明する図である。なお、図１に示す秘匿データ照合システム９と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例１と実施例３とが異なるところは、演算部３２２Ｂ、近似判定部３２３Ｂ、更新秘匿データ合成部３２５Ｂおよび秘匿データ更新部３２６Ｂを変更した点にある。実施例１と実施例３とが異なるところは、記憶部３３に秘匿データ合成数３３３を追加した点にある。実施例３に係る秘匿データ３３２は、１ユーザに対する複数の生体データを合成して得られた秘匿データである。秘匿データ合成数３３３は、生体データの合成数を表す。
【０１０７】
演算部３２２Ｂは、データベース３３０から秘匿データ３３２（秘匿ベクトル）および秘匿データ合成数３３３を読み出す。演算部３２２Ｂは、読み出した秘匿データ３３２（秘匿ベクトル）と、クライアント端末２から受信した照合データ２１１を秘匿化した秘匿データとの差分を示す差分ベクトルを算出する。一例として、演算部３２２Ｂは、以下の式（７）により、秘匿データ３３２（秘匿ベクトル）と、クライアント端末２から受信した照合データ２１１を秘匿化した秘匿データとの差分を示す差分ベクトルｚｃを算出する。なお、Ｈｃが秘匿データ３３２を示す秘匿ベクトルであり、ｈが秘匿データ合成数３３３であるとする。Ｈ´が照合データ２１１を秘匿化した秘匿データを示す秘匿ベクトルであるとする。
ｚｃ＝Ｈｃ−ｈ×Ｈ´・・・式（７）
ここで、Ｈ´にｈをかけるのは、Ｈｃがｈ個の生体データを合成した秘匿データを示す秘匿ベクトルであるからである。
【０１０８】
そして、演算部３２２Ｂは、算出した差分ベクトルから、近似判定行列３３１を法とした際の剰余である剰余ベクトルを算出する。一例として、差分ベクトルをｚｃ、近似判定行列３３１をＶとした場合、剰余ベクトルは、「ｚｃ  ｍｏｄ  Ｖ」で表される。「ｚｃ  ｍｏｄ  Ｖ」は、「ｚｃ−「ｚｃ×Ｖ−１」×Ｖ」と等しいものである。なお、Ｖ−１は、行列Ｖの逆行列を表す。そして、演算部３２２Ｂは、算出した剰余ベクトルを近似判定部３２３Ｂに出力する。
【０１０９】
近似判定部３２３Ｂは、演算部３２２Ｂから受け取った剰余ベクトルの最終成分が「０」であるか否かを判定し、剰余ベクトルの最終成分が「０」である場合は、登録元の合成された生体データと照合データ２１１とが近似していると判定する。一方、近似判定部３２３Ｂは、剰余ベクトルの最終成分が「０」でない場合は、登録元の合成された生体データと照合データ２１１とが近似していないと判定する。
【０１１０】
鍵抽出部３２４は、近似していると判定された場合に、剰余ベクトルのｎ＋１成分をユーザ固有の鍵１１２として抽出する。そして、鍵抽出部３２４は、抽出した鍵１１２を照合元となるクライアント端末２に送信する。なお、鍵抽出部３２４は、近似していないと判定された場合には、近似していない旨（認証失敗である旨）をクライアント端末２に送信する。
【０１１１】
更新秘匿データ合成部３２５Ｂは、近似していると判定された場合に、秘匿データ３３２と照合依頼があった秘匿データとを合成して更新用の秘匿データを生成する。一例として、更新秘匿データ合成部３２５Ｂは、以下の式（８）により、秘匿データ３３２と、クライアント端末２から受信した照合データ２１１を秘匿化した秘匿データを足し合わせて更新秘匿データを生成する。なお、Ｈ´ｃが、更新秘匿データを示す秘匿ベクトルである。Ｈ´が照合データ２１１を秘匿化した秘匿データを示す秘匿ベクトルである。Ｈｃが秘匿データ３３２を示す秘匿ベクトルである。
Ｈ´ｃ＝Ｈ´＋Ｈｃ・・・式（８）
【０１１２】
秘匿データ更新部３２６Ｂは、更新秘匿データ合成部３２５Ｂによって生成された更新秘匿データをデータベース３３０に格納する。すなわち、秘匿データ更新部３２６Ｂは、更新秘匿データを、秘匿データ３３２に代えてデータベース３３０に登録する。また、秘匿データ更新部３２６Ｂは、秘匿データ合成数３３３の数を１加算する。
【０１１３】
ここで、照合判定部３２が実行する秘匿データの合成について説明する。秘匿データ照合装置３は、ｎ次元の照合データＱを秘匿化した秘匿ベクトルＨ´（＝（Ｑ、０、０）＋ｒ２×ｂ２）（式（２）参照）および秘匿データ３３２を有している。秘匿データ３３２を示す秘匿ベクトルＨｃは、式（９）で示す内容であるとする。すなわち、Ｈｃは、ｈ個の生体データを秘匿した各秘匿データを合成した秘匿ベクトルである。なお、Ｔ１〜Ｔｈは、それぞれ生体データを示すベクトルである。Ｋは、クライアント固有の鍵である。ｂ´は、格子のある元である。
Ｈｃ＝（Ｔ１＋Ｔ２＋・・・Ｔｈ、Ｋ、０）＋ｂ´・・・式（９）
【０１１４】
演算部３２２Ｂによって算出される差分ベクトルｚｃは、Ｈｃの内容とＨ´の内容とを式（７）に代入することで、式（１０）により表わせる。
ｚｃ＝（Ｔ１＋Ｔ２＋・・・Ｔｈ−ｈ×Ｑ、Ｋ、０）＋ｂ´−ｈ×ｒ２×ｂ２・・・式（１０）
【０１１５】
演算部３２２Ｂは、ｈ個の生体データを示すベクトルを足し合わせたものとｈ倍の照合データを示すベクトルとの差分を差分ベクトルとするので、合成していない場合（式（３）参照）と同様に、近似判定部３２３Ｂに近似判定させることができる。なお、ｂ´−ｈ×ｒ２×ｂ２は、格子上のいずれかの交点に対応するので、差分ベクトルｚｃから近似判定行列Ｖの剰余ベクトルを計算した場合は、無視される。
【０１１６】
また、更新秘匿ベクトルＨ´ｃは、Ｈ´の内容とＨｃの内容とを式（８）に代入することで、式（１１）により表わせる。
Ｈ´ｃ＝（Ｔ１＋Ｔ２＋・・・Ｔｈ＋Ｑ、Ｋ、０）＋ｒ２×ｂ２＋ｂ´・・・式（１１）
【０１１７】
したがって、更新秘匿ベクトルＨ´ｃは、登録されていたｈ個の生体データに照合データＱを加えたｈ＋１個の生体データを合成した秘匿ベクトルとなる。この更新秘匿ベクトルＨ´ｃを、秘匿データ更新部３２６Ｂが、新たな秘匿データ３３２として登録することで、秘匿データ３３２を更新することができる。
【０１１８】
［秘匿データの更新処理のシーケンス］
次に、秘匿データの更新処理のシーケンスを、図８を参照して説明する。図８は、実施例３に係る秘匿データの更新処理のシーケンスを示す図である。なお、図８では、クライアントの照合データ２１１をＱ、クライアント固有の鍵１１２をＫ、近似判定行列３３１をＶ、秘匿ベクトルをＨ´、Ｈｃで示すものとする。データベース３３０に登録された秘匿データ合成数３３３は、ｈであるものとする。
【０１１９】
クライアント端末２において、照合情報として照合データＱを取得してから、秘匿照合情報として照合データＱを秘匿した秘匿ベクトルＨ´を生成し秘匿データ照合装置３に送信するまでの処理（ステップＳ２１〜Ｓ２７）は、図４の処理と同じである。したがって、その説明は、省略する。
【０１２０】
クライアント端末２から秘匿ベクトルＨ´を受信した秘匿データ照合装置３では、演算部３２２Ｂが、データベース３３０から秘匿ベクトルＨｃおよび秘匿データ合成数３３３を示す「ｈ」を取得する（ステップＳ５１）。ここでは、秘匿データ照合装置３は、クライアント端末２からユーザの識別子であるユーザＩＤ（identification  data）および秘匿ベクトルＨ´を受信する。そして、演算部３２２Ｂは、データベース３３０からユーザＩＤに対応する秘匿ベクトルＨｃおよび秘匿データ合成数３３３を示す「ｈ」を取得する。
【０１２１】
そして、近似判定部３２３Ｂは、照合を依頼された秘匿ベクトルＨ´と、取得した秘匿ベクトルＨｃとの差分ベクトルから算出される剰余ベクトルを用いて、秘匿したまま照合処理を行う（ステップＳ５２）。ここでは、近似判定部３２３Ｂは、剰余ベクトルの最終成分が「０」であるか否かを判定する。そして、近似判定部３２３Ｂは、剰余ベクトルの最終成分が「０」である場合、登録元の合成された生体データと照合データＱとが近似していると判定する。一方、近似判定部３２３は、剰余ベクトルの最終成分が「０」でない場合、登録元の合成された生体データと照合データＱとが近似していないと判定する。
【０１２２】
そして、鍵抽出部３２４は、近似していると判定された場合、剰余ベクトルからユーザ固有の鍵Ｋを抽出する（ステップＳ５３）。そして、鍵抽出部３２４は、抽出した鍵Ｋを、照合を依頼したクライアント端末２に送信する（ステップＳ５４）。
【０１２３】
そして、更新秘匿データ合成部３２５Ｂは、更新秘匿登録情報を合成する（ステップＳ５６）。ここでは、更新秘匿データ合成部３２５Ｂは、式（８）により、データベース３３０から読み出された秘匿ベクトルＨｃと、照合依頼があった秘匿ベクトルＨ´とを足し合わせて更新秘匿登録情報として更新秘匿ベクトルＨｃ´を生成する。
【０１２４】
そして、秘匿データ更新部３２６Ｂは、更新秘匿データ生成部３２５Ｂによって生成された更新秘匿登録情報をデータベース３３０に送信する（ステップＳ５７）。ここでは、秘匿データ更新部３２６Ｂは、データベース３３０に保持されていた秘匿登録情報（秘匿ベクトル）Ｈｃを破棄し、代わりに更新秘匿登録情報（秘匿ベクトル）Ｈ´ｃを登録する。このとき、秘匿データ更新部３２６Ｂは、秘匿データ合成数３３３をｈ＋１に更新する。
【０１２５】
［実施例３の効果］
上記実施例３によれば、秘匿データ照合装置３は、登録元の合成された生体データと照合データ２１１とが近似していると判定された場合に、以下の処理を行う。すなわち、秘匿データ照合装置３は、登録元の合成された生体データを秘匿した秘匿データ３３２と照合依頼があった照合データ２１１を秘匿した秘匿データとを合成して更新秘匿データを生成する。秘匿データ照合装置３は、生成された更新秘匿データをデータベース３３０に追加し、秘匿データ３３２を削除する。かかる構成によれば、秘匿データ照合装置３は、既に登録されている秘匿データ３３２に代えて、秘匿データ３３２と照合データ２１１を秘匿した秘匿データとを合成して得られる更新秘匿データを登録するので、生体データを安全且つ簡便に更新することができる。この結果、秘匿データ照合装置３は、過去に更新成功した複数の照合データを合成したものを秘匿データとして持つことになり、実施例２における近似判定の精度向上と類似の効果を、ひとつの秘匿データとの照合のみにより得ることができる。
【０１２６】
［その他］
なお、実施例では、秘匿データ照合装置３では、鍵抽出部３２４が、登録元の生体データ１１１と照合データ２１１とが近似していると判定された場合に、剰余ベクトルからユーザ固有の鍵１１２を抽出し、クライアント端末２に送信する。そして、更新秘匿データ生成部３２５は、抽出された鍵１１２と照合依頼があった秘匿データを足し合わせた更新秘匿データを生成すると説明した。しかしながら、更新秘匿データ生成部３２５は、所定のタイミングで、更新秘匿データを生成する処理に移行しても良い。所定のタイミングとは、例えば、一定期間経過したタイミングまたは類似度が低下したと検知されたタイミングである。一例として、更新秘匿データ生成部３２５は、近似していると判定された場合に、所定のタイミングを検知した否かを判定する。更新秘匿データ生成部３２５は、所定のタイミングを検知したと判定した場合に、鍵抽出部３２４によって抽出された鍵１１２と照合依頼があった秘匿データとを足し合わせた更新用の秘匿データを生成すれば良い。かかる更新用の秘匿データが、ｋｅｙ  ｂｉｎｄｉｎｇ手法において、保護されるテンプレートに相当する。これにより、秘匿データ照合装置３は、年月の経過により、照合時に採取される生体情報と登録されたテンプレートとの類似度が低下してしまうことを防止することができる。
【０１２７】
図９は、テンプレート更新の効果を示す図である。図９では、生体認証に用いられる特定の生体情報（例えば、指の指紋）を採取する機器上の位置が数字１、２、３で表わされている。時間の経過とともに、採取された特定の生体情報と最初に登録されたテンプレートとの類似度が低下することが表わされている。これは、例えば、生体情報そのものの長期的な変化、または、生体情報を採取する機器に対するユーザの操作慣れなどにより起こる。そして、類似度が低下したと検知された場合に、秘匿データ照合装置３は、最初に登録されたテンプレートを更新テンプレートに更新する。すると、採取された特定の生体情報と更新テンプレートとの類似度が上がるが、時間の経過とともに、類似度が低下する。そこで、類似度が低下したと検知された場合に、秘匿データ照合装置３が、更新テンプレートを新たな更新テンプレートに更新することで、類似度の低下を防止することが可能になる。
【０１２８】
また、実施例では、秘匿データ照合装置３は、照合の際生成される剰余ベクトルの最終成分が「０」であるか否かを判定することで、登録元の生体データ１１１と照合データ２１１とが近似しているか否かを判定すると説明した。しかしながら、秘匿データ照合装置３は、これに限定されるものでなく、剰余ベクトルの複数成分が「０」であるか否かを判定することで、登録元の生体データ１１１と照合データ２１１とが近似しているか否かを判定するようにしても良い。
【０１２９】
例えば、近似判定行列生成部３１２は、判定対象となる生体データがｎ個の成分を有する情報である場合、すなわち生体データ１１１がｎ次元の情報である場合には、ｎ×ｎの対角行列を生成する。また、近似判定行列生成部３１２は、ｎ×ｎの対角行列に、ｎ＋１行目の各成分が「０」の行ベクトルを付加する。そして、近似判定行列生成部３１２は、ｎ次元の乱数ベクトルと鍵１１２の閾値を合わせた列ベクトルをｎ＋１列目に付加する。そして、近似判定行列生成部３１２は、ｎ＋２行目の各成分が「０」の行ベクトルを付加する。そして、近似判定行列生成部３１２は、ｎ＋２次元の乱数ベクトルをｎ＋２列目に付加した（ｎ＋２）×（ｎ＋２）の行列を生成する。
【０１３０】
さらに、近似判定行列生成部３１２は、ｎ＋３行目の各成分が「０」の行ベクトルを付加する。そして、近似判定行列生成部３１２は、ｎ＋３次元の乱数ベクトルをｎ＋３列目に付加した（ｎ＋３）×（ｎ＋３）の近似判定行列３３１を生成するようにしても良い。
【０１３１】
すると、秘匿データ照合装置３は、実施例と同様の処理を行うことで、近似判定行列３３１を法としたｎ＋３次元の剰余ベクトルを算出する。そして、秘匿データ照合装置３は、剰余ベクトルのｎ＋２次元目からｎ＋３次元目までの成分が全て「０」であるか否かを判定することで、近似判定をすることができる。これにより、秘匿データ照合装置３は、近似判定の精度を向上させることができる。なお、同様に、近似判定行列生成部３１２は、（ｎ＋ｍ）×（ｎ＋ｍ）（ｍは３より大きい自然数）の近似判定行列３３１を生成するようにすれば、近似判定の精度をさらに向上させることができる。
【０１３２】
また、秘匿データ照合装置３は、実施例１〜３の方法を適宜組み合わせても良い。例えば、秘匿データ照合装置３は、実施例２に係る複数の秘匿データ３３２１〜ｈを保持しつつ、更新秘匿データ生成部３２５によって生成された秘匿データを保持された複数の秘匿データ３３２１〜ｈのうちのいずれかの秘匿データと置き換えても良い。また、秘匿データ照合装置３は、実施例３に係る合成した秘匿データ３３２と実施例１に係る合成しない秘匿データ３３２とを両方保持し、適宜どちらかまたは両方を認証に用いても良い。
【０１３３】
また、実施例では、秘匿データ照合装置３は、生体データ１１１の近似判定に用いる場合を説明した。しかしながら、秘匿データ照合装置３は、これに限定されるものではなく、機密文章間の秘匿類似判定に用いることができる。例えば、クライアント端末１は、機密文章から特徴を有する文字や文章部分を抽出し、抽出した部分の特徴量を示す特徴量ベクトルを生成する。そして、クライアント端末１は、実施例と同様の処理を行うことで、生成した特徴量ベクトルと鍵を秘匿化した秘匿ベクトルを生成し、秘匿データ照合装置３のデータベース３３０に登録する。そして、秘匿データ照合装置３は、実施例と同様の処理を行うことで、クライアント端末２によって生成された、照合したい特徴量ベクトルを秘匿化した秘匿ベクトルと登録した秘匿ベクトルとを照合するようにすれば良い。
【０１３４】
また、秘匿データ照合装置３は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した登録部３１および照合判定部３２などの各機能を搭載することによって実現することができる。
【０１３５】
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、乱数生成部３１１と近似判定行列生成部３１２とを１個の部として統合しても良い。一方、近似判定行列生成部３１２を、近似範囲を示す閾値と鍵の閾値を行列に設定する第１の設定部と、乱数を設定する第２の設定部とを分散しても良い。また、データベース３３０を秘匿データ照合装置３の外部装置として接続するようにしても良いし、ネットワーク経由で接続するようにしても良い。
【０１３６】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１に示した秘匿データ照合装置３と同様の機能を実現する秘匿データ更新プログラムを実行するコンピュータの一例を説明する。図１０は、秘匿データ更新プログラムを実行するコンピュータの一例を示す図である。
【０１３７】
図１０に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラムなどを読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【０１３８】
ドライブ装置２１３は、例えばリムーバブルディスク２１０用の装置である。ＨＤＤ２０５は、秘匿データ更新プログラム２０５ａおよび秘匿データ更新関連情報２０５ｂを記憶する。
【０１３９】
ＣＰＵ２０３は、秘匿データ更新プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、秘匿データ照合装置３の各機能部に対応する。秘匿データ更新関連情報２０５ｂは、近似判定行列３３１、秘匿データ３３２に対応する。そして、例えばリムーバブルディスク２１０が、秘匿データ更新プログラム２０５ａなどの各情報を記憶する。
【０１４０】
なお、秘匿データ更新プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらから秘匿データ更新プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【０１４１】
１，２  クライアント端末
３  秘匿データ照合装置
９  秘匿データ照合システム
１１  登録依頼部
１２  秘匿データ生成部
２１  照合依頼部
２２  秘匿データ生成部
３１  登録部
３１１  乱数生成部
３１２  近似判定行列生成部
３１３  近似判定行列登録部
３１４  秘匿データ登録部
３２  照合判定部
３２１  照合依頼受付部
３２２  演算部
３２３  近似判定部
３２４  鍵抽出部
３２５  更新秘匿データ生成部
３２６  秘匿データ更新部
３３  記憶部
３３０  データベース
３３１  近似判定行列
３３２  秘匿データ
【図１】
0006281425.tif 000002
【図２】
0006281425.tif 000003
【図３】
0006281425.tif 000004
【図４】
0006281425.tif 000005
【図５】
0006281425.tif 000006
【図６】
0006281425.tif 000007
【図７】
0006281425.tif 000008
【図８】
0006281425.tif 000009
【図９】
0006281425.tif 000010
【図１０】
0006281425.tif 000011