(57)【特許請求の範囲】
【請求項１】
処理装置によって実行される方法であって、当該方法は：
登録バイオメトリック測定から登録特徴点の集合を抽出する段階と；
誤り訂正符号から一つまたは複数の登録符号語をランダムに選択する段階と；
特徴点の前記集合の、前記一つまたは複数の登録符号語を使って難読化された難読化バージョンを記述する難読化登録特徴点データを決定する段階であって、特徴点の前記集合は前記一つまたは複数の登録符号語なしでは前記難読化登録特徴点データからは決定できない、段階と；
前記一つまたは複数の登録符号語の、ランダム登録多項式を使って難読化された難読化バージョンを記述する難読化登録符号語データを決定する段階であって、前記一つまたは複数の符号語は、前記ランダム登録多項式なしでは前記難読化登録符号語データからは決定できない、段階と；
前記難読化登録特徴点データおよび前記難読化登録符号語データを含む登録バイオメトリック・テンプレートを決定する段階と；
前記一つまたは複数の登録符号語および前記ランダム登録多項式を秘密に保つ登録データであって、前記登録バイオメトリック・テンプレートを含む登録データを決定する段階とを含む、
方法。
【請求項２】
前記ランダム登録多項式に基づく公開鍵を生成する段階をさらに含み、前記登録データは前記公開鍵を含む、請求項１記載の方法。
【請求項３】
前記登録データを、前記登録データをサードパーティーによってアクセスできるようにするサーバーに送信する段階をさらに含む、請求項１記載の方法。
【請求項４】
前記サーバーが、バイオメトリックに基づく公開鍵インフラストラクチャー（PKI）スキームを実装する、請求項３記載の方法。
【請求項５】
前記登録データを安全でない通信を介して送信する段階をさらに含む、請求項１記載の方法。
【請求項６】
前記登録データが登録ユーザーに関連付けられており、前記処理装置は、前記登録ユーザーに関連付けられたクライアントの処理装置である、請求項１記載の方法。
【請求項７】
請求項２記載の方法であって、さらに：
前記登録データおよび乱数値を含む検証チャレンジを受領するのに応答して検証バイオメトリック測定から検証特徴点の集合を抽出する段階であって、前記登録データは登録ユーザーに関連付けられており、前記検証バイオメトリック測定は前記登録ユーザーとして認証されようと試行する検証ユーザーに関連付けられている、段階と；
前記登録データを解析して、前記登録データの前記登録バイオメトリック・テンプレートに含まれる前記難読化登録特徴点データを決定する段階と；
検証特徴点の前記集合および前記難読化登録特徴点データに基づいて一つまたは複数の検証符号語を決定する段階とを含む、
方法。
【請求項８】
請求項７記載の方法であって、さらに：
前記登録データを解析して、前記登録データに含まれる前記公開鍵を決定する段階と；
前記一つまたは複数の検証符号語に基づいて検証多項式を決定する段階とを含む、
方法。
【請求項９】
請求項８記載の方法であって、さらに：
前記検証多項式に基づいて秘密鍵を決定する段階と；
前記秘密鍵を用いて前記乱数値に署名することによってチャレンジ回答を決定する段階とを含み、
前記秘密鍵が前記公開鍵に対応して鍵対をなすかどうかに基づいて前記検証ユーザーは前記登録ユーザーとして認証される、
方法。
【請求項１０】
コンピュータ命令を有する非一時的なコンピュータ可読媒体であって、前記コンピュータ命令は処理装置に：
ランダム登録多項式を決定する段階と；
登録バイオメトリック測定から登録特徴点の集合を抽出する段階と；
線形誤り訂正符号から一つまたは複数の登録符号語をランダムに選択する段階と；
特徴点の前記集合の、前記一つまたは複数の登録符号語を使って難読化された難読化バージョンを記述する難読化登録特徴点データを決定する段階であって、特徴点の前記集合は前記一つまたは複数の登録符号語なしでは前記難読化登録特徴点データからは決定できない、段階と；
前記一つまたは複数の登録符号語の、前記ランダム登録多項式を使って難読化された難読化バージョンを記述する難読化登録符号語データを決定する段階であって、前記一つまたは複数の符号語は、前記ランダム登録多項式なしでは前記難読化登録符号語データからは決定できない、段階と；
前記難読化登録特徴点データおよび前記難読化登録符号語データを含む登録バイオメトリック・テンプレートを決定する段階と；
前記ランダム登録多項式に基づいて公開鍵を決定する段階と；
前記一つまたは複数の登録符号語および前記ランダム登録多項式を秘密に保つ登録データであって、前記登録バイオメトリック・テンプレートおよび前記公開鍵を含む登録データを、決定する段階とを含む
動作を実行させるための命令である、
非一時的なコンピュータ可読媒体。
【請求項１１】
前記登録データは、前記登録データをサードパーティーによってアクセスできるようにするサーバーに送信される、請求項１０記載の非一時的なコンピュータ可読媒体。
【請求項１２】
前記登録データが暗号化されない通信を介して送信される、請求項１０記載の非一時的なコンピュータ可読媒体。
【請求項１３】
前記登録データが登録ユーザーに関連付けられており、前記処理装置は、前記登録ユーザーに関連付けられたクライアントの処理装置である、請求項１０記載の非一時的なコンピュータ可読媒体。
【請求項１４】
請求項１０記載の非一時的なコンピュータ可読媒体であって、前記動作がさらに：
前記登録データおよび乱数値を含む検証チャレンジを受領するのに応答して検証バイオメトリック測定から検証特徴点の集合を抽出する段階であって、前記登録データは登録ユーザーに関連付けられており、前記検証バイオメトリック測定は前記登録ユーザーとして認証されようと試行する検証ユーザーに関連付けられている、段階と；
前記登録データを解析して、前記登録データの前記登録バイオメトリック・テンプレートに含まれる前記難読化登録特徴点データを決定する段階と；
検証特徴点の前記集合および前記難読化登録特徴点データに基づいて一つまたは複数の検証符号語を決定する段階と；
前記登録データを解析して、前記登録データに含まれる前記公開鍵を決定する段階と；
前記一つまたは複数の検証符号語に基づいて検証多項式を決定する段階とを含む、
非一時的なコンピュータ可読媒体。
【請求項１５】
請求項１４記載の非一時的なコンピュータ可読媒体であって、さらに：
前記検証多項式に基づいて秘密鍵を決定する段階と；
前記秘密鍵を用いて前記乱数値に署名することによってチャレンジ回答を決定する段階とを含み、
前記秘密鍵が前記公開鍵に対応して鍵対をなすかどうかに基づいて前記検証ユーザーは前記登録ユーザーとして認証される、
非一時的なコンピュータ可読媒体。
【請求項１６】
前記処理装置がネットワークのクライアント側の処理装置である、請求項１５記載の非一時的なコンピュータ可読媒体。
【請求項１７】
前記処理装置が前記登録ユーザーに関連付けられたクライアントの処理装置である、請求項１５記載の非一時的なコンピュータ可読媒体。
【請求項１８】
処理装置によって実行される方法であって、当該方法は：
登録データおよび乱数値を含む検証チャレンジを受領するのに応答して検証バイオメトリック測定から検証特徴点の集合を抽出する段階であって、前記登録データは登録ユーザーに関連付けられており、前記検証バイオメトリック測定は前記登録ユーザーとして認証されようと試行する検証ユーザーに関連付けられている、段階と；
前記登録データを解析して、前記登録データの登録バイオメトリック・テンプレートに含まれる難読化登録特徴点データを決定する段階であって、前記難読化登録特徴点データは、前記登録ユーザーに関連付けられた登録バイオメトリック・テンプレートから抽出された特徴点の集合の難読化されたバージョンを記述する、段階と；
検証特徴点の前記集合および前記難読化登録特徴点データに基づいて一つまたは複数の検証符号語を決定する段階と；
前記登録データを解析して、前記登録データに含まれる公開鍵を決定する段階と；
前記一つまたは複数の検証符号語に基づいて検証多項式を決定する段階とを含む、
方法。
【請求項１９】
請求項１８記載の方法であって、さらに：
前記検証多項式に基づいて秘密鍵を決定する段階と；
前記秘密鍵を用いて前記乱数値に署名することによってチャレンジ回答を決定する段階とを含み、
前記秘密鍵が前記公開鍵に対応して鍵対をなすかどうかに基づいて前記検証ユーザーは前記登録ユーザーとして認証される、
方法。
【請求項２０】
請求項１８記載の方法であって、前記登録データは登録バイオメトリック・テンプレートを含み、前記登録バイオメトリック・テンプレートは、一つまたは複数の登録符号語の難読化されたバージョンを記述する難読化登録符号語データを含み、前記難読化登録符号語データは、前記一つまたは複数の登録符号語の難読化されていないバージョンなしでは特徴点の前記集合が決定できないよう、前記難読化登録特徴点データに含まれる特徴点の前記集合を難読化するために使われる、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本項で論じる実施形態は、プライバシーを保護する集合ベースのバイオメトリック認証に関する。
【背景技術】
【０００２】
電子装置およびサービスについてセキュリティが重要になることがある。セキュリティの重要性が増すにつれて、革新者は新しいまたは異なる形の認証に目を向ける。一つの形の認証は、バイオメトリック認証を含みうる。バイオメトリック認証は、一意的なバイオメトリック特性を介してユーザーの素性を測定し、認証することを含みうる。一意的なバイオメトリック特性は、ユーザーの指紋、虹彩、静脈、DNAなどの一つまたは複数を含みうる。バイオメトリック認証は、ユーザーがパスワードを覚えることなく認証されることができるという利点をもちうる。
【発明の概要】
【課題を解決するための手段】
【０００３】
ある実施形態のある側面によれば、方法が、登録バイオメトリック測定から登録特徴点の集合を抽出することを含む。本方法は、誤り訂正符号から一つまたは複数の登録符号語をランダムに選択することをも含む。本方法は、前記一つまたは複数の登録符号語を使って難読化された（obfuscated）特徴点の前記集合の難読化バージョンを記述する難読化登録特徴点データを決定することをも含む。本方法は、ランダムな登録多項式を使って難読化された前記一つまたは複数の登録符号語の難読化バージョンを記述する難読化登録符号語データを決定することをも含む。本方法は、前記難読化登録特徴点データおよび前記難読化登録符号語データを含む登録バイオメトリック・テンプレートを決定することをも含む。本方法は、前記登録バイオメトリック・テンプレートを含む登録データを決定することをも含む。前記登録データは、前記一つまたは複数の登録符号語および前記ランダムな登録多項式を秘密に保つよう構成されていてもよい。
【０００４】
これらの実施形態の目的および利点は、少なくとも請求項において具体的に指摘される要素、特徴および組み合わせによって実現され、達成されるであろう。
【０００５】
上記の概括的な記述および以下の詳細な説明は例示および説明するものであって、特許請求される発明を制約するものではないことは理解されるものとする。
【図面の簡単な説明】
【０００６】
例示的な実施形態について、付属の図面を使ってさらに具体的かつ詳細に記述し、説明する。
【図１Ａ】例示的なバイオメトリック認証システムのブロック図である。
【図１Ｂ】例示的なバイオメトリック認証システムのブロック図である。
【図１Ｃ】クライアント・モジュールまたは認証モジュールが集合ベースのバイオメトリック認証を提供するよう実装されうる例示的な動作環境のブロック図である。
【図２】集合ベースのバイオメトリック認証を提供するための例示的なシステムのブロック図である。
【図３Ａ】ユーザーを認証するために使われる例示的なデータのブロック図である。
【図３Ｂ】ユーザーを認証するために使われる例示的なデータのブロック図である。
【図４】集合ベースのバイオメトリック認証のための登録データを決定する方法の例示的な流れ図である。
【図５】ユーザーを認証するための秘密鍵を決定する方法の例示的な流れ図である。
【発明を実施するための形態】
【０００７】
本稿で論じられる実施形態は、集合ベースのバイオメトリック認証を提供することに関する。
【０００８】
バイオメトリック認証では、ユーザーはユーザーのバイオメトリック特性を変えることができないことがありうる。たとえば、ユーザーは、該ユーザーの一つまたは複数の一意的な特徴（たとえば指紋、虹彩パターンなど）を記述するバイオメトリック・データを含むバイオメトリック・テンプレートを登録してもよい。バイオメトリック・テンプレートが危殆化され、ユーザーが該バイオメトリック・テンプレートによって記述される一意的な特性を変更できなとしたら、バイオメトリック認証はそのユーザーにとって実効のないものとなる。このため、バイオメトリック認証システムは強力なプライバシー保証を必要とする。
【０００９】
バイオメトリック認証システムのための強力なプライバシー保護保証を提供しようと試みるシステムは存在する。
【００１０】
一つのそのようなシステムは「リレーショナル・ハッシュ」と称されることがある。リレーショナル・ハッシュ・アプローチは、虹彩または手のひら静脈のバイオメトリック測定を行なうために当該システムの一部として使われるプリミティブを含む。リレーショナル・ハッシュ・アプローチに含まれるバイオメトリック測定は、ハミング距離を含む。このアプローチには、攻撃に弱くする既知の脆弱性がある。特に、リレーショナル・ハッシュ・アプローチは、リプレイ攻撃に特に弱い。リレーショナル・ハッシュ・アプローチは、多数の制限もあって、そのため実際配備のためには望ましくない。たとえば、リレーショナル・ハッシュ・アプローチは、指紋測定を含むバイオメトリック測定のためには使えない。リレーショナル・ハッシュ・アプローチはまた、バイオメトリック特徴の距離測定のための誤り耐性のある集合交わりを使わない。
【００１１】
もう一つのアプローチは、「ファジー・ボールト（fuzzy  vault）」として知られている。このアプローチは、指紋テンプレート・セキュリティのために実装されてもよい。このアプローチには、攻撃に弱くする多数の既知の脆弱性がある。たとえば、ファジー・ボールト・アプローチは、リプレイ攻撃または複数事例攻撃（multiple  instance  attack）によって打ち負かされうる。このアプローチはまた、大きなテンプレート・サイズを含む制限があり、そのため実際配備のためにはそれほど望ましくない。
【００１２】
もう一つのアプローチは、バイオトークンの使用である。しかしながら、このアプローチは、独自仕様の指紋テンプレート・セキュリティ・システムの使用を含む。このアプローチが独自仕様である性質のため、実際配備のためにはそれほど望ましくないかもしれない。たとえば、このアプローチの基礎になる技術は、このアプローチがユーザーによって与えられるバイオメトリック・データの秘密を保つことを確証するための検査および吟味に対してオープンでないことがありうる。
【００１３】
これらおよび他のシステムの欠点は、集合ベースのバイオメトリック認証を使うことで克服されうる。図１Ａを参照して下記でより詳細に説明するように、バイオメトリック認証システムは、クライアントおよび認証サーバーを含みうる。クライアントは、後述する該クライアントの機能を提供するよう構成されたコードおよびルーチンを含むクライアント・モジュールを含んでいてもよい。認証サーバーは、後述する該認証サーバーの機能を提供するよう構成されたコードおよびルーチンを含む認証モジュールを含んでいてもよい。クライアントは、登録ユーザーおよび検証ユーザーによって操作されうる。登録ユーザーおよび検証ユーザーは同じ人物であってもよい。認証サーバーは、バイオメトリック認証サービスを提供してもよい。バイオメトリック認証サービスは二つのプロセスを含んでいてもよい：（１）登録プロセスおよび（２）検証プロセスである。登録ユーザーは、登録プロセスを使ってバイオメトリック認証サービスに登録しうる。のちに、認証サーバーが、検証プロセスの間に、検証ユーザーが登録ユーザーと同じであるかどうかを判定してもよい。
【００１４】
ここで、いくつかの実施形態に基づく、バイオメトリック認証サービスによって提供される登録プロセスおよび検証プロセスの例について述べる。登録プロセスを記述するために使われる記号のグラフィックな描写が図３Ａに描かれている。検証プロセスを記述するために使われる記号のグラフィックな描写が図３Ｂに描かれている。登録プロセスおよび検証プロセスを参照して下記に記述されるユーザー、クライアント・モジュール、認証サーバーおよび認証モジュールは、図１Ａ〜図５を参照して下記に記述するものと同じであってもよい。
【００１５】
クライアントは登録プロセスを開始しうる。登録プロセスにおいて、クライアントの登録ユーザーは認証サーバーに登録する。クライアントは、登録バイオメトリック・テンプレートおよび公開鍵を認証サーバーに提供してもよい。登録バイオメトリック・テンプレートは、難読化特徴点データの集合および難読化符号語データの集合を含んでいてもよい。登録バイオメトリック・テンプレートは「{T＝(yi,γi),…,(yn,γn)}」によって表わされてもよい。ここで、記号「yi」は、難読化登録特徴点データを表わし、記号「γi」は難読化登録符号語データを表わし、記号「T」は登録バイオメトリック・テンプレートを表わす。記号「yn」は、難読化登録特徴点データの集合内に含まれる難読化登録特徴点データが任意の正の整数個あってもよいことを表わしていてもよい。記号「γn」は、難読化登録符号語データの集合内に含まれる難読化登録符号語データが任意の正の整数個あってもよいことを表わしていてもよい。いくつかの実装では、難読化登録符号語データの集合は、難読化登録特徴点データの集合に対応していてもよい。たとえば、いくつかの実装では、登録バイオメトリック・テンプレートは、各難読化登録特徴点について一つの難読化登録符号語を含んでいてもよい。
【００１６】
登録バイオメトリック・テンプレートに含まれる難読化登録特徴点データは、登録ユーザーによって与えられた登録バイオメトリック入力の一つまたは複数の難読化登録特徴点の集合を記述していてもよい。たとえば、登録ユーザーは、登録バイオメトリック入力をクライアントに与えてもよい。登録バイオメトリック入力は、登録ユーザーのバイオメトリック測定値を含んでいてもよい。クライアント・モジュールは、登録バイオメトリック入力を受け取り、登録バイオメトリック入力の一つまたは複数の特徴点を記述する特徴点データを決定し、特徴点データの難読化バージョンを記述する難読化特徴点データを決定してもよい。
【００１７】
登録バイオメトリック入力は、指紋スキャン、網膜スキャンまたは登録ユーザーに関連する他の任意のバイオメトリック入力を含んでいてもよい。登録バイオメトリック入力は、「B＝b1…bn」によって表わされてもよい。ここで、記号「b1」は、登録バイオメトリック入力の第一の特徴を記述する登録特徴点データを表わし、記号「b1…bn」は、登録バイオメトリック入力に含まれる任意の正の整数個の特徴を記述する登録特徴点データの集合を表わし、記号「B」は登録バイオメトリック入力を表わす。
【００１８】
難読化登録特徴点データは、一つまたは複数の符号語を使ってクライアント・モジュールによって決定されてもよい。クライアント・モジュールは、誤り訂正符号（ECC:  Error  Correction  Code）から一つまたは複数の符号語をランダムに選択してもよい。ECCは線形誤り訂正符号スキームまたは他の任意の誤り訂正符号スキームでありうる。いくつかの実装では、クライアント・モジュールは各特徴点について一つの符号語を選択してもよい。次いで符号語は、登録バイオメトリック入力に含まれる前記一つまたは複数の特徴点を難読化するために使われてもよい。たとえば、クライアント・モジュールは、バイオメトリック入力を受け取り、登録特徴点データを決定し、ECCから一つまたは複数の符号語をランダムに選択し、前記一つまたは複数の符号語を使って、前記一つまたは複数の符号語および前記登録特徴点データに基づく難読化特徴点データを決定してもよい。
【００１９】
難読化特徴点データは
【数１】
0006555073.tif 000002
によって表わされてもよい。ここで、記号「bi」は登録特徴点データの難読化されていないバージョンを表わし、記号「ci」は前記一つまたは複数のランダムに選択された登録符号語を表わし、記号「yi」は難読化された登録特徴点データを表わす。丸囲みの＋記号は排他的OR関数を表わす。
【００２０】
認証サーバーは、難読化登録特徴点データ（数１）を含む登録バイオメトリック・テンプレートを受領しうるが、登録バイオメトリック・テンプレートに含まれる難読化された登録特徴点データに基づいて、登録特徴点データ（bi）の難読化されていないバージョンを判別することはできない。たとえば、登録特徴点データが前記一つまたは複数の登録符号語によって難読化
【数２】
0006555073.tif 000003
され、前記一つまたは複数の登録符号語がECCからランダムに選択されて認証サーバーから秘密に保たれるのであれば、認証サーバーは、難読化された特徴点データ（yi）から特徴点データ（bi）の難読化されていないバージョンをデコードすることはできない。
【００２１】
クライアント・モジュールは、ランダム登録多項式を使って前記一つまたは複数のランダムに選択された登録符号語を秘密に保ってもよい。クライアント・モジュールは、前記ランダム登録多項式を決定してもよい。前記ランダム登録多項式は記号「ps」によって表わされてもよい。クライアントは、ランダム登録多項式の難読化されていないバージョンを認証サーバーに提供しないことによって、ランダム登録多項式を認証サーバーから秘密に保ってもよい。
【００２２】
クライアント・モジュールは、前記一つまたは複数のランダムに選択された符号語および前記ランダム多項式に基づいて、難読化された登録符号語データを生成してもよい。難読化された登録符号語データは「γi＝ps(ci)」によって表わされてもよい。ここで、記号「ps」はランダム登録多項式を表わし、記号「ci」は前記一つまたは複数のランダムに選択された登録符号語を表わし、記号「γi」は難読化された登録符号語データを表わす。
【００２３】
認証サーバーは、難読化された登録符号語データ（γi＝ps(ci)）を含む登録バイオメトリック・テンプレートへのアクセスをもちうるが、ランダム登録多項式（ps）は認証サーバーには知られていない秘密なので、認証サーバーは、難読化された登録符号語データに含まれる前記一つまたは複数のランダムに選択された登録符号語（ci）を決定することはできない。このように、前記一つまたは複数のランダムに選択された登録符号語は認証サーバーから秘密にされる。さらに、前記一つまたは複数のランダムに選択された登録符号語は認証サーバーから秘密にされるので、認証サーバーは、難読化された特徴点データ
【数３】
0006555073.tif 000004
から登録特徴点データ（bi）の難読化されていないバージョンを決定することもできない。このように、登録ユーザーの登録バイオメトリック入力に関連付けられた登録特徴点データの難読化されていないバージョンは、認証サーバーから秘密に保たれる。
【００２４】
登録バイオメトリック・テンプレートに加えて、クライアントは、公開鍵を認証サーバーに提供してもよい。公開鍵は、クライアント・モジュールによって、前記ランダム登録多項式に基づいて生成されてもよい。たとえば、ランダム登録多項式は、公開鍵の生成にシードを与えるために使われてもよい。公開鍵は、「kpu＝public(ps)」によって表わされてもよい。ここで、記号「ps」はランダム登録多項式を表わし、記号「kpu」は公開鍵を表わす。
【００２５】
登録バイオメトリック・テンプレートおよび公開鍵に加えて、クライアントはユーザーIDも認証サーバーに提供してもよい。ユーザーIDは、登録ユーザーの登録バイオメトリック入力に関連付けられた登録特徴点データの難読化されていないバージョンは含まないものの、登録ユーザーについての一意的な識別子を含んでいてもよい。認証サーバーは、ユーザーIDを登録バイオメトリック・テンプレートおよび公開鍵と関連付けてもよい。登録バイオメトリック・テンプレート、公開鍵およびユーザーIDは認証サーバーに提供され、前記一つまたは複数のランダムな登録符号語および前記ランダム登録多項式は認証サーバーから秘密にされる。
【００２６】
クライアントは、認証サーバーに検証要求を与えることによって検証プロセスを開始してもよい。検証要求は、登録ユーザーについてのユーザーIDを含んでいてもよい。たとえば、検証ユーザーは登録ユーザーとして認証されることを望むことがありうる。よって、検証ユーザーは検証プロセスを開始するためにクライアントに要求入力を与えてもよい。クライアント・モジュールは、検証ユーザーからの該要求入力に応じて、クライアントのメモリからユーザー識別データ（「ユーザーID」）を取り出し、前記検証要求を生成し、前記検証要求を認証サーバーに送ってもよい。
【００２７】
検証要求を受け取るのに応じて、認証サーバーはクライアントに対して検証チャレンジを与えてもよい。検証チャレンジは、前記登録バイオメトリック・テンプレートおよび乱数値を含んでいてもよい。検証チャレンジに含まれるデータは「(T,r)」によって表わされてもよい。ここで、記号「T」は登録バイオメトリック・テンプレートを表わし、記号「r」は乱数値を表わす。
【００２８】
検証ユーザーは、登録ユーザーであると認証されるために、検証バイオメトリック入力をクライアントに与えてもよい。のちにより詳細に説明するように、クライアント・モジュールは、検証バイオメトリック入力から決定される検証特徴点データを使って、登録プロセスの間に生成された公開鍵に関連付けられた秘密鍵を復元してもよい。秘密鍵は、検証ユーザーが登録ユーザーであることを認証するために認証サーバーによって使用されてもよい。
【００２９】
クライアント・モジュールは、検証ユーザーによって与えられた検証バイオメトリック入力を受領し、検証バイオメトリック入力の一つまたは複数の特徴点を記述する検証特徴点データを決定してもよい。検証バイオメトリック入力は、登録プロセスの間に登録ユーザーによって与えられるのと同様の型であってもよい。たとえば、登録ユーザーが登録プロセスの間に登録バイオメトリック入力として指紋スキャンを提供したのであれば、検証ユーザーは検証プロセスの間に指紋スキャンを提供するようクライアント・モジュールによって要求されうる。
【００３０】
検証バイオメトリック入力は「B'＝b1'…bn'」によって表わされてもよい。ここで、記号「b1'」は、検証バイオメトリック入力の第一の特徴を記述する登録特徴点データを表わし、記号「b1'…bn'」は、検証バイオメトリック入力に含まれる任意の正の整数個の特徴を記述する検証特徴点データの集合を表わし、記号「B'」は検証バイオメトリック入力を表わす。
【００３１】
検証特徴点データの集合に含まれる各特徴点について、クライアント・モジュールは、一つまたは複数の検証符号語を決定してもよい。いくつかの実装では、クライアント・モジュールは、検証チャレンジに含まれていた登録バイオメトリック・テンプレート「{T＝(yi,γi),…,(yn,γn)}」に含まれる難読化登録特徴点データ（yi）に基づいて前記一つまたは複数の検証符号語を決定してもよい。たとえば、クライアント・モジュールは、
【数４】
0006555073.tif 000005
に従って前記一つまたは複数の検証符号語を決定してもよい。ここで、記号「yi」は登録バイオメトリック・テンプレートに含まれる難読化登録特徴点データ（yi）を表わし、記号「b'j」は検証バイオメトリック入力に含まれる一つまたは複数の特徴の難読化されていないバージョンを記述する検証特徴点データを表わし、記号「ci'」は難読化登録特徴点データ（yi）および検証特徴点データ（b'j）に基づいて決定された検証符号語を表わす。クライアント・モジュールは前記一つまたは複数の検証符号語を、記号「S」によって表わされるデコードのための候補集合に加えてもよい。
【００３２】
クライアントは、デコードのための候補集合を修正するかどうかを決定するために重み付けプロセスを適用してもよい。本段落が記述する重み付けプロセスは、図３Ｂにおいて要素３４５を参照してグラフィックに描かれている。クライアント・モジュールは、前記一つまたは複数の検証符号語（c'j）、難読化登録特徴点データ（yi）および検証特徴点データ（b'j）に基づいて重みを決定してもよい。たとえば、クライアント・モジュールは
【数５】
0006555073.tif 000006
に従って重みを決定してもよい。クライアント・モジュールは、その重みをユーザーまたは管理者によって与えられる閾値と比較してもよい。重みが閾値未満であれば、クライアント・モジュールは、登録バイオメトリック・テンプレートからの難読化登録符号語データ（γi）を決定し、該難読化登録符号データおよび前記一つまたは複数の検証符号語（c'i）をデコードのための候補集合（S）に「(c'i,γi)」として加えてもよい。
【００３３】
いくつかの実装では、クライアント・モジュールは、デコードのための候補集合から検証多項式を決定するためのデコーダを含んでいてもよい。たとえば、クライアント・モジュールは、ウェルチ・バールカンプ（Welch-Berlekamp）デコーダを提供するよう構成されたコードおよびルーチンを含んでいてもよい。クライアント・モジュールは、デコードのための前記候補集合を前記デコーダを使ってデコードして、検証多項式を決定してもよい。検証多項式は、下記では記号「ps'」によって表わされてもよい。
【００３４】
クライアント・モジュールは、検証多項式（ps'）を使って前記秘密鍵を決定してもよい。秘密鍵は、「kpr＝private(ps')」によって表わされてもよい。ここで、記号「ps'」は検証多項式を表わし、記号「kpr」は秘密鍵を表わす。
【００３５】
クライアント・モジュールは、秘密鍵を使って、検証において受領された乱数値に署名してもよい。署名された乱数値は「d＝sign(kpr,r)」によって表わされてもよい。ここで、記号「kpr」は秘密鍵を表わし、記号「r」は乱数値を表わし、記号「d」は署名された乱数値を表わす。
【００３６】
クライアント・モジュールは、認証サーバーに対してチャレンジ回答を与えてもよい。チャレンジ回答は、検証チャレンジに応答してもよい。チャレンジ回答は、署名された乱数値を含んでいてもよい。認証モジュールは、乱数値に署名するのに使われた秘密鍵が登録鍵の間に受領された公開鍵に対応するかどうかを検証してもよい。秘密鍵が公開鍵に対応していれば、検証ユーザーは認証モジュールによって登録ユーザーとして認証される。秘密鍵が公開鍵に対応しない場合には、検証ユーザーは認証モジュールによって登録ユーザーとして認証されない。
【００３７】
上記で説明したように、ユーザーのバイオメトリック入力の特徴のような枢要なデータが、クライアントと認証サーバーとの間で伝送されるときに難読化されてもよい。よって、クライアントと認証との間の通信は暗号化のようなセキュリティを必要としなくてもよい。認証サーバーは、登録特徴点データまたは検証特徴点データの難読化されていないバージョンへのアクセスをもたなくてもよい。よって、ユーザーのバイオメトリック測定値を複製するために必要なデータが認証サーバーから漏れることはない。たとえば認証サーバー自身が信用できない相手であることがありうるので、これは有益である。
【００３８】
本発明の実施形態について、付属の図面を参照して説明する。
【００３９】
図１Ａは、本稿に開示される少なくとも一つの実施形態に従って構成された、例示的な登録プロセスを提供する例示的なバイオメトリック認証システム１００のブロック図である。バイオメトリック認証システム１００はクライアント１０２および認証サーバー１４０を含んでいてもよい。クライアント１０２は一または複数のユーザー１０６Ａ、１０６Ｂ（まとめて「ユーザー１０６」と称される；個々には「ユーザー１０６Ａ」または「ユーザー１０６Ｂ」と称される）によってアクセス可能であってもよい。ユーザー１０６はクライアント１０２の人間のユーザーまたは人間でないユーザーでバイオメトリック特徴を有するものを含みうる。ユーザー１０６は、認証サーバー１４０にアクセスするためにクライアント１０２を使ってもよい。たとえば、ユーザー１０６Ａは、認証サーバー１４０の認証モジュール１０８によって提供されるバイオメトリック認証サービスにアクセスするためにクライアント１０２を使ってもよい。ユーザー１０６は、異なる時点において、クライアント１０２にアクセスする異なる人間または同じ人間を含んでいてもよい。下記で説明するように、認証サーバー１４０はバイオメトリック認証サービスを提供してもよい。バイオメトリック認証サービスは、ユーザー１０６が同じ人物であるか異なる人々であるかを判別するために使用されてもよい。たとえば、登録プロセスの間にはユーザー１０６は「登録ユーザー１０６」と称されてもよく、検証プロセスの間にはユーザー１０６は「検証ユーザー１０６」と称されてもよい。検証プロセスは、登録ユーザー１０６および検証ユーザー１０６が同じ人であるか異なる人であるかを判定してもよい。
【００４０】
認証サーバー１４０は、プロセッサ・ベースのコンピューティング装置を含んでいてもよい。たとえば、認証サーバー１４０は、ハードウェア・サーバー装置またはサーバーとして機能するよう構成された他の任意のプロセッサ・ベースのコンピューティング装置を含んでいてもよい。
【００４１】
認証サーバー１４０は認証モジュール１０８を含む。認証モジュール１０８は、バイオメトリック認証サービスを提供するよう構成されたコードおよびルーチンを含んでいてもよい。認証モジュール１０８は、認証サーバー１４０の、または認証サーバー１４０にとってアクセス可能なメモリまたは他のコンピュータ可読媒体上に記憶されてもよい。認証モジュール１０８は、本稿に記載される動作の一つまたは複数を実行するために、認証サーバー１４０のプロセッサによって実行可能であってもよい。認証モジュール１０８は、図１Ａ〜図５を参照して下記でより詳細に述べる。
【００４２】
クライアント１０２は、プロセッサ・ベースのコンピューティング装置を含んでいてもよい。たとえば、クライアント１０２は、携帯電話、スマートフォン、タブレット・コンピュータ、ラップトップ・コンピュータ、デスクトップ・コンピュータ、セットトップボックスまたは接続された装置（たとえばスマートウォッチ、スマート眼鏡、スマート万歩計（登録商標）または他の任意の接続された装置）を含みうる。
【００４３】
クライアント１０２はクライアント・モジュール１１０および一つまたは複数のセンサー１９８を含んでいてもよい。センサー１９８は、クライアント１０２に通信上結合されたハードウェア装置を含んでいてもよい。代替的に、センサー１９８はクライアント１０２のコンポーネントを含んでいてもよい。クライアント・モジュール１１０は、クライアント１０２の、またはクライアント１０２にとってアクセス可能なメモリまたは他のコンピュータ可読媒体上に記憶されたコードおよびルーチンを含んでいてもよい。クライアント・モジュール１１０は、本稿に記載される動作の一つまたは複数を実行するために、クライアント１０２のプロセッサによって実行可能であってもよい。
【００４４】
いくつかの実施形態では、認証モジュール１０８は、クライアント・モジュール１１０の機能の一部または全部を提供するよう構成される。いくつかの実施形態では、認証モジュール１０８またはクライアント・モジュール１１０は、フィールド・プログラマブル・ゲート・アレイ（FPGA）または特定用途向け集積回路（ASIC）を含むハードウェアを使って実装されてもよい。いくつかの他の事例では、認証モジュール１０８またはクライアント・モジュール１１０は、ハードウェアとソフトウェアの組み合わせを使って実装されてもよい。このように、認証モジュール１０８またはクライアント・モジュール１１０は、ハードウェア装置として実装されてもよい。
【００４５】
クライアント１０２は、センサー１９８を含んでいてもよい。図１Ａでは一つのセンサー１９８しか描かれていないが、一般にはクライアント１０２は一つまたは複数のセンサー１９８を含みうる。センサー１９８は、ユーザー１０６の一つまたは複数の生体特徴を測定するよう構成されたハードウェア装置を含んでいてもよい。測定は、バイオメトリック測定を含んでいてもよい。バイオメトリック測定は、ユーザー１０６の一意的な特徴を記述してもよい。たとえば、センサー１９８は、指紋スキャナ、虹彩の画像を捕捉するよう構成されたカメラ、ユーザー１０６のDNAを測定するよう構成された装置、ユーザー１０６の心拍数を捕捉するよう構成された心拍数モニタ、ユーザー１０６の骨格筋によって生成される電気活動を捕捉するよう構成されたウェアラブル筋電図センサーまたはユーザー１０６に関連するバイオメトリック測定値を捕捉するよう構成された他の任意のセンサー１９８のうちの一つまたは複数を含みうる。
【００４６】
クライアント・モジュール１１０は、登録データ１８９および確証データ１７９を決定するよう構成されたコードおよびルーチンを含んでいてもよい。登録データ１８９および確証データ１７９は下記でより詳細に述べる。
【００４７】
いくつかの実装では、クライアント・モジュール１１０は、センサー１９８からの登録入力１９３を受領し、該登録入力１９３に基づいて登録バイオメトリック・テンプレートを決定するよう構成されたコードおよびルーチンを含んでいてもよい。登録バイオメトリック・テンプレートの決定については上記したので、その説明はここでは繰り返さない。
【００４８】
いくつかの実装では、クライアント・モジュール１１０は、登録バイオメトリック・テンプレートに関連付けられた公開鍵を決定するよう構成されたコードおよびルーチンを含んでいてもよい。公開鍵の決定については上記したので、その説明はここでは繰り返さない。
【００４９】
認証モジュール１０８によって提供されるバイオメトリック認証サービスは：（１）登録プロセスおよび（２）検証プロセスを含みうる。認証モジュール１０８によって提供されるバイオメトリック認証サービスについての登録プロセスについてこれからある実施形態に基づいて記述する。認証モジュール１０８によって提供される検証プロセスは、ある実施形態に従って図１Ｂを参照して後述する。
【００５０】
図１Ａの要素１９５および１９３を参照するに、認証モジュール１０８によって提供されるバイオメトリック認証サービスについての登録プロセスが開始されうる。登録ユーザー１０６が登録入力１９３を提供１９５してもよい。登録入力は登録バイオメトリック入力を含んでいてもよい。登録バイオメトリック入力は、登録ユーザー１０６のバイオメトリック測定値を含んでいてもよい。登録ユーザー１０６のバイオメトリック測定値は登録ユーザー１０６の一意的な特徴の測定値を含んでいてもよい。たとえば、バイオメトリック測定は、指紋スキャン、網膜スキャンまたは登録ユーザー１０６に関連する他の何らかのバイオメトリック測定を含んでいてもよい。
【００５１】
クライアント１０２は、登録入力１９３を受領１９５してもよい。クライアント・モジュール１１０は、登録ユーザー１０６について登録バイオメトリック・テンプレート、公開鍵およびユーザーIDを決定してもよい。登録バイオメトリック・テンプレートはクライアント・モジュール１１０によって、登録ユーザー１０６によって提供された登録入力１９３に基づいて決定されてもよい。クライアント１０２は、登録データ１８９を認証サーバー１４０に提供１９１してもよい。登録データ１８９は、登録ユーザー１０６についての登録バイオメトリック・テンプレート、公開鍵およびユーザーIDを含んでいてもよい。登録バイオメトリック・テンプレートは図１Ａの要素１８９において記号「T」によって表わされていてもよい。公開鍵は図１Ａの要素１８９において記号「kpu」によって表わされていてもよい。ユーザーIDは図１Ａの要素１８９において記号「User  ID」によって表わされていてもよい。
【００５２】
認証サーバー１４０は登録データ１８９を受領１９１してもよい。認証モジュール１０８は、登録データ１８９を、認証サーバー１４０のまたは認証サーバー１４０にとってアクセス可能であるメモリまたは他のコンピュータ可読媒体上に記憶してもよい。
【００５３】
認証サーバー１４０はクライアント１０２に確証要求１８５を提供１８７してもよい。確証要求は、登録データ１８９に含まれる登録バイオメトリック・テンプレートの署名を含んでいてもよい。
【００５４】
クライアント１０２は、確証要求１８５を受領１８７してもよい。クライアント１０２は、登録ユーザー１０６に対して登録バイオメトリック・テンプレートの署名を呈示してもよい。登録ユーザー１０６は確証入力１８１をクライアント１０２に提供１８３してもよい。確証入力１８１は、確証要求１８５に含まれる署名を確証する入力を含んでいてもよい。確証入力１８１は、認証サーバー１４０が、認証モジュール１０８によって提供される認証サービスへの登録ユーザー１０６の正当な登録を受領したことを確証する入力をも含んでいてもよい。
【００５５】
クライアント１０２は確証入力１８１を受領１８３する。クライアント１０２は、認証サーバー１４０に確証データ１７９を提供１８０する。確証入力１８１は、確証要求１８５に含まれる署名を確証するデータを含んでいてもよい。確証入力１８１は、認証モジュール１０８によって提供される認証サービスへの登録ユーザー１０６の正当な登録を確証するデータを含んでいてもよい。
【００５６】
認証サーバー１４０は確証データ１７９を受領１８０する。認証モジュール１０８は、確証データ１７９の受領１８０に基づいて、登録ユーザー１０６が認証モジュール１０８によって提供される認証サービスへの正当な登録者であることを判定してもよい。
【００５７】
図１Ｂは、本稿に記載される少なくとも一つの実施形態に従って構成される、例示的な検証プロセスを提供する例示的なバイオメトリック認証システム１００のブロック図である。クライアント１０２、クライアント・モジュール１１０、ユーザー１０６、認証サーバー１４０および認証モジュール１０８は、図１Ａに関して上記したのと同じであってもよく、よってこれらの記述はここでは繰り返さない。
【００５８】
検証ユーザー１０６はクライアントに対して要求入力１７５を提供１７７してもよい。要求入力は、検証プロセスを開始する指示を含んでいてもよい。
【００５９】
クライアント１０２は、要求入力１７５を受領１７７する。クライアント１０２は検証要求１７１を認証サーバー１４０に提供１７３する。検証要求１７１は、図１Ａを参照して上記した登録データ１８９に含まれるユーザーIDを含んでいてもよい。
【００６０】
図１Ｂを参照するに、認証サーバー１４０は検証要求１７１を受領１７３してもよい。認証モジュール１０８は、検証要求１７１に含まれるユーザーIDに基づいて、検証ユーザー１０６が登録ユーザー１０６として認証されることを要求していることを判別してもよい。認証サーバー１４０は、検証チャレンジ１６７をクライアントに提供１６９してもよい。検証チャレンジは、登録ユーザー１０６に関連付けられた登録バイオメトリック・テンプレートおよび乱数値を含んでいてもよい。図１Ｂの要素１６７において、登録バイオメトリック・テンプレートは記号「T」によって表わされてもよく、乱数値は記号「r」によって表わされてもよい。登録バイオメトリック・テンプレートは図１Ａを参照して上記した登録データ１８９に含まれる登録バイオメトリック・テンプレートと同じであってもよい。
【００６１】
上記の機能に加えて、クライアント・モジュール１１０は、検証要求１７１およびチャレンジ回答１５９を判別するよう構成されたコードおよびルーチンを含んでいてもよい。検証要求１７１およびチャレンジ回答１５９についてはのちにより詳細に述べる。
【００６２】
図１Ｂを参照するに、クライアント１０２は検証チャレンジ１６７を受領１６９してもよい。クライアント１０２は、クライアント１０２に検証バイオメトリック入力を与えるよう検証ユーザー１０６に促してもよい。検証ユーザー１０６はクライアント１０２に回答入力１６３を提供１６５してもよい。回答入力１６３は検証バイオメトリック入力を含んでいてもよい。検証バイオメトリック入力は、図１Ｂの要素１６３において記号「B'」によって表わされてもよい。クライアント・モジュール１１０は、検証バイオメトリック入力に含まれるデータに少なくとも部分的に基づく秘密鍵を決定してもよい。秘密鍵は、図１Ｂの要素１５９では記号「kpr」によって表わされていてもよい。秘密鍵は、図１Ａを参照して上記した登録データ１８９に含まれている公開鍵に対応していてもよい。たとえば、秘密鍵と公開鍵は暗号学的な鍵ペアをなしてもよい。
【００６３】
図１Ｂを参照するに、クライアント・モジュール１１０は秘密鍵を使って乱数値に署名してもよい。クライアント１０２は、認証サーバー１４０に対してチャレンジ回答１５９を提供１６１してもよい。チャレンジ回答１５９は署名された乱数値を含んでいてもよい。署名された乱数値は図１Ｂの要素１５９では「d＝sign(kpr,r)」によって表わされていてもよい。要素１５９を参照するに、記号「kpr」は秘密鍵を表わし、記号「r」は乱数値を表わし、記号「d」は署名された乱数値を表わす。
【００６４】
認証サーバー１４０は、チャレンジ回答１５９を受領１６１してもよい。認証モジュール１０８はチャレンジ回答を解析して、秘密鍵が公開鍵に対応し、それにより検証ユーザー１０６が登録ユーザー１０６と同じ人物であることを示すかどうかを判定してもよい。
【００６５】
図１Ｃは、集合ベースのバイオメトリック認証を提供するようクライアント・モジュール１１０または認証モジュール１０８が実装されうる例示的な動作環境１６０のブロック図である。図示した動作環境１６０はクライアント１０２、クライアント・モジュール１１０、ユーザー１０６、認証サーバー１４０、認証モジュール１０８およびネットワーク１０７を含む。
【００６６】
図１Ｃは、クライアント１０２および認証サーバー１４０に通信上結合された一つのネットワーク１０７を示しているが、実際上、一つまたは複数のネットワーク１０７がこれらのエンティティに通信上結合されていてもよい。
【００６７】
ネットワーク１０７は、通常の型のネットワーク、有線または無線のネットワークを含んでいてもよく、および／または星形構成、トークンリング構成または他の構成を含む数多くの異なる構成を有していてもよい。さらに、ネットワーク１０７は、ローカル・エリア・ネットワーク（LAN）、広域ネットワーク（WAN）（たとえばインターネット）および／またはそれを通じて複数の装置が通信しうる他の相互接続されたデータ経路を含んでいてもよい。いくつかの事例では、ネットワーク１０７はピアツーピア・ネットワークを含んでいてもよい。ネットワーク１０７は、多様な異なる通信プロトコルにおいてデータを送るための遠隔通信ネットワークに結合されるまたはその諸部分を含んでいてもよい。いくつかの事例では、ネットワーク１０７は、ショートメッセージングサービス（SMS）、マルチメディアメッセージングサービス（MMS）、ハイパーテキスト転送プロトコル（HTTP）、直接データ接続、WAP、電子メールなどを含む、データを送受信するためのブルートゥース通信ネットワークまたはセルラー通信ネットワークを含む。
【００６８】
クライアント１０２、クライアント・モジュール１１０、ユーザー１０６、認証サーバー１４０および認証モジュール１０８は図１Ａおよび図１Ｂに関して述べたものと同じであってもよく、よってこれらの説明はここでは繰り返さない。図１Ａ〜１Ｃを組み合わせて参照するに、クライアント１０２は登録データ１８９、確証データ１７９、検証要求１７１およびチャレンジ回答１５９を認証サーバー１４０にネットワーク１０７を介して送信してもよい。同様に、認証サーバー１４０は確証要求１８５および検証チャレンジ１６７をクライアント１０２にネットワーク１０７を介して送信してもよい。
【００６９】
図２は、本稿に記載される少なくとも一つの実施形態に従って構成された、集合ベースのバイオメトリック認証を提供するための例示的なシステム２００のブロック図である。図２のシステム２００は、図１Ａ〜図１Ｃを参照して上記したクライアント１０２の例であってもよい。
【００７０】
システム２００は、処理装置２０２、ネットワーク・インターフェース２０４およびメモリ２０６を含んでいてもよい。システム２００のさまざまなコンポーネントはバス２２０を介して互いに通信上結合されていてもよい。
【００７１】
処理装置２０２は、算術論理ユニット、マイクロプロセッサ、汎用コントローラまたは計算を実行して表示装置に電子的な表示信号を与える他の何らかのプロセッサ・アレイを含んでいてもよい。処理装置２０２は、複雑命令セット・コンピュータ（CISC）アーキテクチャ、縮小命令セット・コンピュータ（RISC）アーキテクチャまたは命令セットの組み合わせを実装するアーキテクチャを含むさまざまなコンピューティング・アーキテクチャを含んでいてもよい。図２は、単一の処理装置２０２を含んでいるが、複数の処理装置２０２が含まれていてもよい。他のプロセッサ、オペレーティング・システム、センサー、ディスプレイおよび物理的構成が可能である。
【００７２】
ネットワーク・インターフェース２０４はシステム２００が、図１Ｃのネットワーク１０７と通信するまたは該ネットワーク１０７を通じて通信することを可能にするためのハードウェアを含んでいてもよい。ネットワーク・インターフェース２０４は、ネットワーク・インターフェース２０４がその機能を提供することを可能にするよう構成されたコードおよびルーチンを含んでいてもよい。
【００７３】
メモリ２０６は、処理装置２０２によって実行されうる命令および／またはデータを記憶してもよい。命令および／またはデータは、本稿に記載される技術を実行するためのコードを含んでいてもよい。メモリ２０６は、動的ランダム・アクセス・メモリ（DRAM）デバイス、静的ランダム・アクセス・メモリ（SRAM）デバイス、フラッシュ・メモリまたは他の何らかのメモリ・デバイスを含みうる。いくつかの事例では、メモリ２０６は、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、CD-ROMデバイス、DVD-ROMデバイス、DVD-RAMデバイス、DVD-RWデバイス、フラッシュ・メモリ・デバイスまたはより持続的に情報を記憶するための他の何らかの大容量記憶デバイスを含む不揮発性メモリまたは同様の持続性記憶デバイスをも含む。
【００７４】
描かれる実施形態では、メモリ２０６はクライアント・モジュール１１０、登録データ１８９、確証データ１７９、検証要求１７１およびチャレンジ回答１５９を記憶してもよい。システム２００のこれらのコンポーネントは図１Ａ〜１Ｃを参照して上記で述べたので、その記述はここでは繰り返さない。
【００７５】
図３Ａは、ユーザー１０６を認証するために使われる例示的データ３００のブロック図である。要素３０５は登録バイオメトリック・テンプレートを含む。要素３１０は、登録ユーザーのバイオメトリック測定を含む登録バイオメトリック入力を含む。要素３１５は、難読化された登録特徴点データを含む。要素３２０は難読化された登録符号語データを含む。要素３２５は、ランダム登録多項式に基づいて決定された公開鍵を含む。要素３０２は、いくつかの実施形態に基づく、要素３０５〜３２５によって使用される記号および各記号についての例示的な記述を含む。
【００７６】
いくつかの実装では、図１Ａ〜図２のクライアント・モジュール１１０は、ユーザー１０６を認証するために使われる例示的なデータ３００の一つまたは複数を決定するよう構成されたコードおよびルーチンを含む。
【００７７】
図３Ｂは、ユーザー１０６を認証するために使われる例示的データ３９９のブロック図である。要素３３０は検証チャレンジに含まれるデータを含む。要素３３５は、検証ユーザーのバイオメトリック測定を含む検証バイオメトリック入力を含む。要素３４０は、登録バイオメトリック・テンプレートに含まれる難読化された登録特徴点データおよび検証バイオメトリック入力に含まれる検証特徴点データに基づいて決定される検証符号語を含む。検証符号語は、デコードのための候補集合に含まれてもよい。要素３４５は、デコードのための候補集合を修正するかどうかを決定するための重み付けプロセスを含んでいてもよい。クライアント・モジュールは、検証多項式を決定するための候補集合をデコードしてもよい。要素３５０は、検証多項式に基づいて決定される秘密鍵を含む。要素３９７は、いくつかの実施形態に基づく、要素３３０〜３５０によって使用される記号および各記号についての例示的な記述を含む。
【００７８】
いくつかの実装では、図１Ａ〜図２のクライアント・モジュール１１０は、ユーザー１０６を認証するために使われる例示的なデータ３９９の一つまたは複数を決定するよう構成されたコードおよびルーチンを含む。
【００７９】
図４は、本稿に記載される少なくとも一つの実施形態に基づいて構成された、登録バイオメトリック・連符レートおよび公開鍵を決定する方法４００の例示的な流れ図を示している。方法４００は、全体的にまたは部分的に、図１Ａおよび１Ｂのバイオメトリック認証システム１００および／または図２のシステム２００のようなシステムによって実行されてもよい。たとえば、図２の処理装置２０２は、図４の方法４００のブロックの一つまたは複数によって表わされる機能および動作を実行するようメモリ２０６上に記憶されるコンピュータ命令を実行するようプログラムされていてもよい。離散的なブロックとして示されているが、さまざまなブロックは、所望される実装に依存して、追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、なくされたりしてもよい。
【００８０】
方法４００はブロック４０２で始まってもよい。ブロック４０２では、登録バイオメトリック入力が受領されてもよい。バイオメトリック入力は、登録ユーザーに関連付けられたバイオメトリック測定を含んでいてもよい。
【００８１】
ブロック４０４では、ランダム登録多項式が決定されてもよい。登録多項式は、ランダムに一様に選定されてもよい。ブロック４０４は、公開鍵を決定することも含んでいてもよい。公開鍵はランダム登録多項式に基づいて決定されてもよい。たとえば、ランダム登録多項式は、公開鍵を生成するためのシードとして使われてもよい。
【００８２】
ブロック４０６では、バイオメトリック入力に含まれる登録バイオメトリック測定から特徴点の集合が抽出されてもよい。特徴点の集合は、登録特徴点データによって記述されてもよい。特徴点は対として記憶されてもよい。特徴点データの対を使うことで、絶対的な参照枠ではなく、互いに対するそれらの特徴点についての識別情報が与えられる。それは回転および／または並進不変性を与えうる。
【００８３】
ブロック４０８では、一つまたは複数の登録符号語がECCからランダムに選択されうる。いくつかの実装では、ブロック４０８は、特徴点の集合に含まれる各特徴点についてECCから一つの登録符号語をランダムに選択することを含んでいてもよい。前記一つまたは複数の登録符号語は次いで、難読化された登録特徴点データを形成することによって特徴点データを難読化するために使われてもよい。登録符号語は、特徴点データに基づいて検証プロセスの間に有益に誤り訂正を提供してもよい。
【００８４】
ブロック４１０では、登録バイオメトリック・テンプレートが構築されてもよい。登録バイオメトリック・テンプレートは、「T＝bi  XOR  ci,  ps(ci)」に従って構築されてもよい。ここで、記号「bi」は、登録特徴点データの難読化されていないバージョンを記述する登録特徴点データを表わし、記号「ci」はECCから選択されたランダムな符号語を表わし、記号「ps」はランダム登録多項式を表わし、記号「T」は登録バイオメトリック・テンプレートを表わす。各特徴点についてその対応する登録符号語とのXOR関数を使うことは、有益なことに、特徴点データを難読化し、バイオメトリック入力のプライバシーを保護する。
【００８５】
ブロック４１０の登録バイオメトリック・テンプレートは、一つまたは複数の登録符号語によって秘密に保たれるランダム登録多項式の難読化されたバージョンをも提供する。このようにして、登録符号語のうちの十分なものが知られれば、ランダム登録多項式は決定されうる。このようにして、登録バイオメトリック・テンプレートは、ランダム登録多項式の秘密の共有分〔シェア〕をもつテンプレート点をも含む。
【００８６】
ブロック４１２では、バイオメトリック登録バイオメトリック・テンプレートおよび公開鍵が出力されうる。バイオメトリック・テンプレートおよび公開鍵は、集合ベースの認証サーバーに登録ユーザーを登録するための登録データに含まれてもよい。登録データは、登録ユーザーについてのユーザーIDをも含んでいてもよい。登録データに含まれるバイオメトリック・データは難読化され、前記一つまたは複数の登録符号語またはランダム登録多項式を知らない者が発見することはできないので、登録データは、安全でない通信を介して送信されてもよい。登録データのバイオメトリック・データは、前記一つまたは複数の登録符号語またはランダム登録多項式なしでは発見できないので、登録データは、そのデータに公衆がアクセスできるサーバーに記憶されてもよい。たとえば、登録データは、バイオメトリックに基づく公開鍵インフラストラクチャー（PKI）スキームを実装する公共サーバー上に記憶されてもよい。
【００８７】
いくつかの実装では、方法４００の一つまたは複数のステップは、システム２００の処理装置２０２によって実行されてもよい。処理装置２０２は、方法４００の前記一つまたは複数のステップを実行するようプログラムされてもよい。
【００８８】
図５は、本稿に記載される少なくとも一つの実施形態に基づいて構成される、検証ユーザーを認証するための秘密鍵を決定する方法５００の例示的な流れ図を示している。
【００８９】
方法５００はブロック５０２において始まってもよい。ブロック５０２では、登録バイオメトリック・テンプレートが受領されてもよい。ブロック５０２は、検証ユーザーから登録バイオメトリック入力を受領することを含んでいてもよい。
【００９０】
ブロック５０４では、検証バイオメトリックから特徴点の集合が抽出されてもよい。ブロック５０６では、検証バイオメトリック入力から抽出された各特徴点について、難読化された特徴点データが決定されてもよい。難読化された特徴点データは、「yj＝bj'  XOR  bi  XOR  ci」に基づいて、難読化された特徴点データをデコードすることによって決定されてもよい。項「bj'  XOR  bi」はこれら二つのテンプレート点の間の差に決定されうる。この差が、登録ユーザーの登録の際に使われた誤り訂正符号の誤り訂正機能の範囲内であれば、「yj」は「ci」にデコードされうる。その結果、検証ユーザーは登録ユーザーとして認証される。しかしながら、テンプレート点「bj'」と「bi」の間の差が前記誤り訂正符号の誤り訂正機能より大きければ、「yj」は正しくない符号語にデコードされ、結果として検証ユーザーは登録ユーザーとして認証されない。
【００９１】
ブロック５０８では、デコードのための候補集合を生成するために重みが決定されてもよい。記号「(yj  XOR  ci')」は誤差ベクトルを含みうる。各誤差ベクトルの重みが決定および解析されて、テンプレート点のどの対が登録バイオメトリック・テンプレートについての正しいマッチであるかを決定する。
【００９２】
ブロック５１０において、重みが閾値より低いとの判定がされる。これは、テンプレート点のそれらの対が登録バイオメトリック・テンプレートについての正しいマッチであることを示す。
【００９３】
ブロック５１２では、検証多項式が復元される。検証多項式は、クライアント・モジュールに含まれるウェルチ・バールカンプ・デコーダを使って復元される。ウェルチ・バールカンプ・デコーダは、ブロック５０６で復元される正しい検証符号語の数から誤った検証符号語の数を引いたものがランダム登録多項式の次数より大きい場合にかつその場合にのみランダム登録多項式と等しい検証多項式を返しうる。
【００９４】
ブロック５１４では、秘密鍵が決定または出力されうる。秘密鍵は、ブロック５１２で決定される検証多項式に基づいて決定されてもよい。
【００９５】
いくつかの実装では、方法５００の一つまたは複数のステップは、システム２００の処理装置２０２によって実行されてもよい。処理装置２０２は、方法５００の前記一つまたは複数のステップを実行するようプログラムされてもよい
本稿に記載される実施形態は、さまざまなコンピュータ・ハードウェアまたはソフトウェア・モジュールを含む特殊目的または汎用のコンピュータの使用を含みうる。これについて下記でより詳細に述べる。
【００９６】
本稿に記載される実施形態は、コンピュータ実行可能命令またはデータ構造を担持するまたは記憶しているコンピュータ可読媒体を使って実装されてもよい。そのようなコンピュータ可読媒体は、汎用または特殊目的コンピュータによってアクセスされうるいかなる利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、ランダム・アクセス・メモリ（RAM）、読み出し専用メモリ（ROM）、電気的に消去可能なプログラム可能な読み出し専用メモリ（EEPROM）、コンパクトディスク読み出し専用メモリ（CD-ROM）または他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、フラッシュ・メモリ・デバイス（たとえば半導体メモリ・デバイス）またはコンピュータ実行可能命令またはデータ構造の形の所望されるプログラム・コードを担持または記憶するために使用されることができ、汎用または特殊目的コンピュータによってアクセスされうる他の任意の記憶媒体を含む非一時的なコンピュータ可読記憶媒体を含みうる。上記の組み合わせもコンピュータ可読媒体の範囲内に含まれてもよい。
【００９７】
コンピュータ実行可能命令はたとえば、汎用コンピュータ、特殊目的コンピュータまたは特殊目的処理装置（たとえば一つまたは複数のプロセッサ）にある種の機能または機能群を実行させる命令およびデータを含む。手段が構造的な特徴および／または方法論的な工程に固有の言辞で記述されていたとしても、付属の請求項において定義される主題は必ずしも上記で記述した特定の特徴または工程に限定されないことは理解されるものとする。さらに、上記で記述した特定の特徴および工程は、請求項を実装する例示的な形として開示されている。
【００９８】
本稿での用法では、用語「モジュール」または「コンポーネント」は、該モジュールまたはコンポーネントの動作を実行するよう構成された個別的なハードウェア実装および／またはコンピューティング・システムの汎用ハードウェア（たとえばコンピュータ可読媒体、処理装置など）に記憶されうるおよび／または実行されうるソフトウェア・オブジェクトおよび／またはソフトウェア・ルーチンを指しうる。いくつかの実施形態では、本稿に記載される種々のコンポーネント、モジュール、エンジンおよびサービスは、コンピューティング・システム上で（たとえば別個のスレッドとして）実行されるオブジェクトまたはプロセスとして実装されてもよい。本稿に記載されるシステムおよび方法のいくつかは一般に（汎用ハードウェアに記憶されるおよび／または実行される）ソフトウェアで実装されるものとして記述されるが、個別的なハードウェア実装またはソフトウェアおよび個別的ハードウェア実装の組み合わせも可能であり、考えられている。本稿において、「コンピューティング・エンティティ」は、本稿で先に定義した任意のコンピューティング・システムまたはコンピューティング・システム上で走る任意のモジュールまたはモジュレットの組み合わせであってよい。
【００９９】
本稿に記載されるすべての例および条件付きの言辞は、本発明および発明者によって当技術分野の発展のために寄与される概念の理解において読者を助ける教育目的を意図されており、そのような特定的に挙げられる例および条件に限定することなく解釈されるものとする。本発明の実施形態について詳細に述べてきたが、本発明の精神および範囲から外れることなく、これにさまざまな変化、代替および変更をなすことができることは理解しておくべきである。
【０１００】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
登録バイオメトリック測定から登録特徴点の集合を抽出する段階と；
誤り訂正符号から一つまたは複数の登録符号語をランダムに選択する段階と；
特徴点の前記集合の、前記一つまたは複数の登録符号語を使って難読化された難読化バージョンを記述する難読化登録特徴点データを決定する段階であって、特徴点の前記集合は前記一つまたは複数の登録符号語なしでは前記難読化登録特徴点データからは決定できない、段階と；
前記一つまたは複数の登録符号語の、ランダム登録多項式を使って難読化された難読化バージョンを記述する難読化登録符号語データを決定する段階であって、前記一つまたは複数の符号語は、前記ランダム登録多項式なしでは前記難読化登録符号語データからは決定できない、段階と；
前記難読化登録特徴点データおよび前記難読化登録符号語データを含む登録バイオメトリック・テンプレートを決定する段階と；
前記一つまたは複数の登録符号語および前記ランダム登録多項式を秘密に保つ登録データであって、前記登録バイオメトリック・テンプレートを含む登録データを、前記決定を行なうようプログラムされたプロセッサ・ベースのコンピューティング装置を使って決定する段階とを含む、
方法。
（付記２）
前記ランダム登録多項式に基づく公開鍵を生成する段階をさらに含み、前記登録データは前記公開鍵を含み、前記公開鍵は前記ランダム登録多項式を難読化する、付記１記載の方法。
（付記３）
前記登録データは、前記登録データをサードパーティーによってアクセスできるようにするサーバーに送信される、付記１記載の方法。
（付記４）
前記サーバーが、バイオメトリックに基づく公開鍵インフラストラクチャー（PKI）スキームを実装する、付記３記載の方法。
（付記５）
前記登録データが安全でない通信を介して送信される、付記１記載の方法。
（付記６）
前記登録データが登録ユーザーに関連付けられており、前記登録データは前記登録ユーザーに関連付けられたクライアントによって決定される、付記１記載の方法。
（付記７）
付記２記載の方法であって、さらに：
前記登録データおよび乱数値を含む検証チャレンジを受領するのに応答して検証バイオメトリック測定から検証特徴点の集合を抽出する段階であって、前記登録データは登録ユーザーに関連付けられており、前記検証バイオメトリック測定は前記登録ユーザーとして認証されようと試行する検証ユーザーに関連付けられている、段階と；
前記登録データを解析して、前記登録データの前記登録バイオメトリック・テンプレートに含まれる前記難読化登録特徴点データを決定する段階と；
検証特徴点の前記集合および前記難読化登録特徴点データに基づいて一つまたは複数の検証符号語を決定する段階とを含む、
方法。
（付記８）
付記７記載の方法であって、さらに：
前記登録データを解析して、前記登録データに含まれる前記公開鍵を決定する段階と；
前記一つまたは複数の検証符号語に基づいて検証多項式を決定する段階とを含む、
方法。
（付記９）
付記８記載の方法であって、さらに：
前記検証多項式に基づいて秘密鍵を決定する段階と；
前記秘密鍵を用いて前記乱数値に署名することによってチャレンジ回答を決定する段階とを含み、
前記秘密鍵が前記公開鍵に対応して鍵対をなすかどうかに基づいて前記検証ユーザーは前記登録ユーザーとして認証される、
方法。
（付記１０）
コンピュータ命令を有する非一時的なコンピュータ可読媒体であって、前記コンピュータ命令は：
ランダム登録多項式を決定する段階と；
登録バイオメトリック測定から登録特徴点の集合を抽出する段階と；
線形誤り訂正符号から一つまたは複数の登録符号語をランダムに選択する段階と；
特徴点の前記集合の、前記一つまたは複数の登録符号語を使って難読化された難読化バージョンを記述する難読化登録特徴点データを決定する段階であって、特徴点の前記集合は前記一つまたは複数の登録符号語なしでは前記難読化登録特徴点データからは決定できない、段階と；
前記一つまたは複数の登録符号語の、前記ランダム登録多項式を使って難読化された難読化バージョンを記述する難読化登録符号語データを決定する段階であって、前記一つまたは複数の符号語は、前記ランダム登録多項式なしでは前記難読化登録符号語データからは決定できない、段階と；
前記難読化登録特徴点データおよび前記難読化登録符号語データを含む登録バイオメトリック・テンプレートを決定する段階と；
前記ランダム登録多項式に基づいて公開鍵を決定する段階であって、前記公開鍵は前記ランダム登録多項式を難読化する、段階と；
前記一つまたは複数の登録符号語および前記ランダム登録多項式を秘密に保つ登録データであって、前記登録バイオメトリック・テンプレートおよび前記公開鍵を含む登録データを、決定する段階とを含む
動作を実行するまたは該動作の実行を制御するよう処理装置によって実行可能である、
非一時的なコンピュータ可読媒体。
（付記１１）
前記登録データは、前記登録データをサードパーティーによってアクセスできるようにするサーバーに送信される、付記１０記載の非一時的なコンピュータ可読媒体。
（付記１２）
前記登録データが暗号化されない通信を介して送信される、付記１０記載の非一時的なコンピュータ可読媒体。
（付記１３）
前記登録データが登録ユーザーに関連付けられており、前記登録データは前記登録ユーザーに関連付けられたクライアントによって決定される、付記１０記載の非一時的なコンピュータ可読媒体。
（付記１４）
付記１０記載の非一時的なコンピュータ可読媒体であって、前記動作がさらに：
前記登録データおよび乱数値を含む検証チャレンジを受領するのに応答して検証バイオメトリック測定から検証特徴点の集合を抽出する段階であって、前記登録データは登録ユーザーに関連付けられており、前記検証バイオメトリック測定は前記登録ユーザーとして認証されようと試行する検証ユーザーに関連付けられている、段階と；
前記登録データを解析して、前記登録データの前記登録バイオメトリック・テンプレートに含まれる前記難読化登録特徴点データを決定する段階と；
検証特徴点の前記集合および前記難読化登録特徴点データに基づいて一つまたは複数の検証符号語を決定する段階と；
前記登録データを解析して、前記登録データに含まれる前記公開鍵を決定する段階と；
前記一つまたは複数の検証符号語に基づいて検証多項式を決定する段階とを含む、
非一時的なコンピュータ可読媒体。
（付記１５）
付記１４記載の非一時的なコンピュータ可読媒体であって、さらに：
前記検証多項式に基づいて秘密鍵を決定する段階と；
前記秘密鍵を用いて前記乱数値に署名することによってチャレンジ回答を決定する段階とを含み、
前記秘密鍵が前記公開鍵に対応して鍵対をなすかどうかに基づいて前記検証ユーザーは前記登録ユーザーとして認証される、
非一時的なコンピュータ可読媒体。
（付記１６）
前記動作がネットワークのクライアント側で実行される、付記１５記載の非一時的なコンピュータ可読媒体。
（付記１７）
前記動作が前記登録ユーザーに関連付けられたクライアントによって実行され、前記登録ユーザーの前記検証ユーザーとしての認証は前記登録ユーザーに関連付けられた前記クライアントによって実行される、付記１５記載の非一時的なコンピュータ可読媒体。
（付記１８）
登録データおよび乱数値を含む検証チャレンジを受領するのに応答して検証バイオメトリック測定から検証特徴点の集合を抽出する段階であって、前記登録データは登録ユーザーに関連付けられており、前記検証バイオメトリック測定は前記登録ユーザーとして認証されようと試行する検証ユーザーに関連付けられている、段階と；
前記登録データを解析して、前記登録データの登録バイオメトリック・テンプレートに含まれる難読化登録特徴点データを決定する段階であって、前記難読化登録特徴点データは、前記登録ユーザーに関連付けられた登録バイオメトリック・テンプレートから抽出された特徴点の集合の難読化されたバージョンを記述する、段階と；
検証特徴点の前記集合および前記難読化登録特徴点データに基づいて一つまたは複数の検証符号語を決定する段階と；
前記登録データを解析して、前記登録データに含まれる公開鍵を決定する段階と；
前記一つまたは複数の検証符号語に基づいて検証多項式を決定する段階とを含む、
方法。
（付記１９）
付記１８記載の方法であって、さらに：
前記検証多項式に基づいて秘密鍵を決定する段階と；
前記秘密鍵を用いて前記乱数値に署名することによってチャレンジ回答を決定する段階とを含み、
前記秘密鍵が前記公開鍵に対応して鍵対をなすかどうかに基づいて前記検証ユーザーは前記登録ユーザーとして認証される、
方法。
（付記２０）
付記１８記載の方法であって、前記登録データは登録バイオメトリック・テンプレートを含み、前記登録バイオメトリック・テンプレートは、一つまたは複数の登録符号語の難読化されたバージョンを記述する難読化登録符号語データを含み、前記難読化登録符号語データは、前記一つまたは複数の登録符号語の難読化されていないバージョンなしでは特徴点の前記集合が決定できないよう、前記難読化登録特徴点データに含まれる特徴点の前記集合を難読化するために使われる、方法。
【符号の説明】
【０１０１】
１００  バイオメトリック認証システム
１０２  クライアント
１０６  ユーザー
１０７  ネットワーク
１０８  認証モジュール
１１０  クライアント・モジュール
１４０  認証サーバー
１５９  チャレンジ回答
１６３  回答入力
１６７  検証チャレンジ：Tおよびr
１７１  検証要求：ユーザーID
１７５  要求入力
１７９  確証データ
１８１  確証入力：署名の確証および正当な登録の確証
１８５  確証要求：Tの署名
１８９  登録データ
１９３  登録入力：登録バイオメトリック入力
１９８  センサー
２０２  処理装置
２０４  ネットワーク・インターフェース
２０６  メモリ
【図１Ａ】
0006555073.tif 000007
【図１Ｂ】
0006555073.tif 000008
【図１Ｃ】
0006555073.tif 000009
【図２】
0006555073.tif 000010
【図３Ａ】
0006555073.tif 000011
【図３Ｂ】
0006555073.tif 000012
【図４】
0006555073.tif 000013
【図５】
0006555073.tif 000014