添付図面に示された環境及び方法は全て、本願明細書に記載の少なくとも1つの実施形態に従って構成されている。
生体認証の課題は、認証の基礎として使用されるバイオメトリック特徴をユーザが変更できないことであり得る。例えば、ユーザは、ユーザの指紋又はユーザの虹彩パターンのようなユーザの1又は複数の固有の特徴を表すバイオメトリックデータを含むバイオメトリックテンプレートを登録しても良い。バイオメトリックテンプレートが危険に晒される場合、ユーザは、バイオメトリックテンプレートにより表される固有の特徴を変更することができない。したがって、一旦、危険に晒されると、別のバイオメトリックテンプレートが登録されても良く、又は、別のバイオメトリック特徴のバイオメトリックテンプレートが登録されても良い。少なくともこの理由から、生体認証システムは、強力なプライバシ保証の利益を享受し得る。現実のバイオメトリックデータでは、バイオメトリックデータが、著しく不均一であり得る。
幾つかの生体認証システムでは、セキュアな生体認証システムを提供するために種々のアプローチが実施されてきた。例えば、幾つかの生体認証システムは、「特徴変換アプローチ」、「バイオメトリック暗号システムアプローチ」、及び/又は「同形暗号化アプローチ」を実装する。しかしながら、これらのアプローチの各々は、バイオメトリックテンプレート、クライアント固有キー、公開キー等のような各々が危険に晒され得る情報の通信を少なくとも部分的な理由として、限られたプライバシ及びセキュリティを提供する。
したがって、本願明細書で議論する幾つかの実施形態は、プライバシ保護生体認証に関連する。プライバシ保護生体認証は、関係暗号化に基づいても良い。関係暗号化は、認証側に平文を復元させずに又は本物の暗号文と特定の関係を有する不正暗号文を生成させずに、認証側に暗号文間の関係を発見させる。例えば、例示的な実施形態は、生体認証の方法を含む。この方法は、登録入力を受信することを含んでも良い。登録入力は、ユーザの第1のバイオメトリックテンプレートを含んでも良い。第1のバイオメトリックテンプレートは、ユーザのバイオメトリック特徴の固有の特徴を表していても良い。この方法は、関係暗号化方式に従って、第1の線形(linearity)暗号文及び第1の近似(proximity)暗号文を生成することを含んでも良い。この方法は、第1の線形暗号文及び第1の近似暗号文を認証サーバに通信することを含んでも良い。この方法は、チャレンジ入力を受信することを含んでも良い。チャレンジ入力は、第2のバイオメトリックテンプレートを含んでも良い。第2のバイオメトリックテンプレートは、ユーザのバイオメトリック特徴の1又は複数の固有の特徴を表していても良い。この方法は、関係暗号化方式に従って、第2の線形暗号文及び第2の近似暗号文を生成することを含んでも良い。この方法は、第2の線形暗号文及び第2の近似暗号文を認証サーバに通信することを含んでも良い。認証サーバは、第1の線形暗号文と第2の線形暗号文との間の線形関係を発見し、第1の近似暗号文と第2の近似暗号文との間の近似を検出しても良い。この方法は、認証サーバから、認証判断を示す信号を受信することを含んでも良い。この認証判断は、線形関係及び/又は近似の存在又は不存在に基づいても良い。
幾つかの実施形態では、基礎データが、線形暗号文又は近似暗号文を生成する前に、先ず処理されても良い。例えば、基礎データは、基礎にある平文の中のランダム化レベルを提供し得る線形抽出器に通されても良い。
本開示の実施形態を、添付の図面を参照して以下に説明する。
図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に提供され又は第1のエンティティ152により生成されても良い。関係キーは、暗号文間の関係の決定を可能にし得るが、暗号文の復号化又は平文ベクトル142の復元を許さない。さらに、関係キーは、特定の暗号文と特定の関係を有する暗号文の構築を許さない。
幾つかの実施形態では、関係暗号化が、アルゴリズムのタプルを含む関係について、関係暗号化方式に従って定められても良い。それらのアルゴリズムは、キー生成アルゴリズム、第1の暗号化アルゴリズム、第1の復号化アルゴリズム、第1の暗号化アルゴリズム、第2の復号化アルゴリズム及び検証アルゴリズムを含んでも良い。その関係は、3つの集合の部分集合として定められても良い。さらに、これらの関係及びアルゴリズムは、1又は複数の正確性条件を満たしても良い。例えば、この関係は、以下の例示的な正確性条件を満たしても良い。
R⊆X×Y×Z
(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)が、「選択された暗号文攻撃下での識別不可能性(indistinguishability under chosen ciphertext attack)」(例えばIND−CCA1又はIND−CCA2)又は任意の他の適切なセキュリティメトリックのような別の計算セキュリティメトリックに従ってセキュアであっても良い。
さらに、幾つかの実施形態では、関係暗号化方式が、関係線形暗号化方式を含んでも良い。関係線形暗号化方式は、以下の例示的な線形関係式に従って関係を定めても良い。
(外1)
この線形関係式において、R、x、y及びzは上述の通りである。演算子∈は、メンバーシップ演算子を表す。演算子|は、such that演算子を表す。演算子∧は、論理結合演算子を表す。パラメータFは体を表す。上付き添字nは通常、体の次元を表す。体の次元は、本願明細書の別の場所で議論するようなキーのうちの1又は複数のキーの長さを含んでも良い。下付き添字pは、体の基本数(base−number)を表す。例えば、
(外2)
では、体が次元10及び基本数3を含む。基本数3は、体の各々の要素が0、1又は2であることを示す。
さらに、幾つかの実施形態では、関係暗号化方式が、以下の例示的な近似式に従って関係を定める関係近似暗号化方式を含んでも良い。
(外3)
この近似式において、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は、概して、関係暗号化に関連する情報及び/又はデータ(例えば、暗号文、キー、平文ベクトル142A等)の生成、及びネットワーク107を介した通信を可能にする任意のコンピューティング装置を含んでも良い。ユーザ装置102の幾つかの例は、携帯電話機、スキャニング装置、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、セットトップボックス又はコネクテッドデバイス(例えば、スマートウォッチ、スマート眼鏡、スマート歩数計又は任意の他のコネクテッドデバイス)を含んでも良い。認証サーバ140の幾つかの例は、ハードウェアサーバ、又はサーバとして機能するように構成された別のプロセッサに基づくコンピューティング装置を含んでも良い。
ネットワーク107は有線又は無線であっても良い。ネットワーク107は、スター構成、トークンリング構成又は他の構成を含む多数の構成を含んでも良い。さらに、ネットワーク107は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)(例えばインターネット)、及び/又は複数の装置が通信できる相互接続された他のデータ経路を含んでも良い。幾つかの例では、ネットワーク107が、ピアツーピアネットワークを含んでも良い。ネットワーク107はさらに、種々の異なる通信プロトコルでデータを送信する通信ネットワークに結合され、又はそのような通信ネットワークの一部を含んでも良い。幾つかの例では、ネットワーク107が、BLUETOOTH(登録商標)通信ネットワーク、又はショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキストトランスファプロトコル(HTTP)、直接データ接続、ワイヤレスアプリケーションプロトコル(WAP)、電子メール等を介することを含むデータを送信及び受信するセルラ通信ネットワークを含む。
ユーザ装置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)、マイクロプロセッサ、汎用コントローラ、又は何らかの他のプロセッサアレイを含んでも良い。プロセッサ124は、他のコンポーネント(例えば、108、110、122及び126)との通信のためにバス120に結合されても良い。プロセッサ124は、概して、データ信号を処理する。プロセッサ124は、複雑命令セットコンピュータ(CISC)アーキテクチャ、縮小命令セットコンピュータ(RISC)アーキテクチャ、又は命令セットの組合せを実施するアーキテクチャを含む、種々のコンピューティングアーキテクチャを含んでも良い。図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へデータを送信し、ユーザ装置102及び/又は認証サーバ140のうちの1又は複数からデータを受信するように構成されても良い。通信ユニット126はバス120に結合されても良い。幾つかの実施形態では、通信ユニット126が、ネットワーク107への又は別の通信チャネルへの直接物理接続のためのポートを含む。例えば、通信ユニット126は、USB、SD、CAT−5、又は図1の動作環境100のコンポーネントとの有線通信のための同様のポートを含んでも良い。幾つかの実施形態では、通信ユニット126が、IEEE802.11、IEEE802.16、BLUETOOTH(登録商標)又は別の適切な無線通信方法を含む1又は複数の無線通信方法を使用して通信チャネルによりデータを交換する無線送受信装置を含む。
幾つかの実施形態では、通信ユニット126が、SMS、MMS、HTTP、直接データ接続、WAP、電子メール又は別の適切な種類の電子通信を含むセルラ通信ネットワークを介してデータを送信及び受信するセルラ通信送受信装置を含む。幾つかの実施形態では、通信ユニット126が、有線ポート及び無線送受信装置を含む。通信ユニット126はさらに、トランスミッションコントロールプロトコル/インターネットプロトコル(TCP/IP)、HTTP、HTTPセキュア(HTTPS)及びシンプルメールトランスファプロトコル(SMTP)等を含む標準ネットワークプロトコルを使用したファイル及び/又は媒体オブジェクトの分配のために、ネットワーク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に格納され又は少なくとも一時的にメモリ122にロードされても良く、プロセッサ124のうちの1又は複数によりアクセス可能及び実行可能であっても良い。関係モジュールのうちの1又は複数は、バス120のうちの1又は複数を介してプロセッサ124のうちの1又は複数と協力及び通信するように適合されても良い。
概して関係モジュールを参照すると、通信モジュール116及び/又はサーバ通信モジュール134は、それぞれ、enc/decモジュール110又は関係認証モジュール108とユーザ装置102又は認証サーバ140の他のコンポーネント(例えば122、124及び126)との間の通信を扱うように構成されても良い。通信モジュール116及び/又はサーバ通信モジュール134は、通信ユニット126を介して、ユーザ装置102又は認証サーバ140へデータを送信し、ユーザ装置102又は認証サーバ140からデータを受信するように構成されても良い。幾つかの例では、通信モジュール116及び/又はサーバ通信モジュール134が、ユーザ装置102又は認証サーバ140からのデータを通信ユニット126を介して受信及び/又は転送するために、他の関係モジュールと協力しても良い。
線形暗号化/復号化モジュール112は、線形暗号文を構築するために平文ベクトル142を暗号化することに関連する1若しくは複数の動作、及び/又は線形暗号文を復号化することに関連する1又は複数の動作を実行するように構成されても良い。線形認証モジュール132は、線形暗号文に関連する1又は複数の動作を実行するように構成されても良い。例えば、線形認証モジュール132は、線形暗号文のうちの2以上の線形暗号文間の線形関係を発見するように構成されても良い。
近似暗号化/復号化モジュール114は、近似暗号文を構築するために平文ベクトル142を暗号化することに関連する1若しくは複数の動作、及び/又は近似暗号文を復号化することに関連する1又は複数の動作を実行するように構成されても良い。近似認証モジュール128は、近似暗号文に関連する1又は複数の動作を実行するように構成されても良い。例えば、近似認証モジュール128は、近似暗号文のうちの2以上の近似暗号文間の近似を検出するように構成されても良い。
設定モジュール144は、1若しくは複数のキー(例えば、公開キー、秘密キー、関係秘密キー)及び/又は1若しくは複数のアルゴリズム(例えば、暗号化アルゴリズム、復号化アルゴリズム及び検証アルゴリズム)を生成するように構成されても良い。設定モジュール144は、次に、キー及びアルゴリズムのうちの1又は複数を、通信モジュール116及びサーバ通信モジュール134により関係認証モジュール108に通信し、又は線形暗号化/復号化モジュール112及び近似暗号化/復号化モジュール114に通信しても良い。
以下のセクションでは、関係線形暗号化方式に続き、関係近似暗号化方式が説明される。関係線形暗号化方式は、ビットベクトルを参照して、次にp−aryベクトルを参照して説明される。説明の各々において、設定モジュール144はキーを生成する。これは最初に説明される。それらのキーを使用して、線形暗号化/復号化モジュール112又は近似暗号化/復号化モジュール114のうちの一方が暗号化を実行する。これは、次に説明される。暗号文(例えば、線形暗号文又は近似暗号文)は、次に、線形関係が発見され又は近似が検出される、線形認証モジュール132と近似認証モジュール128のうちの一方に通信されても良い。最後に、線形暗号化/復号化モジュール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つの双線形群(three bilinear groups of a prime order)を生成しても良い。素数位数は、セキュリティパラメータにおける指数であっても良い。設定モジュール144は、3つの双線形群のうちの第1の双線形群の第1の生成元をサンプリングし、3つの双線形群のうちの第2の双線形群の第2の生成元をサンプリングしても良い。
設定モジュール144は、整数の集合から特定の数の要素をランダムにサンプリングすることにより、第1の線形秘密キーを生成しても良い。この整数の集合は、0から素数位数−1の値までの整数を含んでも良い。設定モジュール144は、整数の集合から特定の数の要素をランダムにサンプリングすることにより、第2の線形秘密キーを生成しても良い。
設定モジュール144は、第1の線形公開キーを定めても良い。第1の線形公開キーは、第1の生成元である要素を含んでも良い。第1の線形公開キーは、第1の線形秘密キーの対応する要素により冪乗された第1の生成元を含む1又は複数の他の要素をさらに含んでも良い。幾つかの実施形態では、第1の生成元である要素が、第1の線形公開キーの第1の要素であっても良い。これは、第1の線形公開キーの要素と第1の線形秘密キーの要素との間の対応において考慮されなくても良い。例えば、これらの実施形態及びその他の実施形態では、第1の線形公開キーの(例えば第1の要素を考慮する)「第6の」要素が、第1の線形秘密キーの第5の要素により冪乗された第1の生成元を含んでも良い。本願を通じて、要素間の対応について同様の規定が実施されても良い。
設定モジュール144は、第2の線形公開キーを定めても良い。第2の線形公開キーは、第2の生成元である要素を含んでも良い。第2の線形公開キーは、第2の線形秘密キーの対応する要素により冪乗された第2の生成元を含む1又は複数の他の要素をさらに含んでも良い。幾つかの実施形態では、第2の生成元である要素が、第2の線形公開キーの第1の要素であっても良い。これは、第2の線形公開キーの要素と第2の線形秘密キーの要素との間の対応において考慮されない。
設定モジュール144は、線形関係秘密キーを定めても良い。線形関係秘密キーの各々の要素は、第2の線形秘密キーの対応する要素と第1の線形秘密キーの対応する要素との和を含んでも良い。例えば、線形関係秘密キーの第5の要素は、第1の線形秘密キーの第5の要素と第2の線形秘密キーの第5の要素との和を含んでも良い。
幾つかの実施形態では、線形キーの生成が、以下の例示的な線形ビットベクトルキー式に従っても良い。
λが与えられると、qのG
1、G
2、G
Tを生成する。
(外4)
この線形ビットベクトルキー式において、←及びλは、概して上述の通りである。さらに、この線形ビットベクトルキー式において、pkxlinは第1の線形公開キーを表し、skxlinは第1の線形秘密キーを表し、pkylinは第2の線形公開キーを表し、skylinは第2の線形秘密キーを表し、skRlinは関係線形キーを表す。さらに、パラメータpkxlin、skxlin、pkylin、skylin及びskRlinは、上で議論したキー生成アルゴリズム(KeyGen)の出力の少なくとも1つの線形部分を表しても良い。
パラメータG
1は第1の双線形群を表し、パラメータG
2は第2の双線形群を表し、パラメータG
Tは第3の双線形群を表す。パラメータqは素数位数を表す。パラメータg
0は、第1の生成元及び第1の線形公開キーの要素を表す。パラメータh
0は、第2の生成元及び第2の線形公開キーの要素を表す。パラメータg
iは、第1の線形公開キーの他の要素を表す。パラメータh
iは、第2の線形公開キーの他の要素を表す。パラメータnは、特定の数(例えば要素の特定の数)を表す。パラメータiは、インデックス変数を表す。この線形ビットベクトルキー式では、インデックス変数が、1からこの特定の数までの範囲を含む。パラメータZ
qは、0から素数位数−1までの整数を含む整数の集合を表す。パラメータa
iは、第1の線形秘密キーの要素を表す。第1の線形秘密キーの要素は、整数の集合のランダム値であっても良い。パラメータb
iは、第2の線形秘密キーの要素を表す。第2の線形秘密キーの要素は、整数の集合のランダム値であっても良い。演算子〈〉は略記法を表す。例えば、
(外5)
線形暗号化/復号化モジュール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の平文ベクトル142Aの対応する要素により冪乗された−1に乱数を乗じたものを含んでも良い。幾つかの実施形態では、第1の線形暗号文の第1の要素が、対応において考慮されない。
第2の線形暗号文は、乱数により冪乗された第2の生成元である第1の要素を含んでも良い。第2の線形暗号文は、線形暗号化冪指数により冪乗された第2の線形公開キーの対応する要素を含む1又は複数の要素をさらに含んでも良い。第2の線形暗号文の線形暗号化冪指数は、第2の平文ベクトル142Bの対応する要素により冪乗された−1に乱数を乗じたものを含んでも良い。幾つかの実施形態では、第2の線形暗号文の第1の要素が、対応において考慮されない。
幾つかの実施形態では、線形暗号化/復号化モジュール112が、以下の例示的な線形ビットベクトル暗号化式に従って、平文ベクトル142を暗号化しても良い。
(外6)
この線形ビットベクトル暗号化式において、〈〉、cx、cy、g
0、h
0、g
i、h
i、i及びnは、上述の通りである。さらに、この線形ビットベクトル暗号化式では、パラメータcxが第1の線形暗号文を表し、パラメータcyが第2の線形暗号文を表す。パラメータm1は、第1の平文ベクトル142Aを表す。パラメータm1
iは、第1の平文ベクトル142Aの要素を表す。パラメータm2は、第2の平文ベクトル142Bを表す。パラメータm2
iは、第2の平文ベクトル142Bの要素を表す。パラメータFは第1の体を表す。第1の体の隣にある下付き添字2は、第1の体の基本数を表す。第1の体の隣にある上付き添字nは、第1の体の次元を表す。
この線形ビットベクトル暗号化式は、上で議論した第1の暗号化アルゴリズム(EncX)及び第2の暗号化アルゴリズム(EncY)を定めても良い。例えば、第1の平文ベクトル142A及び第1の線形公開キーが与えられた場合に、第1の暗号化アルゴリズムが乱数をサンプリングし、第1の線形暗号文を
(外7)
として構築するものとして、第1の暗号化アルゴリズムが定められても良い。同様に、第1の平文ベクトル142A及び第2の線形公開キーが与えられた場合に、第2の暗号化アルゴリズムが乱数をサンプリングし、第2の線形暗号文を
(外8)
として構築するものとして、第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の線形暗号文のそれぞれの要素と第2の線形暗号文の対応する要素とのペアリング関数を、特定のベクトルの対応する要素により冪乗された−1により冪乗したものの積として、第2の値を計算しても良い。
線形認証モジュール132は、第1の値が第2の値に等しいか否かを判定しても良い。第1の値が第2の値に等しいことに応答して、線形認証モジュール132は、第1の線形暗号文が、第2の線形暗号文及び定められたベクトルと線形関係にあると結論づけても良い。
幾つかの実施形態では、線形認証モジュール132が、以下の例示的な線形ビットベクトル検証式に従って、第1の線形暗号文と第2の線形暗号文との間の線形関係を発見する。
(外9)
この線形ビットベクトル検証式において、〈〉、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)を定めても良い。例えば、この検証アルゴリズムは、暗号文、特定のベクトル及び関係線形キーが与えられた場合に、等式
(外10)
を検査するものとして定められても良い。
さらに、幾つかの実施形態では、線形暗号化/復号化モジュール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が、以下の例示的な線形ビットベクトル復号化式に従って、線形暗号文を復号化しても良い。
(外11)
この線形ビットベクトル復号化式において、cx
i、cy
i、cx
0、cy
0、a
i、b
i、m1
i及びm2
iは上述の通りである。パラメータ⊥はエラーを表す。
この線形ビットベクトル復号化式は、上で議論した第1の復号化アルゴリズム(DecX)及び第2の復号化アルゴリズム(DecY)を定めても良い。例えば、第1の線形暗号文及び第1の線形秘密キーが与えられた場合に、第1の復号化アルゴリズムが、次式に従って第1の平文ベクトル142Aをビットごとに構築するものとして、第1の復号化アルゴリズムが定められても良い。
(外12)
同様に、第2の線形暗号文及び第2の線形秘密キーが与えられた場合に、第2の復号化アルゴリズムが、次式に従って第2の平文ベクトル142Bをビットごとに構築するものとして、第2の復号化アルゴリズムが定められても良い。
(外13)
p−aryベクトル関係線形暗号化方式
p−aryベクトルが実装される(例えば平文ベクトル142及び/又は暗号文がp−aryベクトルである)実施形態では、線形キーが、セキュリティパラメータに対して生成されても良い。キーを生成するために、設定モジュール144は、素数位数の3つの双線形群を生成しても良い。素数位数は、セキュリティパラメータにおける指数であっても良く、1を基本数(p)で割った余りに等しくても良い。したがって、これらの実施形態では、整数の集合の中に、0が除かれた部分群が存在しても良い。この部分群は、基本数の位数を有しても良い。設定モジュール144は、この部分群の任意の生成元を選択しても良い。
設定モジュール144は、第1の生成元及び第2の生成元をサンプリングしても良い。第1の生成元は、第1の双線形群からサンプリングされても良く、第2の生成元は、第2の双線形群からサンプリングされても良い。第1の線形秘密キー及び第2の線形秘密キーは、ビットベクトルを実装する実施形態に関して上で述べたように生成されても良い。
設定モジュール144は、第1の線形公開キーを定めても良い。第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(mod p)に等しいqのG
1、G
2、G
Tを生成する
(外14)
この線形p−aryベクトルキー式において、〈〉、g
0、h
0、g
i、h
i、a
i、b
i、i、n、Z、F、skR、r、G
1、G
2、G
T、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を暗号化しても良い。
(外15)
この線形p−aryベクトル暗号化式において、〈〉、m1、m1
i、m2、m2
i、cx、cy、g
0、h
0、g
i、h
i、i及びnは、上述の通りである。パラメータFは第2の体を表す。第2の体の隣にある下付き添字pは、第2の体の基本数を表す。第2の体の隣にある上付き添字nは、第2の体の次元を表す。第2の体の次元は、特定の数であっても良い。
この線形p−aryベクトル暗号化式は、上で議論した第1の暗号化アルゴリズム(EncX)及び第2の暗号化アルゴリズム(EncY)を定めても良い。例えば、第1の平文ベクトル142A及び第1の線形公開キーが与えられた場合に、第1の暗号化アルゴリズムが乱数をサンプリングし、第1の線形暗号文を
(外16)
として構築するものとして、第1の暗号化アルゴリズムが定められても良い。同様に、第1の平文ベクトル142A及び第2の線形公開キーが与えられた場合に、第2の暗号化アルゴリズムが乱数をサンプリングし、第2の線形暗号文を
(外17)
として構築するものとして、第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の線形暗号文のそれぞれの要素と第2の線形暗号文の対応する要素とのペアリング関数を、−1と特定のベクトルの対応する要素との積により冪乗された任意の生成元により冪乗したものの積として、第2の値を計算しても良い。
線形認証モジュール132は、第1の値が第2の値に等しいか否かを判定しても良い。第1の値が第2の値と等しいことに応答して、線形認証モジュール132は、第1の線形暗号文が第2の線形暗号文に対して線形であると結論づけても良い。
幾つかの実施形態では、線形認証モジュール132が、以下の例示的な線形p−aryベクトル検証式に従って、第1の線形暗号文と第2の線形暗号文との間の線形関係を発見する。
(外18)
この線形p−aryベクトル検証式において、パラメータ及び演算子は上述の通りである。
この線形p−aryベクトル検証式は、上で議論した検証アルゴリズム(Verify)を定めても良い。例えば、この検証アルゴリズムは、暗号文、特定のベクトル及び関係線形キーが与えられた場合に、等式
(外19)
を検査するものとして定められても良い。
さらに、幾つかの実施形態では、線形暗号化/復号化モジュール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ベクトル復号化式に従って、線形暗号文を復号化しても良い。
(外20)
この線形p−aryベクトル復号化式において、cx
i、cy
i、cx
0、cy
0、a
i、b
i、m1
i及びm2
iは上述の通りである。パラメータ⊥はエラーを表す。パラメータμは、特定の要素値を表す。
この線形p−aryベクトル復号化式は、上で議論した第1の復号化アルゴリズム(DecX)及び第2の復号化アルゴリズム(DecY)を定めても良い。例えば、第1の線形暗号文及び第1の線形秘密キーが与えられた場合に、第1の復号化アルゴリズムが、次式に従って第1の平文ベクトル142Aをビットごとに構築するものとして、第1の復号化アルゴリズムが定められても良い。
(外21)
同様に、第2の線形暗号文及び第2の線形秘密キーが与えられた場合に、第2の復号化アルゴリズムが、次式に従って第2の平文ベクトル142Bをビットごとに構築するものとして、第2の復号化アルゴリズムが定められても良い。
(外22)
関係近似暗号化方式
関係近似暗号化方式は、近似暗号文間の近さを決定するために使用されても良い。幾つかの実施形態では、近似が、ハミング距離に関して提供されても良い。関係近似暗号化方式では、設定モジュール144がキーを生成する。それらのキーを使用して、近似暗号化/復号化モジュール114が、平文ベクトル142の暗号化及び/又は復号化を実行する。近似暗号文は、次に、近似認証モジュール128に通信されても良い。近似認証モジュール128では、近似暗号文間の近似が検出されても良い。
例えば、設定モジュール144は、選択された平文攻撃(CPA)キー生成アルゴリズム及び線形キー生成アルゴリズムの出力を生成しても良い。例えば、設定モジュール144は、本願明細書の別の場所に記載されているように、線形キーを起動しても良い。CPAキー生成アルゴリズムは、CPA公開キー及びCPA秘密キーを出力しても良い。線形キー生成アルゴリズムは、上で議論したpkxlin、skxlin、pkylin、skylin及びskRlinを出力しても良い。
さらに、設定モジュール144は、誤り訂正符号(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が、以下の例示的な近似キー生成式に従って、近似キーを生成しても良い。
(外23)
この近似キー生成式において、pkxlin、pkylin、skxlin、skylin、skRlin、←、Z、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は線形抽出器を表す。特定の反復が上に記載されているが、任意の線形抽出器が使用されても良い。
第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とENCODEとの和を入力として受け取るCPA暗号化アルゴリズムを含んでも良い。ENCODEは、近似乱数を入力として受信する。第1の近似暗号文の第2の部分は、第1の線形公開キー及び近似乱数を受信する第1の線形暗号化アルゴリズムを含んでも良い。
第2の近似暗号文の第1の部分は、CPA公開キー、及び第2の平文ベクトル142BとENCODEとの和を入力として受け取るCPA暗号化アルゴリズムを含んでも良い。ENCODEは、近似乱数を入力として受信する。第2の近似暗号文の第2の部分は、第2の線形公開キー及び近似乱数を入力として受信する第2の線形暗号化アルゴリズムを含んでも良い。
幾つかの実施形態では、近似暗号文が、以下の例示的な近似暗号化式に従って生成されても良い。
cxp1:=EncCPA(pkcpa,m1+ENCODE(r))
cxp2:=EncXLinerar(pkxlin,X・r)
cxp:=(cxp1,cxp2)
cyp1:=EncCPA(pkcpa,m2+ENCODE(r))
cyp2:=EncYLinerar(pkylin,X・r)
cyp:=(cyp1,cyp2)
この近似暗号化式において、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の近似暗号文のランダム性の和は、CPA復号化アルゴリズムを入力として受け取るDECODEとして定められても良い。このCPA復号化アルゴリズムはさらに、CPA秘密キー、及び第1の近似暗号文の第1の部分とCPA復号化アルゴリズムとの和を受信し、このCPA復号化アルゴリズムは、CPA秘密キー、及び第2の近似暗号文の第1の部分を入力として受信する。
DECODEがエラーを返した場合、近似認証モジュール128は拒否を返しても良い。さらに、近似認証モジュール128は、線形検証アルゴリズムを出力しても良い。線形検証アルゴリズムは、線形関係秘密キー、第2の近似暗号文の第1の部分、第2の近似暗号文の第2の部分、及びランダム性の和を入力として受信する。
したがって、近似検証アルゴリズムは、第1の近似暗号文、第2の近似暗号文、及び近似秘密キーを受信するよう定められても良い。近似検証アルゴリズムは、ランダム性の和を復元し、拒否又は線形検証アルゴリズムを出力しても良い。線形検証アルゴリズムは、線形関係秘密キー、第2の近似暗号文の第1の部分、第2の近似暗号文の第2の部分、及びランダム性の和を入力として受信する。例えば、近似認証モジュール128は、以下の例示的な近似検証アルゴリズムに従って、1又は複数の動作を実行しても良い。
(外24)
この近似検証アルゴリズムにおいて、skcpa、cx1、cx2、cy1、cy2、⊥、skRlin、X及びDECODEは、上述の通りである。パラメータOutputは、近似認証モジュール128の出力を示す。パラメータZ
rsは、ランダム性の和を表す。パラメータDecCPAは、CPA復号化アルゴリズムを表す。VerifyLinearは、線形検証アルゴリズムを表す。
本願明細書に記載の関係近似暗号化方式は、以下の条件が真である場合にセキュアであり得る。
(外25)
これらの条件において、KeyGenCPA、EncCPA、DecCPA、KeyGenLinear、EncXLinear、DecXLinear、EncYLinear、DecYLinear、VerifyLinear及びFは、上述の通りである。ECCはECCを表す。パラメータnは長さを表し、kはランクを表し、2δは距離を表す。
図2は、本願明細書に記載の少なくとも1つの実施形態に従って構成された生体認証システム(バイオメトリックシステム)200のブロック図を示す。バイオメトリックシステム200は、認証サービスが提供される図1の動作環境100の例に含まれても良く、又は図1の動作環境100の例を含んでも良い。バイオメトリックシステム200では、認証サーバ140によりユーザ206の認証が実行されても良い。バイオメトリックシステム200では、ユーザ206の同一性を認証するために、図1を参照して議論した関係暗号化が使用されても良い。
この認証サービスは、登録処理及び認証処理を含んでも良い。登録処理は、認証処理において使用される情報及びデータをユーザ206から得ることを含んでも良い。認証処理は、時間的に後に(例えば登録処理に続いて)実行されても良い。認証処理では、図1を参照して議論した関係暗号化演算のうちの1又は複数を使用して、ユーザ206の同一性が認証されても良い。概して、ユーザ206の同一性は、本願明細書に記載のように、第1の線形暗号文と第2の線形暗号文との間の線形を発見すること、及び第1の近似暗号文と第2の近似暗号文との間の近似を検出することにより、認証されても良い。第1の線形暗号文及び第1の近似暗号文は、第1のバイオメトリックテンプレートの形式で、ユーザ206により提供されても良い。第1のバイオメトリックテンプレートは、図1の第1の平文ベクトル142A及び/又は図2の登録入力232に含まれていても良い。
ユーザ206及び/又は偽者222(後に論じる)は、1又は複数のバイオメトリック特徴を有する個人を含んでも良い。バイオメトリック特徴は、1又は複数の固有の特徴を含んでも良い。例えば、バイオメトリック特徴は、尾根部及び/又は谷部のパターンを含むユーザ206の指紋を含んでも良い。幾つかの実施形態では、ユーザ206が、ユーザ装置102に関連付けられていても良い。例えば、ユーザ206は、ユーザ装置102を所有し、又はユーザ装置102を定期的に操作しても良い。幾つかの実施形態では、ユーザ206が、ユーザ装置102に具体的に関連付けられていなくても良い。例えば、ユーザ装置102は、ユーザ206を含む複数のユーザにより公的にアクセス可能であっても良い。幾つかの実施形態では、偽者222が、バイオメトリック特徴を表し得る入力を供給するエンティティを含んでも良い。
幾つかの実施形態では、ユーザ装置102がセンサ298を含んでも良い。センサ298は、ハードウェア装置、例えばユーザ206を認証するために使用されるバイオメトリック特徴を測定し又は他の方法で捕捉するように構成されたハードウェア装置、を含んでも良い。ユーザ206のバイオメトリック特徴が測定され又は他の方法で捕捉されたときに、ユーザ装置102は、バイオメトリックテンプレートを生成しても良い。バイオメトリックテンプレートは、バイオメトリック特徴を表しても良く、ユーザ206のバイオメトリック特徴の固有の特徴のうちの少なくとも幾つかの特徴を含んでも良い。バイオメトリックテンプレートは、例えば、バイオメトリック特徴のグラフィカル表現及び/又はアルゴリズム表現を含んでも良い。
センサ298の幾つかの例は、指紋スキャナ、虹彩の画像を捕捉するように構成されたカメラ、DNAを測定するように構成された装置、心拍数を捕捉するように構成された心拍数モニタ、骨格筋により生成された電気活性を捕捉するように構成されたウェアラブル筋電図検査センサ、又はバイオメトリック特徴を測定し若しくは他の方法で捕捉するように構成された他の任意のセンサ298を含んでも良い。
図示のバイオメトリックシステム200では、センサ298が、ユーザ装置102に含まれている。他の実施形態では、センサ298が、ユーザ装置102又はユーザ装置102に含まれるプロセッサに通信可能に結合されても良い。例えば、センサ298は、図1のネットワーク107などのネットワークを介してユーザ装置102に信号を通信するように構成されても良い。図2にはセンサ298が1つだけ示されているが、幾つかの実施形態では、ユーザ装置102が、1又は複数のセンサ298を含んでも良い。
enc/decモジュール110は、第1の線形暗号文及び第1の近似暗号文を、登録入力232から生成しても良い。enc/decモジュール110は、次に、第1の線形暗号文及び第1の近似暗号文を、登録データ234として、認証サーバ140に通信しても良い。
関係認証モジュール108は、第1の線形暗号文及び第1の近似暗号文を、登録暗号文130として格納しても良い。登録暗号文130は、ユーザ206に関連付けられていても良い。例えば、ユーザ206は、ユーザ206に関連付けられたユーザ識別子を有しても良い。幾つかの実施形態では、登録暗号文130がメモリ122Bに格納されても良い。
enc/decモジュール110は、次に、第1のチャレンジ入力236A又は第2のチャレンジ入力236B(概して、チャレンジ入力236)を受信しても良い。第1のチャレンジ入力236A及び第2のチャレンジ入力236Bは、ユーザ206又は偽者222による、ユーザ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、及び/又はenc/decモジュール110に属する1若しくは複数の機能が、認証サーバ140にあるモジュールにより実行されても良い。
関係認証モジュール108及び/又はenc/decモジュール110は、生体認証のためのコード及びルーチンを含んでも良い。幾つかの実施形態では、関係認証モジュール108及び/又はenc/decモジュール110が、例えば、ユーザ装置102又は別のコンピューティング装置に格納されたシンクライアントアプリケーションとして部分的に動作しても良く、認証サーバ140に格納されたコンポーネントの一部として動作しても良い。幾つかの実施形態では、関係認証モジュール108及び/又はenc/decモジュール110が、フィールドプログラマブルゲートアレイ(FPGA)又は特定用途向け集積回路(ASIC)を含むハードウェアを使用して実装されても良い。他の幾つかの例では、関係認証モジュール108及び/又はenc/decモジュール110が、ハードウェアとソフトウェアの組合せを使用して実装されても良い。
図3は、本願明細書に記載の少なくとも1つの実施形態に従って構成された、生体認証の例示的な方法300のフロー図である。方法300は、図2のバイオメトリックシステム200内で実装され得る生体認証システム又は図1の動作環境100内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法300が、本願明細書に記載された認証サーバ140によってプログラム可能に実行されても良い。認証サーバ140は、非一時的コンピュータ可読媒体(例えば図1のメモリ122B)を含んでいても良く、又は非一時的コンピュータ可読媒体(例えば図1のメモリ122B)に通信可能に結合されても良い。この非一時的コンピュータ可読媒体(例えば図1のメモリ122B)は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法300を実行し若しくは方法300の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、認証サーバ140は、方法300を実行するため又は方法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は、非一時的コンピュータ可読媒体(例えば図1のメモリ122A)を含んでいても良く、又は非一時的コンピュータ可読媒体(例えば図1のメモリ122A)に通信可能に結合されても良い。この非一時的コンピュータ可読媒体(例えば図1のメモリ122A)は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法400を実行し若しくは方法400の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置102は、方法400を実行するため又は方法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は、非一時的コンピュータ可読媒体(例えば図1のメモリ122B)を含んでいても良く、又は非一時的コンピュータ可読媒体(例えば図1のメモリ122B)に通信可能に結合されても良い。この非一時的コンピュータ可読媒体(例えば図1のメモリ122B)は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法500を実行し若しくは方法500の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、認証サーバ140は、方法500を実行するため又は方法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の線形暗号文のそれぞれの要素と第2の線形暗号文の対応する要素とのペアリング関数を、特定のベクトルの対応する要素により冪乗された−1により冪乗したものの積であっても良い。幾つかの実施形態では、この第2の値が、第1の線形暗号文のそれぞれの要素と第2の線形暗号文の対応する要素とのペアリング関数を、−1と特定のベクトルの対応する要素との積により冪乗された任意の生成元により冪乗したものの積として、計算されても良い。この任意の生成元は、0が除かれた整数の集合の部分群から選択されても良い。
ブロック508で、第1の値が第2の値に等しいか否かが判定されても良い。第1の値が第2の値に等しいことに応答して(ブロック508の「はい」)、方法500は、ブロック510に進んでも良い。ブロック510で、第1の線形暗号文は第2の線形暗号文に対して線形であると結論づけられても良い。第1の値が第2の値に等しくないことに応答して(ブロック508の「いいえ」)、方法500は、ブロック512に進んでも良い。ブロック512で、エラーが出力されても良い。このことは、第1の線形暗号文が第2の線形暗号文に対して線形ではないことを示す。
図6は、本願明細書に記載の少なくとも1つの実施形態に従って構成された、近似を検出する例示的な方法600のフロー図である。方法600は、図2のバイオメトリックシステム200内で実装され得る生体認証システム又は図1の動作環境100内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法600が、本願明細書に記載された認証サーバ140によってプログラム可能に実行されても良い。認証サーバ140は、非一時的コンピュータ可読媒体(例えば図1のメモリ122B)を含んでいても良く、又は非一時的コンピュータ可読媒体(例えば図1のメモリ122B)に通信可能に結合されても良い。この非一時的コンピュータ可読媒体(例えば図1のメモリ122B)は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法600を実行し若しくは方法600の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、認証サーバ140は、方法600を実行するため又は方法600の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ(例えば図1のプロセッサ124B)を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
方法600はブロック602から開始し得る。ブロック602で、DECODEが、公開キー情報からアクセスされても良い。ブロック604で、ランダム性の和が復元されても良い。ランダム性の和は、第1の近似暗号文に関して受信されても良い。第1の近似暗号文のランダム性の和は、CPA復号化アルゴリズムを入力として受け取るDECODEとして定められても良い。このCPA復号化アルゴリズムはさらに、(a)CPA秘密キー、及び(b)第1の近似暗号文の第1の部分とCPA復号化アルゴリズムとの和を受信し、このCPA復号化アルゴリズムは、CPA秘密キー、及び第2の近似暗号文の第1の部分を入力として受信する。
ブロック606で、DECODEがエラーを返したことに応答して、拒否が出力されても良い。DECODEがエラーを返さなかった場合には、ブロック608で、線形検証アルゴリズムが出力されても良い。この線形検証アルゴリズムは、線形関係秘密キー、第2の近似暗号文の第1の部分、第2の近似暗号文の第2の部分、及びランダム性の和を入力として受信しても良い。
図7は、本願明細書に記載の少なくとも1つの実施形態に従って構成された、関係線形暗号化方式のキー生成の例示的な方法700のフロー図である。方法700は、図2のバイオメトリックシステム200内で実装され得る生体認証システム又は図1の動作環境100内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法700が、本願明細書に記載されたユーザ装置102によってプログラム可能に実行されても良い。ユーザ装置102は、非一時的コンピュータ可読媒体(例えば図1のメモリ122A)を含んでいても良く、又は非一時的コンピュータ可読媒体(例えば図1のメモリ122A)に通信可能に結合されても良い。この非一時的コンピュータ可読媒体(例えば図1のメモリ122A)は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法700を実行し若しくは方法700の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置102は、方法700を実行するため又は方法700の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ(例えば図1のプロセッサ124A)を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
方法700はブロック702から開始し得る。ブロック702で、双線形群が生成されても良い。幾つかの実施形態では、この双線形群が、素数位数の双線形群であっても良い。この素数位数は、セキュリティパラメータにおける指数であっても良い。追加又は代替で、この素数位数は、セキュリティパラメータにおける指数であっても良く、1を基本数(p)で割った余りに等しくても良い。例えば、平文ベクトルがビットベクトルを含む実施形態では、この素数位数が、セキュリティパラメータにおける指数であっても良い。平文ベクトルがp−aryベクトルを含む実施形態では、この素数位数が、セキュリティパラメータにおける指数であっても良く、1を基本数(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は、非一時的コンピュータ可読媒体(例えば図1のメモリ122A)を含んでいても良く、又は非一時的コンピュータ可読媒体(例えば図1のメモリ122A)に通信可能に結合されても良い。この非一時的コンピュータ可読媒体(例えば図1のメモリ122A)は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法800を実行し若しくは方法800の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置102は、方法800を実行するため又は方法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は、非一時的コンピュータ可読媒体(例えば図1のメモリ122A)を含んでいても良く、又は非一時的コンピュータ可読媒体(例えば図1のメモリ122A)に通信可能に結合されても良い。この非一時的コンピュータ可読媒体(例えば図1のメモリ122A)は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法900を実行し若しくは方法900の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置102は、方法900を実行するため又は方法900の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ(例えば図1のプロセッサ124A)を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
方法900はブロック902から開始し得る。ブロック902で、ECCが選択されても良い。このECCは、長さ、セキュリティパラメータの同じ位数のランク、及び選択された最小距離を含んでも良い。ブロック904で、CPAセキュア暗号化方式のキー生成アルゴリズムが実行されても良い。このCPAセキュア暗号化方式は、CPA公開キー及びCPA秘密キーを出力しても良い。ブロック906で、関係線形キー生成アルゴリズムが実行されても良い。関係線形キー生成アルゴリズムは、第1の線形公開キー、第2の線形公開キー、第1の線形秘密キー、第2の線形秘密キー及び関係線形秘密キーを出力しても良い。
ブロック907で、近似公開キーが定められても良い。例えば、ENCODE、DECODE、CPA公開キー及び第1の線形公開キーに基づき、第1の近似公開キーが定められても良い。さらに、ENCODE、DECODE、CPA公開キー及び第2の線形公開キーに基づき、第2の近似公開キーが定められても良い。ブロック908で、近似秘密キーが定められても良い。例えば、CPA秘密キー及び第1の線形秘密キーに基づき、第1の近似秘密キーが定められても良い。さらに、CPA秘密キー及び第2の線形秘密キーに基づき、第2の近似秘密キーが定められても良い。ブロック910で、近似関係秘密キーが定められても良い。例えば、近似関係秘密キーは、CPA秘密キー及び関係線形秘密キーに基づき定められても良い。
図10は、本願明細書に記載の少なくとも1つの実施形態に従って構成された、関係近似暗号化方式を使用して第1の平文ベクトルを暗号化する例示的な方法1000のフロー図である。方法1000は、図2のバイオメトリックシステム200内で実装され得る生体認証システム又は図1の動作環境100内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法1000が、本願明細書に記載されたユーザ装置102によってプログラム可能に実行されても良い。ユーザ装置102は、非一時的コンピュータ可読媒体(例えば図1のメモリ122A)を含んでいても良く、又は非一時的コンピュータ可読媒体(例えば図1のメモリ122A)に通信可能に結合されても良い。この非一時的コンピュータ可読媒体(例えば図1のメモリ122A)は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法1000を実行し若しくは方法1000の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置102は、方法1000を実行するため又は方法1000の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ(例えば図1のプロセッサ124A)を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
方法1000はブロック1002から開始し得る。ブロック1002で、近似乱数がサンプリングされても良い。近似乱数は、第3の体からサンプリングされても良い。第3の体は、基本数と、ECCのランクである次元とを含んでも良い。ブロック1004で、第1の近似暗号文の第1の部分が定められても良い。この第1の部分は、CPA公開キー、及び第1の平文ベクトルとENCODEとの和を入力として受け取るCPA暗号化アルゴリズムとして定められても良い。ENCODEは、近似乱数を入力として受信する。
ブロック1006で、第1の近似暗号文の第2の部分が定められても良い。
この第2の部分は、第1の線形公開キー及び近似乱数を入力として受信する第1の線形暗号化アルゴリズムとして定められても良い。
図11は、本願明細書に記載の少なくとも1つの実施形態に従って構成された、第1の線形暗号文を復号化する例示的な方法1100のフロー図である。方法1100は、図2のバイオメトリックシステム200内で実装され得る生体認証システム又は図1の動作環境100内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法1100が、本願明細書に記載されたユーザ装置102によってプログラム可能に実行されても良い。ユーザ装置102は、非一時的コンピュータ可読媒体(例えば図1のメモリ122A)を含んでいても良く、又は非一時的コンピュータ可読媒体(例えば図1のメモリ122A)に通信可能に結合されても良い。この非一時的コンピュータ可読媒体(例えば図1のメモリ122A)は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法1100を実行し若しくは方法1100の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置102は、方法1100を実行するため又は方法1100の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ(例えば図1のプロセッサ124A)を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
方法1100はブロック1102から開始し得る。ブロック1102で、第1の線形暗号文中の対応する要素が、特定の要素値により冪乗された任意の生成元と第1の線形秘密キーの対応する要素との積により冪乗された第1の線形暗号文の第1の要素に等しくなるような特定の要素値が存在するか否かが判定されても良い。この特定の要素値が存在することに応答して(ブロック1102の「はい」)、その要素が、特定の要素値に設定されても良い。この特定の要素値が存在しないことに応答して(ブロック1102の「いいえ」)、エラーが出力されても良い。
図12は、本願明細書に記載の少なくとも1つの実施形態に従って構成された、第1の線形暗号文を復号化する別の例示的な方法1200のフロー図である。方法1200は、図2のバイオメトリックシステム200内で実装され得る生体認証システム又は図1の動作環境100内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法1200が、本願明細書に記載されたユーザ装置102によってプログラム可能に実行されても良い。ユーザ装置102は、非一時的コンピュータ可読媒体(例えば図1のメモリ122A)を含んでいても良く、又は非一時的コンピュータ可読媒体(例えば図1のメモリ122A)に通信可能に結合されても良い。この非一時的コンピュータ可読媒体(例えば図1のメモリ122A)は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法1200を実行し若しくは方法1200の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置102は、方法1200を実行するため又は方法1200の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ(例えば図1のプロセッサ124A)を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
方法1200はブロック1202から開始し得る。ブロック1202で、第1の線形暗号文中の対応する要素が、第1の線形秘密キーの対応する要素により冪乗された第1の線形暗号文の第1の要素に等しいか否かが判定されても良い。第1の線形暗号文中の対応する要素が、第1の線形秘密キーの対応する要素により冪乗された第1の線形暗号文の第1の要素に等しいことに応答して(ブロック1202の「はい」)、方法1200は、ブロック1208に進んでも良い。ブロック1208で、第1の平文ベクトルの要素が0に設定されても良い。
第1の線形暗号文中の対応する要素が、第1の線形秘密キーの対応する要素により冪乗された第1の線形暗号文の第1の要素に等しくないことに応答して(ブロック1202の「いいえ」)、方法1200は、ブロック1204に進んでも良い。ブロック1204で、第1の線形暗号文中の対応する要素が、第1の線形秘密キーの対応する要素に−1を乗じたものにより冪乗された第1の線形暗号文の第1の要素に等しいか否かが判定されても良い。第1の線形暗号文の中の対応する要素が、第1の線形秘密キーの対応する要素に−1を乗じたものにより冪乗された第1の線形暗号文の第1の要素に等しいことに応答して(ブロック1204の「はい」)、方法1200は、ブロック1210に進んでも良い。ブロック1210で、第1の平文ベクトルの要素は1に設定されても良い。第1の線形暗号文の中の対応する要素が、第1の線形秘密キーの対応する要素に−1を乗じたものにより冪乗された第1の線形暗号文の第1の要素に等しくないことに応答して(ブロック1204の「いいえ」)、方法は、ブロック1206に進んでも良い。ブロック1206で、第1の線形暗号文中の対応する要素が別の値に等しいか否かが判定されても良い。第1の線形暗号文中の対応する要素が別の値に等しいことに応答して(ブロック1206の「はい」)、方法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内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法1400が、図1のユーザ装置102又は図13のユーザ装置1302によってプログラム可能に実行されても良い。ユーザ装置102又はユーザ装置1302は、非一時的コンピュータ可読媒体(例えば図1又は図13のメモリ122A)を含んでいても良く、又は非一時的コンピュータ可読媒体(例えば図1又は図13のメモリ122A)に通信可能に結合されても良い。この非一時的コンピュータ可読媒体(例えば図1又は図13のメモリ122A)は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法1400を実行し若しくは方法1400の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置102又はユーザ装置1302は、方法1400を実行するため又は方法1400の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサ(例えば図1又は図13のプロセッサ124A)を含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
ブロック1410において、ユーザ装置は、バイオメトリックデータ又は他の不均一分散データを受信しても良い。このデータは、1又は複数のセンサ、検出器等を使用して受信されても良い。ブロック1420において、このバイオメトリックデータは、平文ベクトルとして、あるランダム化レベルに処理されても良い。ブロック1420は、図15においてさらに説明される。ブロック1430において、平文ベクトルは、本開示に記載の関係線形暗号化方式を使用して暗号化され、その結果、線形暗号文が生成されても良い。ブロック1440において、平文ベクトルは、本開示に記載の関係近似暗号化方式を使用して暗号化され、その結果、近似暗号文が生成されても良い。
ブロック1450で、線形暗号文及び近似暗号文が、認証サーバに通信されても良い。線形暗号文及び近似暗号文が認証サーバに通信されると、認証サーバは、暗号文と基準暗号文との間に関係が存在するかどうかを判定するために、本願明細書に記載のように比較及び決定を実行しても良い。関係が存在するとサーバが判定した場合、認証サーバは、ユーザ装置に認証を通信しても良い。幾つかの実施形態では、これが、所望のセキュリティレベルに基礎データが適切にランダム化されたことに基づいても良い。ブロック1460で、ユーザ装置は、認証サーバから、認証を受信しても良い。
図15は、不均一分散データを処理する例示的な方法1500のフロー図である。方法1500は、図14のブロック1420の置換又は拡張である。例えば、図14のブロック1410の後に、方法1500が実施され、次に、図14のブロック1440に戻っても良い。方法1500は、図2のバイオメトリックシステム200内で実装され得る生体認証システム、図1の動作環境100内で実装され得る生体認証システム、又は図13の動作環境1300内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法1500が、図1のユーザ装置102又は図13のユーザ装置1302によってプログラム可能に実行されても良い。ユーザ装置102又はユーザ装置1302は、非一時的コンピュータ可読媒体(例えば図1又は図13のメモリ122A)を含んでいても良く、又は非一時的コンピュータ可読媒体(例えば図1又は図13のメモリ122A)に通信可能に結合されても良い。この非一時的コンピュータ可読媒体(例えば図1又は図13のメモリ122A)は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法1500を実行し若しくは方法1500の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置102又はユーザ装置1302は、方法1500を実行するため又は方法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へ処理の経路を取ることにより、終了しても良い。
制限アクセス認証サーバを用いた関係暗号化方式
本開示の1又は複数の実施形態では、認証処理又は比較処理における情報のある部分へのアクセスにおいて、認証サーバが制限されても良い。特に、認証サーバは、平文値、又は認証サーバが平文値を導出する元の情報にアクセスすることなく、暗号化された2つの平文値が同じであることを検証し得る。これらの実施形態及びその他の実施形態では、通信している当事者のための関係キーを導出する初期化処理が、認証サーバが信頼された第三者機関である必要がないような態様で実施されても良い。本開示の実施形態は、関係暗号化方式の公開キーを生成する信頼された第三者機関が存在しない状況において有益であり得る。これらの実施形態及びその他の実施形態では、信頼された第三者機関に、公開キーの生成を委ねなくても良い。幾つかの実施形態では、関係暗号化方式の設定段階を実行する信頼された第三者機関が存在しない場合であっても、関係暗号化方式がセキュアであり得る。
図16は、本開示の1又は複数の実施形態に基づく別の例示的な動作環境1600のブロック図である。動作環境1600は、第1のユーザ装置1602を利用する第1のエンティティ152、第2のユーザ装置1604を利用する第2のエンティティ150、及び認証サーバ1640を含んでも良く、これらは全て、ネットワーク107を介して通信する。第1のエンティティ152、第2のエンティティ150及びネットワーク107は、図1の第1のエンティティ152、第2のエンティティ150及びネットワーク107と同様又は類似であっても良い。認証サーバ1640は、認証サーバ1640が、ある種の情報への制限されたアクセスを有し得ることを除き、図1の認証サーバ140と同様又は類似の認証サーバであっても良い。これらの実施形態及びその他の実施形態では、たとえ認証サーバ1640が信頼された第三者機関でない場合であっても、機密情報のセキュリティが維持され得る。第1のユーザ装置1602及び第2のユーザ装置1604は、図1の第1のユーザ装置102と同様又は類似のユーザであっても良い。例えば、図示されてはいないが、第1のユーザ装置1602及び第2のユーザ装置1604は、メモリ、プロセッサ、通信ユニット等を含んでも良い。
幾つかの実施形態では、認証サーバ1640が、暗号化された第1のメッセージを第1のユーザ装置1602から受信し、暗号化された第2のメッセージを第2のユーザ装置1604から受信しても良い。この認証サーバは、暗号化された第1のメッセージと暗号化された第2のメッセージの比較を実行して、暗号化された第1のメッセージ中の暗号化された第1の平文値が、暗号化された第2のメッセージ中の暗号化された第2の平文値と同じであるか否かを判定するように構成されても良い。これらの実施形態及びその他の実施形態では、認証サーバ1640が、暗号化された第1のメッセージ及び/又は暗号化された第2のメッセージを復号化しなくても良い。追加又は代替で、認証サーバ1640は信頼された第三者機関であっても良く、又は信頼された第三者機関でなくても良い。幾つかの実施形態では、関係暗号化方式の設定段階を実行する信頼された第三者機関が存在しない場合であっても、関係暗号化方式がセキュアであり得る。
制限アクセス認証サーバを用いた関係暗号化方式を初期化するため、第1のユーザ装置1602及び第2のユーザ装置1604に対して関係キーが得られ、且つ/又は生成されても良い。これらの関係キーは、(最初に又は永久的に)認証サーバ1640が知っていても良い第1の要素、及び認証サービス1640が知らなくても良い第2の要素を含んでも良い。これらの実施形態及びその他の実施形態では、第1の数学的群の第1の要素が選択され、第2の数学的群の第2の要素が選択されても良い。この第1及び第2の要素はランダムに選択されてもよく、又は所与の一組の状況に対して繰返し使用されても良い。例えば、認証サーバ1640は常に、第1及び第2の数学的群の同じ第1及び第2の要素を使用しても良い。第1及び第2の要素は、公開であり且つ既知であっても良く、又は、認証サーバ1640、第1のユーザ装置1602及び第2のユーザ装置1604によって得られても良い。数学的に示せば以下の通りである。
g←G1
h←G2
上式で、パラメータG1は、位数qの第1の数学的群を表し(qは、上記のものと同じである)、パラメータG2は、位数qの第2の数学的群を表し、gは、群G1の要素を表し、hは、群G2の要素を表す。幾つかの実施形態では、第1の数学的群から得られた第1の要素(例えばg)及び第2の数学的群から得られた第2の要素(例えばh)が、生成元と呼ばれることがある。幾つかの実施形態では、群G1及びG2が双線形要素を含んでも良い。例えば、群G1及びG2は、通常の数学的群ではなくても良く、その代わりに、以下の双線形ペアリング演算をサポートしても良い。
e(G1×G2)=GT
上式で、e(...)はペアリング演算を表し、GTは第3の双線形群を表す。追加又は代替で、群G1及びG2は、閉包、結合性、恒等及び可逆性を含む数学的群公理に従っても良い。
制限アクセス認証サーバを用いた関係暗号化方式をさらに初期化するため、認証サーバ1640は、第1のユーザ装置1602のための第1の関係キーの第1の要素、及び第2のユーザ装置1604のための第2の関係キーの第1の要素を生成しても良い。幾つかの実施形態では、認証サーバ1640が、2つのランダム整数を選択しても良く、又は他の方法で2つのランダム整数を得ても良い。これらの実施形態及びその他の実施形態では、ランダム整数が、0からq−1までの間で選択されても良い。数学的に示せば、認証サーバは、以下のものを生成しても良い。
t←Zq
u←Zq
上式で、Zqは上記のものと同じであり、t及びuは、Zqから選択されたランダム整数である。第1のユーザ装置1602のための第1の関係キーの第1の要素を生成するため、認証サーバ1640は、第1の群要素を、第1及び第2のランダム整数により冪乗しても良い。第2のユーザ装置1604のための第2の関係キーの第1の要素を生成するため、認証サーバ1640は、第2の群要素を、第2のランダム整数により冪乗しても良い。数学的に示せば、認証サーバ1640は、第1のユーザ装置1602のための第1の関係キーの第1の要素としてgtuを生成し、第2のユーザ装置1604のための第2の関係キーの第1の要素としてhuを生成する。認証サーバ1640は、第1の関係キーの第1の要素を第1のユーザ装置1602に提供しても良く、第2の関係キーの第1の要素を第2のユーザ装置1604に提供しても良い。幾つかの実施形態では、第1の関係キーの第1の要素及び第2の関係キーの第1の要素をそれぞれ第1のユーザ装置1602及び第2のユーザ装置1604に提供した後に、認証サーバ1640が、第2のランダム変数(例えばu)を削除し、又は他の方法で除去しても良い。これらの実施形態及びその他の実施形態では、認証サーバ1640が、第1及び第2のユーザ装置1602、1604と第1のランダム整数(例えばt)との関係を格納しても良い。例えば、通信しているユーザ装置の対及びランダム整数が、表又はデータベースに格納されても良い。追加又は代替で、この表又はデータベースは、両方のランダム整数により冪乗された群要素を受信しないユーザ装置が第2のユーザ装置1604であったこと(このことは例えば、第2のユーザ装置1604にhuが提供され、第1のユーザ装置1602にgtuが提供されたことを表す)を格納しても良い。
制限アクセス認証サーバを用いた関係暗号化方式をさらに初期化するため、第1の関係キーの第2の要素及び第2の関係キーの第2の要素が生成されても良い。このような生成は、第1のユーザ装置1602及び第2のユーザ装置1604によって、第1のユーザ装置1602と第2のユーザ装置1604の間で、認証サーバ1640の入力又は対話なしに実施されても良い。第1のユーザ装置1602は、第3のランダム整数aをZqから選択しても良く、第2のユーザ装置1604は、第4のランダム整数bをZqから選択しても良い。第2のユーザ装置1604は、第1の群要素を、第4のランダム整数により冪乗しても良く(例えばgb)、それを第1のユーザ装置1602に提供しても良い。第1のユーザ装置1602は、第2の群要素を、第3のランダム整数により冪乗しても良く(例えばha)、それを第2のユーザ装置1604に提供しても良い。第1のユーザ装置1602は、第1の群要素を第3の整数によりさらに冪乗する(例えばgab)ことにより、第1の関係キーの第2の要素を導出しても良い。第2のユーザ装置1604は、第2の群要素を第4の整数によりさらに冪乗する(例えばhab)ことにより、第2の関係キーの第2の要素を導出しても良い。このような交換により、第1及び第2の関係キーの第2の要素の導出中に、第1のユーザ装置1602に、第4のランダム整数bが提供されても又は提供されなくても良く、第2のユーザ装置1604に、第3のランダム整数aが提供されても又は提供されなくても良い。追加又は代替で、認証サーバ1640は、第1及び第2の関係キーの第2の要素を知らなくても良い。したがって、第1のユーザ装置1602は、第1の要素gtu及び第2の要素gabを有する第1の関係キーを得ても良い。追加又は代替で、第2のユーザ装置1604は、第1の要素hu及び第2の要素habを有する第2の関係キーを得ても良い。
初期化の後、第1のユーザ装置1602にある暗号化された第1の平文値と第2のユーザ装置1604にある暗号化された第2の平文値とが同じであるか否かを認証サーバ1640が検証することを可能にするために、第1のユーザ装置1602のための第1の関係キー及び第2のユーザ装置1604のための第2の関係キーが利用されても良い。例えば、第1のユーザ装置1602は、第1の関係キーを使用して第1の平文値を暗号化しても良い。第1のユーザ装置1602は、第5のランダム整数(例えばZqからランダムに選択された整数r)を取得し、第1の関係キーの第1の要素を、第5のランダム整数により冪乗し(例えばgtur)、第1の関係キーの第2の要素を、第5のランダム整数及び第1の平文値により冪乗(例えばgabrl。lは第1の平文値である)しても良い。暗号化された第1のメッセージは、変更された第1の関係キー、例えば第1の要素(gtur)及び第2の要素(gabrl)を含んでも良い。第2のユーザ装置1604は、第6のランダム整数(例えばZqからランダムに選択された整数s)を取得し、第2の関係キーの第1の要素を、第6のランダム整数により冪乗し(例えばhus)、第2の関係キーの第2の要素を、第6のランダム整数及び第2の平文値により冪乗(例えばhabsm。mは第2の平文値である)しても良い。暗号化された第2のメッセージは、変更された第2の関係キー、例えば第1の要素(hus)及び第2の要素(habsm)を含んでも良い。
暗号化された第1のメッセージ中に第1の平文値を暗号化した後、第1のユーザ装置1602は、暗号化された第1のメッセージを認証サーバ1640に提供しても良い。暗号化された第2のメッセージ中に第2の平文値を暗号化した後、第2のユーザ装置1604は、暗号化された第2のメッセージを認証サーバ1640に提供しても良い。第1の平文値が第2の平文値と同じであるか否かを判定するため、認証サーバ1640は、暗号化された第1のメッセージを暗号化された第2のメッセージと比較しても良い。このような比較を実行するため、認証サーバは、暗号化された第1のメッセージの第1の要素と暗号化された第2のメッセージの第2の要素とに対して第1のペアリング関数演算を実行し、暗号化された第1のメッセージの第2の要素と、認証サーバ1640によって得られた第1のランダム整数(例えばt)により冪乗された暗号化された第2のメッセージの第1の要素とに対して第2のペアリング関数演算を実行しても良い。第1のペアリング関数演算の結果と第2のペアリング関数演算の結果が同じである場合、認証サーバ1640は、第1の平文値と第2の平文値が同じであると判定しても良い。第1のペアリング関数演算の結果と第2のペアリング関数演算の結果が同じでない場合、認証サーバ1640は、第1の平文値と第2の平文値が同じでないと判定しても良い。数学的に示せば、認証サーバは、下の等式を検証しても良い。
(外26)
上式で、e(...)はペアリング関数であり、a、b、g、h、l、m、r、s、t及びuは上述のものと同じである。これらの実施形態及びその他の実施形態では、認証サーバ1640が信頼された第三者機関であっても又は信頼された第三者機関でなくても良いような態様で、認証サーバ1640にこれらの平文値が提供されなくても良く、セキュリティキー又は認証キーは、認証サーバ1640に提供されても又は提供されなくても良い。したがって、幾つかの実施形態では、認証サーバ1640が、制限アクセス認証サーバであり得る。
幾つかの実施形態では、第1及び/又は第2の平文値(例えばl及び/又はm)が、異なる固定値であっても良い。特に、幾つかの実施形態では、第1及び/又は第2の平文値(例えばl及び/又はm)が、バイオメトリックデータでなくても良い。平文値は、その実施形態が適用され得る用途に応じた任意のサイズを取り得る。例えば、平文値が、画像を定めるビットストリームである場合、平文値の長さは、数千文字、数百万文字(又はそれ以上)であり得る。幾つかの実施形態では、値qが、平文値のサイズとほぼ同じ桁になるように選択されても良い。追加又は代替で、平文値のサイズを制限するために、ハッシュ関数又は他の打切り関数が利用されても良い。これらの実施形態及びその他の実施形態では、セキュアなハッシュ関数が利用されても良い。ハッシュ関数が使用される場合には、同じハッシュ関数が、第1のユーザ装置1602によって第1の平文値に対して使用され、第2のユーザ装置1604によって第2の平文値に対して使用されても良い。追加又は代替で、平文値がハッシュされる場合には、qが、ハッシュされた平文値のサイズとほぼ同じ桁になるように選択されても良い。
幾つかの実施形態では、認証サーバ1640を制限アクセス認証サーバとして動作させることが、幾つかの例示的な例において、ある種のセキュリティ利点を提供し得る。
例1.第1のユーザ装置1602、第2のユーザ装置1604及び認証サーバ1640が全て正直である場合、全ての暗号化は意味論的にセキュアであり得る。言い換えると、暗号化されたメッセージ及び平文値の長さについての知識は、実行可能に抽出され得る平文値に関する追加の情報を一切明らかにしない。このような意味論的セキュリティは、低エントロピ平文値に対しても(例えば平文値が一様にランダムでない場合にも)当てはまる。
例2.第1のユーザ装置1602が敵対的である場合、第2のユーザ装置1604の平文値は意味論的にセキュアであり得、このような意味論的なセキュリティは、低エントロピ平文値に対しても当てはまる。
例3.第1のユーザ装置1602が敵対的であり、将来のある時点で第2のユーザ装置1604が危険に晒される(例えばハッキングされる)場合、危険に晒される前の第2のユーザ装置1604からの暗号化されたメッセージは意味論的にセキュアであり得、このような意味論的なセキュリティは、低エントロピ平文値に対しても当てはまる。
例4.認証サーバ1640が敵対的である場合、暗号化されたメッセージ間の比較だけが学習され得る(例えば平文値が同じであるのか又は同じでないのかは学習され、平文値が何であるのかは学習されない)。低エントロピデータに関して、暗号化された平文値はセキュアだが、その比較は学習され得る。
例5.認証サーバ1640及び第1のユーザ装置1602が敵対的である場合、暗号化されたメッセージ間の比較(例えば平文値が同じであるのか又は同じでないのか)だけが学習され得る。低エントロピデータに関して、第2のユーザ装置1604の平文値は、推測攻撃に晒され得るため、セキュアでない可能性がある。例えば、低エントロピデータでは可能性の数が限られているため、及び、敵対者は、第1のユーザ装置1602の平文値及び認証サーバ1640における比較の結果を知り得るため、第2のユーザ装置1604の平文値を決定するために系統的な推測アプローチが使用され得る。
例6.認証サーバ1640及び第1のユーザ装置1602が敵対的であり、将来、第2のユーザ装置1604が危険に晒される(例えばハッキングされる)場合、危険に晒される前の第2のユーザ装置1604からの暗号化されたメッセージは意味論的にセキュアであり得る。低エントロピデータに関して、第2のユーザ装置1604の平文値は、推測攻撃に晒され得るため、セキュアでない可能性がある。上記のそれぞれの例では、第1のユーザ装置1602が敵対的として識別されたときの、第2のユーザ装置1604に対するセキュリティが説明されたが、これらの2つは相互に交換可能であり、第2のユーザ装置1604が敵対的である場合には、第1のユーザ装置1602に対するセキュリティに関して類似のことが言える。
幾つかの実施形態では、動作環境1600内に、通信している2対以上のユーザ装置が存在するとき、認証サーバ1640から第2のランダム整数(例えばu)を除去することは、通信しているユーザ装置の異なる対間のセキュリティを促進し得る。例えば、認証サーバ1640が第2のランダム整数を除去していない場合には、認証サーバ1640が危険に晒された場合に、通信しているユーザ装置のどの対が比較に関連しているのかが決定され得る。
幾つかの異なる設定又は例示的なシナリオでは、認証処理又は比較処理において情報のある部分へのアクセスが制限された認証サーバが使用されても良い。例えば、認証サーバ1640は、第1のユーザ装置1602が有する画像、文書、ファイル又は他の情報を第2のユーザ装置1604が含むかどうかを、第1のユーザ装置1602が第2のユーザ装置1604に、第2のユーザ装置1604又は認証サーバ1640にその情報を開示することなしに問い合わせることを許しても良い。幾つかの実施形態では、第1のエンティティ152と第2のエンティティ150が、異なるときに異なるユーザ装置又は同じユーザ装置を作動している同じエンティティであっても良い。例えば、第1のエンティティ152が、第1のユーザ装置1602を、認証されたセキュアな位置又はセキュアなネットワーク内のセキュアなコンピュータとして操作しているユーザであり、第2のエンティティ150が、第2のユーザ装置1604を、別の位置にあり又は別のネットワーク上にあるモバイル装置として操作している同じユーザであっても良い。認証サーバ1640は、第1のユーザ装置1602と第2のユーザ装置1604の両方が同じ平文値(例えばパスワード又はトークン)を含むことを、認証サーバ1640がパスワード又はトークンを知ることなしに検証し得る。第1のユーザ装置1602と第2のユーザ装置1604の両方が同じ平文値を有することを検証した後、認証サーバ1640は、制限された内容へのアクセスを第2のユーザ装置1604に許可しても良い。
本開示の範囲から逸脱することなく、例示的な動作環境1600に変更、追加又は省略が実施されても良い。具体的には、図16に示された実施形態は、1つの認証サーバ1640及び1対のユーザ装置(第1のユーザ装置1602及び第2のユーザ装置1604)を含む。しかしながら、本開示は、任意の数のユーザ装置対及び任意の数の認証サーバを含む動作環境に適用される。
図17は、関係暗号化方式を利用する、本開示の1又は複数の実施形態に基づく例示的な方法1700のフロー図である。方法1700は、図2のシステム200内で実装され得る生体認証システム、図1の動作環境100内で実装され得る生体認証システム、図13の動作環境1300内で実装され得る生体認証システム、図16の動作環境1600内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法1700が、図1のユーザ装置102、図13のユーザ装置1302、図16の第1若しくは第2のユーザ装置1602、1604又は認証サーバ1640によってプログラム可能に実行されても良い。ユーザ装置102、ユーザ装置1302、第1若しくは第2のユーザ装置1602、1604及び/又は認証サーバ1640は、非一時的コンピュータ可読媒体を含んでいても良く、又は非一時的コンピュータ可読媒体に通信可能に結合されても良い。この非一時的コンピュータ可読媒体は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法1700を実行し若しくは方法1700の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置102、ユーザ装置1302、第1若しくは第2のユーザ装置1602、1604及び/又は認証サーバ1640は、方法1700を実行するため又は方法1700の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサを含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。
ブロック1710で、第1の数学的群要素及び第2の数学的群要素が得られても良い。例えば、認証サーバ(例えば図16の認証サーバ1640)が、q個の要素の第1の群から第1の数学的群要素をランダムに選択し、q個の要素の第2の群から第2の数学的群要素をランダムに選択しても良い。例えば、認証サーバはg及びhを選択しても良い。幾つかの実施形態では、通信しているユーザ装置の複数の対に対してg及びhが同じでも良い。
ブロック1720で、第1の平文値を含む暗号化された第1のメッセージが受信されても良い。例えば、第1のユーザ装置(例えば図16の第1のユーザ装置1602)が、暗号化された第1のメッセージを認証サーバに送信しても良い。幾つかの実施形態では、暗号化された第1のメッセージが、第1のユーザ装置の第1の関係キーを含んでも良い。この第1の関係キーは2つの要素を含んでも良く、変更されている。例えば、上記の命名法に従うと、第1のユーザ装置は、第5のランダム整数(例えばZqからランダムに選択された整数r)を取得し、第1の関係キーの第1の要素を、第5のランダム整数により冪乗し(例えばgtur)、第1の関係キーの第2の要素を、第5のランダム整数及び第1の平文値により冪乗(例えばgabrl。lは第1の平文値である)しても良い。暗号化された第1のメッセージは、変更された第1の関係キー、例えば第1の要素(gtur)及び第2の要素(gabrl)を含んでも良い。
ブロック1730で、第2の平文値を含む暗号化された第2のメッセージが受信されても良い。例えば、第2のユーザ装置(例えば図16の第2のユーザ装置1604)が、暗号化された第2のメッセージを認証サーバに送信しても良い。幾つかの実施形態では、暗号化された第2のメッセージが、第2のユーザ装置の第2の関係キーを含んでも良い。この第2の関係キーは2つの要素を含んでも良く、変更されている。例えば、上記の命名法に従うと、第2のユーザ装置は、第6のランダム整数(例えばZqからランダムに選択された整数s)を取得し、第2の関係キーの第1の要素を、第6のランダム整数により冪乗し(例えばhus)、第2の関係キーの第2の要素を、第6のランダム整数及び第2の平文値により冪乗(例えばhabsm。mは第2の平文値である)しても良い。暗号化された第2のメッセージは、変更された第2の関係キー、例えば第1の要素(hus)及び第2の要素(habsm)を含んでも良い。
ブロック1740で、暗号化された第1のメッセージも又は暗号化された第2のメッセージも復号化することなしに、暗号化された第1のメッセージが暗号化された第2のメッセージと比較されても良い。例えば、認証サーバが、暗号化されたメッセージ内の平文値にアクセスすることなしに、暗号化された第1のメッセージを暗号化された第2のメッセージと比較しても良い。このような比較は、例えば1又は複数のペアリング関数演算を使用することにより、本開示において上で説明された通りに実行されても良い。
ブロック1750で、この比較に基づいて、第1の平文値と第2の平文値とが同じであると判定しても良い。例えば、認証サーバが、第1のペアリング関数の結果が第2のペアリング関数と同じあると判定しても良い。これらの2つのペアリング関数は、暗号化された第1及び第2のメッセージの種々のコンポーネントを本開示で説明した通りにペアリングする。幾つかの実施形態では、この比較が同じであることに基づいて、制限された内容へのユーザ装置アクセスを与える動作、一方又は両方のユーザ装置にこの判定を送信する動作など、さらなる動作がとられても良い。
したがって、方法1700は、関係暗号化方式を利用し得る。本開示の範囲から逸脱することなく、方法1700に変更、追加又は省略が実施されても良い。例えば、方法1700の演算は、異なる順序で実施されても良い。追加又は代替で、2つ以上の演算が同時に実行されても良い。さらに、概説された演算及び動作は例として提供されたものであり、それらの演算及び動作のうちの幾つかの演算及び動作は、開示の実施形態の本質を損なうことなしに、任意選択とされ、又はより少数の演算及び動作に結合され、又は追加の演算及び動作に拡張されても良い。
図18A及び図18Bは、関係暗号化方式を初期化し利用する、本開示の1又は複数の実施形態に基づく例示的な方法1800のフロー図である。方法1800は、図2のシステム200内で実装され得る生体認証システム、図1の動作環境100内で実装され得る生体認証システム、図13の動作環境1300内で実装され得る生体認証システム、図16の動作環境1600内で実装され得る生体認証システムなどの生体認証システム内で実行されても良い。幾つかの実施形態では、方法1800が、図1のユーザ装置102、図13のユーザ装置1302、図16の第1若しくは第2のユーザ装置1602、1604又は認証サーバ1640によってプログラム可能に実行されても良い。ユーザ装置102、ユーザ装置1302、第1若しくは第2のユーザ装置1602、1604及び/又は認証サーバ1640は、非一時的コンピュータ可読媒体を含んでいても良く、又は非一時的コンピュータ可読媒体に通信可能に結合されても良い。この非一時的コンピュータ可読媒体は、その上に格納されたプログラミングコード若しくは命令、又はその中にエンコードされたプログラミングコード若しくは命令を有する。このプログラミングコード若しくは命令は、方法1800を実行し若しくは方法1800の実行を制御するためにプロセッサによって実行可能である。追加又は代替で、ユーザ装置102、ユーザ装置1302、第1若しくは第2のユーザ装置1602、1604及び/又は認証サーバ1640は、方法1800を実行するため又は方法1800の実行を制御するためにコンピュータ命令を実行するように構成されたプロセッサを含んでも良い。別個のブロックとして示したが、所望の実装に応じて、種々のブロックは、追加のブロックに分割され、より少ないブロックに結合され、又は除去されても良い。上記の数学的変数を参照する方法1700を説明した際のある種の数学的変数を参照しても良い。
ブロック1805で、第1及び第2の群要素が得られても良い。例えば、認証サーバ(例えば図16の認証サーバ1640)が、第1の群から第1の群要素をランダムに得、第2の群から第2の群要素をランダムに得ても良い。ブロック1805は、ブロック1710と同様であり得、又はブロック1710に匹敵し得る。
ブロック1810で、第1及び第2のランダム整数が得られても良い。例えば、認証サーバが、本開示において上で説明された通りに、Zqから2つの整数をランダムに選択しても良い。
ブロック1815で、第1及び第2のランダム整数により冪乗された第1の群要素が、第1のユーザ装置(例えば図16の第1のユーザ装置1602)に送信されても良い。例えば、認証サーバが、gtuを生成し、その変更された群要素を第1のユーザ装置に送信しても良い。これらの実施形態及びその他の実施形態では、第1及び第2のランダム整数により冪乗された第1の群要素が、第1のユーザ装置の第1の関係キーの第1の要素であっても良い。
ブロック1820で、第2のランダム整数により冪乗された第2の群要素が、第2のユーザ装置(例えば図16の第2のユーザ装置1604)に送信されても良い。例えば、認証サーバが、huを生成し、その変更された群要素を第2のユーザ装置に送信しても良い。これらの実施形態及びその他の実施形態では、第2のランダム整数により冪乗された第2の群要素が、第2のユーザ装置の第2の関係キーの第1の要素であっても良い。
ブロック1825で、第1のユーザ装置によって第3のランダム整数が得られ、第2のユーザ装置によって第4のランダム整数が得られても良い。例えば、第1のユーザ装置が、Zqからランダム整数aを選択し、第2のユーザ装置が、Zqからランダム整数bを選択しても良い。
ブロック1830で、第3のランダム整数により冪乗された第2の群要素が、第1のユーザ装置から第2のユーザ装置に送信されても良い。例えば、第1のユーザ装置がhaを計算し、それを第2のユーザ装置に送信しても良い。
ブロック1835で、第4のランダム整数により冪乗された第1の群要素が、第2のユーザ装置から第1のユーザ装置に送信されても良い。例えば、第2のユーザ装置がgbを計算し、それを第1のユーザ装置に送信しても良い。
ブロック1840で、第1の関係キーが確立されても良い。例えば、第1のユーザ装置が、2つの要素を含む第1の関係キーを確立しても良い。第1の関係キー要素は、認証サーバによって選択された第1及び第2のランダム整数により冪乗された第1の群要素を含んでも良く、第2の関係キー要素は、第1のユーザ装置によって選択された第3のランダム整数により冪乗され、第2のユーザ装置によって選択された第4のランダム整数により冪乗された第1の群要素を含んでも良い。例えば、第2の要素を決定するため、第1のユーザ装置は、第2のユーザ装置から送信されたgbをとり、それをaにより冪乗しても良い。
ブロック1845で、第2の関係キーが確立されても良い。例えば、第2のユーザ装置が、2つの要素を含む第2の関係キーを確立しても良い。第2の関係キーの第1の関係キー要素は、認証サーバによって選択された第2のランダム整数により冪乗された第2の群要素を含んでも良い。追加又は代替で、第2の関係キーの第2の関係キー要素は、第1のユーザ装置によって選択された第3のランダム整数により冪乗され、第2のユーザ装置によって選択された第4のランダム整数により冪乗された第2の群要素を含んでも良い。例えば、第2の要素を決定するため、第2のユーザ装置は、第1のユーザ装置から送信されたhaをとり、それをbにより冪乗しても良い。
ブロック1850で、第1の関係キーを使用して、第1の平文値(例えばl)が、暗号化された第1のメッセージに関係暗号化される。例えば、第1のユーザ装置が、Zqから第5のランダム整数rを得、第1の関係キーの第1の要素をrにより冪乗し、第2の要素を、第5のランダム整数及び第1の平文値により冪乗しても良い。例えば、暗号化された第1のメッセージは(gtur,gabrl)を含んでも良い。
ブロック1855で、第2の関係キーを使用して、第2の平文値(例えばm)が、暗号化された第2のメッセージに関係暗号化される。例えば、第2のユーザ装置が、Zqから第6のランダム整数sを得、第2の関係キーの第1の要素をsにより冪乗し、第2の要素を、第6のランダム整数及び第2の平文値により冪乗しても良い。例えば、暗号化された第2のメッセージは(hus,gabsm)を含んでも良い。
ブロック1860で、暗号化された第1及び第2のメッセージを認証サーバに送信しても良い。例えば、第1のユーザ装置が、暗号化された第1のメッセージを、ネットワーク(例えば図16のネットワーク107)を介して認証サーバに送信しても良く、第2のユーザ装置が、暗号化された第2のメッセージを、同じネットワークを介して認証サーバに送信しても良い。
ブロック1865で、暗号化された第1のメッセージも又は暗号化された第2のメッセージも復号化することなしに、暗号化された第1のメッセージと暗号化された第2のメッセージとが比較されても良い。例えば、認証サーバが、暗号化された第1のメッセージの第1の要素と暗号化された第2のメッセージの第2の要素とに対して第1のペアリング演算を実行しても良い。この例を続けると、認証サーバは、暗号化された第1のメッセージの第2の要素と、第2のランダム整数により冪乗された暗号化された第2のメッセージの第1の要素とに対して第2のペアリング演算を実行しても良い。数学的に示せば、幾つかの実施形態では、認証サーバが以下の等式を検証しても良い。
(外27)
ブロック1870で、この比較に基づいて、第1の平文値が第2の平文値と同じであると判定しても良い。ブロック1870は、図17のブロック1750と同様であり得、又はブロック1750に匹敵し得る。
したがって、方法1800は、関係暗号化方式を初期化し且つ/又は利用し得る。本開示の範囲から逸脱することなく、方法1800に変更、追加又は省略が実施されても良い。例えば、方法1800の演算は、異なる順序で実施されても良い。追加又は代替で、2つ以上の演算が同時に実行されても良い。さらに、概説された演算及び動作は例として提供されたものであり、それらの演算及び動作のうちの幾つかの演算及び動作は、開示の実施形態の本質を損なうことなしに、任意選択とされ、又はより少数の演算及び動作に結合され、又は追加の演算及び動作に拡張されても良い。
本願明細書に記載した実施形態は、以下にさらに詳細に議論するように、種々のコンピュータハードウェア又はソフトウェアモジュールを備えた特定用途又は汎用コンピュータの使用を含み得る。
本願明細書に記載した実施形態は、コンピュータ実行可能命令又はデータ構造を担持し又は格納したコンピュータ可読媒体を使用して実施され得る。このようなコンピュータ可読媒体は、汎用コンピュータ又は特定目的コンピュータによりアクセスできる利用可能な任意の媒体であり得る。例として、限定はされないが、このようなコンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的に消去可能なプログラマブルリードオンリーメモリ(EEPROM)、コンパクトディスクリードオンリーメモリ(CD−ROM)若しくは他の光ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶装置、フラッシュメモリ装置(例えば固体メモリ素子)、又は、所望のプログラムコードをコンピュータ実行可能命令若しくはデータ構造の形式で担持し若しくは格納するために使用され、汎用コンピュータ若しくは特定目的コンピュータによってアクセスされる他の記憶媒体を含む、非一時的コンピュータ可読記憶媒体を含み得る。上述の組合せも、コンピュータ可読媒体の範囲に包含され得る。
コンピュータ実行可能命令は例えば、汎用コンピュータ、特定目的コンピュータ又は特定目的処理装置(例えば1又は複数のプロセッサ)に、特定の機能又は一群の機能を実行させる命令及びデータを含む。本発明の主題は、構造的特徴及び/又は方法論的動作に特有の言葉で記載されたが、本発明の主題は、特許請求の範囲に定められる上述の特定の特徴又は動作に限定されないことが理解されるべきである。むしろ、上述の特定の特徴及び動作は、特許請求の範囲の実施の例示的形態として開示されたものである。
本願明細書で使用されるとき、用語「モジュール」又は「コンポーネント」は、モジュール若しくはコンポーネントの動作を実行するように構成された特定ハードウェア実装、及び/又はコンピューティングシステムの汎用ハードウェア(例えばコンピュータ可読媒体、処理装置等)に格納され及び/又はそれらにより実行され得るソフトウェアオブジェクト若しくはソフトウェアルーチンを表しても良い。幾つかの実施形態では、本願明細書に記載されたさまざまなコンポーネント、モジュール、エンジン及びサービスは、(例えば別個のスレッドとして)コンピューティングシステムで実行されるオブジェクト又は処理として実施されても良い。本願明細書に記載のシステム及び方法の幾つかは概して(汎用ハードウェアに格納される及び/又はそれにより実行される)ソフトウェアで実装されるように記載されたが、専用ハードウェアの実装又はソフトウェアと専用ハードウェアの組合せの実装も可能であり、企図される。この説明では、「コンピューティングエンティティ」が、この説明では、「コンピュータエンティティ」が、本願明細書で上で定められたようにコンピューティングシステム、又はコンピューティングシステムで実行されるモジュール若しくはモジュールの組合せであっても良い。
本願明細書に記載された全ての例及び条件文は、教育上の目的で、読者が本開示の原理及び発明者により考案された概念を理解するのを助け、技術を促進させるためであり、これらの特に記載された例及び条件に限定されないものと考えられるべきである。本開示の実施形態が詳細に記載されたが、種々の変更、置換及び修正が本開示の精神及び範囲から逸脱することなく行われ得ることが理解されるべきである。
以上の実施形態に加えて、更に以下の付記を開示する。
(付記1) コンピュータにより実施される方法であって、
サーバにおいて、暗号化された第1のメッセージを第1のユーザ装置から受信するステップであり、前記暗号化された第1のメッセージが、第1の数学的群要素に基づく第1の関係キー要素を含み、前記暗号化された第1のメッセージが、前記第1の数学的群要素に基づく、第1の平文値により冪乗された第2の関係キー要素を含む、ステップと、
前記サーバにおいて、暗号化された第2のメッセージを第2のユーザ装置から受信するステップであり、前記暗号化された第2のメッセージが、前記第1の数学的群要素とは異なる第2の数学的群要素に基づく第3の関係キー要素を含み、前記暗号化された第2のメッセージが、前記第2の数学的群要素に基づく、第2の平文値により冪乗された第4の関係キー要素を含む、ステップと、
前記サーバの1又は複数のプロセッサを使用して、前記暗号化された第1のメッセージを前記暗号化された第2のメッセージと比較するステップであり、前記サーバによって、前記暗号化された第1のメッセージも又は前記暗号化された第2のメッセージも復号化されない、ステップと、
前記比較に基づいて、前記1又は複数のプロセッサによって、前記第1の平文値と前記第2の平文値とが同じであると判定するステップと、
前記第1の平文値と前記第2の平文値とが同じであることに基づいて、制限された内容に前記第2のユーザ装置がアクセスすることを前記サーバが許可するステップと、
を含む方法。
(付記2) 前記第1のユーザ装置と前記第2のユーザ装置が、同じエンティティによって、異なるときに作動される、付記1に記載の方法。
(付記3) 前記第1の数学的群要素を、第1の数学的群のランダム要素として得るステップと、
前記第2の数学的群要素を、前記第1の数学的群とは別の第2の数学的群のランダム要素として得るステップと、
をさらに含む、付記1に記載の方法。
(付記4) 前記第1の数学的群が双線形要素を含む、付記3に記載の方法。
(付記5) 前記暗号化された第1のメッセージを前記暗号化された第2のメッセージと比較するステップが、
第1のランダム整数により冪乗された前記第1の関係キー要素と、第2のランダム整数により冪乗され、前記第2の平文値により冪乗された前記第4の関係キー要素とに対して、第1のペアリング関数演算を実行するステップと、
前記第1のランダム整数により冪乗され、前記第1の平文値により冪乗された前記第2の関係キー要素と、前記第2のランダム整数により冪乗された前記第3の関係キー要素とに対して、第2のペアリング関数演算を実行するステップと、
前記第1のペアリング関数演算と前記第2のペアリング関数演算の結果を比較するステップと、
を含む、付記1に記載の方法。
(付記6) 前記第1の平文値がパスワードを含む、付記1に記載の方法。
(付記7) 前記第1の関係キー要素が、前記サーバによって選択された第3のランダム整数により冪乗され、前記サーバによって選択された第4のランダム整数により冪乗された前記第1の数学的群要素を含み、前記第2の関係キー要素が、前記第1のユーザ装置によって選択された第5のランダム整数により冪乗され、前記第2のユーザ装置によって選択された第6のランダム整数により冪乗された前記第1の数学的群要素を含む、付記1に記載の方法。
(付記8) 前記第3の関係キー要素が、前記第4のランダム整数により冪乗された前記第2の数学的群要素を含み、前記第4の関係キー要素が、前記第5のランダム整数により冪乗され、前記第6のランダム整数により冪乗された前記第2の数学的群要素を含む、付記7に記載の方法。
(付記9) プロセッサによって実行されると前記プロセッサに動作を実行させるように構成される命令を含む非一時的コンピュータ可読媒体であって、前記動作が、
暗号化された第1のメッセージを第1のユーザ装置から受信する動作であり、前記暗号化された第1のメッセージが、第1の数学的群要素に基づく第1の関係キー要素を含み、前記暗号化された第1のメッセージが、前記第1の数学的群要素に基づく、第1の平文値により冪乗された第2の関係キー要素を含む、動作と、
暗号化された第2のメッセージを第2のユーザ装置から受信する動作であり、前記暗号化された第2のメッセージが、前記第1の数学的群要素とは異なる第2の数学的群要素に基づく第3の関係キー要素を含み、前記暗号化された第2のメッセージが、前記第2の数学的群要素に基づく、第2の平文値により冪乗された第4の関係キー要素を含む、動作と、
前記暗号化された第1のメッセージを前記暗号化された第2のメッセージと比較する動作であり、前記暗号化された第1のメッセージも又は前記暗号化された第2のメッセージも復号化されない、動作と、
前記比較に基づいて前記第1の平文値と前記第2の平文値とが同じであると判定する動作と、
前記第1の平文値と前記第2の平文値とが同じであることに基づいて、制限された内容に前記第2のユーザ装置がアクセスすることを許可する動作と、
を含む非一時的コンピュータ可読媒体。
(付記10) 前記第1のユーザ装置と前記第2のユーザ装置が、同じエンティティによって、異なるときに作動される、付記9に記載の非一時的コンピュータ可読媒体。
(付記11) 前記動作が、
前記第1の数学的群要素を、第1の数学的群のランダム要素として得る動作と、
前記第2の数学的群要素を、前記第1の数学的群とは別の第2の数学的群のランダム要素として得る動作と、
をさらに含む、付記9に記載の非一時的コンピュータ可読媒体。
(付記12) 前記第1の数学的群が双線形要素を含む、付記11に記載の非一時的コンピュータ可読媒体。
(付記13) 前記暗号化された第1のメッセージを前記暗号化された第2のメッセージと比較する前記動作が、
第1のランダム整数により冪乗された前記第1の関係キー要素と、第2のランダム整数により冪乗され、前記第2の平文値により冪乗された前記第4の関係キー要素とに対して、第1のペアリング関数演算を実行する動作と、
前記第1のランダム整数により冪乗され、前記第1の平文値により冪乗された前記第2の関係キー要素と、前記第2のランダム整数により冪乗された前記第3の関係キー要素とに対して、第2のペアリング関数演算を実行する動作と、
前記第1のペアリング関数演算と前記第2のペアリング関数演算の結果を比較する動作と、
を含む、付記11に記載の非一時的コンピュータ可読媒体。
(付記14) 前記第1の平文値がパスワードを含む、付記9に記載の非一時的コンピュータ可読媒体。
(付記15) 前記第1の関係キー要素が、認証サーバによって選択された第3のランダム整数により冪乗され、前記認証サーバによって選択された第4のランダム整数により冪乗された前記第1の数学的群要素を含み、前記第2の関係キー要素が、前記第1のユーザ装置によって選択された第5のランダム整数により冪乗され、前記第2のユーザ装置によって選択された第6のランダム整数により冪乗された前記第1の数学的群要素を含む、付記9に記載の非一時的コンピュータ可読媒体。
(付記16) 前記第3の関係キー要素が、前記第4のランダム整数により冪乗された前記第2の数学的群要素を含み、前記第4の関係キー要素が、前記第5のランダム整数により冪乗され、前記第6のランダム整数により冪乗された前記第2の数学的群要素を含む、付記15に記載の非一時的コンピュータ可読媒体。
(付記17) 第1のユーザ装置によって、第1の数学的群要素及び第2の数学的群要素を得るステップと、
前記第1のユーザ装置において、サーバから、第1のランダム整数により冪乗された前記第1の数学的群要素を受信するステップと、
前記第1のユーザ装置によって、第2のランダム整数を得るステップと、
前記第1のユーザ装置によって、第2のユーザ装置に、前記第2のランダム整数により冪乗された前記第2の数学的群要素を送信するステップと、
前記第1のユーザ装置において、前記第2のユーザ装置から、第3のランダム整数により冪乗された前記第1の数学的群要素を受信するステップと、
前記第1のユーザ装置の第1の関係キーを確立するステップであり、前記第1の関係キーの第1の要素が、前記第1のランダム整数により冪乗された前記第1の数学的群要素を含み、前記第1の関係キーの第2の要素が、前記第2のランダム整数により冪乗され、前記第3のランダム整数により冪乗された前記第1の数学的群要素を含む、ステップと、
を含む方法。
(付記18) 前記第1のユーザ装置によって、前記第1の関係キーを使用して、第1の平文値を第1のメッセージ中に関係暗号化するステップと、
前記第1のメッセージを、前記第1のユーザ装置から前記サーバに送信するステップと、
をさらに含む付記17に記載の方法。
(付記19) 前記第1の平文値を関係暗号化するステップが、
前記第1のユーザ装置によって第4のランダム整数を得るステップと、
前記第1の関係キーの前記第1の要素を、前記第4のランダム整数により冪乗するステップと、
前記第1の関係キーの前記第2の要素を、前記第4のランダム整数及び前記第1の平文値により冪乗するステップと、
を含む、付記18に記載の方法。
(付記20) 前記第1の平文値が、前記第2のユーザ装置によって前記サーバに提供された第2の平文値と同じであることに基づいて、制限された内容へのアクセスを、前記サーバから受信するステップ、をさらに含む付記18に記載の方法。