(57)【特許請求の範囲】
【請求項１】
認証サーバが、
セキュリティパラメータに関連するランダム化レベルに処理され且つ関係線形性暗号化方式を用いて暗号化された不均一分散バイオメトリックデータのバイオメトリックテンプレートを表す線形性暗号文を受信するステップと、
線形性関係秘密キーを用いて、前記線形性暗号文と登録線形性暗号文との間の線形性関係を決定するステップと、
前記ランダム化レベルに処理され且つ関係近接性暗号化方式を用いて暗号化された前記バイオメトリックデータの前記バイオメトリックテンプレートを表す近接性暗号文を受信するステップと、
近接性関係秘密キーを用いて、前記近接性暗号文と登録近接性暗号文との間の近接性関係を決定するステップと、
前記セキュリティパラメータ、前記線形性関係、及び前記近接性関係に基づき、ユーザの同一性を認証するステップと、
を有する方法。
【請求項２】
前記ランダム化レベルに処理するステップは、線形抽出器により実行される、請求項１に記載の方法。
【請求項３】
前記バイオメトリックデータは、エントロピ、ノイズ閾、及びドメインの特徴を有する、請求項１に記載の方法。
【請求項４】
前記ランダム化レベルに処理するステップは、前記特徴のうちの１又は複数に依存する、請求項３に記載の方法。
【請求項５】
前記バイオメトリックデータは、別のバイオメトリック特徴との相関を有し、前記ランダム化レベルに処理するステップは、前記相関を考慮する、請求項１に記載の方法。
【請求項６】
前記認証のための前記セキュリティパラメータは、前記ランダム化レベルに比例する、請求項１に記載の方法。
【請求項７】
前記認証サーバが、
第２の線形性暗号文及び第２の近接性暗号文を受信するステップと、
前記第２の線形性暗号文を前記登録線形性暗号文として格納するステップと、
前記第２の近接性暗号文を前記登録近接性暗号文として格納するステップと、
前記線形性関係秘密キー及び前記近接性関係秘密キーを受信するステップと、
を更に有する請求項１に記載の方法。
【請求項８】
プロセッサにより実行されると該プロセッサに動作を実行させる又は動作の実行を制御させるプログラミングコードを有する非一時的コンピュータ可読媒体であって、前記動作は、
セキュリティパラメータに関連するランダム化レベルに処理され且つ関係線形性暗号化方式を用いて暗号化された不均一分散バイオメトリックデータのバイオメトリックテンプレートを表す線形性暗号文を受信するステップと、
線形性関係秘密キーを用いて、前記線形性暗号文と登録線形性暗号文との間の線形性関係を決定するステップと、
前記ランダム化レベルに処理され且つ関係近接性暗号化方式を用いて暗号化された前記バイオメトリックデータの前記バイオメトリックテンプレートを表す近接性暗号文を受信するステップと、
近接性関係秘密キーを用いて、前記近接性暗号文と登録近接性暗号文との間の近接性関係を決定するステップと、
前記セキュリティパラメータ、前記線形性関係、及び前記近接性関係に基づき、ユーザの同一性を認証するステップと、
を有する、コンピュータ可読媒体。
【請求項９】
前記ランダム化レベルに処理するステップは、線形抽出器により実行される、請求項８に記載のコンピュータ可読媒体。
【請求項１０】
前記バイオメトリックデータは、エントロピ、ノイズ閾、及びドメインの特徴を有する、請求項８に記載のコンピュータ可読媒体。
【請求項１１】
前記ランダム化レベルに処理するステップは、前記特徴のうちの１又は複数に依存する、請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記バイオメトリックデータは、別のバイオメトリック特徴との相関を有し、前記ランダム化レベルに処理するステップは、前記相関を考慮する、請求項８に記載のコンピュータ可読媒体。
【請求項１３】
前記認証のための前記セキュリティパラメータは、前記ランダム化レベルに比例する、請求項８に記載のコンピュータ可読媒体。
【請求項１４】
前記動作は、
第２の線形性暗号文及び第２の近接性暗号文を受信するステップと、
前記第２の線形性暗号文を前記登録線形性暗号文として格納するステップと、
前記第２の近接性暗号文を前記登録近接性暗号文として格納するステップと、
前記線形性関係秘密キー及び前記近接性関係秘密キーを受信するステップと、
を更に有する請求項８に記載のコンピュータ可読媒体。
【請求項１５】
認証サーバが、
バイオメトリックデータを受信するステップであって、前記バイオメトリックデータは不均一に分散される、ステップと、
平文ベクトルとしてランダム化レベルに前記バイオメトリックデータを処理するステップであって、前記ランダム化レベルはセキュリティパラメータに関連付けられる、ステップと、
前記平文ベクトルを表す線形性暗号文を生成するために、関係線形性暗号化方式を用いて前記平文ベクトルを暗号化するステップと、
前記平文ベクトルを表す近接性暗号文を生成するために、関係近接性暗号化方式を用いて前記平文ベクトルを暗号化するステップと、
前記線形性暗号文及び前記近接性暗号文を認証サーバに通信するステップと、
前記認証サーバから、関係線形性キーを用いて決定された前記線形性暗号文と登録線形性暗号文との間の線形性関係と、関係近接性キーを用いて決定された前記近接性暗号文及び登録近接性暗号文の間の近接性と、を示す前記セキュリティパラメータに基づく認証信号を受信するステップと、
を有する方法。
【請求項１６】
前記バイオメトリックデータを処理するステップは、線形抽出器により実行される、請求項１５に記載の方法。
【請求項１７】
前記バイオメトリックデータは、エントロピ、ノイズ閾、及びドメインの特徴を有する、請求項１５に記載の方法。
【請求項１８】
前記バイオメトリックデータを処理するステップは、前記特徴のうちの１又は複数に依存する、請求項１７に記載の方法。
【請求項１９】
前記バイオメトリックデータは、別のバイオメトリック特徴との相関を有し、前記バイオメトリックデータを処理するステップは、前記相関を考慮する、請求項１５に記載の方法。
【請求項２０】
前記セキュリティパラメータは、前記ランダム化レベルに比例する、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書で議論される実施形態は、関係暗号化に関する。
【背景技術】
【０００２】
ユーザ認証の形式は、生体認証を含み得る。生体認証は、通常、ユーザに対して一意であるユーザのバイオメトリック特徴を測定するステップを含む。測定されたバイオメトリック特徴、又はその表現は、次に、ユーザの同一性を認証する基礎として用いられる。バイオメトリック特徴は、ユーザの指紋、虹彩、静脈、ＤＡＮ（deoxyribonucleic  acid）のセクション、等生体認証は、パスワードを記憶している必要がなく、ユーザを認証することが可能であるという利点を有し得る。バイオメトリック特徴は不変であるので、生体認証システムにおいてプライバシが重要である。
【０００３】
本願明細書で請求される主題は、上述のような欠点を解決する実施形態や上述のような環境でのみ機能する実施形態に限定されない。むしろ、この背景技術は、単に、本願明細書に記載される複数の実施形態が実施される技術分野の一例を説明するために提供される。
【発明の概要】
【課題を解決するための手段】
【０００４】
一実施形態の一態様によると、方法は、バイオメトリックデータを受信するステップであって、前記バイオメトリックデータは不均一に分散される、ステップと、平文ベクトルとしてランダム化レベルに前記バイオメトリックデータを処理するステップであって、前記ランダム化レベルはセキュリティレベルに関連する、ステップと、を有する。方法は、前記平文ベクトルを表す線形性暗号文を生成するために、関係線形性暗号化方式を用いて前記平文ベクトルを暗号化するステップと、前記平文ベクトルを表す近接性暗号文を生成するために、関係近接性暗号化方式を用いて前記平文ベクトルを暗号化するステップと、前記線形性暗号文及び前記近接性暗号文を認証サーバに通信するステップと、を更に有する。方法は、関係線形性キーを用いて発見された線形性暗号文と登録線形性暗号文との間の線形性関係と、関係近接性キーを用いて検出された近接性暗号文と登録近接性暗号文との間の近接性と、を示すセキュリティレベルの認証信号を前記認証サーバから受信するステップを更に有しても良い。
【０００５】
実施形態の目的及び利点が理解され、少なくとも特に特許請求の範囲で指摘された要素、特徴及び組合せを用いて達成されるだろう。
【０００６】
上述の全体的説明及び以下の詳細な説明の両方は、例示及び説明のためであり、特許請求の範囲を限定しないことが理解される。
【図面の簡単な説明】
【０００７】
例示的な実施形態は、添付の図面を用いて、更なる特異性及び詳細事項と共に記載され説明される。
【図１】例示的な動作環境のブロック図である。
【図２】例示的な生体認証環境のブロック図である。
【図３】生体認証の例示的な方法のフロー図である。
【図４Ａ】関係暗号化の例示的な方法のフロー図である。
【図４Ｂ】関係暗号化の例示的な方法のフロー図である。
【図５】関係暗号化方式の線形性関係を発見する例示的な方法のフロー図である。
【図６】関係暗号化方式の近接性を検出する例示的な方法のフロー図である。
【図７】関係線形性暗号化方式のキー生成の例示的な方法のフロー図である。
【図８】関係線形性暗号化方式を用いる第１の平文ベクトルを暗号化する例示的な方法のフロー図である。
【図９】関係近接性暗号化方式のキー生成の例示的な方法のフロー図である。
【図１０】関係近接性暗号化方式を用いる第１の平文ベクトルを暗号化する例示的な方法のフロー図である。
【図１１】第１の線形性暗号文を復号化する例示的な方法のフロー図である。
【図１２】第１の線形性暗号文を復号化する別の例示的な方法のフロー図である。
【図１３】例示的な動作環境のブロック図である。
【図１４】関係暗号化方式を用いる不均一分散データを暗号化する例示的な方法のフロー図である。
【図１５】本願明細書に記載の少なくとも１つの実施形態に従って全て構成される、不均一分散データを処理する例示的な方法のフロー図である。
【発明を実施するための形態】
【０００８】
生体認証の課題は、ユ―ザが認証の基礎として用いられるバイオメトリック特徴を変更できないことであり得る。例えば、ユーザは、ユーザの指紋又はユーザの虹彩パターンのようなユーザの１又は複数のユニークな特徴を表すバイオメトリックデータを含むバイオメトリックテンプレートを登録しても良い。バイオメトリックテンプレートが危険に晒される場合、ユーザは、バイオメトリックテンプレートにより表されるユニークな特徴を変更することができない。したがって、一旦、危険に晒されると、別のバイオメトリックテンプレートが登録されても良く、又は、別のバイオメトリック特徴のバイオメトリックテンプレートが登録されても良い。少なくともこの理由から、生体認証システムは、強力なプライバシ保証の利益を享受し得る。現実のバイオメトリックデータでは、バイオメトリックデータは、著しく不均一であり得る。
【０００９】
幾つかの生体認証システムでは、セキュアな生体認証システムを提供するために種々のアプローチが実施されてきた。例えば、幾つかの生体認証システムは、「特徴変換アプローチ」、「生体暗号システムアプローチ」、及び／又は「同形暗号化アプローチ」を実装する。しかしながら、これらのアプローチの各々は、少なくとも部分的には、バイオメトリックテンプレート、クライアント固有キー、公開キー、等のような各々が危険に晒され得る情報の通信を理由として、限られたプライバシ及びセキュリティしか提供しない。
【００１０】
したがって、本願明細書で議論する幾つかの実施形態は、プライバシ保護生体認証に関連する。プライバシ保護生体認証は、関係暗号化に基づいても良い。関係暗号化は、認証側（authenticator）に平文を復元させずに又は本物の暗号文との特定の関係を有する不正暗号文を生成させずに、認証側に暗号文の間の関係を発見させる。例えば、例示的な実施形態は、生体認証の方法を有する。方法は、登録入力を受信するステップを有しても良い。登録入力は、ユーザの第１のバイオメトリックテンプレートを有しても良い。第１のバイオメトリックテンプレートは、ユーザのバイオメトリック特徴のユニークな特徴を表しても良い。方法は、関係暗号化方式に従って、第１の線形性暗号文及び第１の近接性暗号文を生成するステップを有しても良い。方法は、第１の線形性暗号文及び第１の近接性暗号文を認証サーバに通信するステップを有しても良い。方法は、チャレンジ（challenge）入力を受信するステップを有しても良い。チャレンジ入力は、第２のバイオメトリックテンプレートを有しても良い。第２のバイオメトリックテンプレートは、ユーザのバイオメトリック特徴の１又は複数のユニークな特徴を表しても良い。方法は、関係暗号化方式に従って、第２の線形性暗号文及び第２の近接性暗号文を生成するステップを有しても良い。方法は、第２の線形性暗号文及び第２の近接性暗号文を認証サーバに通信するステップを有しても良い。認証サーバは、第１及び第２の線形性暗号文の間の線形性関係を発見し、第１及び第２の近接性暗号文の間の近接性を検出しても良い。方法は、認証サーバから、認証決定を示す信号を受信するステップを有しても良い。認証決定は、線形性関係及び／又は近接性の存在又は不存在に基づいても良い。
【００１１】
幾つかの実施形態では、基礎データは、線形性又は近接性暗号文を生成する前に、先ず処理されても良い。例えば、基礎データは、基礎にある平文の中のランダム化レベルを提供し得る線形抽出器（linear  extractor）を通されても良い。本開示の実施形態を、添付の図面を参照して以下に説明する。
【００１２】
図１は、本願明細書に記載の少なくとも１つの実施形態により配置される例示的な動作環境１００のブロック図を示す。動作環境１００では、関係暗号化が実行されても良い。関係暗号化は、第１のエンティティ１５２が、第２のエンティティ１５０により提供される２以上の暗号文の間の１又は複数の関係を決定できるようにする暗号プリミティブを有しても良い。特に、関係暗号化は、第１のエンティティ１５２に２以上の暗号文の間の線形性関係を発見させ、２以上の暗号文の間の近接性を検出させる。さらに、関係暗号化は、第１のエンティティ１５２に暗号文から平文を復元させ、又は特定の本物の暗号文との特定の関係を有する不正暗号文を構築させる。
【００１３】
関係暗号化は、種々の環境において実装されても良い。例えば、関係暗号化は、個人が彼らの位置を非公開に保ちたいと望む社会環境において実施されても良いが、半ば信頼できるサービスは、位置同士の近接性の検出を可能にし得る。さらに、関係暗号化は、画像比較環境において実施されても良い。近接性は、画像同士の類似性を決定するために、データベースからの画像の間で検出されても良い。画像のプライバシは維持されても良い。ユーザは、データベースにある画像に触れずに、関係暗号化を用いて画像を検索しても良い。さらに、関係暗号化は、私的データ記憶環境において実施されても良い。ユーザは、そのデータを暗号化し、暗号化データをデータベースに通信しても良い。分析（例えば、記憶、クラスタリング、等）は、暗号化データが解読されるリスクを伴わず、暗号化データに対して実行され得る。
【００１４】
例えば、第２のエンティティ１５０は、第１の平文ベクトル１４２Ａ及び第２の平文ベクトル１４２Ｂ（通常、平文ベクトル１４２又は複数の平文ベクトル１４２）を受信しても良い。平文ベクトル１４２は、バイオメトリックテンプレート、位置情報、等のような任意のデータセットを有しても良い。第２のエンティティ１５０は、第１の平文ベクトル１４２Ａの暗号化バージョンを有する第１の暗号文を第１のエンティティ１５２に通信しても良い。後に、第２のエンティティ１５０は、第２の平文ベクトル１４２Ｂの暗号化バージョンを有する第２の暗号文を第１のエンティティ１５２に通信しても良い。第１のエンティティ１５２は、第１の暗号文と第２の暗号文との間に線形性関係があるか否かを発見しても良く、第１の暗号文と第２の暗号文との間の近接性を検出しても良い。幾つかの実施形態では、近接性は、ハミング距離の観点であっても良い。
【００１５】
しかしながら、関係暗号化は、第１のエンティティ１５２が、第１及び第２の暗号文から平文ベクトル１４２を構築することを許さない。さらに、関係暗号化は、第１のエンティティ１５２が、第１の暗号文及び／又は第２の暗号文と特定の線形性関係及び／又は特定の近接性を有する第３の暗号文を構築することを許さない。図１は、２つの平文ベクトル１４２と、したがって２つの暗号文と、を有する実施形態を示す。幾つかの実施形態では、２つより多い平文ベクトル１４２と、したがって２つより多い暗号文とが、動作環境１００に含まれても良い。
【００１６】
関係暗号化は、１又は複数の関係キーを有しても良い。関係キーは、公開及び／又は署名キーと同様であっても良く、第１のエンティティ１５２に提供され又はそれにより生成されても良い。関係キーは、暗号文の間の関係の決定を可能にし得るが、暗号文の復号化又は平文ベクトル１４２の復元を許さない。さらに、関係キーは、特定の暗号文との特定の関係を有する暗号文の構築を許さない。
【００１７】
幾つかの実施形態では、関係暗号化は、アルゴリズムのタプルを有する関係について、関係暗号化方式に従って定められても良い。アルゴリズムは、キー生成アルゴリズム、第１の暗号化アルゴリズム、第１の復号化アルゴリズム、第１の暗号化アルゴリズム、第２の復号化アルゴリズム、及び検証アルゴリズムを有しても良い。関係は、３つのセットの部分集合として定められても良い。さらに、関係及びアルゴリズムは、１又は複数の正確性条件を満たしても良い。例えば、関係は、以下の例示的な正確性条件を満たしても良い。
【００１８】
Ｒ⊆ＸｘＹｘＺ
（ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ）←ＫｅｙＧｅｎ（１λ）
ｃｘ←ＥｎｃＸ（ｐｋｘ，ｘ）
ｃｙ←ＥｎｃＹ（ｐｋｙ，ｙ）
ｂ←Ｖｅｒｉｆｙ（ｓｋＲ，ｃｘ，ｃｙ，ｚ）
ｂ≒Ｒ（ｘ，ｙ，ｚ）
正確性条件では、Ｒは関係を表す。演算子⊆は、部分集合演算子を表す。パラメータＸ、Ｙ、Ｚはセットを表す。パラメータｘは、第１の平文ベクトル１４２Ａを表す。パラメータｙは、第２の平文ベクトル１４２Ｂを表す。ＫｅｙＧｅｎは、キー生成アルゴリズムを表す。ＥｎｃＸは、第１の暗号化アルゴリズムを表す。ＥｎｃＹは、第２の暗号化アルゴリズムを表す。Ｖｅｒｉｆｙは、検証アルゴリズムを表す。演算子←は、出力演算子を表す。パラメータｐｋｘは、第１の公開キーを表す。パラメータｐｋｙは、第２の公開キーを表す。パラメータｓｋｘは、第１の秘密キーを表す。パラメータｓｋｙは、第２の秘密キーを表す。パラメータｓｋＲは、関係秘密キーを表す。パラメータｃｘは、第１の暗号文を表す。パラメータｃｙは、第２の暗号文を表す。パラメータｂは、検証アルゴリズムによる出力を表す。パラメータλは、セキュリティパラメータを表す。パラメータｚは、検証エンティティにより選択され得る特定の値を表す。演算子≒は、合致（congruency）演算子を表す。正確性条件では、検証アルゴリズムからの出力は、圧倒的な確率を有する関係と合致する。
【００１９】
関係暗号化方式は、関係キーが、特定の暗号文との特定の関係を有する暗号文の構築を許さない、及び特定の暗号文からの平文ベクトル１４２Ａの復元を許さない、という意味でセキュアであり得る。例えば、関係暗号化方式は、以下の式が保たれる場合にセキュアであり得る。
１）ＫｅｙＧｅｎ（１λ）を行うアルゴリズムをＫｘ（１λ）として、出力（ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ）及び出力（ｐｋｘ，ｓｋｘ）を取り入れる。その結果、（Ｋｘ，ＥｎｃＸ，ＤｅｃＸ）はＩＮＤ−ＣＰＡセキュアである。
２）ＫｅｙＧｅｎ（１λ）を行うアルゴリズムをＫｙ（１λ）として、出力（ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ）及び出力（ｐｋｘ，ｓｋｘ）を取り入れる。その結果、（Ｋｙ，ＥｎｃＹ，ＤｅｃＹ）はＩＮＤ−ＣＰＡセキュアである。
３）ＫｅｙＧｅｎ（１λ）を行うアルゴリズムをＫＲ（１λ）として、出力（ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ）及び出力（ｐｋｘ，ｓｋｘ，ｓｋＲ）を取り入れる。その結果、ＥｎｃＸ（ｐｋｘ，・）及びＥｎｃＹ（ｐｋｙ，・）は、ｓｋＲが分かる場合に、一方向性関数である。
【００２０】
上述の式では、ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ，ＫｅｙＧｅｎ，ＥｎｃＸ（）及びＥｎｃＹ（）は、上述の通りである。ＤｅｃＸは、第１の復号化アルゴリズムを表す。ＤｅｃＹは、第２の復号化アルゴリズムを表す。Ｋｘ（）、Ｋｙ（）、及びＫＲ（）は、上記の式において説明した通りである。記号「・」は任意の値を示す。用語「ＩＮＤ−ＣＰＡ」は、indistinguishability  under  chosen−plaintext  attackの略である。幾つかの他の実施形態では、（Ｋｙ，ＥｎｃＹ，ＤｅｃＹ）及び／又は（Ｋｘ，ＥｎｃＸ，ＤｅｃＸ）は、ＩＮＤ−ＣＣＡ（indistinguishability  under  chosen  ciphertext  attack）（例えば、ＩＮＤ−ＣＣＡ１又はＩＮＤ−ＣＣＡ２）又は任意の他の適切なセキュリティメトリックのような別の計算セキュリティメトリックに従ってセキュアであっても良い。
【００２１】
さらに、幾つかの実施形態では、関係暗号化方式は、関係線形性暗号化方式を有しても良い。関係線形性暗号化方式は、以下の例示的な線形性関係式に従って関係を定めても良い。
【００２２】
Ｒ＝｛（ｘ，ｙ，ｚ）｜ｘ＋ｙ＝ｚ∧ｘ，ｙ，ｚ∈Ｆｎｐ｝
線形性関係式では、Ｒ、ｘ、ｙ、及びｚは、上述の通りである。演算子∈は、メンバーシップ演算子を表す。演算子｜は、「〜の条件を満たす」（ｓｕｃｈ  ｔｈａｔ）演算子を表す。演算子∧は、論理結合演算子を表す。パラメータＦはフィールドを表す。添え字ｎは、通常、フィールドの次元を表す。フィールドの次元は、本願明細書の別の場所で議論するようなキーのうちの１又は複数の長さを有しても良い。添え字ｐは、フィールドの基本数（base−number）を表す。例えば、Ｆ１０３では、フィールドは、１０の次元及び３の基本数を有する。３の基本数は、フィールドの各々の要素が０、１、又は２であることを示す。
【００２３】
さらに、幾つかの実施形態では、関係暗号化方式は、以下の例示的な近接性式に従って関係を定める関係近接性暗号化方式を有しても良い。
【００２４】
Ｒδ＝｛（ｘ，ｙ）｜ｄｉｓｔ（ｘ，ｙ）≦δ∧ｘ，ｙ∈Ｆｋｐ｝
近接性式では、Ｒ、ｘ、∧、∈、及びｙは、上述の通りである。パラメータδは、親密さ（closeness）を定める距離を表す。演算子ｄｉｓｔは、ハミング距離を表す。線形性関係式におけるように、パラメータＦはフィールドを表す。しかしながら、近接性式におけるフィールドは、線形性関係式におけるフィールドとは異なる次元を有しても良い。近接性式におけるフィールドの次元は、線形誤り訂正符号に関連しても良い。
【００２５】
本願明細書で議論する関係暗号化方式は、図１の動作環境１００において実施されても良い。関係暗号化方式は、第２のエンティティ１５０が、暗号化情報を第１のエンティティ１５２へ通信することを可能にし、第１のエンティティ１５２が、暗号化情報の間の線形性関係を発見し及び／又は暗号化情報の間の近接性を決定することを可能にしても良い。
【００２６】
動作環境１００は、第２のエンティティ１５０に関連付けられるユーザ装置１０２と、第１のエンティティ１５２に関連付けられる認証サーバ１４０と、を有しても良い。ユーザ装置１０２及び認証サーバ１４０は、関係暗号化を実行するために、動作環境１００の中に実装されても良い。
【００２７】
ユーザ装置１０２及び認証サーバ１４０は、概して、ネットワーク１０７を介する、関係暗号化に関連する情報及び／又はデータ（例えば、暗号文、キー、平文ベクトル１４２Ａ、等）の生成及び通信を可能にする任意のコンピューティング装置を有しても良い。ユーザ装置１０２の幾つかの例は、携帯電話機、スキャニング装置、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、セットトップボックス、又はコネクテッドデバイス（例えば、スマートウォッチ、スマート眼鏡、スマート歩数計、又は任意の他のコネクテッドデバイス）を有しても良い。認証サーバ１４０の幾つかの例は、ハードウェアサーバ又はサーバとして機能するよう構成される別のプロセッサに基づくコンピューティング装置を有しても良い。
【００２８】
ネットワーク１０７は、有線又は無線であっても良い。ネットワーク１０７は、スター構成、トークンリング構成若しくは他の構成を含む多数の構成を有しても良い。さらに、ネットワーク１０７は、ＬＡＮ（local  area  network）、ＷＡＮ（wide  area  network）（例えば、インターネット）、及び／又は複数の装置が通信できる他の相互接続されたデータ経路を有しても良い。幾つかの例では、ネットワーク１０７は、ピアツーピアネットワークを有しても良い。ネットワーク１０７は、種々の異なる通信プロトコルでデータを送信する通信ネットワークの一部に結合され又はそれを含んでも良い。幾つかの例では、ネットワーク１０７は、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信ネットワーク又はＳＭＳ（short  messaging  service）、ＭＭＳ（multimedia  messaging  service）、ＨＴＴＰ（hypertext  transfer  protocol）、直接データ接続、ＷＡＰ（wireless  application  protocol）、電子メール等を介することを含むデータを送信及び受信するセルラ通信ネットワークを有しても良い。
【００２９】
ユーザ装置１０２は、関係暗号化／復号化モジュール（ｅｎｃ／ｄｅｃモジュール）１１０、プロセッサ１２４Ａ、メモリ１２２Ａ、及び通信ユニット１２６Ａを有しても良い。ｅｎｃ／ｄｅｃモジュール１１０、プロセッサ１２４Ａ、メモリ１２２Ａ、及び通信ユニット１２６Ａは、バス１２０Ａにより結合されても良い。認証サーバ１４０は、関係認証モジュール１０８、プロセッサ１２４Ｂ、メモリ１２２Ｂ、及び通信ユニット１２６Ｂを有しても良い。関係認証モジュール１０８、プロセッサ１２４Ｂ、メモリ１２２Ｂ、及び通信ユニット１２６Ｂは、バス１２０Ｂにより結合されても良い。
【００３０】
プロセッサ１２４Ａ及び１２４Ｂは、本願明細書では概してプロセッサ１２４又は複数のプロセッサ１２４と表される。メモリ１２２Ａ及び１２２Ｂは、本願明細書では概してメモリ１２２と表される。通信ユニット１２６Ａ及び１２６Ｂは、本願明細書では概して通信ユニット１２６又は複数の通信ユニット１２６と表される。バス１２０Ａ及び１２０Ｂは、本願明細書では概してバス１２０又は複数のバス１２０と表される。
【００３１】
プロセッサ１２４は、計算及びプライバシ保護を実行するためのＡＬＵ（arithmetic  logic  unit）、マイクロプロセッサ、汎用制御部、又は何らかの他のプロセッサ又はプロセッサアレイを有しても良い。プロセッサ１２４は、他のコンポーネント（例えば、１０８、１１０、１２２、及び１２６）との通信のためにバス１２０に結合されても良い。プロセッサ１２４は、概して、データ信号を処理し、ＣＩＳＣ（complex  instruction  set  computer）アーキテクチャ、ＲＩＳＣ（reduced  instruction  set  computer）アーキテクチャ、又は命令セットの組合せを実施するアーキテクチャを含む種々のコンピューティングアーキテクチャを有しても良い。図１では、ユーザ装置１０２及び認証サーバ１４０は、各々、信号プロセッサ１２４を有しても良い。しかしながら、ユーザ装置１０２及び／又は認証サーバ１４０は、複数のプロセッサを有しても良い。他のプロセッサ、オペレーティングシステム、及び物理構成も可能であり得る。
【００３２】
メモリ１２２は、プロセッサ１２４のうちの１又は複数により実行され得る命令及び／又はデータを格納するよう構成されても良い。メモリ１２２は、他のコンポーネントと通信するためにバス１２０に結合されても良い。命令及び／又はデータは、本願明細書に記載の技術又は方法を実行するコードを有しても良い。メモリ１２２は、ＤＲＡＭ素子、ＳＲＡＭ素子、フラッシュメモリ、又は何らかの他のメモリ素子を有しても良い。幾つかの実施形態では、メモリ１２２は、不揮発性メモリ、又はハードディスクドライブ、フロッピディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置又は従来知られているより永久的に情報を格納する特定の他の大容量記憶装置を含む同様の永久記憶装置及び媒体も有しても良い。
【００３３】
通信ユニット１２６は、データをユーザ装置１０２及び／又は認証サーバ１４０へ送信し及びそれらから受信するよう構成されても良い。通信ユニット１２６はバス１２０に結合されても良い。幾つかの実施形態では、通信ユニット１２６は、ネットワーク１０７への又は別の通信チャネルへの直接物理接続のためのポートを有しても良い。例えば、通信ユニット１２６は、ＵＳＢ（universal  serial  bus）、ＳＤ（standard  definition）、ＣＡＴ−５、又は図１の動作環境１００のコンポーネントとの有線通信のための同様のポートを有しても良い。幾つかの実施形態では、通信ユニット１２６は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、ＢＬＵＥＴＯＯＴＨ（登録商標）又は別の適切な無線通信方法を含む１又は複数の無線通信方法を用いて通信チャネルによりデータを交換する無線通信機を有する。
【００３４】
幾つかの実施形態では、通信ユニット１２６は、ＳＭＳ、ＭＭＳ、ＨＴＴＰ、直接データ接続、ＷＡＰ、電子メール、又は別の適切な種類の電子通信を含むセルラ通信ネットワークを介してデータを送信及び受信するセルラ通信通信機を有する。幾つかの実施形態では、通信ユニット１２６は、有線ポート及び無線通信機を有する。通信ユニット１２６は、ＴＣＰ／ＩＰ（transmission  control  protocol/internet  protocol）、ＨＴＴＰ、ＨＴＴＰセキュア（ＨＴＴＰＳ）、及びＳＭＴＰ（simple  mail  transfer  protocol）を含む標準ネットワークプロトコルを用いてファイル及び／又は媒体オブジェクトの分配のためにネットワーク１０７への他の接続を提供しても良い。
【００３５】
ｅｎｃ／ｄｅｃモジュール１１０は、上述の関係暗号化方式のような又は上述の特徴のうちの１又は複数を有する、関係暗号化方式を設定するよう構成されても良い。ｅｎｃ／ｄｅｃモジュール１１０は、次に、平文ベクトル１４２を受信し、平文ベクトル１４２を暗号化し、ネットワーク１０７を介して認証サーバ１４０へ暗号文を通信しても良い。さらに、ｅｎｃ／ｄｅｃモジュール１１０は、平文ベクトル１４２のうちの１又は複数を構築するために、暗号文を復号化するよう構成されても良い。ｅｎｃ／ｄｅｃモジュール１１０が暗号化及び／又は復号化処理を実行するよう構成される実施形態では、ｅｎｃ／ｄｅｃモジュール１１０は、本願明細書で議論する暗号化／復号化アルゴリズム及び／又は暗号化／復号化キーを用いて、暗号化及び／又は復号化処理を実行しても良い。
【００３６】
ｅｎｃ／ｄｅｃモジュール１１０が関係暗号化方式を設定するよう構成される実施形態では、ｅｎｃ／ｄｅｃモジュール１１０は、１又は複数の関係秘密キー及び／又は１又は複数の検証アルゴリズムを、認証サーバ１４０の関係認証モジュール１０８へ通信するよう構成されても良い。他の実施形態では、関係認証モジュール１０８は、関係秘密キー及び／又は検証アルゴリズムをローカルに生成しても良く、及び／又は関係秘密キー又は検証アルゴリズムを他のソースから得ても良い。
【００３７】
関係認証モジュール１０８は、暗号文、関係秘密キー、検証アルゴリズム、又はそれらの何らかの組み合わせを、ｅｎｃ／ｄｅｃモジュール１１０又は別のソースから受信するよう構成されても良い。関係認証モジュール１０８は、次に、暗号文の間の線形性関係を発見しても良く、及び／又は暗号文の間の近接性を検出しても良い。関係認証モジュール１０８は、関係秘密キー及び／又は検証アルゴリズムを用いて、暗号文の間の線形性関係を発見し及び近接性を検出しても良い。
【００３８】
図１の動作環境１００では、ｅｎｃ／ｄｅｃモジュール１１０は、線形性暗号化／復号化モジュール１１２、近接性暗号化／復号化モジュール１１４、通信モジュール１１６、及び設定モジュール１１４を有しても良い。さらに、関係認証モジュール１０８は、サーバ通信モジュール１３４、線形性認証モジュール１３２、及び近接性認証モジュール１２８を有しても良い。幾つかの実施形態では、設定モジュール１４４、又は設定モジュール１４４に属する１又は複数の動作を実行するよう構成されるモジュールは、関係認証モジュール１０８に含まれても良い。
【００３９】
ｅｎｃ／ｄｅｃモジュール１１０、線形性暗号化／復号化モジュール１１２、近接性暗号化／復号化モジュール１１４、通信モジュール１１６、設定モジュール１４４、関係認証モジュール１０８、サーバ通信モジュール１３４、線形性認証モジュール１３２、及び近接性認証モジュール１２８は、集合的に、関係モジュールと表されても良い。関係モジュールのうちの１又は複数は、本願明細書に記載の１又は複数の動作を実行するよう構成される１又は複数のルーチンを含むソフトウェアとして実装されても良い。関係モジュールは、本願明細書に記載する機能を提供するためにプロセッサ１２４により実行可能な命令セットを有しても良い。幾つかの例では、関係モジュールは、メモリ１２２に格納され又は少なくとも一時的にそれにロードされても良く、プロセッサ１２４のうちの１又は複数によりアクセス可能又は実行可能であっても良い。関係モジュールのうちの１又は複数は、バス１２０のうちの１又は複数を介するプロセッサ１２４のうちの１又は複数との協働及び通信のために適用されても良い。
【００４０】
概して関係モジュールを参照すると、通信モジュール１１６及び／又はサーバ通信モジュール１３４は、それぞれ、ｅｎｃ／ｄｅｃモジュール１１０又は関係認証モジュール１０８、及びユーザ装置１０２若しくは認証サーバ１４０の他のコンポーネント（例えば、１２２、１２４、及び１２６）との間の通信を扱うよう構成されても良い。通信モジュール１１６及び／又はサーバ通信モジュール１３４は、通信ユニット１２６を介して、ユーザ装置１０２又は認証サーバ１４０へデータを送信し及びそれからデータを受信するよう構成されても良い。幾つかの例では、通信モジュール１１６及び／又はサーバ通信モジュール１３４は、通信ユニット１２６を介して、ユーザ装置１０２又は認証サーバ１４０からのデータを受信し及び／又は転送するために、他の関係モジュールと協働しても良い。
【００４１】
線形性暗号化／復号化モジュール１１２は、線形性暗号文を構築するために平文ベクトル１４２を暗号化することに関連する及び／又は線形性暗号文を復号化することに関連する１又は複数の動作を実行するよう構成されても良い。線形性認証モジュール１３２は、線形性暗号文に関連する１又は複数の動作を実行するよう構成されても良い。例えば、線形性認証モジュール１３２は、線形性暗号文のうちの２以上の間の線形性関係を発見するよう構成されても良い。
【００４２】
近接性暗号化／復号化モジュール１１４は、近接性暗号文を構築するために平文ベクトル１４２を暗号化することに関連する及び／又は近接性暗号文を復号化することに関連する１又は複数の動作を実行するよう構成されても良い。近接性認証モジュール１２８は、近接性暗号文に関連する１又は複数の動作を実行するよう構成されても良い。例えば、近接性認証モジュール１２８は、近接性暗号文のうちの２以上の間の近接性を検出するよう構成されても良い。
【００４３】
設定モジュール１４４は、１又は複数のキー（例えば、公開キー、秘密キー、関係秘密キー）及び／又は１又は複数のアルゴリズム（例えば、暗号化アルゴリズム、復号化アルゴリズム、及び検証アルゴリズム）を生成するよう構成されても良い。設定モジュール１４４は、次に、キー及びアルゴリズムのうちの１又は複数を、通信モジュール１１６及びサーバ通信モジュール１３４により関係認証モジュール１０８に、又は線形性暗号化／復号化モジュール１１２及び近接性暗号化／復号化モジュール１１４に、通信しても良い。
【００４４】
以下の段落で、関係線形性暗号化方式に続き、関係近接性暗号化方式が説明される。関係線形性暗号化方式は、ビットベクトルを参照して、次にｐ−ａｒｙベクトルを参照して、説明される。説明の各々において、設定モジュール１４４はキーを生成する。これは最初に説明される。キーを用いて、線形性暗号化／復号化モジュール１１２又は近接性暗号化／復号化モジュール１１４のうちの１つは、暗号化を実行する。これは、次に説明される。暗号文（例えば、線形性暗号文又は近接性暗号文）は、次に、線形性関係が発見され又は近接性が検出される、線形性認証モジュール１３２及び近接性認証モジュール１２８のうちの１つに通信されても良い。最後に、線形性暗号化／復号化モジュール１１２又は近接性暗号化／復号化モジュール１１４により実行され得る暗号文の復号化が説明される。
【００４５】
＜関係線形性暗号化方式＞
暗号文の間の線形性関係を発見するステップに含まれる１又は複数の動作では、設定モジュール１４４は、平文ベクトル１４２及び／又は暗号文の要素の基本数に少なくとも部分的に基づき得るキーを出力しても良い。例えば、要素の基本数は、２（例えば、バイナリ又はビットベクトル）を有しても良い。したがって、平文ベクトル１４２及び暗号文は、０又は１を有する要素を含んでも良い。代替で、要素の基本数は、３（例えば、ｔｒｉ−ａｒｙ又はベクトル）を有しても良い。したがって、平文ベクトル１４２及び暗号文は、０、１、又は２を有する要素を含んでも良い。概して、基本数は、変数「ｐ」により表される（例えば、ｐ−ａｒｙベクトル）。ｐ−ａｒｙベクトルは、０、１、．．．、ｐ−２、及びｐ−１を有し得る要素を含んでも良い。関係線形性暗号化方式は、平文ベクトル１４２及び／又は暗号文がビットベクトル又はｐ−ａｒｙベクトルであるか否かに基づき、僅かに異なる。先ず、ビットベクトルの関係線形性暗号化方式が議論され、次に、ｐ−ａｒｙベクトルの関係線形性暗号化方式が続く。
【００４６】
ビットベクトル及びｐ−ａｒｙベクトルの関係線形性暗号化方式では、設定モジュール１４４は、関係線形性暗号化方式のキーを生成するよう構成されても良い。図示の実施形態では、設定モジュール１４４は、第１の線形性秘密キー、第２の線形性秘密キー、第１の線形性公開キー、第２の線形性公開キー、及び線形性関係秘密キー（集合的に、「線形性キー」）を生成しても良い。線形性キーは、平文ベクトル１４２を暗号化するため、線形性暗号文を生成するため、線形性暗号文を復号化するため、及び線形性暗号文の間の線形性関係を発見するために用いられても良い。
【００４７】
例えば、第１の線形性公開キーは、第１の平文ベクトル１４２Ａを暗号化して第１の線形性暗号文を生成するために、線形性暗号化／復号化モジュール１１２により使用されても良い。第１の線形性暗号文は、通信モジュール１１６により認証サーバ１４０に通信されても良い。第１の線形性暗号文は、登録暗号文１３０として認証サーバ１４０に格納されても良い。第２の線形性公開キーは、第２の平文ベクトル１４２Ｂを暗号化して第２の線形性暗号文を生成するために、線形性暗号化／復号化モジュール１１２により使用されても良い。第２の線形性暗号文は、通信モジュール１１６により認証サーバ１４０に通信されても良い。線形性関係秘密キーは、認証サーバ１４０において、特に線形性認証モジュール１３２により、第２の線形性暗号文と第１の線形性暗号文との間の線形性関係を発見するために、使用されても良い。この線形性関係は、登録暗号文１３０として格納される。
【００４８】
第１及び第２の線形性秘密キーは、線形性暗号化／復号化モジュール１１２により、線形性暗号文のうちの１又は複数を復号化するために使用されても良い。例えば、第１の線形性暗号文は、第１の秘密キーを用いて復号化されても良い。さらに、第１及び第２の線形性秘密キーは、設定モジュール１４４により、関係線形性キーを生成するために使用されても良い。線形性キー及び上述の動作の幾つかの追加の詳細事項は、ビットベクトルについて及びｐ−ａｒｙベクトルについて以下に提供される。
【００４９】
＜ビットベクトル関係線形性暗号化方式＞
ビットベクトルが実装される実施形態では、線形性キーは、セキュリティパラメータのために生成されても良い。概して、本願明細書で用いられるセキュリティパラメータは、キー長を表しても良い。キーを生成するために、設定モジュール１４４は、３個の双線形素数位数群（group  of  prime  order）を生成しても良い。素数位数は、セキュリティパラメータにおける指数であっても良い。設定モジュール１４４は、３個の双線形群のうちの第１の双線形群の第１の生成元をサンプリングし、３個の双線形群のうちの第２の双線形群の第２の生成元をサンプリングしても良い。
【００５０】
設定モジュール１４４は、整数の集合から特定数の要素をランダムにサンプリングすることにより、第１の線形性秘密キーを生成しても良い。整数の集合は、ゼロから、素数位数−１の値までを有しても良い。設定モジュール１４４は、整数の集合から特定数の要素をランダムにサンプリングすることにより、第２の線形性秘密キーを生成しても良い。
【００５１】
設定モジュール１４４は、第１の線形性公開キーを定めても良い。第１の線形性公開キーは、第１の生成元である要素を有しても良い。第１の線形性公開キーは、第１の線形性秘密キーの対応する要素により冪乗される第１の生成元を含む１又は複数の他の要素を更に有しても良い。幾つかの実施形態では、第１の生成元である要素は、第１の線形性公開キーの第１の要素であっても良い。これは、第１の線形性公開キーと第１の線形性秘密キーとの間の対応で説明できない。例えば、上述の及び他の実施形態では、第１の線形性公開キーの「第６の」要素（例えば、第１の要素を説明する）は、第１の線形性秘密キーの第５の要素により冪乗された第１の生成元を有しても良い。本願を通じて、要素間の対応について同様の慣例が実施されても良い。
【００５２】
設定モジュール１４４は、第２の線形性公開キーを定めても良い。第２の線形性公開キーは、第２の生成元である要素を有しても良い。第２の線形性公開キーは、第２の線形性秘密キーの対応する要素により冪乗される第２の生成元を含む１又は複数の他の要素を更に有しても良い。幾つかの実施形態では、第２の生成元である要素は、第２の線形性公開キーの第１の要素であっても良い。これは、第２の線形性公開キーと第２の線形性秘密キーとの間の対応において考慮されない。
【００５３】
設定モジュール１４４は、線形性関係秘密キーを定めても良い。線形性関係秘密キーの各々の要素は、第２の線形性秘密キーの対応する要素と第１の線形性秘密キーの対応する要素との和を有しても良い。例えば、線形性関係秘密キーの第５の要素は、第１の線形性秘密キーの第５の要素と第２の線形性秘密キーの第５の要素との和を有しても良い。
【００５４】
幾つかの実施形態では、線形性キーの生成は、以下の例示的な線形性ビットベクトルキー式に従っても良い。
【００５５】
λが与えられると、ｑのＧ１，Ｇ２，ＧＴを生成する
【数１】
0006786884.tif 000002
【００５６】
線形性ビットベクトルキー式では、←及びλは、概して上述の通りである。さらに、線形性ビットベクトルキー式では、ｐｋｘｌｉｎは第１の線形性公開キーを表し、ｓｋｘｌｉｎは第１の線形性秘密キーを表し、ｐｋｙｌｉｎは第２の線形性公開キーを表し、ｓｋｙｌｉｎは第２の線形性秘密キーを表し、ｓｋＲｌｉｎは関係線形性キーを表す。さらに、パラメータｐｋｘｌｉｎ、ｓｋｘｌｉｎ、ｐｋｙｌｉｎ、ｓｋｙｌｉｎ、及びｓｋＲｌｉｎは、上述のキー生成アルゴリズム（ＫｅｙＧｅｎ）の出力の少なくとも１つの線形性部分を表しても良い。
【００５７】
パラメータＧ１は、第１の双線形群を表す。パラメータＧ２は、第２の双線形群を表す。パラメータＧＴは、第３の双線形群を表す。パラメータｑは素数位数を表す。パラメータｇ０は、第１の生成元及び第１の線形性公開キーの要素を表す。パラメータｈ０は、第２の生成元及び第２の線形性公開キーの要素を表す。パラメータｇｉは、第１の線形性公開キーの他の要素を表す。パラメータｈｉは、第２の線形性公開キーの他の要素を表す。パラメータｎは、特定数（例えば、特定の要素数）を表す。パラメータｉは、インデックス変数を表す。線形性ビットベクトルキー式では、インデックス変数は、１から特定数までの範囲を有する。パラメータＺｑは、０から、素数位数より１少ない数までの整数の集合を表す。パラメータａｉは、第１の線形性秘密キーの要素を表す。第１の線形性秘密キーの要素は、整数の集合のランダム値であっても良い。パラメータｂｉは、第２の線形性秘密キーの要素を表す。第２の線形性秘密キーの要素は、整数の集合のランダム値であっても良い。演算子＜＞は、簡単な表記法を表す。例えば、＜ｂｉ＞ｎｉ＝１は、ｂ１，ｂ２，．．．，ｂｎを表す。
【００５８】
線形性暗号化／復号化モジュール１１２は、平文ベクトル１４２を暗号化しても良い。線形性暗号化／復号化モジュール１１２は、平文ベクトル１４２を受信しても良い。追加又は代替で、通信モジュール１１６は、平文ベクトル１４２を受信し、平文ベクトル１４２を線形性暗号化／復号化モジュール１１２に通信しても良い。
【００５９】
平文ベクトル１４２は、第１のフィールドのメンバを有しても良い。第１のフィールドは、０及び１の要素、及び特定数の次元を有しても良い。フィールドの要素は、要素の基本数により決定されても良い。例えば、ビットベクトルでは、第１のフィールドは、０及び１の要素を有しても良い。一方、ｐ−ａｒｙベクトルでは、フィールドは、０、１、．．．、ｐ−１の要素を有しても良い。
【００６０】
線形性暗号化／復号化モジュール１１２は、整数の集合から乱数をサンプリングしても良い。線形性暗号化／復号化モジュール１１２は、次に、第１の線形性暗号文及び第２の線形性暗号文を構築しても良い。第１の線形性暗号文は、乱数により冪乗される第１の生成元である第１の要素を有しても良い。第１の線形性暗号文は、線形性暗号化指数により冪乗された第１の線形性公開キーの対応する要素を有する１又は複数の要素を更に有しても良い。第１の線形性暗号文の線形性暗号化指数は、乱数を−１で乗算し、第１の平文ベクトル１４２Ａの対応する要素により冪乗したものを有しても良い。幾つかの実施形態では、第１の線形性暗号文の第１の要素は、対応では説明できない。
【００６１】
第２の線形性暗号文は、乱数により冪乗される第２の生成元である第１の要素を有しても良い。第２の線形性暗号文は、線形性暗号化指数により冪乗された第２の線形性公開キーの対応する要素を有する１又は複数の要素を更に有しても良い。第２の線形性暗号文の線形性暗号化指数は、乱数を−１で乗算し、第２の平文ベクトル１４２Ｂの対応する要素により冪乗したものを有しても良い。幾つかの実施形態では、第２の線形性暗号文の第１の要素は、対応では説明できない。
【００６２】
幾つかの実施形態では、線形性暗号化／復号化モジュール１１２は、以下の例示的な線形性ビットベクトル暗号化に従って、平文ベクトル１４２を暗号化しても良い。
【数２】
0006786884.tif 000003
【００６３】
線形性ビットベクトル暗号化式では、＜＞、ｃｘ，ｃｙ，ｇ０，ｈ０，ｇｉ，ｈｉ，ｉ，及びｎは、上述の通りである。さらに、線形性ビットベクトル暗号化式では、パラメータｃｘは第１の暗号文を表し、パラメータｃｙは第２の暗号文を表す。パラメータｍ１は、第１の平文ベクトル１４２Ａを表す。パラメータｍ１ｉは、第１の平文ベクトル１４２Ａの要素を表す。パラメータｍ２は、第２の平文ベクトル１４２Ｂを表す。パラメータｍ２ｉは、第２の平文ベクトル１４２Ｂの要素を表す。パラメータＦは第１のフィールドを表す。フィールドの隣にある添え字２は、第１のフィールドの基本数を表す。フィールドの隣にある添え字ｎは、第１のフィールドの次元を表す。
【００６４】
線形性ビットベクトル暗号化式は、上述の第１の暗号化アルゴリズム（ＥｎｃＸ）及び第２の暗号化アルゴリズム（ＥｎｃＹ）を定めても良い。例えば、第１の暗号化アルゴリズムは次のように定められても良い。第１の平文ベクトル１４２Ａ及び第１の線形性公開キーが与えられると、第１の暗号化アルゴリズムは、乱数をサンプリングし、ｃｘ＝ｇｒ０，＜ｇｉ（―１）ｍ１ｉｒ＞ｎｉ＝１のように第１の線形性暗号文を構築する。同様に、第２の暗号化アルゴリズムは次のように定められても良い。第１の平文ベクトル１４２Ａ及び第２の線形性公開キーが与えられると、第２の暗号化アルゴリズムは、乱数をサンプリングし、ｃｙ＝ｈｒ０，＜ｈｉ（―１）ｍ２ｉｒ＞ｎｉ＝１のように第２の線形性暗号文を構築する。
【００６５】
第１の線形性暗号文及び第２の線形性暗号文は、線形性認証モジュール１３２に通信されても良い。追加又は代替で、第１の線形性暗号文及び第２の線形性暗号文は、ネットワーク１０７を介して、認証サーバに通信されても良い。サーバ通信モジュール１３４は、第１の線形性暗号文及び第２の線形性暗号文を受信し、第１の線形性暗号文及び第２の線形性暗号文を線形性認証モジュール１３２に通信しても良い。
【００６６】
幾つかの実施形態では、第１の線形性暗号文は、第２の線形性暗号文の通信の前に、線形性認証モジュール１３２に通信されても良い。線形性認証モジュール１３２は、第１の線形性暗号文を登録暗号文１３０としてメモリ１２２Ｂに格納しても良い。第１の線形性暗号文を通信した後に、第２の線形性暗号文は、線形性認証モジュール１３２に通信されても良い。さらに、設定モジュール１４４は、関係線形性キーを線形性認証モジュール１３２に通信しても良い。
【００６７】
認証のために関係暗号化が用いられる幾つかの実施形態では、第１の線形性暗号文は、登録暗号文１３０として格納されても良い。登録暗号文１３０は、第２の線形性暗号文又は任意の他の後続の線形性暗号文との比較の基礎として用いられても良い。関係暗号化を実施する他の実施形態では、第１の線形性暗号文は、登録暗号文１３０として格納されなくても良い。例えば、第１の線形性暗号文及び第２の線形性暗号文は、それらを格納せずに分析しても良く、又は両者とも格納されても良い。
【００６８】
線形性認証モジュール１３２は、第１の線形性暗号文と第２の線形性暗号文との間の線形性関係を発見するよう構成されても良い。線形性関係を発見するために、線形性認証モジュール１３２は、特定ベクトルを定めても良い。特定ベクトルは、第１のフィールドのメンバであっても良い。線形性認証モジュール１３２により決定される認証問題は、特定ベクトルが第１の平文ベクトル１４２Ａと第２の平文ベクトル１４２Ｂとの和であるかどうかを決定することであっても良い。
【００６９】
線形性認証モジュール１３２は、第１の線形性暗号文の第１の要素（例えば、乱数で冪乗された第１の生成元）及び線形性関係秘密キーで冪乗された第２の線形性暗号文の第１の要素（例えば、乱数で冪乗された第２の生成元）のペアリング関数として、第１の値を計算しても良い。
【００７０】
線形性認証モジュール１３２は、第１の線形性暗号文及び−１を特定ベクトルの対応する要素で冪乗したもので冪乗した第２の線形性暗号文の第２の線形性暗号文の中の対応する要素の各々のペアリング関数の結果として、第２の値も計算しても良い。
【００７１】
線形性認証モジュール１３２は、第１の値が第２の値に等しいか否かを決定しても良い。第１の値が第２の値と等しいことに応答して、線形性認証モジュール１３２は、第１の線形性暗号文が第２の線形性暗号文及び定められたベクトルと線形関係にあると結論づけても良い。
【００７２】
幾つかの実施形態では、線形性認証モジュール１３２は、以下の例示的な線形性ビットベクトル検証式に従って、第１の線形性暗号文と第２の線形性暗号文との間の線形性関係を発見する。
【数３】
0006786884.tif 000004
【００７３】
線形性ビットベクトル検証式では、＜＞、ｃｘ，ｃｙ，ｇ０，ｈ０，ｇｉ，ｈｉ，ｉ，ｎ，Ｆ，ｓｋＲ及びｒは、上述の通りである。パラメータｃｘ０は、第１の線形性暗号文の第１の要素を表す。パラメータｃｙ０は、第２の線形性暗号文の第１の要素を表す。パラメータｃｘｉは、第１の線形性暗号文の他の要素を表す。パラメータｃｙｉは、第２の線形性暗号文の他の要素を表す。パラメータｚは、特定ベクトルを表す。パラメータｚｉは、特定ベクトルの要素を表す。演算子ｅは、ペアリング関数を表す。ペアリング関数は、双線形群に関連しても良い。演算子Πは、積演算子を表す。線形性ビットベクトル検証式は、上述の検証アルゴリズム（Ｖｅｒｉｆｙ）を定めても良い。例えば、検証アルゴリズムは、暗号文、特定ベクトル、及び関係線形性キーが与えられると、以下の等式をチェックするよう定められても良い。
【数４】
0006786884.tif 000005
【００７４】
さらに、幾つかの実施形態では、線形性暗号化／復号化モジュール１１２は、第１の及び／又は第２の線形性暗号文を復号化しても良い。線形性暗号化／復号化モジュール１１２は、結果として生じる平文ベクトル１４２の各々の要素を、線形性暗号文の値に基づき、決定しても良い。例えば、値は、第１の線形性暗号文を復号化することにより構築される第１の平文ベクトル（例えば、第１の平文ベクトル１４２Ａ）の各々の要素について決定されても良い。
【００７５】
各々の要素について、線形性暗号化／復号化モジュール１１２は、（１）第１の線形性暗号文の中の対応する要素が、第１の線形性秘密キーの対応する要素により冪乗された第１の線形性暗号文の第１の要素に等しいか、（２）第１の線形性暗号文の中の対応する要素が、第１の線形性秘密キーの対応する要素で−１を乗算したものにより冪乗された、第１の線形性暗号文の第１の要素に等しいか、又は（３）第１の線形性暗号文の中の対応する要素が、別の値に等しいか、を決定しても良い。
【００７６】
第１の線形性暗号文の中の対応する要素が、第１の線形性秘密キーの対応する要素により冪乗された第１の線形性暗号文の第１の要素に等しいことに応答して（例えば、直前の段落の（１））、線形性暗号化／復号化モジュール１１２は、第１の平文ベクトル１４２Ａの要素を０（ゼロ）に設定しても良い。第１の線形性暗号文の中の対応する要素が、−１に第１の線形性秘密キーの対応する要素を乗算したものにより冪乗された第１の線形性暗号文の第１の要素に等しいことに応答して（例えば、直前の段落の（２））、線形性暗号化／復号化モジュール１１２は、第１の平文ベクトル１４２Ａの要素を１に設定しても良い。第１の線形性暗号文の中の対応する要素が別の値に等しいことに応答して（例えば、直前の段落の（３））、線形性暗号化／復号化モジュール１１２は、エラーを返しても良い。第２の線形性暗号文は、第２の線形性秘密キー及び第２の線形性暗号文を用いて同様に復号化されても良い。
【００７７】
幾つかの実施形態では、線形性暗号化／復号化モジュール１１２は、以下の例示的な線形性ビットベクトル復号化式に従って、線形性暗号文を復号化しても良い。
【数５】
0006786884.tif 000006
【００７８】
線形性ビットベクトル復号化式では、ｃｘｉ，ｃｙｉ，ｃｘ０，ｃｙ０，ａｉ，ｂｉ，ｍ１ｉ，及びｍ２ｉは、上述の通りである。パラメータ⊥は、エラーを表す。
【００７９】
線形性ビットベクトル復号化式は、上述の第１の復号化アルゴリズム（ＤｅｃＸ）及び第２の復号化アルゴリズム（ＤｅｃＹ）を定めても良い。例えば、第１の復号化アルゴリズムは次のように定められてもよい。第１の線形性暗号文及び第１の線形性秘密キーが与えられると、第１の復号化アルゴリズムは、次式に従って、ビット毎に、第１の平文ベクトル１４２を構築しても良い。
【数６】
0006786884.tif 000007
【００８０】
同様に、第２の復号化アルゴリズムは次のように定められても良い。第２の線形性暗号文及び第２の線形性秘密キーが与えられると、第２の復号化アルゴリズムは、次式に従って、ビット毎に、第２の平文ベクトル１４２Ｂを構築しても良い。
【数７】
0006786884.tif 000008
【００８１】
＜Ｐ−ＡＲＹベクトル関係線形性暗号化方式＞
ｐ−ａｒｙベクトルが実装される実施形態では（例えば、平文ベクトル１４２及び／又は暗号文がｐ−ａｒｙベクトルである）、線形性キーは、セキュリティパラメータについて生成されても良い。キーを生成するために、設定モジュール１４４は、３個の双線形素数位数群（group  of  prime  order）を生成しても良い。素数位数は、セキュリティパラメータにおける指数であり、１を基本数（ｐ）で割った余り（１  modulo  ｐ）に等しくても良い。したがって、これらの実施形態では、ゼロを削除された整数の集合の中に部分群が存在しても良い。部分群は、基本数の順序を有しても良い。設定モジュール１４４は、部分群の任意の生成元を選択しても良い。
【００８２】
設定モジュール１４４は、第１の生成元及び第２の生成元をサンプリングしても良い。第１の生成元は、第１の双線形群からサンプリングされても良く、第２の生成元は、第２の双線形群からサンプリングされても良い。第１の線形性秘密キー及び第２の線形性秘密キーは、ビットベクトルを実装する実施形態に関して上述したように生成されても良い。
【００８３】
設定モジュール１４４は、第１の生成元である要素を含む第１の線形性公開キーを定めても良い。第１の線形性公開キーは、第１の線形性秘密キーの対応する要素により冪乗される第１の生成元を含む１又は複数の他の要素を更に有しても良い。さらに、第１の線形性公開キーの要素は、任意の生成元を有しても良い。幾つかの実施形態では、第１の線形性公開キーの第１の要素は、任意の生成元であっても良く、第１の線形性公開キーの第２の要素は、第１の生成元であっても良い。第２の線形性公開キーの第１及び第２の要素は、対応において考慮されない。
【００８４】
設定モジュール１４４は、第２の線形性公開キーを定めても良い。第２の線形性公開キーは、第２の生成元である要素を有しても良い。第２の線形性公開キーは、第２の線形性秘密キーの対応する要素により冪乗される第２の生成元を含み得る１又は複数の他の要素を更に有しても良い。さらに、第２の線形性公開キーの要素は、任意の生成元を有しても良い。幾つかの実施形態では、第２の線形性公開キーの第１の要素は、任意の生成元であっても良く、第２の線形性公開キーの第２の要素は、第２の生成元であっても良い。第２の線形性公開キーの第１及び第２の要素は、対応において考慮されない。
【００８５】
設定モジュール１４４は、線形性関係秘密キーを定めても良い。線形性関係秘密キーの各々の要素は、第２の線形性秘密キーの対応する要素と第１の線形性秘密キーの対応する要素との和を有しても良い。
【００８６】
幾つかの実施形態では、線形性キーの生成は、以下の例示的な線形性ｐ−ａｒｙベクトルキー式に従っても良い。
【００８７】
λが与えられると、λにおける指数であり１に等しいｑ（ｍｏｄ  ｐ）のＧ１，Ｇ２，ＧＴを生成する
【数８】
0006786884.tif 000009
【００８８】
線形性ｐ−ａｒｙベクトルキー式では、＜＞，ｇ０，ｈ０，ｇｉ，ｈｉ，ａｉ，ｂｉ，ｉ，ｎ，Ｚ，Ｆ，ｓｋＲ，ｒ，Ｇ１，Ｇ２，ＧＴ，ｑ，ｐｋｘｌｉｎ，ｓｋｘｌｉｎ，ｐｋｙｌｉｎ，ｓｋｙｌｉｎ，ｓｋＲｌｉｎ，←，及びλは、概して上述の通りである。パラメータｐｋｘｌｉｎ、ｓｋｘｌｉｎ、ｐｋｙｌｉｎ、ｓｋｙｌｉｎ、及びｓｋＲｌｉｎは、上述のキー生成アルゴリズムの出力の少なくとも１つの線形性部分を表しても良い。
【００８９】
パラメータｐは、基本数を表す。パラメータＪｐは、次数ｐの部分群を表す。パラメータωは、任意の生成元を表す。演算子ｍｏｄは、モジュロ関数を表す。Ｚの隣にある「＊」は、０（ゼロ）が整数の集合から削除されることを表す。
【００９０】
線形性暗号化／復号化モジュール１１２は、平文ベクトル１４２を受信しても良い。追加又は代替で、通信モジュール１１６は、平文ベクトル１４２を受信しても良く、平文ベクトル１４２を線形性暗号化／復号化モジュール１１２に通信しても良い。平文ベクトル１４２は、第２のフィールドのメンバを有しても良い。第２のフィールドは、０の値から基本数−１の値までを有する要素（例えば、０，１，．．．，ｐ−１）を有しても良い。
【００９１】
線形性暗号化／復号化モジュール１１２は、整数の集合から乱数をサンプリングしても良い。線形性暗号化／復号化モジュール１１２は、次に、第１の線形性暗号文及び第２の線形性暗号文を構築しても良い。第１の線形性暗号文は、乱数により冪乗される第１の生成元である第１の要素を有しても良い。さらに、第１の線形性暗号文は、線形性暗号化指数により冪乗された第１の線形性公開キーの対応する要素を有する１又は複数の他の要素を有しても良い。第１の線形性暗号文の線形性暗号化指数は、乱数を任意の生成元で乗算し、第１の平文ベクトル１４２Ａの対応する要素により冪乗したものを有しても良い。幾つかの実施形態では、第１の線形性暗号文の第１の要素は、対応において考慮されない。
【００９２】
第２の線形性暗号文は、乱数により冪乗される第２の生成元である第１の要素を有しても良い。さらに、第２の線形性暗号文は、線形性暗号化指数により冪乗された第２の線形性公開キーの対応する要素を有する１又は複数の他の要素を有しても良い。第２の線形性暗号文の線形性暗号化指数は、乱数を任意の生成元で乗算し、第２の平文ベクトル１４２Ｂの対応する要素により冪乗したものを有しても良い。幾つかの実施形態では、第２の線形性暗号文の第１の要素は、対応において考慮されない。
【００９３】
幾つかの実施形態では、線形性暗号化／復号化モジュール１１２は、以下の例示的な線形性ｐ−ａｒｙベクトル復号化式に従って、平文ベクトル１４２を暗号化しても良い。
【数９】
0006786884.tif 000010
【００９４】
線形性ｐ−ａｒｙベクトル暗号化式では、＜＞、ｍ１，ｍ１ｉ，ｍ２，ｍ２ｉ，ｃｘ，ｃｙ，ｇ０，ｈ０，ｇｉ，ｈｉ，ｉ，及びｎは、上述の通りである。パラメータＦは第２のフィールドを表す。第２のフィールドの隣にある添え字ｐは、第２のフィールドの基本数を表す。第２のフィールドの隣にある添え字ｎは、第２のフィールドの次元を表す。第２のフィールドの次元は、特定数であっても良い。
【００９５】
線形性ｐ−ａｒｙベクトル暗号化式は、上述の第１の暗号化アルゴリズム（ＥｎｃＸ）及び第２の暗号化アルゴリズム（ＥｎｃＹ）を定めても良い。例えば、第１の暗号化アルゴリズムは次のように定められてもよい。第１の平文ベクトル１４２Ａ及び第１の線形性公開キーが与えられると、第１の暗号化アルゴリズムは、乱数をサンプリングし、次式のように第１の線形性暗号文を構築する。
【数１０】
0006786884.tif 000011
【００９６】
同様に、第２の暗号化アルゴリズムは次のように定められても良い。第１の平文ベクトル１４２Ａ及び第２の線形性公開キーが与えられると、第２の暗号化アルゴリズムは、乱数をサンプリングし、次式のように第２の線形性暗号文を構築する。
【数１１】
0006786884.tif 000012
【００９７】
第１の線形性暗号文及び第２の線形性暗号文は、線形性認証モジュール１３２に通信されても良い。追加又は代替で、第１の線形性暗号文及び第２の線形性暗号文は、ネットワーク１０７を介して、認証サーバに通信されても良い。サーバ通信モジュール１３４は、第１の線形性暗号文及び第２の線形性暗号文を受信し、第１の線形性暗号文及び第２の線形性暗号文を線形性認証モジュール１３２に通信しても良い。
【００９８】
線形性関係を発見するために、線形性認証モジュール１３２は、特定ベクトルを定めても良い。特定ベクトルは、第２のフィールドのメンバであっても良い。；特定ベクトルは、第１の平文ベクトル１４２Ａと第２の平文ベクトル１４２Ｂとの和として定められても良い。線形性認証モジュール１３２は、第１の線形性暗号文の第１の要素（例えば、乱数により冪乗された第１の生成元）及び線形性関係秘密キーで冪乗された第２の線形性暗号文の第１の要素（例えば、乱数により冪乗された第２の生成元）のペアリング関数として、第１の値を計算しても良い。
【００９９】
線形性認証モジュール１３２は、第１の線形性暗号文の各々の要素と、−１及び特定ベクトルの対応する要素の積により冪乗した任意の生成元で冪乗した第２の線形性暗号文の対応する要素と、のペアリング関数の結果として、第２の値も計算しても良い。
【０１００】
線形性認証モジュール１３２は、第１の値が第２の値に等しいか否かを決定しても良い。第１の値が第２の値と等しいことに応答して、線形性認証モジュール１３２は、第１の線形性暗号文が第２の線形性暗号文と線形関係にあると結論づけても良い。
【０１０１】
幾つかの実施形態では、線形性認証モジュール１３２は、以下の例示的な線形性ｐ−ａｒｙベクトル検証式に従って、第１の線形性暗号文と第２の線形性暗号文との間の線形性関係を発見する。
【数１２】
0006786884.tif 000013
【０１０２】
線形性ｐ−ａｒｙベクトル検証式では、パラメータ及び演算子は上述の通りである。
【０１０３】
線形性ｐ−ａｒｙベクトル検証式は、上述の検証アルゴリズム（Ｖｅｒｉｆｙ）を定めても良い。例えば、検証アルゴリズムは、暗号文、特定ベクトル、及び関係線形性キーが与えられると、以下の等式をチェックするよう定められても良い。
【数１３】
0006786884.tif 000014
【０１０４】
さらに、幾つかの実施形態では、線形性暗号化／復号化モジュール１１２は、第１の及び／又は第２の線形性暗号文を復号化しても良い。線形性暗号化／復号化モジュール１１２は、結果として生じる平文ベクトル１４２の各々の要素を、線形性暗号文の値に基づき、決定しても良い。例えば、値は、第１の線形性暗号文を復号化することにより構築される第１の平文ベクトル（例えば、第１の平文ベクトル１４２Ａ）の各々の要素について決定されても良い。
【０１０５】
暗号文を復号化するために、特定要素値が決定されても良い。特定要素値は、セキュリティパラメータにおいて多項式により結合されても良い。さらに、特定要素値は、基本数を含む要素を有するフィールドのメンバであっても良い。第１の平文ベクトル１４２Ａの各々の要素について、線形性暗号化／復号化モジュール１１２は、第１の線形性暗号文の中の対応する要素が、特定要素値により冪乗された任意の生成元と第１の線形性秘密キーの対応する要素との積により冪乗された第１の線形性暗号文の第１の要素と等しくなるような、特定要素値が存在するか否かを決定しても良い。
【０１０６】
第１の線形性暗号文の中の対応する要素が、特定要素値により冪乗された任意の生成元と第１の線形性秘密キーの対応する要素との積により冪乗された第１の線形性暗号文の第１の要素と等しくなるような、特定要素値が存在することに応答して、線形性暗号化／復号化モジュール１１２は、要素を特定要素値に設定する。
【０１０７】
そのような特定要素値が存在しないことに応答して、線形性暗号化／復号化モジュール１１２は、エラーを出力しても良い。第２の線形性暗号文は、第２の線形性秘密キー及び第２の線形性暗号文を用いて同様に復号化されても良い。
【０１０８】
幾つかの実施形態では、線形性暗号化／復号化モジュール１１２は、以下の例示的な線形性ｐ−ａｒｙベクトル復号化式に従って、線形性暗号文を復号化しても良い。
【数１４】
0006786884.tif 000015
【０１０９】
線形性ｐ−ａｒｙベクトル復号化式では、ｃｘｉ，ｃｙｉ，ｃｘ０，ｃｙ０，ａｉ，ｂｉ，ｍ１ｉ，及びｍ２ｉは、上述の通りである。パラメータ⊥は、エラーを表す。パラメータμは、特定要素値を表す。
【０１１０】
線形性ｐ−ａｒｙベクトル復号化式は、上述の第１の復号化アルゴリズム（ＤｅｃＸ）及び第２の復号化アルゴリズム（ＤｅｃＹ）を定めても良い。例えば、第１の復号化アルゴリズムは次のように定められてもよい。第１の線形性暗号文及び第１の線形性秘密キーが与えられると、第１の復号化アルゴリズムは、次式に従って、ビット毎に、第１の平文ベクトル１４２Ａを構築しても良い。
【数１５】
0006786884.tif 000016
【０１１１】
同様に、第２の復号化アルゴリズムは次のように定められても良い。第２の線形性暗号文及び第２の線形性秘密キーが与えられると、第２の復号化アルゴリズムは、次式に従って、ビット毎に、第２の平文ベクトル１４２Ｂを構築しても良い。
【数１６】
0006786884.tif 000017
【０１１２】
＜関係近接性暗号化方式＞
関係近接性暗号化方式は、近接性暗号文の間の近さ（closeness）を決定するために用いられても良い。幾つかの実施形態では、近接性は、ハミング距離の観点で提供されても良い。関係近接性暗号化方式では、設定モジュール１４４は、キーを生成する。キーを用いて、近接性暗号化／復号化モジュール１１４は、平文ベクトル１４２の暗号化及び／又は復号化を実行する。近接性暗号文は、次に、近接性認証モジュール１２８に通信されても良い。近接性認証モジュール１２８では、近接性暗号文の間の近接性が検出されても良い。
【０１１３】
例えば、設定モジュール１４４は、ＣＰＡ（chosen−plaintext  attack）キー生成アルゴリズム及び線形性キー生成アルゴリズムの出力を生成しても良い。例えば、設定モジュール１４４は、本願明細書の別の場所に記載のように、線形性キーを起動（ｒｕｎ）する。ＣＰＡキー生成アルゴリズムは、ＣＰＡ公開キー及びＣＰＡ秘密キーを出力しても良い。線形性キー生成アルゴリズムは、上述のｐｋｘｌｉｎ，ｓｋｘｌｉｎ，ｐｋｙｌｉｎ，ｓｋｙｌｉｎ，及びｓｋＲｌｉｎを出力しても良い。
【０１１４】
さらに、設定モジュール１４４は、誤り訂正符号（error  correcting  code：ＥＣＣ）を選択しても良い。ＥＣＣは、線形誤り訂正符号方式であっても良い。ＥＣＣは、長さ、ランク、及び距離を有しても良い。さらに、ＥＣＣは、ＥＣＣ符号化演算子（ＥＮＣＯＤＥ）及びＥＣＣ復号化演算子（ＤＥＣＯＤＥ）も有しても良い。設定モジュール１４４は、次に、第１の近接性秘密キー、第２の近接性秘密キー、第１の近接性公開キー、第２の近接性公開キー、及び近接性関係秘密キー（集合的に、「近接性キー」）を生成しても良い。近接性キーは、関係暗号化において、平文ベクトル１４２を暗号化して近接性暗号文を生成するため、近接性暗号文を復号化するため、及び近接性暗号文の間の近接性を検出するために使用される。
【０１１５】
第１の近接性秘密キーは、ＣＰＡ秘密キー及び第１の線形性秘密キーに基づき定められても良い。第２の近接性秘密キーは、ＣＰＡ秘密キー及び第２の線形性秘密キーに基づき定められても良い。第１の近接性公開キーは、ＥＮＣＯＤＥ、ＤＥＣＯＤＥ、ＣＰＡ公開キー及び第１の線形性公開キーに基づき定められても良い。第２の近接性公開キーは、ＥＮＣＯＤＥ、ＤＥＣＯＤＥ、ＣＰＡ公開キー及び第２の線形性公開キーに基づき定められても良い。近接性関係秘密キーは、ＣＰＡ秘密キー及び線形性関係秘密キーに基づき定められても良い。
【０１１６】
幾つかの実施形態では、設定モジュール１４４は、以下の例示的な近接性キー生成式に従って、近接性キーを生成しても良い。
【数１７】
0006786884.tif 000018
【０１１７】
近接性キー生成式において、ｐｋｘｌｉｎ，ｐｋｙｌｉｎ，ｓｋｘｌｉｎ，ｓｋｙｌｉｎ，ｓｋＲｌｉｎ，←，Ｘ，ｍ，及びｎは上述の通りである。パラメータｐｋＣＰＡは、ＣＰＡ公開キーを表す。パラメータｓｋＣＰＡは、ＣＰＡ秘密キーを表す。パラメータＫｅｙＧｅｎＣＰＡは、ＣＰＡキー生成アルゴリズムを表す。パラメータｐｋｘｐｒｏｘは、第１の近接性公開キーを表す。パラメータｐｋｙｐｒｏｘは、第２の近接性公開キーを表す。パラメータｓｋｘｐｒｏｘは、第１の近接性秘密キーを表す。パラメータｓｋｙｐｒｏｘは、第２の近接性秘密キーを表す。パラメータｓｋＲｐｒｏｘは、近接性関係秘密キーを表す。さらに、パラメータｐｋｘｐｒｏｘ、ｓｋｘｐｒｏｘ、ｐｋｙｐｒｏｘ、ｓｋｙｐｒｏｘ、及びｓｋＲｐｒｏｘは、上述のキー生成アルゴリズム（ＫｅｙＧｅｎ）の出力の少なくとも１つの近接性部分を表しても良い。パラメータＸは線形抽出器（extractor）を表す。特定の反復が以上に説明されたが、任意の線形抽出器が使用されても良い。
【０１１８】
第１の線形性公開キーは、第１の平文ベクトル１４２Ａを暗号化して第１の近接性暗号文を生成するために、近接性暗号化／復号化モジュール１１４により使用されても良い。近接性暗号化／復号化モジュール１１４は、平文ベクトル１４２を受信しても良い。追加又は代替で、通信モジュール１１６は、平文ベクトル１４２を受信し、平文ベクトル１４２を近接性暗号化／復号化モジュール１１４に通信しても良い。平文ベクトル１４２は、第１又は第２のフィールドのメンバを有しても良い。
【０１１９】
近接性暗号化／復号化モジュール１１４は、第３のフィールドから近接性乱数をサンプリングしても良い。第３のフィールドは、基本数と、ＥＣＣのランクであっても良い次元と、を有しても良い。近接性暗号化／復号化モジュール１１４は、次に、第１の近接性暗号文及び第２の近接性暗号文を構築しても良い。第１の近接性暗号文及び第２の近接性暗号文の各々は、２つの部分を有しても良い。第１の近接性暗号文の第１の部分は、ＣＰＡ公開キーと第１の平文ベクトル１４２Ａの和とを入力として受信するＣＰＡ暗号化アルゴリズム、及び近接性乱数を入力として受信するＥＮＣＯＤＥを有しても良い。第１の近接性暗号文の第２の部分は、第１の線形性公開キーと近接性乱数とを受信する第１の線形性暗号化アルゴリズムを有しても良い。
【０１２０】
第２の近接性暗号文の第１の部分は、ＣＰＡ公開キーと第２の平文ベクトル１４２Ｂの和とを入力として受信するＣＰＡ暗号化アルゴリズム、及び近接性乱数を入力として受信するＥＮＣＯＤＥを有しても良い。第２の近接性暗号文の第２の部分は、第２の線形性公開キーと近接性乱数とを入力として受信する第２の線形性暗号化アルゴリズムを有しても良い。
【０１２１】
幾つかの実施形態では、近接性暗号文は、以下の例示的な近接性暗号化式に従って生成されても良い。
【数１８】
0006786884.tif 000019
【０１２２】
近接性暗号化式において、ＥＮＣＯＤＥ，ｍ１，ｍ２，ｐｋｃｐａ，ｐｋｘｌｉｎ，及びｐｋｙｌｉｎは、上述の通りである。ＥｎｃＣＰＡは、ＣＰＡ暗号化アルゴリズムを表す。パラメータｃｘｐ１は、第１の近接性暗号文の第１の部分を表す。パラメータｃｘｐ２は、第１の近接性暗号文の第２の部分を表す。パラメータｃｘｐは、第１の近接性暗号文を表す。パラメータｃｙｐ１は、第２の近接性暗号文の第１の部分を表す。パラメータｃｙｐ２は、第２の近接性暗号文の第２の部分を表す。パラメータｃｙｐは、第２の近接性暗号文を表す。パラメータＥｎｃＸＬｉｎｅａｒは、第１の線形性暗号化アルゴリズムを表す。パラメータＥｎｃＹＬｉｎｅａｒは、第２の線形性暗号化アルゴリズムを表す。
【０１２３】
第１の近接性暗号文は、通信モジュール１１６により認証サーバ１４０に通信されても良い。第１の近接性暗号文は、登録暗号文１３０として認証サーバ１４０に格納されても良い。第２の近接性公開キーは、第２の平文ベクトル１４２Ｂを暗号化して第２の近接性暗号文を生成するために、近接性暗号化／復号化モジュール１１４により使用されても良い。第２の近接性暗号文は、通信モジュール１１６により認証サーバ１４０に通信されても良い。近接性関係秘密キーは、認証サーバ１４０において、特に近接性認証モジュール１２８により、第２の近接性暗号文と第１の近接性暗号文との間の近接性を検出するために、使用されても良い。この近接性は、登録暗号文１３０として格納される。
【０１２４】
近接性認証モジュール１２８は、第１の近接性暗号文と第２の近接性暗号文との間の近接性を検出するよう構成されても良い。近接性を検出するために、近接性認証モジュール１２８は、公開キー情報で利用可能なＤＥＣＯＤＥにアクセスしても良い。近接性認証モジュール１２８は、第１の近接性暗号文のランダム性の和（randomness  sum）を復元しても良い。第１の近接性暗号文のランダム性の和は、ＤＥＣＯＤＥとして定められても良い。ＤＥＣＯＤＥは、ＣＰＡ秘密キーと第１の近接性暗号文の第１の部分の和とを入力として受信するＣＰＡ復号化アルゴリズムと、ＣＰＡ秘密キーと第２の近接性暗号文の第１の部分とを入力として受信するＣＰＡ復号化アルゴリズムと、を入力として受信する。
【０１２５】
ＤＥＣＯＤＥがエラーを返す場合、近接性認証モジュール１２８は、拒否を返しても良い。さらに、近接性認証モジュール１２８は、線形性検証アルゴリズムを出力しても良い。線形性検証アルゴリズムは、線形性関係秘密キー、第２の近接性暗号文の第１の部分、第２の近接性暗号文の第２の部分、及びランダム性の和を入力として受信する。
【０１２６】
したがって、近接性検証アルゴリズムは、第１の近接性暗号文、第２の近接性暗号文、及び近接性秘密キーを受信するよう定められても良い。近接性検証アルゴリズムは、ランダム性の和を復元し、拒否又は線形性検証アルゴリズムを出力しても良い。線形性検証アルゴリズムは、線形性関係秘密キー、第２の近接性暗号文の第１の部分、第２の近接性暗号文の第２の部分、及びランダム性の和を入力として受信する。例えば、近接性認証モジュール１２８は、以下の例示的な近接性検証アルゴリズムに従って、もう１度、演算を実行しても良い。
【数１９】
0006786884.tif 000020
【０１２７】
近接性検証アルゴリズムにおいて、ｓｋｃｐａ，ｃｘ１，ｃｘ２，ｃｙ１，ｃｙ２，⊥，ｓｋＲｌｉｎ，Ｘ，及びＤＥＣＯＤＥは、上述の通りである。パラメータＯｕｔｐｕｔは、近接性認証モジュール１２８の出力を示す。パラメータＺｒｓは、ランダム性の和を表す。ＤｅｃＣＰＡは、ＣＰＡ復号化アルゴリズムを表す。ＶｅｒｉｆｙＬｉｎｅａｒは、線形性検証アルゴリズムを表す。
【０１２８】
本願明細書に記載の関係近接性暗号化方式は、以下の条件が真である場合にセキュアであり得る。ＥＣＣは、（ｎ，ｋ，２δ）線形誤り訂正方式である；（ＫｅｙＧｅｎＣＰＡ，ＥｎｃＣＰＡ，ＤｅｃＣＰＡ）は、ＩＮＤ−ＣＰＡセキュア暗号化方式である；（ＫｅｙＧｅｎＬｉｎｅａｒ，ＥｎｃＸＬｉｎｅａｒ，ＤｅｃＸＬｉｎｅａｒ，ＥｎｃＹＬｉｎｅａｒ，ＤｅｃＹＬｉｎｅａｒ，ＶｅｒｉｆｙＬｉｎｅａｒ）は、Ｆｋ２における線形性の関係暗号化方式である。
【０１２９】
条件の中で、ＫｅｙＧｅｎＣＰＡ，ＥｎｃＣＰＡ，ＤｅｃＣＰＡ，ＫｅｙＧｅｎＬｉｎｅａｒ，ＥｎｃＸＬｉｎｅａｒ，ＤｅｃＸＬｉｎｅａｒ，ＥｎｃＹＬｉｎｅａｒ，ＤｅｃＹＬｉｎｅａｒ，ＶｅｒｉｆｙＬｉｎｅａｒ，及びＦは、上述の通りである。ＥＣＣはＥＣＣを表す。パラメータｎは長さを表し、ｋはランクを表し、２δは距離を表す。
【０１３０】
図２は、本願明細書に記載の少なくとも１つの実施形態に従って構成される生体認証システム（バイオメトリックシステム）２００のブロック図を示す。生体認証システム２００は、認証サービスが提供される図１の例示的な動作環境１００に含まれ又はそれを含んでも良い。生体認証システム２００では、ユーザ２０６の認証は、認証サーバ１４０により実行されても良い。生体認証システム２００では、図１を参照して議論した関係暗号化は、ユーザ２０６の同一性を認証するために用いられても良い。
【０１３１】
認証サービスは、登録処理及び認証処理を有しても良い。登録処理は、認証処理において使用され得る情報及びデータをユーザ２０６から得るステップを有しても良い。認証処理は、時間的に後に（例えば、登録処理に続いて）生じても良い。認証処理では、ユーザ２０６の同一性は、図１を参照して議論した関係暗号化動作のうちの１又は複数を用いて認証されても良い。概して、ユーザ２０６の同一性は、本願明細書に記載のように、第１の線形性暗号文と第２の線形性暗号文との間の線形性を発見することにより、及び第１の近接性暗号文と第２の近接性暗号文との間の近接性を検出することにより、認証されても良い。第１の線形性暗号文及び第１の近接性暗号文は、第１のバイオメトリックテンプレートの形式で、ユーザ２０６により提供されても良い。第１のバイオメトリックテンプレートは、図１の第１の平文ベクトル１４２Ａ及び／又は図２の登録入力に含まれても良い。
【０１３２】
ユーザ２０６及び／又は偽者２２２（後述する）は、１又は複数のバイオメトリック特徴を有する個人を有しても良い。バイオメトリック特徴は、１又は複数のユニークな特徴を有しても良い。例えば、バイオメトリック特徴は、畝及び／又畝間のパターンを有する、ユーザ２０６の指紋を有しても良い。幾つかの実施形態では、ユーザ２０６は、ユーザ装置１０２と関連付けられても良い。例えば、ユーザ２０６は、ユーザ装置１０２を所有し又は定期的に操作しても良い。幾つかの実施形態では、ユーザ２０６は、ユーザ装置１０２と具体的に関連付けられなくても良い。例えば、ユーザ装置１０２は、ユーザ２０６を含む複数のユーザにより公的にアクセス可能であっても良い。幾つかの実施形態では、偽者２２２は、バイオメトリック特徴を表し得る入力を供給するエンティティを有しても良い。
【０１３３】
幾つかの実施形態では、ユーザ装置１０２は、センサ２９８を有してもよい。センサ２９８は、例えばユーザ２０６を認証するために使用されるバイオメトリック特徴を測定する又はキャプチャするよう構成されるハードウェア装置を有しても良い。ユーザ２０６のバイオメトリック特徴が測定され又はキャプチャされると、ユーザ装置１０２は、バイオメトリックテンプレートを生成しても良い。バイオメトリックテンプレートは、バイオメトリック特徴を表しても良く、ユーザ２０６のバイオメトリック特徴のユニークな特徴のうちの少なくとも幾つかを有しても良い。バイオメトリックテンプレートは、例えば、バイオメトリック特徴のグラフィカル表現及び／又はアルゴリズム表現を有しても良い。
【０１３４】
センサ２９８の幾つかの例は、指紋スキャナ、虹彩の画像をキャプチャするよう構成されるカメラ、ＤＮＡを測定するよう構成される装置、心拍をキャプチャするよう構成される心拍モニタ、骨格筋により生成される電気的活動をキャプチャするよう構成されるウエアラブル筋電センサ、又はバイオメトリック特徴を測定し又はキャプチャするよう構成される任意の他のセンサ２９８、を有しても良い。
【０１３５】
図示の生体認証システム２００では、センサ２９８は、ユーザ装置１０２に含まれる。他の実施形態では、センサ２９８は、ユーザ装置１０２又はそれに含まれるプロセッサに通信可能に結合されても良い。例えば、センサ２９８は、図１のネットワーク１０７のようなネットワークを介してユーザ装置１０２に信号を通信するよう構成されても良い。図２には１個のみのセンサ２９８が示されるが、幾つかの実施形態では、ユーザ装置１０２は、１又は複数のセンサ２９８を有しても良い。
【０１３６】
ｅｎｃ／ｄｅｃモジュール１１０は、第１の線形性暗号文及び第１の近接性暗号文を登録入力２３２から生成しても良い。ｅｎｃ／ｄｅｃモジュール１１０は、次に、第１の線形性暗号文及び第１の近接性暗号文を登録データ２３４として、認証サーバ１４０に通信しても良い。
【０１３７】
関係認証モジュール１０８は、第１の線形性暗号文及び第１の近接性暗号文を登録暗号文１３０として格納しても良い。登録暗号文１３０は、ユーザ２０６に関連付けられても良い。例えば、ユーザ２０６は、関連付けられたユーザ識別子を有しても良い。幾つかの実施形態では、登録暗号文１３０は、メモリ１２２Ｂに格納されても良い。
【０１３８】
ｅｎｃ／ｄｅｃモジュール１１０は、次に、第１のチャレンジ入力２３６Ａ又は第２のチャレンジ入力２３６Ｂ（概して、チャレンジ入力２３６）を受信しても良い。第１のチャレンジ入力２３６Ａ及び第２のチャレンジ入力２３６Ｂは、ユーザ２０６又は偽者２２２による、彼らの同一性を認証させる試みであっても良い。第１のチャレンジ入力２３６Ａ及び／又は第２のチャレンジ入力２３６Ｂは、例えば、センサ２９８により読み取られた第２のバイオメトリックテンプレートを有しても良い。第２のバイオメトリックテンプレートは、ユーザ２０６又は偽者２２２のバイオメトリック特徴のユニークな特徴を表しても良い。
【０１３９】
ｅｎｃ／ｄｅｃモジュール１１０は、第２の線形性暗号文及び第２の近接性暗号文をチャレンジ入力２３６から生成しても良い。ｅｎｃ／ｄｅｃモジュール１１０は、次に、第２の線形性暗号文及び第２の近接性暗号文をチャレンジデータ２３８として、認証サーバ１４０に通信しても良い。
【０１４０】
関係認証モジュール１０８は、チャレンジデータ２３８を受信しても良い。関係認証モジュール１０８は、次に、ユーザ２０６の登録暗号文１３０を読み出しても良い。
【０１４１】
関係認証モジュール１０８は、登録暗号文１３０として格納された第１の線形性暗号文とユーザ装置１０２から受信した第２の線形性暗号文との間の線形性関係を決定しても良い。さらに、関係認証モジュール１０８は、登録暗号文１３０として格納された第１の近接性暗号文とユーザ装置１０２から受信した第２の近接性暗号文との間の近接性関係を決定しても良い。
【０１４２】
第１の線形性暗号文が第２の線形性暗号文と線形性関係を有し、及び第１の近接性暗号文と第２の近接性暗号文との間の特定の近接性が存在することに応答して、認証サーバ１４０は、第１のバイオメトリックテンプレートと第２のバイオメトリックテンプレートとの間に概算類似性が存在すると決定しても良い。
【０１４３】
したがって、ユーザ２０６により提供される第１のチャレンジ入力２３６Ａが、第２の線形性暗号文及び第２の近接性暗号文の基礎である場合、第１の線形性暗号文と第２の線形性暗号文との間に線形性関係が存在し、第１の近接性暗号文と第２の近接性暗号文との間に近接性が存在し得る。
【０１４４】
しかしながら、偽者２２２により提供される第２のチャレンジ入力２３６Ｂが、第２の線形性暗号文及び第２の近接性暗号文の基礎である場合、第１の線形性暗号文と第２の線形性暗号文との間に線形性関係が存在せず、第１の近接性暗号文と第２の近接性暗号文との間に近接性が存在しない。
【０１４５】
線形性関係及び／又は近接性に基づき、関係認証モジュール１０８は、認証を決定できる。例えば、関係認証モジュール１０８は、チャレンジデータ２３８がユーザ２０６又は偽者２２２に起因するかを決定しても良い。関係認証モジュール１０８は、線形性関係の発見及び／又は近接性の検出に基づき、認証信号２４２を通信しても良い。ｅｎｃ／ｄｅｃモジュール１１０は、認証信号２４２を受信しても良い。
【０１４６】
本開示の範囲から逸脱することなく生体認証システム２００に対し変更、追加又は省略が行われても良い。具体的には、図２に示す実施形態は、１人のユーザ２０６、１つのユーザ装置１０２、及び１つの認証サーバ１４０を有する。しかしながら、本開示は、１又は複数のユーザ２０６、１又は複数のユーザ装置１０２、１又は複数の認証サーバ１４０、又はそれらの任意の組み合わせを有する生体認証システム２００に適用される。
【０１４７】
さらに、本願明細書に記載の実施形態の中の種々のコンポーネントの分割は、分割が全ての実施形態において生じることを意味しない。本開示の利益により、記載のコンポーネントが単一のコンポーネントに統合され又は複数のコンポーネントに分割されても良いことが理解される。例えば、幾つかの実施形態では、ｅｎｃ／ｄｅｃモジュール１１０及び／又はそれに属する１又は複数の機能は、認証サーバ１４０にあるモジュールにより実行されても良い。
【０１４８】
関係認証モジュール１０８及び／又はｅｎｃ／ｄｅｃモジュール１１０は、生体認証のためのコード及びルーチンを有しても良い。幾つかの実施形態では、関係認証モジュール１０８及び／又はｅｎｃ／ｄｅｃモジュール１１０は、例えば、ユーザ装置１０２又は別のコンピューティング装置に格納されても良いシンクライアントアプリケーションとして部分的に動作しても良く、認証サーバ１４０に格納されても良いコンポーネントの一部として動作しても良い。幾つかの実施形態では、関係認証モジュール１０８及び／又はｅｎｃ／ｄｅｃモジュール１１０は、ＦＰＧＡ（field−programmable  gate  array）又はＡＳＩＣ（application−specific  integrated  circuit）を含むハードウェアを用いて実装できる。幾つかの他の例では、関係認証モジュール１０８及び／又はｅｎｃ／ｄｅｃモジュール１１０は、ハードウェア及びソフトウェアの組み合わせを用いて実装されても良い。
【０１４９】
図３は、本願明細書に記載の少なくとも１つの実施形態に従って構成される、生体認証の例示的な方法３００のフロー図である。方法３００は、図２の生体認証システム２００の中で又は図１の動作環境１００の中で実装され得るような生体認証システムにおいて実行されても良い。方法３００は、本願明細書に記載された認証サーバ１４０により幾つかの実施形態においてプログラム制御されて実行されても良い。認証サーバ１４０は、方法３００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体（例えば、図１のメモリ１２２Ｂ）を含み又はそれに通信可能に結合されても良い。追加又は代替で、認証サーバ１４０は、方法３００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図１のプロセッサ１２４Ｂ）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【０１５０】
方法３００はブロック３０２で開始し得る。ブロック３０２で、第１の線形性暗号文が受信されても良い。第１の線形性暗号文は、関係線形性暗号化方式を用いて暗号化された第１のバイオメトリックテンプレートを表しても良い。ブロック３０４で、第１の近接性暗号文が受信されても良い。第１の近接性暗号文は、関係近接性暗号化方式を用いて暗号化された第１のバイオメトリックテンプレートを表しても良い。
【０１５１】
ブロック３０６で、第１の線形性暗号文及び第１の近接性暗号文は、登録暗号文として格納されても良い。ブロック３０８で、線形性関係秘密キー及び近接性関係秘密キーが受信されても良い。ブロック３１０で、第２の近接性暗号文が受信されても良い。第２の近接性暗号文は、関係近接性暗号化方式を用いて暗号化された第２のバイオメトリックテンプレートを表しても良い。ブロック３１２で、第２の線形性暗号文が受信されても良い。第２の線形性暗号文は、関係線形性暗号化方式を用いて暗号化された第２のバイオメトリックテンプレートを表しても良い。
【０１５２】
ブロック３１４で、第１の線形性暗号文と第２の線形性暗号文との間の線形性関係が、線形性関係秘密キーを用いて発見されても良い。ブロック３１６で、第１の近接性暗号文と第２の近接性暗号文との間の近接性が、近接性関係秘密キーを用いて検出されても良い。近接性は、ハミング距離の観点で決定されても良い。ブロック３１８で、ユーザの同一性は、近接性及び線形性関係に基づき認証されても良い。
【０１５３】
本願明細書に開示した手順及び方法の任意のものについて、処理及び方法の中で実行される機能は、異なる順序で実施されても良い。さらに、概略のステップ及び動作は、単に例として提供され、幾つかのステップ及び動作は、開示の実施形態から逸脱することなく、任意であり、より少ないステップ及び動作に組み合わされ、又は追加ステップ及び動作に拡張されても良い。
【０１５４】
図４Ａ及び４Ｂは、本願明細書に記載の少なくとも１つの実施形態に従って構成される、関係暗号化の例示的な方法４００のフロー図である。方法４００は、図２の生体認証システム２００の中で又は図１の動作環境１００の中で実装され得るような生体認証システムにおいて実行されても良い。方法４００は、本願明細書に記載されたユーザ装置１０２により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置１０２は、方法４００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体（例えば、図１のメモリ１２２Ａ）を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置１０２は、方法４００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図１のプロセッサ１２４Ａ）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【０１５５】
図４Ａを参照すると、方法４００はブロック４０２で開始し得る。ブロック４０２で、関係線形性暗号化方式のキーが生成されても良い。関係線形性暗号化方式のキーは、セキュリティパラメータについて生成されても良い。ブロック４０３で、第１の不均一分散データは、第１の平文ベクトルとして適切なランダム化レベルにランダム化されても良い。不均一分散データは、バイオメトリックデータであっても良い。適切なランダム化レベルは、以下に詳細に説明される。ブロック４０４で、第１の平文ベクトルは、関係線形性暗号化方式を用いて暗号化されても良い。第１の平文ベクトルの暗号化は、第１の平文ベクトルを表す第１の線形性暗号文を生成しても良い。ブロック４０６で、関係近接性暗号化方式のキーが生成されても良い。関係近接性暗号化方式のキーは、セキュリティパラメータについて生成されても良い。ブロック４０８で、第１の平文ベクトルは、関係近接性暗号化方式を用いて暗号化されても良い。関係近接性暗号化方式を用いる第１の平文ベクトルの暗号化は、第１の平文ベクトルを表す第１の近接性暗号文を生成しても良い。ブロック４１０で、第１の線形性暗号文及び第１の近接性暗号文は、認証サーバに通信されても良い。
【０１５６】
ブロック４１１で、第２の不均一分散データは、第２の平文ベクトルとして適切なランダム化レベルにランダム化されても良い。不均一分散データは、バイオメトリックデータであっても良い。適切なランダム化レベルは、以下に詳細に説明される。ブロック４１２で、第２の平文ベクトルは、関係線形性暗号化方式を用いて暗号化されても良い。第２の平文ベクトルの暗号化は、第２の平文ベクトルを表す第２の線形性暗号文を生成しても良い。図４Ｂを参照すると、ブロック４１４で、第２の平文ベクトルは、関係近接性暗号化方式を用いて暗号化されても良い。関係近接性暗号化方式を用いる第２の平文ベクトルの暗号化は、第２の近接性暗号文を生成しても良い。ブロック４１６で、第２の線形性暗号文及び第２の近接性暗号文は、認証サーバに通信されても良い。ブロック４１８で、ブロック４０２において生成された関係線形性暗号化方式のキーは、認証サーバに通信されても良い。キーは、関係線形性キー及び関係近接性キーを有しても良い。
【０１５７】
ブロック４２０で、認証信号は、認証サーバから受信されても良い。認証信号は、関係線形性キーを用いて発見された第１の線形性暗号文と第２の線形性暗号文との間の線形性関係と、関係近接性キーを用いて検出された第１の近接性暗号文と第２の近接性暗号文との間の近接性と、を示しても良い。幾つかの実施形態では、第１の平文ベクトルは、ユーザから登録入力として受信された第１のバイオメトリックテンプレートを有しても良い。さらに、第２の平文ベクトルは、チャレンジ入力として受信された第２のバイオメトリックテンプレートを有しても良い。上述及び他の実施形態では、認証信号は、第２のバイオメトリックテンプレートがユーザに起因するか否かを示しても良い。
【０１５８】
図５は、本願明細書に記載の少なくとも１つの実施形態に従って構成される、関係暗号化方式において線形性関係を発見する例示的な方法５００のフロー図である。方法５００は、図２の生体認証システム２００の中で又は図１の動作環境１００の中で実装され得るような生体認証システムにおいて実行されても良い。方法５００は、本願明細書に記載された認証サーバ１４０により幾つかの実施形態においてプログラム制御されて実行されても良い。認証サーバ１４０は、方法５００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体（例えば、図１のメモリ１２２Ｂ）を含み又はそれに通信可能に結合されても良い。追加又は代替で、認証サーバ１４０は、方法５００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図１のプロセッサ１２４Ｂ）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【０１５９】
方法５００はブロック５０２で開始し得る。ブロック５０２で、特定ベクトルが定められても良い。特定ベクトルは、第１のフィールドのメンバを有しても良い。；第１のフィールドは、０及び１の要素、及び線形性秘密キーの長さである特定数の次元を有しても良い。追加又は代替で、特定ベクトルは、第２のフィールドのメンバを有しても良い。；第２のフィールドは、０個から、基本数及び特定数の次元より１少ない数までの要素を有しても良い。
【０１６０】
ブロック５０４で、第１の値が計算されても良い。第１の値は、第１の線形性暗号文の第１の要素と、線形性関係秘密キーにより冪乗された第２の線形性暗号文の第１の要素とのペアリング関数として計算されても良い。ブロック５０６で、第２の値が計算されても良い。幾つかの実施形態では、第２の値は、第１の線形性暗号文の各々の要素と、−１を特定ベクトルの対応する要素で冪乗したもので冪乗した第２の線形性暗号文の対応する要素とのペアリング関数の結果であっても良い。幾つかの実施形態では、第２の値は、第１の線形性暗号文の各々の要素と、−１及び特定ベクトルの対応する要素の積で任意の生成元を冪乗したもので冪乗した第２の線形性暗号文の中の対応する要素とのペアリング関数の結果として計算されても良い。任意の生成元は、０を削除した整数の集合の部分群から選択されても良い。
【０１６１】
ブロック５０８で、第１の値が第２の値に等しいか否かが決定されても良い。第１の値が第２の値に等しいことに応答して（ブロック５０８で「Ｙｅｓ」）、方法５００は、ブロック５１０に進んでも良い。ブロック５１０で、第１の線形性暗号文は第２の線形性暗号文と線形の関係にあると結論づけられても良い。第１の値が第２の値に等しくないことに応答して（ブロック５１８で「Ｎｏ」）、方法５００は、ブロック５１２に進んでも良い。ブロック５１２で、エラーが出力されても良い。これは、第１の線形性暗号文は第２の線形性暗号文と線形の関係にないことを示しても良い。
【０１６２】
図６は、本願明細書に記載の少なくとも１つの実施形態に従って構成される、近接性を検出する例示的な方法６００のフロー図である。方法６００は、図２の生体認証システム２００の中で又は図１の動作環境１００の中で実装され得るような生体認証システムにおいて実行されても良い。方法６００は、本願明細書に記載された認証サーバ１４０により幾つかの実施形態においてプログラム制御されて実行されても良い。認証サーバ１４０は、方法６００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体（例えば、図１のメモリ１２２Ｂ）を含み又はそれに通信可能に結合されても良い。追加又は代替で、認証サーバ１４０は、方法６００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図１のプロセッサ１２４Ｂ）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【０１６３】
方法６００はブロック６０２で開始し得る。ブロック６０２で、ＤＥＣＯＤＥは、公開キー情報からアクセスされても良い。ブロック６０４で、ランダム性の和が復元されても良い。ランダム性の和は、第１の近接性暗号文について受信されても良い。第１の近接性暗号文のランダム性の和は、ＤＥＣＯＤＥとして定められても良い。ＤＥＣＯＤＥは、（ａ）ＣＰＡ秘密キーと（ｂ）第１の近接性暗号文の第１の部分の和とを入力として受信するＣＰＡ復号化アルゴリズムと、ＣＰＡ秘密キーと第２の近接性暗号文の第１の部分とを入力として受信するＣＰＡ復号化アルゴリズムと、を入力として受信する。
【０１６４】
ブロック６０６で、ＤＥＣＯＤＥがエラーを返すことに応答して、拒否が出力されても良い。或いは、ブロック６０８で、線形性検証アルゴリズムが出力されても良い。線形性検証アルゴリズムは、線形性関係秘密キー、第２の近接性暗号文の第１の部分、第２の近接性暗号文の第２の部分、及びランダム性の和を入力として受信しても良い。
【０１６５】
図７は、本願明細書に記載の少なくとも１つの実施形態に従って構成される、関係線形性暗号化方式のキー生成の例示的な方法７００のフロー図である。方法７００は、図２の生体認証システム２００の中で又は図１の動作環境１００の中で実装され得るような生体認証システムにおいて実行されても良い。方法７００は、本願明細書に記載されたユーザ装置１０２により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置１０２は、方法７００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体（例えば、図１のメモリ１２２Ａ）を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置１０２は、方法７００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図１のプロセッサ１２４Ａ）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【０１６６】
方法７００はブロック７０２で開始し得る。ブロック７０２で、双線形群が生成されても良い。幾つかの実施形態では、双線形群は素数位数であっても良い。素数位数は、セキュリティパラメータにおける指数であっても良い。追加又は代替で、素数位数は、セキュリティパラメータにおける指数であり、１を基本数（ｐ）で割った余り（１  modulo  ｐ）に等しくても良い。例えば、平文ベクトルがビットベクトルを含む実施形態では、素数位数は、セキュリティパラメータにおける指数であっても良い。平文ベクトルがｐ−ａｒｙベクトルを含む実施形態では、素数位数は、セキュリティパラメータにおける指数であり、１を基本数（ｐ）で割った余り（１  modulo  ｐ）に等しくても良い。
【０１６７】
ブロック７０４で、生成元がサンプリングされても良い。例えば、第１の生成元は、第１の双線形群からサンプリングされても良く、第２の生成元は、第２の双線形群からサンプリングされても良い。ブロック７０６で、線形性秘密キーが生成されても良い。例えば、第１の線形性秘密キー及び第２の線形性秘密キーは、整数の集合から特定数の要素をランダムにサンプリングすることにより生成されても良い。整数の集合は、０から、素数位数より１少ない数までを有しても良い。
【０１６８】
ブロック７０８で、線形性公開キーが定められても良い。例えば、第１の線形性公開キーは、第１の生成元である要素と、第１の線形性秘密キーの対応する要素により冪乗された第１の生成元である１又は複数の他の要素と、を有しても良い。幾つかの実施形態では、第１の線形性公開キーは、任意の生成元を更に有しても良い。任意の生成元は、０を削除した整数の集合の部分群から選択されても良い。さらに、第２の線形性公開キーが定められても良い。第２の線形性公開キーは、第２の生成元である要素と、第２の線形性秘密キーの対応する要素により冪乗された第２の生成元である１又は複数の他の要素と、を有しても良い。幾つかの実施形態では、第２の線形性公開キーは、任意の生成元である要素を更に有しても良い。
【０１６９】
ブロック７１０で、線形性関係秘密キーが定められても良い。線形性関係秘密キーの各々の要素は、第２の線形性秘密キーの対応する要素と第１の線形性秘密キーの対応する要素との和を有しても良い。
【０１７０】
図８は、本願明細書に記載の少なくとも１つの実施形態に従って構成される、関係線形性暗号化方式を用いて第１の平文ベクトルを暗号化する例示的な方法８００のフロー図である。方法８００は、図２の生体認証システム２００の中で又は図１の動作環境１００の中で実装され得るような生体認証システムにおいて実行されても良い。方法８００は、本願明細書に記載されたユーザ装置１０２により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置１０２は、方法８００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体（例えば、図１のメモリ１２２Ａ）を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置１０２は、方法８００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図１のプロセッサ１２４Ａ）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【０１７１】
方法８００はブロック８０２で開始し得る。ブロック８０２で、乱数がサンプリングされても良い。乱数は、整数の集合からサンプリングされても良い。ブロック８０４で、第１の線形性暗号文が構築されても良い。第１の線形性暗号文の第１の要素は、乱数により冪乗される第１の生成元であっても良い。さらに、第１の線形性暗号文の１又は複数の他の要素は、線形性暗号化指数により冪乗された第１の線形性公開キーの対応する要素を有しても良い。幾つかの実施形態では、線形性暗号化指数は、乱数と、−１を第１の平文ベクトルの対応する要素により冪乗したものとの積を有しても良い。幾つかの実施形態では、線形性暗号化指数は、乱数と、第１の平文ベクトルの対応する要素により冪乗された任意の生成元との積を有しても良い。
【０１７２】
図９は、本願明細書に記載の少なくとも１つの実施形態に従って構成される、関係近接性暗号化方式のキーを生成する例示的な方法９００のフロー図である。方法９００は、図２の生体認証システム２００の中で又は図１の動作環境１００の中で実装され得るような生体認証システムにおいて実行されても良い。方法９００は、本願明細書に記載されたユーザ装置１０２により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置１０２は、方法９００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体（例えば、図１のメモリ１２２Ａ）を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置１０２は、方法９００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図１のプロセッサ１２４Ａ）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【０１７３】
方法９００はブロック９０２で開始し得る。ブロック９０２で、ＥＣＣが選択されても良い。ＥＣＣは、長さ、セキュリティパラメータの同じ次数のランク、選択された最小距離、を有しても良い。ブロック９０４で、ＣＰＡセキュア暗号化方式のキー生成アルゴリズムが実行されても良い。ＣＰＡセキュア暗号化方式は、ＣＰＡ公開キー及びＣＰＡ秘密キーを出力しても良い。ブロック９０６で、関係線形性キー生成アルゴリズムが実行されても良い。関係線形性キー生成アルゴリズムは、第１の線形性公開キー、第２の線形性公開キー、第１の線形性秘密キー、第２の線形性秘密キー、及び関係線形性秘密キーを出力しても良い。
【０１７４】
ブロック９０７で、近接性公開キーが定められても良い。例えば、第１の近接性公開キーは、ＥＮＣＯＤＥ、ＤＥＣＯＤＥ、ＣＰＡ公開キー及び第１の線形性公開キーに基づき定められても良い。さらに、第２の近接性公開キーは、ＥＮＣＯＤＥ、ＤＥＣＯＤＥ、ＣＰＡ公開キー及び第２の線形性公開キーに基づき定められても良い。ブロック９０８で、近接性秘密キーが定められても良い。例えば、第１の近接性秘密キーは、ＣＰＡ秘密キー及び第１の線形性秘密キーに基づき定められても良い。さらに、第２の近接性秘密キーは、ＣＰＡ秘密キー及び第２の線形性秘密キーに基づき定められても良い。ブロック９１０で、近接性関係秘密キーが定められても良い。例えば、近接性関係秘密キーは、ＣＰＡ秘密キー及び第１の関係線形性秘密キーに基づき定められても良い。
【０１７５】
図１０は、本願明細書に記載の少なくとも１つの実施形態に従って構成される、関係近接性暗号化方式を用いて第１の平文ベクトルを暗号化する例示的な方法１０００のフロー図である。方法１０００は、図２の生体認証システム２００の中で又は図１の動作環境１００の中で実装され得るような生体認証システムにおいて実行されても良い。方法１０００は、本願明細書に記載されたユーザ装置１０２により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置１０２は、方法１０００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体（例えば、図１のメモリ１２２Ａ）を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置１０２は、方法１０００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図１のプロセッサ１２４Ａ）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【０１７６】
方法１０００はブロック１００２で開始し得る。ブロック１００２で、近接性乱数がサンプリングされても良い。近接性乱数は、第３のフィールドからサンプリングされても良い。第３のフィールドは、基本数と、ＥＣＣのランクである次元と、を有しても良い。ブロック１００４で、第１の近接性暗号文の第１の部分が定められても良い。第１の部分は、ＣＰＡ公開キーと第１の平文ベクトルの和とを入力として受信するＣＰＡ暗号化アルゴリズム、及び近接性乱数を入力として受信するＥＮＣＯＤＥとして定められても良い。
【０１７７】
ブロック１００６で、第１の近接性暗号文の第２の部分が定められても良い。第２の部分は、第１の線形性公開キーと近接性乱数とを入力として受信する第１の線形性暗号化アルゴリズムとして定められても良い。
【０１７８】
図１１は、本願明細書に記載の少なくとも１つの実施形態に従って構成される、第１の線形性暗号文を復号化する例示的な方法１１００のフロー図である。方法１１００は、図２の生体認証システム２００の中で又は図１の動作環境１００の中で実装され得るような生体認証システムにおいて実行されても良い。方法１１００は、本願明細書に記載されたユーザ装置１０２により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置１０２は、方法１１００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体（例えば、図１のメモリ１２２Ａ）を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置１０２は、方法１１００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図１のプロセッサ１２４Ａ）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【０１７９】
方法１１００はブロック１１０２で開始し得る。ブロック１１０２で、第１の線形性暗号文の中の対応する要素が、特定要素値により冪乗された任意の生成元と第１の線形性秘密キーの対応する要素との積により冪乗された第１の線形性暗号文の第１の要素に等しいような、特定要素値が存在するか否かが決定されても良い。特定要素値が存在することに応答して（ブロック１１０２で「Ｙｅｓ」）、要素は、特定要素値に設定されても良い。特定要素値が存在しないことに応答して（ブロック１１０２で「Ｎｏ」）、エラーが出力されても良い。
【０１８０】
図１２は、本願明細書に記載の少なくとも１つの実施形態に従って構成される、第１の線形性暗号文を復号化する別の例示的な方法１２００のフロー図である。方法１２００は、図２の生体認証システム２００の中で又は図１の動作環境１００の中で実装され得るような生体認証システムにおいて実行されても良い。方法１２００は、本願明細書に記載されたユーザ装置１０２により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置１０２は、方法１２００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体（例えば、図１のメモリ１２２Ａ）を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置１０２は、方法１２００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図１のプロセッサ１２４Ａ）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【０１８１】
方法１２００はブロック１２０２で開始し得る。ブロック１２０２で、第１の線形性暗号文の中の対応する要素が、第１の線形性秘密キーの対応する要素により冪乗された第１の線形性暗号文の第１の要素と等しいか否かが決定されても良い。第１の線形性暗号文の中の対応する要素が、第１の線形性秘密キーの対応する要素により冪乗された第１の線形性暗号文の第１の要素に等しいことに応答して（ブロック１２０２において「Ｙｅｓ」）、方法１２００は、ブロック１２０８に進んでも良い。ブロック１２０８で、第１の平文ベクトルの要素は、０に設定されても良い。
【０１８２】
第１の線形性暗号文の中の対応する要素が、第１の線形性秘密キーの対応する要素により冪乗された第１の線形性暗号文の第１の要素に等しくないことに応答して（ブロック１２０２において「Ｎｏ」）、方法１２００は、ブロック１２０４に進んでも良い。ブロック１２０４で、第１の線形性暗号文の中の対応する要素が、第１の線形性秘密キーの対応する要素で−１を乗算したものにより冪乗された第１の線形性暗号文の第１の要素と等しいか否かが決定されても良い。第１の線形性暗号文の中の対応する要素が、第１の線形性秘密キーの対応する要素で−１を乗算したものにより冪乗された第１の線形性暗号文の第１の要素に等しいことに応答して（ブロック１２０４において「Ｙｅｓ」）、方法１２００は、ブロック１２１０に進んでも良い。ブロック１２１０で、第１の平文ベクトルの要素は、１に設定されても良い。第１の線形性暗号文の中の対応する要素が、第１の線形性秘密キーの対応する要素で−１を乗算したものにより冪乗された第１の線形性暗号文の第１の要素に等しくないことに応答して（ブロック１２０４において「Ｎｏ」）、方法は、ブロック１２０６に進んでも良い。ブロック１２０６で、第１の線形性暗号文の中の対応する要素が別の値に等しいか否かが決定されても良い。第１の線形性暗号文の対応する要素が別の値に等しいことに応答して（ブロック１２０６で「Ｙｅｓ」）、方法１２００は、ブロック１２１２に進んでも良い。ブロック１２１２で、エラーが返されても良い。
【０１８３】
＜不均一分散データ＞
幾つかの実施形態では、本開示は、一様にランダムではない、バイオメトリックデータのような、基礎データの関係暗号化も提供し得る。基礎データは、不均一に分散されても良く、及び／又は相関を有しても良い。非限定的な例として、米国の人口のより大きな部分集合は、青い目よりも茶色い目を持っている。言い換えると、目の色は、人口全体に不均一に分散し得る。同様に、青い目を持つ個人は、濃い色の髪よりも明るい色の髪を持つ可能性が高い。言い換えると、青い目と明るい色の髪との間には相関が存在し得る。バイオメトリックデータにおける（相関を含む）ランダム性の欠如のために、本開示は、本開示に記載の関係暗号化方式を用いる前に、基礎となるバイオメトリックデータの効率的なランダム化の提供も含み得る。
【０１８４】
適切なランダム化レベルは、データのエントロピ、ノイズ閾、データのドメイン、等を含む、データの特徴の数に依存しても良い。これらの特徴を説明する際の便宜のため、指紋の生体認証特徴の例が用いられるが、非バイオメトリックデータを含む任意の基礎データが使用されても良い。幾つかの実施形態では、適切なランダム化レベルは、Ｘとｒとのドット積、又は基礎データｒと行列Ｘとのドット積により達成され得る。行列Ｘは、従来知られているように強力な線形抽出器であり得る。特徴は、行列Ｘを導出する際の入力であっても良い。幾つかの実施形態では、線形抽出器は、データを適切なレベルにランダム化するために、データの元のサイズを４分の１のサイズまで縮小するために使用されても良い。適切なランダム化レベルは、セキュリティパラメータλに依存しても良い。例えば、セキュリティパラメータが、セキュリティの８０個のビットが必要であることを示す場合、ランダム化レベルは、生データに対して強力な線形抽出器を用いる処理の後に、８０ビットのランダム化データを必要とし得る。別の例では、セキュリティパラメータが、セキュリティの１２８個のビットが必要であることを示す場合、ランダム化レベルは、生データに対して強力な線形抽出器を用いる処理の後に、１２８ビットのランダム化データを必要とし得る。
【０１８５】
データのエントロピの特徴は、データ自体が本来持っている全体的なばらつき又はランダム性を表しても良い。例として、指紋は、人間の人口において、指紋の分布に固有の特定量のばらつき又はランダム性を有する。これは、バイオメトリック特徴のエントロピとして参照されても良い。データのエントロピが増大するにつれ、適切なランダム化レベルに達するために必要な処理の量は減少し得る。
【０１８６】
ノイズ閾の特徴は、基礎データを読み取る又は取得するときに存在するばらつきの量を表し得る。再び指紋の例を用いると、指紋の走査又は読み取りを行うとき、指紋の読み取り値を集めるときに、幾らかのノイズ又は変動が存在し得る。言い換えると、所与の個人について読み取り値が取り込まれる度に、正確に同一のバイオメトリックデータが集められない場合がある。実際に、個人のバイオメトリック特徴は僅かに変化し得るので、完全なシステムにおいてさえ、２つのサンプリングの間には、バイオメトリックデータに幾らかの軽微な変動が存在し得る。これは、ノイズ閾として表されても良い。ノイズ閾が高い場合、システムは、頻繁に偽陽性を生成し、不正なデータが基礎データに一致することを許してしまう。指紋の例を用いると、類似するが同一ではない指紋が多すぎると、本物として認識される場合がある。反対に、ノイズ閾が低い場合には、システムは頻繁に偽陰性を生成し得る。指紋の例を用いると、第２の読み取り値を取り入れる同一人物が認証されない場合がある。ノイズ閾が増大するにつれ、適切なランダム化レベルに達するための処理の量は減少し得る。
【０１８７】
別の特徴は、データのドメイン、又は基礎データが存在する数学的空間を有しても良い。指紋の例を用いると、バイオメトリックデータはビットストリーム又はｐ−ｎａｒｙベクトルに変換される。例えば、所与の指紋は、３２０ビットのビットストリームにより表現できる。ドメインのフォーマット及び長さは、他の因子、例えばノイズレベル及びノイズ閾に関連しても良い。幾つかの実施形態では、基礎データの最小サイズ又はベクトル長しか必要ない。基礎データのサイズ及びドメインの複雑性が増大するにつれ、処理の量は減少し得る。
【０１８８】
適切なランダム化レベルは、データの所望のセキュリティレベルに比例しても良い。所望のセキュリティレベルが増大するにつれ、適切なランダム化レベルは増大し得る。所望のセキュリティレベルは、セキュリティパラメータλが何を表すかを決定し得る。例えば、高いセキュリティレベルが望まれる場合、セキュリティパラメータは、１２８個のセキュリティビットを必要とし得る。
【０１８９】
図１３は、例示的な動作環境のブロック図である。ネットワーク１０７、通信モジュール１１６、設定モジュール１４４、メモリ１２２Ａ、プロセッサ１２４Ａ、通信ユニット１２６Ａ、第１のエンティティ１５０、第２のエンティティ１５２、認証サーバ１４０は、図１に示したものと同じであっても良い。ユーザ装置１３０２は、ユーザ装置１０２と同様であっても良いが、関係暗号化／復号化モジュール１３１０を含むよう変更されても良い。線形性暗号化モジュール１３１２及び近接性暗号化モジュール１３１４は、線形性暗号化／復号化モジュール１１２及び近接性暗号化／復号化モジュール１１４と同様であっても良いが、それらは任意の暗号文を復号化するよう構成されなくても良い。不均一分散データを用いる幾つかの実施形態では、本開示に記載の方法及び処理は、任意の復号化ステップを省略するよう変更されても良い。関係暗号化／復号化モジュール１３１０は、関係暗号化／復号化モジュール１１０と同様であっても良いが、ランダム化モジュール１３２０を含むよう変更されても良い。
【０１９０】
ランダム化モジュール１３２０は、本願明細書に記載の１又は複数の動作を実行するよう構成される１又は複数のルーチンを含むソフトウェアとして実装されても良い。ランダム化モジュール１３２０は、本願明細書に記載の機能を提供するためにプロセッサ１２４により実行可能な命令セットを有しても良い。幾つかの例では、ランダム化モジュール１３２０は、メモリ１２２に格納され又は少なくとも一時的にそれにロードされても良く、プロセッサ１２４のうちの１又は複数によりアクセス可能又は実行可能であっても良い。ランダム化モジュール１３２０は、バスを介してプロセッサ１２４のうちの１又は複数と協働し及び通信するために適応されても良い。
【０１９１】
ランダム化モジュール１３２０は、不均一に分散されたデータであっても良い基礎データを適切なランダム化レベルにまでランダム化するよう構成されても良い。したがって、ランダム化されたデータは、本開示に記載のような関係暗号化方式において使用され得る。幾つかの実施形態では、これは、ランダム化モジュール１３２０が線形抽出器１３２５を利用して不均一分散データから適切にランダム化された平文を抽出するステップを有しても良い。線形抽出器１３２５は、強力な線形抽出器であっても良い。線形抽出器１３２５は、従来知られているような一連の算術的ステップ又は演算として実施されても良い。
【０１９２】
例として、ユーザ装置１３０２は、本開示に従って関係暗号化方式で使用されるべきバイオメトリックデータを受信しても良い。バイオメトリックデータは、不均一に分散していても良い。したがって、基礎データを暗号化する前に、バイオメトリックデータは、平文ベクトルとして適切なランダム化レベルに達するよう、線形抽出器１３２５を用いてランダム化モジュール１３２０において処理されても良い。平文ベクトルは、次に、線形性暗号化モジュール１３１２及び近接性暗号化モジュール１３１４により暗号化されても良い。
【０１９３】
図１４は、関係暗号化方式を用いる不均一分散データを暗号化する例示的な方法１４００のフロー図である。方法１４００は、図２の生体認証システム２００の中で、図１の動作環境１００の中で、又は図１３の動作環境１３００の中で実装され得るような生体認証システムにおいて実行されても良い。幾つかの実施形態では、方法１２００は、図１のユーザ装置１０２又は図１３のユーザ装置１３０２によりプログラム制御可能に実行されても良い。ユーザ装置１０２又はユーザ装置１３０２は、方法１４００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体（例えば、図１又は図１３のメモリ１２２Ａ）を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置１０２又はユーザ装置１３０２は、方法１４００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図１又は図１３のプロセッサ１２４Ａ）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【０１９４】
ブロック１４１０において、ユーザ装置は、バイオメトリックデータ又は他の不均一分散データを受信しても良い。これは、１又は複数のセンサ、検出器、等を用いて受信されても良い。ブロック１４２０において、バイオメトリックデータは、平文ベクトルとして、あるランダム化レベルに処理されても良い。ブロック１４２０は、図１５において更に説明されても良い。ブロック１４３０において、平文ベクトルは、本開示に記載のように関係線形性暗号化方式を用いて暗号化されて、線形性暗号文を生成しても良い。ブロック１４４０において、平文ベクトルは、本開示に記載のように関係近接性暗号化方式を用いて暗号化されて、近接性暗号文を生成しても良い。
【０１９５】
ブロック１４５０で、線形性及び近接性暗号文は、認証サーバに通信されても良い。線形性及び近接性暗号文が認証サーバに通信されると、認証サーバは、暗号文と基準暗号文との間に関係が存在するかどうかを決定するために、本願明細書に記載のように比較及び決定を実行しても良い。関係が存在するとサーバが決定した場合、認証サーバは、ユーザ装置に認証を通信しても良い。幾つかの実施形態では、これは、基礎データが適切にランダム化されている所望のセキュリティレベルに基づいても良い。ブロック１４６０で、ユーザ装置は、認証サーバから、近接性暗号文と登録近接性暗号文との間に近接性が存在するか否かを示す認証を受信しても良い。第１のバイオメトリックテンプレートと第２のバイオメトリックテンプレートとの間に概算類似性が存在すると認証サーバが決定した場合、認証サーバから受信される認証又は認証信号は、近接性暗号文と登録近接性暗号文との間に近接性が存在することを示す。
【０１９６】
図１５は、不均一分散データを処理する例示的な方法１５００のフロー図である。方法１５００は、図１４のブロック１４２０の代用又は拡張であっても良い。例えば、図１４のブロック１４１０の後、方法１５００が実施されても良く、次に図１４のブロック１４４０に戻っても良い。方法１５００は、図２の生体認証システム２００の中で、図１の動作環境１００の中で、又は図１３の動作環境１３００の中で実装され得るような生体認証システムにおいて実行されても良い。幾つかの実施形態では、方法１５００は、図１のユーザ装置１０２又は図１３のユーザ装置１３０２によりプログラム制御可能に実行されても良い。ユーザ装置１０２又はユーザ装置１３０２は、方法１５００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体（例えば、図１又は図１３のメモリ１２２Ａ）を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置１０２又はユーザ装置１３０２は、方法１５００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図１又は図１３のプロセッサ１２４Ａ）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。例えば、ブロック１５１０及び１５２０は、同時に実行されても良く、又は省略されても良い。
【０１９７】
図１４のブロック１４１０の後に、方法１５００は、ブロック１５１０で開始しても良い。ブロック１５１０で、バイオメトリックデータの特性が決定されても良い。これは、１又は複数のエントロピ、ノイズ閾、及びデータのドメインを決定するステップを有しても良い。幾つかの実施形態では、これは、記憶装置から又は第三機関から読み出されたデータの予め決定された特徴であっても良い。例えば、指紋の分布における多様性は、受信されたバイオメトリックデータが指紋を表すビットストリームである場合、格納され読み出される既知の特徴であっても良い。幾つかの実施形態では、バイオメトリックデータが読み出されると、特徴が決定されても良い。例えば、ノイズ閾は、バイオメトリックデータを集めるために使用されるハードウェア、センサ、又は他のデータキャプチャ技術に部分的に基づいても良い。次に、方法１５００はブロック１５２０に進んでも良い。
【０１９８】
ブロック１５２０において、適切なセキュリティレベルは、セキュリティパラメータλに基づき決定されても良い。適切なセキュリティレベルは、使用されるバイオメトリックデータの感度、認証が要求されるアプリケーション、等に基づいても良い。次に、方法１５００はブロック１５３０に進んでも良い。ブロック１５３０で、バイオメトリックデータについて適切なランダム化レベルが決定されても良い。上述のように、これは、ブロック１５１０において決定された特徴のうちの１又は複数、又はブロック１５２０における決定で用いられたセキュリティパラメータに部分的に基づいても良い。幾つかの実施形態では、適切なランダム化レベルは、セキュリティパラメータに比例しても良い。次に、方法１５００はブロック１５４０に進んでも良い。
【０１９９】
ブロック１５４０において、平文ベクトルとして適切なランダム化レベルにバイオメトリックデータを処理するために、強力な線形抽出器が用いられても良い。これは、数学的に演算Ｘ・ｒのように表すことができる。バイオメトリックデータがランダム化されると、方法１５００は、図１４のブロック１４３０へ処理の経路を取ることにより、終了しても良い。
【０２００】
本願明細書に記載した実施形態は、以下に更に詳細に議論するように、種々のコンピュータハードウェア又はソフトウェアモジュールを備えた特定用途又は汎用コンピュータの使用を含み得る。
【０２０１】
本願明細書に記載した実施形態は、コンピュータにより実行可能な命令又はデータ構造を伝える又は格納しているコンピュータ可読媒体を用いて実施され得る。このようなコンピュータ可読媒体は、汎用又は特定目的コンピュータによりアクセスできる利用可能な媒体であり得る。例として且つ限定ではなく、このようなコンピュータ可読媒体は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read−Only  Memory）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＣＤ−ＲＯＭ（Compact  Disc  Read−Only  Memory）又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、フラッシュメモリ装置（例えば、固体メモリ素子）を含む非一時的コンピュータ可読記憶媒体、又はコンピュータにより実行可能な命令若しくはデータ構造の形式で所望のプログラムコード手段を伝える若しくは格納するために用いられ汎用若しくは特定目的コンピュータによりアクセス可能な他の媒体を有し得る。上述の組合せも、コンピュータ可読媒体の範囲に包含され得る。
【０２０２】
コンピュータにより実行可能な命令は、例えば、汎用コンピュータ、特定目的コンピュータ（例えば、１又は複数のプロセッサ）又は特定目的処理装置に特定の機能又は機能グループを実行させる命令及びデータを有する。本発明の主題は構造的特徴及び／又は方法論的動作に特有の言葉で記載されたが、本発明の主題は、特許請求の範囲に定められる上述の特定の特徴又は動作に限定されないことが理解されるべきである。むしろ、上述の特定の特徴及び動作は、特許請求の範囲の実施の例示的形態として開示されたものである。
【０２０３】
本願明細書で用いられるように、用語「モジュール」又は「コンポーネント」は、モジュール若しくはコンポーネントの動作を実行するよう構成される特定ハードウェア実装、及び／又はコンピューティングシステムの汎用ハードウェア（例えばコンピュータ可読媒体、処理装置、等）に格納され及び／又はそれらにより実行され得るソフトウェアオブジェクト若しくはソフトウェアルーチンを表しても良い。幾つかの実施形態では、本願明細書に記載されたのと異なるコンポーネント、モジュール、エンジン及びサービスは、（例えば、別個のスレッドとして）コンピューティングシステムで実行されるオブジェクト又は処理として実施されても良い。本願明細書に記載のシステム及び方法の幾つかは概して（汎用ハードウェアに格納される及び／又はそれにより実行される）ソフトウェアで実装されるように記載されたが、専用ハードウェアの実装又はソフトウェアと専用ハードウェアの組み合わせの実装も可能であり考えられる。本説明では、「コンピュータエンティティ」は、本願明細書で先に定められたようにコンピューティングシステム、又はコンピューティングシステムで実行されるモジュール若しくはモジュールの組合せであっても良い。
【０２０４】
本願明細書に記載された全ての例及び条件文は、教育上の目的で、読者が本開示の原理及び発明者により考案された概念を理解するのを助け、技術を促進させるためであり、これらの特に記載された例及び条件に限定されないものと考えられるべきである。本開示の実施形態が詳細に記載されたが、種々の変更、置換及び修正が本開示の精神及び範囲から逸脱することなく行われうることが理解されるべきである。
【０２０５】
以上の実施形態に加えて、更に以下の付記を開示する。
（付記１）  セキュリティパラメータに関連するランダム化レベルに処理され且つ関係線形性暗号化方式を用いて暗号化された不均一分散バイオメトリックデータのバイオメトリックテンプレートを表す線形性暗号文を受信するステップと、
線形性関係秘密キーを用いて、前記線形性暗号文と登録線形性暗号文との間の線形性関係を決定するステップと、
前記ランダム化レベルに処理され且つ関係近接性暗号化方式を用いて暗号化された前記バイオメトリックデータの前記バイオメトリックテンプレートを表す近接性暗号文を受信するステップと、
近接性関係秘密キーを用いて、前記近接性暗号文と登録近接性暗号文との間の近接性関係を決定するステップと、
前記セキュリティパラメータ、前記線形性関係、及び前記近接性関係に基づき、ユーザの同一性を認証するステップと、
を有する方法。
（付記２）  前記ランダム化レベルに処理するステップは、線形抽出器により実行される、付記１に記載の方法。
（付記３）  前記バイオメトリックデータは、エントロピ、ノイズ閾、及びドメインの特徴を有する、付記１に記載の方法。
（付記４）  前記ランダム化レベルに処理するステップは、前記特徴のうちの１又は複数に依存する、付記３に記載の方法。
（付記５）  前記バイオメトリックデータは、別のバイオメトリック特徴との相関を有し、前記ランダム化レベルに処理するステップは、前記相関を考慮する、付記１に記載の方法。
（付記６）  前記認証のための前記セキュリティパラメータは、前記ランダム化レベルに比例する、付記１に記載の方法。
（付記７）  第２の線形性暗号文及び第２の近接性暗号文を受信するステップと、
前記第２の線形性暗号文を前記登録線形性暗号文として格納するステップと、
前記第２の近接性暗号文を前記登録近接性暗号文として格納するステップと、
前記線形性関係秘密キー及び前記近接性関係秘密キーを受信するステップと、
を更に有する付記１に記載の方法。
（付記８）  動作を実行させる又は動作の実行を制御させる、プロセッサにより実行可能な符号化されたプログラミングコードを有する非一時的コンピュータ可読媒体であって、前記動作は、
セキュリティパラメータに関連するランダム化レベルに処理され且つ関係線形性暗号化方式を用いて暗号化された不均一分散バイオメトリックデータのバイオメトリックテンプレートを表す線形性暗号文を受信するステップと、
線形性関係秘密キーを用いて、前記線形性暗号文と登録線形性暗号文との間の線形性関係を決定するステップと、
前記ランダム化レベルに処理され且つ関係近接性暗号化方式を用いて暗号化された前記バイオメトリックデータの前記バイオメトリックテンプレートを表す近接性暗号文を受信するステップと、
近接性関係秘密キーを用いて、前記近接性暗号文と登録近接性暗号文との間の近接性関係を決定するステップと、
前記セキュリティパラメータ、前記線形性関係、及び前記近接性関係に基づき、ユーザの同一性を認証するステップと、
を有する、コンピュータ可読媒体。
（付記９）  前記ランダム化レベルに処理するステップは、線形抽出器により実行される、付記８に記載のコンピュータ可読媒体。
（付記１０）  前記バイオメトリックデータは、エントロピ、ノイズ閾、及びドメインの特徴を有する、付記８に記載のコンピュータ可読媒体。
（付記１１）  前記ランダム化レベルに処理するステップは、前記特徴のうちの１又は複数に依存する、付記１０に記載のコンピュータ可読媒体。
（付記１２）  前記バイオメトリックデータは、別のバイオメトリック特徴との相関を有し、前記ランダム化レベルに処理するステップは、前記相関を考慮する、付記８に記載のコンピュータ可読媒体。
（付記１３）  前記認証のための前記セキュリティパラメータは、前記ランダム化レベルに比例する、付記８に記載のコンピュータ可読媒体。
（付記１４）  第２の線形性暗号文及び第２の近接性暗号文を受信するステップと、
前記第２の線形性暗号文を前記登録線形性暗号文として格納するステップと、
前記第２の近接性暗号文を前記登録近接性暗号文として格納するステップと、
前記線形性関係秘密キー及び前記近接性関係秘密キーを受信するステップと、
を更に有する付記８に記載のコンピュータ可読媒体。
（付記１５）  バイオメトリックデータを受信するステップであって、前記バイオメトリックデータは不均一に分散される、ステップと、
平文ベクトルとしてランダム化レベルに前記バイオメトリックデータを処理するステップであって、前記ランダム化レベルはセキュリティパラメータに関連付けられる、ステップと、
前記平文ベクトルを表す線形性暗号文を生成するために、関係線形性暗号化方式を用いて前記平文ベクトルを暗号化するステップと、
前記平文ベクトルを表す近接性暗号文を生成するために、関係近接性暗号化方式を用いて前記平文ベクトルを暗号化するステップと、
前記線形性暗号文及び前記近接性暗号文を認証サーバに通信するステップと、
前記認証サーバから、関係線形性キーを用いて決定された前記線形性暗号文と登録線形性暗号文との間の線形性関係と、関係近接性キーを用いて決定された前記近接性暗号文及び登録近接性暗号文の間の近接性と、を示す前記セキュリティパラメータに基づく認証信号を受信するステップと、
を有する方法。
（付記１６）  前記バイオメトリックデータを処理するステップは、線形抽出器により実行される、付記１５に記載の方法。
（付記１７）  前記バイオメトリックデータは、エントロピ、ノイズ閾、及びドメインの特徴を有する、付記１５に記載の方法。
（付記１８）  前記バイオメトリックデータを処理するステップは、前記特徴のうちの１又は複数に依存する、付記１７に記載の方法。
（付記１９）  前記バイオメトリックデータは、別のバイオメトリック特徴との相関を有し、前記バイオメトリックデータを処理するステップは、前記相関を考慮する、付記１５に記載の方法。
（付記２０）  前記セキュリティパラメータは、前記ランダム化レベルに比例する、付記１５に記載の方法。
【符号の説明】
【０２０６】
１００  動作環境
１０２  ユーザ装置
１０７  ネットワーク
１０８  関係認証モジュール
１１０  関係暗号化／復号化モジュール
１２２  メモリ
１１４  近接性暗号化／復号化モジュール
１１６  通信モジュール
１２４  プロセッサ
１２６  通信ユニット
１２８  近接性認証モジュール
１３０  登録暗号文
１３２  線形性認証モジュール
１３４  サーバ通信モジュール
１４０  認証サーバ
１４２Ａ  第１の平文ベクトル
１４２Ｂ  第２の平文ベクトル
１４４  設定モジュール
１５０  第２のエンティティ
１５２  第１のエンティティ
【図１】
0006786884.tif 000021
【図２】
0006786884.tif 000022
【図３】
0006786884.tif 000023
【図４Ａ】
0006786884.tif 000024
【図４Ｂ】
0006786884.tif 000025
【図５】
0006786884.tif 000026
【図６】
0006786884.tif 000027
【図７】
0006786884.tif 000028
【図８】
0006786884.tif 000029
【図９】
0006786884.tif 000030
【図１０】
0006786884.tif 000031
【図１１】
0006786884.tif 000032
【図１２】
0006786884.tif 000033
【図１３】
0006786884.tif 000034
【図１４】
0006786884.tif 000035
【図１５】
0006786884.tif 000036