(57)【要約】【課題】関係暗号化の方法を提供する。【解決手段】方法は、第１の群要素に基づく第１の関係キー要素と、第１の群要素に基づき、第１の平文値により冪乗された第２の関係キー要素とを含む第１のメッセージを受信することを含む。この方法はさらに、第２の群要素に基づく第３の関係キー要素と、第２の群要素に基づき、第２の平文値により冪乗された第４の関係キー要素とを含む第２のメッセージを受信することを含む。この方法はさらに、第１のメッセージ又は第２のメッセージを復号化することなしに、第１のメッセージを第２のメッセージと比較すること、及び、この比較に基づいて、第１の平文値と第２の平文値とが同じであると判定することを含む。【選択図】図１
2017207751.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実施される方法であって、
サーバにおいて、暗号化された第１のメッセージを第１のユーザ装置から受信するステップであり、前記暗号化された第１のメッセージが、第１の数学的群要素に基づく第１の関係キー要素を含み、前記暗号化された第１のメッセージが、前記第１の数学的群要素に基づく、第１の平文値により冪乗された第２の関係キー要素を含む、ステップと、
前記サーバにおいて、暗号化された第２のメッセージを第２のユーザ装置から受信するステップであり、前記暗号化された第２のメッセージが、前記第１の数学的群要素とは異なる第２の数学的群要素に基づく第３の関係キー要素を含み、前記暗号化された第２のメッセージが、前記第２の数学的群要素に基づく、第２の平文値により冪乗された第４の関係キー要素を含む、ステップと、
前記サーバの１又は複数のプロセッサを使用して、前記暗号化された第１のメッセージを前記暗号化された第２のメッセージと比較するステップであり、前記サーバによって、前記暗号化された第１のメッセージも又は前記暗号化された第２のメッセージも復号化されない、ステップと、
前記比較に基づいて、前記１又は複数のプロセッサによって、前記第１の平文値と前記第２の平文値とが同じであると判定するステップと、
前記第１の平文値と前記第２の平文値とが同じであることに基づいて、制限された内容に前記第２のユーザ装置がアクセスすることを前記サーバが許可するステップと、
を含む方法。
【請求項２】
前記第１のユーザ装置と前記第２のユーザ装置が、同じエンティティによって、異なるときに作動される、請求項１に記載の方法。
【請求項３】
前記第１の数学的群要素を、第１の数学的群のランダム要素として得るステップと、
前記第２の数学的群要素を、前記第１の数学的群とは別の第２の数学的群のランダム要素として得るステップと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記第１の数学的群が双線形要素を含む、請求項３に記載の方法。
【請求項５】
前記暗号化された第１のメッセージを前記暗号化された第２のメッセージと比較するステップが、
第１のランダム整数により冪乗された前記第１の関係キー要素と、第２のランダム整数により冪乗され、前記第２の平文値により冪乗された前記第４の関係キー要素とに対して、第１のペアリング関数演算を実行するステップと、
前記第１のランダム整数により冪乗され、前記第１の平文値により冪乗された前記第２の関係キー要素と、前記第２のランダム整数により冪乗された前記第３の関係キー要素とに対して、第２のペアリング関数演算を実行するステップと、
前記第１のペアリング関数演算と前記第２のペアリング関数演算の結果を比較するステップと、
を含む、請求項１に記載の方法。
【請求項６】
前記第１の平文値がパスワードを含む、請求項１に記載の方法。
【請求項７】
前記第１の関係キー要素が、前記サーバによって選択された第３のランダム整数により冪乗され、前記サーバによって選択された第４のランダム整数により冪乗された前記第１の数学的群要素を含み、前記第２の関係キー要素が、前記第１のユーザ装置によって選択された第５のランダム整数により冪乗され、前記第２のユーザ装置によって選択された第６のランダム整数により冪乗された前記第１の数学的群要素を含む、請求項１に記載の方法。
【請求項８】
前記第３の関係キー要素が、前記第４のランダム整数により冪乗された前記第２の数学的群要素を含み、前記第４の関係キー要素が、前記第５のランダム整数により冪乗され、前記第６のランダム整数により冪乗された前記第２の数学的群要素を含む、請求項７に記載の方法。
【請求項９】
プロセッサによって実行されると前記プロセッサに動作を実行させるように構成される命令を含む非一時的コンピュータ可読媒体であって、前記動作が、
暗号化された第１のメッセージを第１のユーザ装置から受信する動作であり、前記暗号化された第１のメッセージが、第１の数学的群要素に基づく第１の関係キー要素を含み、前記暗号化された第１のメッセージが、前記第１の数学的群要素に基づく、第１の平文値により冪乗された第２の関係キー要素を含む、動作と、
暗号化された第２のメッセージを第２のユーザ装置から受信する動作であり、前記暗号化された第２のメッセージが、前記第１の数学的群要素とは異なる第２の数学的群要素に基づく第３の関係キー要素を含み、前記暗号化された第２のメッセージが、前記第２の数学的群要素に基づく、第２の平文値により冪乗された第４の関係キー要素を含む、動作と、
前記暗号化された第１のメッセージを前記暗号化された第２のメッセージと比較する動作であり、前記暗号化された第１のメッセージも又は前記暗号化された第２のメッセージも復号化されない、動作と、
前記比較に基づいて前記第１の平文値と前記第２の平文値とが同じであると判定する動作と、
前記第１の平文値と前記第２の平文値とが同じであることに基づいて、制限された内容に前記第２のユーザ装置がアクセスすることを許可する動作と、
を含む非一時的コンピュータ可読媒体。
【請求項１０】
前記第１のユーザ装置と前記第２のユーザ装置が、同じエンティティによって、異なるときに作動される、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１１】
前記動作が、
前記第１の数学的群要素を、第１の数学的群のランダム要素として得る動作と、
前記第２の数学的群要素を、前記第１の数学的群とは別の第２の数学的群のランダム要素として得る動作と、
をさらに含む、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１２】
前記第１の数学的群が双線形要素を含む、請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１３】
前記暗号化された第１のメッセージを前記暗号化された第２のメッセージと比較する前記動作が、
第１のランダム整数により冪乗された前記第１の関係キー要素と、第２のランダム整数により冪乗され、前記第２の平文値により冪乗された前記第４の関係キー要素とに対して、第１のペアリング関数演算を実行する動作と、
前記第１のランダム整数により冪乗され、前記第１の平文値により冪乗された前記第２の関係キー要素と、前記第２のランダム整数により冪乗された前記第３の関係キー要素とに対して、第２のペアリング関数演算を実行する動作と、
前記第１のペアリング関数演算と前記第２のペアリング関数演算の結果を比較する動作と、
を含む、請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１４】
前記第１の平文値がパスワードを含む、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１５】
前記第１の関係キー要素が、認証サーバによって選択された第３のランダム整数により冪乗され、前記認証サーバによって選択された第４のランダム整数により冪乗された前記第１の数学的群要素を含み、前記第２の関係キー要素が、前記第１のユーザ装置によって選択された第５のランダム整数により冪乗され、前記第２のユーザ装置によって選択された第６のランダム整数により冪乗された前記第１の数学的群要素を含む、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１６】
前記第３の関係キー要素が、前記第４のランダム整数により冪乗された前記第２の数学的群要素を含み、前記第４の関係キー要素が、前記第５のランダム整数により冪乗され、前記第６のランダム整数により冪乗された前記第２の数学的群要素を含む、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１７】
第１のユーザ装置によって、第１の数学的群要素及び第２の数学的群要素を得るステップと、
前記第１のユーザ装置において、サーバから、第１のランダム整数により冪乗された前記第１の数学的群要素を受信するステップと、
前記第１のユーザ装置によって、第２のランダム整数を得るステップと、
前記第１のユーザ装置によって、第２のユーザ装置に、前記第２のランダム整数により冪乗された前記第２の数学的群要素を送信するステップと、
前記第１のユーザ装置において、前記第２のユーザ装置から、第３のランダム整数により冪乗された前記第１の数学的群要素を受信するステップと、
前記第１のユーザ装置の第１の関係キーを確立するステップであり、前記第１の関係キーの第１の要素が、前記第１のランダム整数により冪乗された前記第１の数学的群要素を含み、前記第１の関係キーの第２の要素が、前記第２のランダム整数により冪乗され、前記第３のランダム整数により冪乗された前記第１の数学的群要素を含む、ステップと、
を含む方法。
【請求項１８】
前記第１のユーザ装置によって、前記第１の関係キーを使用して、第１の平文値を第１のメッセージ中に関係暗号化するステップと、
前記第１のメッセージを、前記第１のユーザ装置から前記サーバに送信するステップと、
をさらに含む請求項１７に記載の方法。
【請求項１９】
前記第１の平文値を関係暗号化するステップが、
前記第１のユーザ装置によって第４のランダム整数を得るステップと、
前記第１の関係キーの前記第１の要素を、前記第４のランダム整数により冪乗するステップと、
前記第１の関係キーの前記第２の要素を、前記第４のランダム整数及び前記第１の平文値により冪乗するステップと、
を含む、請求項１８に記載の方法。
【請求項２０】
前記第１の平文値が、前記第２のユーザ装置によって前記サーバに提供された第２の平文値と同じであることに基づいて、制限された内容へのアクセスを、前記サーバから受信するステップ、をさらに含む請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本願は、２０１４年５月２５日出願の米国特許出願第１４／２８７，０５１号の一部継続出願である２０１５年７月１０出願の米国特許出願第１４／７９７，０２５号の一部継続出願である。これらの出願はともに参照により本願明細書に組み込まれる。
【０００２】
［技術分野］
本願明細書で議論される実施形態は、関係暗号化に関する。
【背景技術】
【０００３】
ユーザ認証の形式は生体認証を含み得る。生体認証は通常、ユーザに固有のユーザのバイオメトリック特徴を測定することを含む。測定されたバイオメトリック特徴又はその表現は、次に、ユーザの同一性を認証する基礎として使用される。バイオメトリック特徴は、ユーザの指紋、虹彩、静脈、デオキシリボ核酸（ＤＮＡ）のセクション等を含み得る。生体認証は、パスワードを記憶する必要なしにユーザが認証されることを可能にするという利点を有し得る。バイオメトリック特徴は不変であるため、生体認証システムにおいてはプライバシが重要である。
【０００４】
本願明細書で請求される主題は、上述のような欠点を解決する実施形態又は上述のような環境でのみ機能する実施形態に限定されない。むしろ、この背景技術は、単に、本願明細書に記載される幾つかの実施形態が実施される技術分野の一例を説明するために提供される。
【発明の概要】
【０００５】
本開示の１又は複数の実施形態は、コンピュータにより実施される方法を含む。この方法は、サーバにおいて、暗号化された第１のメッセージを第１のユーザ装置から受信するステップを含んでも良い。暗号化された第１のメッセージは、第１の数学的群要素に基づく第１の関係キー要素を含んでも良い。暗号化された第１のメッセージはさらに、第１の数学的群要素に基づく、第１の平文値により冪乗された第２の関係キー要素を含んでも良い。この方法はさらに、サーバにおいて、暗号化された第２のメッセージを第２のユーザ装置から受信するステップを含んでも良い。暗号化された第２のメッセージは、第１の数学的群要素とは異なる第２の数学的群要素に基づく第３の関係キー要素を含んでも良い。暗号化された第２のメッセージはさらに、第２の数学的群要素に基づく、第２の平文値により冪乗された第４の関係キー要素を含んでも良い。この方法はさらに、サーバの１又は複数のプロセッサを使用して、暗号化された第１のメッセージを暗号化された第２のメッセージと比較するステップを含んでも良く、その際、サーバによって、暗号化された第１のメッセージも又は暗号化された第２のメッセージも復号化されない。この方法はさらに、この比較に基づいて、前記１又は複数のプロセッサによって、第１の平文値と第２の平文値とが同じであると判定するステップを含んでも良い。この方法はさらに、第１の平文値と第２の平文値とが同じであることに基づいて、制限された内容に第２のユーザ装置がアクセスすることをサーバが許可するステップを含んでも良い。
【０００６】
これらの実施形態の目的及び利点は、少なくとも、特許請求の範囲において特に指摘された要素、特徴及び組合せによって実現及び達成されるであろう。
【０００７】
上述の全体的説明及び以下の詳細な説明の両方は、例示及び説明のためであり、特許請求の範囲を限定しないことが理解される。
【０００８】
例示的な実施形態は、添付の図面を用いて、さらなる特異性及び詳細事項とともに記載され説明される。
【図面の簡単な説明】
【０００９】
【図１】例示的な動作環境のブロック図である。
【図２】例示的な生体認証環境のブロック図である。
【図３】生体認証の例示的な方法のフロー図である。
【図４Ａ】関係暗号化の例示的な方法のフロー図である。
【図４Ｂ】関係暗号化の例示的な方法のフロー図である。
【図５】関係暗号化方式において線形関係を発見する例示的な方法のフロー図である。
【図６】関係暗号化方式において近似を検出する例示的な方法のフロー図である。
【図７】関係線形暗号化方式のキー生成の例示的な方法のフロー図である。
【図８】関係線形暗号化方式を使用して第１の平文ベクトルを暗号化する例示的な方法のフロー図である。
【図９】関係近似暗号化方式のキーを生成する例示的な方法のフロー図である。
【図１０】関係近似暗号化方式を使用して第１の平文ベクトルを暗号化する例示的な方法のフロー図である。
【図１１】第１の線形暗号文を復号化する例示的な方法のフロー図である。
【図１２】第１の線形暗号文を復号化する別の例示的な方法のフロー図である。
【図１３】別の例示的な動作環境のブロック図である。
【図１４】不均一分散データを関係暗号化方式を使用して暗号化する例示的な方法のフロー図である。
【図１５】不均一分散データを処理する例示的な方法のフロー図である。
【図１６】別の例示的な動作環境のブロック図である。
【図１７】関係暗号化方式を利用する例示的な方法のフロー図である。
【図１８Ａ】関係暗号化方式を初期化し利用する例示的な方法のフロー図である。
【図１８Ｂ】関係暗号化方式を初期化し利用する例示的な方法のフロー図である。
【発明を実施するための形態】
【００１０】
添付図面に示された環境及び方法は全て、本願明細書に記載の少なくとも１つの実施形態に従って構成されている。
【００１１】
生体認証の課題は、認証の基礎として使用されるバイオメトリック特徴をユーザが変更できないことであり得る。例えば、ユーザは、ユーザの指紋又はユーザの虹彩パターンのようなユーザの１又は複数の固有の特徴を表すバイオメトリックデータを含むバイオメトリックテンプレートを登録しても良い。バイオメトリックテンプレートが危険に晒される場合、ユーザは、バイオメトリックテンプレートにより表される固有の特徴を変更することができない。したがって、一旦、危険に晒されると、別のバイオメトリックテンプレートが登録されても良く、又は、別のバイオメトリック特徴のバイオメトリックテンプレートが登録されても良い。少なくともこの理由から、生体認証システムは、強力なプライバシ保証の利益を享受し得る。現実のバイオメトリックデータでは、バイオメトリックデータが、著しく不均一であり得る。
【００１２】
幾つかの生体認証システムでは、セキュアな生体認証システムを提供するために種々のアプローチが実施されてきた。例えば、幾つかの生体認証システムは、「特徴変換アプローチ」、「バイオメトリック暗号システムアプローチ」、及び／又は「同形暗号化アプローチ」を実装する。しかしながら、これらのアプローチの各々は、バイオメトリックテンプレート、クライアント固有キー、公開キー等のような各々が危険に晒され得る情報の通信を少なくとも部分的な理由として、限られたプライバシ及びセキュリティを提供する。
【００１３】
したがって、本願明細書で議論する幾つかの実施形態は、プライバシ保護生体認証に関連する。プライバシ保護生体認証は、関係暗号化に基づいても良い。関係暗号化は、認証側に平文を復元させずに又は本物の暗号文と特定の関係を有する不正暗号文を生成させずに、認証側に暗号文間の関係を発見させる。例えば、例示的な実施形態は、生体認証の方法を含む。この方法は、登録入力を受信することを含んでも良い。登録入力は、ユーザの第１のバイオメトリックテンプレートを含んでも良い。第１のバイオメトリックテンプレートは、ユーザのバイオメトリック特徴の固有の特徴を表していても良い。この方法は、関係暗号化方式に従って、第１の線形（ｌｉｎｅａｒｉｔｙ）暗号文及び第１の近似（ｐｒｏｘｉｍｉｔｙ）暗号文を生成することを含んでも良い。この方法は、第１の線形暗号文及び第１の近似暗号文を認証サーバに通信することを含んでも良い。この方法は、チャレンジ入力を受信することを含んでも良い。チャレンジ入力は、第２のバイオメトリックテンプレートを含んでも良い。第２のバイオメトリックテンプレートは、ユーザのバイオメトリック特徴の１又は複数の固有の特徴を表していても良い。この方法は、関係暗号化方式に従って、第２の線形暗号文及び第２の近似暗号文を生成することを含んでも良い。この方法は、第２の線形暗号文及び第２の近似暗号文を認証サーバに通信することを含んでも良い。認証サーバは、第１の線形暗号文と第２の線形暗号文との間の線形関係を発見し、第１の近似暗号文と第２の近似暗号文との間の近似を検出しても良い。この方法は、認証サーバから、認証判断を示す信号を受信することを含んでも良い。この認証判断は、線形関係及び／又は近似の存在又は不存在に基づいても良い。
【００１４】
幾つかの実施形態では、基礎データが、線形暗号文又は近似暗号文を生成する前に、先ず処理されても良い。例えば、基礎データは、基礎にある平文の中のランダム化レベルを提供し得る線形抽出器に通されても良い。
【００１５】
本開示の実施形態を、添付の図面を参照して以下に説明する。
【００１６】
図１は、本願明細書に記載の少なくとも１つの実施形態に従って構成された例示的な動作環境１００のブロック図を示す。動作環境１００では、関係暗号化が実行されても良い。関係暗号化は、第１のエンティティ１５２が、第２のエンティティ１５０により提供される２以上の暗号文の間の１又は複数の関係を決定できるようにする暗号プリミティブを含んでも良い。特に、関係暗号化は、第１のエンティティ１５２に２以上の暗号文間の線形関係を発見させ、２以上の暗号文間の近似を検出させる。さらに、関係暗号化は、第１のエンティティ１５２に暗号文から平文を復元させず、又は特定の本物の暗号文と特定の関係を有する不正暗号文を構築させない。
【００１７】
関係暗号化は、種々の環境において実装されても良い。例えば、関係暗号化は、個人が自分の位置を非公開に保ちたいと望む社会環境において実施されても良いが、半ば信頼されたサービスは、位置間の近似の検出を可能にし得る。さらに、関係暗号化は、画像比較環境において実施されても良い。近似は、画像間の類似性を決定するために、データベースからの画像間で検出されても良い。画像のプライバシは維持され得る。ユーザは、データベースにある画像に触れずに、関係暗号化を使用して画像を検索しても良い。さらに、関係暗号化は、私的データ記憶環境において実施されても良い。ユーザは、そのデータを暗号化し、暗号化されたデータをデータベースに通信しても良い。分析（例えば記憶、クラスタリング等）は、暗号化されたデータが復号化されるリスクを伴わずに、暗号化されたデータに対して実行され得る。
【００１８】
例えば、第２のエンティティ１５０は、第１の平文ベクトル１４２Ａ及び第２の平文ベクトル１４２Ｂ（通常、平文ベクトル１４２又は複数の平文ベクトル１４２）を受信しても良い。平文ベクトル１４２は、バイオメトリックテンプレート、位置情報等のような任意のデータセットを含んでも良い。第２のエンティティ１５０は、第１の平文ベクトル１４２Ａの暗号化されたバージョンを含む第１の暗号文を、第１のエンティティ１５２に通信しても良い。後に、第２のエンティティ１５０は、第２の平文ベクトル１４２Ｂの暗号化されたバージョンを含む第２の暗号文を、第１のエンティティ１５２に通信しても良い。第１のエンティティ１５２は、第１の暗号文と第２の暗号文との間に線形関係があるか否かを発見しても良く、第１の暗号文と第２の暗号文との間の近似を検出しても良い。幾つかの実施形態では、近似が、ハミング距離に関するものであっても良い。
【００１９】
しかしながら、関係暗号化は、第１のエンティティ１５２が、第１及び第２の暗号文から平文ベクトル１４２を構築することを許さない。さらに、関係暗号化は、第１のエンティティ１５２が、第１の暗号文及び／又は第２の暗号文との特定の線形関係及び／又は特定の近似を含む第３の暗号文を構築することを許さない。図１は、２つの平文ベクトル１４２、したがって２つの暗号文を含む実施形態を示す。幾つかの実施形態では、２つよりも多い平文ベクトル１４２、したがって２つよりも多い暗号文が動作環境１００に含まれても良い。
【００２０】
関係暗号化は、１又は複数の関係キーを含んでも良い。関係キーは、公開及び／又は署名キーと同様であっても良く、第１のエンティティ１５２に提供され又は第１のエンティティ１５２により生成されても良い。関係キーは、暗号文間の関係の決定を可能にし得るが、暗号文の復号化又は平文ベクトル１４２の復元を許さない。さらに、関係キーは、特定の暗号文と特定の関係を有する暗号文の構築を許さない。
【００２１】
幾つかの実施形態では、関係暗号化が、アルゴリズムのタプルを含む関係について、関係暗号化方式に従って定められても良い。それらのアルゴリズムは、キー生成アルゴリズム、第１の暗号化アルゴリズム、第１の復号化アルゴリズム、第１の暗号化アルゴリズム、第２の復号化アルゴリズム及び検証アルゴリズムを含んでも良い。その関係は、３つの集合の部分集合として定められても良い。さらに、これらの関係及びアルゴリズムは、１又は複数の正確性条件を満たしても良い。例えば、この関係は、以下の例示的な正確性条件を満たしても良い。
Ｒ⊆Ｘ×Ｙ×Ｚ
（ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ）←ＫｅｙＧｅｎ（１λ）
ｃｘ←ＥｎｃＸ（ｐｋｘ，ｘ）
ｃｙ←ＥｎｃＹ（ｐｋｙ，ｙ）
ｂ←Ｖｅｒｉｆｙ（ｓｋＲ，ｃｘ，ｃｙ，ｚ）
ｂ≒Ｒ（ｘ，ｙ，ｚ）
これらの正確性条件では、Ｒが関係を表す。演算子⊆は、部分集合演算子を表す。パラメータＸ、Ｙ及びＺは集合を表す。パラメータｘは、第１の平文ベクトル１４２Ａを表す。パラメータｙは、第２の平文ベクトル１４２Ｂを表す。ＫｅｙＧｅｎは、キー生成アルゴリズムを表す。ＥｎｃＸは、第１の暗号化アルゴリズムを表す。ＥｎｃＹは、第２の暗号化アルゴリズムを表す。Ｖｅｒｉｆｙは、検証アルゴリズムを表す。演算子←は、出力演算子を表す。パラメータｐｋｘは、第１の公開キーを表す。パラメータｐｋｙは、第２の公開キーを表す。パラメータｓｋｘは、第１の秘密キーを表す。パラメータｓｋｙは、第２の秘密キーを示す。パラメータｓｋＲは、関係秘密キーを表す。パラメータｃｘは、第１の暗号文を表す。パラメータｃｙは、第２の暗号文を表す。パラメータｂは、検証アルゴリズムによる出力を表す。パラメータλは、セキュリティパラメータを表す。パラメータｚは、検証エンティティにより選択され得る特定の値を表す。演算子≒は合致（ｃｏｎｇｒｕｅｎｃｙ）演算子を表す。これらの正確性条件では、検証アルゴリズムからの出力が、圧倒的確率で関係と合致する。
【００２２】
関係暗号化方式は、関係キーが、特定の暗号文と特定の関係を有する暗号文の構築を許さず、特定の暗号文からの平文ベクトル１４２Ａの復元を許さない、という意味でセキュアであり得る。例えば、関係暗号化方式は、以下の表現が保たれる場合にセキュアであり得る。
１．ＫｅｙＧｅｎ（１λ）を行うアルゴリズムをＫｘ（１λ）として、出力（ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ）及び出力（ｐｋｘ，ｓｋｘ）を取り入れる。その結果、（Ｋｘ，ＥｎｃＸ，ＤｅｃＸ）はＩＮＤ−ＣＰＡセキュアである。
２．ＫｅｙＧｅｎ（１λ）を行うアルゴリズムをＫｙ（１λ）として、出力（ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ）及び出力（ｐｋｘ，ｓｋｘ）を取り入れる。その結果、（Ｋｙ，ＥｎｃＹ，ＤｅｃＹ）はＩＮＤ−ＣＰＡセキュアである。
３．ＫｅｙＧｅｎ（１λ）を行うアルゴリズムをＫＲ（１λ）として、出力（ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ）及び出力（ｐｋｘ，ｓｋｘ，ｓｋＲ）を取り入れる。その結果、ＥｎｃＸ（ｐｋｘ，・）及びＥｎｃＹ（ｐｋｙ，・）は、ｓｋＲが分かる場合に、一方向性関数である。
上述の表現において、ｐｋｘ、ｓｋｘ、ｐｋｙ、ｓｋｙ、ｓｋＲ、ＫｅｙＧｅｎ、ＥｎｃＸ（）、λ及びＥｎｃＹ（）は上述の通りである。ＤｅｃＸは、第１の復号化アルゴリズムを表す。ＤｅｃＹは、第２の復号化アルゴリズムを表す。Ｋｘ（）、Ｋｙ（）及びＫＲ（）は、上の表現において説明した通りである。記号・は任意の値を示す。用語「ＩＮＤ−ＣＰＡ」は、「選択された平文攻撃下での識別不可能性（ｉｎｄｉｓｔｉｎｇｕｉｓｈａｂｉｌｉｔｙ  ｕｎｄｅｒ  ｃｈｏｓｅｎ−ｐｌａｉｎｔｅｘｔ  ａｔｔａｃｋ）」の略である。他の幾つかの実施形態では、（Ｋｙ，ＥｎｃＹ，ＤｅｃＹ）及び／又は（Ｋｘ，ＥｎｃＸ，ＤｅｃＸ）が、「選択された暗号文攻撃下での識別不可能性（ｉｎｄｉｓｔｉｎｇｕｉｓｈａｂｉｌｉｔｙ  ｕｎｄｅｒ  ｃｈｏｓｅｎ  ｃｉｐｈｅｒｔｅｘｔ  ａｔｔａｃｋ）」（例えばＩＮＤ−ＣＣＡ１又はＩＮＤ−ＣＣＡ２）又は任意の他の適切なセキュリティメトリックのような別の計算セキュリティメトリックに従ってセキュアであっても良い。
【００２３】
さらに、幾つかの実施形態では、関係暗号化方式が、関係線形暗号化方式を含んでも良い。関係線形暗号化方式は、以下の例示的な線形関係式に従って関係を定めても良い。
（外１）
2017207751.tif 000003
【００２４】
この線形関係式において、Ｒ、ｘ、ｙ及びｚは上述の通りである。演算子∈は、メンバーシップ演算子を表す。演算子｜は、ｓｕｃｈ  ｔｈａｔ演算子を表す。演算子∧は、論理結合演算子を表す。パラメータＦは体を表す。上付き添字ｎは通常、体の次元を表す。体の次元は、本願明細書の別の場所で議論するようなキーのうちの１又は複数のキーの長さを含んでも良い。下付き添字ｐは、体の基本数（ｂａｓｅ−ｎｕｍｂｅｒ）を表す。例えば、
（外２）
2017207751.tif 000004
では、体が次元１０及び基本数３を含む。基本数３は、体の各々の要素が０、１又は２であることを示す。
【００２５】
さらに、幾つかの実施形態では、関係暗号化方式が、以下の例示的な近似式に従って関係を定める関係近似暗号化方式を含んでも良い。
（外３）
2017207751.tif 000005
この近似式において、Ｒ、ｘ、∧、∈及びｙは上述の通りである。パラメータδは、近さ（ｃｌｏｓｅｎｅｓｓ）を定める距離を表す。演算子ｄｉｓｔはハミング距離を表す。線形関係式におけるように、パラメータＦは体を表す。しかしながら、この近似式における体は、線形関係式における体とは異なる次元を含んでも良い。この近似式における体の次元は、線形誤り訂正符号に関連しても良い。
【００２６】
本願明細書で議論する関係暗号化方式は、図１の動作環境１００において実施されても良い。関係暗号化方式は、第２のエンティティ１５０が、暗号化された情報を第１のエンティティ１５２へ通信することを可能にし、第１のエンティティ１５２が、暗号化された情報間の線形関係を発見し、且つ／又は暗号化情報間の近似を決定することを可能にしても良い。
【００２７】
動作環境１００は、第２のエンティティ１５０に関連付けられるユーザ装置１０２と、第１のエンティティ１５２に関連付けられる認証サーバ１４０とを含んでも良い。ユーザ装置１０２及び認証サーバ１４０は、関係暗号化を実行するために、動作環境１００の中に実装されても良い。
【００２８】
ユーザ装置１０２及び認証サーバ１４０は、概して、関係暗号化に関連する情報及び／又はデータ（例えば、暗号文、キー、平文ベクトル１４２Ａ等）の生成、及びネットワーク１０７を介した通信を可能にする任意のコンピューティング装置を含んでも良い。ユーザ装置１０２の幾つかの例は、携帯電話機、スキャニング装置、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、セットトップボックス又はコネクテッドデバイス（例えば、スマートウォッチ、スマート眼鏡、スマート歩数計又は任意の他のコネクテッドデバイス）を含んでも良い。認証サーバ１４０の幾つかの例は、ハードウェアサーバ、又はサーバとして機能するように構成された別のプロセッサに基づくコンピューティング装置を含んでも良い。
【００２９】
ネットワーク１０７は有線又は無線であっても良い。ネットワーク１０７は、スター構成、トークンリング構成又は他の構成を含む多数の構成を含んでも良い。さらに、ネットワーク１０７は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）（例えばインターネット）、及び／又は複数の装置が通信できる相互接続された他のデータ経路を含んでも良い。幾つかの例では、ネットワーク１０７が、ピアツーピアネットワークを含んでも良い。ネットワーク１０７はさらに、種々の異なる通信プロトコルでデータを送信する通信ネットワークに結合され、又はそのような通信ネットワークの一部を含んでも良い。幾つかの例では、ネットワーク１０７が、ＢＬＵＥＴＯＯＴＨ（登録商標）通信ネットワーク、又はショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキストトランスファプロトコル（ＨＴＴＰ）、直接データ接続、ワイヤレスアプリケーションプロトコル（ＷＡＰ）、電子メール等を介することを含むデータを送信及び受信するセルラ通信ネットワークを含む。
【００３０】
ユーザ装置１０２は、関係暗号化／復号化モジュール（ｅｎｃ／ｄｅｃモジュール）１１０、プロセッサ１２４Ａ、メモリ１２２Ａ及び通信ユニット１２６Ａを含んでも良い。ｅｎｃ／ｄｅｃモジュール１１０、プロセッサ１２４Ａ、メモリ１２２Ａ及び通信ユニット１２６Ａは、バス１２０Ａにより結合されても良い。認証サーバ１４０は、関係認証モジュール１０８、プロセッサ１２４Ｂ、メモリ１２２Ｂ及び通信ユニット１２６Ｂを含んでも良い。関係認証モジュール１０８、プロセッサ１２４Ｂ、メモリ１２２Ｂ及び通信ユニット１２６Ｂは、バス１２０Ｂにより結合されても良い。
【００３１】
プロセッサ１２４Ａ及び１２４Ｂは、本願明細書では概してプロセッサ１２４又は複数のプロセッサ１２４と表され、メモリ１２２Ａ及び１２２Ｂは、本願明細書では概してメモリ１２２と表され、通信ユニット１２６Ａ及び１２６Ｂは、本願明細書では概して通信ユニット１２６又は複数の通信ユニット１２６と表され、バス１２０Ａ及び１２０Ｂは、本願明細書では概してバス１２０又は複数のバス１２０と表される。
【００３２】
プロセッサ１２４は、計算及びプライバシ保護を実行するための算術論理ユニット（ＡＬＵ）、マイクロプロセッサ、汎用コントローラ、又は何らかの他のプロセッサアレイを含んでも良い。プロセッサ１２４は、他のコンポーネント（例えば、１０８、１１０、１２２及び１２６）との通信のためにバス１２０に結合されても良い。プロセッサ１２４は、概して、データ信号を処理する。プロセッサ１２４は、複雑命令セットコンピュータ（ＣＩＳＣ）アーキテクチャ、縮小命令セットコンピュータ（ＲＩＳＣ）アーキテクチャ、又は命令セットの組合せを実施するアーキテクチャを含む、種々のコンピューティングアーキテクチャを含んでも良い。図１では、ユーザ装置１０２及び認証サーバ１４０が各々、単一のプロセッサ１２４を含んでも良い。しかしながら、ユーザ装置１０２及び／又は認証サーバ１４０は、複数のプロセッサを含んでも良い。他のプロセッサ、オペレーティングシステム及び物理構成も可能であり得る。
【００３３】
メモリ１２２は、プロセッサ１２４のうちの１又は複数により実行され得る命令及び／又はデータを格納するように構成されても良い。メモリ１２２は、他のコンポーネントと通信するためにバス１２０に結合されても良い。それらの命令及び／又はデータは、本願明細書に記載の技術又は方法を実行するコードを含んでも良い。メモリ１２２は、ＤＲＡＭ素子、ＳＲＡＭ素子、フラッシュメモリ又は何らかの他のメモリ素子を含んでも良い。幾つかの実施形態では、メモリ１２２がさらに、不揮発性メモリ、又はハードディスクドライブ、フロッピディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置、若しくは従来知られているよりも永久的に情報を格納する何らかの他の大容量記憶装置を含む同様の永久記憶装置及び媒体を含んでも良い。
【００３４】
通信ユニット１２６は、ユーザ装置１０２及び／又は認証サーバ１４０へデータを送信し、ユーザ装置１０２及び／又は認証サーバ１４０のうちの１又は複数からデータを受信するように構成されても良い。通信ユニット１２６はバス１２０に結合されても良い。幾つかの実施形態では、通信ユニット１２６が、ネットワーク１０７への又は別の通信チャネルへの直接物理接続のためのポートを含む。例えば、通信ユニット１２６は、ＵＳＢ、ＳＤ、ＣＡＴ−５、又は図１の動作環境１００のコンポーネントとの有線通信のための同様のポートを含んでも良い。幾つかの実施形態では、通信ユニット１２６が、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、ＢＬＵＥＴＯＯＴＨ（登録商標）又は別の適切な無線通信方法を含む１又は複数の無線通信方法を使用して通信チャネルによりデータを交換する無線送受信装置を含む。
【００３５】
幾つかの実施形態では、通信ユニット１２６が、ＳＭＳ、ＭＭＳ、ＨＴＴＰ、直接データ接続、ＷＡＰ、電子メール又は別の適切な種類の電子通信を含むセルラ通信ネットワークを介してデータを送信及び受信するセルラ通信送受信装置を含む。幾つかの実施形態では、通信ユニット１２６が、有線ポート及び無線送受信装置を含む。通信ユニット１２６はさらに、トランスミッションコントロールプロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ＨＴＴＰ、ＨＴＴＰセキュア（ＨＴＴＰＳ）及びシンプルメールトランスファプロトコル（ＳＭＴＰ）等を含む標準ネットワークプロトコルを使用したファイル及び／又は媒体オブジェクトの分配のために、ネットワーク１０７への他の接続を提供しても良い。
【００３６】
ｅｎｃ／ｄｅｃモジュール１１０は、上で定めた関係暗号化方式、又は上で議論した特徴のうちの１若しくは複数を有する関係暗号化方式のような関係暗号化方式を設定するように構成されても良い。ｅｎｃ／ｄｅｃモジュール１１０は、次に、平文ベクトル１４２を受信し、平文ベクトル１４２を暗号化し、ネットワーク１０７を介して認証サーバ１４０へ暗号文を通信しても良い。さらに、ｅｎｃ／ｄｅｃモジュール１１０は、平文ベクトル１４２のうちの１又は複数を構築するために、暗号文を復号化するように構成されても良い。暗号化及び／又は復号化処理を実行するようにｅｎｃ／ｄｅｃモジュール１１０が構成される実施形態では、ｅｎｃ／ｄｅｃモジュール１１０が、本願明細書で議論する暗号化／復号化アルゴリズム及び／又は暗号化／復号化キーを使用して、暗号化及び／又は復号化処理を実行しても良い。
【００３７】
関係暗号化方式を設定するようにｅｎｃ／ｄｅｃモジュール１１０が構成される実施形態では、ｅｎｃ／ｄｅｃモジュール１１０が、１若しくは複数の関係秘密キー及び／又は１若しくは複数の検証アルゴリズムを、認証サーバ１４０の関係認証モジュール１０８へ通信するように構成されても良い。他の実施形態では、関係認証モジュール１０８が、関係秘密キー及び／若しくは検証アルゴリズムをローカルに生成しても良く、且つ／又は関係秘密キー若しくは検証アルゴリズムを他のソースから得ても良い。
【００３８】
関係認証モジュール１０８は、暗号文、関係秘密キー、検証アルゴリズム又はそれらの何らかの組合せを、ｅｎｃ／ｄｅｃモジュール１１０又は別のソースから受信するように構成されても良い。関係認証モジュール１０８は、次に、暗号文間の線形関係を発見しても良く、且つ／又は暗号文間の近似を検出しても良い。関係認証モジュール１０８は、関係秘密キー及び／又は検証アルゴリズムを使用して、暗号文間の線形関係を発見し及び近似を検出しても良い。
【００３９】
図１の動作環境１００では、ｅｎｃ／ｄｅｃモジュール１１０が、線形暗号化／復号化モジュール１１２、近似暗号化／復号化モジュール１１４、通信モジュール１１６及び設定モジュール１１４を含んでも良い。さらに、関係認証モジュール１０８は、サーバ通信モジュール１３４、線形認証モジュール１３２及び近似認証モジュール１２８を含んでも良い。幾つかの実施形態では、設定モジュール１４４、又は設定モジュール１４４に属する１若しくは複数の動作を実行するように構成されたモジュールが、関係認証モジュール１０８に含まれても良い。
【００４０】
ｅｎｃ／ｄｅｃモジュール１１０、線形暗号化／復号化モジュール１１２、近似暗号化／復号化モジュール１１４、通信モジュール１１６、設定モジュール１４４、関係認証モジュール１０８、サーバ通信モジュール１３４、線形認証モジュール１３２及び近似認証モジュール１２８は、集合的に、関係モジュールと表されても良い。関係モジュールのうちの１又は複数は、本願明細書に記載の１又は複数の動作を実行するように構成された１又は複数のルーチンを含むソフトウェアとして実装されても良い。関係モジュールは、本願明細書に記載された機能を提供するためにプロセッサ１２４により実行可能な命令セットを含んでも良い。幾つかの例では、関係モジュールが、メモリ１２２に格納され又は少なくとも一時的にメモリ１２２にロードされても良く、プロセッサ１２４のうちの１又は複数によりアクセス可能及び実行可能であっても良い。関係モジュールのうちの１又は複数は、バス１２０のうちの１又は複数を介してプロセッサ１２４のうちの１又は複数と協力及び通信するように適合されても良い。
【００４１】
概して関係モジュールを参照すると、通信モジュール１１６及び／又はサーバ通信モジュール１３４は、それぞれ、ｅｎｃ／ｄｅｃモジュール１１０又は関係認証モジュール１０８とユーザ装置１０２又は認証サーバ１４０の他のコンポーネント（例えば１２２、１２４及び１２６）との間の通信を扱うように構成されても良い。通信モジュール１１６及び／又はサーバ通信モジュール１３４は、通信ユニット１２６を介して、ユーザ装置１０２又は認証サーバ１４０へデータを送信し、ユーザ装置１０２又は認証サーバ１４０からデータを受信するように構成されても良い。幾つかの例では、通信モジュール１１６及び／又はサーバ通信モジュール１３４が、ユーザ装置１０２又は認証サーバ１４０からのデータを通信ユニット１２６を介して受信及び／又は転送するために、他の関係モジュールと協力しても良い。
【００４２】
線形暗号化／復号化モジュール１１２は、線形暗号文を構築するために平文ベクトル１４２を暗号化することに関連する１若しくは複数の動作、及び／又は線形暗号文を復号化することに関連する１又は複数の動作を実行するように構成されても良い。線形認証モジュール１３２は、線形暗号文に関連する１又は複数の動作を実行するように構成されても良い。例えば、線形認証モジュール１３２は、線形暗号文のうちの２以上の線形暗号文間の線形関係を発見するように構成されても良い。
【００４３】
近似暗号化／復号化モジュール１１４は、近似暗号文を構築するために平文ベクトル１４２を暗号化することに関連する１若しくは複数の動作、及び／又は近似暗号文を復号化することに関連する１又は複数の動作を実行するように構成されても良い。近似認証モジュール１２８は、近似暗号文に関連する１又は複数の動作を実行するように構成されても良い。例えば、近似認証モジュール１２８は、近似暗号文のうちの２以上の近似暗号文間の近似を検出するように構成されても良い。
【００４４】
設定モジュール１４４は、１若しくは複数のキー（例えば、公開キー、秘密キー、関係秘密キー）及び／又は１若しくは複数のアルゴリズム（例えば、暗号化アルゴリズム、復号化アルゴリズム及び検証アルゴリズム）を生成するように構成されても良い。設定モジュール１４４は、次に、キー及びアルゴリズムのうちの１又は複数を、通信モジュール１１６及びサーバ通信モジュール１３４により関係認証モジュール１０８に通信し、又は線形暗号化／復号化モジュール１１２及び近似暗号化／復号化モジュール１１４に通信しても良い。
【００４５】
以下のセクションでは、関係線形暗号化方式に続き、関係近似暗号化方式が説明される。関係線形暗号化方式は、ビットベクトルを参照して、次にｐ−ａｒｙベクトルを参照して説明される。説明の各々において、設定モジュール１４４はキーを生成する。これは最初に説明される。それらのキーを使用して、線形暗号化／復号化モジュール１１２又は近似暗号化／復号化モジュール１１４のうちの一方が暗号化を実行する。これは、次に説明される。暗号文（例えば、線形暗号文又は近似暗号文）は、次に、線形関係が発見され又は近似が検出される、線形認証モジュール１３２と近似認証モジュール１２８のうちの一方に通信されても良い。最後に、線形暗号化／復号化モジュール１１２又は近似暗号化／復号化モジュール１１４により実行され得る暗号文の復号化が説明される。
【００４６】
関係線形暗号化方式
暗号文間の線形関係を発見する際に含まれる１又は複数の演算では、設定モジュール１４４が、平文ベクトル１４２及び／又は暗号文の要素の基本数に少なくとも部分的に基づき得るキーを出力しても良い。例えば、それらの要素の基本数は、２を含んでも良い（例えばバイナリベクトル又はビットベクトル）。したがって、平文ベクトル１４２及び暗号文は、０又は１を含む要素を含んでも良い。代替で、要素の基本数は、３を含んでも良い（例えばｔｒｉ−ａｒｙベクトル）。したがって、平文ベクトル１４２及び暗号文は、０、１、又は２を含む要素を含んでも良い。概して、基本数は、変数「ｐ」により表され得る（例えばｐ−ａｒｙベクトル）。ｐ−ａｒｙベクトルは、０、１、．．．、ｐ−２及びｐ−１を含む要素を含んでも良い。関係線形暗号化方式は、平文ベクトル１４２及び／又は暗号文がビットベクトルであるのか又はｐ−ａｒｙベクトルであるのかに基づき、僅かに異なる。先ず、ビットベクトルの関係線形暗号化方式が議論され、次に、ｐ−ａｒｙベクトルの関係線形暗号化方式が続く。
【００４７】
ビットベクトル及びｐ−ａｒｙベクトルの関係線形暗号化方式では、設定モジュール１４４が、関係線形暗号化方式のキーを生成するように構成されても良い。図示の実施形態では、設定モジュール１４４が、第１の線形秘密キー、第２の線形秘密キー、第１の線形公開キー、第２の線形公開キー及び線形関係秘密キー（集合的に「線形キー」）を生成しても良い。線形キーは、平文ベクトル１４２を暗号化するため、線形暗号文を生成するため、線形暗号文を復号化するため、及び線形暗号文間の線形関係を発見するために使用されても良い。
【００４８】
例えば、第１の線形公開キーは、第１の平文ベクトル１４２Ａを暗号化して第１の線形暗号文を生成するために、線形暗号化／復号化モジュール１１２により使用されても良い。第１の線形暗号文は、通信モジュール１１６により認証サーバ１４０に通信されても良い。第１の線形暗号文は、登録暗号文１３０として認証サーバ１４０に格納されても良い。第２の線形公開キーは、第２の平文ベクトル１４２Ｂを暗号化して第２の線形暗号文を生成するために、線形暗号化／復号化モジュール１１２により使用されても良い。第２の線形暗号文は、通信モジュール１１６により認証サーバ１４０に通信されても良い。線形関係秘密キーは、認証サーバ１４０において、特に線形認証モジュール１３２により、第２の線形暗号文と第１の線形暗号文との間の線形関係を発見するために、使用されても良い。この線形関係は、登録暗号文１３０として格納される。
【００４９】
第１及び第２の線形秘密キーは、線形暗号化／復号化モジュール１１２により、線形暗号文のうちの１又は複数を復号化するために使用されても良い。例えば、第１の線形暗号文は、第１の秘密キーを使用して復号化されても良い。さらに、第１及び第２の線形秘密キーは、設定モジュール１４４により、関係線形キーを生成するために使用されても良い。線形キー及び上述の演算の幾つかの追加の詳細事項が、ビットベクトル及びｐ−ａｒｙベクトルについて以下に提供される。
【００５０】
ビットベクトル関係線形暗号化方式
ビットベクトルが実装される実施形態では、線形キーが、セキュリティパラメータに対して生成されても良い。概して、本願明細書で使用されるセキュリティパラメータは、キー長を表しても良い。キーを生成するために、設定モジュール１４４は、素数位数の３つの双線形群（ｔｈｒｅｅ  ｂｉｌｉｎｅａｒ  ｇｒｏｕｐｓ  ｏｆ  ａ  ｐｒｉｍｅ  ｏｒｄｅｒ）を生成しても良い。素数位数は、セキュリティパラメータにおける指数であっても良い。設定モジュール１４４は、３つの双線形群のうちの第１の双線形群の第１の生成元をサンプリングし、３つの双線形群のうちの第２の双線形群の第２の生成元をサンプリングしても良い。
【００５１】
設定モジュール１４４は、整数の集合から特定の数の要素をランダムにサンプリングすることにより、第１の線形秘密キーを生成しても良い。この整数の集合は、０から素数位数−１の値までの整数を含んでも良い。設定モジュール１４４は、整数の集合から特定の数の要素をランダムにサンプリングすることにより、第２の線形秘密キーを生成しても良い。
【００５２】
設定モジュール１４４は、第１の線形公開キーを定めても良い。第１の線形公開キーは、第１の生成元である要素を含んでも良い。第１の線形公開キーは、第１の線形秘密キーの対応する要素により冪乗された第１の生成元を含む１又は複数の他の要素をさらに含んでも良い。幾つかの実施形態では、第１の生成元である要素が、第１の線形公開キーの第１の要素であっても良い。これは、第１の線形公開キーの要素と第１の線形秘密キーの要素との間の対応において考慮されなくても良い。例えば、これらの実施形態及びその他の実施形態では、第１の線形公開キーの（例えば第１の要素を考慮する）「第６の」要素が、第１の線形秘密キーの第５の要素により冪乗された第１の生成元を含んでも良い。本願を通じて、要素間の対応について同様の規定が実施されても良い。
【００５３】
設定モジュール１４４は、第２の線形公開キーを定めても良い。第２の線形公開キーは、第２の生成元である要素を含んでも良い。第２の線形公開キーは、第２の線形秘密キーの対応する要素により冪乗された第２の生成元を含む１又は複数の他の要素をさらに含んでも良い。幾つかの実施形態では、第２の生成元である要素が、第２の線形公開キーの第１の要素であっても良い。これは、第２の線形公開キーの要素と第２の線形秘密キーの要素との間の対応において考慮されない。
【００５４】
設定モジュール１４４は、線形関係秘密キーを定めても良い。線形関係秘密キーの各々の要素は、第２の線形秘密キーの対応する要素と第１の線形秘密キーの対応する要素との和を含んでも良い。例えば、線形関係秘密キーの第５の要素は、第１の線形秘密キーの第５の要素と第２の線形秘密キーの第５の要素との和を含んでも良い。
【００５５】
幾つかの実施形態では、線形キーの生成が、以下の例示的な線形ビットベクトルキー式に従っても良い。
λが与えられると、ｑのＧ１、Ｇ２、ＧＴを生成する。
（外４）
2017207751.tif 000006
この線形ビットベクトルキー式において、←及びλは、概して上述の通りである。さらに、この線形ビットベクトルキー式において、ｐｋｘｌｉｎは第１の線形公開キーを表し、ｓｋｘｌｉｎは第１の線形秘密キーを表し、ｐｋｙｌｉｎは第２の線形公開キーを表し、ｓｋｙｌｉｎは第２の線形秘密キーを表し、ｓｋＲｌｉｎは関係線形キーを表す。さらに、パラメータｐｋｘｌｉｎ、ｓｋｘｌｉｎ、ｐｋｙｌｉｎ、ｓｋｙｌｉｎ及びｓｋＲｌｉｎは、上で議論したキー生成アルゴリズム（ＫｅｙＧｅｎ）の出力の少なくとも１つの線形部分を表しても良い。
【００５６】
パラメータＧ１は第１の双線形群を表し、パラメータＧ２は第２の双線形群を表し、パラメータＧＴは第３の双線形群を表す。パラメータｑは素数位数を表す。パラメータｇ０は、第１の生成元及び第１の線形公開キーの要素を表す。パラメータｈ０は、第２の生成元及び第２の線形公開キーの要素を表す。パラメータｇｉは、第１の線形公開キーの他の要素を表す。パラメータｈｉは、第２の線形公開キーの他の要素を表す。パラメータｎは、特定の数（例えば要素の特定の数）を表す。パラメータｉは、インデックス変数を表す。この線形ビットベクトルキー式では、インデックス変数が、１からこの特定の数までの範囲を含む。パラメータＺｑは、０から素数位数−１までの整数を含む整数の集合を表す。パラメータａｉは、第１の線形秘密キーの要素を表す。第１の線形秘密キーの要素は、整数の集合のランダム値であっても良い。パラメータｂｉは、第２の線形秘密キーの要素を表す。第２の線形秘密キーの要素は、整数の集合のランダム値であっても良い。演算子〈〉は略記法を表す。例えば、
（外５）
2017207751.tif 000007
【００５７】
線形暗号化／復号化モジュール１１２は、平文ベクトル１４２を暗号化しても良い。線形暗号化／復号化モジュール１１２は、平文ベクトル１４２を受信しても良い。追加又は代替で、通信モジュール１１６が平文ベクトル１４２を受信し、その平文ベクトル１４２を、線形暗号化／復号化モジュール１１２に通信しても良い。
【００５８】
平文ベクトル１４２は、第１の体のメンバを含んでも良い。第１の体は、０及び１の要素、並びに特定の数の次元を含んでも良い。体の要素は、要素の基本数により決定されても良い。例えば、ビットベクトルでは、第１の体が、０及び１の要素を含んでも良い。一方、ｐ−ａｒｙベクトルでは、体が、０、１、．．．、ｐ−１の要素を含んでも良い。
【００５９】
線形暗号化／復号化モジュール１１２は、整数の集合から乱数をサンプリングしても良い。線形暗号化／復号化モジュール１１２は、次に、第１の線形暗号文及び第２の線形暗号文を構築しても良い。第１の線形暗号文は、乱数により冪乗された第１の生成元である第１の要素を含んでも良い。第１の線形暗号文は、線形暗号化冪指数により冪乗された第１の線形公開キーの対応する要素を含む１又は複数の要素をさらに含んでも良い。第１の線形暗号文の線形暗号化冪指数は、第１の平文ベクトル１４２Ａの対応する要素により冪乗された−１に乱数を乗じたものを含んでも良い。幾つかの実施形態では、第１の線形暗号文の第１の要素が、対応において考慮されない。
【００６０】
第２の線形暗号文は、乱数により冪乗された第２の生成元である第１の要素を含んでも良い。第２の線形暗号文は、線形暗号化冪指数により冪乗された第２の線形公開キーの対応する要素を含む１又は複数の要素をさらに含んでも良い。第２の線形暗号文の線形暗号化冪指数は、第２の平文ベクトル１４２Ｂの対応する要素により冪乗された−１に乱数を乗じたものを含んでも良い。幾つかの実施形態では、第２の線形暗号文の第１の要素が、対応において考慮されない。
【００６１】
幾つかの実施形態では、線形暗号化／復号化モジュール１１２が、以下の例示的な線形ビットベクトル暗号化式に従って、平文ベクトル１４２を暗号化しても良い。
（外６）
2017207751.tif 000008
この線形ビットベクトル暗号化式において、〈〉、ｃｘ、ｃｙ、ｇ０、ｈ０、ｇｉ、ｈｉ、ｉ及びｎは、上述の通りである。さらに、この線形ビットベクトル暗号化式では、パラメータｃｘが第１の線形暗号文を表し、パラメータｃｙが第２の線形暗号文を表す。パラメータｍ１は、第１の平文ベクトル１４２Ａを表す。パラメータｍ１ｉは、第１の平文ベクトル１４２Ａの要素を表す。パラメータｍ２は、第２の平文ベクトル１４２Ｂを表す。パラメータｍ２ｉは、第２の平文ベクトル１４２Ｂの要素を表す。パラメータＦは第１の体を表す。第１の体の隣にある下付き添字２は、第１の体の基本数を表す。第１の体の隣にある上付き添字ｎは、第１の体の次元を表す。
【００６２】
この線形ビットベクトル暗号化式は、上で議論した第１の暗号化アルゴリズム（ＥｎｃＸ）及び第２の暗号化アルゴリズム（ＥｎｃＹ）を定めても良い。例えば、第１の平文ベクトル１４２Ａ及び第１の線形公開キーが与えられた場合に、第１の暗号化アルゴリズムが乱数をサンプリングし、第１の線形暗号文を
（外７）
2017207751.tif 000009
として構築するものとして、第１の暗号化アルゴリズムが定められても良い。同様に、第１の平文ベクトル１４２Ａ及び第２の線形公開キーが与えられた場合に、第２の暗号化アルゴリズムが乱数をサンプリングし、第２の線形暗号文を
（外８）
2017207751.tif 000010
として構築するものとして、第２の暗号化アルゴリズムが定められても良い。
【００６３】
第１の線形暗号文及び第２の線形暗号文は、線形認証モジュール１３２に通信されても良い。追加又は代替で、第１の線形暗号文及び第２の線形暗号文は、ネットワーク１０７を介して認証サーバに通信されても良い。サーバ通信モジュール１３４は、第１の線形暗号文及び第２の線形暗号文を受信し、第１の線形暗号文及び第２の線形暗号文を線形認証モジュール１３２に通信しても良い。
【００６４】
幾つかの実施形態では、第１の線形暗号文が、第２の線形暗号文の通信の前に、線形認証モジュール１３２に通信されても良い。線形認証モジュール１３２は、第１の線形暗号文を登録暗号文１３０としてメモリ１２２Ｂに格納しても良い。第１の線形暗号文を通信した後に、第２の線形暗号文が、線形認証モジュール１３２に通信されても良い。さらに、設定モジュール１４４は、関係線形キーを線形認証モジュール１３２に通信しても良い。
【００６５】
認証のために関係暗号化が使用される幾つかの実施形態では、第１の線形暗号文が、登録暗号文１３０として格納されても良い。登録暗号文１３０は、第２の線形暗号文又は任意の他の後続の線形暗号文との比較の基礎として使用されても良い。関係暗号化を実施する他の実施形態では、第１の線形暗号文が、登録暗号文１３０として格納されなくても良い。例えば、第１の線形暗号文及び第２の線形暗号文は、格納されずに分析されても良く、又は両者ともに格納されても良い。
【００６６】
線形認証モジュール１３２は、第１の線形暗号文と第２の線形暗号文との間の線形関係を発見するように構成されても良い。線形関係を発見するために、線形認証モジュール１３２は、特定のベクトルを定めても良い。この特定のベクトルは、第１の体のメンバであっても良い。線形認証モジュール１３２により決定される認証問題は、その特定のベクトルが、第１の平文ベクトル１４２Ａと第２の平文ベクトル１４２Ｂとの和であるかどうかを判断することであっても良い。
【００６７】
線形認証モジュール１３２は、第１の線形暗号文の第１の要素（例えば、乱数により冪乗された第１の生成元）と第２の線形暗号文の第１の要素（例えば、乱数により冪乗された第２の生成元）とのペアリング関数を、線形関係秘密キーにより冪乗したものとして、第１の値を計算しても良い。
【００６８】
線形認証モジュール１３２はさらに、第１の線形暗号文のそれぞれの要素と第２の線形暗号文の対応する要素とのペアリング関数を、特定のベクトルの対応する要素により冪乗された−１により冪乗したものの積として、第２の値を計算しても良い。
【００６９】
線形認証モジュール１３２は、第１の値が第２の値に等しいか否かを判定しても良い。第１の値が第２の値に等しいことに応答して、線形認証モジュール１３２は、第１の線形暗号文が、第２の線形暗号文及び定められたベクトルと線形関係にあると結論づけても良い。
【００７０】
幾つかの実施形態では、線形認証モジュール１３２が、以下の例示的な線形ビットベクトル検証式に従って、第１の線形暗号文と第２の線形暗号文との間の線形関係を発見する。
（外９）
2017207751.tif 000011
この線形ビットベクトル検証式において、〈〉、ｃｘ、ｃｙ、ｇ０、ｈ０、ｇｉ、ｈｉ、ｉ、ｎ、Ｆ、ｓｋＲ及びｒは、上述の通りである。パラメータｃｘ０は、第１の線形暗号文の第１の要素を表す。パラメータｃｙ０は、第２の線形暗号文の第１の要素を表す。パラメータｃｘｉは、第１の線形暗号文の他の要素を表す。パラメータｃｙｉは、第２の線形暗号文の他の要素を表す。パラメータｚは、特定のベクトルを表す。パラメータｚｉは、特定のベクトルの要素を表す。演算子ｅは、ペアリング関数を表す。このペアリング関数は双線形群に関連しても良い。演算子Πは、積演算子を表す。この線形ビットベクトル検証式は、上で議論した検証アルゴリズム（Ｖｅｒｉｆｙ）を定めても良い。例えば、この検証アルゴリズムは、暗号文、特定のベクトル及び関係線形キーが与えられた場合に、等式
（外１０）
2017207751.tif 000012
を検査するものとして定められても良い。
【００７１】
さらに、幾つかの実施形態では、線形暗号化／復号化モジュール１１２が、第１の線形暗号文及び／又は第２の線形暗号文を復号化しても良い。線形暗号化／復号化モジュール１１２は、結果として生じる平文ベクトル１４２の各々の要素を、線形暗号文の値に基づき、決定しても良い。例えば、第１の線形暗号文を復号化することにより構築される第１の平文ベクトル（例えば、第１の平文ベクトル１４２Ａ）の各々の要素について、値が決定されても良い。
【００７２】
各々の要素について、線形暗号化／復号化モジュール１１２は、（１）第１の線形暗号文中の対応する要素が、第１の線形秘密キーの対応する要素により冪乗された第１の線形暗号文の第１の要素に等しいか否か、（２）第１の線形暗号文中の対応する要素が、第１の線形秘密キーの対応する要素に−１を乗じたものにより冪乗された第１の線形暗号文の第１の要素に等しいか否か、又は（３）第１の線形暗号文中の対応する要素が別の値に等しいか否か、を判定しても良い。
【００７３】
第１の線形暗号文中の対応する要素が、第１の線形秘密キーの対応する要素により冪乗された第１の線形暗号文の第１の要素に等しいこと（例えば直前の段落の（１））に応答して、線形暗号化／復号化モジュール１１２は、第１の平文ベクトル１４２Ａの要素を０に設定しても良い。第１の線形暗号文中の対応する要素が、第１の線形秘密キーの対応する要素に−１を乗じたものにより冪乗された第１の線形暗号文の第１の要素に等しいことに応答して（例えば、直前の段落の（２））、線形暗号化／復号化モジュール１１２は、第１の平文ベクトル１４２Ａの要素を１に設定しても良い。第１の線形暗号文中の対応する要素が別の値に等しいことに応答して（例えば、直前の段落の（３））、線形暗号化／復号化モジュール１１２は、エラーを返しても良い。第２の線形秘密キー及び第２の線形暗号文を使用して、第２の線形暗号文が同様に復号化されても良い。
【００７４】
幾つかの実施形態では、線形暗号化／復号化モジュール１１２が、以下の例示的な線形ビットベクトル復号化式に従って、線形暗号文を復号化しても良い。
（外１１）
2017207751.tif 000013
この線形ビットベクトル復号化式において、ｃｘｉ、ｃｙｉ、ｃｘ０、ｃｙ０、ａｉ、ｂｉ、ｍ１ｉ及びｍ２ｉは上述の通りである。パラメータ⊥はエラーを表す。
【００７５】
この線形ビットベクトル復号化式は、上で議論した第１の復号化アルゴリズム（ＤｅｃＸ）及び第２の復号化アルゴリズム（ＤｅｃＹ）を定めても良い。例えば、第１の線形暗号文及び第１の線形秘密キーが与えられた場合に、第１の復号化アルゴリズムが、次式に従って第１の平文ベクトル１４２Ａをビットごとに構築するものとして、第１の復号化アルゴリズムが定められても良い。
（外１２）
2017207751.tif 000014
【００７６】
同様に、第２の線形暗号文及び第２の線形秘密キーが与えられた場合に、第２の復号化アルゴリズムが、次式に従って第２の平文ベクトル１４２Ｂをビットごとに構築するものとして、第２の復号化アルゴリズムが定められても良い。
（外１３）
2017207751.tif 000015
【００７７】
ｐ−ａｒｙベクトル関係線形暗号化方式
ｐ−ａｒｙベクトルが実装される（例えば平文ベクトル１４２及び／又は暗号文がｐ−ａｒｙベクトルである）実施形態では、線形キーが、セキュリティパラメータに対して生成されても良い。キーを生成するために、設定モジュール１４４は、素数位数の３つの双線形群を生成しても良い。素数位数は、セキュリティパラメータにおける指数であっても良く、１を基本数（ｐ）で割った余りに等しくても良い。したがって、これらの実施形態では、整数の集合の中に、０が除かれた部分群が存在しても良い。この部分群は、基本数の位数を有しても良い。設定モジュール１４４は、この部分群の任意の生成元を選択しても良い。
【００７８】
設定モジュール１４４は、第１の生成元及び第２の生成元をサンプリングしても良い。第１の生成元は、第１の双線形群からサンプリングされても良く、第２の生成元は、第２の双線形群からサンプリングされても良い。第１の線形秘密キー及び第２の線形秘密キーは、ビットベクトルを実装する実施形態に関して上で述べたように生成されても良い。
【００７９】
設定モジュール１４４は、第１の線形公開キーを定めても良い。第１の線形公開キーは、第１の生成元である要素を含んでも良い。第１の線形公開キーは、第１の線形秘密キーの対応する要素により冪乗された第１の生成元を含む１又は複数の他の要素をさらに含んでも良い。さらに、第１の線形公開キーの要素は、任意の生成元を含んでも良い。幾つかの実施形態では、第１の線形公開キーの第１の要素が任意の生成元であっても良く、第１の線形公開キーの第２の要素が第１の生成元であっても良い。第２の線形公開キーの第１及び第２の要素は、対応において考慮されない。
【００８０】
設定モジュール１４４は、第２の線形公開キーを定めても良い。第２の線形公開キーは、第２の生成元である要素を含んでも良い。第２の線形公開キーは、第２の線形秘密キーの対応する要素により冪乗された第２の生成元を含む１又は複数の他の要素をさらに含んでも良い。さらに、第２の線形公開キーの要素は、任意の生成元を含んでも良い。幾つかの実施形態では、第２の線形公開キーの第１の要素が任意の生成元であっても良く、第２の線形公開キーの第２の要素が第２の生成元であっても良い。第２の線形公開キーの第１及び第２の要素は、対応において考慮されない。
【００８１】
設定モジュール１４４は、線形関係秘密キーを定めても良い。線形関係秘密キーの各々の要素は、第２の線形秘密キーの対応する要素と第１の線形秘密キーの対応する要素との和を含んでも良い。
【００８２】
幾つかの実施形態では、線形キーの生成が、以下の例示的な線形ｐ−ａｒｙベクトルキー式に従っても良い。
λが与えられると、λの指数であり１（ｍｏｄ  ｐ）に等しいｑのＧ１、Ｇ２、ＧＴを生成する
（外１４）
2017207751.tif 000016
この線形ｐ−ａｒｙベクトルキー式において、〈〉、ｇ０、ｈ０、ｇｉ、ｈｉ、ａｉ、ｂｉ、ｉ、ｎ、Ｚ、Ｆ、ｓｋＲ、ｒ、Ｇ１、Ｇ２、ＧＴ、ｑ、ｐｋｘｌｉｎ、ｓｋｘｌｉｎ、ｐｋｙｌｉｎ、ｓｋｙｌｉｎ、ｓｋＲｌｉｎ、←及びλは、概して上述の通りである。パラメータｐｋｘｌｉｎ、ｓｋｘｌｉｎ、ｐｋｙｌｉｎ、ｓｋｙｌｉｎ及びｓｋＲｌｉｎは、上で議論したキー生成アルゴリズムの少なくとも１つの線形部分出力を表しても良い。
【００８３】
パラメータｐは、基本数を表す。パラメータＪｐは、位数ｐの部分群を表す。パラメータωは、任意の生成元を表す。演算子ｍｏｄは、モジュロ関数を表す。Ｚの隣にある「＊」は、整数の集合から０が除かれていることを表す。
【００８４】
線形暗号化／復号化モジュール１１２は、平文ベクトル１４２を受信しても良い。追加又は代替で、通信モジュール１１６が平文ベクトル１４２を受信し、その平文ベクトル１４２を、線形暗号化／復号化モジュール１１２に通信しても良い。平文ベクトル１４２は、第２の体のメンバを含んでも良い。第２の体は、値０から基本数−１までを有する要素（例えば０、１、．．．、ｐ−１）を含んでも良い。
【００８５】
線形暗号化／復号化モジュール１１２は、整数の集合から乱数をサンプリングしても良い。線形暗号化／復号化モジュール１１２は、次に、第１の線形暗号文及び第２の線形暗号文を構築しても良い。第１の線形暗号文は、乱数により冪乗された第１の生成元である第１の要素を含んでも良い。さらに、第１の線形暗号文は、線形暗号化冪指数により冪乗された第１の線形公開キーの対応する要素を含む１又は複数の他の要素を含んでも良い。第１の線形暗号文の線形暗号化冪指数は、第１の平文ベクトル１４２Ａの対応する要素により冪乗された任意の生成元に乱数を乗じたものを含んでも良い。幾つかの実施形態では、第１の線形暗号文の第１の要素が、対応において考慮されない。
【００８６】
第２の線形暗号文は、乱数により冪乗された第２の生成元である第１の要素を含んでも良い。さらに、第２の線形暗号文は、線形暗号化冪指数により冪乗された第２の線形公開キーの対応する要素を含む１又は複数の他の要素を含んでも良い。第２の線形暗号文の線形暗号化冪指数は、第２の平文ベクトル１４２Ｂの対応する要素により冪乗された任意の生成元に乱数を乗じたものを含んでも良い。幾つかの実施形態では、第２の線形暗号文の第１の要素が、対応において考慮されない。
【００８７】
幾つかの実施形態では、線形暗号化／復号化モジュール１１２が、以下の例示的な線形ｐ−ａｒｙベクトル暗号化式に従って、平文ベクトル１４２を暗号化しても良い。
（外１５）
2017207751.tif 000017
この線形ｐ−ａｒｙベクトル暗号化式において、〈〉、ｍ１、ｍ１ｉ、ｍ２、ｍ２ｉ、ｃｘ、ｃｙ、ｇ０、ｈ０、ｇｉ、ｈｉ、ｉ及びｎは、上述の通りである。パラメータＦは第２の体を表す。第２の体の隣にある下付き添字ｐは、第２の体の基本数を表す。第２の体の隣にある上付き添字ｎは、第２の体の次元を表す。第２の体の次元は、特定の数であっても良い。
【００８８】
この線形ｐ−ａｒｙベクトル暗号化式は、上で議論した第１の暗号化アルゴリズム（ＥｎｃＸ）及び第２の暗号化アルゴリズム（ＥｎｃＹ）を定めても良い。例えば、第１の平文ベクトル１４２Ａ及び第１の線形公開キーが与えられた場合に、第１の暗号化アルゴリズムが乱数をサンプリングし、第１の線形暗号文を
（外１６）
2017207751.tif 000018
として構築するものとして、第１の暗号化アルゴリズムが定められても良い。同様に、第１の平文ベクトル１４２Ａ及び第２の線形公開キーが与えられた場合に、第２の暗号化アルゴリズムが乱数をサンプリングし、第２の線形暗号文を
（外１７）
2017207751.tif 000019
として構築するものとして、第２の暗号化アルゴリズムが定められても良い。
【００８９】
第１の線形暗号文及び第２の線形暗号文は、線形認証モジュール１３２に通信されても良い。追加又は代替で、第１の線形暗号文及び第２の線形暗号文は、ネットワーク１０７を介して認証サーバに通信されても良い。サーバ通信モジュール１３４は、第１の線形暗号文及び第２の線形暗号文を受信し、第１の線形暗号文及び第２の線形暗号文を線形認証モジュール１３２に通信しても良い。
【００９０】
線形関係を発見するために、線形認証モジュール１３２は、特定のベクトルを定めても良い。この特定のベクトルは、第２の体のメンバであっても良い。この特定のベクトルは、第１の平文ベクトル１４２Ａと第２の平文ベクトル１４２Ｂとの和として定められても良い。線形認証モジュール１３２は、第１の線形暗号文の第１の要素（例えば、乱数により冪乗された第１の生成元）と第２の線形暗号文の第１の要素（例えば、乱数により冪乗された第２の生成元）とのペアリング関数を、線形関係秘密キーにより冪乗したものとして、第１の値を計算しても良い。
【００９１】
線形認証モジュール１３２はさらに、第１の線形暗号文のそれぞれの要素と第２の線形暗号文の対応する要素とのペアリング関数を、−１と特定のベクトルの対応する要素との積により冪乗された任意の生成元により冪乗したものの積として、第２の値を計算しても良い。
【００９２】
線形認証モジュール１３２は、第１の値が第２の値に等しいか否かを判定しても良い。第１の値が第２の値と等しいことに応答して、線形認証モジュール１３２は、第１の線形暗号文が第２の線形暗号文に対して線形であると結論づけても良い。
【００９３】
幾つかの実施形態では、線形認証モジュール１３２が、以下の例示的な線形ｐ−ａｒｙベクトル検証式に従って、第１の線形暗号文と第２の線形暗号文との間の線形関係を発見する。
（外１８）
2017207751.tif 000020
この線形ｐ−ａｒｙベクトル検証式において、パラメータ及び演算子は上述の通りである。
【００９４】
この線形ｐ−ａｒｙベクトル検証式は、上で議論した検証アルゴリズム（Ｖｅｒｉｆｙ）を定めても良い。例えば、この検証アルゴリズムは、暗号文、特定のベクトル及び関係線形キーが与えられた場合に、等式
（外１９）
2017207751.tif 000021
を検査するものとして定められても良い。
【００９５】
さらに、幾つかの実施形態では、線形暗号化／復号化モジュール１１２が、第１の線形暗号文及び／又は第２の線形暗号文を復号化しても良い。線形暗号化／復号化モジュール１１２は、結果として生じる平文ベクトル１４２の各々の要素を、線形暗号文の値に基づき、決定しても良い。例えば、第１の線形暗号文を復号化することにより構築される第１の平文ベクトル（例えば、第１の平文ベクトル１４２Ａ）の各々の要素について、値が決定されても良い。
【００９６】
暗号文を復号化するために、特定の要素値が決定されても良い。この特定の要素値は、セキュリティパラメータにおいて多項式により結合されても良い。さらに、この特定の要素値は、基本数を含む要素を有する体のメンバであっても良い。第１の平文ベクトル１４２Ａの各々の要素について、線形暗号化／復号化モジュール１１２は、第１の線形暗号文中の対応する要素が、特定の要素値により冪乗された任意の生成元と第１の線形秘密キーの対応する要素との積により冪乗された第１の線形暗号文の第１の要素に等しくなるような特定の要素値が存在するか否かを判定しても良い。
【００９７】
第１の線形暗号文中の対応する要素が、特定の要素値により冪乗された任意の生成元と第１の線形秘密キーの対応する要素との積により冪乗された第１の線形暗号文の第１の要素に等しくなるような特定の要素値が存在することに応答して、線形暗号化／復号化モジュール１１２は、その要素を、特定の要素値に設定しても良い。
【００９８】
そのような特定の要素値が存在しないことに応答して、線形暗号化／復号化モジュール１１２は、エラーを出力しても良い。第２の線形秘密キー及び第２の線形暗号文を使用して、第２の線形暗号文が同様に復号化されても良い。
【００９９】
幾つかの実施形態では、線形暗号化／復号化モジュール１１２が、以下の例示的な線形ｐ−ａｒｙベクトル復号化式に従って、線形暗号文を復号化しても良い。
（外２０）
2017207751.tif 000022
この線形ｐ−ａｒｙベクトル復号化式において、ｃｘｉ、ｃｙｉ、ｃｘ０、ｃｙ０、ａｉ、ｂｉ、ｍ１ｉ及びｍ２ｉは上述の通りである。パラメータ⊥はエラーを表す。パラメータμは、特定の要素値を表す。
【０１００】
この線形ｐ−ａｒｙベクトル復号化式は、上で議論した第１の復号化アルゴリズム（ＤｅｃＸ）及び第２の復号化アルゴリズム（ＤｅｃＹ）を定めても良い。例えば、第１の線形暗号文及び第１の線形秘密キーが与えられた場合に、第１の復号化アルゴリズムが、次式に従って第１の平文ベクトル１４２Ａをビットごとに構築するものとして、第１の復号化アルゴリズムが定められても良い。
（外２１）
2017207751.tif 000023
【０１０１】
同様に、第２の線形暗号文及び第２の線形秘密キーが与えられた場合に、第２の復号化アルゴリズムが、次式に従って第２の平文ベクトル１４２Ｂをビットごとに構築するものとして、第２の復号化アルゴリズムが定められても良い。
（外２２）
2017207751.tif 000024
【０１０２】
関係近似暗号化方式
関係近似暗号化方式は、近似暗号文間の近さを決定するために使用されても良い。幾つかの実施形態では、近似が、ハミング距離に関して提供されても良い。関係近似暗号化方式では、設定モジュール１４４がキーを生成する。それらのキーを使用して、近似暗号化／復号化モジュール１１４が、平文ベクトル１４２の暗号化及び／又は復号化を実行する。近似暗号文は、次に、近似認証モジュール１２８に通信されても良い。近似認証モジュール１２８では、近似暗号文間の近似が検出されても良い。
【０１０３】
例えば、設定モジュール１４４は、選択された平文攻撃（ＣＰＡ）キー生成アルゴリズム及び線形キー生成アルゴリズムの出力を生成しても良い。例えば、設定モジュール１４４は、本願明細書の別の場所に記載されているように、線形キーを起動しても良い。ＣＰＡキー生成アルゴリズムは、ＣＰＡ公開キー及びＣＰＡ秘密キーを出力しても良い。線形キー生成アルゴリズムは、上で議論したｐｋｘｌｉｎ、ｓｋｘｌｉｎ、ｐｋｙｌｉｎ、ｓｋｙｌｉｎ及びｓｋＲｌｉｎを出力しても良い。
【０１０４】
さらに、設定モジュール１４４は、誤り訂正符号（ＥＣＣ）を選択しても良い。このＥＣＣは、線形誤り訂正符号方式であっても良い。このＥＣＣは、長さ、ランク及び距離を含んでも良い。さらに、このＥＣＣは、ＥＣＣ符号化演算子（ＥＮＣＯＤＥ）及びＥＣＣ復号演算子（ＤＥＣＯＤＥ）も含んでも良い。設定モジュール１４４は、次に、第１の近似秘密キー、第２の近似秘密キー、第１の近似公開キー、第２の近似公開キー及び近似関係秘密キー（集合的に「近似キー」）を生成しても良い。近似キーは、関係暗号化において、平文ベクトル１４２を暗号化して近似暗号文を生成するため、近似暗号文を復号化するため、及び近似暗号文間の近似を検出するために使用される。
【０１０５】
第１の近似秘密キーは、ＣＰＡ秘密キー及び第１の線形秘密キーに基づき定められても良い。第２の近似秘密キーは、ＣＰＡ秘密キー及び第２の線形秘密キーに基づき定められても良い。第１の近似公開キーは、ＥＮＣＯＤＥ、ＤＥＣＯＤＥ、ＣＰＡ公開キー及び第１の線形公開キーに基づき定められても良い。第２の近似公開キーは、ＥＮＣＯＤＥ、ＤＥＣＯＤＥ、ＣＰＡ公開キー及び第２の線形公開キーに基づき定められても良い。近似関係秘密キーは、ＣＰＡ秘密キー及び線形関係秘密キーに基づき定められても良い。
【０１０６】
幾つかの実施形態では、設定モジュール１４４が、以下の例示的な近似キー生成式に従って、近似キーを生成しても良い。
（外２３）
2017207751.tif 000025
この近似キー生成式において、ｐｋｘｌｉｎ、ｐｋｙｌｉｎ、ｓｋｘｌｉｎ、ｓｋｙｌｉｎ、ｓｋＲｌｉｎ、←、Ｚ、ｍ及びｎは、上述の通りである。パラメータｐｋＣＰＡは、ＣＰＡ公開キーを表す。パラメータｓｋＣＰＡは、ＣＰＡ秘密キーを表す。パラメータＫｅｙＧｅｎＣＰＡは、ＣＰＡキー生成アルゴリズムを表す。パラメータｐｋｘｐｒｏｘは、第１の近似公開キーを表す。パラメータｐｋｙｐｒｏｘは、第２の近似公開キーを表す。パラメータｓｋｘｐｒｏｘは、第１の近似秘密キーを表す。パラメータｓｋｙｐｒｏｘは、第２の近似秘密キーを表す。パラメータｓｋＲｐｒｏｘは、近似関係秘密キーを表す。さらに、パラメータｐｋｘｐｒｏｘ、ｓｋｘｐｒｏｘ、ｐｋｙｐｒｏｘ、ｓｋｙｐｒｏｘ及びｓｋＲｐｒｏｘは、上で議論したキー生成アルゴリズム（ＫｅｙＧｅｎ）の出力の少なくとも１つの近似部分を表しても良い。パラメータＸは線形抽出器を表す。特定の反復が上に記載されているが、任意の線形抽出器が使用されても良い。
【０１０７】
第１の線形公開キーは、第１の平文ベクトル１４２Ａを暗号化して第１の近似暗号文を生成するために、近似暗号化／復号化モジュール１１４により使用されても良い。近似暗号化／復号化モジュール１１４は、平文ベクトル１４２を受信しても良い。追加又は代替で、通信モジュール１１６は、平文ベクトル１４２を受信し、その平文ベクトル１４２を、近似暗号化／復号化モジュール１１４に通信しても良い。平文ベクトル１４２は、第１又は第２の体のメンバを含んでも良い。
【０１０８】
近似暗号化／復号化モジュール１１４は、第３の体から近似乱数をサンプリングしても良い。第３の体は、基本数と、ＥＣＣのランクであっても良い次元とを含んでも良い。近似暗号化／復号化モジュール１１４は、次に、第１の近似暗号文及び第２の近似暗号文を構築しても良い。第１の近似暗号文及び第２の近似暗号文の各々は、２つの部分を含んでも良い。第１の近似暗号文の第１の部分は、ＣＰＡ公開キー、及び第１の平文ベクトル１４２ＡとＥＮＣＯＤＥとの和を入力として受け取るＣＰＡ暗号化アルゴリズムを含んでも良い。ＥＮＣＯＤＥは、近似乱数を入力として受信する。第１の近似暗号文の第２の部分は、第１の線形公開キー及び近似乱数を受信する第１の線形暗号化アルゴリズムを含んでも良い。
【０１０９】
第２の近似暗号文の第１の部分は、ＣＰＡ公開キー、及び第２の平文ベクトル１４２ＢとＥＮＣＯＤＥとの和を入力として受け取るＣＰＡ暗号化アルゴリズムを含んでも良い。ＥＮＣＯＤＥは、近似乱数を入力として受信する。第２の近似暗号文の第２の部分は、第２の線形公開キー及び近似乱数を入力として受信する第２の線形暗号化アルゴリズムを含んでも良い。
【０１１０】
幾つかの実施形態では、近似暗号文が、以下の例示的な近似暗号化式に従って生成されても良い。
ｃｘｐ１：＝ＥｎｃＣＰＡ（ｐｋｃｐａ，ｍ１＋ＥＮＣＯＤＥ（ｒ））
ｃｘｐ２：＝ＥｎｃＸＬｉｎｅｒａｒ（ｐｋｘｌｉｎ，Ｘ・ｒ）
ｃｘｐ：＝（ｃｘｐ１，ｃｘｐ２）
ｃｙｐ１：＝ＥｎｃＣＰＡ（ｐｋｃｐａ，ｍ２＋ＥＮＣＯＤＥ（ｒ））
ｃｙｐ２：＝ＥｎｃＹＬｉｎｅｒａｒ（ｐｋｙｌｉｎ，Ｘ・ｒ）
ｃｙｐ：＝（ｃｙｐ１，ｃｙｐ２）
この近似暗号化式において、ＥＮＣＯＤＥ、ｍ１、ｍ２、ｐｋｃｐａ、ｐｋｘｌｉｎ及びｐｋｙｌｉｎは、上述の通りである。ＥｎｃＣＰＡは、ＣＰＡ暗号化アルゴリズムを表す。パラメータｃｘｐ１は、第１の近似暗号文の第１の部分を表す。パラメータｃｘｐ２は、第１の近似暗号文の第２の部分を表す。パラメータｃｘｐは、第１の近似暗号文を表す。パラメータｃｙｐ１は、第２の近似暗号文の第１の部分を表す。パラメータｃｙｐ２は、第２の近似暗号文の第２の部分を表す。パラメータｃｙｐは、第２の近似暗号文を表す。パラメータＥｎｃＸＬｉｎｅａｒは、第１の線形暗号化アルゴリズムを表す。パラメータＥｎｃＹＬｉｎｅａｒは、第２の線形暗号化アルゴリズムを表す。
【０１１１】
第１の近似暗号文は、通信モジュール１１６により認証サーバ１４０に通信されても良く、第１の近似暗号文は、登録暗号文１３０として認証サーバ１４０に格納されても良い。第２の近似公開キーは、第２の平文ベクトル１４２Ｂを暗号化して第２の近似暗号文を生成するために、近似暗号化／復号化モジュール１１４により使用されても良い。第２の近似暗号文は、通信モジュール１１６により認証サーバ１４０に通信されても良い。近似関係秘密キーは、認証サーバ１４０において、特に近似認証モジュール１２８により、第２の近似暗号文と第１の近似暗号文との間の近似を検出するために、使用されても良い。この近似は、登録暗号文１３０として格納される。
【０１１２】
近似認証モジュール１２８は、第１の近似暗号文と第２の近似暗号文との間の近似を検出するよう構成されても良い。近似を検出するために、近似認証モジュール１２８は、公開キー情報で利用可能なＤＥＣＯＤＥにアクセスしても良い。近似認証モジュール１２８はさらに、第１の近似暗号文のランダム性の和（ｒａｎｄｏｍｎｅｓｓ  ｓｕｍ）を復元しても良い。第１の近似暗号文のランダム性の和は、ＣＰＡ復号化アルゴリズムを入力として受け取るＤＥＣＯＤＥとして定められても良い。このＣＰＡ復号化アルゴリズムはさらに、ＣＰＡ秘密キー、及び第１の近似暗号文の第１の部分とＣＰＡ復号化アルゴリズムとの和を受信し、このＣＰＡ復号化アルゴリズムは、ＣＰＡ秘密キー、及び第２の近似暗号文の第１の部分を入力として受信する。
【０１１３】
ＤＥＣＯＤＥがエラーを返した場合、近似認証モジュール１２８は拒否を返しても良い。さらに、近似認証モジュール１２８は、線形検証アルゴリズムを出力しても良い。線形検証アルゴリズムは、線形関係秘密キー、第２の近似暗号文の第１の部分、第２の近似暗号文の第２の部分、及びランダム性の和を入力として受信する。
【０１１４】
したがって、近似検証アルゴリズムは、第１の近似暗号文、第２の近似暗号文、及び近似秘密キーを受信するよう定められても良い。近似検証アルゴリズムは、ランダム性の和を復元し、拒否又は線形検証アルゴリズムを出力しても良い。線形検証アルゴリズムは、線形関係秘密キー、第２の近似暗号文の第１の部分、第２の近似暗号文の第２の部分、及びランダム性の和を入力として受信する。例えば、近似認証モジュール１２８は、以下の例示的な近似検証アルゴリズムに従って、１又は複数の動作を実行しても良い。
（外２４）
2017207751.tif 000026
この近似検証アルゴリズムにおいて、ｓｋｃｐａ、ｃｘ１、ｃｘ２、ｃｙ１、ｃｙ２、⊥、ｓｋＲｌｉｎ、Ｘ及びＤＥＣＯＤＥは、上述の通りである。パラメータＯｕｔｐｕｔは、近似認証モジュール１２８の出力を示す。パラメータＺｒｓは、ランダム性の和を表す。パラメータＤｅｃＣＰＡは、ＣＰＡ復号化アルゴリズムを表す。ＶｅｒｉｆｙＬｉｎｅａｒは、線形検証アルゴリズムを表す。
【０１１５】
本願明細書に記載の関係近似暗号化方式は、以下の条件が真である場合にセキュアであり得る。
（外２５）
2017207751.tif 000027
これらの条件において、ＫｅｙＧｅｎＣＰＡ、ＥｎｃＣＰＡ、ＤｅｃＣＰＡ、ＫｅｙＧｅｎＬｉｎｅａｒ、ＥｎｃＸＬｉｎｅａｒ、ＤｅｃＸＬｉｎｅａｒ、ＥｎｃＹＬｉｎｅａｒ、ＤｅｃＹＬｉｎｅａｒ、ＶｅｒｉｆｙＬｉｎｅａｒ及びＦは、上述の通りである。ＥＣＣはＥＣＣを表す。パラメータｎは長さを表し、ｋはランクを表し、２δは距離を表す。
【０１１６】
図２は、本願明細書に記載の少なくとも１つの実施形態に従って構成された生体認証システム（バイオメトリックシステム）２００のブロック図を示す。バイオメトリックシステム２００は、認証サービスが提供される図１の動作環境１００の例に含まれても良く、又は図１の動作環境１００の例を含んでも良い。バイオメトリックシステム２００では、認証サーバ１４０によりユーザ２０６の認証が実行されても良い。バイオメトリックシステム２００では、ユーザ２０６の同一性を認証するために、図１を参照して議論した関係暗号化が使用されても良い。
【０１１７】
この認証サービスは、登録処理及び認証処理を含んでも良い。登録処理は、認証処理において使用される情報及びデータをユーザ２０６から得ることを含んでも良い。認証処理は、時間的に後に（例えば登録処理に続いて）実行されても良い。認証処理では、図１を参照して議論した関係暗号化演算のうちの１又は複数を使用して、ユーザ２０６の同一性が認証されても良い。概して、ユーザ２０６の同一性は、本願明細書に記載のように、第１の線形暗号文と第２の線形暗号文との間の線形を発見すること、及び第１の近似暗号文と第２の近似暗号文との間の近似を検出することにより、認証されても良い。第１の線形暗号文及び第１の近似暗号文は、第１のバイオメトリックテンプレートの形式で、ユーザ２０６により提供されても良い。第１のバイオメトリックテンプレートは、図１の第１の平文ベクトル１４２Ａ及び／又は図２の登録入力２３２に含まれていても良い。
【０１１８】
ユーザ２０６及び／又は偽者２２２（後に論じる）は、１又は複数のバイオメトリック特徴を有する個人を含んでも良い。バイオメトリック特徴は、１又は複数の固有の特徴を含んでも良い。例えば、バイオメトリック特徴は、尾根部及び／又は谷部のパターンを含むユーザ２０６の指紋を含んでも良い。幾つかの実施形態では、ユーザ２０６が、ユーザ装置１０２に関連付けられていても良い。例えば、ユーザ２０６は、ユーザ装置１０２を所有し、又はユーザ装置１０２を定期的に操作しても良い。幾つかの実施形態では、ユーザ２０６が、ユーザ装置１０２に具体的に関連付けられていなくても良い。例えば、ユーザ装置１０２は、ユーザ２０６を含む複数のユーザにより公的にアクセス可能であっても良い。幾つかの実施形態では、偽者２２２が、バイオメトリック特徴を表し得る入力を供給するエンティティを含んでも良い。
【０１１９】
幾つかの実施形態では、ユーザ装置１０２がセンサ２９８を含んでも良い。センサ２９８は、ハードウェア装置、例えばユーザ２０６を認証するために使用されるバイオメトリック特徴を測定し又は他の方法で捕捉するように構成されたハードウェア装置、を含んでも良い。ユーザ２０６のバイオメトリック特徴が測定され又は他の方法で捕捉されたときに、ユーザ装置１０２は、バイオメトリックテンプレートを生成しても良い。バイオメトリックテンプレートは、バイオメトリック特徴を表しても良く、ユーザ２０６のバイオメトリック特徴の固有の特徴のうちの少なくとも幾つかの特徴を含んでも良い。バイオメトリックテンプレートは、例えば、バイオメトリック特徴のグラフィカル表現及び／又はアルゴリズム表現を含んでも良い。
【０１２０】
センサ２９８の幾つかの例は、指紋スキャナ、虹彩の画像を捕捉するように構成されたカメラ、ＤＮＡを測定するように構成された装置、心拍数を捕捉するように構成された心拍数モニタ、骨格筋により生成された電気活性を捕捉するように構成されたウェアラブル筋電図検査センサ、又はバイオメトリック特徴を測定し若しくは他の方法で捕捉するように構成された他の任意のセンサ２９８を含んでも良い。
【０１２１】
図示のバイオメトリックシステム２００では、センサ２９８が、ユーザ装置１０２に含まれている。他の実施形態では、センサ２９８が、ユーザ装置１０２又はユーザ装置１０２に含まれるプロセッサに通信可能に結合されても良い。例えば、センサ２９８は、図１のネットワーク１０７などのネットワークを介してユーザ装置１０２に信号を通信するように構成されても良い。図２にはセンサ２９８が１つだけ示されているが、幾つかの実施形態では、ユーザ装置１０２が、１又は複数のセンサ２９８を含んでも良い。
【０１２２】
ｅｎｃ／ｄｅｃモジュール１１０は、第１の線形暗号文及び第１の近似暗号文を、登録入力２３２から生成しても良い。ｅｎｃ／ｄｅｃモジュール１１０は、次に、第１の線形暗号文及び第１の近似暗号文を、登録データ２３４として、認証サーバ１４０に通信しても良い。
【０１２３】
関係認証モジュール１０８は、第１の線形暗号文及び第１の近似暗号文を、登録暗号文１３０として格納しても良い。登録暗号文１３０は、ユーザ２０６に関連付けられていても良い。例えば、ユーザ２０６は、ユーザ２０６に関連付けられたユーザ識別子を有しても良い。幾つかの実施形態では、登録暗号文１３０がメモリ１２２Ｂに格納されても良い。
【０１２４】
ｅｎｃ／ｄｅｃモジュール１１０は、次に、第１のチャレンジ入力２３６Ａ又は第２のチャレンジ入力２３６Ｂ（概して、チャレンジ入力２３６）を受信しても良い。第１のチャレンジ入力２３６Ａ及び第２のチャレンジ入力２３６Ｂは、ユーザ２０６又は偽者２２２による、ユーザ２０６又は偽者２２２の同一性を認証させるための試みであっても良い。第１のチャレンジ入力２３６Ａ及び／又は第２のチャレンジ入力２３６Ｂは、例えば、センサ２９８により読み取られる第２のバイオメトリックテンプレートを含んでも良い。第２のバイオメトリックテンプレートは、ユーザ２０６又は偽者２２２のバイオメトリック特徴の固有の特徴を表しても良い。
【０１２５】
ｅｎｃ／ｄｅｃモジュール１１０は、第２の線形暗号文及び第２の近似暗号文をチャレンジ入力２３６から生成しても良い。ｅｎｃ／ｄｅｃモジュール１１０は、次に、第２の線形暗号文及び第２の近似暗号文を、チャレンジデータ２３８として、認証サーバ１４０に通信しても良い。
【０１２６】
関係認証モジュール１０８は、チャレンジデータ２３８を受信しても良い。関係認証モジュール１０８は、次に、ユーザ２０６の登録暗号文１３０を読み出しても良い。
【０１２７】
関係認証モジュール１０８は、登録暗号文１３０として格納された第１の線形暗号文とユーザ装置１０２から受信した第２の線形暗号文との間の線形関係を決定しても良い。さらに、関係認証モジュール１０８は、登録暗号文１３０として格納された第１の近似暗号文とユーザ装置１０２から受信した第２の近似暗号文との間の近似関係を決定しても良い。
【０１２８】
第１の線形暗号文が第２の線形暗号文と線形関係を有すること、及び第１の近似暗号文と第２の近似暗号文との間に特定の近似があることに応答して、認証サーバ１４０は、第１のバイオメトリックテンプレートと第２のバイオメトリックテンプレートとの間に近い類似性があると判定しても良い。
【０１２９】
したがって、ユーザ２０６により提供される第１のチャレンジ入力２３６Ａが、第２の線形暗号文及び第２の近似暗号文の基礎である場合、第１の線形暗号文と第２の線形暗号文との間には線形関係が存在し、第１の近似暗号文と第２の近似暗号文との間には近似が存在し得る。
【０１３０】
しかしながら、偽者２２２により提供される第２のチャレンジ入力２３６Ｂが、第２の線形暗号文及び第２の近似暗号文の基礎である場合、第１の線形暗号文と第２の線形暗号文との間には線形関係が存在せず、第１の近似暗号文と第２の近似暗号文との間には近似が存在しないことがある。
【０１３１】
この線形関係及び／又は近似に基づき、関係認証モジュール１０８は認証判断を下しても良い。例えば、関係認証モジュール１０８は、チャレンジデータ２３８がユーザ２０６に由来するのか、又は偽者２２２に由来するかを判定しても良い。関係認証モジュール１０８は、線形関係の発見及び／又は近似の検出に基づき、認証信号２４２を通信しても良い。ｅｎｃ／ｄｅｃモジュール１１０は、認証信号２４２を受信しても良い。
【０１３２】
本開示の範囲から逸脱することなく、バイオメトリックシステム２００に変更、追加又は省略が実施されても良い。具体的には、図２に示された実施形態は、１人のユーザ２０６、１つのユーザ装置１０２及び１つの認証サーバ１４０を含む。しかしながら、本開示は、１若しくは複数のユーザ２０６、１若しくは複数のユーザ装置１０２、１若しくは複数の認証サーバ１４０、又はこれらの任意の組合せを含むバイオメトリックシステム２００に適用される。
【０１３３】
さらに、本願明細書に記載の実施形態の中の種々のコンポーネントの分割は、その分割が全ての実施形態において生じることを意味しない。本開示の利益により、記載のコンポーネントが単一のコンポーネントに統合され又は複数のコンポーネントに分割されても良いことが理解される。例えば、幾つかの実施形態では、ｅｎｃ／ｄｅｃモジュール１１０、及び／又はｅｎｃ／ｄｅｃモジュール１１０に属する１若しくは複数の機能が、認証サーバ１４０にあるモジュールにより実行されても良い。
【０１３４】
関係認証モジュール１０８及び／又はｅｎｃ／ｄｅｃモジュール１１０は、生体認証のためのコード及びルーチンを含んでも良い。幾つかの実施形態では、関係認証モジュール１０８及び／又はｅｎｃ／ｄｅｃモジュール１１０が、例えば、ユーザ装置１０２又は別のコンピューティング装置に格納されたシンクライアントアプリケーションとして部分的に動作しても良く、認証サーバ１４０に格納されたコンポーネントの一部として動作しても良い。幾つかの実施形態では、関係認証モジュール１０８及び／又はｅｎｃ／ｄｅｃモジュール１１０が、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又は特定用途向け集積回路（ＡＳＩＣ）を含むハードウェアを使用して実装されても良い。他の幾つかの例では、関係認証モジュール１０８及び／又はｅｎｃ／ｄｅｃモジュール１１０が、ハードウェアとソフトウェアの組合せを使用して実装されても良い。
【０１３５】
図３は、本願明細書に記載の少なくとも１つの実施形態に従って構成された、生体認証の例示的な方法３００のフロー図である。方法３００は、図２のバイオメトリックシステム２００内で実装され得る生体認証システム又は図１の動作環境１００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法３００が、本願明細書に記載された認証サーバ１４０によってプログラム可能に実行されても良い。認証サーバ１４０は、非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ｂ）を含んでいても良く、又は非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ｂ）に通信可能に結合されても良い。この非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ｂ）は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法３００を実行し若しくは方法３００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、認証サーバ１４０は、方法３００を実行するため又は方法３００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ（例えば図１のプロセッサ１２４Ｂ）を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
【０１３６】
方法３００はブロック３０２から開始し得る。ブロック３０２で、第１の線形暗号文が受信されても良い。第１の線形暗号文は、関係線形暗号化方式を使用して暗号化された第１のバイオメトリックテンプレートを表しても良い。ブロック３０４で、第１の近似暗号文が受信されても良い。第１の近似暗号文は、関係近似暗号化方式を使用して暗号化された第１のバイオメトリックテンプレートを表しても良い。
【０１３７】
ブロック３０６で、第１の線形暗号文及び第１の近似暗号文が、登録暗号文として格納されても良い。ブロック３０８で、線形関係秘密キー及び近似関係秘密キーが受信されても良い。ブロック３１０で、第２の近似暗号文が受信されても良い。第２の近似暗号文は、関係近似暗号化方式を使用して暗号化された第２のバイオメトリックテンプレートを表しても良い。ブロック３１２で、第２の線形暗号文が受信されても良い。第２の線形暗号文は、関係線形暗号化方式を使用して暗号化された第２のバイオメトリックテンプレートを表しても良い。
【０１３８】
ブロック３１４で、第１の線形暗号文と第２の線形暗号文との間の線形関係が、線形関係秘密キーを使用して発見されても良い。ブロック３１６で、第１の近似暗号文と第２の近似暗号文との間の近似が、近似関係秘密キーを使用して検出されても良い。近似は、ハミング距離に関して決定されても良い。ブロック３１８で、近似及び線形関係に基づき、ユーザの同一性が認証されても良い。
【０１３９】
本願明細書に開示された一切の手順及び方法に関して、それらの処理及び方法で実行される機能は、異なる順序で実施されても良い。さらに、概説されたそれらのステップ及び動作は、単なる例として提供したものであり、それらのステップ及び動作のうちの幾つかのステップ及び動作は、開示の実施形態を損なうことなしに、任意選択とされ、又はより少数のステップ及び動作に結合され、又は追加のステップ及び動作に拡張されても良い。
【０１４０】
図４Ａ及び図４Ｂは、本願明細書に記載の少なくとも１つの実施形態に従って構成された、関係暗号化の例示的な方法４００のフロー図である。方法４００は、図２のバイオメトリックシステム２００内で実装され得る生体認証システム又は図１の動作環境１００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法４００が、本願明細書に記載されたユーザ装置１０２によってプログラム可能に実行されても良い。ユーザ装置１０２は、非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）を含んでいても良く、又は非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）に通信可能に結合されても良い。この非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法４００を実行し若しくは方法４００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置１０２は、方法４００を実行するため又は方法４００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ（例えば図１のプロセッサ１２４Ａ）を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
【０１４１】
図４Ａを参照すると、方法４００はブロック４０２から開始し得る。ブロック４０２で、関係線形暗号化方式のキーが生成されても良い。関係線形暗号化方式のキーは、セキュリティパラメータに関して生成されても良い。ブロック４０３で、第１の不均一分散データが、第１の平文ベクトルとして、適切なランダム化レベルまでランダム化されても良い。この不均一分散データは、バイオメトリックデータであっても良い。適切なランダム化レベルについては後により詳細に説明される。ブロック４０４で、第１の平文ベクトルが、関係線形暗号化方式を使用して暗号化されても良い。第１の平文ベクトルのこの暗号化は、第１の平文ベクトルを表す第１の線形暗号文を生成しても良い。ブロック４０６で、関係近似暗号化方式のキーが生成されても良い。この関係近似暗号化方式のキーは、セキュリティパラメータに関して生成されても良い。ブロック４０８で、第１の平文ベクトルが、関係近似暗号化方式を使用して暗号化されても良い。関係近似暗号化方式を使用した第１の平文ベクトルのこの暗号化は、第１の平文ベクトルを表す第１の近似暗号文を生成しても良い。ブロック４１０で、第１の線形暗号文及び第１の近似暗号文が、認証サーバに通信されても良い。
【０１４２】
ブロック４１１で、第２の不均一分散データが、第２の平文ベクトルとして、適切なランダム化レベルまでランダム化されても良い。この不均一分散データは、バイオメトリックデータであっても良い。適切なランダム化レベルについては後により詳細に説明される。ブロック４１２で、第２の平文ベクトルが、関係線形暗号化方式を使用して暗号化されても良い。第２の平文ベクトルのこの暗号化は、第２の平文ベクトルを表す第２の線形暗号文を生成しても良い。図４Ｂを参照する。ブロック４１４で、第２の平文ベクトルが、関係近似暗号化方式を使用して暗号化されても良い。関係近似暗号化方式を使用した第２の平文ベクトルのこの暗号化は、第２の近似暗号文を生成しても良い。ブロック４１６で、第２の線形暗号文及び第２の近似暗号文が、認証サーバに通信されても良い。ブロック４１８で、ブロック４０２において生成された関係線形暗号化方式のキーが、認証サーバに通信されても良い。それらのキーは、関係線形キー及び関係近似キーを含んでも良い。
【０１４３】
ブロック４２０で、認証サーバから認証信号が受信されても良い。この認証信号は、関係線形キーを使用して発見された第１の線形暗号文と第２の線形暗号文との間の線形関係、及び関係近似キーを使用して検出された第１の近似暗号文と第２の近似暗号文との間の近似を示しても良い。幾つかの実施形態では、第１の平文ベクトルが、ユーザから登録入力として受信された第１のバイオメトリックテンプレートを含んでも良い。さらに、第２の平文ベクトルは、チャレンジ入力として受信された第２のバイオメトリックテンプレートを含んでも良い。これらの実施形態及びその他の実施形態では、この認証信号が、第２のバイオメトリックテンプレートがユーザに由来するものであるか否かを示しても良い。
【０１４４】
図５は、本願明細書に記載の少なくとも１つの実施形態に従って構成された、関係暗号化方式において線形関係を発見する例示的な方法５００のフロー図である。方法５００は、図２のバイオメトリックシステム２００内で実装され得る生体認証システム又は図１の動作環境１００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法５００が、本願明細書に記載された認証サーバ１４０によってプログラム可能に実行されても良い。認証サーバ１４０は、非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ｂ）を含んでいても良く、又は非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ｂ）に通信可能に結合されても良い。この非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ｂ）は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法５００を実行し若しくは方法５００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、認証サーバ１４０は、方法５００を実行するため又は方法５００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ（例えば図１のプロセッサ１２４Ｂ）を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
【０１４５】
方法５００はブロック５０２から開始し得る。ブロック５０２で、特定のベクトルが定められても良い。この特定のベクトルは、第１の体のメンバを含んでも良い。第１の体は、０及び１の要素、並びに線形秘密キーの長さである特定の数の次元を含んでも良い。追加又は代替で、この特定のベクトルは、第２の体のメンバを含んでも良い。第２の体は、０から基本数−１までの要素、及び特定の数の次元を含んでも良い。
【０１４６】
ブロック５０４で、第１の値が計算されても良い。この第１の値は、第１の線形暗号文の第１の要素と第２の線形暗号文の第１の要素とのペアリング関数を、線形関係秘密キーにより冪乗したものとして、計算されても良い。ブロック５０６で、第２の値が計算されても良い。幾つかの実施形態では、この第２の値が、第１の線形暗号文のそれぞれの要素と第２の線形暗号文の対応する要素とのペアリング関数を、特定のベクトルの対応する要素により冪乗された−１により冪乗したものの積であっても良い。幾つかの実施形態では、この第２の値が、第１の線形暗号文のそれぞれの要素と第２の線形暗号文の対応する要素とのペアリング関数を、−１と特定のベクトルの対応する要素との積により冪乗された任意の生成元により冪乗したものの積として、計算されても良い。この任意の生成元は、０が除かれた整数の集合の部分群から選択されても良い。
【０１４７】
ブロック５０８で、第１の値が第２の値に等しいか否かが判定されても良い。第１の値が第２の値に等しいことに応答して（ブロック５０８の「はい」）、方法５００は、ブロック５１０に進んでも良い。ブロック５１０で、第１の線形暗号文は第２の線形暗号文に対して線形であると結論づけられても良い。第１の値が第２の値に等しくないことに応答して（ブロック５０８の「いいえ」）、方法５００は、ブロック５１２に進んでも良い。ブロック５１２で、エラーが出力されても良い。このことは、第１の線形暗号文が第２の線形暗号文に対して線形ではないことを示す。
【０１４８】
図６は、本願明細書に記載の少なくとも１つの実施形態に従って構成された、近似を検出する例示的な方法６００のフロー図である。方法６００は、図２のバイオメトリックシステム２００内で実装され得る生体認証システム又は図１の動作環境１００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法６００が、本願明細書に記載された認証サーバ１４０によってプログラム可能に実行されても良い。認証サーバ１４０は、非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ｂ）を含んでいても良く、又は非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ｂ）に通信可能に結合されても良い。この非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ｂ）は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法６００を実行し若しくは方法６００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、認証サーバ１４０は、方法６００を実行するため又は方法６００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ（例えば図１のプロセッサ１２４Ｂ）を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
【０１４９】
方法６００はブロック６０２から開始し得る。ブロック６０２で、ＤＥＣＯＤＥが、公開キー情報からアクセスされても良い。ブロック６０４で、ランダム性の和が復元されても良い。ランダム性の和は、第１の近似暗号文に関して受信されても良い。第１の近似暗号文のランダム性の和は、ＣＰＡ復号化アルゴリズムを入力として受け取るＤＥＣＯＤＥとして定められても良い。このＣＰＡ復号化アルゴリズムはさらに、（ａ）ＣＰＡ秘密キー、及び（ｂ）第１の近似暗号文の第１の部分とＣＰＡ復号化アルゴリズムとの和を受信し、このＣＰＡ復号化アルゴリズムは、ＣＰＡ秘密キー、及び第２の近似暗号文の第１の部分を入力として受信する。
【０１５０】
ブロック６０６で、ＤＥＣＯＤＥがエラーを返したことに応答して、拒否が出力されても良い。ＤＥＣＯＤＥがエラーを返さなかった場合には、ブロック６０８で、線形検証アルゴリズムが出力されても良い。この線形検証アルゴリズムは、線形関係秘密キー、第２の近似暗号文の第１の部分、第２の近似暗号文の第２の部分、及びランダム性の和を入力として受信しても良い。
【０１５１】
図７は、本願明細書に記載の少なくとも１つの実施形態に従って構成された、関係線形暗号化方式のキー生成の例示的な方法７００のフロー図である。方法７００は、図２のバイオメトリックシステム２００内で実装され得る生体認証システム又は図１の動作環境１００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法７００が、本願明細書に記載されたユーザ装置１０２によってプログラム可能に実行されても良い。ユーザ装置１０２は、非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）を含んでいても良く、又は非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）に通信可能に結合されても良い。この非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法７００を実行し若しくは方法７００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置１０２は、方法７００を実行するため又は方法７００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ（例えば図１のプロセッサ１２４Ａ）を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
【０１５２】
方法７００はブロック７０２から開始し得る。ブロック７０２で、双線形群が生成されても良い。幾つかの実施形態では、この双線形群が、素数位数の双線形群であっても良い。この素数位数は、セキュリティパラメータにおける指数であっても良い。追加又は代替で、この素数位数は、セキュリティパラメータにおける指数であっても良く、１を基本数（ｐ）で割った余りに等しくても良い。例えば、平文ベクトルがビットベクトルを含む実施形態では、この素数位数が、セキュリティパラメータにおける指数であっても良い。平文ベクトルがｐ−ａｒｙベクトルを含む実施形態では、この素数位数が、セキュリティパラメータにおける指数であっても良く、１を基本数（ｐ）で割った余りに等しくても良い。
【０１５３】
ブロック７０４で、生成元がサンプリングされても良い。例えば、第１の生成元は、第１の双線形群からサンプリングされても良く、第２の生成元は、第２の双線形群からサンプリングされても良い。ブロック７０６で、線形秘密キーが生成されても良い。例えば、整数の集合から特定の数の要素をランダムにサンプリングすることにより、第１の線形秘密キー及び第２の線形秘密キーが生成されても良い。この整数の集合は、０から素数位数−１までの整数を含んでも良い。
【０１５４】
ブロック７０８で、線形公開キーが定められても良い。例えば、第１の線形公開キーは、第１の生成元である要素と、第１の線形秘密キーの対応する要素により冪乗された第１の生成元である１又は複数の他の要素とを含んでも良い。幾つかの実施形態では、第１の線形公開キーが、任意の生成元をさらに含んでも良い。この任意の生成元は、０が除かれた整数の集合の部分群から選択されても良い。さらに、第２の線形公開キーが定められても良い。第２の線形公開キーは、第２の生成元である要素と、第２の線形秘密キーの対応する要素により冪乗された第２の生成元である１又は複数の他の要素とを含んでも良い。幾つかの実施形態では、第２の線形公開キーが、任意の生成元である要素をさらに含んでも良い。
【０１５５】
ブロック７１０で、線形関係秘密キーが定められても良い。線形関係秘密キーの各々の要素は、第２の線形秘密キーの対応する要素と第１の線形秘密キーの対応する要素との和を含んでも良い。
【０１５６】
図８は、本願明細書に記載の少なくとも１つの実施形態に従って構成された、関係線形暗号化方式を使用して第１の平文ベクトルを暗号化する例示的な方法８００のフロー図である。方法８００は、図２のバイオメトリックシステム２００内で実装され得る生体認証システム又は図１の動作環境１００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法８００が、本願明細書に記載されたユーザ装置１０２によってプログラム可能に実行されても良い。ユーザ装置１０２は、非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）を含んでいても良く、又は非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）に通信可能に結合されても良い。この非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法８００を実行し若しくは方法８００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置１０２は、方法８００を実行するため又は方法８００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ（例えば図１のプロセッサ１２４Ａ）を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
【０１５７】
方法８００はブロック８０２から開始し得る。ブロック８０２で、乱数がサンプリングされても良い。乱数は、整数の集合からサンプリングされても良い。ブロック８０４で、第１の線形暗号文が構築されても良い。第１の線形暗号文の第１の要素は、乱数により冪乗された第１の生成元であっても良い。さらに、第１の線形暗号文の１又は複数の他の要素は、線形暗号化冪指数により冪乗された第１の線形公開キーの対応する要素を含んでも良い。幾つかの実施形態では、線形暗号化冪指数が、乱数と、第１の平文ベクトルの対応する要素により冪乗された−１との積を含んでも良い。幾つかの実施形態では、線形暗号化冪指数が、乱数と、第１の平文ベクトルの対応する要素により冪乗された任意の生成元との積を含んでも良い。
【０１５８】
図９は、本願明細書に記載の少なくとも１つの実施形態に従って構成された、関係近似暗号化方式のキーを生成する例示的な方法９００のフロー図である。方法９００は、図２のバイオメトリックシステム２００内で実装され得る生体認証システム又は図１の動作環境１００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法９００が、本願明細書に記載されたユーザ装置１０２によってプログラム可能に実行されても良い。ユーザ装置１０２は、非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）を含んでいても良く、又は非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）に通信可能に結合されても良い。この非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法９００を実行し若しくは方法９００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置１０２は、方法９００を実行するため又は方法９００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ（例えば図１のプロセッサ１２４Ａ）を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
【０１５９】
方法９００はブロック９０２から開始し得る。ブロック９０２で、ＥＣＣが選択されても良い。このＥＣＣは、長さ、セキュリティパラメータの同じ位数のランク、及び選択された最小距離を含んでも良い。ブロック９０４で、ＣＰＡセキュア暗号化方式のキー生成アルゴリズムが実行されても良い。このＣＰＡセキュア暗号化方式は、ＣＰＡ公開キー及びＣＰＡ秘密キーを出力しても良い。ブロック９０６で、関係線形キー生成アルゴリズムが実行されても良い。関係線形キー生成アルゴリズムは、第１の線形公開キー、第２の線形公開キー、第１の線形秘密キー、第２の線形秘密キー及び関係線形秘密キーを出力しても良い。
【０１６０】
ブロック９０７で、近似公開キーが定められても良い。例えば、ＥＮＣＯＤＥ、ＤＥＣＯＤＥ、ＣＰＡ公開キー及び第１の線形公開キーに基づき、第１の近似公開キーが定められても良い。さらに、ＥＮＣＯＤＥ、ＤＥＣＯＤＥ、ＣＰＡ公開キー及び第２の線形公開キーに基づき、第２の近似公開キーが定められても良い。ブロック９０８で、近似秘密キーが定められても良い。例えば、ＣＰＡ秘密キー及び第１の線形秘密キーに基づき、第１の近似秘密キーが定められても良い。さらに、ＣＰＡ秘密キー及び第２の線形秘密キーに基づき、第２の近似秘密キーが定められても良い。ブロック９１０で、近似関係秘密キーが定められても良い。例えば、近似関係秘密キーは、ＣＰＡ秘密キー及び関係線形秘密キーに基づき定められても良い。
【０１６１】
図１０は、本願明細書に記載の少なくとも１つの実施形態に従って構成された、関係近似暗号化方式を使用して第１の平文ベクトルを暗号化する例示的な方法１０００のフロー図である。方法１０００は、図２のバイオメトリックシステム２００内で実装され得る生体認証システム又は図１の動作環境１００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法１０００が、本願明細書に記載されたユーザ装置１０２によってプログラム可能に実行されても良い。ユーザ装置１０２は、非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）を含んでいても良く、又は非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）に通信可能に結合されても良い。この非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法１０００を実行し若しくは方法１０００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置１０２は、方法１０００を実行するため又は方法１０００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ（例えば図１のプロセッサ１２４Ａ）を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
【０１６２】
方法１０００はブロック１００２から開始し得る。ブロック１００２で、近似乱数がサンプリングされても良い。近似乱数は、第３の体からサンプリングされても良い。第３の体は、基本数と、ＥＣＣのランクである次元とを含んでも良い。ブロック１００４で、第１の近似暗号文の第１の部分が定められても良い。この第１の部分は、ＣＰＡ公開キー、及び第１の平文ベクトルとＥＮＣＯＤＥとの和を入力として受け取るＣＰＡ暗号化アルゴリズムとして定められても良い。ＥＮＣＯＤＥは、近似乱数を入力として受信する。
【０１６３】
ブロック１００６で、第１の近似暗号文の第２の部分が定められても良い。
この第２の部分は、第１の線形公開キー及び近似乱数を入力として受信する第１の線形暗号化アルゴリズムとして定められても良い。
【０１６４】
図１１は、本願明細書に記載の少なくとも１つの実施形態に従って構成された、第１の線形暗号文を復号化する例示的な方法１１００のフロー図である。方法１１００は、図２のバイオメトリックシステム２００内で実装され得る生体認証システム又は図１の動作環境１００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法１１００が、本願明細書に記載されたユーザ装置１０２によってプログラム可能に実行されても良い。ユーザ装置１０２は、非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）を含んでいても良く、又は非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）に通信可能に結合されても良い。この非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法１１００を実行し若しくは方法１１００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置１０２は、方法１１００を実行するため又は方法１１００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ（例えば図１のプロセッサ１２４Ａ）を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
【０１６５】
方法１１００はブロック１１０２から開始し得る。ブロック１１０２で、第１の線形暗号文中の対応する要素が、特定の要素値により冪乗された任意の生成元と第１の線形秘密キーの対応する要素との積により冪乗された第１の線形暗号文の第１の要素に等しくなるような特定の要素値が存在するか否かが判定されても良い。この特定の要素値が存在することに応答して（ブロック１１０２の「はい」）、その要素が、特定の要素値に設定されても良い。この特定の要素値が存在しないことに応答して（ブロック１１０２の「いいえ」）、エラーが出力されても良い。
【０１６６】
図１２は、本願明細書に記載の少なくとも１つの実施形態に従って構成された、第１の線形暗号文を復号化する別の例示的な方法１２００のフロー図である。方法１２００は、図２のバイオメトリックシステム２００内で実装され得る生体認証システム又は図１の動作環境１００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法１２００が、本願明細書に記載されたユーザ装置１０２によってプログラム可能に実行されても良い。ユーザ装置１０２は、非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）を含んでいても良く、又は非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）に通信可能に結合されても良い。この非一時的コンピュータ可読媒体（例えば図１のメモリ１２２Ａ）は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法１２００を実行し若しくは方法１２００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置１０２は、方法１２００を実行するため又は方法１２００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ（例えば図１のプロセッサ１２４Ａ）を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
【０１６７】
方法１２００はブロック１２０２から開始し得る。ブロック１２０２で、第１の線形暗号文中の対応する要素が、第１の線形秘密キーの対応する要素により冪乗された第１の線形暗号文の第１の要素に等しいか否かが判定されても良い。第１の線形暗号文中の対応する要素が、第１の線形秘密キーの対応する要素により冪乗された第１の線形暗号文の第１の要素に等しいことに応答して（ブロック１２０２の「はい」）、方法１２００は、ブロック１２０８に進んでも良い。ブロック１２０８で、第１の平文ベクトルの要素が０に設定されても良い。
【０１６８】
第１の線形暗号文中の対応する要素が、第１の線形秘密キーの対応する要素により冪乗された第１の線形暗号文の第１の要素に等しくないことに応答して（ブロック１２０２の「いいえ」）、方法１２００は、ブロック１２０４に進んでも良い。ブロック１２０４で、第１の線形暗号文中の対応する要素が、第１の線形秘密キーの対応する要素に−１を乗じたものにより冪乗された第１の線形暗号文の第１の要素に等しいか否かが判定されても良い。第１の線形暗号文の中の対応する要素が、第１の線形秘密キーの対応する要素に−１を乗じたものにより冪乗された第１の線形暗号文の第１の要素に等しいことに応答して（ブロック１２０４の「はい」）、方法１２００は、ブロック１２１０に進んでも良い。ブロック１２１０で、第１の平文ベクトルの要素は１に設定されても良い。第１の線形暗号文の中の対応する要素が、第１の線形秘密キーの対応する要素に−１を乗じたものにより冪乗された第１の線形暗号文の第１の要素に等しくないことに応答して（ブロック１２０４の「いいえ」）、方法は、ブロック１２０６に進んでも良い。ブロック１２０６で、第１の線形暗号文中の対応する要素が別の値に等しいか否かが判定されても良い。第１の線形暗号文中の対応する要素が別の値に等しいことに応答して（ブロック１２０６の「はい」）、方法１２００は、ブロック１２１２に進んでも良い。ブロック１２１２で、エラーが返されても良い。
【０１６９】
不均一分散データ
幾つかの実施形態では、本開示がさらに、バイオメトリックデータなどの、一様にランダムではない基礎データの関係暗号化を提供し得る。基礎データは、不均一に分散されても良く、且つ／又は相関を有しても良い。非限定的な例として、米国の人口のより大きな部分集合は、青い目よりも褐色の目を持っている。言い換えると、目の色は、人口全体に不均一に分散し得る。同様に、青い目を持つ個人は、濃い色の髪よりも明るい色の髪を持つ可能性が高い。言い換えると、青い目と明るい色の髪との間には相関が存在し得る。バイオメトリックデータにおける（相関を含む）ランダム性の欠如のために、本開示は、本開示に記載の関係暗号化方式を使用する前に、基礎となるバイオメトリックデータの効率的なランダム化の提供も含み得る。
【０１７０】
適切なランダム化レベルは、データのエントロピ、ノイズ閾、データのドメイン等を含む、データの幾つかの特徴に依存しても良い。これらの特徴を説明する際の便宜のため、指紋のバイオメトリック特徴の例が使用されるが、非バイオメトリックデータを含む任意の基礎データが使用されても良い。幾つかの実施形態では、適切なランダム化レベルが、Ｘとｒとのドット積、又は基礎データｒと行列Ｘとのドット積により達成され得る。当技術分野で知られているように、行列Ｘは、強力な線形抽出器であり得る。それらの特徴は、行列Ｘを導出する際の入力であっても良い。幾つかの実施形態では、線形抽出器が、データを適切なレベルにランダム化するために、データの元のサイズを４分の１のサイズまで縮小するために使用されても良い。適切なランダム化レベルは、セキュリティパラメータλに依存しても良い。例えば、８０ビットのセキュリティビットが必要であることをセキュリティパラメータが示している場合、ランダム化レベルは、生データに対して強力な線形抽出器を使用する処理の後に、８０ビットのランダム化データを必要とし得る。別の例として、１２８ビットのセキュリティビットが必要であることをセキュリティパラメータが示している場合、ランダム化レベルは、生データに対して強力な線形抽出器を使用する処理の後に、１２８ビットのランダム化データを必要とし得る。
【０１７１】
データのエントロピの特徴は、データ自体が本来持っている全体的なばらつき又はランダム性を表しても良い。一例として、指紋は、人間の人口において、指紋の分布に固有のある量のばらつき又はランダム性を有する。これは、バイオメトリック特徴のエントロピと呼ばれることがある。データのエントロピが増大するにつれ、適切なランダム化レベルに達するために必要な処理の量は減少し得る。
【０１７２】
ノイズ閾の特徴は、基礎データを読み取り又は取得するときに存在するばらつきの量を表し得る。再び指紋の例を使用すると、指紋のスキャン又は読取りを行うとき、指紋の読取り値を集めるときに、幾らかのノイズ又は変動が存在し得る。言い換えると、所与の個人について読取り値が取り込まれる度に、正確に同一のバイオメトリックデータが集められない場合がある。実際に、個人のバイオメトリック特徴は僅かに変化し得るので、完全なシステムにおいてさえ、２回のサンプリングの間には、バイオメトリックデータに幾らかの軽微な変動が存在し得る。これは、ノイズ閾と呼ばれることがある。ノイズ閾が高い場合、システムは、頻繁に偽陽性を生成し、不正なデータが基礎データに一致することを許してしまう。指紋の例を使用すると、類似するが同一ではない指紋が多すぎると、本物として認識される場合がある。反対に、ノイズ閾が低い場合には、システムは頻繁に偽陰性を生成し得る。指紋の例を使用すると、第２の読取り値を取り入れる同一人物が認証されない場合がある。ノイズ閾が増大するにつれ、適切なランダム化レベルに達するための処理の量は減少し得る。
【０１７３】
別の特徴は、データのドメイン、又は基礎データが存在する数学的空間を含んでも良い。指紋の例を使用すると、バイオメトリックデータはビットストリーム又はｐ−ｎａｒｙベクトルに変換され得る。例えば、所与の指紋は、３２０ビットのビットストリームにより表現され得る。ドメインのフォーマット及び長さは、他の因子、例えばノイズレベル及びノイズ閾に関連しても良い。幾つかの実施形態では、基礎データの最小サイズ又はベクトル長が必要とされ得る。基礎データのサイズ及びドメインの複雑性が増大するにつれ、処理の量は減少し得る。
【０１７４】
適切なランダム化レベルは、データの所望のセキュリティレベルに比例しても良い。所望のセキュリティレベルが増大するにつれ、適切なランダム化レベルは増大し得る。所望のセキュリティレベルは、セキュリティパラメータλが何を表すかを決定し得る。例えば、より高いセキュリティレベルが望まれる場合、セキュリティパラメータは、１２８ビットのセキュリティビットを含んでも良い。
【０１７５】
図１３は、別の例示的な動作環境のブロック図である。ネットワーク１０７、通信モジュール１１６、設定モジュール１４４、メモリ１２２Ａ、プロセッサ１２４Ａ、通信ユニット１２６Ａ、第１のエンティティ１５０、第２のエンティティ１５２、認証サーバ１４０は、図１に示したものと同じであっても良い。ユーザ装置１３０２は、ユーザ装置１０２と同様であっても良いが、関係暗号化／復号化モジュール１３１０を含むように変更されても良い。線形暗号化モジュール１３１２及び近似暗号化モジュール１３１４は、線形暗号化／復号化モジュール１１２及び近似暗号化／復号化モジュール１１４と同様であっても良いが、それらは、暗号文を復号化するように構成されなくても良い。不均一分散データを使用する幾つかの実施形態では、本開示に記載の方法及び処理が、復号化ステップを省略するように変更されても良い。関係暗号化／復号化モジュール１３１０は、関係暗号化／復号化モジュール１１０と同様であっても良いが、ランダム化モジュール１３２０を含むように変更されても良い。
【０１７６】
ランダム化モジュール１３２０は、本願明細書に記載の１又は複数の動作を実行するように構成された１又は複数のルーチンを含むソフトウェアとして実装されても良い。ランダム化モジュール１３２０は、本願明細書に記載の機能を提供するためにプロセッサ１２４により実行可能な命令セットを含んでも良い。幾つかの例では、ランダム化モジュール１３２０が、メモリ１２２に格納され又は少なくとも一時的にそれにロードされても良く、プロセッサ１２４のうちの１又は複数によりアクセス可能且つ実行可能であっても良い。ランダム化モジュール１３２０は、バスを介してプロセッサ１２４のうちの１又は複数と協力及び通信するように適合されても良い。
【０１７７】
ランダム化モジュール１３２０は、ランダム化されたデータが、本開示に記載された関係暗号化方式において使用され得るような態様で、不均一に分散されている可能性がある基礎データを、適切なランダム化レベルまでランダム化するように構成されても良い。幾つかの実施形態では、これが、ランダム化モジュール１３２０が線形抽出器１３２５を利用して不均一分散データから適切にランダム化された平文を抽出することを含んでも良い。線形抽出器１３２５は、強力な線形抽出器であっても良い。線形抽出器１３２５は、当技術分野で知られている一連の数学的ステップ又は演算として実施されても良い。
【０１７８】
一例として、ユーザ装置１３０２は、本開示に従って関係暗号化方式で使用されるバイオメトリックデータを受信しても良い。バイオメトリックデータは、不均一に分散していても良い。したがって、基礎データを暗号化する前に、バイオメトリックデータは、平文ベクトルとして適切なランダム化レベルに達するように、線形抽出器１３２５を使用してランダム化モジュール１３２０において処理されても良い。平文ベクトルは、次に、線形暗号化モジュール１３１２及び近似暗号化モジュール１３１４により暗号化されても良い。
【０１７９】
図１４は、関係暗号化方式を使用して不均一分散データを暗号化する例示的な方法１４００のフロー図である。方法１４００は、図２のバイオメトリックシステム２００内で実装され得る生体認証システム、図１の動作環境１００内で実装され得る生体認証システム、図１３の動作環境１３００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法１４００が、図１のユーザ装置１０２又は図１３のユーザ装置１３０２によってプログラム可能に実行されても良い。ユーザ装置１０２又はユーザ装置１３０２は、非一時的コンピュータ可読媒体（例えば図１又は図１３のメモリ１２２Ａ）を含んでいても良く、又は非一時的コンピュータ可読媒体（例えば図１又は図１３のメモリ１２２Ａ）に通信可能に結合されても良い。この非一時的コンピュータ可読媒体（例えば図１又は図１３のメモリ１２２Ａ）は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法１４００を実行し若しくは方法１４００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置１０２又はユーザ装置１３０２は、方法１４００を実行するため又は方法１４００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ（例えば図１又は図１３のプロセッサ１２４Ａ）を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
【０１８０】
ブロック１４１０において、ユーザ装置は、バイオメトリックデータ又は他の不均一分散データを受信しても良い。このデータは、１又は複数のセンサ、検出器等を使用して受信されても良い。ブロック１４２０において、このバイオメトリックデータは、平文ベクトルとして、あるランダム化レベルに処理されても良い。ブロック１４２０は、図１５においてさらに説明される。ブロック１４３０において、平文ベクトルは、本開示に記載の関係線形暗号化方式を使用して暗号化され、その結果、線形暗号文が生成されても良い。ブロック１４４０において、平文ベクトルは、本開示に記載の関係近似暗号化方式を使用して暗号化され、その結果、近似暗号文が生成されても良い。
【０１８１】
ブロック１４５０で、線形暗号文及び近似暗号文が、認証サーバに通信されても良い。線形暗号文及び近似暗号文が認証サーバに通信されると、認証サーバは、暗号文と基準暗号文との間に関係が存在するかどうかを判定するために、本願明細書に記載のように比較及び決定を実行しても良い。関係が存在するとサーバが判定した場合、認証サーバは、ユーザ装置に認証を通信しても良い。幾つかの実施形態では、これが、所望のセキュリティレベルに基礎データが適切にランダム化されたことに基づいても良い。ブロック１４６０で、ユーザ装置は、認証サーバから、認証を受信しても良い。
【０１８２】
図１５は、不均一分散データを処理する例示的な方法１５００のフロー図である。方法１５００は、図１４のブロック１４２０の置換又は拡張である。例えば、図１４のブロック１４１０の後に、方法１５００が実施され、次に、図１４のブロック１４４０に戻っても良い。方法１５００は、図２のバイオメトリックシステム２００内で実装され得る生体認証システム、図１の動作環境１００内で実装され得る生体認証システム、又は図１３の動作環境１３００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法１５００が、図１のユーザ装置１０２又は図１３のユーザ装置１３０２によってプログラム可能に実行されても良い。ユーザ装置１０２又はユーザ装置１３０２は、非一時的コンピュータ可読媒体（例えば図１又は図１３のメモリ１２２Ａ）を含んでいても良く、又は非一時的コンピュータ可読媒体（例えば図１又は図１３のメモリ１２２Ａ）に通信可能に結合されても良い。この非一時的コンピュータ可読媒体（例えば図１又は図１３のメモリ１２２Ａ）は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法１５００を実行し若しくは方法１５００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置１０２又はユーザ装置１３０２は、方法１５００を実行するため又は方法１５００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ（例えば図１又は図１３のプロセッサ１２４Ａ）を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。例えば、ブロック１５１０及び１５２０は同時に実行されても良く、又は省略されても良い。
【０１８３】
図１４のブロック１４１０の後、方法１５００はブロック１５１０から開始し得る。ブロック１５１０で、バイオメトリックデータの特徴が決定されても良い。この決定は、データのエントロピ、ノイズ閾及びドメインのうちの１又は複数を決定することを含んでも良い。幾つかの実施形態では、これが、記憶装置から又は第三者機関から読み出されたデータの予め決定された特徴であっても良い。例えば、指紋の分布におけるばらつきは、受信されたバイオメトリックデータが指紋を表すビットストリームである場合に格納され読み出される既知の特徴であっても良い。幾つかの実施形態では、バイオメトリックデータが読み出された後に、特徴が決定されても良い。例えば、ノイズ閾は、バイオメトリックデータを集めるために使用されるハードウェア、センサ又は他のデータ捕捉技術に部分的に基づいても良い。次に、方法１５００はブロック１５２０に進んでも良い。
【０１８４】
ブロック１５２０において、適切なセキュリティレベルは、セキュリティパラメータλに基づき決定されても良い。適切なセキュリティレベルは、使用されるバイオメトリックデータの感度、認証が実施される用途等に基づいても良い。次に、方法１５００はブロック１５３０に進んでも良い。ブロック１５３０で、バイオメトリックデータについて適切なランダム化レベルが決定されても良い。上述のように、これは、ブロック１５１０において決定された特徴のうちの１若しくは複数、又はブロック１５２０における決定で使用されたセキュリティパラメータに部分的に基づいても良い。幾つかの実施形態では、適切なランダム化レベルが、セキュリティパラメータに比例しても良い。次に、方法１５００はブロック１５４０に進んでも良い。
【０１８５】
ブロック１５４０において、バイオメトリックデータを、平文ベクトルとして、適切なランダム化レベルに処理するために、強力な線形抽出器が使用されても良い。これは、数学的に演算Ｘ・ｒとして表され得る。バイオメトリックデータがランダム化されると、方法１５００は、図１４のブロック１４３０へ処理の経路を取ることにより、終了しても良い。
【０１８６】
制限アクセス認証サーバを用いた関係暗号化方式
本開示の１又は複数の実施形態では、認証処理又は比較処理における情報のある部分へのアクセスにおいて、認証サーバが制限されても良い。特に、認証サーバは、平文値、又は認証サーバが平文値を導出する元の情報にアクセスすることなく、暗号化された２つの平文値が同じであることを検証し得る。これらの実施形態及びその他の実施形態では、通信している当事者のための関係キーを導出する初期化処理が、認証サーバが信頼された第三者機関である必要がないような態様で実施されても良い。本開示の実施形態は、関係暗号化方式の公開キーを生成する信頼された第三者機関が存在しない状況において有益であり得る。これらの実施形態及びその他の実施形態では、信頼された第三者機関に、公開キーの生成を委ねなくても良い。幾つかの実施形態では、関係暗号化方式の設定段階を実行する信頼された第三者機関が存在しない場合であっても、関係暗号化方式がセキュアであり得る。
【０１８７】
図１６は、本開示の１又は複数の実施形態に基づく別の例示的な動作環境１６００のブロック図である。動作環境１６００は、第１のユーザ装置１６０２を利用する第１のエンティティ１５２、第２のユーザ装置１６０４を利用する第２のエンティティ１５０、及び認証サーバ１６４０を含んでも良く、これらは全て、ネットワーク１０７を介して通信する。第１のエンティティ１５２、第２のエンティティ１５０及びネットワーク１０７は、図１の第１のエンティティ１５２、第２のエンティティ１５０及びネットワーク１０７と同様又は類似であっても良い。認証サーバ１６４０は、認証サーバ１６４０が、ある種の情報への制限されたアクセスを有し得ることを除き、図１の認証サーバ１４０と同様又は類似の認証サーバであっても良い。これらの実施形態及びその他の実施形態では、たとえ認証サーバ１６４０が信頼された第三者機関でない場合であっても、機密情報のセキュリティが維持され得る。第１のユーザ装置１６０２及び第２のユーザ装置１６０４は、図１の第１のユーザ装置１０２と同様又は類似のユーザであっても良い。例えば、図示されてはいないが、第１のユーザ装置１６０２及び第２のユーザ装置１６０４は、メモリ、プロセッサ、通信ユニット等を含んでも良い。
【０１８８】
幾つかの実施形態では、認証サーバ１６４０が、暗号化された第１のメッセージを第１のユーザ装置１６０２から受信し、暗号化された第２のメッセージを第２のユーザ装置１６０４から受信しても良い。この認証サーバは、暗号化された第１のメッセージと暗号化された第２のメッセージの比較を実行して、暗号化された第１のメッセージ中の暗号化された第１の平文値が、暗号化された第２のメッセージ中の暗号化された第２の平文値と同じであるか否かを判定するように構成されても良い。これらの実施形態及びその他の実施形態では、認証サーバ１６４０が、暗号化された第１のメッセージ及び／又は暗号化された第２のメッセージを復号化しなくても良い。追加又は代替で、認証サーバ１６４０は信頼された第三者機関であっても良く、又は信頼された第三者機関でなくても良い。幾つかの実施形態では、関係暗号化方式の設定段階を実行する信頼された第三者機関が存在しない場合であっても、関係暗号化方式がセキュアであり得る。
【０１８９】
制限アクセス認証サーバを用いた関係暗号化方式を初期化するため、第１のユーザ装置１６０２及び第２のユーザ装置１６０４に対して関係キーが得られ、且つ／又は生成されても良い。これらの関係キーは、（最初に又は永久的に）認証サーバ１６４０が知っていても良い第１の要素、及び認証サービス１６４０が知らなくても良い第２の要素を含んでも良い。これらの実施形態及びその他の実施形態では、第１の数学的群の第１の要素が選択され、第２の数学的群の第２の要素が選択されても良い。この第１及び第２の要素はランダムに選択されてもよく、又は所与の一組の状況に対して繰返し使用されても良い。例えば、認証サーバ１６４０は常に、第１及び第２の数学的群の同じ第１及び第２の要素を使用しても良い。第１及び第２の要素は、公開であり且つ既知であっても良く、又は、認証サーバ１６４０、第１のユーザ装置１６０２及び第２のユーザ装置１６０４によって得られても良い。数学的に示せば以下の通りである。
ｇ←Ｇ１
ｈ←Ｇ２
上式で、パラメータＧ１は、位数ｑの第１の数学的群を表し（ｑは、上記のものと同じである）、パラメータＧ２は、位数ｑの第２の数学的群を表し、ｇは、群Ｇ１の要素を表し、ｈは、群Ｇ２の要素を表す。幾つかの実施形態では、第１の数学的群から得られた第１の要素（例えばｇ）及び第２の数学的群から得られた第２の要素（例えばｈ）が、生成元と呼ばれることがある。幾つかの実施形態では、群Ｇ１及びＧ２が双線形要素を含んでも良い。例えば、群Ｇ１及びＧ２は、通常の数学的群ではなくても良く、その代わりに、以下の双線形ペアリング演算をサポートしても良い。
ｅ（Ｇ１×Ｇ２）＝ＧＴ
上式で、ｅ（．．．）はペアリング演算を表し、ＧＴは第３の双線形群を表す。追加又は代替で、群Ｇ１及びＧ２は、閉包、結合性、恒等及び可逆性を含む数学的群公理に従っても良い。
【０１９０】
制限アクセス認証サーバを用いた関係暗号化方式をさらに初期化するため、認証サーバ１６４０は、第１のユーザ装置１６０２のための第１の関係キーの第１の要素、及び第２のユーザ装置１６０４のための第２の関係キーの第１の要素を生成しても良い。幾つかの実施形態では、認証サーバ１６４０が、２つのランダム整数を選択しても良く、又は他の方法で２つのランダム整数を得ても良い。これらの実施形態及びその他の実施形態では、ランダム整数が、０からｑ−１までの間で選択されても良い。数学的に示せば、認証サーバは、以下のものを生成しても良い。
ｔ←Ｚｑ
ｕ←Ｚｑ
上式で、Ｚｑは上記のものと同じであり、ｔ及びｕは、Ｚｑから選択されたランダム整数である。第１のユーザ装置１６０２のための第１の関係キーの第１の要素を生成するため、認証サーバ１６４０は、第１の群要素を、第１及び第２のランダム整数により冪乗しても良い。第２のユーザ装置１６０４のための第２の関係キーの第１の要素を生成するため、認証サーバ１６４０は、第２の群要素を、第２のランダム整数により冪乗しても良い。数学的に示せば、認証サーバ１６４０は、第１のユーザ装置１６０２のための第１の関係キーの第１の要素としてｇｔｕを生成し、第２のユーザ装置１６０４のための第２の関係キーの第１の要素としてｈｕを生成する。認証サーバ１６４０は、第１の関係キーの第１の要素を第１のユーザ装置１６０２に提供しても良く、第２の関係キーの第１の要素を第２のユーザ装置１６０４に提供しても良い。幾つかの実施形態では、第１の関係キーの第１の要素及び第２の関係キーの第１の要素をそれぞれ第１のユーザ装置１６０２及び第２のユーザ装置１６０４に提供した後に、認証サーバ１６４０が、第２のランダム変数（例えばｕ）を削除し、又は他の方法で除去しても良い。これらの実施形態及びその他の実施形態では、認証サーバ１６４０が、第１及び第２のユーザ装置１６０２、１６０４と第１のランダム整数（例えばｔ）との関係を格納しても良い。例えば、通信しているユーザ装置の対及びランダム整数が、表又はデータベースに格納されても良い。追加又は代替で、この表又はデータベースは、両方のランダム整数により冪乗された群要素を受信しないユーザ装置が第２のユーザ装置１６０４であったこと（このことは例えば、第２のユーザ装置１６０４にｈｕが提供され、第１のユーザ装置１６０２にｇｔｕが提供されたことを表す）を格納しても良い。
【０１９１】
制限アクセス認証サーバを用いた関係暗号化方式をさらに初期化するため、第１の関係キーの第２の要素及び第２の関係キーの第２の要素が生成されても良い。このような生成は、第１のユーザ装置１６０２及び第２のユーザ装置１６０４によって、第１のユーザ装置１６０２と第２のユーザ装置１６０４の間で、認証サーバ１６４０の入力又は対話なしに実施されても良い。第１のユーザ装置１６０２は、第３のランダム整数ａをＺｑから選択しても良く、第２のユーザ装置１６０４は、第４のランダム整数ｂをＺｑから選択しても良い。第２のユーザ装置１６０４は、第１の群要素を、第４のランダム整数により冪乗しても良く（例えばｇｂ）、それを第１のユーザ装置１６０２に提供しても良い。第１のユーザ装置１６０２は、第２の群要素を、第３のランダム整数により冪乗しても良く（例えばｈａ）、それを第２のユーザ装置１６０４に提供しても良い。第１のユーザ装置１６０２は、第１の群要素を第３の整数によりさらに冪乗する（例えばｇａｂ）ことにより、第１の関係キーの第２の要素を導出しても良い。第２のユーザ装置１６０４は、第２の群要素を第４の整数によりさらに冪乗する（例えばｈａｂ）ことにより、第２の関係キーの第２の要素を導出しても良い。このような交換により、第１及び第２の関係キーの第２の要素の導出中に、第１のユーザ装置１６０２に、第４のランダム整数ｂが提供されても又は提供されなくても良く、第２のユーザ装置１６０４に、第３のランダム整数ａが提供されても又は提供されなくても良い。追加又は代替で、認証サーバ１６４０は、第１及び第２の関係キーの第２の要素を知らなくても良い。したがって、第１のユーザ装置１６０２は、第１の要素ｇｔｕ及び第２の要素ｇａｂを有する第１の関係キーを得ても良い。追加又は代替で、第２のユーザ装置１６０４は、第１の要素ｈｕ及び第２の要素ｈａｂを有する第２の関係キーを得ても良い。
【０１９２】
初期化の後、第１のユーザ装置１６０２にある暗号化された第１の平文値と第２のユーザ装置１６０４にある暗号化された第２の平文値とが同じであるか否かを認証サーバ１６４０が検証することを可能にするために、第１のユーザ装置１６０２のための第１の関係キー及び第２のユーザ装置１６０４のための第２の関係キーが利用されても良い。例えば、第１のユーザ装置１６０２は、第１の関係キーを使用して第１の平文値を暗号化しても良い。第１のユーザ装置１６０２は、第５のランダム整数（例えばＺｑからランダムに選択された整数ｒ）を取得し、第１の関係キーの第１の要素を、第５のランダム整数により冪乗し（例えばｇｔｕｒ）、第１の関係キーの第２の要素を、第５のランダム整数及び第１の平文値により冪乗（例えばｇａｂｒｌ。ｌは第１の平文値である）しても良い。暗号化された第１のメッセージは、変更された第１の関係キー、例えば第１の要素（ｇｔｕｒ）及び第２の要素（ｇａｂｒｌ）を含んでも良い。第２のユーザ装置１６０４は、第６のランダム整数（例えばＺｑからランダムに選択された整数ｓ）を取得し、第２の関係キーの第１の要素を、第６のランダム整数により冪乗し（例えばｈｕｓ）、第２の関係キーの第２の要素を、第６のランダム整数及び第２の平文値により冪乗（例えばｈａｂｓｍ。ｍは第２の平文値である）しても良い。暗号化された第２のメッセージは、変更された第２の関係キー、例えば第１の要素（ｈｕｓ）及び第２の要素（ｈａｂｓｍ）を含んでも良い。
【０１９３】
暗号化された第１のメッセージ中に第１の平文値を暗号化した後、第１のユーザ装置１６０２は、暗号化された第１のメッセージを認証サーバ１６４０に提供しても良い。暗号化された第２のメッセージ中に第２の平文値を暗号化した後、第２のユーザ装置１６０４は、暗号化された第２のメッセージを認証サーバ１６４０に提供しても良い。第１の平文値が第２の平文値と同じであるか否かを判定するため、認証サーバ１６４０は、暗号化された第１のメッセージを暗号化された第２のメッセージと比較しても良い。このような比較を実行するため、認証サーバは、暗号化された第１のメッセージの第１の要素と暗号化された第２のメッセージの第２の要素とに対して第１のペアリング関数演算を実行し、暗号化された第１のメッセージの第２の要素と、認証サーバ１６４０によって得られた第１のランダム整数（例えばｔ）により冪乗された暗号化された第２のメッセージの第１の要素とに対して第２のペアリング関数演算を実行しても良い。第１のペアリング関数演算の結果と第２のペアリング関数演算の結果が同じである場合、認証サーバ１６４０は、第１の平文値と第２の平文値が同じであると判定しても良い。第１のペアリング関数演算の結果と第２のペアリング関数演算の結果が同じでない場合、認証サーバ１６４０は、第１の平文値と第２の平文値が同じでないと判定しても良い。数学的に示せば、認証サーバは、下の等式を検証しても良い。
（外２６）
2017207751.tif 000028
上式で、ｅ（．．．）はペアリング関数であり、ａ、ｂ、ｇ、ｈ、ｌ、ｍ、ｒ、ｓ、ｔ及びｕは上述のものと同じである。これらの実施形態及びその他の実施形態では、認証サーバ１６４０が信頼された第三者機関であっても又は信頼された第三者機関でなくても良いような態様で、認証サーバ１６４０にこれらの平文値が提供されなくても良く、セキュリティキー又は認証キーは、認証サーバ１６４０に提供されても又は提供されなくても良い。したがって、幾つかの実施形態では、認証サーバ１６４０が、制限アクセス認証サーバであり得る。
【０１９４】
幾つかの実施形態では、第１及び／又は第２の平文値（例えばｌ及び／又はｍ）が、異なる固定値であっても良い。特に、幾つかの実施形態では、第１及び／又は第２の平文値（例えばｌ及び／又はｍ）が、バイオメトリックデータでなくても良い。平文値は、その実施形態が適用され得る用途に応じた任意のサイズを取り得る。例えば、平文値が、画像を定めるビットストリームである場合、平文値の長さは、数千文字、数百万文字（又はそれ以上）であり得る。幾つかの実施形態では、値ｑが、平文値のサイズとほぼ同じ桁になるように選択されても良い。追加又は代替で、平文値のサイズを制限するために、ハッシュ関数又は他の打切り関数が利用されても良い。これらの実施形態及びその他の実施形態では、セキュアなハッシュ関数が利用されても良い。ハッシュ関数が使用される場合には、同じハッシュ関数が、第１のユーザ装置１６０２によって第１の平文値に対して使用され、第２のユーザ装置１６０４によって第２の平文値に対して使用されても良い。追加又は代替で、平文値がハッシュされる場合には、ｑが、ハッシュされた平文値のサイズとほぼ同じ桁になるように選択されても良い。
【０１９５】
幾つかの実施形態では、認証サーバ１６４０を制限アクセス認証サーバとして動作させることが、幾つかの例示的な例において、ある種のセキュリティ利点を提供し得る。
【０１９６】
例１．第１のユーザ装置１６０２、第２のユーザ装置１６０４及び認証サーバ１６４０が全て正直である場合、全ての暗号化は意味論的にセキュアであり得る。言い換えると、暗号化されたメッセージ及び平文値の長さについての知識は、実行可能に抽出され得る平文値に関する追加の情報を一切明らかにしない。このような意味論的セキュリティは、低エントロピ平文値に対しても（例えば平文値が一様にランダムでない場合にも）当てはまる。
【０１９７】
例２．第１のユーザ装置１６０２が敵対的である場合、第２のユーザ装置１６０４の平文値は意味論的にセキュアであり得、このような意味論的なセキュリティは、低エントロピ平文値に対しても当てはまる。
【０１９８】
例３．第１のユーザ装置１６０２が敵対的であり、将来のある時点で第２のユーザ装置１６０４が危険に晒される（例えばハッキングされる）場合、危険に晒される前の第２のユーザ装置１６０４からの暗号化されたメッセージは意味論的にセキュアであり得、このような意味論的なセキュリティは、低エントロピ平文値に対しても当てはまる。
【０１９９】
例４．認証サーバ１６４０が敵対的である場合、暗号化されたメッセージ間の比較だけが学習され得る（例えば平文値が同じであるのか又は同じでないのかは学習され、平文値が何であるのかは学習されない）。低エントロピデータに関して、暗号化された平文値はセキュアだが、その比較は学習され得る。
【０２００】
例５．認証サーバ１６４０及び第１のユーザ装置１６０２が敵対的である場合、暗号化されたメッセージ間の比較（例えば平文値が同じであるのか又は同じでないのか）だけが学習され得る。低エントロピデータに関して、第２のユーザ装置１６０４の平文値は、推測攻撃に晒され得るため、セキュアでない可能性がある。例えば、低エントロピデータでは可能性の数が限られているため、及び、敵対者は、第１のユーザ装置１６０２の平文値及び認証サーバ１６４０における比較の結果を知り得るため、第２のユーザ装置１６０４の平文値を決定するために系統的な推測アプローチが使用され得る。
【０２０１】
例６．認証サーバ１６４０及び第１のユーザ装置１６０２が敵対的であり、将来、第２のユーザ装置１６０４が危険に晒される（例えばハッキングされる）場合、危険に晒される前の第２のユーザ装置１６０４からの暗号化されたメッセージは意味論的にセキュアであり得る。低エントロピデータに関して、第２のユーザ装置１６０４の平文値は、推測攻撃に晒され得るため、セキュアでない可能性がある。上記のそれぞれの例では、第１のユーザ装置１６０２が敵対的として識別されたときの、第２のユーザ装置１６０４に対するセキュリティが説明されたが、これらの２つは相互に交換可能であり、第２のユーザ装置１６０４が敵対的である場合には、第１のユーザ装置１６０２に対するセキュリティに関して類似のことが言える。
【０２０２】
幾つかの実施形態では、動作環境１６００内に、通信している２対以上のユーザ装置が存在するとき、認証サーバ１６４０から第２のランダム整数（例えばｕ）を除去することは、通信しているユーザ装置の異なる対間のセキュリティを促進し得る。例えば、認証サーバ１６４０が第２のランダム整数を除去していない場合には、認証サーバ１６４０が危険に晒された場合に、通信しているユーザ装置のどの対が比較に関連しているのかが決定され得る。
【０２０３】
幾つかの異なる設定又は例示的なシナリオでは、認証処理又は比較処理において情報のある部分へのアクセスが制限された認証サーバが使用されても良い。例えば、認証サーバ１６４０は、第１のユーザ装置１６０２が有する画像、文書、ファイル又は他の情報を第２のユーザ装置１６０４が含むかどうかを、第１のユーザ装置１６０２が第２のユーザ装置１６０４に、第２のユーザ装置１６０４又は認証サーバ１６４０にその情報を開示することなしに問い合わせることを許しても良い。幾つかの実施形態では、第１のエンティティ１５２と第２のエンティティ１５０が、異なるときに異なるユーザ装置又は同じユーザ装置を作動している同じエンティティであっても良い。例えば、第１のエンティティ１５２が、第１のユーザ装置１６０２を、認証されたセキュアな位置又はセキュアなネットワーク内のセキュアなコンピュータとして操作しているユーザであり、第２のエンティティ１５０が、第２のユーザ装置１６０４を、別の位置にあり又は別のネットワーク上にあるモバイル装置として操作している同じユーザであっても良い。認証サーバ１６４０は、第１のユーザ装置１６０２と第２のユーザ装置１６０４の両方が同じ平文値（例えばパスワード又はトークン）を含むことを、認証サーバ１６４０がパスワード又はトークンを知ることなしに検証し得る。第１のユーザ装置１６０２と第２のユーザ装置１６０４の両方が同じ平文値を有することを検証した後、認証サーバ１６４０は、制限された内容へのアクセスを第２のユーザ装置１６０４に許可しても良い。
【０２０４】
本開示の範囲から逸脱することなく、例示的な動作環境１６００に変更、追加又は省略が実施されても良い。具体的には、図１６に示された実施形態は、１つの認証サーバ１６４０及び１対のユーザ装置（第１のユーザ装置１６０２及び第２のユーザ装置１６０４）を含む。しかしながら、本開示は、任意の数のユーザ装置対及び任意の数の認証サーバを含む動作環境に適用される。
【０２０５】
図１７は、関係暗号化方式を利用する、本開示の１又は複数の実施形態に基づく例示的な方法１７００のフロー図である。方法１７００は、図２のシステム２００内で実装され得る生体認証システム、図１の動作環境１００内で実装され得る生体認証システム、図１３の動作環境１３００内で実装され得る生体認証システム、図１６の動作環境１６００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法１７００が、図１のユーザ装置１０２、図１３のユーザ装置１３０２、図１６の第１若しくは第２のユーザ装置１６０２、１６０４又は認証サーバ１６４０によってプログラム可能に実行されても良い。ユーザ装置１０２、ユーザ装置１３０２、第１若しくは第２のユーザ装置１６０２、１６０４及び／又は認証サーバ１６４０は、非一時的コンピュータ可読媒体を含んでいても良く、又は非一時的コンピュータ可読媒体に通信可能に結合されても良い。この非一時的コンピュータ可読媒体は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法１７００を実行し若しくは方法１７００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置１０２、ユーザ装置１３０２、第１若しくは第２のユーザ装置１６０２、１６０４及び／又は認証サーバ１６４０は、方法１７００を実行するため又は方法１７００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサを含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
【０２０６】
ブロック１７１０で、第１の数学的群要素及び第２の数学的群要素が得られても良い。例えば、認証サーバ（例えば図１６の認証サーバ１６４０）が、ｑ個の要素の第１の群から第１の数学的群要素をランダムに選択し、ｑ個の要素の第２の群から第２の数学的群要素をランダムに選択しても良い。例えば、認証サーバはｇ及びｈを選択しても良い。幾つかの実施形態では、通信しているユーザ装置の複数の対に対してｇ及びｈが同じでも良い。
【０２０７】
ブロック１７２０で、第１の平文値を含む暗号化された第１のメッセージが受信されても良い。例えば、第１のユーザ装置（例えば図１６の第１のユーザ装置１６０２）が、暗号化された第１のメッセージを認証サーバに送信しても良い。幾つかの実施形態では、暗号化された第１のメッセージが、第１のユーザ装置の第１の関係キーを含んでも良い。この第１の関係キーは２つの要素を含んでも良く、変更されている。例えば、上記の命名法に従うと、第１のユーザ装置は、第５のランダム整数（例えばＺｑからランダムに選択された整数ｒ）を取得し、第１の関係キーの第１の要素を、第５のランダム整数により冪乗し（例えばｇｔｕｒ）、第１の関係キーの第２の要素を、第５のランダム整数及び第１の平文値により冪乗（例えばｇａｂｒｌ。ｌは第１の平文値である）しても良い。暗号化された第１のメッセージは、変更された第１の関係キー、例えば第１の要素（ｇｔｕｒ）及び第２の要素（ｇａｂｒｌ）を含んでも良い。
【０２０８】
ブロック１７３０で、第２の平文値を含む暗号化された第２のメッセージが受信されても良い。例えば、第２のユーザ装置（例えば図１６の第２のユーザ装置１６０４）が、暗号化された第２のメッセージを認証サーバに送信しても良い。幾つかの実施形態では、暗号化された第２のメッセージが、第２のユーザ装置の第２の関係キーを含んでも良い。この第２の関係キーは２つの要素を含んでも良く、変更されている。例えば、上記の命名法に従うと、第２のユーザ装置は、第６のランダム整数（例えばＺｑからランダムに選択された整数ｓ）を取得し、第２の関係キーの第１の要素を、第６のランダム整数により冪乗し（例えばｈｕｓ）、第２の関係キーの第２の要素を、第６のランダム整数及び第２の平文値により冪乗（例えばｈａｂｓｍ。ｍは第２の平文値である）しても良い。暗号化された第２のメッセージは、変更された第２の関係キー、例えば第１の要素（ｈｕｓ）及び第２の要素（ｈａｂｓｍ）を含んでも良い。
【０２０９】
ブロック１７４０で、暗号化された第１のメッセージも又は暗号化された第２のメッセージも復号化することなしに、暗号化された第１のメッセージが暗号化された第２のメッセージと比較されても良い。例えば、認証サーバが、暗号化されたメッセージ内の平文値にアクセスすることなしに、暗号化された第１のメッセージを暗号化された第２のメッセージと比較しても良い。このような比較は、例えば１又は複数のペアリング関数演算を使用することにより、本開示において上で説明された通りに実行されても良い。
【０２１０】
ブロック１７５０で、この比較に基づいて、第１の平文値と第２の平文値とが同じであると判定しても良い。例えば、認証サーバが、第１のペアリング関数の結果が第２のペアリング関数と同じあると判定しても良い。これらの２つのペアリング関数は、暗号化された第１及び第２のメッセージの種々のコンポーネントを本開示で説明した通りにペアリングする。幾つかの実施形態では、この比較が同じであることに基づいて、制限された内容へのユーザ装置アクセスを与える動作、一方又は両方のユーザ装置にこの判定を送信する動作など、さらなる動作がとられても良い。
【０２１１】
したがって、方法１７００は、関係暗号化方式を利用し得る。本開示の範囲から逸脱することなく、方法１７００に変更、追加又は省略が実施されても良い。例えば、方法１７００の演算は、異なる順序で実施されても良い。追加又は代替で、２つ以上の演算が同時に実行されても良い。さらに、概説された演算及び動作は例として提供されたものであり、それらの演算及び動作のうちの幾つかの演算及び動作は、開示の実施形態の本質を損なうことなしに、任意選択とされ、又はより少数の演算及び動作に結合され、又は追加の演算及び動作に拡張されても良い。
【０２１２】
図１８Ａ及び図１８Ｂは、関係暗号化方式を初期化し利用する、本開示の１又は複数の実施形態に基づく例示的な方法１８００のフロー図である。方法１８００は、図２のシステム２００内で実装され得る生体認証システム、図１の動作環境１００内で実装され得る生体認証システム、図１３の動作環境１３００内で実装され得る生体認証システム、図１６の動作環境１６００内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法１８００が、図１のユーザ装置１０２、図１３のユーザ装置１３０２、図１６の第１若しくは第２のユーザ装置１６０２、１６０４又は認証サーバ１６４０によってプログラム可能に実行されても良い。ユーザ装置１０２、ユーザ装置１３０２、第１若しくは第２のユーザ装置１６０２、１６０４及び／又は認証サーバ１６４０は、非一時的コンピュータ可読媒体を含んでいても良く、又は非一時的コンピュータ可読媒体に通信可能に結合されても良い。この非一時的コンピュータ可読媒体は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法１８００を実行し若しくは方法１８００の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置１０２、ユーザ装置１３０２、第１若しくは第２のユーザ装置１６０２、１６０４及び／又は認証サーバ１６４０は、方法１８００を実行するため又は方法１８００の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサを含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。上記の数学的変数を参照する方法１７００を説明した際のある種の数学的変数を参照しても良い。
【０２１３】
ブロック１８０５で、第１及び第２の群要素が得られても良い。例えば、認証サーバ（例えば図１６の認証サーバ１６４０）が、第１の群から第１の群要素をランダムに得、第２の群から第２の群要素をランダムに得ても良い。ブロック１８０５は、ブロック１７１０と同様であり得、又はブロック１７１０に匹敵し得る。
【０２１４】
ブロック１８１０で、第１及び第２のランダム整数が得られても良い。例えば、認証サーバが、本開示において上で説明された通りに、Ｚｑから２つの整数をランダムに選択しても良い。
【０２１５】
ブロック１８１５で、第１及び第２のランダム整数により冪乗された第１の群要素が、第１のユーザ装置（例えば図１６の第１のユーザ装置１６０２）に送信されても良い。例えば、認証サーバが、ｇｔｕを生成し、その変更された群要素を第１のユーザ装置に送信しても良い。これらの実施形態及びその他の実施形態では、第１及び第２のランダム整数により冪乗された第１の群要素が、第１のユーザ装置の第１の関係キーの第１の要素であっても良い。
【０２１６】
ブロック１８２０で、第２のランダム整数により冪乗された第２の群要素が、第２のユーザ装置（例えば図１６の第２のユーザ装置１６０４）に送信されても良い。例えば、認証サーバが、ｈｕを生成し、その変更された群要素を第２のユーザ装置に送信しても良い。これらの実施形態及びその他の実施形態では、第２のランダム整数により冪乗された第２の群要素が、第２のユーザ装置の第２の関係キーの第１の要素であっても良い。
【０２１７】
ブロック１８２５で、第１のユーザ装置によって第３のランダム整数が得られ、第２のユーザ装置によって第４のランダム整数が得られても良い。例えば、第１のユーザ装置が、Ｚｑからランダム整数ａを選択し、第２のユーザ装置が、Ｚｑからランダム整数ｂを選択しても良い。
【０２１８】
ブロック１８３０で、第３のランダム整数により冪乗された第２の群要素が、第１のユーザ装置から第２のユーザ装置に送信されても良い。例えば、第１のユーザ装置がｈａを計算し、それを第２のユーザ装置に送信しても良い。
【０２１９】
ブロック１８３５で、第４のランダム整数により冪乗された第１の群要素が、第２のユーザ装置から第１のユーザ装置に送信されても良い。例えば、第２のユーザ装置がｇｂを計算し、それを第１のユーザ装置に送信しても良い。
【０２２０】
ブロック１８４０で、第１の関係キーが確立されても良い。例えば、第１のユーザ装置が、２つの要素を含む第１の関係キーを確立しても良い。第１の関係キー要素は、認証サーバによって選択された第１及び第２のランダム整数により冪乗された第１の群要素を含んでも良く、第２の関係キー要素は、第１のユーザ装置によって選択された第３のランダム整数により冪乗され、第２のユーザ装置によって選択された第４のランダム整数により冪乗された第１の群要素を含んでも良い。例えば、第２の要素を決定するため、第１のユーザ装置は、第２のユーザ装置から送信されたｇｂをとり、それをａにより冪乗しても良い。
【０２２１】
ブロック１８４５で、第２の関係キーが確立されても良い。例えば、第２のユーザ装置が、２つの要素を含む第２の関係キーを確立しても良い。第２の関係キーの第１の関係キー要素は、認証サーバによって選択された第２のランダム整数により冪乗された第２の群要素を含んでも良い。追加又は代替で、第２の関係キーの第２の関係キー要素は、第１のユーザ装置によって選択された第３のランダム整数により冪乗され、第２のユーザ装置によって選択された第４のランダム整数により冪乗された第２の群要素を含んでも良い。例えば、第２の要素を決定するため、第２のユーザ装置は、第１のユーザ装置から送信されたｈａをとり、それをｂにより冪乗しても良い。
【０２２２】
ブロック１８５０で、第１の関係キーを使用して、第１の平文値（例えばｌ）が、暗号化された第１のメッセージに関係暗号化される。例えば、第１のユーザ装置が、Ｚｑから第５のランダム整数ｒを得、第１の関係キーの第１の要素をｒにより冪乗し、第２の要素を、第５のランダム整数及び第１の平文値により冪乗しても良い。例えば、暗号化された第１のメッセージは（ｇｔｕｒ，ｇａｂｒｌ）を含んでも良い。
【０２２３】
ブロック１８５５で、第２の関係キーを使用して、第２の平文値（例えばｍ）が、暗号化された第２のメッセージに関係暗号化される。例えば、第２のユーザ装置が、Ｚｑから第６のランダム整数ｓを得、第２の関係キーの第１の要素をｓにより冪乗し、第２の要素を、第６のランダム整数及び第２の平文値により冪乗しても良い。例えば、暗号化された第２のメッセージは（ｈｕｓ，ｇａｂｓｍ）を含んでも良い。
【０２２４】
ブロック１８６０で、暗号化された第１及び第２のメッセージを認証サーバに送信しても良い。例えば、第１のユーザ装置が、暗号化された第１のメッセージを、ネットワーク（例えば図１６のネットワーク１０７）を介して認証サーバに送信しても良く、第２のユーザ装置が、暗号化された第２のメッセージを、同じネットワークを介して認証サーバに送信しても良い。
【０２２５】
ブロック１８６５で、暗号化された第１のメッセージも又は暗号化された第２のメッセージも復号化することなしに、暗号化された第１のメッセージと暗号化された第２のメッセージとが比較されても良い。例えば、認証サーバが、暗号化された第１のメッセージの第１の要素と暗号化された第２のメッセージの第２の要素とに対して第１のペアリング演算を実行しても良い。この例を続けると、認証サーバは、暗号化された第１のメッセージの第２の要素と、第２のランダム整数により冪乗された暗号化された第２のメッセージの第１の要素とに対して第２のペアリング演算を実行しても良い。数学的に示せば、幾つかの実施形態では、認証サーバが以下の等式を検証しても良い。
（外２７）
2017207751.tif 000029
【０２２６】
ブロック１８７０で、この比較に基づいて、第１の平文値が第２の平文値と同じであると判定しても良い。ブロック１８７０は、図１７のブロック１７５０と同様であり得、又はブロック１７５０に匹敵し得る。
【０２２７】
したがって、方法１８００は、関係暗号化方式を初期化し且つ／又は利用し得る。本開示の範囲から逸脱することなく、方法１８００に変更、追加又は省略が実施されても良い。例えば、方法１８００の演算は、異なる順序で実施されても良い。追加又は代替で、２つ以上の演算が同時に実行されても良い。さらに、概説された演算及び動作は例として提供されたものであり、それらの演算及び動作のうちの幾つかの演算及び動作は、開示の実施形態の本質を損なうことなしに、任意選択とされ、又はより少数の演算及び動作に結合され、又は追加の演算及び動作に拡張されても良い。
【０２２８】
本願明細書に記載した実施形態は、以下にさらに詳細に議論するように、種々のコンピュータハードウェア又はソフトウェアモジュールを備えた特定用途又は汎用コンピュータの使用を含み得る。
【０２２９】
本願明細書に記載した実施形態は、コンピュータ実行可能命令又はデータ構造を担持し又は格納したコンピュータ可読媒体を使用して実施され得る。このようなコンピュータ可読媒体は、汎用コンピュータ又は特定目的コンピュータによりアクセスできる利用可能な任意の媒体であり得る。例として、限定はされないが、このようなコンピュータ可読媒体は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、電気的に消去可能なプログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）若しくは他の光ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶装置、フラッシュメモリ装置（例えば固体メモリ素子）、又は、所望のプログラムコードをコンピュータ実行可能命令若しくはデータ構造の形式で担持し若しくは格納するために使用され、汎用コンピュータ若しくは特定目的コンピュータによってアクセスされる他の記憶媒体を含む、非一時的コンピュータ可読記憶媒体を含み得る。上述の組合せも、コンピュータ可読媒体の範囲に包含され得る。
【０２３０】
コンピュータ実行可能命令は例えば、汎用コンピュータ、特定目的コンピュータ又は特定目的処理装置（例えば１又は複数のプロセッサ）に、特定の機能又は一群の機能を実行させる命令及びデータを含む。本発明の主題は、構造的特徴及び／又は方法論的動作に特有の言葉で記載されたが、本発明の主題は、特許請求の範囲に定められる上述の特定の特徴又は動作に限定されないことが理解されるべきである。むしろ、上述の特定の特徴及び動作は、特許請求の範囲の実施の例示的形態として開示されたものである。
【０２３１】
本願明細書で使用されるとき、用語「モジュール」又は「コンポーネント」は、モジュール若しくはコンポーネントの動作を実行するように構成された特定ハードウェア実装、及び／又はコンピューティングシステムの汎用ハードウェア（例えばコンピュータ可読媒体、処理装置等）に格納され及び／又はそれらにより実行され得るソフトウェアオブジェクト若しくはソフトウェアルーチンを表しても良い。幾つかの実施形態では、本願明細書に記載されたさまざまなコンポーネント、モジュール、エンジン及びサービスは、（例えば別個のスレッドとして）コンピューティングシステムで実行されるオブジェクト又は処理として実施されても良い。本願明細書に記載のシステム及び方法の幾つかは概して（汎用ハードウェアに格納される及び／又はそれにより実行される）ソフトウェアで実装されるように記載されたが、専用ハードウェアの実装又はソフトウェアと専用ハードウェアの組合せの実装も可能であり、企図される。この説明では、「コンピューティングエンティティ」が、この説明では、「コンピュータエンティティ」が、本願明細書で上で定められたようにコンピューティングシステム、又はコンピューティングシステムで実行されるモジュール若しくはモジュールの組合せであっても良い。
【０２３２】
本願明細書に記載された全ての例及び条件文は、教育上の目的で、読者が本開示の原理及び発明者により考案された概念を理解するのを助け、技術を促進させるためであり、これらの特に記載された例及び条件に限定されないものと考えられるべきである。本開示の実施形態が詳細に記載されたが、種々の変更、置換及び修正が本開示の精神及び範囲から逸脱することなく行われ得ることが理解されるべきである。
【０２３３】
以上の実施形態に加えて、更に以下の付記を開示する。
（付記１）  コンピュータにより実施される方法であって、
サーバにおいて、暗号化された第１のメッセージを第１のユーザ装置から受信するステップであり、前記暗号化された第１のメッセージが、第１の数学的群要素に基づく第１の関係キー要素を含み、前記暗号化された第１のメッセージが、前記第１の数学的群要素に基づく、第１の平文値により冪乗された第２の関係キー要素を含む、ステップと、
前記サーバにおいて、暗号化された第２のメッセージを第２のユーザ装置から受信するステップであり、前記暗号化された第２のメッセージが、前記第１の数学的群要素とは異なる第２の数学的群要素に基づく第３の関係キー要素を含み、前記暗号化された第２のメッセージが、前記第２の数学的群要素に基づく、第２の平文値により冪乗された第４の関係キー要素を含む、ステップと、
前記サーバの１又は複数のプロセッサを使用して、前記暗号化された第１のメッセージを前記暗号化された第２のメッセージと比較するステップであり、前記サーバによって、前記暗号化された第１のメッセージも又は前記暗号化された第２のメッセージも復号化されない、ステップと、
前記比較に基づいて、前記１又は複数のプロセッサによって、前記第１の平文値と前記第２の平文値とが同じであると判定するステップと、
前記第１の平文値と前記第２の平文値とが同じであることに基づいて、制限された内容に前記第２のユーザ装置がアクセスすることを前記サーバが許可するステップと、
を含む方法。
（付記２）  前記第１のユーザ装置と前記第２のユーザ装置が、同じエンティティによって、異なるときに作動される、付記１に記載の方法。
（付記３）  前記第１の数学的群要素を、第１の数学的群のランダム要素として得るステップと、
前記第２の数学的群要素を、前記第１の数学的群とは別の第２の数学的群のランダム要素として得るステップと、
をさらに含む、付記１に記載の方法。
（付記４）  前記第１の数学的群が双線形要素を含む、付記３に記載の方法。
（付記５）  前記暗号化された第１のメッセージを前記暗号化された第２のメッセージと比較するステップが、
第１のランダム整数により冪乗された前記第１の関係キー要素と、第２のランダム整数により冪乗され、前記第２の平文値により冪乗された前記第４の関係キー要素とに対して、第１のペアリング関数演算を実行するステップと、
前記第１のランダム整数により冪乗され、前記第１の平文値により冪乗された前記第２の関係キー要素と、前記第２のランダム整数により冪乗された前記第３の関係キー要素とに対して、第２のペアリング関数演算を実行するステップと、
前記第１のペアリング関数演算と前記第２のペアリング関数演算の結果を比較するステップと、
を含む、付記１に記載の方法。
（付記６）  前記第１の平文値がパスワードを含む、付記１に記載の方法。
（付記７）  前記第１の関係キー要素が、前記サーバによって選択された第３のランダム整数により冪乗され、前記サーバによって選択された第４のランダム整数により冪乗された前記第１の数学的群要素を含み、前記第２の関係キー要素が、前記第１のユーザ装置によって選択された第５のランダム整数により冪乗され、前記第２のユーザ装置によって選択された第６のランダム整数により冪乗された前記第１の数学的群要素を含む、付記１に記載の方法。
（付記８）  前記第３の関係キー要素が、前記第４のランダム整数により冪乗された前記第２の数学的群要素を含み、前記第４の関係キー要素が、前記第５のランダム整数により冪乗され、前記第６のランダム整数により冪乗された前記第２の数学的群要素を含む、付記７に記載の方法。
（付記９）  プロセッサによって実行されると前記プロセッサに動作を実行させるように構成される命令を含む非一時的コンピュータ可読媒体であって、前記動作が、
暗号化された第１のメッセージを第１のユーザ装置から受信する動作であり、前記暗号化された第１のメッセージが、第１の数学的群要素に基づく第１の関係キー要素を含み、前記暗号化された第１のメッセージが、前記第１の数学的群要素に基づく、第１の平文値により冪乗された第２の関係キー要素を含む、動作と、
暗号化された第２のメッセージを第２のユーザ装置から受信する動作であり、前記暗号化された第２のメッセージが、前記第１の数学的群要素とは異なる第２の数学的群要素に基づく第３の関係キー要素を含み、前記暗号化された第２のメッセージが、前記第２の数学的群要素に基づく、第２の平文値により冪乗された第４の関係キー要素を含む、動作と、
前記暗号化された第１のメッセージを前記暗号化された第２のメッセージと比較する動作であり、前記暗号化された第１のメッセージも又は前記暗号化された第２のメッセージも復号化されない、動作と、
前記比較に基づいて前記第１の平文値と前記第２の平文値とが同じであると判定する動作と、
前記第１の平文値と前記第２の平文値とが同じであることに基づいて、制限された内容に前記第２のユーザ装置がアクセスすることを許可する動作と、
を含む非一時的コンピュータ可読媒体。
（付記１０）  前記第１のユーザ装置と前記第２のユーザ装置が、同じエンティティによって、異なるときに作動される、付記９に記載の非一時的コンピュータ可読媒体。
（付記１１）  前記動作が、
前記第１の数学的群要素を、第１の数学的群のランダム要素として得る動作と、
前記第２の数学的群要素を、前記第１の数学的群とは別の第２の数学的群のランダム要素として得る動作と、
をさらに含む、付記９に記載の非一時的コンピュータ可読媒体。
（付記１２）  前記第１の数学的群が双線形要素を含む、付記１１に記載の非一時的コンピュータ可読媒体。
（付記１３）  前記暗号化された第１のメッセージを前記暗号化された第２のメッセージと比較する前記動作が、
第１のランダム整数により冪乗された前記第１の関係キー要素と、第２のランダム整数により冪乗され、前記第２の平文値により冪乗された前記第４の関係キー要素とに対して、第１のペアリング関数演算を実行する動作と、
前記第１のランダム整数により冪乗され、前記第１の平文値により冪乗された前記第２の関係キー要素と、前記第２のランダム整数により冪乗された前記第３の関係キー要素とに対して、第２のペアリング関数演算を実行する動作と、
前記第１のペアリング関数演算と前記第２のペアリング関数演算の結果を比較する動作と、
を含む、付記１１に記載の非一時的コンピュータ可読媒体。
（付記１４）  前記第１の平文値がパスワードを含む、付記９に記載の非一時的コンピュータ可読媒体。
（付記１５）  前記第１の関係キー要素が、認証サーバによって選択された第３のランダム整数により冪乗され、前記認証サーバによって選択された第４のランダム整数により冪乗された前記第１の数学的群要素を含み、前記第２の関係キー要素が、前記第１のユーザ装置によって選択された第５のランダム整数により冪乗され、前記第２のユーザ装置によって選択された第６のランダム整数により冪乗された前記第１の数学的群要素を含む、付記９に記載の非一時的コンピュータ可読媒体。
（付記１６）  前記第３の関係キー要素が、前記第４のランダム整数により冪乗された前記第２の数学的群要素を含み、前記第４の関係キー要素が、前記第５のランダム整数により冪乗され、前記第６のランダム整数により冪乗された前記第２の数学的群要素を含む、付記１５に記載の非一時的コンピュータ可読媒体。
（付記１７）  第１のユーザ装置によって、第１の数学的群要素及び第２の数学的群要素を得るステップと、
前記第１のユーザ装置において、サーバから、第１のランダム整数により冪乗された前記第１の数学的群要素を受信するステップと、
前記第１のユーザ装置によって、第２のランダム整数を得るステップと、
前記第１のユーザ装置によって、第２のユーザ装置に、前記第２のランダム整数により冪乗された前記第２の数学的群要素を送信するステップと、
前記第１のユーザ装置において、前記第２のユーザ装置から、第３のランダム整数により冪乗された前記第１の数学的群要素を受信するステップと、
前記第１のユーザ装置の第１の関係キーを確立するステップであり、前記第１の関係キーの第１の要素が、前記第１のランダム整数により冪乗された前記第１の数学的群要素を含み、前記第１の関係キーの第２の要素が、前記第２のランダム整数により冪乗され、前記第３のランダム整数により冪乗された前記第１の数学的群要素を含む、ステップと、
を含む方法。
（付記１８）  前記第１のユーザ装置によって、前記第１の関係キーを使用して、第１の平文値を第１のメッセージ中に関係暗号化するステップと、
前記第１のメッセージを、前記第１のユーザ装置から前記サーバに送信するステップと、
をさらに含む付記１７に記載の方法。
（付記１９）  前記第１の平文値を関係暗号化するステップが、
前記第１のユーザ装置によって第４のランダム整数を得るステップと、
前記第１の関係キーの前記第１の要素を、前記第４のランダム整数により冪乗するステップと、
前記第１の関係キーの前記第２の要素を、前記第４のランダム整数及び前記第１の平文値により冪乗するステップと、
を含む、付記１８に記載の方法。
（付記２０）  前記第１の平文値が、前記第２のユーザ装置によって前記サーバに提供された第２の平文値と同じであることに基づいて、制限された内容へのアクセスを、前記サーバから受信するステップ、をさらに含む付記１８に記載の方法。
【符号の説明】
【０２３４】
１００  動作環境
１０２  ユーザ装置
１０７  ネットワーク
１０８  関係認証モジュール
１１０  関係暗号化／復号化モジュール
１１２  線形暗号化／復号化モジュール
１１４  近似暗号化／復号化モジュール
１１６  通信モジュール
１２２Ａ  メモリ
１２２Ｂ  メモリ
１２４Ａ  プロセッサ
１２４Ｂ  プロセッサ
１２６Ａ  通信ユニット
１２６Ｂ  通信ユニット
１２８  近似認証モジュール
１３０  登録暗号文
１３２  線形認証モジュール
１３４  サーバ通信モジュール
１４０  認証サーバ
１４２Ａ  第１の平文ベクトル
１４２Ｂ  第２の平文ベクトル
１４４  設定モジュール
１５０  第２のエンティティ
１５２  第１のエンティティ
【図１】
2017207751.tif 000030
【図２】
2017207751.tif 000031
【図３】
2017207751.tif 000032
【図４Ａ】
2017207751.tif 000033
【図４Ｂ】
2017207751.tif 000034
【図５】
2017207751.tif 000035
【図６】
2017207751.tif 000036
【図７】
2017207751.tif 000037
【図８】
2017207751.tif 000038
【図９】
2017207751.tif 000039
【図１０】
2017207751.tif 000040
【図１１】
2017207751.tif 000041
【図１２】
2017207751.tif 000042
【図１３】
2017207751.tif 000043
【図１４】
2017207751.tif 000044
【図１５】
2017207751.tif 000045
【図１６】
2017207751.tif 000046
【図１７】
2017207751.tif 000047
【図１８Ａ】
2017207751.tif 000048
【図１８Ｂ】
2017207751.tif 000049