(57)【要約】      （修正有）【課題】生体情報テンプレートが危険に晒されないようにする。【解決手段】第１の未加工生体情報テンプレートと、ユーザー識別子とを含む登録入力を受け取り３０４、第１の未加工生体情報テンプレートは、ユーザー識別子と関連付けられたユーザーの生体情報特徴の一意の特徴を表し、ランダムプロジェクションを第１の未加工生体情報テンプレートに適用することにより、第１の変換された生体情報テンプレートを生成し３０６、第１の変換された生体情報テンプレート及びユーザー識別子を認証サーバーに伝達する３０８。また、第２の未加工生体情報テンプレート及びユーザー識別子を含むチャレンジ入力を受け取り３１０、第２の変換された生体情報テンプレートを生成し３１２、第２の変換された生体情報テンプレート及びユーザー識別子を認証サーバーに伝達する３１４。さらに、認証サーバーから認証決定を示す信号を受け取る３１６。【選択図】図３
2015225660.tif 000002
【特許請求の範囲】
【請求項１】
第１の未加工生体情報テンプレートとユーザー識別子とを含む登録入力を受け取り、前記第１の未加工生体情報テンプレートは、前記ユーザー識別子と関連付けられたユーザーの生体情報特徴の一つまたは複数の一意の特徴を表し、
ランダムプロジェクションを前記第１の未加工生体情報テンプレートに適用することにより第１の変換された生体情報テンプレートを生成し、
前記第１の変換された生体情報テンプレート及び前記ユーザー識別子を認証サーバーに伝達し、
第２の未加工生体情報テンプレートと前記ユーザー識別子とを含むチャレンジ入力を受け取り、
前記ランダムプロジェクションを前記第２の未加工生体情報テンプレートに適用することにより第２の変換された生体情報テンプレートを生成し、
前記第２の変換された生体情報テンプレート及び前記ユーザー識別子を前記認証サーバーに伝達し、
前記認証サーバーから認証決定を示す信号を受け取り、前記認証決定は、前記第２の変換された生体情報テンプレートと前記第１の変換された生体情報テンプレート間の近似的類似度に基づく、
ことを含む方法。
【請求項２】
ランダム行列が前記認証サーバーから受け取られることをさらに含み、
前記ランダム行列は、
未加工テンプレートの次元に変換されたテンプレートの次元を乗じたサイズと、
０または１の値とを含み、前記ランダム行列の特定の要素が１である確率が特定の確率である、請求項１に記載の方法。
【請求項３】
前記第１の変換された生体情報テンプレート及び前記第２の変換された生体情報テンプレートは、変換されたテンプレートの次元を有するベクトル空間のメンバである、請求項１に記載の方法。
【請求項４】
前記近似的類似度は、前記第１の変換された生体情報テンプレートと前記第２の変換されたテンプレート間のハミング距離に基づく、請求項１に記載の方法。
【請求項５】
第１のハミング値、第２のハミング値、及び変換されたハミング閾値を含む初期化データを受け取ることをさらに含み、
前記第１のハミング値は、前記第２のハミング値未満であり、
前記第２のハミング値は、変換されたテンプレートの次元未満であり、
前記第１の未加工生体情報テンプレートと前記第２の未加工生体情報テンプレート間のハミング距離が前記第１のハミング値未満である場合、前記第１の変換された生体情報テンプレートと前記第２の変換された生体情報テンプレート間のハミング距離が前記変換されたハミング閾値より大きい確率は、10000のうちの1未満であり、かつ、
前記第１の未加工生体情報テンプレートと前記第２の未加工生体情報テンプレート間の前記ハミング距離が前記第２のハミング値より大きい場合、前記第１の変換された生体情報テンプレートと前記第２の変換された生体情報テンプレート間の前記変換されたハミング距離が前記変換されたハミング閾値以下である確率は、10000のうちの1未満である、請求項１に記載の方法。
【請求項６】
前記第１の未加工生体情報テンプレートは、式ＸT∈｛０，１｝nに従って定義され、
前記第２の未加工生体情報テンプレートは、式ＹT∈｛０，１｝nに従って定義され、
前記ランダム行列は、式Ｒ∈Ｚ2k×nに従って定義され、
前記第１の変換された生体情報テンプレートは、式ＸT’＝ＲＸT∈｛０，１｝kに従って定義され、
前記第２の変換された生体情報テンプレートは、式ＹT’＝ＲＹT∈｛０，１｝kに従って定義され、
ＸTは、前記第１の未加工生体情報テンプレートを表し、
ＹTは、前記第２の未加工生体情報テンプレートを表し、
∈は、メンバーシップ演算子を表し、
ｎは、前記未加工テンプレートの次元を表し、
ｋは、前記変換されたテンプレートの次元を表し、
｛０，１｝nは、前記未加工テンプレートの次元を含む次元を有するベクトル空間を表し、
｛０，１｝kは、前記変換されたテンプレートの次元を含む次元を有するベクトル空間を表し、
Ｒは、前記ランダム行列を表し、
Ｚ2k×nは、サイズ（ｎ×ｋ）を有し、整数０及び１を含む整数行列を表し、
ＸT’は、前記第１の変換された生体情報テンプレートを表し、
ＹT’は、前記第２の変換された生体情報テンプレートを表す、請求項１に記載の方法。
【請求項７】
動作を実行するためにプロセッサにより実行可能であるコンピュータプログラムであって、
前記動作は、
第１の未加工生体情報テンプレートとユーザー識別子とを含む登録入力を受け取り、前記第１の未加工生体情報テンプレートは、前記ユーザー識別子と関連付けられたユーザーの生体情報特徴の一つまたは複数の一意の特徴を表し、
ランダムプロジェクションを前記第１の未加工生体情報テンプレートに適用することにより第１の変換された生体情報テンプレートを生成し、
前記第１の変換された生体情報テンプレート及び前記ユーザー識別子を認証サーバーに伝達し、
第２の未加工生体情報テンプレートと前記ユーザー識別子とを含むチャレンジ入力を受け取り、
前記ランダムプロジェクションを前記第２の未加工生体情報テンプレートに適用することにより第２の変換された生体情報テンプレートを生成し、
前記第２の変換された生体情報テンプレート及び前記ユーザー識別子を前記認証サーバーに伝達し、
前記認証サーバーから認証決定を示す信号を受け取り、前記認証決定は、前記第２の変換された生体情報テンプレートと前記第１の変換された生体情報テンプレート間の近似的類似度に基づく、
ことを含むコンピュータプログラム。
【請求項８】
前記動作は、ランダム行列が前記認証サーバーから受け取られることをさらに含み、
前記ランダム行列は、
未加工テンプレート次元に変換されたテンプレート次元を乗じたサイズと、
０または１の値とを含み、前記ランダム行列の特定の要素が１である確率が特定の確率である請求項７に記載の一時的ではないコンピュータ可読媒体。
【請求項９】
前記第１の変換された生体情報テンプレート及び前記第２の変換された生体情報テンプレートは、変換されたテンプレートの次元を有するベクトル空間のメンバである、請求項７に記載のコンピュータプログラム。
【請求項１０】
前記近似的類似度は、前記第１の変換された生体情報テンプレートと前記第２の変換されたテンプレート間のハミング距離に基づく、請求項７に記載のコンピュータプログラム。
【請求項１１】
前記動作は、第１のハミング値、第２のハミング値、及び変換されたハミング閾値を含む初期化データを受け取ることをさらに含み、
前記第１のハミング値は前記第２のハミング値未満であり、
前記第２のハミング値は変換されたテンプレートの次元未満であり、
前記第１の未加工生体情報テンプレートと前記第２の未加工生体情報テンプレート間のハミング距離が前記第１のハミング値未満である場合、前記第１の変換された生体情報テンプレートと前記第２の変換された生体情報テンプレート間のハミング距離が前記変換されたハミング閾値より大きい確率は、10000のうちの1未満であり、かつ、
前記第１の未加工生体情報テンプレートと前記第２の未加工生体情報テンプレート間の前記ハミング距離が前記第２のハミング値より大きい場合、前記第１の変換された生体情報テンプレートと前記第２の変換された生体情報テンプレート間の前記変換されたハミング距離が前記変換されたハミング閾値以下である確率は、10000のうちの1未満である、請求項７に記載のコンピュータプログラム。
【請求項１２】
前記第１の未加工生体情報テンプレートは、式ＸT∈｛０，１｝nに従って定義され、
前記第２の未加工生体情報テンプレートは、式ＹT∈｛０，１｝nに従って定義され、
前記ランダム行列は、式Ｒ∈Ｚ2k×nに従って定義され、
前記第１の変換された生体情報テンプレートは、式ＸT’＝ＲＸT∈｛０，１｝kに従って定義され、
前記第２の変換された生体情報テンプレートは、式ＹT’＝ＲＹT∈｛０，１｝kに従って定義され、
ＸTは、前記第１の未加工生体情報テンプレートを表し、
ＹTは、前記第２の未加工生体情報テンプレートを表し、
∈は、メンバーシップ演算子を表し、
ｎは、前記未加工テンプレート次元を表し、
ｋは、前記変換されたテンプレートの次元を表し、
｛０，１｝nは、前記未加工テンプレートの次元を含む次元を有するベクトル空間を表し、
｛０，１｝kは、前記変換されたテンプレートの次元を含む次元を有するベクトル空間を表し、
Ｒは、前記ランダム行列を表し、
Ｚ2k×nは、サイズ（ｎ×ｋ）を有し、整数０及び１を含む整数行列を表し、
ＸT’は、前記第１の変換された生体情報テンプレートを表し、
ＹT’は、前記第２の変換された生体情報テンプレートを表す、請求項７に記載のコンピュータプログラム。
【請求項１３】
初期化データ及びランダム行列を含むハッシュ関数表現をユーザー装置に提供し、
第１の変換された生体情報テンプレート及びユーザー識別子を含む登録データを受け取り、前記第１の変換された生体情報テンプレートは、ランダムプロジェクションの第１の未加工生体情報テンプレートへの適用によって生成され、かつ、前記ランダムプロジェクションはランダム行列に基づき、
前記第１の変換された生体情報テンプレートを前記ユーザー識別子と関連付けられたユーザーの登録テンプレートとして保存する、
ことを含む方法。
【請求項１４】
前記ランダム行列は、
未加工テンプレートの次元に変換されたテンプレートの次元を乗じたサイズと、
０または１の値とを含み、前記ランダム行列の特定の要素が１である確率が特定の確率である、請求項１３に記載の方法。
【請求項１５】
第２の変換された生体情報テンプレート及び前記ユーザー識別子の一つまたは複数を含むチャレンジデータを受け取り、
前記ユーザー識別子に基づいて前記登録テンプレートを取得し、
ハミング距離に基づいて前記登録テンプレートと前記第２の変換された生体情報テンプレート間の近似的類似度を求め、
前記ハミング距離が変換されたハミング閾値未満であることに応答して、認証信号を前記ユーザー装置に伝達し、
前記ハミング距離が前記変換されたハミング閾値より大きいことに応答して、前記認証信号を前記ユーザーに伝達しない、
ことをさらに含む、請求項１３に記載の方法。
【請求項１６】
前記第２の変換された生体情報テンプレートは、前記ランダムプロジェクションの第２の未加工生体情報テンプレートに対する適用によって生成され、かつ、
前記第１の変換された生体情報テンプレート及び前記第２の変換された生体情報テンプレートは、変換されたテンプレートの次元を有するベクトル空間のメンバである、請求項１５に記載の方法。
【請求項１７】
前記変換されたハミング閾値と、第１のハミング値、第２のハミング値、及び変換されたハミング閾値を含む前記初期化データを選択することをさらに含み、
前記第１のハミング値は前記第２のハミング値未満であり、
前記第２のハミング値は変換されたテンプレートの次元未満であり、
前記第１の未加工生体情報テンプレートと前記第２の未加工生体情報テンプレート間のハミング距離が前記第１のハミング値未満である場合、前記第１の変換された生体情報テンプレートと前記第２の変換された生体情報テンプレート間のハミング距離が前記変換されたハミング閾値より大きい確率は、10000のうちの1未満であり、かつ、
前記第１の未加工生体情報テンプレートと前記第２の未加工生体情報テンプレート間の前記ハミング距離が前記第２のハミング値超である場合、前記第１の変換された生体情報テンプレートと前記第２の変換された生体情報テンプレート間の前記変換されたハミング距離が前記変換されたハミング閾値以下である確率は、10000のうちの1未満である、請求項１５に記載の方法。
【請求項１８】
前記第１の未加工生体情報テンプレートは、式ＸT∈｛０，１｝nに従って定義され、
前記第２の未加工生体情報テンプレートは、式ＹT∈｛０，１｝nに従って定義され、
前記ランダム行列は、式Ｒ∈Ｚ2k×nに従って定義され、
前記第１の変換された生体情報テンプレートは、式ＸT’＝ＲＸT∈｛０，１｝kに従って定義され、
前記第２の変換された生体情報テンプレートは、式ＹT’＝ＲＹT∈｛０，１｝kに従って定義され、
ＸTは、前記第１の未加工生体情報テンプレートを表し、
ＹTは、前記第２の未加工生体情報テンプレートを表し、
∈は、メンバーシップ演算子を表し、
ｎは、前記未加工テンプレート次元を表し、
ｋは、前記変換されたテンプレート次元を表し、
｛０，１｝nは、前記未加工テンプレートの次元を含む次元を有するベクトル空間を表し、
｛０，１｝kは、前記変換されたテンプレートの次元を含む次元を有するベクトル空間を表し、
Ｒは、前記ランダム行列を表し、
Ｚ2k×nは、サイズ（ｎ×ｋ）を有し、整数０及び１を含む整数行列を表し、
ＸT’は、前記第１の変換された生体情報テンプレートを表し、かつ、
ＹT’は、前記第２の変換された生体情報テンプレートを表す、請求項１５に記載の方法。
【請求項１９】
前記登録テンプレートを暗号化することをさらに含む、請求項１３に記載の方法。
【請求項２０】
動作を実行するためにプロセッサによって実行可能であるコンピュータプログラムであって、
前記動作は、
初期化データ及びランダム行列を含むハッシュ関数表現をユーザー装置に提供し、
第１の変換された生体情報テンプレート及びユーザー識別子を含む登録データを受け取り、前記第１の変換された生体情報テンプレートは、ランダムプロジェクションの第１の未加工生体情報テンプレートへの適用によって生成され、かつ、前記ランダムプロジェクションはランダム行列に基づき、
前記第１の変換された生体情報テンプレートを前記ユーザー識別子と関連付けられたユーザーの登録テンプレートとして保存する、
ことを含む、コンピュータプログラム。
【請求項２１】
前記ランダム行列は、
未加工テンプレートの次元に変換されたテンプレートの次元を乗じたサイズと、
０または１の値とを含み、前記ランダム行列の特定の要素が１である確率が特定の確率である、請求項２０に記載のコンピュータプログラム。
【請求項２２】
前記動作は、
第２の変換された生体情報テンプレート及び前記ユーザー識別子の一つまたは複数を含むチャレンジデータを受け取り、
前記ユーザー識別子に基づいて前記登録テンプレートを取得し、
ハミング距離に基づいて前記登録テンプレートと前記第２の変換された生体情報テンプレート間の近似的類似度を求め、
前記ハミング距離が変換されたハミング閾値未満であることに応答して、認証信号を前記ユーザー装置に伝達し、
前記ハミング距離が前記変換されたハミング閾値より大きいことに応答して、前記認証信号を前記ユーザーに伝達しない、
ことをさらに含む請求項２０に記載のコンピュータプログラム。
【請求項２３】
前記第２の変換された生体情報テンプレートは、前記ランダムプロジェクションの第２の未加工生体情報テンプレートに対する適用によって生成され、かつ、
前記第１の変換された生体情報テンプレート及び前記第２の変換された生体情報テンプレートは、変換されたテンプレートの次元を有するベクトル空間のメンバである、請求項２２に記載のコンピュータプログラム。
【請求項２４】
前記動作は、前記変換されたハミング閾値と、第１のハミング値及び第２のハミング値を含む前記初期化データとを選択することをさらに含み、
前記第１のハミング値は、前記第２のハミング値未満であり、
前記第２のハミング値は、変換されたテンプレートの次元未満であり、
前記第１の未加工生体情報テンプレートと前記第２の未加工生体情報テンプレート間のハミング距離が前記第１のハミング値未満である場合、前記第１の変換された生体情報テンプレートと前記第２の変換された生体情報テンプレート間のハミング距離が前記変換されたハミング閾値より大きい確率は、10000のうちの1未満であり、かつ、
前記第１の未加工生体情報テンプレートと前記第２の未加工生体情報テンプレート間の前記ハミング距離が前記第２のハミング値超である場合、前記第１の変換された生体情報テンプレートと前記第２の変換された生体情報テンプレート間の前記変換されたハミング距離が前記変換されたハミング閾値以下である確率は、10000のうちの1未満である、請求項２２に記載のコンピュータプログラム。
【請求項２５】
前記第１の未加工生体情報テンプレートは、式ＸT∈｛０，１｝nに従って定義され、
前記第２の未加工生体情報テンプレートは、式ＹT∈｛０，１｝nに従って定義され、
前記ランダム行列は、式Ｒ∈Ｚ2k×nに従って定義され、
前記第１の変換された生体情報テンプレートは、式ＸT’＝ＲＸT∈｛０，１｝kに従って定義され、
前記第２の変換された生体情報テンプレートは、式ＹT’＝ＲＹT∈｛０，１｝kに従って定義され、
ＸTは、前記第１の未加工生体情報テンプレートを表し、
ＹTは、前記第２の未加工生体情報テンプレートを表し、
∈は、メンバーシップ演算子を表し、
ｎは、前記未加工テンプレートの次元を表し、
ｋは、前記変換されたテンプレートの次元を表し、
｛０，１｝nは、前記未加工テンプレートの次元を含む次元を有するベクトル空間を表し、
｛０，１｝kは、前記変換されたテンプレートの次元を含む次元を有するベクトル空間を表し、
Ｒは、前記ランダム行列を表し、
Ｚ2k×nは、サイズ（ｎ×ｋ）を有し、整数０及び１を含む整数行列を表し、
ＸT’は、前記第１の変換された生体情報テンプレートを表し、かつ、
ＹT’は、前記第２の変換された生体情報テンプレートを表す、請求項２２に記載のコンピュータプログラム。
【請求項２６】
前記動作は、前記登録テンプレートを暗号化することをさらに含む、請求項２０に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記述されている実施形態は、プライバシーを保護した生体認証に関する。
【背景技術】
【０００２】
生体認証は、ユーザー認証の一形態に含まれよう。生体認証は、一般に、ユーザーに固有のユーザーの生体情報特徴を計測することを含む。そして、計測された生体情報特徴またはその表現は、ユーザーの身元を認証する基礎として使用される。生体情報特徴には、ユーザーの指紋、虹彩、静脈、デオキシリボ核酸（DNA）の一部分、及びこれらに類似したものが含まれよう。生体認証は、パスワードの記憶を要することなしに、ユーザーの認証を可能にするという利点を有している。但し、生体情報特徴は、（パスワードとは異なって）変更不能なことから、生体認証システムにおいては、プライバシーが重要である。
【０００３】
本明細書において特許請求されている主題は、いずれかの欠点を解決するまたは上述のものなどの環境においてのみ稼働する実施形態に限定されるものではない。むしろ、この背景説明は、本明細書に記述されているいくつかの実施形態を実施し得る例示の一技術を示すべく提供されたものに過ぎない。
【発明の概要】
【課題を解決するための手段】
【０００４】
一実施形態の一態様によれば、方法は、登録入力を受け取ることを含む。登録入力は、第１の未加工生体情報テンプレートと、ユーザー識別子とを含んでもよい。第１の未加工生体情報テンプレートは、ユーザー識別子と関連付けられたユーザーの生体情報特徴の一意の特徴を表してもよい。方法は、ランダムプロジェクションを第１の未加工生体情報テンプレートに適用することにより、第１の変換された生体情報テンプレートを生成することを含んでもよい。方法は、第１の変換された生体情報テンプレート及びユーザー識別子を認証サーバーに伝達することを含んでもよい。方法は、チャレンジ入力を受け取ることを含んでもよい。チャレンジ入力は、第２の未加工生体情報テンプレートと、ユーザー識別子とを含んでもよい。方法は、ランダムプロジェクションを第２の未加工生体情報テンプレートに適用することにより、第２の変換された生体情報テンプレートを生成することを含んでもよい。方法は、第２の変換された生体情報テンプレート及びユーザー識別子を認証サーバーに伝達することを含んでもよい。方法は、認証決定を示す信号を認証サーバーから受け取ることを含んでもよい。認証決定は、第２の変換された生体情報テンプレートと第１の変換された生体情報テンプレート間の近似的類似度に基づいたものであってもよい。
【０００５】
実施形態の目的及び利点は、少なくとも、請求項において具体的に指摘されている要素、特徴、及び組合せにより、実現及び達成されることになる。
【０００６】
上述の一般的な説明及び以下の詳細な説明は、いずれも、例示及び説明を目的としたものであり、且つ、特許請求されている本発明を限定するためのものではないことを理解されたい。
【０００７】
添付図面を使用し、例示の実施形態についてさらなる具体性及び詳細を伴って記述及び説明することとする。添付図面は、いずれも、本明細書に記述されている少なくとも一つの実施形態に従って構成されている。
【図面の簡単な説明】
【０００８】
【図１Ａ】例示の稼働環境のブロックダイアグラムである。
【図１Ｂ】例示の生体認証システムのブロックダイアグラムである。
【図２】生体認証を提供する例示のシステムのブロックダイアグラムである。
【図３】生体認証の例示の方法のフローチャートである。
【図４】生体認証の他の方法のフローチャートである。
【発明を実施するための形態】
【０００９】
生体認証の一つの問題点は、ユーザーが、認証の基礎として使用される生体情報特徴を変更することができないという点にあろう。例えば、ユーザーは、ユーザーの指紋またはユーザーの虹彩パターンなどのユーザーの一つまたは複数の一意の特徴を表す生体情報データ（biometric data）を含む生体情報テンプレート（biometric template）を登録してもよい。生体情報テンプレートが危険に晒された場合に、ユーザーは、生体情報テンプレートによって表される一意の特徴を変更することができないであろう。したがって、危険に晒されたら、他の生体情報テンプレートを登録してもよく、あるいは、他の生体情報特徴の生体情報テンプレートを登録してもよい。少なくともこの理由から、生体認証システムは、強力なプライバシー保証の利益を享受することになろう。
【００１０】
いくつかの生体認証システムにおいては、様々なアプローチを実装して安全な生体認証システムの提供を試みている。例えば、いくつかの生体認証システムは、「特徴変換方式」、「生体情報暗号システム方式」、及び／または「準同型暗号方式」を実装している。但し、これらのアプローチのそれぞれは、それぞれが危険に晒されるおそれのある生体情報テンプレート、クライアントに固有のキー、パブリックキーなどの情報の伝達に少なくとも部分的に起因して、限られたプライバシー及びセキュリティしか提供していない。
【００１１】
したがって、本明細書に記述されているいくつかの実施形態は、プライバシーを保持する生体認証に関する。例示の実施形態は、生体認証方法を含む。方法は、登録入力を受け取ることを含んでもよい。登録入力は、第１の未加工生体情報テンプレートと、ユーザー識別子とを含んでもよい。第１の未加工生体情報テンプレートは、ユーザー識別子と関連付けられたユーザーの生体情報特徴の一意の特徴を表してもよい。方法は、ランダムプロジェクション（random projection）を第１の未加工生体情報テンプレートに適用することにより、第１の変換された生体情報テンプレートを生成することを含んでもよい。方法は、第１の変換された生体情報テンプレート及びユーザー識別子を認証サーバーに伝達することを含んでもよい。方法は、チャレンジ入力を受け取ることを含んでもよい。チャレンジ入力は、第２の未加工生体情報テンプレートと、ユーザー識別子とを含んでもよい。第２の未加工生体情報テンプレートは、ユーザー識別子と関連付けられたユーザーの生体情報特徴の一つまたは複数の一意の特徴を表してもよい。方法は、ランダムプロジェクションを第２の未加工生体情報テンプレートに適用することにより、第２の変換された生体情報テンプレートを生成することを含んでもよい。方法は、第２の変換された生体情報テンプレート及びユーザー識別子を認証サーバーに伝達することを含んでもよい。方法は、認証決定を示す信号を認証サーバーから受け取ることを含んでもよい。認証決定は、第２の変換された生体情報テンプレートと第１の変換された生体情報テンプレート間の近似的類似度に基づいたものであってもよい。具体的には、いくつかの実施形態においては、近似的類似度は、第２の変換された生体情報テンプレートと第１の変換された生体情報テンプレート間において算出されたハミング距離として定量化されてもよい。ハミング距離が変換されたハミング閾値未満であることに応答して、第２の変換された生体情報テンプレートと第１の変換された生体情報テンプレート間で略一致すると判定してもよい。添付の図面を参照し、本発明の実施形態について説明することとする。
【００１２】
図１Ａは、本明細書に記述されている少なくとも一つの実施形態に従って構成された例示の稼働環境１００のブロックダイアグラムを示している。稼働環境１００において、ユーザー１０６の生体認証は、認証サーバー１４０によって実行されてもよい。
【００１３】
稼働環境１００は、ユーザー１０６と、ユーザー装置１０２と、認証サーバー１４０と、ネットワーク１０７とを含む。ユーザー装置１０２は、ネットワーク１０７を介して認証サーバー１４０に通信可能に結合されてもよい。ユーザー装置１０２及び認証サーバー１４０は、一般に、生体認証システム１２０を構成しており、このシステムにおいて、ユーザー１０６の生体情報テンプレートが登録されてもよい。そして、登録されたテンプレートを使用し、ユーザー１０６の身元を認証してもよい。例えば、ユーザー装置１０２は、ネットワーク１０７を介して認証サーバー１４０に、潜在的にその他の情報と共に、第１の生体情報テンプレートを伝達してもよい。第１の生体情報テンプレートは、登録されたテンプレートとして認証サーバー１４０において保存されてもよい。そして、ユーザー装置１０２は、ネットワーク１０７を介して認証サーバー１４０に、潜在的にその他の情報と共に、第２の生体情報テンプレートを伝達してもよい。認証サーバー１４０は、認証決定を示す信号をユーザー装置１０２に伝達してもよく、認証決定は、認証サーバー１４０において実施されてもよい。
【００１４】
図１Ａに示されているように、認証サーバー１４０は、認証モジュール１０８を含んでもよく、且つ、ユーザー装置１０２は、ユーザーモジュール１１０を含んでもよい。一般に、認証モジュール１０８及びユーザーモジュール１１０は、生体認証を使用してユーザー１０６の身元を認証するために使用される情報及びデータを伝達及び処理するように構成されてもよい。
【００１５】
ネットワーク１０７は、有線または無線ネットワークを含んでもよく、且つ、星形構成、トークンリング構成、またはその他の構成を含む多数の異なる構成を有してもよい。さらには、ネットワーク１０７は、ローカルエリアネットワーク（Local Area Network:LAN）、ワイドエリアネットワーク（Wide Area Network:WAN）（例えば、インターネット）、及び／または複数の装置がそれにわたって通信し得るその他の相互接続されたデータ経路を含んでもよい。いくつかの例においては、ネットワーク１０７は、ピアツーピアネットワークを含んでもよい。また、ネットワーク１０７は、データを様々な異なる通信プロトコルにおいて送信する通信ネットワークの一部分に結合されてもよく、あるいは、これを含んでもよい。いくつかの例においては、ネットワーク１０７は、ショートメッセージングサービス（Short Messaging Service:SMS）、マルチメディアメッセージングサービス（Multimedia Messaging Service:MMS）、ハイパーテキスト転送プロトコル（HyperTex Transfer Protocol:HTTP）、直接的データ接続、ＷＡＰ、電子メールなどを介したものを含むデータを送受信するBLUETOOTH（登録商標）通信ネットワークまたはセルラー通信ネットワークを含む。
【００１６】
認証サーバー１４０は、プロセッサに基づいた演算装置を含んでもよい。例えば、認証サーバー１４０は、ハードウェアサーバーを、あるいは、サーバーとして機能するように構成された他のプロセッサに基づいた演算装置を含んでもよい。認証サーバー１４０は、メモリ及びネットワーク通信能力を含んでもよい。稼働環境１００において、認証サーバー１４０は、ユーザー装置１０２との間でネットワーク１０７を介して通信するように構成されてもよい。
【００１７】
認証サーバー１４０は、認証モジュール１０８を含んでもよい。認証モジュール１０８は、生体認証サービスを提供するように構成されたコード及び／またはルーチンを含んでもよい。認証モジュール１０８は、認証サーバー１４０のメモリに保存されてもよい。認証モジュール１０８は、認証サーバー１４０のプロセッサによって実行可能となるように構成されてもよい。
【００１８】
ユーザー１０６は、一つまたは複数の生体情報特徴を有する人間を含んでもよい。生体情報特徴は、一つまたは複数の一意の特徴を含んでもよい。例えば、生体情報特徴は、隆線及び／または溝のパターンを含むユーザー１０６の指紋を含んでもよい。ユーザー１０６は、いくつかの実施形態においては、ユーザー装置１０２と関連付けられてもよい。例えば、ユーザー１０６は、ユーザー装置１０２を所有してもよく、あるいは、これを定期的に動作させてもよい。いくつかの実施形態において、ユーザー１０６は、ユーザー装置１０２と具体的に関付けられていなくてもよい。例えば、ユーザー装置１０２は、ユーザー１０６を含む複数のユーザーから公的にアクセス可能であってもよい。
【００１９】
ユーザー１０６は、ユーザー装置１０２を使用し、ネットワーク１０７を介して認証サーバー１４０にアクセスしてもよい。例えば、ユーザー１０６は、ユーザー装置１０２を動作させることにより、認証サーバー１４０の認証モジュール１０８によって提供される生体認証にアクセスしてもよい。ユーザー１０６が認証サーバー１４０にアクセスした際に、認証モジュール１０８は、生体認証サービスを提供してもよい。生体認証サービスを使用することにより、計測されたユーザー１０６の生体情報特徴に基づいてユーザーを識別してもよいと共に／または、ユーザー１０６の身元を確認してもよい。
【００２０】
ユーザー装置１０２は、プロセッサに基づいた演算装置を含んでもよい。ユーザー装置１０２は、メモリと、プロセッサと、ネットワーク通信能力とを含んでもよい。稼働環境において、ユーザー装置１０２は、データ及び情報をネットワーク１０７を介して認証サーバー１４０に伝達する能力を有してもよい。ユーザー装置１０２のいくつかの例は、携帯電話機、スキャニング装置、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、セットトップボックス、または接続された装置（例えば、スマートウォッチ、スマート眼鏡、スマート歩数計、または任意のその他の接続された装置）を含んでもよい。
【００２１】
ユーザー装置１０２は、センサ１９８を含んでもよい。センサ１９８は、ハードウェア装置を含んでもよい。センサ１９８は、ユーザー１０６の認証に使用される生体情報特徴を計測するかまたはその他の方法でキャプチャするように構成されてもよい。ユーザー１０６の生体情報特徴が計測されるかまたはその他の方法でキャプチャされた際に、ユーザー装置１０２は、生体情報テンプレートを生成してもよい。生体情報テンプレートは、生体情報特徴を表し、且つ、ユーザー１０６の生体情報特徴の一意の特徴のうちの少なくともいくつかを含んでもよい。生体情報テンプレートは、例えば、生体情報特徴のグラフィカルな表現及び／またはアルゴリズム的表現を含んでもよい。
【００２２】
センサ１９８のいくつかの例は、指紋スキャナ、虹彩の画像をキャプチャするように構成されたカメラ、DNAを計測するように構成された装置、心拍数を計測するように構成された心拍数モニタ、骨格筋によって生じる電気的活動をキャプチャするように構成された着用可能な筋電図センサ、ユーザー１０６などのユーザーと関連付けられた生体情報特徴を計測するかまたはその他の方法でキャプチャするように構成された任意の他のセンサ１９８を含んでもよい。
【００２３】
図示の稼働環境１００においては、センサ１９８は、ユーザー装置１０２に含まれている。他の実施形態においては、センサ１９８は、ユーザー装置１０２に、または本明細書に含まれているプロセッサに、通信可能に結合されてもよい。例えば、センサ１９８は、信号をネットワーク１０７を介してユーザー装置１０２に伝達するように構成されてもよい。図１Ａには、一つのセンサ１９８しか示されていないが、いくつかの実施形態においては、ユーザー装置１０２は、一つまたは複数のセンサ１９８を含んでもよい。
【００２４】
ユーザー装置１０２のユーザーモジュール１１０は、ユーザー装置１０２のメモリ上に保存されたコード及びルーチンを含んでもよい。ユーザーモジュール１１０は、ユーザー装置１０２のプロセッサによって実行可能であってもよい。ユーザーモジュール１１０は、ユーザー１０６の生体認証に関係する情報及びデータを伝達及び処理するように構成されてもよい。
【００２５】
本開示の範囲を逸脱することなしに、稼働環境１００に対して変更、追加、省略が実施されてもよい。具体的には、図１Ａに示されている実施形態は、一つのユーザー１０６と、一つのユーザー装置１０２と、一つの認証サーバー１４０とを含む。但し、本開示は、一つまたは複数のユーザー１０６、一つまたは複数のユーザー装置１０２、一つまたは複数の認証サーバー１４０、またはこれらの任意の組合せを含み得る稼働環境にも適用される。
【００２６】
さらには、本明細書に記述されている実施形態の様々なコンポーネントの分離は、分離がすべての実施形態において発生することを示すことを意図したものではない。記述されているコンポーネントは、単一のコンポーネントとして一つに統合されてもよく、あるいは、複数のコンポーネントに分離されてもよいことを本開示の利益と共に理解されたい。例えば、いくつかの実施形態においては、ユーザーモジュール１１０及び／またはこれに由来する一つまたは複数の機能は、認証サーバー１４０上の一つのモジュールによって実行されてもよい。
【００２７】
認証モジュール１０８及び／またはユーザーモジュール１１０は、生体認証用のコード及びルーチンを含んでもよい。いくつかの実施形態においては、認証モジュール１０８及び／またはユーザーモジュール１１０は、例えば、部分的に、ユーザー装置１０２または他の演算装置に保存され得るシンクライアントアプリケーションとして、あるいは、部分的に、認証サーバー１４０に保存され得るコンポーネントとして、機能してもよい。いくつかの実施形態においては、認証モジュール１０８及び／またはユーザーモジュール１１０は、フィールドプログラム可能ゲートアレイ（Field-Programmable Gate Array:FPGA）またはアプリケーション固有集積回路（Application-Specific Integrated Circuit:ASIC）を含むハードウェアを使用して実装されてもよい。いくつかのその他の例においては、認証モジュール１０８及び／またはユーザーモジュール１１０は、ハードウェア及びソフトウェアの組合せを使用して実装されてもよい。
【００２８】
稼働環境１００において、ユーザー装置１０２及び認証サーバー１４０内のメモリなどのメモリは、本明細書に記述されている機能を提供するためのデータを保存する一時的ではないメモリを含んでもよい。メモリは、ストレージ内に含まれてもよく、ストレージは、ダイナミックランダムアクセスメモリ（Dynamic Random Access Memory:DRAM）装置、スタティックランダムアクセスメモリ（Static Random Access Memory:SRAM）装置、フラッシュメモリ（登録商標）、またはいくつかの他のメモリ装置を含んでもよい。また、いくつかの実施形態においては、ストレージは、ハードディスクドライブ、フロッピーディスクドライブ（登録商標）、CD-ROM装置、DVD-ROM装置、DVD-RAM装置、DVD-RW装置、フラッシュメモリ装置（登録商標）、または相対的に永久的な方式で情報を保存するいくつかの他のマスストレージ装置を含む不揮発性メモリまたは類似の永久的ストレージ装置及び媒体をも含む。
【００２９】
図１Ｂは、生体認証システム１２０において提供され得る例示の認証サービスのいくつかの詳細を示す図１Ａの稼働環境１００のブロックダイアグラムである。図１Ｂにおいては、ネットワーク１０７が省略されている。但し、ユーザー装置１０２と認証サーバー１４０間の生体認証システム１２０内の通信は、図１Ａのネットワーク１０７を介して行われてもよい。
【００３０】
認証サービスは、登録プロセスと、認証プロセスとを含んでもよい。登録プロセスは、認証プロセスにおいて使用され得る情報及びデータをユーザー１０６から取得することを含んでもよい。認証プロセスは、後の時点において（例えば、登録プロセスの後に）発生してもよい。認証プロセスにおいては、ユーザー１０６の身元が、ユーザー１０６によって提供される生体情報テンプレートに基づいて認証され、且つ／または、詐称者１２２の身元が、詐称者１２２によって提供された生体情報テンプレートに基づいて認証されない。
【００３１】
図１Ｂに示されている認証サービスにおいては、ユーザー装置１０２から認証サーバー１４０に伝達される生体情報テンプレートが変換されてもよい。生体情報テンプレートを変換することにより、認可されていない者によるユーザー１０６の生体情報テンプレートに対するアクセスを制限してもよい。
【００３２】
例えば、生体情報テンプレートは、ユーザー１０６の計測された生体情報特徴から生成されてもよい。計測された生体情報特徴から生成された生体情報テンプレートは、本明細書においては、「未加工生体情報テンプレート」と呼ぶ。未加工生体情報テンプレートは、そこに含まれているデータのいくつかを要約または除去するように、変換されてもよい。いくつかの実施形態においては、未加工生体情報テンプレートは、ランダムプロジェクションを未加工生体情報テンプレートに適用することにより変換されてもよい。ここで使用される、ランダムプロジェクションの適用後に存在する生体情報テンプレートは、「変換された生体情報テンプレート」と呼ぶ。変換された生体情報テンプレートは、ユーザー装置１０２から認証サーバー１４０に伝達されてもよい。認証サービスのいくつかのさらなる詳細事項については後述する。
【００３３】
登録プロセスにおいて、認証モジュール１０８は、ハッシュ関数表現１２８（図１Ｂにおいては、「ハッシュ関数」）を公開してもよく、あるいは、他の方法によって利用可能にしてもよい。ハッシュ関数表現１２８は、ランダム行列を含んでもよい。ランダム行列を使用し、未加工生体情報テンプレートを変換してもよい。例えば、未加工生体情報テンプレートを変換することは、ランダム行列のランダムプロジェクションを未加工生体情報テンプレートに適用することを含んでもよい。
【００３４】
ランダムプロジェクションを適用することにより、未加工生体情報テンプレートの次元が低減されてもよい。例えば、ユーザーモジュール１１０によって生成された未加工生体情報テンプレートは、２０４８次元に等しくてもよい未加工テンプレート次元を含んでもよい。ランダムプロジェクションの適用の後に、対応する変換された生体情報テンプレートは、約１０００次元に等しくなり得る変換されたテンプレート次元を含んでもよい。
【００３５】
いくつかの実施形態においては、ランダム行列は、それぞれがゼロまたは１の値を有する要素を含んでもよい。ランダム行列の特定の要素が１である確率を特定の確率に従って設定してもよい。特定の確率は、選択されてもよい。例えば、特定の確率は、１／２０００として選択されてもよい。したがって、この例においては、特定の要素が１である確率は、１／２０００であり、且つ、相応して、特定の要素がゼロである確率は、１９９９／２０００である。
【００３６】
さらには、ランダム行列は、ランダムプロジェクションの適用に起因して、生体情報テンプレートの次元の変化に関係付けられたサイズを有してもよい。例えば、ランダム行列のサイズは、未加工テンプレート次元に変換されたテンプレート次元を乗算したものであってもよい。いくつかの実施形態においては、ランダム行列は、次のランダム行列式に従って定義されてもよい。
Ｒ∈Ｚ2k×n
【００３７】
このランダム行列式において、Ｒは、ランダム行列を表している。演算子∈は、メンバシップ演算子を表している。パラメータｎは、未加工テンプレート次元を表している。パラメータｋは、変換されたテンプレート次元を表している。パラメータＺ2k×nは、サイズ（ｋ×ｎ）を有する整数０及び１を含む整数行列を表している。
【００３８】
クライアントモジュール１１０は、登録入力１３２を受け取ってもよい。登録入力１３２は、第１の未加工生体情報テンプレートと、計測された生体情報特徴と、ユーザー識別子とを含んでもよい。例えば、いくつかの実施形態においては、センサ１９８は、生体情報特徴を計測してもよく、且つ、生体情報特徴をクライアントモジュール１１０に伝達してもよい。これに加えて、またはこの代わりに、センサ１９８は、生体情報特徴を測定してもよく、且つ、生体情報特徴を他のシステム（図示されてはいない）に伝達してもよい。他のシステムは、生体情報特徴に基づいて第１の未加工生体情報テンプレートを生成してもよく、且つ、第１の未加工生体情報テンプレートをクライアントモジュール１１０に伝達してもよい。
【００３９】
上述のように、登録入力１３２に含まれている第１の未加工生体情報テンプレートは、ユーザー１０６の生体情報特徴の一つまたは複数の一意の特徴を表してもよい。いくつかの実施形態においては、第１の未加工生体情報テンプレートは、次の第１の未加工生体情報テンプレート式に従って定義されてもよい。
ＸT∈｛０，１｝n
【００４０】
この第１の未加工生体情報テンプレート式において、パラメータｎ及び演算子∈は、上述のとおりである。ＸTは、第１の未加工生体情報テンプレートを表している。式｛０，１｝nは、未加工テンプレート次元「ｎ」の次元を有するベクトル空間を表している。
【００４１】
ユーザー識別子は、例えば、ユーザー１０６と関連付けられた英数コードまたは任意の他の一意のシーケンスを含んでもよい。ユーザー識別子は、ユーザー１０６の単純な識別子として使用されてもよい。ユーザー１０６は、ユーザー識別子をユーザー装置１０２に入力してもよい。例えば、ユーザー識別子を入力するべく、ユーザー１０６は、ユーザー識別子をタイプ入力したり、カードをスワイプしたり、なんらかのフレーズを発話したり、あるいは、画面のどこかの部分に接触すろといった行為を実行してもよい。
【００４２】
ユーザーモジュール１１０は、登録入力１３２に基づいて第１の変換された生体情報テンプレートを生成してもよい。例えば、第１の変換された生体情報テンプレートは、登録入力１３２に含まれている第１の未加工生体情報テンプレートに適用され、または登録入力１３２に含まれている計測された生体情報特徴から導出されたランダムプロジェクションを含んでもよい。
【００４３】
いくつかの実施形態においては、第１の変換された生体情報テンプレートは、次の第１の変換された生体情報テンプレート式に従って定義されてもよい。
ＸT’＝ＲＸT∈｛０，１｝k
【００４４】
この第１の変換された生体情報テンプレート式において、パラメータＲ、ＸT、ｋ、及び∈は、上述のとおりである。パラメータＸT’は、第１の変換された生体情報テンプレートを表している。式｛０，１｝kは、変換されたテンプレート次元「ｋ」の次元を有するベクトル空間を表している。
【００４５】
第１の変換された生体情報テンプレートは、登録データ１３４に含まれてもよい。登録データ１３４は、ユーザー識別子をさらに含んでもよい。ユーザーモジュール１１０は、登録データ１３４を認証サーバー１４０の認証モジュール１０８に伝達してもよい。
【００４６】
認証モジュール１０８は、登録データ１３４を受け取ってもよい。登録データは、第１の変換された生体情報テンプレートと、ユーザー識別子とを含んでもよい。認証モジュール１０８は、ユーザー１０６用の登録テンプレートとして第１の変換された生体情報テンプレートを保存してもよい。例えば、登録テンプレートは、認証サーバー１４０のメモリに、または登録テンプレートを保存するように構成されたリモートサイトに保存されてもよい。
【００４７】
登録テンプレートは、ユーザー識別子に従って保存されてもよい。例えば、ユーザー識別子は、ユーザー１０６の登録テンプレートのインデックスとして使用されてもよい。例えば、いくつかの実施形態においては、複数のユーザーが、それぞれ、登録データ１３４を認証モジュール１０８に伝達してもよい。認証モジュール１０８は、複数のユーザーのそれぞれごとに登録テンプレートを保存してもよく、これらのテンプレートのそれぞれは、対応するユーザー識別子に従って保存及び／またはインデックス付けされてもよい。
【００４８】
いくつかの実施形態においては、認証モジュール１０８は、登録テンプレートを暗号化してもよい。登録テンプレートを暗号化することにより、付加的なセキュリティの層が、生体認証システム１２０において追加されることになる。
【００４９】
次いで、ユーザーモジュール１１０は、第１のチャレンジ入力１３６Ａまたは第２のチャレンジ入力１３６Ｂを受け取ってもよい。第１のチャレンジ入力１３６Ａ及び第２のチャレンジ入力１３６Ｂは、その身元を認証させるためのユーザー１０６または詐称者１２２による試みを包含または表現してもよい。第１チャレンジ入力１３６Ａ及び／または第２のチャレンジ入力１３６Ｂは、第２の未加工生体情報テンプレート、第２の生体情報特徴、及び対応するユーザー識別子を含んでもよい。第２の未加工生体情報テンプレートは、ユーザー１０６または詐称者１２２の生体情報特徴の一意の特徴を表してもよい。
【００５０】
いくつかの実施形態においては、第２の未加工生体情報テンプレートは、次の第２の未加工生体情報テンプレート式に従って定義されてもよい。
ＹT∈｛０，１｝n
【００５１】
この第２の未加工生体情報テンプレート表現において、パラメータｎ、演算子∈、及び表現｛０，１｝nは、上述のとおりである。ＹTは、第２の未加工生体情報テンプレートを表している。
【００５２】
一般的に、第２の未加工生体情報テンプレートが、詐称者１２２ではなく、ユーザー１０６に由来するものである際にも、第１の未加工生体情報テンプレートと第２の未加工生体情報テンプレート間には、何がしかの差が存在することがある。第１の未加工生体情報テンプレートと第２の未加工生体情報テンプレート間の近似的類似度を計測するべく、第１の未加工生体情報テンプレートと第２の未加工生体情報テンプレート間のハミング距離が求められてもよい。一般的に、ハミング距離は、一つのテンプレートを他のテンプレートに変化させるための置換の最小数の定量化を含んでもよい。詐称者１２２が第２の未加工生体情報テンプレートの出所である状況においては、第１の未加工生体情報テンプレートと第２の未加工生体情報テンプレート間のハミング距離は、ユーザー１０６が第２の未加工生体情報テンプレートの出所である際よりも大きなものとなろう。
【００５３】
ユーザーモジュール１１０は、第２の変換された生体情報テンプレートを生成してもよい。第２の変換された生体情報テンプレートは、第１または第２のチャレンジ入力１３６Ａ及び／または１３６Ｂに含まれ得る第２の未加工生体情報テンプレートに適用されたランダムプロジェクションを含んでもよい。
【００５４】
いくつかの実施形態においては、第２の変換された生体情報テンプレートは、次の第２の変換された生体情報テンプレート式に従って定義されてもよい。
ＹT’＝ＲＹT∈｛０，１｝k
【００５５】
この第２の変換された生体情報テンプレート式において、パラメータＲ、ＹT、ｋ、∈、及び表現｛０，１｝kは、上述のとおりである。パラメータＹT’は、第２の変換された生体情報テンプレートを表している。
【００５６】
第２の変換された生体情報テンプレート及び／またはユーザー識別子は、チャレンジデータ１３８に含まれてもよい。そして、ユーザーモジュール１１０は、第２の変換された生体情報テンプレート及びユーザー識別子を含むチャレンジデータ１３８を認証サーバー１４０の認証モジュール１０８に伝達してもよい。
【００５７】
認証モジュール１０８は、チャレンジデータ１３８を受け取ってもよい。そして、認証モジュール１０８は、ユーザー１０６の登録テンプレートを取得してもよい。例えば、ユーザー識別子をインデックスとして使用することにより、認証モジュール１０８は、メモリから登録テンプレートを取得してもよい。
【００５８】
認証モジュール１０８は、登録テンプレートと第２の変換された生体情報テンプレート間の近似的類似度を求めてもよい。近似的類似度は、登録テンプレートと第２の変換された生体情報テンプレート間のハミング距離によって定量化されてもよい。
【００５９】
ハミング距離は、ランダムプロジェクションの未加工生体情報テンプレートに対する適用を伴う変形にも拘らず、相対的に一貫性を有することになる。したがって、ハミング距離が変換されたハミング閾値を下回っていることが、登録テンプレートと第２の変換された生体情報テンプレート間の近似的類似を表し、これは、第１の未加工生体情報テンプレートと第２の未加工生体情報テンプレート間の近似的類似をさらに示すことになる。
【００６０】
したがって、ユーザー１０６によって提供される第１のチャレンジ入力１３６Ａが第２の変換された生体情報テンプレートの基礎となっている場合には、第２の変換された生体情報テンプレートとユーザー１０６の登録されたテンプレート間のハミング距離は、変換されたハミング閾値未満となろう。具体的には、ユーザー１０６が登録入力１３２及び第１のチャレンジ入力１３６Ａを提供していることから、登録されたテンプレートと第２の変換された生体情報テンプレートは、類似することになる。
【００６１】
しかし、詐称者１２２によって提供される第２のチャレンジ入力１３６Ｂが第２の変換された生体情報テンプレートの基礎となっている場合には、第２の変換された生体情報テンプレートとユーザー１０６の登録されたテンプレート間のハミング距離は、変換されたハミング閾値よりも大きくなろう。詳しくは、ユーザー１０６が登録入力１３２を提供し、且つ、詐称者１２２が第２のチャレンジ入力１３６Ｂを提供していることから、登録されたテンプレートと第２の変換された生体情報テンプレートは、非類似となる。
【００６２】
近似的類似度の判定に基づいて、認証モジュール１０８は、認証決定を実施してもよい。例えば、認証モジュール１０８は、チャレンジデータ１３８がユーザー１０６または詐称者１２２に由来するかどうかを判定してもよい。ハミング距離が変換されたハミング閾値未満であることに応答して、認証モジュール１０８は、認証決定を示す認証信号１４２を伝達することになる。いくつかの実施形態においては、認証信号１４２は、「はい」または「いいえ」を、あるいは等価な通知を含んでもよく、且つ／または、ハミング距離が変換されたハミング閾値より大きいことに応答して、認証モジュール１０８は、認証信号を伝達することにならない。
【００６３】
ユーザーモジュール１１０は、認証信号１４２を受け取ってもよい。これに加えて、またはこの代わりに、ハミング距離が変換されたハミング閾値より大きいことに応答して認証モジュール１０８が認証信号１４２を伝達しない実施形態においては、ユーザーモジュール１１０は、特定の期間にわたって待機してもよい。特定の期間の後に、ユーザーモジュール１１０は、チャレンジデータ１３８がユーザー１０６のものでないという認証決定が下されたものと結論付けてもよい。
【００６４】
いくつかの実施形態においては、ユーザーモジュール１１０及び／または認証モジュール１０８は、変換されたハミング閾値及び／または初期化データ１３０を選択してもよい。認証モジュール１０８は、初期化データ１３０を公開してもよく、あるいは、その他の方法によって利用可能にしてもよい。初期化データ１３０は、例えば、第１のハミング値、第２のハミング値、及び特定の確率を含んでもよい。第１のハミング値及び第２のハミング値は、第１の未加工生体情報テンプレートと第２の未加工生体情報テンプレート間で算出されるハミング距離の特定の値を含んでもよい。第１のハミング値及び第２のハミング値は、変換されたハミング閾値がそれとの関係において定義または選択され得る特定の閾値または限度を含んでもよい。
【００６５】
いくつかの実施形態においては、第２のハミング値は、変換されたテンプレート次元未満となるように選択されてもよく、且つ／または、第２のハミング値は、第１のハミング値を上回るように選択されてもよい。さらには、第１及び第２のハミング値は、第１の未加工生体情報テンプレートと第２の未加工生体情報テンプレート間のハミング距離（未加工ハミング距離）及び第１の変換された生体情報テンプレートと第２の変換された生体情報テンプレート間のハミング距離（変換されたハミング距離）との関係において選択されてもよい。例えば、第１及び第２のハミング値は、未加工ハミング距離が第１のハミング距離未満である際に、変換されたハミング距離が変換されたハミング閾値より大きくなる確率が10000のうちの1などの特定の値未満となるように、選択されてもよい。さらには、第１及び第２のハミング値は、未加工ハミング距離が第２のハミング値超である際に、変換されたハミング距離が変換されたハミング閾値以下となる確率が特定の値未満となるように、選択されてもよい。
【００６６】
例えば、第１及び第２のハミング値及び／または変換されたハミング閾値は、次の例示のハミング距離式に従って選択されてもよい。
dist(ＸT，ＹT)＜δ1である場合には、Pr[dist(ＸT’，ＹT’)＞δ’]＜1/10000
dist(ＸT，ＹT)≧δ2である場合には、Pr[dist(ＸT’，ＹT’)≦δ]＜1/10000
【００６７】
これらのハミング距離式において、パラメータＸT、ＹT、ＸT’、ＹT’は、上述のとおりである。演算子dist()は、ハミング距離関数を表している。パラメータδ1は、第１のハミング値を表している。パラメータδ2は、第２のハミング値を表している。パラメータδ’は、変換されたハミング閾値を表している。演算子Pr[]は、確率演算子を表している。
【００６８】
少なくとも一つの例示の実施形態においては、未加工テンプレート次元は、2048に等しくてもよく、変換されたテンプレート次元は、1000に等しくてもよく、且つ、特定の確率は、1/2000に等しくてもよい。これらの例示の実施形態においては、第１のハミング値は、200に等しくてもよく、第２のハミング値は、600に等しくてもよく、且つ、変換されたハミング閾値は、150に等しくてもよい。あるいは、この代わりに、これらの例示の実施形態においては、第１のハミング値は、400に等しくてもよく、第２のハミング値は、1000に等しくてもよく、且つ、変換されたハミング閾値は、235に等しくてもよい。
【００６９】
生体認証システム１２０の一つの尺度は、プライバシー保証であってもよい。プライバシー保証は、ユーザーモジュール１１０と認証モジュール１０８間で伝達されるデータ（例えば、登録データ１３４またはチャレンジデータ１３８）が危険に晒された場合に、詐称者１２２が未加工生体情報テンプレートにアクセスし得る可能性の値を定量化してもよい。したがって、プライバシー保証は、変換された生体情報テンプレートと未加工生体情報テンプレート間の関係に対して関係付けられてもよい。
【００７０】
第１及び第２のハミング値及び／または変換されたハミング閾値がハミング距離式に従って選択される実施形態においては、またはいくつかのその他の実施形態においては、プライバシー保証は、次の例示のプライバシー保証式に従って定義されてもよい。
任意のＲ∈Ｚ2k×nについて、ＸT’＝ＲＸTが付与された場合に、｜ＺT∈｛０，１｝n：ＲＺT＝ＸT｝｜≧２n-k
【００７１】
このプライバシー保証式において、Ｒ、∈、Ｚ2k×n、ＸT’、ＸT、｛０，１｝n、ｎ、及びｋは、上述のとおりである。演算子：は、「そのようになる(such that)」演算子である。パラメータＺTは、ＸT以外の未加工生体情報テンプレートを表している。一般に、プライバシー保証は、変換された生体情報テンプレートが危険に晒された場合に、可能である未加工生体情報テンプレートの少なくとも２n-k個の可能値が存在することを意味している。未加工テンプレート次元が２０４８次元に等しく、且つ、変換されたテンプレート次元が１０００次元に等しい上述の例から、第１の変換された生体情報テンプレートが危険に晒された際には、第１の変換された生体情報テンプレートを結果的にもたらし得る２1048個の可能な未加工生体情報テンプレートが存在することになる。
【００７２】
図２は、ユーザー装置１０２の例及び認証サーバー１４０の例のブロックダイアグラムである。ユーザー装置１０２は、ユーザーモジュール１１０と、プロセッサ２２４Ａと、メモリ２２２Ａと、通信ユニット２２６Ａとを含んでもよい。ユーザーモジュール１１０、プロセッサ２２４Ａ、メモリ２２２Ａ、及び通信ユニット２２６Ａは、バス２２０Ａを介して結合されてもよい。認証サーバー１４０は、認証モジュール１０８と、プロセッサ２２４Ｂと、メモリ２２２Ｂと、通信ユニット２２６Ｂとを含んでもよい。認証モジュール１０８、プロセッサ２２４Ｂ、メモリ２２２Ｂ、及び通信ユニット２２６Ｂは、バス２２０Ｂを介して結合されてもよい。プロセッサ２２４Ａ及び２２４Ｂは、一般に、本明細書においては、一つまたは複数のプロセッサ２２４と呼称され、メモリ２２２Ａ及び２２２Ｂは、一般に、本明細書においては、メモリ２２２と呼称され、通信ユニット２２６Ａ及び２２６Ｂは、一般に、本明細書においては、一つまたは複数の通信ユニット２２６と呼称され、且つ、バス２２０Ａ及び２２０Ｂは、一般に、本明細書においては、一つまたは複数のバス２２０と呼称される。
【００７３】
図１及び図２を組み合わせて参照すれば、プロセッサ２２４は、算術論理ユニット（Arithmetic Logic Unit:ALU）、マイクロプロセッサ、汎用コントローラ、または演算及びプライバシー保護を実行するためのなんらかの他のプロセッサアレイを含んでもよい。プロセッサ２２４は、その他のコンポーネント（例えば、１０８、１１０、１９８、２２２、及び２２６）との通信のためにバス２２０に結合されてもよい。プロセッサ２２４は、一般に、データ信号を処理し、且つ、CISC（Complex Instruction Set Computer）アーキテクチャ、RISC（Reduced Instruction Set Computer）アーキテクチャ、または命令セットの組合せを実装するアーキテクチャを含む様々な演算アーキテクチャを含んでもよい。図２においては、ユーザー装置１０２及び認証サーバー１４０は、それぞれ、単一のプロセッサ２２４を含む。但し、ユーザー装置１０２及び／または認証サーバー１４０は、他の実施形態においては、複数のプロセッサを含んでもよい。また、他のプロセッサ、オペレーティングシステム、及び物理的構成も可能であろう。
【００７４】
メモリ２２２は、プロセッサ２２４のうちの一つまたは複数によって実行され得る命令及び／またはデータを保存するように構成されてもよい。メモリ２２２は、他のコンポーネントとの通信のためにバス２２０に結合されてもよい。命令及び／またはデータは、本明細書に記述されている技術または方法を実行するためのコードを含んでもよい。メモリ２２２は、ＤＲＡＭ装置、ＳＲＡＭ装置、フラッシュメモリ（登録商標）、またはなんらかの他のメモリ装置を含んでもよい。また、いくつかの実施形態においては、メモリ２２２は、ハードディスクドライブ、フロッピーディスクドライブ（登録商標）、CD-ROM装置、DVD-ROM装置、DVD-RAM装置、DVD-RW装置、フラッシュメモリ装置（登録商標）、または相対的に永久的な方式で情報を保存するなんらかの他のマスストレージ装置を含む不揮発性メモリといった永久的ストレージ装置及び媒体をも含む。
【００７５】
通信ユニット２２６は、データをユーザー装置１０２及び／または認証サーバー１４０のうちの一つまたは複数とにおいて送受信するように構成されてもよい。通信ユニット２２６は、バス２２０に結合されてもよい。いくつかの実施形態においては、通信ユニット２２６は、ネットワーク１０７に対するまたは他の通信チャネルに対する直接的な物理的接続用のポートを含む。例えば、通信ユニット２２６は、図１の稼働環境１００のコンポーネントとの有線通信のためのUSB、SD、CAT-5、またはこれらに類似したポートを含んでもよい。いくつかの実施形態においては、通信ユニット２２６は、IEEE802.11、IEEE802.16、BLUETOOTH（登録商標）、または他の適切な無線通信方法を含む一つまたは複数の無線通信方法を使用して通信チャネルを介してデータを交換するための無線トランシーバを含む。
【００７６】
いくつかの実施形態においては、通信ユニット２２６は、SMS、MMS、HTTP、直接的データ接続、WAP、電子メール、または他の適切なタイプの電子的通信を含むセルラー通信ネットワーク上でデータを送受信するためのセルラー通信トランシーバを含む。いくつかの実施形態においては、通信ユニット２２６は、有線ポートと、無線トランシーバと、を含む。また、通信ユニット２２６は、TCP/IP（Transmissio Control Protocol/Internet Protocol）、HTTP、HTTPS（HTTP Secure）、及びSMTP（Simple Mail Transfer Protocol）などを含む標準的なネットワークプロトコルを使用したファイル及び／または媒体オブジェクトの配布のために、ネットワーク１０７に対する他の接続を提供してもよい。
【００７７】
図２の実施形態においては、ユーザーモジュール１１０は、通信モジュール２０２と、生成モジュール２０４とを含んでもよい。認証モジュール１０８は、サーバー通信モジュール２０６と、判定モジュール２０８と、選択モジュール２１０とを含んでもよい。通信モジュール２０２、生成モジュー２０４、サーバー通信モジュール２０６、判定モジュール２０８、及び選択モジュール２１０（集合的に認証モジュール）のうちの一つまたは複数は、本明細書に記述されている一つまたは複数の動作を実行するように構成された一つまたは複数のルーチンを含むソフトウェアとして実装されてもよい。認証モジュールは、本明細書に記述されている機能を提供するためにプロセッサ２２４によって実行可能である命令の一つまたは複数の組を含んでもよい。いくつかの例においては、認証モジュールは、メモリ２２２に保存されるか、またはメモリ２２２に少なくとも一時的に読み込まれてもよく、且つ、プロセッサ２２４のうちの一つまたは複数によってアクセス可能であってもよく、且つ、実行可能であってもよい。認証モジュールのうちの一つまたは複数は、バス２２０のうちの一つまたは複数を介してプロセッサ２２４のうちの一つまたは複数との協働及び通信のために適合されてもよい。
【００７８】
通信モジュール２０２及び／またはサーバー通信モジュール２２６は、それぞれ、ユーザーモジュール１１０または認証モジュール１０８とユーザー装置１０２または認証サーバー１４０のその他のコンポーネント（例えば、２２２、２２４、及び２２６）間の通信を処理するように構成されてもよい。通信モジュール２０２及び／またはサーバー通信モジュール２０６は、データを通信ユニット２２６を介してユーザー装置１０２または認証サーバー１４０との間において送受信するように構成されてもよい。いくつかの例においては、通信モジュール２０２及び／またはサーバー通信モジュール２０６は、その他のモジュール（例えば、２３２、２３０、及び２３４）と協働し、通信ユニット２２６を介してデータをユーザー装置１０２または認証サーバー１４０との間において送受信してもよい。
【００７９】
例えば、いくつかの実施形態においては、サーバー通信モジュール２０６は、初期化データ及びハッシュ関数表現を公開するように構成されてもよい。ハッシュ関数表現は、ランダム行列を含んでもよい。サーバー通信モジュール２０６は、初期化データ及び／またはランダム行列をユーザーモジュール１１０の通信モジュール２０２に対して公開してもよい。あるいは、またはこれらに加えて、サーバー通信モジュール２０６は、通信モジュール２０２からの要求に応答して、初期化データ及び／またはランダム行列を通信モジュール２０２に送信してもよい。
【００８０】
通信モジュール２０２は、登録入力を受け取るように構成されてもよい。これに加えて、またはこの代わりに、通信モジュール２０２は、初期化データ及び／またはハッシュ関数表現にアクセスするかまたはこれを受け取ると共に初期化データ及び／またはハッシュ関数表現を生成モジュールに伝達するように構成されてもよい。登録入力は、図１Ａ及び図１Ｂのユーザー１０６などのユーザーから少なくとも部分的に受け取られてもよい。登録入力は、第１の未加工生体情報テンプレートと、ユーザー識別子とを含んでもよい。第１の未加工生体情報テンプレートは、ユーザー識別子と関連付けられたユーザーの生体情報特徴の一つまたは複数の一意の特徴を表してもよい。生体情報特徴は、いくつかの実施形態においては、センサ１９８によって計測されてもよい。第１の未加工生体情報テンプレートは、計測された生体情報特徴に基づいたものであってもよい。通信モジュール２０２は、第１の未加工生体情報テンプレートを生成モジュール２０４に伝達してもよい。
【００８１】
生成モジュール２０４は、第１の未加工生体情報テンプレートを受け取ると共にこれに基づいて第１の変換された生体情報テンプレートを生成するように構成されてもよい。第１の変換された生体情報テンプレートは、ランダムプロジェクションを第１の未加工生体情報テンプレートに適用することにより、生成されてもよい。ランダムプロジェクションは、ランダム行列に基づいたものであってもよい。例えば、ランダム行列は、未加工生体情報テンプレート上に写像されてもよい。そして生成モジュール２０４は、第１の変換された生体情報テンプレートを通信モジュール２０２に伝達してもよく、通信モジュール２０２は、第１の変換された生体情報テンプレートをサーバー通信モジュール２０６にさらに伝達してもよい。
【００８２】
サーバー通信モジュール２０６は、登録データを受け取ってもよい。登録データは、第１の変換された生体情報テンプレートと、ユーザー識別子とを含んでもよい。サーバー通信モジュール２０６は、第１の変換された生体情報テンプレートをメモリに伝達してもよい。第１の変換された生体情報テンプレートは、ユーザー識別子と関連付けられたユーザーの登録テンプレート２１２として保存されてもよい。
【００８３】
次いで、通信モジュール２０２は、チャレンジ入力を受け取ってもよい。チャレンジ入力は、図１Ａ及び図１Ｂのユーザー１０６などのユーザーから少なくとも部分的に受け取られてもよい。チャレンジ入力は、第２の未加工生体情報テンプレートと、ユーザー識別子とを含んでもよい。第２の未加工生体情報テンプレートは、そのユーザー識別子と関連付けられたユーザーの生体情報特徴の一つまたは複数の一意の特徴を表してもよい。上述のように、生体情報特徴は、センサ１９８によって計測されてもよい。第２の未加工生体情報テンプレートは、計測された生体情報特徴に基づいたものであってもよい。通信モジュール２０２は、第２の未加工生体情報テンプレートを生成モジュール２０４に伝達してもよい。
【００８４】
生成モジュール２０４は、第２の未加工生体情報テンプレートを受け取ると共にこれに基づいて第２の変換された生体情報テンプレートを生成するように、構成されてもよい。第２の変換された生体情報テンプレートは、ランダムプロジェクションを第２の未加工生体情報テンプレートに適用することにより生成されてもよい。ランダムプロジェクションは、ランダム行列に基づいたものであってもよい。そして生成モジュール２０４は、第２の変換された生体情報テンプレートを通信モジュール２０２に伝達してもよく、通信モジュール２０２は、第２の変換された生体情報テンプレートをサーバー通信モジュール２０６にさらに伝達してもよい。
【００８５】
サーバー通信モジュール２０６は、チャレンジデータを受け取ってもよく、チャレンジデータは、第２の変換された生体情報テンプレートと、ユーザー識別子とを含んでもよい。そしてサーバー通信モジュール２０６は、そのユーザー識別子に基づいて登録テンプレート２１２を取得してもよい。次いで、サーバー通信モジュール２０６は、登録テンプレート２１２及びチャレンジデータを判定モジュール２０８に伝達してもよい。
【００８６】
判定モジュール２０８は、登録テンプレート２１２と第２の変換された生体情報テンプレート間の近似的類似度を求めてもよい。近似的類似度の決定は、認証サーバー１４０によって実施された認証決定に基づいたものであってもよい。近似的類似度は、ハミング距離に基づいたものであってもよい。例えば、ハミング距離が変換されたハミング閾値未満であることに応答して、判定モジュール２０８は、ハミング距離が変換されたハミング閾値未満であり、且つ／または、ユーザーの身元が認証されたことを示す信号をサーバー通信モジュール２０６に伝達してもよい。また、ハミング距離が変換されたハミング閾値より大きいことに応答して、判定モジュール２０８は、ハミング距離が変換されたハミング閾値より大きいこと、且つ／または、ユーザーの身元が認証されないことを示す信号をサーバー通信モジュール２０６に伝達してもよい。
【００８７】
サーバー通信モジュール２０６は、判定モジュール２０８からの信号に応答して、認証信号を伝達してもよい。サーバー通信モジュール２０６は、ハミング距離が変換されたハミング閾値より大きいこととともに／またはユーザーの身元が認証されないことを示す判定モジュール２０８からの信号に応答して、認証信号をユーザーモジュール１０６に伝達しなくてもよい。あるいは、またはこれに加えて、サーバー通信モジュール２０６は、ハミング距離が変換されたハミング閾値より大きいこととともに／またはユーザーの身元が認証されないことを示す判定モジュール２０８からの信号に応答して、ユーザーの身元が認証されないことを示す認証信号を伝達してもよい。通信モジュール２０２は、認証サーバー１４０から、あるいは、さらに詳しくは、サーバー通信モジュール２０６から、認証決定を示す信号を受け取ってもよい。
【００８８】
いくつかの実施形態においては、選択モジュール２１０は、変換されたハミング閾値及び／または初期化データを選択するように構成されてもよい。初期化データは、第１のハミング値及び第２のハミング値を含んでもよい。図３は、本明細書に記述されている少なくとも一つの実施形態に従って構成された生体認証の例示の方法３００のフローチャートである。方法３００は、図１Ａ及び図１Ｂの生体認証システムなどの生体認証システムにおいて実行されてもよい。方法３００は、いくつかの実施形態においては、図１Ａ〜図２を参照して説明したユーザー装置１０２により、プログラム可能な方式で実行されてもよい。ユーザー装置１０２は、方法３００を実行するまたはその稼働をもたらすプロセッサによって実行可能であるプログラミングコードまたは命令が保存され、またはエンコードされた一時的ではないコンピュータ可読媒体（例えば、図２のメモリ２２２Ａ）を含んでもよく、あるいは、そのコンピュータ可読媒体と通信可能に結合されてもよい。これに加えて、またはこの代わりに、ユーザー装置１０２は、方法３００の稼働をもたらすべくまたは制御するべくコンピュータ命令を実行するように構成されたプロセッサ（例えば、図２のプロセッサ２２４Ａ）を含んでもよい。別個のブロックとして図示されているが、様々なブロックは、好ましい実装形態に応じて、さらなるブロックに分割されてもよく、さらに少ない数のブロックに組み合わせられてもよく、あるいは、省略されてもよい。
【００８９】
方法３００は、ブロック３０２において開始される。ブロック３０２において、初期化データ及び／または変換されたハミング閾値が受け取られてもよい。いくつかの実施形態においては、初期化データは、第１のハミング値及び第２のハミング値を含んでもよい。
【００９０】
ブロック３０４において、登録入力が受け取られてもよい。登録入力は、第１の未加工生体情報テンプレートと、ユーザー識別子とを含んでもよい。第１の未加工生体情報テンプレートは、ユーザー識別子と関連付けられたユーザーの生体情報特徴の一つまたは複数の一意の特徴を表してもよい。ブロック３０６において、第１の変換された生体情報テンプレートが生成されてもよい。第１の変換された生体情報テンプレートは、ランダムプロジェクションを第１の未加工生体情報テンプレートに適用することにより生成されてもよい。第１の変換された生体情報テンプレートは、認証サーバーによって公開されたランダム行列に基づいたものであってもよい。ランダム行列は、サイズを含んでもよく、サイズは、未加工テンプレート次元×変換されたテンプレート次元を含んでもよい。また、ランダム行列は、０または１の値を含んでもよい。ランダム行列においては、ランダム行列の特定の要素が１である確率が特定の確率であってもよい。
【００９１】
ブロック３０８において、第１の変換された生体情報テンプレート及びユーザー識別子が認証サーバーに伝達されてもよい。ブロック３１０において、チャレンジ入力が受け取られてもよい。チャレンジ入力は、第２の未加工生体情報テンプレートと、ユーザー識別子とを含んでもよい。第２の未加工生体情報テンプレートは、ユーザーの生体情報特徴の一つまたは複数の一意の特徴を表してもよく、あるいは、詐称者の生体情報特徴の一つまたは複数の一意の特徴を表してもよい。
【００９２】
ブロック３１２において、第２の変換された生体情報テンプレートが生成されてもよい。第２の変換された生体情報テンプレートは、ランダムプロジェクションを第２の未加工生体情報テンプレートに適用することにより、生成されてもよい。ブロック３１４において、第２の変換された生体情報テンプレート及びユーザー識別子は、認証サーバーに伝達されてもよい。ブロック３１６において、認証決定を示す信号が認証サーバーから受け取られてもよい。認証決定は、第２の変換された生体情報テンプレートと第１の変換された生体情報テンプレート間の近似的類似度に基づいたものであってもよい。
【００９３】
当業者は、本明細書に開示されているこの及びその他の手順及び方法の場合には、プロセス及び方法において実行される機能は、異なる順序で実装されてもよいことを理解するであろう。さらには、概説したステップ及び動作は、例として提供されたものに過ぎず、且つ、ステップ及び動作のいくつかは、開示されている実施形態を逸脱することなしに、任意選択であってもよく、さらに少ない数のステップ及び動作に組み合わせられてもよく、あるいは、さらなるステップ及び動作に拡張されてもよい。
【００９４】
図４は、本明細書に記述されている少なくとも一つの実施形態に従って構成された生体認証の例示の方法４００のフローチャートである。方法４００は、図１Ａ及び図１Ｂの生体認証システム１２０などの生体認証システムにおいて実行されてもよい。方法４００は、いくつかの実施形態においては、図１Ａ〜図２を参照して説明した認証サーバー１４０により、プログラム可能な方式で実行されてもよい。認証サーバー１４０は、方法４００を実行するべくまたはその稼働をもたらすべくプロセッサによって実行可能であるプログラミングコードまたは命令が保存され、またはエンコードされた一時的ではないコンピュータ可読媒体（例えば、図２のメモリ２２２Ｂ）を含んでもよく、あるいは、これに対して通信可能に結合されてもよい。これに加えて、またはこの代わりに、認証サーバー１４０は、方法４００の稼働をもたらすべくまたは制御するべくコンピュータ命令を実行するように構成されたプロセッサ（例えば、図２のプロセッサ２２４Ｂ）を含んでもよい。別個のブロックとして図示されているが、様々なブロックは、好ましい実装形態に応じて、さらなるブロックに分割されてもよく、さらに少ない数のブロックに組み合わせられてもよく、あるいは、省略されてもよい。
【００９５】
方法４００は、４０２において開始される。ブロック４０２において、初期化データ及び変換されたハミング閾値が選択されてもよい。いくつかの実施形態においては、初期化データは、第１のハミング値及び第２のハミング値を含んでもよい。ブロック４０４において、初期化データ及びハッシュ関数表現が、図１Ａ及び図１Ｂのユーザー装置１０２などのユーザー装置に対して公開されてもよく、あるいは、その他の方法で利用可能にされてもよい。ハッシュ関数表現は、ランダム行列を含んでもよい。ブロック４０６において、登録データが受け取られてもよい。登録データは、第１の変換された生体情報テンプレートと、ユーザー識別子とを含んでもよい。第１の変換された生体情報テンプレートは、ランダムプロジェクションを第１の未加工生体情報テンプレートに適用することに基づいたものであってもよい。ランダムプロジェクションは、ランダム行列に基づいたものであってもよい。いくつかの実施形態においては、ランダム行列は、サイズを含んでもよい。そのサイズは、未加工テンプレート次元×変換されたテンプレート次元を含んでもよい。また、ランダム行列は、０または１の値を含んでもよい。ランダム行列においては、ランダム行列の特定の要素が１である確率が特定の確率であってもよい。
【００９６】
ブロック４０８において、第１の変換された生体情報テンプレートが、ユーザー識別子と関連付けられたユーザーの登録テンプレートとして保存されてもよい。ブロック４１０において、登録テンプレートが暗号化されてもよい。ブロック４１２において、チャレンジデータが受け取られてもよい。チャレンジデータは、第２の変換された生体情報テンプレートと、ユーザー識別子とを含んでもよい。ブロック４１４において、登録テンプレートが、そのユーザー識別子に基づいて取得されてもよい。
【００９７】
ブロック４１６において、登録テンプレートと第２の変換された生体情報テンプレート間の近似的類似度が求められてもよい。近似的類似度は、ハミング距離に基づいたものであってもよい。ブロック４１８において、ハミング距離が変換されたハミング閾値より大きいかどうかが判定されてもよい。ハミング距離が変換されたハミング閾値より大きいこと（４１８の「はい」）に応答して、方法４００は、ブロック４２０に進んでもよい。ブロック４２０において、認証信号が伝達されてもよい。ハミング距離が変換されたハミング閾値未満であること（４１８の「いいえ」）に応答して、方法４００は、ブロック４２２に進んでもよい。ブロック４２２においては、認証信号が伝達されないであろう。
【００９８】
本明細書に記述されている実施形態は、以下に詳述するように、様々なコンピュータハードウェアまたはソフトウェアモジュールを含む特定用途または汎用コンピュータの使用を含んでもよい。
【００９９】
本明細書に記述されている実施形態は、保存されたコンピュータ実行可能命令またはデータ構造を担持するまたは有するコンピュータ可読媒体を使用して実装されてもよい。このようなコンピュータ可読媒体は、汎用または特定用途コンピュータによってアクセスされ得る任意の利用可能な媒体であってもよい。例として、且つ、限定を伴うことなしに、このようなコンピュータ可読媒体は、ランダムアクセスメモリ（RAM）、読出し専用メモリ（ROM）、電気的消去可能プログラム可能読出し専用メモリ（EEPROM）、CD-ROM（Compact Disc Read-Only Memory）、またはその他の光ディスクストレージ、磁気ディスクストレージまたはその他の磁気ストレージ装置、フラッシュメモリ装置（登録商標）（例えば、半導体メモリ装置）、あるいは、コンピュータ実行可能命令またはデータ構造の形態で好ましいプログラムコードを担持または保存するように使用され得ると共に汎用または特定用途コンピュータによってアクセスされ得る任意のその他のストレージ媒体を含む、有体の且つ／または一時的ではないコンピュータ可読ストレージ媒体を含んでもよい。また、上述のものの組合せも、コンピュータ可読媒体の範囲に含まれよう。
【０１００】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、特定用途コンピュータ、または特定用途処理装置（例えば、一つまたは複数のプロセッサ）に特定の機能または機能の群を実行させる命令及びデータを有する。主題は、構造的特徴及び／または方法的動作に固有の言語によって記述されているが、添付の請求項に規定されている主題は、必ずしも、上述の特定の特徴または動作に限定されるものではないことを理解されたい。むしろ、上述の特定の特徴及び動作は、請求項を実装する例示の形態として開示されたものである。
【０１０１】
本明細書において使用されている「モジュール」または「コンポーネント」という用語は、演算システムの汎用ハードウェア（例えば、コンピュータ可読媒体や処理装置など）に保存され得ると共に／またはこれによって実行され得るモジュールまたはコンポーネント及び／またはソフトウェアオブジェクトまたはソフトウェアルーチンの動作を実行するように構成された特定のハードウェア実装形態を意味してもよい。いくつかの実施形態においては、本明細書に記述されている異なるコンポーネント、モジュール、エンジン、及びサービスは、演算システム上で稼働するオブジェクトまたはプロセスとして（例えば、別個のスレッドとして）実装されてもよい。本明細書において記述されているシステム及び方法のいくつかは、一般に、（汎用ハードウェアに保存されると共に／またはこれによって実行される）ソフトウェアとして実装されるものと記述されているが、特定のハードウェア実装形態あるいはソフトウェア及び特定のハードウェア実装形態の組合せも、可能であり、且つ、想定される。この説明においては、「演算エンティティ」は、本明細書において先程定義した任意の演算システムであってもよく、あるいは、演算システム上で稼働する任意のモジュールまたはモジュールの組合せであってもよい。
【０１０２】
本明細書に記述されているすべての例及び条件に関する言語は、本発明と、当技術分野の発展のために本発明者によって寄与された概念と、を読者が理解することを支援するべく教育的な目的を意図したものであり、且つ、これらの具体的に記述されている例及び条件に対する限定を伴うものではないものと解釈することを要する。以上、本発明の実施形態について詳細に説明したが、本発明の精神及び範囲を逸脱することなしに、これらに対して様々な変更、置換、及び変形を実施することができることを理解されたい。
【図１Ａ】
2015225660.tif 000003
【図１Ｂ】
2015225660.tif 000004
【図２】
2015225660.tif 000005
【図３】
2015225660.tif 000006
【図４】
2015225660.tif 000007