(57)【要約】      （修正有）【課題】生体測定データにおける変動を考慮しつつプライバシーを保護したセキュアな生体認証システムを提供する。【解決手段】クライアントデバイス１０４において、ユーザがシステムにアクセスするときの認証のため、ユーザの生体測定入力を受け取り４０５、ネットワークを介して認証サーバからフィールドエレメントセットと乱数とを受け取る４１５。更に、エレメントセットに基づいて生体測定入力をデコードして多項式を生成する４２０。また、多項式に基づいて署名鍵を生成し４２５、乱数を署名鍵で署名し４３０、署名された乱数を認証サーバ１４０に送る４３５。ユーザが認証サーバ１４０により認証されるまで、システムへのアクセスは制限されており、認証サーバ１４０からの認証メッセージの受け取りに応じて、システムへのアクセスが許可される。【選択図】図４
2017229070.tif 000002
【特許請求の範囲】
【請求項１】
ユーザがシステムにアクセスするときの認証のため、前記ユーザの生体測定入力を受け取ることと、
ネットワークを介して認証サーバから、フィールドの要素セットと乱数とを受け取ることと、
前記要素セットに基づいて前記生体測定入力をデコードして多項式を生成することと、
処理デバイスが、前記多項式に基づいて署名鍵を生成することと、
前記処理デバイスが、前記署名鍵で前記乱数を署名することと、
署名された乱数を前記認証サーバに送ることと、
前記ユーザが前記認証サーバにより認証されるまで、前記システムへのアクセスを制限することと、
前記認証サーバからの認証メッセージの受け取りに応じて、前記システムへのアクセスを許可することとを含む、方法。
【請求項２】
前記認証サーバから、ユーザの認証状態を示す認証メッセージを受信することをさらに含む、請求項１に記載の方法。
【請求項３】
前記フィールドの要素セットは２つの異なる公開要素を含む、
請求項１に記載の方法。
【請求項４】
システムであって、
メモリと、
前記メモリに動作可能に結合したプロセッサであって、次の動作：
ユーザから、前記ユーザの認証のための生体測定入力を受け取ることと、
ネットワークを介して認証サーバから、フィールドの要素セットと乱数とを受け取ることと、
前記要素セットに基づいて前記生体測定入力をデコードして多項式を生成することと、
前記多項式に基づいて署名鍵を生成することと、
前記乱数を前記署名鍵で署名することと、
署名された乱数を前記認証サーバに送ることと、
前記ユーザが前記認証サーバにより認証されるまで、前記システムへのアクセスを制限することと、
前記認証サーバからの認証メッセージの受け取りに応じて、前記システムへのアクセスを許可することと、
を実行するように構成されたプロセッサと
を有するシステム。
【請求項５】
プロセッサに次の動作：
ユーザがシステムにアクセスするときの認証のため、前記ユーザの生体測定入力を受け取ることと、
ネットワークを介して認証サーバから、フィールドの要素セットと乱数とを受け取ることと、
前記要素セットに基づいて前記生体測定入力をデコードして多項式を生成することと、
前記多項式に基づいて署名鍵を生成することと、
前記乱数を前記署名鍵で署名することと、
署名された乱数を前記認証サーバに送ることと、
前記ユーザが前記認証サーバにより認証されるまで、前記システムへのアクセスを制限することと、
前記認証サーバからの認証メッセージの受け取りに応じて、前記システムへのアクセスを許可することと、
を実行させる、又はその実行を制御させる
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに開示する実施形態はユーザ認証のための暗号プリミティブに関する。
【背景技術】
【０００２】
電子デバイス及びサービスのセキュリティの重要性が高まっており、イノベーターは新しい又は今までと異なる認証形式に目を向けている。１つの形式のユーザ認証は、生体認証を含み得る。生体認証は概してユーザのユニークな生体特性（ｂｉｏｍｅｔｒｉｃ  ｃｈａｒａｃｔｅｒｉｓｔｉｃ）を測定することを含む。測定された生体測定特性又はそれを表すものを、ユーザのアイデンティティ認証の基礎として用いる。生体測定特性は、ユーザの指紋、虹彩、静脈、デオキシリボ核酸（ＤＮＡ）の部分などを含んでいてもよい。生体認証は、パスワードを覚えていなくてもユーザを認証できるという利点があるかも知れない。生体測定特性は変更できない可能性があるため、生体認証システムではプライバシーが重要である。
【０００３】
特許請求の範囲に記載した主題は、何らかの欠点を解消する実施形態や、上記のような環境のみで動作する実施形態に限定されない。むしろ、この背景技術は、この明細書に説明する幾つかの実施形態を実施できる技術分野例を示すだけである。
【発明の概要】
【０００４】
一実施形態の一態様では、生体認証の方法は、ユーザがシステムにアクセスするときの認証のため、前記ユーザの生体測定入力を受け取ることを含む。該方法は、ネットワークを介して認証サーバからフィールドのエレメントセットと乱数とを受け取ることを含む。前記方法はさらに、前記エレメントセットに基づいて前記生体測定入力をデコードして多項式を生成することを含む。また、前記方法は、前記多項式に基づいて署名鍵を生成することを含む。前記方法は、前記乱数を前記署名鍵で署名することを含む。前記方法は、署名された乱数を前記認証サーバに送ることを含む。前記方法はさらに、前記ユーザが前記認証サーバにより認証されるまで、前記システムへのアクセスを制限することを含む。また、前記方法は、前記認証サーバからの認証メッセージの受け取りに応じて、前記システムへのアクセスを許可することを含む。
【０００５】
実施形態の目的と利点は、少なくとも、特許請求の範囲に具体的に記載した要素、特徴、及び組み合わせにより実現及び達成される。
【０００６】
言うまでもなく、上記の概要と、下記の詳細な説明とは、説明をするためのものであり、特許請求の範囲に記載された発明を制限するものではない。
【図面の簡単な説明】
【０００７】
添付した図面を用いて、実施形態の例をさらに具体的に詳しく説明する。
【０００８】
【図１】例示的な動作環境を示すブロック図である。
【０００９】
【図２】生体認証システムにおいて使用する暗号プリミティブを設定又は構成する例示的方法を示すフロー図である。
【００１０】
【図３】生体認証システムにおいてユーザを登録（ｅｎｒｏｌｌ）する例示的方法を示すフロー図である。
【００１１】
【図４】生体認証システムにおいてユーザを認証する例示的方法を示すフロー図である。
【００１２】
【図５】ここに説明する方法のうち任意の１つ以上を機械に実行させる一組の命令を実行できる、計算デバイスの例示的な形式の機械を示す模式図である。
【００１３】
すべてはここに説明する少なくとも１つの実施形態にしたがって構成されている。
【発明を実施するための形態】
【００１４】
生体認証では、ユーザはその生体測定特性（ｂｉｏｍｅｔｒｉｃ  ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ）を変更できないことがある。例えば、ユーザは、その１つ又は複数のユニークな特性（例えば、指紋、虹彩パターンなど）を記述する生体測定データ（ｂｉｏｍｅｔｒｉｃ  ｄａｔａ）を含む生体測定テンプレート（ｂｉｏｍｅｔｒｉｃ  ｔｅｍｐｌａｔｅ）を登録してもよい。生体テンプレートが洩れてしまい、ユーザが生体テンプレートにより記述されるユニークな特性を変更できない場合、そのユーザにとって生体認証は有効ではなくなる。この理由のため、生体認証システムは強いプライバシー保証を要する。さらに、生体認証システムは、例えば、ユーザは指紋センサ上に毎回同じように自分の指を載せることはない可能性もあるので、生体データのばらつき（ｖａｒｉａｂｉｌｉｔｙ）の主な原因となることがある。
【００１５】
幾つかの生体認証システムでは、生体測定データにおける変動を考慮しつつ（ａｃｃｏｕｎｔｉｎｇ  ｆｏｒ）セキュアな生体認証システムを提供する試みる様々なアプローチが実装している。例えば、幾つかの生体認証システムは、各々が自分のエラー訂正コードセットを有する様々なパラメータセットを用いても良い。例えば、パラメータセットと、対応するエラー訂正コードセットとは、指紋（又は指紋のサブセット）と関連付けられてもよい。エラー訂正コードを用いて、指紋（又は指紋のサブセット）を読むときの変動を説明（ａｃｃｏｕｎｔ  ｆｏｒ）してもよい。この意味において、既存の生体認証システムは万能のものではないだろう。１つのアルゴリズムだけでは任意のエラー閾値を有する任意の長さの生体測定に効かないだろうからである。そうではなく、既存の生体認証システムは、一般的に、具体的なパラメータのエラー訂正コードの存在に依存し、各パラメータセットは異なるエラー訂正コードを要する。
【００１６】
本開示の態様は、生体認証用の暗号プリミティブを提供することにより、既存の生体認証システムのこれらの欠点及びその他の欠点を解決する。暗号プリミティブは、生体認証や生体ベース鍵交換などの様々な実際上の応用があり得るファジーエクストラクタ（ｆｕｚｚｙ  ｅｘｔｒａｃｔｏｒ）を含んでもよい。例えば、本開示は、任意の生体情報（ｂｉｏｍｅｔｒｉｃ）に作用し得る暗号プリミティブを提供する。暗号プリミティブのエラー閾値は、ハミング距離に基づくものであってもよい。暗号プリミティブは生体情報（ｂｉｏｍｅｔｒｉｃ）に対するプライバシー保証も提供できる。説明する暗号プリミティブは、同じアルゴリズムが任意のエラー閾値を有する任意のタイプ又は長さの生体情報に有効であるという意味で万能である。
【００１７】
後でより詳しく説明するように、生体認証システムはクライアントと認証サーバとを含んでもよい。認証サーバは生体認証サービスを提供できる。認証サーバは、セットアッププロセスを開始して、ユーザ認証が行われるパラメータと閾値を確定してもよい。セットアッププロセスは、生体認証システムの初期展開において実行されてもよい。１回のセットアッププロセスが、生体認証システムを、任意の人数のユーザによる使用と、すべてのユーザのすべての認証セッションとに対して設定してもよい。少なくとも一実施形態において、セットアッププロセスは定期的に繰り返されても良い。生体認証システムは、ユーザに対して生体登録（ｂｉｏｍｅｔｒｉｃ  ｅｎｒｏｌｌｍｅｎｔ）プロセスを実行してもよい。生体登録プロセスは、生体認証システムを認証に用いる新しいユーザがシステムに登録するたびに実行されてもよい。セットアッププロセスが繰り返されたとき、一部または全部の登録（ｅｎｒｏｌｌｍｅｎｔｓ）が再び実行されてもよい。認証サーバがユーザ認証を実行してもよい。ユーザ認証プロセスは、ユーザが認証されるセッションごとに実行されてもよい。少なくとも一実施形態では、ユーザ認証プロセスの一部はクライアントデバイスで行われても良く、認証サーバはクライアントデバイスにより生成されたデータを照合（ｖｅｒｉｆｙ）して、ユーザを認証してもよい。
【００１８】
本開示の幾つかの態様は、（必ずしも厳密ではない）近似的一致が必要な任意のシナリオに対する認証メカニズムとして用いることができる。近似度（ａｐｐｒｏｘｉｍａｔｅｎｅｓｓ）はハミング距離に関して測定されてもよい。例えば、非常に長いパスワード又はパスフレーズ（ｐａｓｓｐｈｒａｓｅｓ）に対する近似的パスワード一致に、ここに記載の手法を用いることができる。長いパスフレーズ、例えば「Ｔｈｅ  ｑｕｉｃｋ  ｂｒｏｗｎ  ｆｏｘ  ｊｕｍｐｅｄ  ｏｖｅｒ  ｔｈｅ  ｌａｚｙ  ｄｏｇ」は、ランダムな文字、数字及び記号の短い組み合わせより、覚えやすく、推測しにくいことがある。しかし、ユーザは、長いパスフレーズを覚えていたとしても、例えば、大文字化など、入力で小さな間違いをすることがある。本開示のシステムの態様は、小さな間違いに対して有効であり、セキュア（ｓｅｃｕｒｅ）かつユーザフレンドリーな認証を実施する役に立つだろう。
【００１９】
他の一例では、本開示の態様を、ノイズを有するゲノムデータに対して用いてもよい。ゲノムの読み取りには間違いが起こりやすく、遺伝子は時が経つと変異することがある。本開示の態様は、サーバにさえ遺伝子データを公開せずに、そのようなノイズの多い測定結果を用いて、認証する役に立つことがある。
【００２０】
さらに別の一例では、本開示の態様を質問認証（ｑｕｅｓｔｉｏｎｎａｉｒｅ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ）に用いてもよい。幾つかのシステムはユーザに、その組み合わせがそのユーザを一意的に特定できる一連の質問をしてもよい。ユーザがその質問の大部分に対して一貫して答え、間違いが少ないことが可能である。本開示の態様により、十分に多い質問に基づく認証が、その質問をサーバに公開しなくても、可能になる。
【００２１】
これらの実施形態及びその他の実施形態に関するさらに詳細な事項は、添付した図面を参照して説明する。図中、同じラベルのアイテムは特に断らなければ同様の構成を示す。図面は、幾つかの実施形態の模式的表現であり、限定を意味するものではなく、必ずしもスケール通りに描かれていない。複数の図面にわたって、同じ番号は一般的に、特に断らなければ、同じ構成を指す。
【００２２】
図１は、ここに説明する少なくとも一実施形態により構成された、例示的動作環境１００を示すブロック図である。動作環境１００において、ユーザ１０６の認証はサーバ１４０により実行されてもよい。
【００２３】
動作環境１００は、ユーザ１０６に関連してもよいクライアントデバイス１０４と、データストレージ１１６と、サーバ１４０と、ネットワーク１０７とを含む。クライアントデバイス１０４、データストレージ１１６及びサーバ１４０（集合的に「環境コンポーネント」と呼ぶ）は、ネットワーク１０７を介して通信可能に結合されていてもよい。環境コンポーネントは、ネットワーク１０７を介して、ユーザ１０６を認証するのに用いるデータ及び情報又は一以上のデータセットを通信してもよい。各環境コンポーネントは、次の段落で簡単に説明する。
【００２４】
クライアントデバイス１０４はプロセッサベースの計算システムを含んでも良い。クライアントデバイス１０４は、メモリ、プロセッサ及びネットワーク通信機能を含んでもよい。動作環境１００において、クライアントデバイス１０４は、ネットワーク１０７を介して、データと情報を認証サーバ１４０に通信することが可能である。クライアントデバイス１０４の幾つかの例には、携帯電話、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、セットトップボックス、被接続デバイスなどが含まれる。
【００２５】
ユーザ１０６は、個人、又は企業、政府などその他の実体を含んでもよい。ユーザ１０６は、幾つかの実施形態では、クライアントデバイス１０４に関連していてもよい。例えば、ユーザ１０６は、クライアントデバイス１０４を所有していても、定期的に操作してもよい。幾つかの実施形態では、ユーザ１０６は、クライアントデバイス１０４とはっきりと関連していなくてもよい。例えば、クライアントデバイス１０４は、ユーザ１０６を含む複数のユーザにとって公衆アクセス可能であってもよい。ユーザ１０６は、クライアントデバイス１０４を用いてサーバ１４０に入力を提供してもよい。例えば、ユーザ１０６は、クライアントデバイス１０４のコンポーネントを操作して、生体データレシーバ１５０に入力を提供してもよい。入力は、指紋、虹彩（ｉｒｉｓ）、静脈（ｖｅｉｎｓ）、ＤＮＡなどの生体測定を含んでもよい。
【００２６】
ネットワーク１０７は、有線ネットワーク、無線ネットワーク、またはこれらの任意の組み合わせを含んでもよい。ネットワーク１０７は、スター構成、トークンリング構成、又はその他の構成を含む任意の好適な構成又は複数の構成を含んでもよい。ネットワーク１０７は、例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）（例えば、インターネット）、及び／又はその他の相互接続されたデータパス（ｄａｔａ  ｐａｔｈ）であって複数の装置が通信できるものなどを含んでいてもよい。幾つかの実施形態では、ネットワーク１０７はピア・ツー・ピアネットワークを含んでいてもよい。ネットワーク１０７は、様々な通信プロトコルでデータを通信できる通信ネットワークの部分に結合され、またはその部分を含んでいてもよい。幾つかの実施形態では、ネットワーク１０７は、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキストトランスファープロトコル（ＨＴＴＰ）、直接データ接続、ワイヤレスアプリケーションプロトコル（ＷＡＰ）、電子メールなどを含む、データを送受信するブルートゥース（登録商標）通信ネットワーク及び／又はセルラー通信ネットワークを含む。
【００２７】
データストレージ１１６は任意のメモリ又はデータストレージを含み得る。データストレージ１１６はネットワーク通信機能を含んでもよく、環境コンポーネントがデータストレージ１１６と通信できるようになっていてもよい。幾つかの実施形態では、データストレージ１１６は、コンピュータ実行可能命令またはデータ構造を担うコンピュータ可読記憶媒体を含んでもよい。コンピュータ可読記憶媒体は、プロセッサなどの汎用又は特殊用途コンピュータによりアクセスできる、利用可能などんな媒体も含み得る。例えば、データストレージ１１６は、有体かつ非一時的なコンピュータ可読記憶媒体を含んでもよいコンピュータ可読記憶媒体を含んでもよく、これはランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、電気的消去可能プログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、又はその他の光ディスクストレージ、磁気ディスクストレージ、その他の磁気記憶デバイス、フラッシュメモリデバイス（例えば、ソリッドステートメモリデバイス）、又はその他の任意のストレージ媒体であって所望のプログラムコードを、汎用又は特殊用途コンピュータによりアクセスしてもよいコンピュータ実行可能命令又はデータ構造の形式で所望のプログラムコードを担う又は格納するものを含んでもよい。上記のものの組み合わせもデータストレージ１１６に含まれ得る。
【００２８】
図示した実施形態において、データストレージ１１６はサーバ１４０とは分離している。幾つかの実施形態では、データストレージ１１６はサーバ１４０に含まれても良く、またはサーバ１４０はデータストレージ１１６と同様のローカルデータストレージを含み、ネットワーク１０７を介してデータストレージ１１６にアクセスしてもよい。
【００２９】
サーバ１４０はプロセッサベースの計算デバイスを含んでも良い。例えば、サーバ１４０は、ハードウェアサーバを含んでも、又はサーバとして機能するように構成されたその他のプロセッサベースの計算デバイスを含んでもよい。サーバ１４０はメモリとネットワーク通信機能とを含み得る。動作環境１００において、サーバ１４０は、ネットワーク１０７を介して、クライアントデバイス１０４及びデータストレージ１１６と通信するように構成されていてもよい。
【００３０】
クライアントデバイス１０４は生体データレシーバ１５０を含んでもよい。生体データレシーバ１５０は、ユーザ１０６の一以上の一意的な生物学的または人間的な特性を測定するように構成されていてもよい。生体データは、指紋、虹彩（ｉｒｉｓ）、静脈（ｖｅｉｎｓ）、ＤＮＡなどの生体測定データを含んでもよい。生体データはユーザ１０６の一意的な特性（ｕｎｉｑｕｅ  ｆｅａｔｕｒｅ）を記述するものであり得る。例えば、生体データレシーバ１５０は、指紋スキャナー、虹彩の画像を撮影するように構成されたカメラ、トラッキングされる個人のＤＮＡを測定するように構成されたデバイス、トラッキングされる個人の骨格筋により生じる電気的活動を捕捉するように構成されたウェアラブル筋電計センサ（ｗｅａｒａｂｌｅ  ｅｌｅｃｔｒｏｍｙｏｇｒａｐｈｙ  ｓｅｎｓｏｒ）、又はその他の生体データレシーバ１５０であってユーザ１０６に関連する生体データを捕捉または受け取るように構成されたもののうち一以上を含んでいてもよい。生体データレシーバ１５０は、ユーザ１０６のアイデンティティを決定するのに適した情報（例えば、人間的特性）を補足できる１つ又は複数のセンサを含んでいてもよい。例えば、人間的特性（ｈｕｍａｎ  ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ）は、指紋、虹彩、静脈、ＤＮＡ、血流中の化学物質、装着者の水和レベル（ｈｙｄｒａｔｉｏｎ  ｌｅｖｅｌ）、皮膚及び／又は体温などを含む。クライアントデバイス１０４が含む生体データレシーバ１５０の数はいくつでもよい。生体データレシーバ１５０は、ユーザの一以上の一意的な生物学的または人間的特性（ｕｎｉｑｕｅ  ｂｉｏｌｏｇｉｃａｌ  ｏｒ  ｈｕｍａｎ  ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ）を電子化（例えば、その特性を表す二値の、アナログの、またはデジタルの表示を生成）してもよい。生体データは生体登録データを含んでいてもよい。これは、ユーザ１０６を生体認証システムに登録（ｅｎｒｏｌｌ）するのに使われる生体データを含む。
【００３１】
クライアントデバイス１０４は登録マネージャ１５５も含んでもよい。登録マネージャ１５５は、ユーザ１０６の生体データを用いて、ユーザの一以上の一意的な特性（ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ）（例えば、指紋、虹彩パターンなど）を記述する生体テンプレートを生成するように構成されていてもよい。登録マネージャ１５５は生体認証システムにユーザを登録（ｅｎｒｏｌｌ）できる。これについては、図３を参照してさらに説明する。登録マネージャ１５５は、プロセッサ、マイクロプロセッサ（例えば、一以上の動作を実行又はその実行を制御するもの）、ＦＰＧＡ、又はＡＳＩＣを含むハードウェアを用いて実装してもよい。他の幾つかの例では、登録マネージャ１５５は、ハードウェアとソフトウェアの組み合わせを用いて実装されてもよい。ソフトウェアでの実装は、計算システム（例えば、クライアントデバイス１０４、サーバ１４０など）のハードウェアに含まれるような、一以上のトランジスタ又はトランジスタ素子の急速なアクティベーション及びデアクティベーションを含んでもよい。また、ソフトウェア命令（ｓｏｆｔｗａｒｅ  ｄｅｆｉｎｅｄ  ｉｎｓｔｒｕｃｔｉｏｎｓ）はトランジスタ素子中の情報に作用してもよい。ソフトウェア命令の実施は、少なくとも一時的に電子的経路を再構成し、計算ハードウェアを変換する。
【００３２】
サーバ１４０は認証セットアップマネージャ１６０を含んでも良い。認証セットアップマネージャ１６０は、セットアッププロセスを開始して、ユーザ認証が行われるパラメータと閾値を確定するように構成されていてもよい。セットアッププロセスは、生体認証システム（例えば、システム１００、サーバ１４０）の初期展開（ｉｎｉｔｉａｌ  ｄｅｐｌｏｙｍｅｎｔ）において実行されてもよい。１回のセットアッププロセスが、生体認証システムを、任意の人数のユーザによる使用と、すべてのユーザのすべての認証セッションとに対して設定してもよい。少なくとも一実施形態において、セットアッププロセスは定期的に繰り返されても良い。認証セットアップマネージャ１６０は、図２を参照して説明する方法を実行するように構成されていてもよい。認証セットアップマネージャ１６０は、プロセッサ、マイクロプロセッサ（例えば、一以上の動作を実行又はその実行を制御するもの）、ＦＰＧＡ、又はＡＳＩＣを含むハードウェアを用いて実装してもよい。他の幾つかの例では、認証セットアップマネージャ１６０は、ハードウェアとソフトウェアの組み合わせを用いて実装されてもよい。ソフトウェアでの実装は、計算システム（例えば、認証サーバ１４０、クライアントデバイス１０４など）のハードウェアに含まれるような、一以上のトランジスタ又はトランジスタ素子の急速なアクティベーション及びデアクティベーションを含んでもよい。また、ソフトウェア命令（ｓｏｆｔｗａｒｅ  ｄｅｆｉｎｅｄ  ｉｎｓｔｒｕｃｔｉｏｎｓ）はトランジスタ素子中の情報に作用してもよい。ソフトウェア命令の実施は、少なくとも一時的に電子的経路を再構成し、計算ハードウェアを変換する。
【００３３】
サーバ１４０は生体認証マネージャ１６５を含んでも良い。生体認証マネージャ１６５はユーザ認証を行うように構成されていてもよい。ユーザ認証プロセスは、ユーザが認証されるセッションごとに実行されてもよい。少なくとも一実施形態では、ユーザ認証プロセスの一部はクライアントデバイスで行われても良く、認証サーバはクライアントデバイスにより生成されたデータを照合（ｖｅｒｉｆｙ）して、ユーザを認証してもよい。これについては、図４を参照してさらに説明する。生体認証マネージャ１６５は、プロセッサ、マイクロプロセッサ（例えば、一以上の動作を実行又はその実行を制御するもの）、ＦＰＧＡ、又はＡＳＩＣを含むハードウェアを用いて実装してもよい。他の幾つかの例では、生体認証マネージャ１６５は、ハードウェアとソフトウェアの組み合わせを用いて実装されてもよい。ソフトウェアでの実装は、計算システム（例えば、認証サーバ１４０、クライアントデバイス１０４など）のハードウェアに含まれるような、一以上のトランジスタ又はトランジスタ素子の急速なアクティベーション及びデアクティベーションを含んでもよい。また、ソフトウェア命令（ｓｏｆｔｗａｒｅ  ｄｅｆｉｎｅｄ  ｉｎｓｔｒｕｃｔｉｏｎｓ）はトランジスタ素子中の情報に作用してもよい。ソフトウェア命令の実施は、少なくとも一時的に電子的経路を再構成し、計算ハードウェアを変換する。
【００３４】
本開示の範囲から逸脱することなく、動作環境１００に修正、追加、または削除をすることができる。具体的に、動作環境は、一以上のユーザ１０６、一以上のクライアントデバイス１０４、一以上の認証サーバ１４０、一以上のデータストレージ１１６、又はこれらの任意の組み合わせを含み得る。例えば、動作環境１００は、クライアントデバイス１０４が、認証サーバ１４０から受信した認証メッセージに基づいてインターラクト（ｉｎｔｅｒａｃｔｓ）する他のシステムを含んでもよい。
【００３５】
さらに、ここに説明する実施形態では、様々なコンポーネントを分離して示すが、これは、すべての実施形態においてそうした分離をしなければならないということを示すものではない。言うまでもなく、本開示を読めば、説明する環境コンポーネントは、１つのコンポーネントに集積されてもよいし、複数のコンポーネントに分離されてもよい。例えば、幾つかの実施形態では、登録マネージャ１５５及び／又はそれに属する一以上の機能は、認証サーバ１４０上のモジュールによって実行されてもよい。
【００３６】
図２乃至図４は、生体認証に関する例示的方法を示すフロー図である。この方法は、ハードウェア（回路、専用論理回路など）、ソフトウェア（汎用コンピュータシステム又は専用マシン上で実行されるもの）、又は両者の組み合わせを含み得る処理論理回路により実行されてもよい。処理論理回路は、図１のシステム１００又はその他のコンピュータシステムやデバイスに含まれていてもよい。しかし、他のシステム又はシステムの組み合わせを用いて上記方法を実行してもよい。説明を簡単にするため、ここに説明する方法は、一連の動作として図示及び説明する。しかし、本開示による動作（ａｃｔｓ）は、様々な順序で、及び／又は同時に、かつ個々には提示及び記載していないその他の動作とともに行われても良い。さらに、開示の主題に従った方法を実装するために、例示の動作すべてが用いられなくてもよい。また、当業者には言うまでもないが、本方法は、代替的に、状態図またはイベントにより相互に関連した一連の状態として表されても良い。また、本明細書に開示の方法は、かかる方法の計算デバイスへの輸送及び転送を容易にするため、非一時的コンピュータ可読媒体などの製品（ａｒｔｉｃｌｅ  ｏｆ  ｍａｎｕｆａｃｔｕｒｅ）に格納され得る。ここで用いる「製品」との用語は、任意のコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータプログラムを含むものである。離散的ブロックとして示したが、所望の実施形態に応じて、様々なブロックは、複数のブロックに分割されてもよく、より少ないブロックに結合されてもよく、又は削除されてもよい。
【００３７】
図２は、生体認証システムにおいて使用する暗号プリミティブを設定又は構成する例示的方法２００を示すフロー図である。方法２００は、図１のサーバ１４０などのサーバ中の処理論理回路により、少なくとも部分的に、実施されてもよい。方法２００は、生体認証システムが最初に展開されたとき、又は生体認証システムがリニューアル、再設定、又は更新されたときに実行されてもよい。セットアップまたは設定され得る暗号プリミティブが使用されるユーザの数は任意である。
【００３８】
方法２００はブロック２０５から始まってもよく、処理論理回路がリニアコードの変数を定義してもよい。少なくとも一実施形態において、リニアコードは、長さｎ、次元ｋ、距離ｄを含み、これらは「ｎ、ｋ、ｄコード」と呼ばれ得る。処理論理回路（ｐｒｏｃｅｓｓｉｎｇ  ｌｏｇｉｃ）がｎ、ｋ及びｄを定義（ｄｅｆｉｎｅ）してもよい。例えば、ｎはリニアコードを含むバイナリストリング中の複数のビットを含み得る。少なくとも一実施形態において、ｋは式ｋ＝ｎ−ｄ＋１により定義されてもよい。少なくとも一実施形態において、ｄは式ｄ＝２δ＋１により定義されてもよい。ここで、δはエラー閾値であってもよい。少なくとも一実施形態において、処理論理回路は、エラー閾値がδであるｎビットバイナリストリングである生体テンプレートを定義してもよい。少なくとも一実施形態において、エラー閾値は式｜ω−ω’｜≦δにより表されてもよい。ここでωは登録された生体データを含み、ω’は受け取られた生体データを含む。少なくとも一実施形態において、エラー閾値はハミング距離（Ｈａｍｍｉｎｇ  Ｄｉｓｔａｎｃｅ）であってもよい。ユーザから受け取った生体情報（ｂｉｏｍｅｔｒｉｃ）のうち登録生体情報（例えば、図３の方法３００により登録された生体情報）からδエラー以内の生体情報は有効であると見なされてもよい。登録生体情報（例えば、図３の方法３００により登録された生体情報）からδエラー外の受け取られた生体情報は無効であると見なされてもよい。
【００３９】
ブロック２１０において、処理論理回路は、２ｎより大きい素数ｑを生成してもよい。ここで、ｎはリニアコード長さであり、ブロック２０５で定義されたものである。素数ｑは、２ｎより大きい素数であれば任意である。
【００４０】
ブロック２１５において、処理論理回路はフィールドから２ｎ個のランダムシーケンスを選択してもよい。フィールドは
［外１］
2017229070.tif 000003
と表され得る。ここで、
［外２］
2017229070.tif 000004
は有限数ｑ個の要素を有する有限フィールドである。フィールドから選択される２ｎ個のランダムシーケンスは、シーケンス
［外３］
2017229070.tif 000005
により表され得る。各シーケンスはｎ個の数字を含んでもよい。
【００４１】
ブロック２２０において、処理論理回路は、ブロック２０５においてリニアコードに対して定義された変数と、ブロック２１５において選択された２ｎ個のランダムシーケンスとを格納してもよい。処理論理回路は、リニアコードに対して定義された変数と、２ｎ個のランダムシーケンスとを、データストア（ｄａｔａ  ｓｔｏｒｅ）に格納してもよい。
【００４２】
ブロック２２５において、処理論理回路は、ブロック２０５においてリニアコードに対して定義された変数と、ブロック２１５において選択された２ｎ個のランダムシーケンスとを公開してもよい。少なくとも一実施形態において、リニアコードに対して定義された変数と、２ｎ個のランダムシーケンス（ｓｅｑｕｅｎｃｅ）とを公開することは、リニアコードに対して定義された変数と、２ｎ個のランダムシーケンス（ｓｅｑｕｅｎｃｅ）とをクライアントデバイス（例えば、図１のクライアントデバイス１０４）に送信することを含んでもよい。少なくとも一実施形態において、リニアコードに対して定義された変数と、２ｎ個のランダムシーケンス（ｓｅｑｕｅｎｃｅ）とを公開することは、リニアコードに対して定義された変数と、２ｎ個のランダムシーケンス（ｓｅｑｕｅｎｃｅ）とを、インターネットを介してアクセスできるサーバなどの公衆アクセス可能なロケーションに格納することを含んでもよい。少なくとも一実施形態において、リニアコードに対して定義された変数と、２ｎ個のランダムシーケンス（ｓｅｑｕｅｎｃｅ）とを公開することは、データストア（ブロック２１５において、リニアコードに対して定義された変数と、２ｎ個のランダムシーケンス（ｓｅｑｕｅｎｃｅ）とが格納されるところ）を公衆が利用できる状態にすることを含んでもよい。
【００４３】
図３は、生体認証システムにおいてユーザを登録（ｅｎｒｏｌｌ）する例示的方法３００を示すフロー図である。ユーザを登録することは、ユーザの生体データを生体認証システムに登録することを含んでもよい。方法３００は、図１のクライアントデバイス１０４などのクライアントデバイス中の処理論理回路により、少なくとも部分的に、実施されてもよい。方法３００は、新しいユーザが生体認証システムに登録したとき、又はユーザが生体認証システムで既存の登録を更新したときに実行されてもよい。少なくとも一実施形態において、方法２００の実行に応じて、ユーザに対して方法３００が実行されてもよい。
【００４４】
ブロック３０５において、処理論理回路はユーザから生体登録データ（ｂｉｏｍｅｔｒｉｃ  ｅｎｒｏｌｌｍｅｎｔ  ｄａｔａ）を受け取っても良い。生体登録データは、生体データレシーバ（例えば、図１の生体データレシーバ１５０）を介して、クライアントデバイスのユーザから受け取ってもよい。生体データはユーザのどんな生体データを含むものであってもよい。少なくとも一実施形態において、生体登録データは式
［外４］
2017229070.tif 000006
により表されてもよい。
【００４５】
ブロック３１０において、処理論理回路は、ブロック３０５で受け取った生体登録データに基づいてランダム多項式（ｒａｎｄｏｍ  ｐｏｌｙｎｏｍｉａｌ）を生成してもよい。ランダム多項式はｐ（ｘ）で表され、ｋ次のものである。ランダム多項式ｐ（ｘ）は、
［外５］
2017229070.tif 000007
からａ０，ａ１，・・・，ａｋをランダムにサンプリングし、ｐ（ｘ）をａ０ｘｋ＋ａ１ｘｋ−１＋・・・＋ａｋ−１ｘ＋ａｋと定義することにより生成されてもよい。
【００４６】
ブロック３１５において、処理論理回路は、ブロック３１０で生成されたランダム多項式に基づいて、署名鍵（ｓｉｇｎａｔｕｒｅ  ｋｅｙ）と照合鍵（ｖｅｒｉｆｉｃａｔｉｏｎ  ｋｅｙ）のペアを生成してもよい。署名鍵は、ユーザが様々なデータに署名するのに使われても良い秘密署名鍵（ｓｅｃｒｅｔ  ｓｉｇｎｉｎｇ  ｋｅｙ）を含んでもよい。署名されたデータは暗号化されてもよい。少なくとも一実施形態において、照合鍵は公開鍵（ｐｕｂｌｉｃ  ｋｅｙ）を含んでいてもよい。照合鍵を用いて署名の有効性を照合（ｖｅｒｉｆｙ）してもよい。処理論理回路は、偽造が難しい任意のデジタル署名方式（Ｋｅｙｇｅｎ，Ｓｉｇｎ，Ｖｅｒｉｆｙ）、例えば、ＲＳＡ−ＰＳＳ、Ｅｌｌｉｐｔｉｃ  Ｃｕｒｖｅ  Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ（ＥＣＤＳＡ）、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ（ＤＳＡ）、Ｒａｂｉｎ  Ｓｉｇｎａｔｕｒｅ、Ｂｏｎｅｈ−Ｌｙｎｎ−Ｓｈａｃｈａｍ（ＢＬＳ）  ｓｉｇｎａｔｕｒｅなどを用いても良い。Ｋｅｙｇｅｎは、ランダムシード（ｒａｎｄｏｍ  ｓｅｅｄ）を入力として取るランダム化鍵生成アルゴリズムを含んでもよい。処理論理回路は任意のハッシュ関数Ｈ（例えば、ＳＨＡ３）を用いてもよい。Ｈ（ｐ（ｘ））または
［外６］
2017229070.tif 000008
をＫｅｙｇｅｎアルゴリズムＫｅｙｇｅｎ（Ｈ（ｐ（ｘ）））→（ｓｋ、ｖｋ）のランダムシードとして用いてもよい。ここで、ｓｋは秘密署名鍵を含んでも良く、ｖｋは公開照合鍵を含んでもよい。
【００４７】
ブロック３２０において、処理論理回路はサーバからチャレンジシーケンス（ｃｈａｌｌｅｎｇｅ  ｓｅｑｕｅｎｃｅｓ）を特定してもよい。少なくとも一実施形態において、チャレンジシーケンスは、方法２００の下で生成された２ｎ個のランダムシーケンスを含んでもよい。処理論理回路は、ブロック２２５における２ｎ個のランダムシーケンスの公開に応じて、２ｎ個のランダムシーケンスを受け取る。２ｎ個のランダムシーケンスはシーケンス
［外７］
2017229070.tif 000009
によって表され得る。
【００４８】
ブロック３２５において、処理論理回路は、ブロック３２０で特定されたチャレンジシーケンスに基づいて、一連の多項式評価（ａ  ｓｅｑｕｅｎｃｅ  ｏｆ  ｐｏｌｙｎｏｍｉａｌ  ｅｖａｌｕａｔｉｏｎｓ）を生成してもよい。少なくとも一実施形態において、シーケンス
［外８］
2017229070.tif 000010
が与えられると、処理論理回路は一連の多項式評価を計算してもよい。これは式
［外９］
2017229070.tif 000011
で表され得る。ブロック３３０において、処理論理回路は一連の多項式評価と照合鍵とをサーバに送信してもよい。一連の公式評価と照合鍵は、後でユーザを認証するのに使われてもよい。
【００４９】
図４は、生体認証システムにおいてユーザを認証する例示的方法４００を示すフロー図である。方法４００は、図１の動作環境１００などの動作環境において実行され得る。方法４００は、幾つかの実施形態では、図１を参照して説明したサーバ１４０とクライアントデバイス１０４との幾つかの組み合わせにより、プログラムとして実行されてもよい。サーバ１４０とクライアントデバイス１０４は、方法４００を実行する、又は実行させる、プロセッサにより実行可能なプログラミングコードまたは命令を格納またはエンコードした非一時的コンピュータ可読媒体を含んでいる、又はその媒体に通信可能に結合していてもよい。追加的又は代替的に、認証サーバ１４０とクライアントデバイス１０４は、方法４００を実行する又はその実行を制御するコンピュータ命令を実行するように構成されたプロセッサを含んでもよい。離散的ブロックとして示したが、所望の実施形態に応じて、様々なブロックは、複数のブロックに分割されてもよく、より少ないブロックに結合されてもよく、又は削除されてもよい。
【００５０】
方法４００の部分々々は一以上のシステムにより実行されてもよい。例えば、図示したフローチャートにおいて、ブロック４１０、４４０、４４５、４５０、４５５及び４６０は、サーバ１４０などの一以上のサーバまたはそれのコンポーネントにより実行されてもよい。また、ブロック４０５、４１５、４２０、４２５、４３０及び４３５は、クライアントデバイス１０４などのクライアントデバイスまたはそれのコンポーネントにより実行されてもよい。
【００５１】
方法４００はブロック４０５で始まってもよく、クライアントデバイスがユーザから、そのユーザを認証するのに用いる生体入力を受け取ってもよい。生体入力は上述のように、任意のタイプの生体入力であってよい。生体入力は式
［外１０］
2017229070.tif 000012
により表し得る。
【００５２】
ブロック４１０において、サーバはクライアントデバイスに、一以上のチャレンジシーケンス（ｃｈａｌｌｅｎｇｅ  ｓｅｑｕｅｎｃｅｓ）と乱数ｔを送信してもよい。少なくとも一実施形態において、一以上のチャレンジシーケンスは、方法２００の下で生成された２ｎ個のランダムシーケンスを含んでもよい。一以上のチャレンジシーケンスは式
［外１１］
2017229070.tif 000013
を含んでいてもよい。サーバは、例えば、クライアントデバイスからのメッセージやリクエストに応えて、いつでも、一以上のチャレンジシーケンスと乱数ｔとをクライアントデバイスに送信してもよい。例えば、クライアントデバイスは、ブロック４０５において、生体入力を受け取っても良く、それに応じて、受け取った生体入力についてサーバに通知するメッセージを送信してもよい。サーバは、メッセージに応じて、クライアントデバイスに、一以上のチャレンジシーケンスと乱数ｔを送信してもよい。代替的に、クライアントデバイスが明示的に、一以上のチャレンジシーケンス及び／又は乱数ｔを要求し、それに応じてサーバが、一以上のチャレンジシーケンスと乱数ｔを送信してもよい。少なくとも一実施形態において、サーバは、一以上のチャレンジシーケンスと乱数ｔが生成されてから、それをクライアントデバイスに送信してもよい。
【００５３】
ブロック４１５において、クライアントデバイスは、サーバから一以上のチャレンジシーケンス（ｃｈａｌｌｅｎｇｅ  ｓｅｑｕｅｎｃｅｓ）と乱数ｔを受信してもよい。クライアントデバイスは一以上のチャレンジシーケンスと乱数ｔを記憶してもよい。
【００５４】
ブロック４２０において、クライアントデバイスは、一以上のチャレンジシーケンスに基づいて、生体入力をデコードしてもよい。クライアントデバイスは生体入力をデコードして、ランダム多項式を生成してもよい。クライアントデバイスは、生体登録データを用いて、ブロック３１０において生成されたランダム多項式を再生するよう試みても良い。生体登録データ（例えば、ブロック３０５で受け取られた生体登録データ）に十分類似していない生体入力では、ブロック３１０において生成されたランダム多項式の再生ができない。少なくとも一実施形態において、クライアントデバイスは、式
［外１２］
2017229070.tif 000014
中のｎ個のデータポイントに［ｎ，ｋ，ｄ］ｑリードソロモンデコーディング法を用いて、生体入力をデコードしてもよい。
【００５５】
ブロック４２５において、クライアントデバイスはランダム多項式から署名鍵（ｓｉｇｎａｔｕｒｅ  ｋｅｙ）を生成してもよい。クライアントデバイスは、多項式ｐ（ｘ）を再構成すると、署名鍵をＫｅｙｇｅｎ（Ｈ（ｐ（ｘ）））→（ｓｋ，ｖｋ）として再構成する。ブロック４３０において、クライアントデバイスは、乱数ｔに署名鍵で署名してもよい。少なくとも一実施形態において、乱数ｔの使用により、リプレーアタック（ｒｅｐｌａｙ  ａｔｔａｃｋ）が成功しないようしてもよい。ブロック４３５において、クライアントデバイスは署名された乱数ｔをサーバに送信してもよい。
【００５６】
ブロック４４０において、サーバは署名された乱数ｔをクライアントデバイスから受信してもよい。ブロック４４５において、サーバは照合鍵を考慮して署名を照合してもよい。サーバはＶｅｒｉｆｙ（ｖｋ，ｔ，σ）を実行して署名を照合（ｖｅｒｉｆｙ）してもよい。
【００５７】
署名が照合されたとの決定に応じて（例えば、ブロック４５０において「ＹＥＳ」）、サーバはブロック４５５において、ユーザを認証してもよい。少なくとも一実施形態において、ユーザを認証するとき、サーバは、認証されたこと（ｓｕｃｃｅｓｓｆｕｌ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ）を示すメッセージをクライアントデバイスに送信してもよい。認証メッセージはユーザの認証状態（ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｓｔａｔｕｓ）を示してもよい。ユーザの認証状態は、署名された乱数の署名が有効であるとの決定されたとき、ポジティブ（ｐｏｓｉｔｉｖｅ）である。ユーザの認証状態は、署名された乱数の署名が無効であるとの決定されたとき、ネガティブ（ｎｅｇａｔｉｖｅ）である。
【００５８】
署名が照合（ｖｅｒｉｆｙ）されなかったとの決定に応じて（例えば、ブロック４５０において「ＮＯ」）、サーバはブロック４５５において、ユーザを認証しない。少なくとも一実施形態において、ユーザを認証するとき、サーバは、認証されなかったこと（ｕｎｓｕｃｃｅｓｓｆｕｌ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ）を示すメッセージをクライアントデバイスに送信してもよい。
【００５９】
図５は、ここに説明する方法のうち任意の１つ以上を機械に実行させる一組の命令を実行できる、計算デバイス５００の例示的な形式の機械を示す模式図である。計算デバイス５００は、ここに説明する方法の一以上をマシンに実行させる命令セットを実行できる、携帯電話、スマートフォン、ネットブックコンピュータ、ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータを含み得る。別の実施形態では、マシンは、ＬＡＮ、イントラネット、エクストラネット、又はインターネット中の他のマシンと接続（例えば、ネットワーク）されていてもよい。マシンはクライアントサーバネットワーク環境におけるサーバマシンの資格で動作してもよい。マシンは、パーソナルコンピュータ（ＰＣ）、セットトップボックス（ＳＴＢ）、サーバ、ネットワークルータ、スイッチまたはブリッジ、又はそのマシンが行う動作を指定する（順次的またはその他の）命令セットを実行できる任意のマシンを含んでもよい。さらに、１つのマシンのみが示されていても、「機械（マシン）」との用語は、個々に、または共同して、ここに説明する方法を実行する一組の（または複数組の）命令を実行する複数のマシンの集まりを含む。
【００６０】
例示的な計算デバイス５００は、処理デバイス（例えば、プロセッサ）５０２、メインメモリ５０４（例えば、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）などのダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックメモリ５０６（例えば、フラッシュメモリ、スタティックランダムアクセスメモリ（ＳＲＡＭ））およびデータ記憶装置５１６を含む。これらはバス５０８を介して互いに通信する。
【００６１】
処理デバイス５０２は、マイクロプロセッサ、中央処理装置などの一以上の汎用処理デバイスを含んでも良い。より具体的には、処理デバイス５０２は、例えば、ＣＩＳＣ（ｃｏｍｐｌｅｘ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｃｏｍｐｕｔｉｎｇ）マイクロプロセッサ、ＲＩＳＣ（ｒｅｄｕｃｅｄ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｃｏｍｐｕｔｉｎｇ）マイクロプロセッサ、ＶＬＩＷ（ｖｅｒｙ  ｌｏｎｇ  ｉｎｓｔｒｕｃｔｉｏｎ  ｗｏｒｄ）マイクロプロセッサ、他の命令セットを実装したプロセッサ、又は複数の命令セットの組み合わせを実装したプロセッサを含む。処理デバイス５０２は、例えば、一以上の特殊用途処理デバイス、例えば特定用途集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサなどを含む。処理デバイス５０２は、ここで説明する動作およびステップを実行するための命令５２６を実行するように構成されている。
【００６２】
計算デバイス５００は、ネットワーク５１８と通信することができるネットワークインターフェースデバイス５２２をさらに含んでもよい。計算デバイス５００は、ディスプレイデバイス５１０（例えば、液晶ディスプレイ（ＬＣＤ）または陰極線管（ＣＲＴ））、英数字入力デバイス５１２（例えば、キーボード）、カーソル制御デバイス５１４（例えば、マウス）および信号生成デバイス５２０（例えば、スピーカ）を含んでもよい。一実装では、ディスプレイデバイス５１０、英数字入力デバイス５１２、およびカーソル制御デバイス５１４は、１つのコンポーネントまたはデバイス（例えば、ＬＣＤタッチスクリーン）に結合されてもよい。
【００６３】
データストレージデバイス５１６は、コンピュータ可読記憶媒体５２４を含み、ここに説明する方法や機能のうち一以上を化体する１つ以上の命令セット５２６（例えば、図１のシステム１００）を記憶している。また、命令５２６は、計算デバイス５００による実行中に、メインメモリ５０４内および／または処理デバイス５０２内に完全にまたは少なくとも部分的に存在してもよい。メインメモリ５０４と処理デバイス５０２もコンピュータ可読媒体を構成する。命令は、ネットワークインターフェースデバイス５２２を介して、ネットワーク５１８により送受信され得る。
【００６４】
コンピュータ可読記憶媒体５１６を、例示的な一実施形態では、１つの媒体として示したが、「マシン可読記憶媒体」との用語は、１つ以上の命令セットを記憶する、単一媒体または複数媒体（例えば、集中または分散データベース、及び／または関連するキャッシュとサーバ）を含むでもよい。「コンピュータ可読記憶媒体」との用語は、そのマシンにより実行される一組の命令を記憶、エンコード、または担うことができ、そのマシンに、本開示の方法のいずれかを実行させる任意の媒体を含む。したがって、「コンピュータ可読記憶媒体」との用語は、固体メモリ、光媒体及び磁気媒体を含むが、これらに限定されない。
【００６５】
ここに説明する実施形態は、後でより詳しく説明する様々なコンピュータハードウェア又はソフトウェアモジュールを含む特殊用途又は汎用コンピュータの利用を含んでも良い。
【００６６】
ここに説明の実施形態は、コンピュータ実行可能命令又はそれに格納されたデータ構造を担うコンピュータ可読媒体を用いて実装されてもよい。かかるコンピュータ読み取り可能媒体は、汎用又は特殊目的コンピュータシステムによりアクセスしてもよい、利用できるどんな媒体であってもよい。限定ではなく一例として、かかるコンピュータ読み取り可能媒体は、非一時的コンピュータ読み取り可能記憶媒体を含み、これはランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、電気的消去可能プログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、又はその他の光ディスクストレージ、磁気ディスクストレージ、その他の磁気ストレージデバイス、フラッシュメモリデバイス（例えば、ソリッドステートメモリデバイス）、又はその他の任意のストレージ媒体であって所望のプログラムコードを、汎用又は特殊用途コンピュータによりアクセスしてもよいコンピュータ実行可能命令又はデータ構造の形式で担う又は格納するのに用いられるものを含む。上記のものの任意の組合せを、コンピュータ可読媒体の範囲内に含んでもよい。
【００６７】
コンピュータ実行可能命令は、例えば、命令とデータであって、汎用コンピュータ、特殊用途コンピュータ、又は特殊用途処理デバイス（例えば、一以上のプロセッサ）に、ある機能又は一群の機能を実行させるものを含んでもよい。  本主題を個別の構造的特徴及び／又は方法動作を用いて説明したが、言うまでもなく、添付した特許請求の範囲に規定する主題は、上記の特定の特徴や動作には必ずしも限定されない。上記の特定の特徴や動作は、請求項を実施する形式例を開示するものである。
【００６８】
ここで、「モジュール」又は「コンポーネント」との用語は、計算システムの汎用ハードウェア（例えば、コンピュータ読み取り可能媒体、プロセッサデバイスなど）により格納及び／又は実行され得るモジュール又はコンポーネント、及び／又はソフトウェアオブジェクト又はソフトウェアルーチンを実行するように構成されたハードウェア実施形態を指してもよい。幾つかの実施形態では、ここに説明する異なるコンポーネント、モジュール、エンジン、及びサービスは、（例えば、別のスレッドとして）計算システム上で実行されるオブジェクト又はプロセスとして実施してもよい。ここに説明のシステムと方法の幾つかは、概して（汎用ハードウェアにより格納及び／又は実行される）ソフトウェアで実装されると説明したが、ハードウェアの実施形態、又はソフトウェアとハードウェアの実施形態の組み合わせも可能であり、想定されている。本明細書において、「計算エンティティ（ｃｏｍｐｕｔｉｎｇ  ｅｎｔｉｔｙ）」とは、ここで定義したどの計算システムであってもよく、計算システム上で実行されているどのモジュール又はモジュールの組み合わせであってもよい。
【００６９】
ここに記載したすべての例と条件付きの言葉は、発明者が技術発展に対してなした本発明とコンセプトとを、読者が理解しやすいようにするためのものであり、その解釈は具体的に記載した実施例や制約に限定されるべきではない。本発明の実施形態を詳細に説明したが、言うまでもなく、本発明の精神と範囲から逸脱することなく、これらの実施形態に変更、置換、代替を施すことができる。
【００７０】
以下の付記を記す。
（付記１）  ユーザがシステムにアクセスするときの認証のため、前記ユーザの生体測定入力を受け取ることと、
ネットワークを介して認証サーバから、フィールドの要素セットと乱数とを受け取ることと、
前記要素セットに基づいて前記生体測定入力をデコードして多項式を生成することと、
処理デバイスが、前記多項式に基づいて署名鍵を生成することと、
前記処理デバイスが、前記署名鍵で前記乱数を署名することと、
署名された乱数を前記認証サーバに送ることと、
前記ユーザが前記認証サーバにより認証されるまで、前記システムへのアクセスを制限することと、
前記認証サーバからの認証メッセージの受け取りに応じて、前記システムへのアクセスを許可することとを含む、方法。
（付記２）  前記認証サーバから、ユーザの認証状態を示す認証メッセージを受信することをさらに含む、付記１に記載の方法。
（付記３）  ユーザの認証状態は、署名された乱数の署名が有効であるとの決定されたとき、ポジティブである、付記２に記載の方法。
（付記４）  ユーザの認証状態は、署名された乱数の署名が無効であるとの決定されたとき、ネガティブである、付記２に記載の方法。
（付記５）  生体測定入力はリードソロモンデコーディング法を用いてデコードされる、
付記１に記載の方法。
（付記６）  前記フィールドの要素セットは２つの異なる公開要素を含む、
付記１に記載の方法。
（付記７）  前記要素セットはユーザが以前に提供した登録生体データに基づいて生成される、
付記１に記載の方法。
（付記８）  システムであって、
メモリと、
前記メモリに動作可能に結合したプロセッサであって、次の動作：
ユーザから、前記ユーザの認証のための生体測定入力を受け取ることと、
ネットワークを介して認証サーバから、フィールドの要素セットと乱数とを受け取ることと、
前記要素セットに基づいて前記生体測定入力をデコードして多項式を生成することと、
前記多項式に基づいて署名鍵を生成することと、
前記乱数を前記署名鍵で署名することと、
署名された乱数を前記認証サーバに送ることと、
前記ユーザが前記認証サーバにより認証されるまで、前記システムへのアクセスを制限することと、
前記認証サーバからの認証メッセージの受け取りに応じて、前記システムへのアクセスを許可することと、
を実行するように構成されたプロセッサと
を有するシステム。
（付記９）  前記プロセッサは、前記認証サーバから、ユーザの認証状態を示す認証メッセージを受信することをさらに実行するように構成されている、
付記８に記載のシステム。
（付記１０）  ユーザの認証状態は、署名された乱数の署名が有効であるとの決定されたとき、ポジティブである、付記９に記載のシステム。
（付記１１）  ユーザの認証状態は、署名された乱数の署名が無効であるとの決定されたとき、ネガティブである、付記９に記載のシステム。
（付記１２）  生体測定入力はリードソロモンデコーディング法を用いてデコードされる、
付記８に記載のシステム。
（付記１３）  前記フィールドの要素セットは２つの異なる公開要素を含む、
付記８に記載のシステム。
（付記１４）  前記要素セットはユーザが以前に提供した登録生体データに基づいて生成される、
付記８に記載のシステム。
（付記１５）  プロセッサに次の動作：
ユーザがシステムにアクセスするときの認証のため、前記ユーザの生体測定入力を受け取ることと、
ネットワークを介して認証サーバから、フィールドの要素セットと乱数とを受け取ることと、
前記要素セットに基づいて前記生体測定入力をデコードして多項式を生成することと、
前記多項式に基づいて署名鍵を生成することと、
前記乱数を前記署名鍵で署名することと、
署名された乱数を前記認証サーバに送ることと、
前記ユーザが前記認証サーバにより認証されるまで、前記システムへのアクセスを制限することと、
前記認証サーバからの認証メッセージの受け取りに応じて、前記システムへのアクセスを許可することと、
を実行させる、又はその実行を制御させる
コンピュータプログラム。
（付記１６）  前記プロセッサに、さらに次の動作：
前記認証サーバから、ユーザの認証状態を示す認証メッセージを受信すること、
を実行させる、又はその動作の実行を制御させる、
付記１５に記載のコンピュータプログラム。
（付記１７）  ユーザの認証状態は、署名された乱数の署名が有効であるとの決定されたとき、ポジティブである、付記１６に記載のコンピュータプログラム。
（付記１８）  ユーザの認証状態は、署名された乱数の署名が無効であるとの決定されたとき、ネガティブである、付記１６に記載のコンピュータプログラム。
（付記１９）
前記フィールドの要素セットは２つの異なる公開要素を含む、
付記１５に記載のコンピュータプログラム。
（付記２０）  前記要素セットはユーザが以前に提供した登録生体データに基づいて生成される、
付記１５に記載のコンピュータプログラム。
【図１】
2017229070.tif 000015
【図２】
2017229070.tif 000016
【図３】
2017229070.tif 000017
【図４】
2017229070.tif 000018
【図５】
2017229070.tif 000019