生体認証の課題は、ユ―ザが認証の基礎として用いられるバイオメトリック特徴を変更できないことであり得る。例えば、ユーザは、ユーザの指紋又はユーザの虹彩パターンのようなユーザの1又は複数のユニークな特徴を表すバイオメトリックデータを含むバイオメトリックテンプレートを登録しても良い。バイオメトリックテンプレートが危険に晒される場合、ユーザは、バイオメトリックテンプレートにより表されるユニークな特徴を変更することができない。したがって、一旦、危険に晒されると、別のバイオメトリックテンプレートが登録されても良く、又は、別のバイオメトリック特徴のバイオメトリックテンプレートが登録されても良い。少なくともこの理由から、生体認証システムは、強力なプライバシ保証の利益を享受し得る。現実のバイオメトリックデータでは、バイオメトリックデータは、著しく不均一であり得る。
幾つかの生体認証システムでは、セキュアな生体認証システムを提供するために種々のアプローチが実施されてきた。例えば、幾つかの生体認証システムは、「特徴変換アプローチ」、「生体暗号システムアプローチ」、及び/又は「同形暗号化アプローチ」を実装する。しかしながら、これらのアプローチの各々は、少なくとも部分的には、バイオメトリックテンプレート、クライアント固有キー、公開キー、等のような各々が危険に晒され得る情報の通信を理由として、限られたプライバシ及びセキュリティしか提供しない。
したがって、本願明細書で議論する幾つかの実施形態は、プライバシ保護生体認証に関連する。プライバシ保護生体認証は、関係暗号化に基づいても良い。関係暗号化は、認証側(authenticator)に平文を復元させずに又は本物の暗号文との特定の関係を有する不正暗号文を生成させずに、認証側に暗号文の間の関係を発見させる。例えば、例示的な実施形態は、生体認証の方法を有する。方法は、登録入力を受信するステップを有しても良い。登録入力は、ユーザの第1のバイオメトリックテンプレートを有しても良い。第1のバイオメトリックテンプレートは、ユーザのバイオメトリック特徴のユニークな特徴を表しても良い。方法は、関係暗号化方式に従って、第1の線形性暗号文及び第1の近接性暗号文を生成するステップを有しても良い。方法は、第1の線形性暗号文及び第1の近接性暗号文を認証サーバに通信するステップを有しても良い。方法は、チャレンジ(challenge)入力を受信するステップを有しても良い。チャレンジ入力は、第2のバイオメトリックテンプレートを有しても良い。第2のバイオメトリックテンプレートは、ユーザのバイオメトリック特徴の1又は複数のユニークな特徴を表しても良い。方法は、関係暗号化方式に従って、第2の線形性暗号文及び第2の近接性暗号文を生成するステップを有しても良い。方法は、第2の線形性暗号文及び第2の近接性暗号文を認証サーバに通信するステップを有しても良い。認証サーバは、第1及び第2の線形性暗号文の間の線形性関係を発見し、第1及び第2の近接性暗号文の間の近接性を検出しても良い。方法は、認証サーバから、認証決定を示す信号を受信するステップを有しても良い。認証決定は、線形性関係及び/又は近接性の存在又は不存在に基づいても良い。
幾つかの実施形態では、基礎データは、線形性又は近接性暗号文を生成する前に、先ず処理されても良い。例えば、基礎データは、基礎にある平文の中のランダム化レベルを提供し得る線形抽出器(linear extractor)を通されても良い。本開示の実施形態を、添付の図面を参照して以下に説明する。
図1は、本願明細書に記載の少なくとも1つの実施形態により配置される例示的な動作環境100のブロック図を示す。動作環境100では、関係暗号化が実行されても良い。関係暗号化は、第1のエンティティ152が、第2のエンティティ150により提供される2以上の暗号文の間の1又は複数の関係を決定できるようにする暗号プリミティブを有しても良い。特に、関係暗号化は、第1のエンティティ152に2以上の暗号文の間の線形性関係を発見させ、2以上の暗号文の間の近接性を検出させる。さらに、関係暗号化は、第1のエンティティ152に暗号文から平文を復元させ、又は特定の本物の暗号文との特定の関係を有する不正暗号文を構築させる。
関係暗号化は、種々の環境において実装されても良い。例えば、関係暗号化は、個人が彼らの位置を非公開に保ちたいと望む社会環境において実施されても良いが、半ば信頼できるサービスは、位置同士の近接性の検出を可能にし得る。さらに、関係暗号化は、画像比較環境において実施されても良い。近接性は、画像同士の類似性を決定するために、データベースからの画像の間で検出されても良い。画像のプライバシは維持されても良い。ユーザは、データベースにある画像に触れずに、関係暗号化を用いて画像を検索しても良い。さらに、関係暗号化は、私的データ記憶環境において実施されても良い。ユーザは、そのデータを暗号化し、暗号化データをデータベースに通信しても良い。分析(例えば、記憶、クラスタリング、等)は、暗号化データが解読されるリスクを伴わず、暗号化データに対して実行され得る。
例えば、第2のエンティティ150は、第1の平文ベクトル142A及び第2の平文ベクトル142B(通常、平文ベクトル142又は複数の平文ベクトル142)を受信しても良い。平文ベクトル142は、バイオメトリックテンプレート、位置情報、等のような任意のデータセットを有しても良い。第2のエンティティ150は、第1の平文ベクトル142Aの暗号化バージョンを有する第1の暗号文を第1のエンティティ152に通信しても良い。後に、第2のエンティティ150は、第2の平文ベクトル142Bの暗号化バージョンを有する第2の暗号文を第1のエンティティ152に通信しても良い。第1のエンティティ152は、第1の暗号文と第2の暗号文との間に線形性関係があるか否かを発見しても良く、第1の暗号文と第2の暗号文との間の近接性を検出しても良い。幾つかの実施形態では、近接性は、ハミング距離の観点であっても良い。
しかしながら、関係暗号化は、第1のエンティティ152が、第1及び第2の暗号文から平文ベクトル142を構築することを許さない。さらに、関係暗号化は、第1のエンティティ152が、第1の暗号文及び/又は第2の暗号文と特定の線形性関係及び/又は特定の近接性を有する第3の暗号文を構築することを許さない。図1は、2つの平文ベクトル142と、したがって2つの暗号文と、を有する実施形態を示す。幾つかの実施形態では、2つより多い平文ベクトル142と、したがって2つより多い暗号文とが、動作環境100に含まれても良い。
関係暗号化は、1又は複数の関係キーを有しても良い。関係キーは、公開及び/又は署名キーと同様であっても良く、第1のエンティティ152に提供され又はそれにより生成されても良い。関係キーは、暗号文の間の関係の決定を可能にし得るが、暗号文の復号化又は平文ベクトル142の復元を許さない。さらに、関係キーは、特定の暗号文との特定の関係を有する暗号文の構築を許さない。
幾つかの実施形態では、関係暗号化は、アルゴリズムのタプルを有する関係について、関係暗号化方式に従って定められても良い。アルゴリズムは、キー生成アルゴリズム、第1の暗号化アルゴリズム、第1の復号化アルゴリズム、第1の暗号化アルゴリズム、第2の復号化アルゴリズム、及び検証アルゴリズムを有しても良い。関係は、3つのセットの部分集合として定められても良い。さらに、関係及びアルゴリズムは、1又は複数の正確性条件を満たしても良い。例えば、関係は、以下の例示的な正確性条件を満たしても良い。
R⊆XxYxZ
(pkx,skx,pky,sky,skR)←KeyGen(1λ)
cx←EncX(pkx,x)
cy←EncY(pky,y)
b←Verify(skR,cx,cy,z)
b≒R(x,y,z)
正確性条件では、Rは関係を表す。演算子⊆は、部分集合演算子を表す。パラメータX、Y、Zはセットを表す。パラメータxは、第1の平文ベクトル142Aを表す。パラメータyは、第2の平文ベクトル142Bを表す。KeyGenは、キー生成アルゴリズムを表す。EncXは、第1の暗号化アルゴリズムを表す。EncYは、第2の暗号化アルゴリズムを表す。Verifyは、検証アルゴリズムを表す。演算子←は、出力演算子を表す。パラメータpkxは、第1の公開キーを表す。パラメータpkyは、第2の公開キーを表す。パラメータskxは、第1の秘密キーを表す。パラメータskyは、第2の秘密キーを表す。パラメータskRは、関係秘密キーを表す。パラメータcxは、第1の暗号文を表す。パラメータcyは、第2の暗号文を表す。パラメータbは、検証アルゴリズムによる出力を表す。パラメータλは、セキュリティパラメータを表す。パラメータzは、検証エンティティにより選択され得る特定の値を表す。演算子≒は、合致(congruency)演算子を表す。正確性条件では、検証アルゴリズムからの出力は、圧倒的な確率を有する関係と合致する。
関係暗号化方式は、関係キーが、特定の暗号文との特定の関係を有する暗号文の構築を許さない、及び特定の暗号文からの平文ベクトル142Aの復元を許さない、という意味でセキュアであり得る。例えば、関係暗号化方式は、以下の式が保たれる場合にセキュアであり得る。
1)KeyGen(1λ)を行うアルゴリズムをKx(1λ)として、出力(pkx,skx,pky,sky,skR)及び出力(pkx,skx)を取り入れる。その結果、(Kx,EncX,DecX)はIND−CPAセキュアである。
2)KeyGen(1λ)を行うアルゴリズムをKy(1λ)として、出力(pkx,skx,pky,sky,skR)及び出力(pkx,skx)を取り入れる。その結果、(Ky,EncY,DecY)はIND−CPAセキュアである。
3)KeyGen(1λ)を行うアルゴリズムをKR(1λ)として、出力(pkx,skx,pky,sky,skR)及び出力(pkx,skx,skR)を取り入れる。その結果、EncX(pkx,・)及びEncY(pky,・)は、skRが分かる場合に、一方向性関数である。
上述の式では、pkx,skx,pky,sky,skR,KeyGen,EncX()及びEncY()は、上述の通りである。DecXは、第1の復号化アルゴリズムを表す。DecYは、第2の復号化アルゴリズムを表す。Kx()、Ky()、及びKR()は、上記の式において説明した通りである。記号「・」は任意の値を示す。用語「IND−CPA」は、indistinguishability under chosen−plaintext attackの略である。幾つかの他の実施形態では、(Ky,EncY,DecY)及び/又は(Kx,EncX,DecX)は、IND−CCA(indistinguishability under chosen ciphertext attack)(例えば、IND−CCA1又はIND−CCA2)又は任意の他の適切なセキュリティメトリックのような別の計算セキュリティメトリックに従ってセキュアであっても良い。
さらに、幾つかの実施形態では、関係暗号化方式は、関係線形性暗号化方式を有しても良い。関係線形性暗号化方式は、以下の例示的な線形性関係式に従って関係を定めても良い。
R={(x,y,z)|x+y=z∧x,y,z∈Fn p}
線形性関係式では、R、x、y、及びzは、上述の通りである。演算子∈は、メンバーシップ演算子を表す。演算子|は、「〜の条件を満たす」(such that)演算子を表す。演算子∧は、論理結合演算子を表す。パラメータFはフィールドを表す。添え字nは、通常、フィールドの次元を表す。フィールドの次元は、本願明細書の別の場所で議論するようなキーのうちの1又は複数の長さを有しても良い。添え字pは、フィールドの基本数(base−number)を表す。例えば、F10 3では、フィールドは、10の次元及び3の基本数を有する。3の基本数は、フィールドの各々の要素が0、1、又は2であることを示す。
さらに、幾つかの実施形態では、関係暗号化方式は、以下の例示的な近接性式に従って関係を定める関係近接性暗号化方式を有しても良い。
Rδ={(x,y)|dist(x,y)≦δ∧x,y∈Fk p}
近接性式では、R、x、∧、∈、及びyは、上述の通りである。パラメータδは、親密さ(closeness)を定める距離を表す。演算子distは、ハミング距離を表す。線形性関係式におけるように、パラメータFはフィールドを表す。しかしながら、近接性式におけるフィールドは、線形性関係式におけるフィールドとは異なる次元を有しても良い。近接性式におけるフィールドの次元は、線形誤り訂正符号に関連しても良い。
本願明細書で議論する関係暗号化方式は、図1の動作環境100において実施されても良い。関係暗号化方式は、第2のエンティティ150が、暗号化情報を第1のエンティティ152へ通信することを可能にし、第1のエンティティ152が、暗号化情報の間の線形性関係を発見し及び/又は暗号化情報の間の近接性を決定することを可能にしても良い。
動作環境100は、第2のエンティティ150に関連付けられるユーザ装置102と、第1のエンティティ152に関連付けられる認証サーバ140と、を有しても良い。ユーザ装置102及び認証サーバ140は、関係暗号化を実行するために、動作環境100の中に実装されても良い。
ユーザ装置102及び認証サーバ140は、概して、ネットワーク107を介する、関係暗号化に関連する情報及び/又はデータ(例えば、暗号文、キー、平文ベクトル142A、等)の生成及び通信を可能にする任意のコンピューティング装置を有しても良い。ユーザ装置102の幾つかの例は、携帯電話機、スキャニング装置、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、セットトップボックス、又はコネクテッドデバイス(例えば、スマートウォッチ、スマート眼鏡、スマート歩数計、又は任意の他のコネクテッドデバイス)を有しても良い。認証サーバ140の幾つかの例は、ハードウェアサーバ又はサーバとして機能するよう構成される別のプロセッサに基づくコンピューティング装置を有しても良い。
ネットワーク107は、有線又は無線であっても良い。ネットワーク107は、スター構成、トークンリング構成若しくは他の構成を含む多数の構成を有しても良い。さらに、ネットワーク107は、LAN(local area network)、WAN(wide area network)(例えば、インターネット)、及び/又は複数の装置が通信できる他の相互接続されたデータ経路を有しても良い。幾つかの例では、ネットワーク107は、ピアツーピアネットワークを有しても良い。ネットワーク107は、種々の異なる通信プロトコルでデータを送信する通信ネットワークの一部に結合され又はそれを含んでも良い。幾つかの例では、ネットワーク107は、Bluetooth(登録商標)通信ネットワーク又はSMS(short messaging service)、MMS(multimedia messaging service)、HTTP(hypertext transfer protocol)、直接データ接続、WAP(wireless application protocol)、電子メール等を介することを含むデータを送信及び受信するセルラ通信ネットワークを有しても良い。
ユーザ装置102は、関係暗号化/復号化モジュール(enc/decモジュール)110、プロセッサ124A、メモリ122A、及び通信ユニット126Aを有しても良い。enc/decモジュール110、プロセッサ124A、メモリ122A、及び通信ユニット126Aは、バス120Aにより結合されても良い。認証サーバ140は、関係認証モジュール108、プロセッサ124B、メモリ122B、及び通信ユニット126Bを有しても良い。関係認証モジュール108、プロセッサ124B、メモリ122B、及び通信ユニット126Bは、バス120Bにより結合されても良い。
プロセッサ124A及び124Bは、本願明細書では概してプロセッサ124又は複数のプロセッサ124と表される。メモリ122A及び122Bは、本願明細書では概してメモリ122と表される。通信ユニット126A及び126Bは、本願明細書では概して通信ユニット126又は複数の通信ユニット126と表される。バス120A及び120Bは、本願明細書では概してバス120又は複数のバス120と表される。
プロセッサ124は、計算及びプライバシ保護を実行するためのALU(arithmetic logic unit)、マイクロプロセッサ、汎用制御部、又は何らかの他のプロセッサ又はプロセッサアレイを有しても良い。プロセッサ124は、他のコンポーネント(例えば、108、110、122、及び126)との通信のためにバス120に結合されても良い。プロセッサ124は、概して、データ信号を処理し、CISC(complex instruction set computer)アーキテクチャ、RISC(reduced instruction set computer)アーキテクチャ、又は命令セットの組合せを実施するアーキテクチャを含む種々のコンピューティングアーキテクチャを有しても良い。図1では、ユーザ装置102及び認証サーバ140は、各々、信号プロセッサ124を有しても良い。しかしながら、ユーザ装置102及び/又は認証サーバ140は、複数のプロセッサを有しても良い。他のプロセッサ、オペレーティングシステム、及び物理構成も可能であり得る。
メモリ122は、プロセッサ124のうちの1又は複数により実行され得る命令及び/又はデータを格納するよう構成されても良い。メモリ122は、他のコンポーネントと通信するためにバス120に結合されても良い。命令及び/又はデータは、本願明細書に記載の技術又は方法を実行するコードを有しても良い。メモリ122は、DRAM素子、SRAM素子、フラッシュメモリ、又は何らかの他のメモリ素子を有しても良い。幾つかの実施形態では、メモリ122は、不揮発性メモリ、又はハードディスクドライブ、フロッピディスクドライブ、CD−ROM装置、DVD−ROM装置、DVD−RAM装置、DVD−RW装置、フラッシュメモリ装置又は従来知られているより永久的に情報を格納する特定の他の大容量記憶装置を含む同様の永久記憶装置及び媒体も有しても良い。
通信ユニット126は、データをユーザ装置102及び/又は認証サーバ140へ送信し及びそれらから受信するよう構成されても良い。通信ユニット126はバス120に結合されても良い。幾つかの実施形態では、通信ユニット126は、ネットワーク107への又は別の通信チャネルへの直接物理接続のためのポートを有しても良い。例えば、通信ユニット126は、USB(universal serial bus)、SD(standard definition)、CAT−5、又は図1の動作環境100のコンポーネントとの有線通信のための同様のポートを有しても良い。幾つかの実施形態では、通信ユニット126は、IEEE802.11、IEEE802.16、BLUETOOTH(登録商標)又は別の適切な無線通信方法を含む1又は複数の無線通信方法を用いて通信チャネルによりデータを交換する無線通信機を有する。
幾つかの実施形態では、通信ユニット126は、SMS、MMS、HTTP、直接データ接続、WAP、電子メール、又は別の適切な種類の電子通信を含むセルラ通信ネットワークを介してデータを送信及び受信するセルラ通信通信機を有する。幾つかの実施形態では、通信ユニット126は、有線ポート及び無線通信機を有する。通信ユニット126は、TCP/IP(transmission control protocol/internet protocol)、HTTP、HTTPセキュア(HTTPS)、及びSMTP(simple mail transfer protocol)を含む標準ネットワークプロトコルを用いてファイル及び/又は媒体オブジェクトの分配のためにネットワーク107への他の接続を提供しても良い。
enc/decモジュール110は、上述の関係暗号化方式のような又は上述の特徴のうちの1又は複数を有する、関係暗号化方式を設定するよう構成されても良い。enc/decモジュール110は、次に、平文ベクトル142を受信し、平文ベクトル142を暗号化し、ネットワーク107を介して認証サーバ140へ暗号文を通信しても良い。さらに、enc/decモジュール110は、平文ベクトル142のうちの1又は複数を構築するために、暗号文を復号化するよう構成されても良い。enc/decモジュール110が暗号化及び/又は復号化処理を実行するよう構成される実施形態では、enc/decモジュール110は、本願明細書で議論する暗号化/復号化アルゴリズム及び/又は暗号化/復号化キーを用いて、暗号化及び/又は復号化処理を実行しても良い。
enc/decモジュール110が関係暗号化方式を設定するよう構成される実施形態では、enc/decモジュール110は、1又は複数の関係秘密キー及び/又は1又は複数の検証アルゴリズムを、認証サーバ140の関係認証モジュール108へ通信するよう構成されても良い。他の実施形態では、関係認証モジュール108は、関係秘密キー及び/又は検証アルゴリズムをローカルに生成しても良く、及び/又は関係秘密キー又は検証アルゴリズムを他のソースから得ても良い。
関係認証モジュール108は、暗号文、関係秘密キー、検証アルゴリズム、又はそれらの何らかの組み合わせを、enc/decモジュール110又は別のソースから受信するよう構成されても良い。関係認証モジュール108は、次に、暗号文の間の線形性関係を発見しても良く、及び/又は暗号文の間の近接性を検出しても良い。関係認証モジュール108は、関係秘密キー及び/又は検証アルゴリズムを用いて、暗号文の間の線形性関係を発見し及び近接性を検出しても良い。
図1の動作環境100では、enc/decモジュール110は、線形性暗号化/復号化モジュール112、近接性暗号化/復号化モジュール114、通信モジュール116、及び設定モジュール114を有しても良い。さらに、関係認証モジュール108は、サーバ通信モジュール134、線形性認証モジュール132、及び近接性認証モジュール128を有しても良い。幾つかの実施形態では、設定モジュール144、又は設定モジュール144に属する1又は複数の動作を実行するよう構成されるモジュールは、関係認証モジュール108に含まれても良い。
enc/decモジュール110、線形性暗号化/復号化モジュール112、近接性暗号化/復号化モジュール114、通信モジュール116、設定モジュール144、関係認証モジュール108、サーバ通信モジュール134、線形性認証モジュール132、及び近接性認証モジュール128は、集合的に、関係モジュールと表されても良い。関係モジュールのうちの1又は複数は、本願明細書に記載の1又は複数の動作を実行するよう構成される1又は複数のルーチンを含むソフトウェアとして実装されても良い。関係モジュールは、本願明細書に記載する機能を提供するためにプロセッサ124により実行可能な命令セットを有しても良い。幾つかの例では、関係モジュールは、メモリ122に格納され又は少なくとも一時的にそれにロードされても良く、プロセッサ124のうちの1又は複数によりアクセス可能又は実行可能であっても良い。関係モジュールのうちの1又は複数は、バス120のうちの1又は複数を介するプロセッサ124のうちの1又は複数との協働及び通信のために適用されても良い。
概して関係モジュールを参照すると、通信モジュール116及び/又はサーバ通信モジュール134は、それぞれ、enc/decモジュール110又は関係認証モジュール108、及びユーザ装置102若しくは認証サーバ140の他のコンポーネント(例えば、122、124、及び126)との間の通信を扱うよう構成されても良い。通信モジュール116及び/又はサーバ通信モジュール134は、通信ユニット126を介して、ユーザ装置102又は認証サーバ140へデータを送信し及びそれからデータを受信するよう構成されても良い。幾つかの例では、通信モジュール116及び/又はサーバ通信モジュール134は、通信ユニット126を介して、ユーザ装置102又は認証サーバ140からのデータを受信し及び/又は転送するために、他の関係モジュールと協働しても良い。
線形性暗号化/復号化モジュール112は、線形性暗号文を構築するために平文ベクトル142を暗号化することに関連する及び/又は線形性暗号文を復号化することに関連する1又は複数の動作を実行するよう構成されても良い。線形性認証モジュール132は、線形性暗号文に関連する1又は複数の動作を実行するよう構成されても良い。例えば、線形性認証モジュール132は、線形性暗号文のうちの2以上の間の線形性関係を発見するよう構成されても良い。
近接性暗号化/復号化モジュール114は、近接性暗号文を構築するために平文ベクトル142を暗号化することに関連する及び/又は近接性暗号文を復号化することに関連する1又は複数の動作を実行するよう構成されても良い。近接性認証モジュール128は、近接性暗号文に関連する1又は複数の動作を実行するよう構成されても良い。例えば、近接性認証モジュール128は、近接性暗号文のうちの2以上の間の近接性を検出するよう構成されても良い。
設定モジュール144は、1又は複数のキー(例えば、公開キー、秘密キー、関係秘密キー)及び/又は1又は複数のアルゴリズム(例えば、暗号化アルゴリズム、復号化アルゴリズム、及び検証アルゴリズム)を生成するよう構成されても良い。設定モジュール144は、次に、キー及びアルゴリズムのうちの1又は複数を、通信モジュール116及びサーバ通信モジュール134により関係認証モジュール108に、又は線形性暗号化/復号化モジュール112及び近接性暗号化/復号化モジュール114に、通信しても良い。
以下の段落で、関係線形性暗号化方式に続き、関係近接性暗号化方式が説明される。関係線形性暗号化方式は、ビットベクトルを参照して、次にp−aryベクトルを参照して、説明される。説明の各々において、設定モジュール144はキーを生成する。これは最初に説明される。キーを用いて、線形性暗号化/復号化モジュール112又は近接性暗号化/復号化モジュール114のうちの1つは、暗号化を実行する。これは、次に説明される。暗号文(例えば、線形性暗号文又は近接性暗号文)は、次に、線形性関係が発見され又は近接性が検出される、線形性認証モジュール132及び近接性認証モジュール128のうちの1つに通信されても良い。最後に、線形性暗号化/復号化モジュール112又は近接性暗号化/復号化モジュール114により実行され得る暗号文の復号化が説明される。
<関係線形性暗号化方式>
暗号文の間の線形性関係を発見するステップに含まれる1又は複数の動作では、設定モジュール144は、平文ベクトル142及び/又は暗号文の要素の基本数に少なくとも部分的に基づき得るキーを出力しても良い。例えば、要素の基本数は、2(例えば、バイナリ又はビットベクトル)を有しても良い。したがって、平文ベクトル142及び暗号文は、0又は1を有する要素を含んでも良い。代替で、要素の基本数は、3(例えば、tri−ary又はベクトル)を有しても良い。したがって、平文ベクトル142及び暗号文は、0、1、又は2を有する要素を含んでも良い。概して、基本数は、変数「p」により表される(例えば、p−aryベクトル)。p−aryベクトルは、0、1、...、p−2、及びp−1を有し得る要素を含んでも良い。関係線形性暗号化方式は、平文ベクトル142及び/又は暗号文がビットベクトル又はp−aryベクトルであるか否かに基づき、僅かに異なる。先ず、ビットベクトルの関係線形性暗号化方式が議論され、次に、p−aryベクトルの関係線形性暗号化方式が続く。
ビットベクトル及びp−aryベクトルの関係線形性暗号化方式では、設定モジュール144は、関係線形性暗号化方式のキーを生成するよう構成されても良い。図示の実施形態では、設定モジュール144は、第1の線形性秘密キー、第2の線形性秘密キー、第1の線形性公開キー、第2の線形性公開キー、及び線形性関係秘密キー(集合的に、「線形性キー」)を生成しても良い。線形性キーは、平文ベクトル142を暗号化するため、線形性暗号文を生成するため、線形性暗号文を復号化するため、及び線形性暗号文の間の線形性関係を発見するために用いられても良い。
例えば、第1の線形性公開キーは、第1の平文ベクトル142Aを暗号化して第1の線形性暗号文を生成するために、線形性暗号化/復号化モジュール112により使用されても良い。第1の線形性暗号文は、通信モジュール116により認証サーバ140に通信されても良い。第1の線形性暗号文は、登録暗号文130として認証サーバ140に格納されても良い。第2の線形性公開キーは、第2の平文ベクトル142Bを暗号化して第2の線形性暗号文を生成するために、線形性暗号化/復号化モジュール112により使用されても良い。第2の線形性暗号文は、通信モジュール116により認証サーバ140に通信されても良い。線形性関係秘密キーは、認証サーバ140において、特に線形性認証モジュール132により、第2の線形性暗号文と第1の線形性暗号文との間の線形性関係を発見するために、使用されても良い。この線形性関係は、登録暗号文130として格納される。
第1及び第2の線形性秘密キーは、線形性暗号化/復号化モジュール112により、線形性暗号文のうちの1又は複数を復号化するために使用されても良い。例えば、第1の線形性暗号文は、第1の秘密キーを用いて復号化されても良い。さらに、第1及び第2の線形性秘密キーは、設定モジュール144により、関係線形性キーを生成するために使用されても良い。線形性キー及び上述の動作の幾つかの追加の詳細事項は、ビットベクトルについて及びp−aryベクトルについて以下に提供される。
<ビットベクトル関係線形性暗号化方式>
ビットベクトルが実装される実施形態では、線形性キーは、セキュリティパラメータのために生成されても良い。概して、本願明細書で用いられるセキュリティパラメータは、キー長を表しても良い。キーを生成するために、設定モジュール144は、3個の双線形素数位数群(group of prime order)を生成しても良い。素数位数は、セキュリティパラメータにおける指数であっても良い。設定モジュール144は、3個の双線形群のうちの第1の双線形群の第1の生成元をサンプリングし、3個の双線形群のうちの第2の双線形群の第2の生成元をサンプリングしても良い。
設定モジュール144は、整数の集合から特定数の要素をランダムにサンプリングすることにより、第1の線形性秘密キーを生成しても良い。整数の集合は、ゼロから、素数位数−1の値までを有しても良い。設定モジュール144は、整数の集合から特定数の要素をランダムにサンプリングすることにより、第2の線形性秘密キーを生成しても良い。
設定モジュール144は、第1の線形性公開キーを定めても良い。第1の線形性公開キーは、第1の生成元である要素を有しても良い。第1の線形性公開キーは、第1の線形性秘密キーの対応する要素により冪乗される第1の生成元を含む1又は複数の他の要素を更に有しても良い。幾つかの実施形態では、第1の生成元である要素は、第1の線形性公開キーの第1の要素であっても良い。これは、第1の線形性公開キーと第1の線形性秘密キーとの間の対応で説明できない。例えば、上述の及び他の実施形態では、第1の線形性公開キーの「第6の」要素(例えば、第1の要素を説明する)は、第1の線形性秘密キーの第5の要素により冪乗された第1の生成元を有しても良い。本願を通じて、要素間の対応について同様の慣例が実施されても良い。
設定モジュール144は、第2の線形性公開キーを定めても良い。第2の線形性公開キーは、第2の生成元である要素を有しても良い。第2の線形性公開キーは、第2の線形性秘密キーの対応する要素により冪乗される第2の生成元を含む1又は複数の他の要素を更に有しても良い。幾つかの実施形態では、第2の生成元である要素は、第2の線形性公開キーの第1の要素であっても良い。これは、第2の線形性公開キーと第2の線形性秘密キーとの間の対応において考慮されない。
設定モジュール144は、線形性関係秘密キーを定めても良い。線形性関係秘密キーの各々の要素は、第2の線形性秘密キーの対応する要素と第1の線形性秘密キーの対応する要素との和を有しても良い。例えば、線形性関係秘密キーの第5の要素は、第1の線形性秘密キーの第5の要素と第2の線形性秘密キーの第5の要素との和を有しても良い。
幾つかの実施形態では、線形性キーの生成は、以下の例示的な線形性ビットベクトルキー式に従っても良い。
線形性ビットベクトルキー式では、←及びλは、概して上述の通りである。さらに、線形性ビットベクトルキー式では、pkxlinは第1の線形性公開キーを表し、skxlinは第1の線形性秘密キーを表し、pkylinは第2の線形性公開キーを表し、skylinは第2の線形性秘密キーを表し、skRlinは関係線形性キーを表す。さらに、パラメータpkxlin、skxlin、pkylin、skylin、及びskRlinは、上述のキー生成アルゴリズム(KeyGen)の出力の少なくとも1つの線形性部分を表しても良い。
パラメータG1は、第1の双線形群を表す。パラメータG2は、第2の双線形群を表す。パラメータGTは、第3の双線形群を表す。パラメータqは素数位数を表す。パラメータg0は、第1の生成元及び第1の線形性公開キーの要素を表す。パラメータh0は、第2の生成元及び第2の線形性公開キーの要素を表す。パラメータgiは、第1の線形性公開キーの他の要素を表す。パラメータhiは、第2の線形性公開キーの他の要素を表す。パラメータnは、特定数(例えば、特定の要素数)を表す。パラメータiは、インデックス変数を表す。線形性ビットベクトルキー式では、インデックス変数は、1から特定数までの範囲を有する。パラメータZqは、0から、素数位数より1少ない数までの整数の集合を表す。パラメータaiは、第1の線形性秘密キーの要素を表す。第1の線形性秘密キーの要素は、整数の集合のランダム値であっても良い。パラメータbiは、第2の線形性秘密キーの要素を表す。第2の線形性秘密キーの要素は、整数の集合のランダム値であっても良い。演算子<>は、簡単な表記法を表す。例えば、<bi>n i=1は、b1,b2,...,bnを表す。
線形性暗号化/復号化モジュール112は、平文ベクトル142を暗号化しても良い。線形性暗号化/復号化モジュール112は、平文ベクトル142を受信しても良い。追加又は代替で、通信モジュール116は、平文ベクトル142を受信し、平文ベクトル142を線形性暗号化/復号化モジュール112に通信しても良い。
平文ベクトル142は、第1のフィールドのメンバを有しても良い。第1のフィールドは、0及び1の要素、及び特定数の次元を有しても良い。フィールドの要素は、要素の基本数により決定されても良い。例えば、ビットベクトルでは、第1のフィールドは、0及び1の要素を有しても良い。一方、p−aryベクトルでは、フィールドは、0、1、...、p−1の要素を有しても良い。
線形性暗号化/復号化モジュール112は、整数の集合から乱数をサンプリングしても良い。線形性暗号化/復号化モジュール112は、次に、第1の線形性暗号文及び第2の線形性暗号文を構築しても良い。第1の線形性暗号文は、乱数により冪乗される第1の生成元である第1の要素を有しても良い。第1の線形性暗号文は、線形性暗号化指数により冪乗された第1の線形性公開キーの対応する要素を有する1又は複数の要素を更に有しても良い。第1の線形性暗号文の線形性暗号化指数は、乱数を−1で乗算し、第1の平文ベクトル142Aの対応する要素により冪乗したものを有しても良い。幾つかの実施形態では、第1の線形性暗号文の第1の要素は、対応では説明できない。
第2の線形性暗号文は、乱数により冪乗される第2の生成元である第1の要素を有しても良い。第2の線形性暗号文は、線形性暗号化指数により冪乗された第2の線形性公開キーの対応する要素を有する1又は複数の要素を更に有しても良い。第2の線形性暗号文の線形性暗号化指数は、乱数を−1で乗算し、第2の平文ベクトル142Bの対応する要素により冪乗したものを有しても良い。幾つかの実施形態では、第2の線形性暗号文の第1の要素は、対応では説明できない。
幾つかの実施形態では、線形性暗号化/復号化モジュール112は、以下の例示的な線形性ビットベクトル暗号化に従って、平文ベクトル142を暗号化しても良い。
線形性ビットベクトル暗号化式では、<>、cx,cy,g0,h0,gi,hi,i,及びnは、上述の通りである。さらに、線形性ビットベクトル暗号化式では、パラメータcxは第1の暗号文を表し、パラメータcyは第2の暗号文を表す。パラメータm1は、第1の平文ベクトル142Aを表す。パラメータm1iは、第1の平文ベクトル142Aの要素を表す。パラメータm2は、第2の平文ベクトル142Bを表す。パラメータm2iは、第2の平文ベクトル142Bの要素を表す。パラメータFは第1のフィールドを表す。フィールドの隣にある添え字2は、第1のフィールドの基本数を表す。フィールドの隣にある添え字nは、第1のフィールドの次元を表す。
線形性ビットベクトル暗号化式は、上述の第1の暗号化アルゴリズム(EncX)及び第2の暗号化アルゴリズム(EncY)を定めても良い。例えば、第1の暗号化アルゴリズムは次のように定められても良い。第1の平文ベクトル142A及び第1の線形性公開キーが与えられると、第1の暗号化アルゴリズムは、乱数をサンプリングし、cx=gr 0,<gi (―1)m1ir>n i=1のように第1の線形性暗号文を構築する。同様に、第2の暗号化アルゴリズムは次のように定められても良い。第1の平文ベクトル142A及び第2の線形性公開キーが与えられると、第2の暗号化アルゴリズムは、乱数をサンプリングし、cy=hr 0,<hi (―1)m2ir>n i=1のように第2の線形性暗号文を構築する。
第1の線形性暗号文及び第2の線形性暗号文は、線形性認証モジュール132に通信されても良い。追加又は代替で、第1の線形性暗号文及び第2の線形性暗号文は、ネットワーク107を介して、認証サーバに通信されても良い。サーバ通信モジュール134は、第1の線形性暗号文及び第2の線形性暗号文を受信し、第1の線形性暗号文及び第2の線形性暗号文を線形性認証モジュール132に通信しても良い。
幾つかの実施形態では、第1の線形性暗号文は、第2の線形性暗号文の通信の前に、線形性認証モジュール132に通信されても良い。線形性認証モジュール132は、第1の線形性暗号文を登録暗号文130としてメモリ122Bに格納しても良い。第1の線形性暗号文を通信した後に、第2の線形性暗号文は、線形性認証モジュール132に通信されても良い。さらに、設定モジュール144は、関係線形性キーを線形性認証モジュール132に通信しても良い。
認証のために関係暗号化が用いられる幾つかの実施形態では、第1の線形性暗号文は、登録暗号文130として格納されても良い。登録暗号文130は、第2の線形性暗号文又は任意の他の後続の線形性暗号文との比較の基礎として用いられても良い。関係暗号化を実施する他の実施形態では、第1の線形性暗号文は、登録暗号文130として格納されなくても良い。例えば、第1の線形性暗号文及び第2の線形性暗号文は、それらを格納せずに分析しても良く、又は両者とも格納されても良い。
線形性認証モジュール132は、第1の線形性暗号文と第2の線形性暗号文との間の線形性関係を発見するよう構成されても良い。線形性関係を発見するために、線形性認証モジュール132は、特定ベクトルを定めても良い。特定ベクトルは、第1のフィールドのメンバであっても良い。線形性認証モジュール132により決定される認証問題は、特定ベクトルが第1の平文ベクトル142Aと第2の平文ベクトル142Bとの和であるかどうかを決定することであっても良い。
線形性認証モジュール132は、第1の線形性暗号文の第1の要素(例えば、乱数で冪乗された第1の生成元)及び線形性関係秘密キーで冪乗された第2の線形性暗号文の第1の要素(例えば、乱数で冪乗された第2の生成元)のペアリング関数として、第1の値を計算しても良い。
線形性認証モジュール132は、第1の線形性暗号文及び−1を特定ベクトルの対応する要素で冪乗したもので冪乗した第2の線形性暗号文の第2の線形性暗号文の中の対応する要素の各々のペアリング関数の結果として、第2の値も計算しても良い。
線形性認証モジュール132は、第1の値が第2の値に等しいか否かを決定しても良い。第1の値が第2の値と等しいことに応答して、線形性認証モジュール132は、第1の線形性暗号文が第2の線形性暗号文及び定められたベクトルと線形関係にあると結論づけても良い。
幾つかの実施形態では、線形性認証モジュール132は、以下の例示的な線形性ビットベクトル検証式に従って、第1の線形性暗号文と第2の線形性暗号文との間の線形性関係を発見する。
線形性ビットベクトル検証式では、<>、cx,cy,g
0,h
0,g
i,h
i,i,n,F,skR及びrは、上述の通りである。パラメータcx
0は、第1の線形性暗号文の第1の要素を表す。パラメータcy
0は、第2の線形性暗号文の第1の要素を表す。パラメータcx
iは、第1の線形性暗号文の他の要素を表す。パラメータcy
iは、第2の線形性暗号文の他の要素を表す。パラメータzは、特定ベクトルを表す。パラメータz
iは、特定ベクトルの要素を表す。演算子eは、ペアリング関数を表す。ペアリング関数は、双線形群に関連しても良い。演算子Πは、積演算子を表す。線形性ビットベクトル検証式は、上述の検証アルゴリズム(Verify)を定めても良い。例えば、検証アルゴリズムは、暗号文、特定ベクトル、及び関係線形性キーが与えられると、以下の等式をチェックするよう定められても良い。
さらに、幾つかの実施形態では、線形性暗号化/復号化モジュール112は、第1の及び/又は第2の線形性暗号文を復号化しても良い。線形性暗号化/復号化モジュール112は、結果として生じる平文ベクトル142の各々の要素を、線形性暗号文の値に基づき、決定しても良い。例えば、値は、第1の線形性暗号文を復号化することにより構築される第1の平文ベクトル(例えば、第1の平文ベクトル142A)の各々の要素について決定されても良い。
各々の要素について、線形性暗号化/復号化モジュール112は、(1)第1の線形性暗号文の中の対応する要素が、第1の線形性秘密キーの対応する要素により冪乗された第1の線形性暗号文の第1の要素に等しいか、(2)第1の線形性暗号文の中の対応する要素が、第1の線形性秘密キーの対応する要素で−1を乗算したものにより冪乗された、第1の線形性暗号文の第1の要素に等しいか、又は(3)第1の線形性暗号文の中の対応する要素が、別の値に等しいか、を決定しても良い。
第1の線形性暗号文の中の対応する要素が、第1の線形性秘密キーの対応する要素により冪乗された第1の線形性暗号文の第1の要素に等しいことに応答して(例えば、直前の段落の(1))、線形性暗号化/復号化モジュール112は、第1の平文ベクトル142Aの要素を0(ゼロ)に設定しても良い。第1の線形性暗号文の中の対応する要素が、−1に第1の線形性秘密キーの対応する要素を乗算したものにより冪乗された第1の線形性暗号文の第1の要素に等しいことに応答して(例えば、直前の段落の(2))、線形性暗号化/復号化モジュール112は、第1の平文ベクトル142Aの要素を1に設定しても良い。第1の線形性暗号文の中の対応する要素が別の値に等しいことに応答して(例えば、直前の段落の(3))、線形性暗号化/復号化モジュール112は、エラーを返しても良い。第2の線形性暗号文は、第2の線形性秘密キー及び第2の線形性暗号文を用いて同様に復号化されても良い。
幾つかの実施形態では、線形性暗号化/復号化モジュール112は、以下の例示的な線形性ビットベクトル復号化式に従って、線形性暗号文を復号化しても良い。
線形性ビットベクトル復号化式では、cxi,cyi,cx0,cy0,ai,bi,m1i,及びm2iは、上述の通りである。パラメータ⊥は、エラーを表す。
線形性ビットベクトル復号化式は、上述の第1の復号化アルゴリズム(DecX)及び第2の復号化アルゴリズム(DecY)を定めても良い。例えば、第1の復号化アルゴリズムは次のように定められてもよい。第1の線形性暗号文及び第1の線形性秘密キーが与えられると、第1の復号化アルゴリズムは、次式に従って、ビット毎に、第1の平文ベクトル142を構築しても良い。
同様に、第2の復号化アルゴリズムは次のように定められても良い。第2の線形性暗号文及び第2の線形性秘密キーが与えられると、第2の復号化アルゴリズムは、次式に従って、ビット毎に、第2の平文ベクトル142Bを構築しても良い。
<P−ARYベクトル関係線形性暗号化方式>
p−aryベクトルが実装される実施形態では(例えば、平文ベクトル142及び/又は暗号文がp−aryベクトルである)、線形性キーは、セキュリティパラメータについて生成されても良い。キーを生成するために、設定モジュール144は、3個の双線形素数位数群(group of prime order)を生成しても良い。素数位数は、セキュリティパラメータにおける指数であり、1を基本数(p)で割った余り(1 modulo p)に等しくても良い。したがって、これらの実施形態では、ゼロを削除された整数の集合の中に部分群が存在しても良い。部分群は、基本数の順序を有しても良い。設定モジュール144は、部分群の任意の生成元を選択しても良い。
設定モジュール144は、第1の生成元及び第2の生成元をサンプリングしても良い。第1の生成元は、第1の双線形群からサンプリングされても良く、第2の生成元は、第2の双線形群からサンプリングされても良い。第1の線形性秘密キー及び第2の線形性秘密キーは、ビットベクトルを実装する実施形態に関して上述したように生成されても良い。
設定モジュール144は、第1の生成元である要素を含む第1の線形性公開キーを定めても良い。第1の線形性公開キーは、第1の線形性秘密キーの対応する要素により冪乗される第1の生成元を含む1又は複数の他の要素を更に有しても良い。さらに、第1の線形性公開キーの要素は、任意の生成元を有しても良い。幾つかの実施形態では、第1の線形性公開キーの第1の要素は、任意の生成元であっても良く、第1の線形性公開キーの第2の要素は、第1の生成元であっても良い。第2の線形性公開キーの第1及び第2の要素は、対応において考慮されない。
設定モジュール144は、第2の線形性公開キーを定めても良い。第2の線形性公開キーは、第2の生成元である要素を有しても良い。第2の線形性公開キーは、第2の線形性秘密キーの対応する要素により冪乗される第2の生成元を含み得る1又は複数の他の要素を更に有しても良い。さらに、第2の線形性公開キーの要素は、任意の生成元を有しても良い。幾つかの実施形態では、第2の線形性公開キーの第1の要素は、任意の生成元であっても良く、第2の線形性公開キーの第2の要素は、第2の生成元であっても良い。第2の線形性公開キーの第1及び第2の要素は、対応において考慮されない。
設定モジュール144は、線形性関係秘密キーを定めても良い。線形性関係秘密キーの各々の要素は、第2の線形性秘密キーの対応する要素と第1の線形性秘密キーの対応する要素との和を有しても良い。
幾つかの実施形態では、線形性キーの生成は、以下の例示的な線形性p−aryベクトルキー式に従っても良い。
λが与えられると、λにおける指数であり1に等しいq(mod p)のG
1,G
2,G
Tを生成する
線形性p−aryベクトルキー式では、<>,g0,h0,gi,hi,ai,bi,i,n,Z,F,skR,r,G1,G2,GT,q,pkxlin,skxlin,pkylin,skylin,skRlin,←,及びλは、概して上述の通りである。パラメータpkxlin、skxlin、pkylin、skylin、及びskRlinは、上述のキー生成アルゴリズムの出力の少なくとも1つの線形性部分を表しても良い。
パラメータpは、基本数を表す。パラメータJpは、次数pの部分群を表す。パラメータωは、任意の生成元を表す。演算子modは、モジュロ関数を表す。Zの隣にある「*」は、0(ゼロ)が整数の集合から削除されることを表す。
線形性暗号化/復号化モジュール112は、平文ベクトル142を受信しても良い。追加又は代替で、通信モジュール116は、平文ベクトル142を受信しても良く、平文ベクトル142を線形性暗号化/復号化モジュール112に通信しても良い。平文ベクトル142は、第2のフィールドのメンバを有しても良い。第2のフィールドは、0の値から基本数−1の値までを有する要素(例えば、0,1,...,p−1)を有しても良い。
線形性暗号化/復号化モジュール112は、整数の集合から乱数をサンプリングしても良い。線形性暗号化/復号化モジュール112は、次に、第1の線形性暗号文及び第2の線形性暗号文を構築しても良い。第1の線形性暗号文は、乱数により冪乗される第1の生成元である第1の要素を有しても良い。さらに、第1の線形性暗号文は、線形性暗号化指数により冪乗された第1の線形性公開キーの対応する要素を有する1又は複数の他の要素を有しても良い。第1の線形性暗号文の線形性暗号化指数は、乱数を任意の生成元で乗算し、第1の平文ベクトル142Aの対応する要素により冪乗したものを有しても良い。幾つかの実施形態では、第1の線形性暗号文の第1の要素は、対応において考慮されない。
第2の線形性暗号文は、乱数により冪乗される第2の生成元である第1の要素を有しても良い。さらに、第2の線形性暗号文は、線形性暗号化指数により冪乗された第2の線形性公開キーの対応する要素を有する1又は複数の他の要素を有しても良い。第2の線形性暗号文の線形性暗号化指数は、乱数を任意の生成元で乗算し、第2の平文ベクトル142Bの対応する要素により冪乗したものを有しても良い。幾つかの実施形態では、第2の線形性暗号文の第1の要素は、対応において考慮されない。
幾つかの実施形態では、線形性暗号化/復号化モジュール112は、以下の例示的な線形性p−aryベクトル復号化式に従って、平文ベクトル142を暗号化しても良い。
線形性p−aryベクトル暗号化式では、<>、m1,m1i,m2,m2i,cx,cy,g0,h0,gi,hi,i,及びnは、上述の通りである。パラメータFは第2のフィールドを表す。第2のフィールドの隣にある添え字pは、第2のフィールドの基本数を表す。第2のフィールドの隣にある添え字nは、第2のフィールドの次元を表す。第2のフィールドの次元は、特定数であっても良い。
線形性p−aryベクトル暗号化式は、上述の第1の暗号化アルゴリズム(EncX)及び第2の暗号化アルゴリズム(EncY)を定めても良い。例えば、第1の暗号化アルゴリズムは次のように定められてもよい。第1の平文ベクトル142A及び第1の線形性公開キーが与えられると、第1の暗号化アルゴリズムは、乱数をサンプリングし、次式のように第1の線形性暗号文を構築する。
同様に、第2の暗号化アルゴリズムは次のように定められても良い。第1の平文ベクトル142A及び第2の線形性公開キーが与えられると、第2の暗号化アルゴリズムは、乱数をサンプリングし、次式のように第2の線形性暗号文を構築する。
第1の線形性暗号文及び第2の線形性暗号文は、線形性認証モジュール132に通信されても良い。追加又は代替で、第1の線形性暗号文及び第2の線形性暗号文は、ネットワーク107を介して、認証サーバに通信されても良い。サーバ通信モジュール134は、第1の線形性暗号文及び第2の線形性暗号文を受信し、第1の線形性暗号文及び第2の線形性暗号文を線形性認証モジュール132に通信しても良い。
線形性関係を発見するために、線形性認証モジュール132は、特定ベクトルを定めても良い。特定ベクトルは、第2のフィールドのメンバであっても良い。;特定ベクトルは、第1の平文ベクトル142Aと第2の平文ベクトル142Bとの和として定められても良い。線形性認証モジュール132は、第1の線形性暗号文の第1の要素(例えば、乱数により冪乗された第1の生成元)及び線形性関係秘密キーで冪乗された第2の線形性暗号文の第1の要素(例えば、乱数により冪乗された第2の生成元)のペアリング関数として、第1の値を計算しても良い。
線形性認証モジュール132は、第1の線形性暗号文の各々の要素と、−1及び特定ベクトルの対応する要素の積により冪乗した任意の生成元で冪乗した第2の線形性暗号文の対応する要素と、のペアリング関数の結果として、第2の値も計算しても良い。
線形性認証モジュール132は、第1の値が第2の値に等しいか否かを決定しても良い。第1の値が第2の値と等しいことに応答して、線形性認証モジュール132は、第1の線形性暗号文が第2の線形性暗号文と線形関係にあると結論づけても良い。
幾つかの実施形態では、線形性認証モジュール132は、以下の例示的な線形性p−aryベクトル検証式に従って、第1の線形性暗号文と第2の線形性暗号文との間の線形性関係を発見する。
線形性p−aryベクトル検証式では、パラメータ及び演算子は上述の通りである。
線形性p−aryベクトル検証式は、上述の検証アルゴリズム(Verify)を定めても良い。例えば、検証アルゴリズムは、暗号文、特定ベクトル、及び関係線形性キーが与えられると、以下の等式をチェックするよう定められても良い。
さらに、幾つかの実施形態では、線形性暗号化/復号化モジュール112は、第1の及び/又は第2の線形性暗号文を復号化しても良い。線形性暗号化/復号化モジュール112は、結果として生じる平文ベクトル142の各々の要素を、線形性暗号文の値に基づき、決定しても良い。例えば、値は、第1の線形性暗号文を復号化することにより構築される第1の平文ベクトル(例えば、第1の平文ベクトル142A)の各々の要素について決定されても良い。
暗号文を復号化するために、特定要素値が決定されても良い。特定要素値は、セキュリティパラメータにおいて多項式により結合されても良い。さらに、特定要素値は、基本数を含む要素を有するフィールドのメンバであっても良い。第1の平文ベクトル142Aの各々の要素について、線形性暗号化/復号化モジュール112は、第1の線形性暗号文の中の対応する要素が、特定要素値により冪乗された任意の生成元と第1の線形性秘密キーの対応する要素との積により冪乗された第1の線形性暗号文の第1の要素と等しくなるような、特定要素値が存在するか否かを決定しても良い。
第1の線形性暗号文の中の対応する要素が、特定要素値により冪乗された任意の生成元と第1の線形性秘密キーの対応する要素との積により冪乗された第1の線形性暗号文の第1の要素と等しくなるような、特定要素値が存在することに応答して、線形性暗号化/復号化モジュール112は、要素を特定要素値に設定する。
そのような特定要素値が存在しないことに応答して、線形性暗号化/復号化モジュール112は、エラーを出力しても良い。第2の線形性暗号文は、第2の線形性秘密キー及び第2の線形性暗号文を用いて同様に復号化されても良い。
幾つかの実施形態では、線形性暗号化/復号化モジュール112は、以下の例示的な線形性p−aryベクトル復号化式に従って、線形性暗号文を復号化しても良い。
線形性p−aryベクトル復号化式では、cxi,cyi,cx0,cy0,ai,bi,m1i,及びm2iは、上述の通りである。パラメータ⊥は、エラーを表す。パラメータμは、特定要素値を表す。
線形性p−aryベクトル復号化式は、上述の第1の復号化アルゴリズム(DecX)及び第2の復号化アルゴリズム(DecY)を定めても良い。例えば、第1の復号化アルゴリズムは次のように定められてもよい。第1の線形性暗号文及び第1の線形性秘密キーが与えられると、第1の復号化アルゴリズムは、次式に従って、ビット毎に、第1の平文ベクトル142Aを構築しても良い。
同様に、第2の復号化アルゴリズムは次のように定められても良い。第2の線形性暗号文及び第2の線形性秘密キーが与えられると、第2の復号化アルゴリズムは、次式に従って、ビット毎に、第2の平文ベクトル142Bを構築しても良い。
<関係近接性暗号化方式>
関係近接性暗号化方式は、近接性暗号文の間の近さ(closeness)を決定するために用いられても良い。幾つかの実施形態では、近接性は、ハミング距離の観点で提供されても良い。関係近接性暗号化方式では、設定モジュール144は、キーを生成する。キーを用いて、近接性暗号化/復号化モジュール114は、平文ベクトル142の暗号化及び/又は復号化を実行する。近接性暗号文は、次に、近接性認証モジュール128に通信されても良い。近接性認証モジュール128では、近接性暗号文の間の近接性が検出されても良い。
例えば、設定モジュール144は、CPA(chosen−plaintext attack)キー生成アルゴリズム及び線形性キー生成アルゴリズムの出力を生成しても良い。例えば、設定モジュール144は、本願明細書の別の場所に記載のように、線形性キーを起動(run)する。CPAキー生成アルゴリズムは、CPA公開キー及びCPA秘密キーを出力しても良い。線形性キー生成アルゴリズムは、上述のpkxlin,skxlin,pkylin,skylin,及びskRlinを出力しても良い。
さらに、設定モジュール144は、誤り訂正符号(error correcting code:ECC)を選択しても良い。ECCは、線形誤り訂正符号方式であっても良い。ECCは、長さ、ランク、及び距離を有しても良い。さらに、ECCは、ECC符号化演算子(ENCODE)及びECC復号化演算子(DECODE)も有しても良い。設定モジュール144は、次に、第1の近接性秘密キー、第2の近接性秘密キー、第1の近接性公開キー、第2の近接性公開キー、及び近接性関係秘密キー(集合的に、「近接性キー」)を生成しても良い。近接性キーは、関係暗号化において、平文ベクトル142を暗号化して近接性暗号文を生成するため、近接性暗号文を復号化するため、及び近接性暗号文の間の近接性を検出するために使用される。
第1の近接性秘密キーは、CPA秘密キー及び第1の線形性秘密キーに基づき定められても良い。第2の近接性秘密キーは、CPA秘密キー及び第2の線形性秘密キーに基づき定められても良い。第1の近接性公開キーは、ENCODE、DECODE、CPA公開キー及び第1の線形性公開キーに基づき定められても良い。第2の近接性公開キーは、ENCODE、DECODE、CPA公開キー及び第2の線形性公開キーに基づき定められても良い。近接性関係秘密キーは、CPA秘密キー及び線形性関係秘密キーに基づき定められても良い。
幾つかの実施形態では、設定モジュール144は、以下の例示的な近接性キー生成式に従って、近接性キーを生成しても良い。
近接性キー生成式において、pkxlin,pkylin,skxlin,skylin,skRlin,←,X,m,及びnは上述の通りである。パラメータpkCPAは、CPA公開キーを表す。パラメータskCPAは、CPA秘密キーを表す。パラメータKeyGenCPAは、CPAキー生成アルゴリズムを表す。パラメータpkxproxは、第1の近接性公開キーを表す。パラメータpkyproxは、第2の近接性公開キーを表す。パラメータskxproxは、第1の近接性秘密キーを表す。パラメータskyproxは、第2の近接性秘密キーを表す。パラメータskRproxは、近接性関係秘密キーを表す。さらに、パラメータpkxprox、skxprox、pkyprox、skyprox、及びskRproxは、上述のキー生成アルゴリズム(KeyGen)の出力の少なくとも1つの近接性部分を表しても良い。パラメータXは線形抽出器(extractor)を表す。特定の反復が以上に説明されたが、任意の線形抽出器が使用されても良い。
第1の線形性公開キーは、第1の平文ベクトル142Aを暗号化して第1の近接性暗号文を生成するために、近接性暗号化/復号化モジュール114により使用されても良い。近接性暗号化/復号化モジュール114は、平文ベクトル142を受信しても良い。追加又は代替で、通信モジュール116は、平文ベクトル142を受信し、平文ベクトル142を近接性暗号化/復号化モジュール114に通信しても良い。平文ベクトル142は、第1又は第2のフィールドのメンバを有しても良い。
近接性暗号化/復号化モジュール114は、第3のフィールドから近接性乱数をサンプリングしても良い。第3のフィールドは、基本数と、ECCのランクであっても良い次元と、を有しても良い。近接性暗号化/復号化モジュール114は、次に、第1の近接性暗号文及び第2の近接性暗号文を構築しても良い。第1の近接性暗号文及び第2の近接性暗号文の各々は、2つの部分を有しても良い。第1の近接性暗号文の第1の部分は、CPA公開キーと第1の平文ベクトル142Aの和とを入力として受信するCPA暗号化アルゴリズム、及び近接性乱数を入力として受信するENCODEを有しても良い。第1の近接性暗号文の第2の部分は、第1の線形性公開キーと近接性乱数とを受信する第1の線形性暗号化アルゴリズムを有しても良い。
第2の近接性暗号文の第1の部分は、CPA公開キーと第2の平文ベクトル142Bの和とを入力として受信するCPA暗号化アルゴリズム、及び近接性乱数を入力として受信するENCODEを有しても良い。第2の近接性暗号文の第2の部分は、第2の線形性公開キーと近接性乱数とを入力として受信する第2の線形性暗号化アルゴリズムを有しても良い。
幾つかの実施形態では、近接性暗号文は、以下の例示的な近接性暗号化式に従って生成されても良い。
近接性暗号化式において、ENCODE,m1,m2,pkcpa,pkxlin,及びpkylinは、上述の通りである。EncCPAは、CPA暗号化アルゴリズムを表す。パラメータcxp1は、第1の近接性暗号文の第1の部分を表す。パラメータcxp2は、第1の近接性暗号文の第2の部分を表す。パラメータcxpは、第1の近接性暗号文を表す。パラメータcyp1は、第2の近接性暗号文の第1の部分を表す。パラメータcyp2は、第2の近接性暗号文の第2の部分を表す。パラメータcypは、第2の近接性暗号文を表す。パラメータEncXLinearは、第1の線形性暗号化アルゴリズムを表す。パラメータEncYLinearは、第2の線形性暗号化アルゴリズムを表す。
第1の近接性暗号文は、通信モジュール116により認証サーバ140に通信されても良い。第1の近接性暗号文は、登録暗号文130として認証サーバ140に格納されても良い。第2の近接性公開キーは、第2の平文ベクトル142Bを暗号化して第2の近接性暗号文を生成するために、近接性暗号化/復号化モジュール114により使用されても良い。第2の近接性暗号文は、通信モジュール116により認証サーバ140に通信されても良い。近接性関係秘密キーは、認証サーバ140において、特に近接性認証モジュール128により、第2の近接性暗号文と第1の近接性暗号文との間の近接性を検出するために、使用されても良い。この近接性は、登録暗号文130として格納される。
近接性認証モジュール128は、第1の近接性暗号文と第2の近接性暗号文との間の近接性を検出するよう構成されても良い。近接性を検出するために、近接性認証モジュール128は、公開キー情報で利用可能なDECODEにアクセスしても良い。近接性認証モジュール128は、第1の近接性暗号文のランダム性の和(randomness sum)を復元しても良い。第1の近接性暗号文のランダム性の和は、DECODEとして定められても良い。DECODEは、CPA秘密キーと第1の近接性暗号文の第1の部分の和とを入力として受信するCPA復号化アルゴリズムと、CPA秘密キーと第2の近接性暗号文の第1の部分とを入力として受信するCPA復号化アルゴリズムと、を入力として受信する。
DECODEがエラーを返す場合、近接性認証モジュール128は、拒否を返しても良い。さらに、近接性認証モジュール128は、線形性検証アルゴリズムを出力しても良い。線形性検証アルゴリズムは、線形性関係秘密キー、第2の近接性暗号文の第1の部分、第2の近接性暗号文の第2の部分、及びランダム性の和を入力として受信する。
したがって、近接性検証アルゴリズムは、第1の近接性暗号文、第2の近接性暗号文、及び近接性秘密キーを受信するよう定められても良い。近接性検証アルゴリズムは、ランダム性の和を復元し、拒否又は線形性検証アルゴリズムを出力しても良い。線形性検証アルゴリズムは、線形性関係秘密キー、第2の近接性暗号文の第1の部分、第2の近接性暗号文の第2の部分、及びランダム性の和を入力として受信する。例えば、近接性認証モジュール128は、以下の例示的な近接性検証アルゴリズムに従って、もう1度、演算を実行しても良い。
近接性検証アルゴリズムにおいて、skcpa,cx1,cx2,cy1,cy2,⊥,skRlin,X,及びDECODEは、上述の通りである。パラメータOutputは、近接性認証モジュール128の出力を示す。パラメータZrsは、ランダム性の和を表す。DecCPAは、CPA復号化アルゴリズムを表す。VerifyLinearは、線形性検証アルゴリズムを表す。
本願明細書に記載の関係近接性暗号化方式は、以下の条件が真である場合にセキュアであり得る。ECCは、(n,k,2δ)線形誤り訂正方式である;(KeyGenCPA,EncCPA,DecCPA)は、IND−CPAセキュア暗号化方式である;(KeyGenLinear,EncXLinear,DecXLinear,EncYLinear,DecYLinear,VerifyLinear)は、Fk 2における線形性の関係暗号化方式である。
条件の中で、KeyGenCPA,EncCPA,DecCPA,KeyGenLinear,EncXLinear,DecXLinear,EncYLinear,DecYLinear,VerifyLinear,及びFは、上述の通りである。ECCはECCを表す。パラメータnは長さを表し、kはランクを表し、2δは距離を表す。
図2は、本願明細書に記載の少なくとも1つの実施形態に従って構成される生体認証システム(バイオメトリックシステム)200のブロック図を示す。生体認証システム200は、認証サービスが提供される図1の例示的な動作環境100に含まれ又はそれを含んでも良い。生体認証システム200では、ユーザ206の認証は、認証サーバ140により実行されても良い。生体認証システム200では、図1を参照して議論した関係暗号化は、ユーザ206の同一性を認証するために用いられても良い。
認証サービスは、登録処理及び認証処理を有しても良い。登録処理は、認証処理において使用され得る情報及びデータをユーザ206から得るステップを有しても良い。認証処理は、時間的に後に(例えば、登録処理に続いて)生じても良い。認証処理では、ユーザ206の同一性は、図1を参照して議論した関係暗号化動作のうちの1又は複数を用いて認証されても良い。概して、ユーザ206の同一性は、本願明細書に記載のように、第1の線形性暗号文と第2の線形性暗号文との間の線形性を発見することにより、及び第1の近接性暗号文と第2の近接性暗号文との間の近接性を検出することにより、認証されても良い。第1の線形性暗号文及び第1の近接性暗号文は、第1のバイオメトリックテンプレートの形式で、ユーザ206により提供されても良い。第1のバイオメトリックテンプレートは、図1の第1の平文ベクトル142A及び/又は図2の登録入力に含まれても良い。
ユーザ206及び/又は偽者222(後述する)は、1又は複数のバイオメトリック特徴を有する個人を有しても良い。バイオメトリック特徴は、1又は複数のユニークな特徴を有しても良い。例えば、バイオメトリック特徴は、畝及び/又畝間のパターンを有する、ユーザ206の指紋を有しても良い。幾つかの実施形態では、ユーザ206は、ユーザ装置102と関連付けられても良い。例えば、ユーザ206は、ユーザ装置102を所有し又は定期的に操作しても良い。幾つかの実施形態では、ユーザ206は、ユーザ装置102と具体的に関連付けられなくても良い。例えば、ユーザ装置102は、ユーザ206を含む複数のユーザにより公的にアクセス可能であっても良い。幾つかの実施形態では、偽者222は、バイオメトリック特徴を表し得る入力を供給するエンティティを有しても良い。
幾つかの実施形態では、ユーザ装置102は、センサ298を有してもよい。センサ298は、例えばユーザ206を認証するために使用されるバイオメトリック特徴を測定する又はキャプチャするよう構成されるハードウェア装置を有しても良い。ユーザ206のバイオメトリック特徴が測定され又はキャプチャされると、ユーザ装置102は、バイオメトリックテンプレートを生成しても良い。バイオメトリックテンプレートは、バイオメトリック特徴を表しても良く、ユーザ206のバイオメトリック特徴のユニークな特徴のうちの少なくとも幾つかを有しても良い。バイオメトリックテンプレートは、例えば、バイオメトリック特徴のグラフィカル表現及び/又はアルゴリズム表現を有しても良い。
センサ298の幾つかの例は、指紋スキャナ、虹彩の画像をキャプチャするよう構成されるカメラ、DNAを測定するよう構成される装置、心拍をキャプチャするよう構成される心拍モニタ、骨格筋により生成される電気的活動をキャプチャするよう構成されるウエアラブル筋電センサ、又はバイオメトリック特徴を測定し又はキャプチャするよう構成される任意の他のセンサ298、を有しても良い。
図示の生体認証システム200では、センサ298は、ユーザ装置102に含まれる。他の実施形態では、センサ298は、ユーザ装置102又はそれに含まれるプロセッサに通信可能に結合されても良い。例えば、センサ298は、図1のネットワーク107のようなネットワークを介してユーザ装置102に信号を通信するよう構成されても良い。図2には1個のみのセンサ298が示されるが、幾つかの実施形態では、ユーザ装置102は、1又は複数のセンサ298を有しても良い。
enc/decモジュール110は、第1の線形性暗号文及び第1の近接性暗号文を登録入力232から生成しても良い。enc/decモジュール110は、次に、第1の線形性暗号文及び第1の近接性暗号文を登録データ234として、認証サーバ140に通信しても良い。
関係認証モジュール108は、第1の線形性暗号文及び第1の近接性暗号文を登録暗号文130として格納しても良い。登録暗号文130は、ユーザ206に関連付けられても良い。例えば、ユーザ206は、関連付けられたユーザ識別子を有しても良い。幾つかの実施形態では、登録暗号文130は、メモリ122Bに格納されても良い。
enc/decモジュール110は、次に、第1のチャレンジ入力236A又は第2のチャレンジ入力236B(概して、チャレンジ入力236)を受信しても良い。第1のチャレンジ入力236A及び第2のチャレンジ入力236Bは、ユーザ206又は偽者222による、彼らの同一性を認証させる試みであっても良い。第1のチャレンジ入力236A及び/又は第2のチャレンジ入力236Bは、例えば、センサ298により読み取られた第2のバイオメトリックテンプレートを有しても良い。第2のバイオメトリックテンプレートは、ユーザ206又は偽者222のバイオメトリック特徴のユニークな特徴を表しても良い。
enc/decモジュール110は、第2の線形性暗号文及び第2の近接性暗号文をチャレンジ入力236から生成しても良い。enc/decモジュール110は、次に、第2の線形性暗号文及び第2の近接性暗号文をチャレンジデータ238として、認証サーバ140に通信しても良い。
関係認証モジュール108は、チャレンジデータ238を受信しても良い。関係認証モジュール108は、次に、ユーザ206の登録暗号文130を読み出しても良い。
関係認証モジュール108は、登録暗号文130として格納された第1の線形性暗号文とユーザ装置102から受信した第2の線形性暗号文との間の線形性関係を決定しても良い。さらに、関係認証モジュール108は、登録暗号文130として格納された第1の近接性暗号文とユーザ装置102から受信した第2の近接性暗号文との間の近接性関係を決定しても良い。
第1の線形性暗号文が第2の線形性暗号文と線形性関係を有し、及び第1の近接性暗号文と第2の近接性暗号文との間の特定の近接性が存在することに応答して、認証サーバ140は、第1のバイオメトリックテンプレートと第2のバイオメトリックテンプレートとの間に概算類似性が存在すると決定しても良い。
したがって、ユーザ206により提供される第1のチャレンジ入力236Aが、第2の線形性暗号文及び第2の近接性暗号文の基礎である場合、第1の線形性暗号文と第2の線形性暗号文との間に線形性関係が存在し、第1の近接性暗号文と第2の近接性暗号文との間に近接性が存在し得る。
しかしながら、偽者222により提供される第2のチャレンジ入力236Bが、第2の線形性暗号文及び第2の近接性暗号文の基礎である場合、第1の線形性暗号文と第2の線形性暗号文との間に線形性関係が存在せず、第1の近接性暗号文と第2の近接性暗号文との間に近接性が存在しない。
線形性関係及び/又は近接性に基づき、関係認証モジュール108は、認証を決定できる。例えば、関係認証モジュール108は、チャレンジデータ238がユーザ206又は偽者222に起因するかを決定しても良い。関係認証モジュール108は、線形性関係の発見及び/又は近接性の検出に基づき、認証信号242を通信しても良い。enc/decモジュール110は、認証信号242を受信しても良い。
本開示の範囲から逸脱することなく生体認証システム200に対し変更、追加又は省略が行われても良い。具体的には、図2に示す実施形態は、1人のユーザ206、1つのユーザ装置102、及び1つの認証サーバ140を有する。しかしながら、本開示は、1又は複数のユーザ206、1又は複数のユーザ装置102、1又は複数の認証サーバ140、又はそれらの任意の組み合わせを有する生体認証システム200に適用される。
さらに、本願明細書に記載の実施形態の中の種々のコンポーネントの分割は、分割が全ての実施形態において生じることを意味しない。本開示の利益により、記載のコンポーネントが単一のコンポーネントに統合され又は複数のコンポーネントに分割されても良いことが理解される。例えば、幾つかの実施形態では、enc/decモジュール110及び/又はそれに属する1又は複数の機能は、認証サーバ140にあるモジュールにより実行されても良い。
関係認証モジュール108及び/又はenc/decモジュール110は、生体認証のためのコード及びルーチンを有しても良い。幾つかの実施形態では、関係認証モジュール108及び/又はenc/decモジュール110は、例えば、ユーザ装置102又は別のコンピューティング装置に格納されても良いシンクライアントアプリケーションとして部分的に動作しても良く、認証サーバ140に格納されても良いコンポーネントの一部として動作しても良い。幾つかの実施形態では、関係認証モジュール108及び/又はenc/decモジュール110は、FPGA(field−programmable gate array)又はASIC(application−specific integrated circuit)を含むハードウェアを用いて実装できる。幾つかの他の例では、関係認証モジュール108及び/又はenc/decモジュール110は、ハードウェア及びソフトウェアの組み合わせを用いて実装されても良い。
図3は、本願明細書に記載の少なくとも1つの実施形態に従って構成される、生体認証の例示的な方法300のフロー図である。方法300は、図2の生体認証システム200の中で又は図1の動作環境100の中で実装され得るような生体認証システムにおいて実行されても良い。方法300は、本願明細書に記載された認証サーバ140により幾つかの実施形態においてプログラム制御されて実行されても良い。認証サーバ140は、方法300を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体(例えば、図1のメモリ122B)を含み又はそれに通信可能に結合されても良い。追加又は代替で、認証サーバ140は、方法300を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ(例えば、図1のプロセッサ124B)を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
方法300はブロック302で開始し得る。ブロック302で、第1の線形性暗号文が受信されても良い。第1の線形性暗号文は、関係線形性暗号化方式を用いて暗号化された第1のバイオメトリックテンプレートを表しても良い。ブロック304で、第1の近接性暗号文が受信されても良い。第1の近接性暗号文は、関係近接性暗号化方式を用いて暗号化された第1のバイオメトリックテンプレートを表しても良い。
ブロック306で、第1の線形性暗号文及び第1の近接性暗号文は、登録暗号文として格納されても良い。ブロック308で、線形性関係秘密キー及び近接性関係秘密キーが受信されても良い。ブロック310で、第2の近接性暗号文が受信されても良い。第2の近接性暗号文は、関係近接性暗号化方式を用いて暗号化された第2のバイオメトリックテンプレートを表しても良い。ブロック312で、第2の線形性暗号文が受信されても良い。第2の線形性暗号文は、関係線形性暗号化方式を用いて暗号化された第2のバイオメトリックテンプレートを表しても良い。
ブロック314で、第1の線形性暗号文と第2の線形性暗号文との間の線形性関係が、線形性関係秘密キーを用いて発見されても良い。ブロック316で、第1の近接性暗号文と第2の近接性暗号文との間の近接性が、近接性関係秘密キーを用いて検出されても良い。近接性は、ハミング距離の観点で決定されても良い。ブロック318で、ユーザの同一性は、近接性及び線形性関係に基づき認証されても良い。
本願明細書に開示した手順及び方法の任意のものについて、処理及び方法の中で実行される機能は、異なる順序で実施されても良い。さらに、概略のステップ及び動作は、単に例として提供され、幾つかのステップ及び動作は、開示の実施形態から逸脱することなく、任意であり、より少ないステップ及び動作に組み合わされ、又は追加ステップ及び動作に拡張されても良い。
図4A及び4Bは、本願明細書に記載の少なくとも1つの実施形態に従って構成される、関係暗号化の例示的な方法400のフロー図である。方法400は、図2の生体認証システム200の中で又は図1の動作環境100の中で実装され得るような生体認証システムにおいて実行されても良い。方法400は、本願明細書に記載されたユーザ装置102により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置102は、方法400を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体(例えば、図1のメモリ122A)を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置102は、方法400を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ(例えば、図1のプロセッサ124A)を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
図4Aを参照すると、方法400はブロック402で開始し得る。ブロック402で、関係線形性暗号化方式のキーが生成されても良い。関係線形性暗号化方式のキーは、セキュリティパラメータについて生成されても良い。ブロック403で、第1の不均一分散データは、第1の平文ベクトルとして適切なランダム化レベルにランダム化されても良い。不均一分散データは、バイオメトリックデータであっても良い。適切なランダム化レベルは、以下に詳細に説明される。ブロック404で、第1の平文ベクトルは、関係線形性暗号化方式を用いて暗号化されても良い。第1の平文ベクトルの暗号化は、第1の平文ベクトルを表す第1の線形性暗号文を生成しても良い。ブロック406で、関係近接性暗号化方式のキーが生成されても良い。関係近接性暗号化方式のキーは、セキュリティパラメータについて生成されても良い。ブロック408で、第1の平文ベクトルは、関係近接性暗号化方式を用いて暗号化されても良い。関係近接性暗号化方式を用いる第1の平文ベクトルの暗号化は、第1の平文ベクトルを表す第1の近接性暗号文を生成しても良い。ブロック410で、第1の線形性暗号文及び第1の近接性暗号文は、認証サーバに通信されても良い。
ブロック411で、第2の不均一分散データは、第2の平文ベクトルとして適切なランダム化レベルにランダム化されても良い。不均一分散データは、バイオメトリックデータであっても良い。適切なランダム化レベルは、以下に詳細に説明される。ブロック412で、第2の平文ベクトルは、関係線形性暗号化方式を用いて暗号化されても良い。第2の平文ベクトルの暗号化は、第2の平文ベクトルを表す第2の線形性暗号文を生成しても良い。図4Bを参照すると、ブロック414で、第2の平文ベクトルは、関係近接性暗号化方式を用いて暗号化されても良い。関係近接性暗号化方式を用いる第2の平文ベクトルの暗号化は、第2の近接性暗号文を生成しても良い。ブロック416で、第2の線形性暗号文及び第2の近接性暗号文は、認証サーバに通信されても良い。ブロック418で、ブロック402において生成された関係線形性暗号化方式のキーは、認証サーバに通信されても良い。キーは、関係線形性キー及び関係近接性キーを有しても良い。
ブロック420で、認証信号は、認証サーバから受信されても良い。認証信号は、関係線形性キーを用いて発見された第1の線形性暗号文と第2の線形性暗号文との間の線形性関係と、関係近接性キーを用いて検出された第1の近接性暗号文と第2の近接性暗号文との間の近接性と、を示しても良い。幾つかの実施形態では、第1の平文ベクトルは、ユーザから登録入力として受信された第1のバイオメトリックテンプレートを有しても良い。さらに、第2の平文ベクトルは、チャレンジ入力として受信された第2のバイオメトリックテンプレートを有しても良い。上述及び他の実施形態では、認証信号は、第2のバイオメトリックテンプレートがユーザに起因するか否かを示しても良い。
図5は、本願明細書に記載の少なくとも1つの実施形態に従って構成される、関係暗号化方式において線形性関係を発見する例示的な方法500のフロー図である。方法500は、図2の生体認証システム200の中で又は図1の動作環境100の中で実装され得るような生体認証システムにおいて実行されても良い。方法500は、本願明細書に記載された認証サーバ140により幾つかの実施形態においてプログラム制御されて実行されても良い。認証サーバ140は、方法500を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体(例えば、図1のメモリ122B)を含み又はそれに通信可能に結合されても良い。追加又は代替で、認証サーバ140は、方法500を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ(例えば、図1のプロセッサ124B)を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
方法500はブロック502で開始し得る。ブロック502で、特定ベクトルが定められても良い。特定ベクトルは、第1のフィールドのメンバを有しても良い。;第1のフィールドは、0及び1の要素、及び線形性秘密キーの長さである特定数の次元を有しても良い。追加又は代替で、特定ベクトルは、第2のフィールドのメンバを有しても良い。;第2のフィールドは、0個から、基本数及び特定数の次元より1少ない数までの要素を有しても良い。
ブロック504で、第1の値が計算されても良い。第1の値は、第1の線形性暗号文の第1の要素と、線形性関係秘密キーにより冪乗された第2の線形性暗号文の第1の要素とのペアリング関数として計算されても良い。ブロック506で、第2の値が計算されても良い。幾つかの実施形態では、第2の値は、第1の線形性暗号文の各々の要素と、−1を特定ベクトルの対応する要素で冪乗したもので冪乗した第2の線形性暗号文の対応する要素とのペアリング関数の結果であっても良い。幾つかの実施形態では、第2の値は、第1の線形性暗号文の各々の要素と、−1及び特定ベクトルの対応する要素の積で任意の生成元を冪乗したもので冪乗した第2の線形性暗号文の中の対応する要素とのペアリング関数の結果として計算されても良い。任意の生成元は、0を削除した整数の集合の部分群から選択されても良い。
ブロック508で、第1の値が第2の値に等しいか否かが決定されても良い。第1の値が第2の値に等しいことに応答して(ブロック508で「Yes」)、方法500は、ブロック510に進んでも良い。ブロック510で、第1の線形性暗号文は第2の線形性暗号文と線形の関係にあると結論づけられても良い。第1の値が第2の値に等しくないことに応答して(ブロック518で「No」)、方法500は、ブロック512に進んでも良い。ブロック512で、エラーが出力されても良い。これは、第1の線形性暗号文は第2の線形性暗号文と線形の関係にないことを示しても良い。
図6は、本願明細書に記載の少なくとも1つの実施形態に従って構成される、近接性を検出する例示的な方法600のフロー図である。方法600は、図2の生体認証システム200の中で又は図1の動作環境100の中で実装され得るような生体認証システムにおいて実行されても良い。方法600は、本願明細書に記載された認証サーバ140により幾つかの実施形態においてプログラム制御されて実行されても良い。認証サーバ140は、方法600を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体(例えば、図1のメモリ122B)を含み又はそれに通信可能に結合されても良い。追加又は代替で、認証サーバ140は、方法600を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ(例えば、図1のプロセッサ124B)を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
方法600はブロック602で開始し得る。ブロック602で、DECODEは、公開キー情報からアクセスされても良い。ブロック604で、ランダム性の和が復元されても良い。ランダム性の和は、第1の近接性暗号文について受信されても良い。第1の近接性暗号文のランダム性の和は、DECODEとして定められても良い。DECODEは、(a)CPA秘密キーと(b)第1の近接性暗号文の第1の部分の和とを入力として受信するCPA復号化アルゴリズムと、CPA秘密キーと第2の近接性暗号文の第1の部分とを入力として受信するCPA復号化アルゴリズムと、を入力として受信する。
ブロック606で、DECODEがエラーを返すことに応答して、拒否が出力されても良い。或いは、ブロック608で、線形性検証アルゴリズムが出力されても良い。線形性検証アルゴリズムは、線形性関係秘密キー、第2の近接性暗号文の第1の部分、第2の近接性暗号文の第2の部分、及びランダム性の和を入力として受信しても良い。
図7は、本願明細書に記載の少なくとも1つの実施形態に従って構成される、関係線形性暗号化方式のキー生成の例示的な方法700のフロー図である。方法700は、図2の生体認証システム200の中で又は図1の動作環境100の中で実装され得るような生体認証システムにおいて実行されても良い。方法700は、本願明細書に記載されたユーザ装置102により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置102は、方法700を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体(例えば、図1のメモリ122A)を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置102は、方法700を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ(例えば、図1のプロセッサ124A)を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
方法700はブロック702で開始し得る。ブロック702で、双線形群が生成されても良い。幾つかの実施形態では、双線形群は素数位数であっても良い。素数位数は、セキュリティパラメータにおける指数であっても良い。追加又は代替で、素数位数は、セキュリティパラメータにおける指数であり、1を基本数(p)で割った余り(1 modulo p)に等しくても良い。例えば、平文ベクトルがビットベクトルを含む実施形態では、素数位数は、セキュリティパラメータにおける指数であっても良い。平文ベクトルがp−aryベクトルを含む実施形態では、素数位数は、セキュリティパラメータにおける指数であり、1を基本数(p)で割った余り(1 modulo p)に等しくても良い。
ブロック704で、生成元がサンプリングされても良い。例えば、第1の生成元は、第1の双線形群からサンプリングされても良く、第2の生成元は、第2の双線形群からサンプリングされても良い。ブロック706で、線形性秘密キーが生成されても良い。例えば、第1の線形性秘密キー及び第2の線形性秘密キーは、整数の集合から特定数の要素をランダムにサンプリングすることにより生成されても良い。整数の集合は、0から、素数位数より1少ない数までを有しても良い。
ブロック708で、線形性公開キーが定められても良い。例えば、第1の線形性公開キーは、第1の生成元である要素と、第1の線形性秘密キーの対応する要素により冪乗された第1の生成元である1又は複数の他の要素と、を有しても良い。幾つかの実施形態では、第1の線形性公開キーは、任意の生成元を更に有しても良い。任意の生成元は、0を削除した整数の集合の部分群から選択されても良い。さらに、第2の線形性公開キーが定められても良い。第2の線形性公開キーは、第2の生成元である要素と、第2の線形性秘密キーの対応する要素により冪乗された第2の生成元である1又は複数の他の要素と、を有しても良い。幾つかの実施形態では、第2の線形性公開キーは、任意の生成元である要素を更に有しても良い。
ブロック710で、線形性関係秘密キーが定められても良い。線形性関係秘密キーの各々の要素は、第2の線形性秘密キーの対応する要素と第1の線形性秘密キーの対応する要素との和を有しても良い。
図8は、本願明細書に記載の少なくとも1つの実施形態に従って構成される、関係線形性暗号化方式を用いて第1の平文ベクトルを暗号化する例示的な方法800のフロー図である。方法800は、図2の生体認証システム200の中で又は図1の動作環境100の中で実装され得るような生体認証システムにおいて実行されても良い。方法800は、本願明細書に記載されたユーザ装置102により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置102は、方法800を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体(例えば、図1のメモリ122A)を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置102は、方法800を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ(例えば、図1のプロセッサ124A)を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
方法800はブロック802で開始し得る。ブロック802で、乱数がサンプリングされても良い。乱数は、整数の集合からサンプリングされても良い。ブロック804で、第1の線形性暗号文が構築されても良い。第1の線形性暗号文の第1の要素は、乱数により冪乗される第1の生成元であっても良い。さらに、第1の線形性暗号文の1又は複数の他の要素は、線形性暗号化指数により冪乗された第1の線形性公開キーの対応する要素を有しても良い。幾つかの実施形態では、線形性暗号化指数は、乱数と、−1を第1の平文ベクトルの対応する要素により冪乗したものとの積を有しても良い。幾つかの実施形態では、線形性暗号化指数は、乱数と、第1の平文ベクトルの対応する要素により冪乗された任意の生成元との積を有しても良い。
図9は、本願明細書に記載の少なくとも1つの実施形態に従って構成される、関係近接性暗号化方式のキーを生成する例示的な方法900のフロー図である。方法900は、図2の生体認証システム200の中で又は図1の動作環境100の中で実装され得るような生体認証システムにおいて実行されても良い。方法900は、本願明細書に記載されたユーザ装置102により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置102は、方法900を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体(例えば、図1のメモリ122A)を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置102は、方法900を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ(例えば、図1のプロセッサ124A)を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
方法900はブロック902で開始し得る。ブロック902で、ECCが選択されても良い。ECCは、長さ、セキュリティパラメータの同じ次数のランク、選択された最小距離、を有しても良い。ブロック904で、CPAセキュア暗号化方式のキー生成アルゴリズムが実行されても良い。CPAセキュア暗号化方式は、CPA公開キー及びCPA秘密キーを出力しても良い。ブロック906で、関係線形性キー生成アルゴリズムが実行されても良い。関係線形性キー生成アルゴリズムは、第1の線形性公開キー、第2の線形性公開キー、第1の線形性秘密キー、第2の線形性秘密キー、及び関係線形性秘密キーを出力しても良い。
ブロック907で、近接性公開キーが定められても良い。例えば、第1の近接性公開キーは、ENCODE、DECODE、CPA公開キー及び第1の線形性公開キーに基づき定められても良い。さらに、第2の近接性公開キーは、ENCODE、DECODE、CPA公開キー及び第2の線形性公開キーに基づき定められても良い。ブロック908で、近接性秘密キーが定められても良い。例えば、第1の近接性秘密キーは、CPA秘密キー及び第1の線形性秘密キーに基づき定められても良い。さらに、第2の近接性秘密キーは、CPA秘密キー及び第2の線形性秘密キーに基づき定められても良い。ブロック910で、近接性関係秘密キーが定められても良い。例えば、近接性関係秘密キーは、CPA秘密キー及び第1の関係線形性秘密キーに基づき定められても良い。
図10は、本願明細書に記載の少なくとも1つの実施形態に従って構成される、関係近接性暗号化方式を用いて第1の平文ベクトルを暗号化する例示的な方法1000のフロー図である。方法1000は、図2の生体認証システム200の中で又は図1の動作環境100の中で実装され得るような生体認証システムにおいて実行されても良い。方法1000は、本願明細書に記載されたユーザ装置102により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置102は、方法1000を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体(例えば、図1のメモリ122A)を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置102は、方法1000を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ(例えば、図1のプロセッサ124A)を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
方法1000はブロック1002で開始し得る。ブロック1002で、近接性乱数がサンプリングされても良い。近接性乱数は、第3のフィールドからサンプリングされても良い。第3のフィールドは、基本数と、ECCのランクである次元と、を有しても良い。ブロック1004で、第1の近接性暗号文の第1の部分が定められても良い。第1の部分は、CPA公開キーと第1の平文ベクトルの和とを入力として受信するCPA暗号化アルゴリズム、及び近接性乱数を入力として受信するENCODEとして定められても良い。
ブロック1006で、第1の近接性暗号文の第2の部分が定められても良い。第2の部分は、第1の線形性公開キーと近接性乱数とを入力として受信する第1の線形性暗号化アルゴリズムとして定められても良い。
図11は、本願明細書に記載の少なくとも1つの実施形態に従って構成される、第1の線形性暗号文を復号化する例示的な方法1100のフロー図である。方法1100は、図2の生体認証システム200の中で又は図1の動作環境100の中で実装され得るような生体認証システムにおいて実行されても良い。方法1100は、本願明細書に記載されたユーザ装置102により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置102は、方法1100を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体(例えば、図1のメモリ122A)を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置102は、方法1100を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ(例えば、図1のプロセッサ124A)を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
方法1100はブロック1102で開始し得る。ブロック1102で、第1の線形性暗号文の中の対応する要素が、特定要素値により冪乗された任意の生成元と第1の線形性秘密キーの対応する要素との積により冪乗された第1の線形性暗号文の第1の要素に等しいような、特定要素値が存在するか否かが決定されても良い。特定要素値が存在することに応答して(ブロック1102で「Yes」)、要素は、特定要素値に設定されても良い。特定要素値が存在しないことに応答して(ブロック1102で「No」)、エラーが出力されても良い。
図12は、本願明細書に記載の少なくとも1つの実施形態に従って構成される、第1の線形性暗号文を復号化する別の例示的な方法1200のフロー図である。方法1200は、図2の生体認証システム200の中で又は図1の動作環境100の中で実装され得るような生体認証システムにおいて実行されても良い。方法1200は、本願明細書に記載されたユーザ装置102により幾つかの実施形態においてプログラム制御されて実行されても良い。ユーザ装置102は、方法1200を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体(例えば、図1のメモリ122A)を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置102は、方法1200を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ(例えば、図1のプロセッサ124A)を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
方法1200はブロック1202で開始し得る。ブロック1202で、第1の線形性暗号文の中の対応する要素が、第1の線形性秘密キーの対応する要素により冪乗された第1の線形性暗号文の第1の要素と等しいか否かが決定されても良い。第1の線形性暗号文の中の対応する要素が、第1の線形性秘密キーの対応する要素により冪乗された第1の線形性暗号文の第1の要素に等しいことに応答して(ブロック1202において「Yes」)、方法1200は、ブロック1208に進んでも良い。ブロック1208で、第1の平文ベクトルの要素は、0に設定されても良い。
第1の線形性暗号文の中の対応する要素が、第1の線形性秘密キーの対応する要素により冪乗された第1の線形性暗号文の第1の要素に等しくないことに応答して(ブロック1202において「No」)、方法1200は、ブロック1204に進んでも良い。ブロック1204で、第1の線形性暗号文の中の対応する要素が、第1の線形性秘密キーの対応する要素で−1を乗算したものにより冪乗された第1の線形性暗号文の第1の要素と等しいか否かが決定されても良い。第1の線形性暗号文の中の対応する要素が、第1の線形性秘密キーの対応する要素で−1を乗算したものにより冪乗された第1の線形性暗号文の第1の要素に等しいことに応答して(ブロック1204において「Yes」)、方法1200は、ブロック1210に進んでも良い。ブロック1210で、第1の平文ベクトルの要素は、1に設定されても良い。第1の線形性暗号文の中の対応する要素が、第1の線形性秘密キーの対応する要素で−1を乗算したものにより冪乗された第1の線形性暗号文の第1の要素に等しくないことに応答して(ブロック1204において「No」)、方法は、ブロック1206に進んでも良い。ブロック1206で、第1の線形性暗号文の中の対応する要素が別の値に等しいか否かが決定されても良い。第1の線形性暗号文の対応する要素が別の値に等しいことに応答して(ブロック1206で「Yes」)、方法1200は、ブロック1212に進んでも良い。ブロック1212で、エラーが返されても良い。
<不均一分散データ>
幾つかの実施形態では、本開示は、一様にランダムではない、バイオメトリックデータのような、基礎データの関係暗号化も提供し得る。基礎データは、不均一に分散されても良く、及び/又は相関を有しても良い。非限定的な例として、米国の人口のより大きな部分集合は、青い目よりも茶色い目を持っている。言い換えると、目の色は、人口全体に不均一に分散し得る。同様に、青い目を持つ個人は、濃い色の髪よりも明るい色の髪を持つ可能性が高い。言い換えると、青い目と明るい色の髪との間には相関が存在し得る。バイオメトリックデータにおける(相関を含む)ランダム性の欠如のために、本開示は、本開示に記載の関係暗号化方式を用いる前に、基礎となるバイオメトリックデータの効率的なランダム化の提供も含み得る。
適切なランダム化レベルは、データのエントロピ、ノイズ閾、データのドメイン、等を含む、データの特徴の数に依存しても良い。これらの特徴を説明する際の便宜のため、指紋の生体認証特徴の例が用いられるが、非バイオメトリックデータを含む任意の基礎データが使用されても良い。幾つかの実施形態では、適切なランダム化レベルは、Xとrとのドット積、又は基礎データrと行列Xとのドット積により達成され得る。行列Xは、従来知られているように強力な線形抽出器であり得る。特徴は、行列Xを導出する際の入力であっても良い。幾つかの実施形態では、線形抽出器は、データを適切なレベルにランダム化するために、データの元のサイズを4分の1のサイズまで縮小するために使用されても良い。適切なランダム化レベルは、セキュリティパラメータλに依存しても良い。例えば、セキュリティパラメータが、セキュリティの80個のビットが必要であることを示す場合、ランダム化レベルは、生データに対して強力な線形抽出器を用いる処理の後に、80ビットのランダム化データを必要とし得る。別の例では、セキュリティパラメータが、セキュリティの128個のビットが必要であることを示す場合、ランダム化レベルは、生データに対して強力な線形抽出器を用いる処理の後に、128ビットのランダム化データを必要とし得る。
データのエントロピの特徴は、データ自体が本来持っている全体的なばらつき又はランダム性を表しても良い。例として、指紋は、人間の人口において、指紋の分布に固有の特定量のばらつき又はランダム性を有する。これは、バイオメトリック特徴のエントロピとして参照されても良い。データのエントロピが増大するにつれ、適切なランダム化レベルに達するために必要な処理の量は減少し得る。
ノイズ閾の特徴は、基礎データを読み取る又は取得するときに存在するばらつきの量を表し得る。再び指紋の例を用いると、指紋の走査又は読み取りを行うとき、指紋の読み取り値を集めるときに、幾らかのノイズ又は変動が存在し得る。言い換えると、所与の個人について読み取り値が取り込まれる度に、正確に同一のバイオメトリックデータが集められない場合がある。実際に、個人のバイオメトリック特徴は僅かに変化し得るので、完全なシステムにおいてさえ、2つのサンプリングの間には、バイオメトリックデータに幾らかの軽微な変動が存在し得る。これは、ノイズ閾として表されても良い。ノイズ閾が高い場合、システムは、頻繁に偽陽性を生成し、不正なデータが基礎データに一致することを許してしまう。指紋の例を用いると、類似するが同一ではない指紋が多すぎると、本物として認識される場合がある。反対に、ノイズ閾が低い場合には、システムは頻繁に偽陰性を生成し得る。指紋の例を用いると、第2の読み取り値を取り入れる同一人物が認証されない場合がある。ノイズ閾が増大するにつれ、適切なランダム化レベルに達するための処理の量は減少し得る。
別の特徴は、データのドメイン、又は基礎データが存在する数学的空間を有しても良い。指紋の例を用いると、バイオメトリックデータはビットストリーム又はp−naryベクトルに変換される。例えば、所与の指紋は、320ビットのビットストリームにより表現できる。ドメインのフォーマット及び長さは、他の因子、例えばノイズレベル及びノイズ閾に関連しても良い。幾つかの実施形態では、基礎データの最小サイズ又はベクトル長しか必要ない。基礎データのサイズ及びドメインの複雑性が増大するにつれ、処理の量は減少し得る。
適切なランダム化レベルは、データの所望のセキュリティレベルに比例しても良い。所望のセキュリティレベルが増大するにつれ、適切なランダム化レベルは増大し得る。所望のセキュリティレベルは、セキュリティパラメータλが何を表すかを決定し得る。例えば、高いセキュリティレベルが望まれる場合、セキュリティパラメータは、128個のセキュリティビットを必要とし得る。
図13は、例示的な動作環境のブロック図である。ネットワーク107、通信モジュール116、設定モジュール144、メモリ122A、プロセッサ124A、通信ユニット126A、第1のエンティティ150、第2のエンティティ152、認証サーバ140は、図1に示したものと同じであっても良い。ユーザ装置1302は、ユーザ装置102と同様であっても良いが、関係暗号化/復号化モジュール1310を含むよう変更されても良い。線形性暗号化モジュール1312及び近接性暗号化モジュール1314は、線形性暗号化/復号化モジュール112及び近接性暗号化/復号化モジュール114と同様であっても良いが、それらは任意の暗号文を復号化するよう構成されなくても良い。不均一分散データを用いる幾つかの実施形態では、本開示に記載の方法及び処理は、任意の復号化ステップを省略するよう変更されても良い。関係暗号化/復号化モジュール1310は、関係暗号化/復号化モジュール110と同様であっても良いが、ランダム化モジュール1320を含むよう変更されても良い。
ランダム化モジュール1320は、本願明細書に記載の1又は複数の動作を実行するよう構成される1又は複数のルーチンを含むソフトウェアとして実装されても良い。ランダム化モジュール1320は、本願明細書に記載の機能を提供するためにプロセッサ124により実行可能な命令セットを有しても良い。幾つかの例では、ランダム化モジュール1320は、メモリ122に格納され又は少なくとも一時的にそれにロードされても良く、プロセッサ124のうちの1又は複数によりアクセス可能又は実行可能であっても良い。ランダム化モジュール1320は、バスを介してプロセッサ124のうちの1又は複数と協働し及び通信するために適応されても良い。
ランダム化モジュール1320は、不均一に分散されたデータであっても良い基礎データを適切なランダム化レベルにまでランダム化するよう構成されても良い。したがって、ランダム化されたデータは、本開示に記載のような関係暗号化方式において使用され得る。幾つかの実施形態では、これは、ランダム化モジュール1320が線形抽出器1325を利用して不均一分散データから適切にランダム化された平文を抽出するステップを有しても良い。線形抽出器1325は、強力な線形抽出器であっても良い。線形抽出器1325は、従来知られているような一連の算術的ステップ又は演算として実施されても良い。
例として、ユーザ装置1302は、本開示に従って関係暗号化方式で使用されるべきバイオメトリックデータを受信しても良い。バイオメトリックデータは、不均一に分散していても良い。したがって、基礎データを暗号化する前に、バイオメトリックデータは、平文ベクトルとして適切なランダム化レベルに達するよう、線形抽出器1325を用いてランダム化モジュール1320において処理されても良い。平文ベクトルは、次に、線形性暗号化モジュール1312及び近接性暗号化モジュール1314により暗号化されても良い。
図14は、関係暗号化方式を用いる不均一分散データを暗号化する例示的な方法1400のフロー図である。方法1400は、図2の生体認証システム200の中で、図1の動作環境100の中で、又は図13の動作環境1300の中で実装され得るような生体認証システムにおいて実行されても良い。幾つかの実施形態では、方法1200は、図1のユーザ装置102又は図13のユーザ装置1302によりプログラム制御可能に実行されても良い。ユーザ装置102又はユーザ装置1302は、方法1400を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体(例えば、図1又は図13のメモリ122A)を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置102又はユーザ装置1302は、方法1400を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ(例えば、図1又は図13のプロセッサ124A)を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
ブロック1410において、ユーザ装置は、バイオメトリックデータ又は他の不均一分散データを受信しても良い。これは、1又は複数のセンサ、検出器、等を用いて受信されても良い。ブロック1420において、バイオメトリックデータは、平文ベクトルとして、あるランダム化レベルに処理されても良い。ブロック1420は、図15において更に説明されても良い。ブロック1430において、平文ベクトルは、本開示に記載のように関係線形性暗号化方式を用いて暗号化されて、線形性暗号文を生成しても良い。ブロック1440において、平文ベクトルは、本開示に記載のように関係近接性暗号化方式を用いて暗号化されて、近接性暗号文を生成しても良い。
ブロック1450で、線形性及び近接性暗号文は、認証サーバに通信されても良い。線形性及び近接性暗号文が認証サーバに通信されると、認証サーバは、暗号文と基準暗号文との間に関係が存在するかどうかを決定するために、本願明細書に記載のように比較及び決定を実行しても良い。関係が存在するとサーバが決定した場合、認証サーバは、ユーザ装置に認証を通信しても良い。幾つかの実施形態では、これは、基礎データが適切にランダム化されている所望のセキュリティレベルに基づいても良い。ブロック1460で、ユーザ装置は、認証サーバから、近接性暗号文と登録近接性暗号文との間に近接性が存在するか否かを示す認証を受信しても良い。第1のバイオメトリックテンプレートと第2のバイオメトリックテンプレートとの間に概算類似性が存在すると認証サーバが決定した場合、認証サーバから受信される認証又は認証信号は、近接性暗号文と登録近接性暗号文との間に近接性が存在することを示す。
図15は、不均一分散データを処理する例示的な方法1500のフロー図である。方法1500は、図14のブロック1420の代用又は拡張であっても良い。例えば、図14のブロック1410の後、方法1500が実施されても良く、次に図14のブロック1440に戻っても良い。方法1500は、図2の生体認証システム200の中で、図1の動作環境100の中で、又は図13の動作環境1300の中で実装され得るような生体認証システムにおいて実行されても良い。幾つかの実施形態では、方法1500は、図1のユーザ装置102又は図13のユーザ装置1302によりプログラム制御可能に実行されても良い。ユーザ装置102又はユーザ装置1302は、方法1500を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し格納している非一時的コンピュータ可読媒体(例えば、図1又は図13のメモリ122A)を含み又はそれに通信可能に結合されても良い。追加又は代替で、ユーザ装置102又はユーザ装置1302は、方法1500を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ(例えば、図1又は図13のプロセッサ124A)を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。例えば、ブロック1510及び1520は、同時に実行されても良く、又は省略されても良い。
図14のブロック1410の後に、方法1500は、ブロック1510で開始しても良い。ブロック1510で、バイオメトリックデータの特性が決定されても良い。これは、1又は複数のエントロピ、ノイズ閾、及びデータのドメインを決定するステップを有しても良い。幾つかの実施形態では、これは、記憶装置から又は第三機関から読み出されたデータの予め決定された特徴であっても良い。例えば、指紋の分布における多様性は、受信されたバイオメトリックデータが指紋を表すビットストリームである場合、格納され読み出される既知の特徴であっても良い。幾つかの実施形態では、バイオメトリックデータが読み出されると、特徴が決定されても良い。例えば、ノイズ閾は、バイオメトリックデータを集めるために使用されるハードウェア、センサ、又は他のデータキャプチャ技術に部分的に基づいても良い。次に、方法1500はブロック1520に進んでも良い。
ブロック1520において、適切なセキュリティレベルは、セキュリティパラメータλに基づき決定されても良い。適切なセキュリティレベルは、使用されるバイオメトリックデータの感度、認証が要求されるアプリケーション、等に基づいても良い。次に、方法1500はブロック1530に進んでも良い。ブロック1530で、バイオメトリックデータについて適切なランダム化レベルが決定されても良い。上述のように、これは、ブロック1510において決定された特徴のうちの1又は複数、又はブロック1520における決定で用いられたセキュリティパラメータに部分的に基づいても良い。幾つかの実施形態では、適切なランダム化レベルは、セキュリティパラメータに比例しても良い。次に、方法1500はブロック1540に進んでも良い。
ブロック1540において、平文ベクトルとして適切なランダム化レベルにバイオメトリックデータを処理するために、強力な線形抽出器が用いられても良い。これは、数学的に演算X・rのように表すことができる。バイオメトリックデータがランダム化されると、方法1500は、図14のブロック1430へ処理の経路を取ることにより、終了しても良い。
本願明細書に記載した実施形態は、以下に更に詳細に議論するように、種々のコンピュータハードウェア又はソフトウェアモジュールを備えた特定用途又は汎用コンピュータの使用を含み得る。
本願明細書に記載した実施形態は、コンピュータにより実行可能な命令又はデータ構造を伝える又は格納しているコンピュータ可読媒体を用いて実施され得る。このようなコンピュータ可読媒体は、汎用又は特定目的コンピュータによりアクセスできる利用可能な媒体であり得る。例として且つ限定ではなく、このようなコンピュータ可読媒体は、RAM(Random Access Memory)、ROM(Read−Only Memory)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、CD−ROM(Compact Disc Read−Only Memory)又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、フラッシュメモリ装置(例えば、固体メモリ素子)を含む非一時的コンピュータ可読記憶媒体、又はコンピュータにより実行可能な命令若しくはデータ構造の形式で所望のプログラムコード手段を伝える若しくは格納するために用いられ汎用若しくは特定目的コンピュータによりアクセス可能な他の媒体を有し得る。上述の組合せも、コンピュータ可読媒体の範囲に包含され得る。
コンピュータにより実行可能な命令は、例えば、汎用コンピュータ、特定目的コンピュータ(例えば、1又は複数のプロセッサ)又は特定目的処理装置に特定の機能又は機能グループを実行させる命令及びデータを有する。本発明の主題は構造的特徴及び/又は方法論的動作に特有の言葉で記載されたが、本発明の主題は、特許請求の範囲に定められる上述の特定の特徴又は動作に限定されないことが理解されるべきである。むしろ、上述の特定の特徴及び動作は、特許請求の範囲の実施の例示的形態として開示されたものである。
本願明細書で用いられるように、用語「モジュール」又は「コンポーネント」は、モジュール若しくはコンポーネントの動作を実行するよう構成される特定ハードウェア実装、及び/又はコンピューティングシステムの汎用ハードウェア(例えばコンピュータ可読媒体、処理装置、等)に格納され及び/又はそれらにより実行され得るソフトウェアオブジェクト若しくはソフトウェアルーチンを表しても良い。幾つかの実施形態では、本願明細書に記載されたのと異なるコンポーネント、モジュール、エンジン及びサービスは、(例えば、別個のスレッドとして)コンピューティングシステムで実行されるオブジェクト又は処理として実施されても良い。本願明細書に記載のシステム及び方法の幾つかは概して(汎用ハードウェアに格納される及び/又はそれにより実行される)ソフトウェアで実装されるように記載されたが、専用ハードウェアの実装又はソフトウェアと専用ハードウェアの組み合わせの実装も可能であり考えられる。本説明では、「コンピュータエンティティ」は、本願明細書で先に定められたようにコンピューティングシステム、又はコンピューティングシステムで実行されるモジュール若しくはモジュールの組合せであっても良い。
本願明細書に記載された全ての例及び条件文は、教育上の目的で、読者が本開示の原理及び発明者により考案された概念を理解するのを助け、技術を促進させるためであり、これらの特に記載された例及び条件に限定されないものと考えられるべきである。本開示の実施形態が詳細に記載されたが、種々の変更、置換及び修正が本開示の精神及び範囲から逸脱することなく行われうることが理解されるべきである。
以上の実施形態に加えて、更に以下の付記を開示する。
(付記1) セキュリティパラメータに関連するランダム化レベルに処理され且つ関係線形性暗号化方式を用いて暗号化された不均一分散バイオメトリックデータのバイオメトリックテンプレートを表す線形性暗号文を受信するステップと、
線形性関係秘密キーを用いて、前記線形性暗号文と登録線形性暗号文との間の線形性関係を決定するステップと、
前記ランダム化レベルに処理され且つ関係近接性暗号化方式を用いて暗号化された前記バイオメトリックデータの前記バイオメトリックテンプレートを表す近接性暗号文を受信するステップと、
近接性関係秘密キーを用いて、前記近接性暗号文と登録近接性暗号文との間の近接性関係を決定するステップと、
前記セキュリティパラメータ、前記線形性関係、及び前記近接性関係に基づき、ユーザの同一性を認証するステップと、
を有する方法。
(付記2) 前記ランダム化レベルに処理するステップは、線形抽出器により実行される、付記1に記載の方法。
(付記3) 前記バイオメトリックデータは、エントロピ、ノイズ閾、及びドメインの特徴を有する、付記1に記載の方法。
(付記4) 前記ランダム化レベルに処理するステップは、前記特徴のうちの1又は複数に依存する、付記3に記載の方法。
(付記5) 前記バイオメトリックデータは、別のバイオメトリック特徴との相関を有し、前記ランダム化レベルに処理するステップは、前記相関を考慮する、付記1に記載の方法。
(付記6) 前記認証のための前記セキュリティパラメータは、前記ランダム化レベルに比例する、付記1に記載の方法。
(付記7) 第2の線形性暗号文及び第2の近接性暗号文を受信するステップと、
前記第2の線形性暗号文を前記登録線形性暗号文として格納するステップと、
前記第2の近接性暗号文を前記登録近接性暗号文として格納するステップと、
前記線形性関係秘密キー及び前記近接性関係秘密キーを受信するステップと、
を更に有する付記1に記載の方法。
(付記8) 動作を実行させる又は動作の実行を制御させる、プロセッサにより実行可能な符号化されたプログラミングコードを有する非一時的コンピュータ可読媒体であって、前記動作は、
セキュリティパラメータに関連するランダム化レベルに処理され且つ関係線形性暗号化方式を用いて暗号化された不均一分散バイオメトリックデータのバイオメトリックテンプレートを表す線形性暗号文を受信するステップと、
線形性関係秘密キーを用いて、前記線形性暗号文と登録線形性暗号文との間の線形性関係を決定するステップと、
前記ランダム化レベルに処理され且つ関係近接性暗号化方式を用いて暗号化された前記バイオメトリックデータの前記バイオメトリックテンプレートを表す近接性暗号文を受信するステップと、
近接性関係秘密キーを用いて、前記近接性暗号文と登録近接性暗号文との間の近接性関係を決定するステップと、
前記セキュリティパラメータ、前記線形性関係、及び前記近接性関係に基づき、ユーザの同一性を認証するステップと、
を有する、コンピュータ可読媒体。
(付記9) 前記ランダム化レベルに処理するステップは、線形抽出器により実行される、付記8に記載のコンピュータ可読媒体。
(付記10) 前記バイオメトリックデータは、エントロピ、ノイズ閾、及びドメインの特徴を有する、付記8に記載のコンピュータ可読媒体。
(付記11) 前記ランダム化レベルに処理するステップは、前記特徴のうちの1又は複数に依存する、付記10に記載のコンピュータ可読媒体。
(付記12) 前記バイオメトリックデータは、別のバイオメトリック特徴との相関を有し、前記ランダム化レベルに処理するステップは、前記相関を考慮する、付記8に記載のコンピュータ可読媒体。
(付記13) 前記認証のための前記セキュリティパラメータは、前記ランダム化レベルに比例する、付記8に記載のコンピュータ可読媒体。
(付記14) 第2の線形性暗号文及び第2の近接性暗号文を受信するステップと、
前記第2の線形性暗号文を前記登録線形性暗号文として格納するステップと、
前記第2の近接性暗号文を前記登録近接性暗号文として格納するステップと、
前記線形性関係秘密キー及び前記近接性関係秘密キーを受信するステップと、
を更に有する付記8に記載のコンピュータ可読媒体。
(付記15) バイオメトリックデータを受信するステップであって、前記バイオメトリックデータは不均一に分散される、ステップと、
平文ベクトルとしてランダム化レベルに前記バイオメトリックデータを処理するステップであって、前記ランダム化レベルはセキュリティパラメータに関連付けられる、ステップと、
前記平文ベクトルを表す線形性暗号文を生成するために、関係線形性暗号化方式を用いて前記平文ベクトルを暗号化するステップと、
前記平文ベクトルを表す近接性暗号文を生成するために、関係近接性暗号化方式を用いて前記平文ベクトルを暗号化するステップと、
前記線形性暗号文及び前記近接性暗号文を認証サーバに通信するステップと、
前記認証サーバから、関係線形性キーを用いて決定された前記線形性暗号文と登録線形性暗号文との間の線形性関係と、関係近接性キーを用いて決定された前記近接性暗号文及び登録近接性暗号文の間の近接性と、を示す前記セキュリティパラメータに基づく認証信号を受信するステップと、
を有する方法。
(付記16) 前記バイオメトリックデータを処理するステップは、線形抽出器により実行される、付記15に記載の方法。
(付記17) 前記バイオメトリックデータは、エントロピ、ノイズ閾、及びドメインの特徴を有する、付記15に記載の方法。
(付記18) 前記バイオメトリックデータを処理するステップは、前記特徴のうちの1又は複数に依存する、付記17に記載の方法。
(付記19) 前記バイオメトリックデータは、別のバイオメトリック特徴との相関を有し、前記バイオメトリックデータを処理するステップは、前記相関を考慮する、付記15に記載の方法。
(付記20) 前記セキュリティパラメータは、前記ランダム化レベルに比例する、付記15に記載の方法。