(57)【要約】      （修正有）【課題】関係線形暗号化方式を用いる生体認証の方法及び非一時的コンピュータ可読媒体を提供する。【解決手段】方法は、ノイズを有するパリティの学習に基づく関係線形暗号化方式（線形方式）を用いて暗号化される第１及び第２のバイオメトリックテンプレートを表す第１及び第２の線形暗号文を受信するステップと、第１及び第２線形暗号文の間の線形関係を発見するステップと、線形方式及び誤り訂正符号に基づく関係近似ハッシュ方式（近似方式）を用いて暗号化される第１及び第２のバイオメトリックテンプレートを表す第１及び第２の近似ハッシュ値を受信するステップと、ハミング距離の観点で第１及び第２近似ハッシュ値の間の近似を検出するステップと、近似及び線形関係に基づき、ユーザの同一性を認証するステップとを有する。【選択図】図４
2017201783.tif 000002
【特許請求の範囲】
【請求項１】
ＬＰＮ（learning  parity  with  noise）に少なくとも部分的に基づく関係線形暗号化方式を用いて暗号化される第１バイオメトリックテンプレートを表す第１線形暗号文を受信するステップと、
前記関係線形暗号化方式を用いて暗号化される第２バイオメトリックテンプレートを表す第２線形暗号文を受信するステップと、
線形関係秘密鍵を用いて、前記第１線形暗号文と前記第２線形暗号文との間の線形関係を発見するステップと、
関係近似ハッシュ方式を用いて暗号化される前記第１バイオメトリックテンプレートを表す第１近似ハッシュ値を受信するステップであって、前記関係近似ハッシュ方式は、前記関係線形暗号化方式及び誤り訂正符号（ＥＣＣ）に基づく、ステップと、
前記関係近似ハッシュ方式を用いて暗号化される前記第２バイオメトリックテンプレートを表す第２近似ハッシュ値を受信するステップと、
ハミング距離の観点で、前記第１近似ハッシュ値と前記第２近似ハッシュ値との間の近似を検出するステップと、
前記近似及び前記線形関係に基づき、ユーザの同一性を認証するステップと、
を有する方法。
【請求項２】
前記関係線形暗号化方式は、鍵生成アルゴリズム、暗号化アルゴリズム、及び解読アルゴリズムを含むＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式に更に基づく、請求項１に記載の方法。
【請求項３】
前記線形関係を発見するステップは、以下の検証アルゴリズムに従い実行され、
ｓｋＲｌｉｎ：＝（Ａ，τ，ｓｋ＿３）；
ｇｉｖｅｎ  ｃｙ，  ｃｘ，  ｚ，ｓｋＲｌｉｎ：
以下の不等式をチェックする：
ｄｉｓｔ（ＤｅｃＣＰＡ（ｓｋ＿３，ｃｘ＿０）＋ＤｅｃＣＰＡ（ｓｋ＿３，ｃｙ＿０）＋Ａ×ｚ）＜？２×τ×ｍ）、
ここで、ｃｙは前記第１線形暗号文を表し、
ｃｘは前記第２線形暗号文を表し、
ｓｋＲｌｉｎは線形関係秘密鍵を表し、
ｚは検証エンティティにより選択される特定値を表し、
Ａは第１整数×第２整数の次元を有するランダム２進行列を表し、
τはノイズ確率を表し、
ｓｋ＿３はＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の秘密鍵を表し、
ｃｘ＿０は前記第１線形暗号文の第１要素を表し、
ｃｙ＿０は前記第２線形暗号文の第１要素を表し、
ＤｅｃＣＰＡは前記解読アルゴリズムを表し、
ｄｉｓｔはハミング距離演算子を表し、
ｍは前記第１整数を表す、
請求項２に記載の方法。
【請求項４】
前記第１線形暗号文は、以下の線形ビットベクトル暗号化式に従い暗号化され、
ｍ１＝＜ｍ１ｉ＞ｎｉ＝１∈Ｆｎ２；
ｃｘ：＝ＥｎｃＣＰＡ（ｐｋ＿３，Ａ×ｍ１＋ｅ１）、ＥｎｃＣＰＡ（ｐｋ＿１，ｍ１）；
ｅ１∈Ｆｍ２、各々の要素は、確率τで１であり、その他の場合に０であり、
ｍ１はｎビットの第１メッセージを表し、
ｐｋ＿３は前記ＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の公開鍵を表し、
ｐｋ＿１は前記ＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の別の公開鍵を表し、
ｉはインデックス変数を表し、
ｎは第１体の次元を表し、
ＥｎｃＣＰＡは前記暗号化アルゴリズムを表し、
＋演算子はビット毎のＸＯＲ演算子を表し、
Ｆ２は基本数２の体を表す、
請求項３に記載の方法。
【請求項５】
前記ノイズ確率は約０．２５に等しい、請求項４に記載の方法。
【請求項６】
前記第１バイオメトリックテンプレートは高ｍｉｎエントロピ分布からサンプリングされる、請求項１に記載の方法。
【請求項７】
近似を検出するステップは、以下の近似検証アルゴリズムに従い実行され、
Ｚｒｓ：＝ＤＥＣＯＤＥ（ＤｅｃＣＰＡ（ｓｋｃｐａ，ｃｘ＿１＋ＤｅｃＣＰＡ（ｓｋｃｐａ，ｃｙ＿１）））；
Ｏｕｔｐｕｔ＝｛ＤＥＣＯＤＥが⊥を返す場合、拒否する；  ＶｅｒｉｆｙＬｉｎｅａｒ（ｓｋＲｌｉｎ，ｃｘ＿２，ｃｙ＿２，Ｘ○Ｚ）｝；
ここで、Ｚｒｓはランダム性の和を表し、
ＤＥＣＯＤＥはＥＣＣ復号化演算子を表し、
ＤｅｃＣＰＡはＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の解読アルゴリズムを表し、
ｃｘ＿１は前記第１線形暗号文の第２要素を表し、
ｃｙ＿１は前記第２線形暗号文の第２要素を表し、
ｃｘ＿２は前記第１線形暗号文の第３要素を表し、
ｃｙ＿２は前記第２線形暗号文の第３要素を表し、
ｓｋＲｌｉｎは関係線形鍵を表し、
Ｘはランダム行列を表し、
ｓｋｃｐａはＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の鍵生成アルゴリズムにより生成されるＣＰＡ秘密鍵を表し、
⊥は誤りを表し、
ｚは検証エンティティにより選択される特定値を表し、
ＶｅｒｉｆｙＬｉｎｅａｒは線形検証アルゴリズムを表す、
請求項１に記載の方法。
【請求項８】
前記第１近似ハッシュ値は、以下の近似暗号化式に従い生成され、
ｃｘｐ１：＝ＥｎｃＣＰＡ（ｐｋＣＰＡ，ｍ１＋ＥＮＣＯＤＥ（ｒ））；
ｃｘｐ２：＝ＥｎｃＸＬｉｎｅａｒ（ｐｋｘｌｉｎ，Ｘ○ｒ）；
ｃｘｐ：＝（ｃｘｐ１，ｃｘｐ２）、
ここで、ｃｘｐは前記第１近似ハッシュ値を表し、
ｃｘｐ１は前記第１近似ハッシュ値の第１部分を表し、
ｃｘｐ２は前記第１近似ハッシュ値の第２部分を表し、
ＥｎｃＣＰＡはＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の暗号化アルゴリズムを表し、
ｍ１は前記第１バイオメトリックテンプレートを表し、
ｐｋＣＰＡはＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の鍵生成アルゴリズムにより生成されるＣＰＡ公開鍵を表し、
ＥＮＣＯＤＥはＥＣＣ符号化演算子を表し、
ｒは近似乱数を表し、
Ｘはランダム行列を表し、
ＥｎｃＸＬｉｎｅａｒは第１線形暗号化アルゴリズムを表す、
請求項１に記載の方法。
【請求項９】
前記発見するステップ及び前記検出するステップは、ＡＮＤゲート及びＯＲゲートのみを使用して実行される、請求項１に記載の方法。
【請求項１０】
前記第１線形暗号文及び第１近似暗号文を登録暗号文として格納するステップ、を更に有する請求項１に記載の方法。
【請求項１１】
非一時的コンピュータ可読媒体であって、工程を実行するために又はその実行を制御するためにプロセッサにより実行可能な符号化されたプログラミングコードを有し、前記工程は、
ＬＰＮ（learning  parity  with  noise）に少なくとも部分的に基づく関係線形暗号化方式を用いて暗号化される第１バイオメトリックテンプレートを表す第１線形暗号文を受信するステップと、
前記関係線形暗号化方式を用いて暗号化される第２バイオメトリックテンプレートを表す第２線形暗号文を受信するステップと、
線形関係秘密鍵を用いて、前記第１線形暗号文と前記第２線形暗号文との間の線形関係を発見するステップと、
関係近似ハッシュ方式を用いて暗号化される前記第１バイオメトリックテンプレートを表す第１近似ハッシュ値を受信するステップであって、前記関係近似ハッシュ方式は、前記関係線形暗号化方式及び誤り訂正符号（ＥＣＣ）に基づく、ステップと、
前記関係近似ハッシュ方式を用いて暗号化される前記第２バイオメトリックテンプレートを表す第２近似ハッシュ値を受信するステップと、
ハミング距離の観点で、前記第１近似ハッシュ値と前記第２近似ハッシュ値との間の近似を検出するステップと、
前記近似及び前記線形関係に基づき、ユーザの同一性を認証するステップと、
を有する、非一時的コンピュータ可読媒体。
【請求項１２】
前記関係線形暗号化方式は、鍵生成アルゴリズム、暗号化アルゴリズム、及び解読アルゴリズムを含むＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式に更に基づく、請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１３】
前記線形関係を発見するステップは、以下の検証アルゴリズムに従い実行され、
ｓｋＲｌｉｎ：＝（Ａ，τ，ｓｋ＿３）；
ｇｉｖｅｎ  ｃｙ，ｃｘ，ｚ，ｓｋＲｌｉｎ：
以下の不等式をチェックする：
ｄｉｓｔ（ＤｅｃＣＰＡ（ｓｋ＿３，ｃｘ＿０）＋ＤｅｃＣＰＡ（ｓｋ＿３，ｃｙ＿０）＋Ａ×ｚ）＜？２×τ×ｍ）、
ここで、ｃｙは前記第１線形暗号文を表し、
ｃｘは前記第２線形暗号文を表し、
ｓｋＲｌｉｎは線形関係秘密鍵を表し、
ｚは検証エンティティにより選択される特定値を表し、
Ａは第１整数×第２整数の次元を有するランダム２進行列を表し、
τはノイズ確率を表し、
ｓｋ＿３はＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の秘密鍵を表し、
ｃｘ＿０は前記第１線形暗号文の第１要素を表し、
ｃｙ＿０は前記第２線形暗号文の第１要素を表し、
ＤｅｃＣＰＡは前記解読アルゴリズムを表し、
ｄｉｓｔはハミング距離演算子を表し、
ｍは前記第１整数を表す、
請求項１２に記載の非一時的コンピュータ可読媒体。
【請求項１４】
前記第１線形暗号文は、以下の線形ビットベクトル暗号化式に従い暗号化され、
ｍ１＝＜ｍ１ｉ＞ｎｉ＝１∈Ｆｎ２；
ｃｘ：＝ＥｎｃＣＰＡ（ｐｋ＿３，Ａ×ｍ１＋ｅ１）、ＥｎｃＣＰＡ（ｐｋ＿１，ｍ１）；
ｅ１∈Ｆｍ２、ここで各々の要素は、確率τで１であり、その他の場合に０であり；
ｍ１はｎビットの第１メッセージを表し、
ｐｋ＿３は前記ＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の公開鍵を表し、
ｐｋ＿１は前記ＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の別の公開鍵を表し、
ｉはインデックス変数を表し、
ｎは第１体の次元を表し、
ＥｎｃＣＰＡは前記暗号化アルゴリズムを表し、
＋演算子はビット毎のＸＯＲ演算子を表し、
Ｆ２は基本数２の体を表す、
請求項１３に記載の非一時的コンピュータ可読媒体。
【請求項１５】
前記ノイズ確率は約０．２５に等しい、
請求項１４に記載の非一時的コンピュータ可読媒体。
【請求項１６】
前記第１バイオメトリックテンプレートは高ｍｉｎエントロピ分布からサンプリングされる、請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１７】
前記近似を検出するステップは、以下の近似検証アルゴリズムに従い実行され、
Ｚｒｓ：＝ＤＥＣＯＤＥ（ＤｅｃＣＰＡ（ｓｋｃｐａ，ｃｘ＿１＋ＤｅｃＣＰＡ（ｓｋｃｐａ，ｃｙ＿１）））；
Ｏｕｔｐｕｔ＝｛ＤＥＣＯＤＥが⊥を返す場合、拒否する；
ＶｅｒｉｆｙＬｉｎｅａｒ（ｓｋＲｌｉｎ，ｃｘ＿２，ｃｙ＿２，Ｘ○Ｚ）｝；
ここで、Ｚｒｓはランダム性の和を表し、
ＤＥＣＯＤＥはＥＣＣ復号化演算子を表し、
ＤｅｃＣＰＡはＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の解読アルゴリズムを表し、
ｃｘ＿１は前記第１線形暗号文の第２要素を表し、
ｃｙ＿１は前記第２線形暗号文の第２要素を表し、
ｃｘ＿２は前記第１線形暗号文の第３要素を表し、
ｃｙ＿２は前記第２線形暗号文の第３要素を表し、
ｓｋＲｌｉｎは関係線形鍵を表し、
Ｘはランダム行列を表し、
ｓｋｃｐａはＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の鍵生成アルゴリズムにより生成されるＣＰＡ秘密鍵を表し、
⊥は誤りを表し、
ｚは検証エンティティにより選択される特定値を表し、
ＶｅｒｉｆｙＬｉｎｅａｒは線形検証アルゴリズムを表す、
請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記第１近似ハッシュ値は、以下の近似暗号化式に従い生成され、
ｃｘｐ１：＝ＥｎｃＣＰＡ（ｐｋＣＰＡ，ｍ１＋ＥＮＣＯＤＥ（ｒ））；
ｃｘｐ２：＝ＥｎｃＸＬｉｎｅａｒ（ｐｋｘｌｉｎ，Ｘ○ｒ）；
ｃｘｐ：＝（ｃｘｐ１，ｃｘｐ２）、
ここで、ｃｘｐは前記第１近似ハッシュ値を表し、
ｃｘｐ１は前記第１近似ハッシュ値の第１部分を表し、
ｃｘｐ２は前記第１近似ハッシュ値の第２部分を表し、
ＥｎｃＣＰＡはＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の暗号化アルゴリズムを表し、
ｍ１は前記第１バイオメトリックテンプレートを表し、
ｐｋＣＰＡはＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の鍵生成アルゴリズムにより生成されるＣＰＡ公開鍵を表し、
ＥＮＣＯＤＥはＥＣＣ符号化演算子を表し、
ｒは近似乱数を表し、
Ｘはランダム行列を表し、
ＥｎｃＸＬｉｎｅａｒは第１線形暗号化アルゴリズムを表す、
請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１９】
前記発見するステップ及び前記検出するステップは、ＡＮＤゲート及びＯＲゲートのみを使用して実行される、請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記工程は、前記第１線形暗号文及び第１近似暗号文を登録暗号文として格納するステップ、を更に有する、請求項１１に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］
本願は、２０１４年５月２５日に出願した米国特許出願第１４/２８７，０５１号の一部継続出願である、２０１５年７月１０日の出願した米国特許出願第１４/７９７，０２５号の一部継続出願である。
【０００２】
［技術分野］
本願明細書で議論される実施形態は、ノイズ存在下におけるパリティ値の同定（learning  parity  with  noise：ＬＰＮ）に基づく関係暗号化に関する。
【背景技術】
【０００３】
ユーザ認証の形式は、生体認証を含み得る。生体認証は、通常、ユーザに対して一意であるユーザの生体特徴を測定するステップを含む。測定された生体特徴、又はその表現は、次に、ユーザの同一性を認証する基礎として用いられる。生体特徴は、ユーザの指紋、虹彩、静脈、ＤＡＮ（deoxyribonucleic  acid）のセクション、等を含み得る。生体認証は、パスワードを記憶している必要がなく、ユーザを認証することが可能であるという利点を有し得る。生体特徴は不変であるので、生体認証システムにおいてプライバシが重要である。さらに、生体データは、非常に不均一である。
【０００４】
本願明細書で請求される主題は、上述のような欠点を解決する実施形態や上述のような環境でのみ機能する実施形態に限定されない。むしろ、この背景技術は、単に、本願明細書に記載される複数の実施形態が実施される技術分野の一例を説明するために提供される。
【発明の概要】
【０００５】
一実施形態の一態様によると、方法は、第１線形暗号文を受信するステップを有する。第１線形暗号文は、関係線形暗号化方式を用いて暗号化される第１バイオメトリックテンプレートを表して良い。関係線形暗号化方式は、雑音存在下におけるパリティ値の同定（learning  parity  with  noise：ＬＰＮ）に基づいて良い。方法は、第２線形暗号文を受信するステップを有して良い。第２線形暗号文は、関係線形暗号化方式を用いて暗号化される第２バイオメトリックテンプレートを表して良い。方法は、第１線形暗号文と第２線形暗号文との間の線形関係を、線形関係秘密鍵を用いて発見するステップを有して良い。方法は、第１近似ハッシュ値を受信するステップを有して良い。第１近似ハッシュ値は、関係近似ハッシュ方式を用いて暗号化される第１バイオメトリックテンプレートを表して良い。関係近似ハッシュ方式は、関係線形暗号化方式及び誤り訂正符号（ＥＣＣ）に基づいて良い。方法は、第２近似ハッシュ値を受信するステップを有して良い。第２近似ハッシュ値は、関係近似暗号化方式を用いて暗号化される第２バイオメトリックテンプレートを表して良い。方法は、ハミング距離の観点で第１近似ハッシュ値及び第２近似ハッシュ値の間の近似を検出するステップを有して良い。方法は、近似及び線形関係に基づき、ユーザの同一性を認証するステップを有して良い。
【０００６】
実施形態の目的及び利点が理解され、少なくとも特に特許請求の範囲で指摘された要素、特徴及び組合せを用いて達成されるだろう。
【０００７】
上述の全体的説明及び以下の詳細な説明の両方は、例示及び説明のためであり、本発明の範囲を限定しないことが理解される。
【図面の簡単な説明】
【０００８】
例示的な実施形態は、添付の図面を用いて、更なる特異性及び詳細事項と共に記載され説明される。
【図１】幾つかの実施形態が実装され得る例示的な動作環境のブロック図である。
【図２】例示的な生体認証環境のブロック図である。
【図３】関係暗号化のために構成されるコンピューティングシステムのブロック図である。
【図４】生体認証の例示的な方法のフロー図である。  全ての図は本願明細書に記載の少なくとも１つの実施形態に従って構成される。
【発明を実施するための形態】
【０００９】
生体認証の課題は、ユーザが認証の基礎として用いられるバイオメトリック特徴を変更できないことであり得る。例えば、ユーザは、ユーザの指紋又はユーザの虹彩パターンのようなユーザの１又は複数のユニークな特徴を表すバイオメトリックデータを含むバイオメトリックテンプレートを登録して良い。バイオメトリックテンプレートが危険に晒される場合、ユーザは、バイオメトリックテンプレートにより表されるユニークな特徴を変更することができない。したがって、一旦、危険に晒されると、別のバイオメトリックテンプレートが登録されて良く、又は、別のバイオメトリック特徴のバイオメトリックテンプレートが登録されて良い。少なくともこの理由から、生体認証システムは、強力なプライバシ保証の利益を享受し得る。
【００１０】
参照により全体が本願明細書に組み込まれる２０１４年５月２５日に出願した米国特許出願番号第１４/２８７，０５１号は、関係暗号化と呼ばれる暗号プリミティブを記載している。関係暗号化は、公開鍵の知識だけを有する、意味論的にセキュアな公開鍵暗号化方式である。
【００１１】
さらに、関係暗号化では、準信頼できるエンティティが関係鍵を提供されて良い。関係鍵を使用して、準信頼できるエンティティは、暗号文の間の１又は複数の関係を発見し得るが、暗号文が生成された平文ベクトルを解読し復元することはできない。関係暗号化は、ビットベクトル及びｐ−ａｒｙベクトルの間の線形関係を発見するために、出願番号第１４/２８７，０５１号において開発された。関係暗号化を用いて、関係暗号化方式は、ハミング距離の観点で暗号文の間の近似を検出するために使用されて良い。関係暗号化は、準信頼できるサーバに認証を実行させながら、生体認証方式のバイオメトリックテンプレートに強力なプライバシ保証を提供する。
【００１２】
出願番号第１４/２８７，０５１号の関係暗号化は、平文ベクトルが実質的に均一にランダムであるという仮定に基づいて良い。実際に、及び特定の生体情報では、平文ベクトルが実質的に均一にランダムであるというこの仮定は維持できない。出願番号第１４/２８７，０５１号の関係暗号化は、線形関係ハッシュ及び誤り訂正符号に基づいて良い。
【００１３】
参照により全体が本願明細書に組み込まれる米国特許出願番号第１４/７９７，０２５号、２０１６年３月２２日出願は、関係暗号化の拡張を記載している。したがって、該拡張は、生体情報の更なる多様性及び更なる実用的分配を超えてセキュアである。例えば、関係暗号化の拡張は、平文ベクトルが高ｍｉｎエントロピを有するという仮定に基づく。出願番号第１４/７９７，０２５号の関係暗号化の拡張は、線形関係ハッシュ、誤り訂正符号、及びエクストラクタ（extractor）に基づいて良い。
【００１４】
本開示に記載される幾つかの実施形態は、別の例示的な関係暗号化を含む。本願明細書に記載の関係暗号化方式は、暗号学的に困難な、ノイズ存在下におけるパリティ値の同定（learning  parity  with  noise：ＬＰＮ）問題に基づく。本開示に記載の関係暗号化方式は、高い予測不可能性を有する不均一な生体データよりセキュアである。本願明細書に記載の関係暗号化方式は、出願番号第１４/７９７，０２５号及び出願番号第１４/２８７，０５１号に記載の関係暗号化よりも効率的であり得る。本願明細書に記載の関係暗号化方式は、線形関係ハッシュ及び誤り訂正符号に基づいて良く、平文ベクトルが高いｍｉｎエントロピを有するという仮定に基づいて良い。本発明の実施形態を、添付の図面を参照して以下に説明する。
【００１５】
図１は、本願明細書に記載の少なくとも１つの実施形態により配置される例示的な動作環境１００のブロック図を示す。動作環境１００では、関係暗号化が実行されて良い。関係暗号化は、第１エンティティ１５２が、第２エンティティ１５０により提供される２以上の暗号文の間の１又は複数の関係を決定できるようにする暗号プリミティブを有して良い。特に、関係暗号化は、第１エンティティ１５２に２以上の暗号文の間の線形関係を発見させ、２以上の暗号文の間の近似を検出させる。さらに、関係暗号化は、第１エンティティ１５２に暗号文から平文を復元させ、又は特定の本物の暗号文との特定の関係を有する不正暗号文を構築させる。
【００１６】
関係暗号化は、種々の環境において実装されて良い。例えば、関係暗号化は、個人が彼らの位置を非公開に保ちたいと望む社会環境において実施されて良いが、準信頼できるサービスは、位置同士の近似の検出を可能にし得る。さらに、関係暗号化は、画像比較環境において実施されて良い。近似は、画像同士の類似性を決定するために、データベースからの画像の間で検出されて良い。画像のプライバシは維持されて良い。ユーザは、データベースにある画像に触れずに、関係暗号化を用いて画像を検索して良い。さらに、関係暗号化は、私的データ記憶環境において実施されて良い。ユーザは、そのデータを暗号化し、暗号化データをデータベースに通信して良い。分析（例えば、記憶、クラスタリング、等）は、暗号化データが解読されるリスクを伴わず、暗号化データに対して実行され得る。
【００１７】
例えば、第２エンティティ１５０に関連付けられるユーザ装置１０２は、１又は複数の平文ベクトル１４２を受信して良い。平文ベクトル１４２は、バイオメトリックテンプレート、位置情報、等のような任意のデータセットを有して良い。第２エンティティ１５０は、第１エンティティ１５２の認証サーバ１４０に、平文ベクトル１４２の暗号化バージョンを含む、第１暗号文又はハッシュ値を通信して良い。後に、ユーザ装置１０２は、別の平文ベクトル１４２を受信して良い。第２の平文ベクトル１４２の暗号化バージョンを含む第２暗号文は、第１エンティティ１５２の認証サーバ１４０に通信されて良い。第１エンティティ１５２は、第１暗号文と第２暗号文との間に線形関係があるか否かを発見して良く、第１暗号文と第２暗号文との間の近似を検出して良い。幾つかの実施形態では、近似は、ハミング距離の観点であって良い。
【００１８】
しかしながら、関係暗号化は、第１エンティティ１５２が、第１及び第２暗号文から平文ベクトル１４２を構築することを許さない。さらに、関係暗号化は、第１エンティティ１５２が、第１暗号文及び／又は第２暗号文と特定の線形関係及び／又は特定の近似を有する第３暗号文を構築することを許さない。図１は、２つの平文ベクトル１４２と、したがって２つの暗号文と、を有する実施形態を示す。幾つかの実施形態では、２つより多い平文ベクトル１４２と、したがって２つより多い暗号文とが、動作環境１００に含まれる認証サーバ１４０に通信されて良い。
【００１９】
関係暗号化は、１又は複数の関係鍵を有して良い。関係鍵は、公開及び／又は署名鍵と同様であっても良く、第１エンティティ１５２に提供され又はそれにより生成されて良い。関係鍵は、暗号文の間の関係の決定を可能にし得るが、暗号文の復号化又は平文ベクトル１４２の復元を許さない。さらに、関係鍵は、特定の暗号文との特定の関係を有する暗号文の構築を許さない。
【００２０】
幾つかの実施形態では、関係暗号化は、アルゴリズムのタプルを有する関係について、関係ハッシュ方式に従って定められて良い。アルゴリズムは、鍵生成アルゴリズム、第１暗号化アルゴリズム、第１解読アルゴリズム、、第２暗号化アルゴリズム、第２の解読アルゴリズム、及び検証アルゴリズムを有して良い。関係は、３つのセットの部分集合として定められて良い。さらに、関係及びアルゴリズムは、１又は複数の正確性条件を満たして良い。例えば、関係は、以下の例示的な正確性条件を満たして良い。
Ｒ⊆ＸｘＹｘＺ
（ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ）←ＫｅｙＧｅｎ（１λ）
ｃｘ←ＥｎｃＸ（ｐｋｘ，ｘ）
ｃｙ←ＥｎｃＹ（ｐｋｙ，ｙ）
ｂ←Ｖｅｒｉｆｙ（ｓｋＲ，ｃｘ，ｃｙ，ｚ）
ｂ≒Ｒ（ｘ，ｙ，ｚ）
正確性条件では、Ｒは関係を表す。演算子⊆は、部分集合演算子を表す。パラメータＸ、Ｙ、Ｚはセットを表す。パラメータｘは、平文ベクトル１４２のうちの第１平文ベクトルを表す。パラメータｙは、平文ベクトル１４２のうちの第２平文ベクトルを表す。ＫｅｙＧｅｎは、鍵生成アルゴリズムを表す。ＥｎｃＸは、第１暗号化アルゴリズムを表す。ＥｎｃＹは、第２暗号化アルゴリズムを表す。Ｖｅｒｉｆｙは、検証アルゴリズムを表す。演算子←は、出力演算子を表す。パラメータｐｋｘは、第１公開鍵を表す。パラメータｐｋｙは、第２公開鍵を表す。パラメータｓｋｘは、第１秘密鍵を表す。パラメータｓｋｙは、第２秘密キーを表す。パラメータｓｋＲは、関係秘密鍵を表す。パラメータｃｘは、第１暗号文を表す。パラメータｃｙは、第２暗号文を表す。パラメータｂは、検証アルゴリズムによる出力を表す。パラメータλは、セキュリティパラメータを表す。パラメータｚは、検証エンティティにより選択され得る特定値を表す。演算子≒は、合同演算子を表す。正確性条件では、検証アルゴリズムからの出力は、圧倒的な確率を有する関係と合致する。
【００２１】
関係暗号化方式は、関係鍵が、特定の暗号文との特定の関係を有する暗号文の構築を許さない、及び特定の暗号文からの平文ベクトル１４２Ａの復元を許さない、という意味でセキュアであり得る。例えば、関係暗号化方式は、以下の式が保たれる場合にセキュアであり得る。
【００２２】
１）ＫｅｙＧｅｎ（１λ）を行うアルゴリズムをＫｘ（１λ）として、出力（ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ）及び出力（ｐｋｘ，ｓｋｘ）を取り入れる。その結果、（Ｋｘ，ＥｎｃＸ，ＤｅｃＸ）はＩＮＤ−ＣＰＡセキュアである。
【００２３】
２）ＫｅｙＧｅｎ（１λ）を行うアルゴリズムをＫｙ（１λ）として、出力（ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ）及び出力（ｐｋｘ，ｓｋｘ）を取り入れる。その結果、（Ｋｙ，ＥｎｃＹ，ＤｅｃＹ）はＩＮＤ−ＣＰＡセキュアである。
【００２４】
３）ＫｅｙＧｅｎ（１λ）を行うアルゴリズムをＫＲ（１λ）として、出力（ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ）及び出力（ｐｋｘ，ｓｋｘ，ｓｋＲ）を取り入れる。その結果、ＥｎｃＸ（ｐｋｘ，・）及びＥｎｃＹ（ｐｋｙ，・）は、ｓｋＲが分かる場合に、一方向性関数である。
【００２５】
上述の式では、ｐｋｘ，ｓｋｘ，ｐｋｙ，ｓｋｙ，ｓｋＲ，ＫｅｙＧｅｎ，ＥｎｃＸ（）及びＥｎｃＹ（）は、上述の通りである。ＤｅｃＸは、第１解読アルゴリズムを表す。ＤｅｃＹは、第２解読アルゴリズムを表す。Ｋｘ（）、Ｋｙ（）、及びＫＲ（）は、上記の式において説明した通りである。記号「・」は任意の値を示す。用語「ＩＮＤ−ＣＰＡ」は、indistinguishability  under  chosen−plaintext  attackの略である。幾つかの他の実施形態では、（Ｋｙ，ＥｎｃＹ，ＤｅｃＹ）及び／又は（Ｋｘ，ＥｎｃＸ，ＤｅｃＸ）は、ＩＮＤ−ＣＣＡ（indistinguishability  under  chosen  ciphertext  attack）（例えば、ＩＮＤ−ＣＣＡ１又はＩＮＤ−ＣＣＡ２）又は任意の他の適切なセキュリティメトリックのような別の計算セキュリティメトリックに従ってセキュアであって良い。
【００２６】
さらに、幾つかの実施形態では、関係暗号化方式は、関係線形暗号化方式を有して良い。関係線形暗号化方式は、以下の例示的な線形関係式に従って関係を定めて良い。
Ｒ＝｛（ｘ，ｙ，ｚ）｜ｘ＋ｙ＝ｚ∧ｘ，ｙ，ｚ∈Ｆｎｐ｝
線形関係式では、Ｒ、ｘ、ｙ、及びｚは、上述の通りである。演算子∈は、メンバーシップ演算子を表す。演算子｜は、「〜の条件を満たす」（such  that）演算子を表す。演算子∧は、論理結合演算子を表す。パラメータＦは体（field）を表す。添え字ｎは、通常、体の次元を表す。体の次元は、本願明細書の別の場所で議論するようなキーのうちの１又は複数の長さを有しても良い。添え字ｐは、体の基本数（base−number）を表す。例えば、Ｆ１０３では、体は、１０の次元、及び３の基本数を有する。３の基本数は、体の各々の要素が０、１、又は２であることを示す。
【００２７】
さらに、幾つかの実施形態では、関係暗号化方式は、以下の例示的な近似式に従って関係を定める関係近似暗号化方式を有して良い。
Ｒδ＝｛（ｘ，ｙ）｜ｄｉｓｔ（ｘ，ｙ）≦δ∧ｘ，ｙ∈Ｆｋｐ｝
近似式では、Ｒ、ｘ、∧、∈、及びｙは、上述の通りである。パラメータδは、親密さ（closeness）を定める距離を表す。演算子ｄｉｓｔは、ハミング距離を表す。線形関係式におけるように、パラメータＦは体を表す。しかしながら、近似式における体は、線形関係式における体とは異なる次元を有しても良い。近似式における体の次元は、線形誤り訂正符号に関連しても良い。
【００２８】
本願明細書で議論する関係暗号化方式は、図１の動作環境１００において実施されて良い。関係暗号化方式は、第２エンティティ１５０が、暗号化情報を第１エンティティ１５２へ通信することを可能にし、第１エンティティ１５２が、暗号化情報の間の線形関係を発見し及び／又は暗号化情報の間の近似を決定することを可能にして良い。
【００２９】
動作環境１００は、第２エンティティ１５０に関連付けられるユーザ装置１０２と、第１エンティティ１５２に関連付けられる認証サーバ１４０と、を有して良い。ユーザ装置１０２及び認証サーバ１４０は、関係暗号化を実行するために、動作環境１００の中に実装されて良い。ユーザ装置１０２及び認証サーバ１４０は、ネットワーク１０７を介して通信するよう構成されて良い。例えば、１又は複数の暗号文、認証メッセージ、及び関係暗号化に関連する他のデータ及び情報は、ネットワーク１０７を介してユーザ装置１０２と認証サーバ１４０との間で通信されて良い。ユーザ装置１０２、認証サーバ１４０、及びネットワーク１０７の各々は、以下に簡単に説明される。
【００３０】
ネットワーク１０７は、有線又は無線であって良い。ネットワーク１０７は、スター構成、トークンリング構成若しくは他の構成を含む多数の構成を有して良い。さらに、ネットワーク１０７は、ＬＡＮ（local  area  network）、ＷＡＮ（wide  area  network）（例えば、インターネット）、及び／又は複数の装置が通信できる他の相互接続されたデータ経路を有して良い。幾つかの例では、ネットワーク１０７は、ピアツーピアネットワークを有して良い。ネットワーク１０７は、種々の異なる通信プロトコルでデータを送信する通信ネットワークの一部に結合され又はそれを含んで良い。幾つかの例では、ネットワーク１０７は、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信ネットワーク又はＳＭＳ（short  messaging  service）、ＭＭＳ（multimedia  messaging  service）、ＨＴＴＰ（hypertext  transfer  protocol）、Ｗｉ−Ｆｉ、直接データ接続、ＷＡＰ（wireless  application  protocol）、電子メール等を介することを含むデータを送信及び受信するセルラ通信ネットワークを有して良い。
【００３１】
ユーザ装置１０２は、ネットワーク１０７を介する、関係暗号化に関連する情報及び／又はデータ（例えば、暗号文、鍵、平文ベクトル１４２、等）の生成及び通信を可能にするプロセッサ、メモリ、及び通信能力を有する任意のコンピューティング装置を有して良い。ユーザ装置１０２の幾つかの例は、携帯電話機、スキャニング装置、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、セットトップボックス、又はコネクテッドデバイス（例えば、スマートウォッチ、スマート眼鏡、スマート歩数計、又は任意の他のコネクテッドデバイス）を有して良い。
【００３２】
ユーザ装置１０２は、関係暗号化モジュール１１０を有して良い。関係暗号化モジュール１１０は、平文ベクトル１４２を受信し、平文ベクトル１４２の暗号化に関連する１又は複数の工程を実行するよう構成されて良い。例えば、関係暗号化モジュール１１０は、平文ベクトル１４２の暗号化において使用される１又は複数の鍵を生成するよう構成されて良い。さらに、関係暗号化モジュール１１０は、平文ベクトル１４２に基づき１又は複数の暗号文を生成して良い。関係暗号化モジュール１１０により生成される暗号文は、認証サーバ１４０に通信されて良い。暗号文の間の関係（例えば、線形及び近似）に基づき、第２エンティティ１５０の同一性が認証されて良く又は認証されなくて良い。
【００３３】
特に、図１の実施形態では、関係暗号化モジュール１１０は、設定モジュール１４４、線形暗号化モジュール１１２、及び近似暗号化モジュール１１４を有して良い。
【００３４】
設定モジュール１４４は、１又は複数の鍵及び／又は１又は複数のアルゴリズム（例えば、暗号化アルゴリズム、解読アルゴリズム、及び検証アルゴリズム）を生成する１又は複数の工程を実行するよう構成されて良い。鍵は、関係暗号化モジュール１１０及び／又は認証サーバ１４０の関係認証モジュール１０８において使用されて良い。設定モジュール１４４により生成され得る鍵の幾つかの例は、線形公開鍵、線形秘密鍵、関係線形鍵、近似公開鍵、近似秘密鍵、及び近似関係秘密鍵、を含み得る。鍵の幾つかの追加の詳細事項は、本開示の別の場所で提供される。
【００３５】
鍵は、ネットワーク１０７を介して通信されて良い。例えば、図示の実施形態では、設定モジュール１４４は、ユーザ装置１０２に含まれて良い。設定モジュール１４４は、鍵を生成して良く、その何らかの部分を認証サーバ１４０に通信して良い。認証サーバ１４０は、鍵を用いて第２エンティティ１５０の同一性を認証して良く、又は認証しなくて良い。例えば、認証は、平文ベクトル１４２の暗号文の間の近似及び線形関係に基づいて良い。上述及び他の実施形態では、認証サーバ１４０は、線形関係秘密鍵を用いて、平文ベクトル１４２の線形暗号文の間の線形関係を発見して良い。さらに、認証サーバ１４０は、近似関係秘密鍵を用いて、平文ベクトル１４２の暗号文の間の近似を検出して良い。
【００３６】
設定モジュール１４４により生成される鍵の別の部分は、線形暗号化モジュール１１２及び／又は近似暗号化モジュール１１４により使用されて良い。例えば、線形暗号化モジュール１１２は、線形公開鍵及び線形秘密鍵を用いて、平文ベクトル１４２の線形暗号文を生成して良い。線形公開鍵及び線形秘密鍵は、ＬＰＮに基づく工程の実施と共に、ＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式に基づいて良い。
【００３７】
追加又は代替で、近似暗号化モジュール１１４は、設定モジュール１４４により生成される１又は複数の鍵に基づき、平文ベクトル１４２のハッシュ値を生成して良い。例えば、平文ベクトル１４２のハッシュ値は、ＣＰＡ（chosen−plaintext  attack）公開鍵、ＣＰＡ秘密鍵、線形公開鍵、線形秘密鍵、又はそれらの何らかの組合せに基づき生成されて良い。
【００３８】
幾つかの実施形態では、設定モジュール１４４は、リモートに配置されて良い。例えば、設定モジュール１４４は、リモートサーバ（図示しない）に配置されて良い。上述及び他の実施形態では、設定モジュール１４４は、ユーザ装置１０２及び／又は認証サーバ１４０に通信される鍵を生成して良い。
【００３９】
線形暗号化モジュール１１２は、線形暗号文を構築するために平文ベクトル１４２を暗号化することに関連する及び／又は線形暗号文を解読することに関連する１又は複数の工程を実行するよう構成されて良い。線形暗号化モジュール１１２は、関係線形暗号化方式に従い、暗号化及び解読工程を実行して良い。関係線形暗号化方式は、ＬＰＮ（learning  parity  with  noise）及び／又はＬＰＮの特徴を実装する線形関係ハッシュに基づいて良い。
【００４０】
線形暗号化モジュール１１２により実施される関係線形暗号化方式は、１又は複数の線形暗号文を生成して良い。例えば、線形暗号化モジュール１１２は、平文ベクトル１４２のうちの第１平文ベクトルに基づき第１線形暗号文を、及び平文ベクトル１４２のうちの第２平文ベクトルに基づき第２線形暗号文を、生成して良い。線形暗号文は、認証サーバ１４０に通信されて良い。線形暗号文から、認証サーバ１４０は、線形関係秘密鍵を用いて、平文ベクトル１４２の間の線形関係を発見して良い。
【００４１】
近似暗号化モジュール１１４は、近似ハッシュ値を構築するために平文ベクトル１４２を暗号化することに関連する１又は複数の工程を実行するよう構成されて良い。近似暗号化モジュール１１４は、関係近似ハッシュ方式に基づき工程を実行して良い。関係近似ハッシュ方式は、関係線形暗号化方式及び誤り訂正符号（ＥＣＣ）に更に基づいて良い。
【００４２】
例えば、近似暗号化モジュール１１４は、平文ベクトル１４２のうちの第１平文ベクトルに基づき第１近似ハッシュ値を、及び平文ベクトル１４２のうちの第２平文ベクトルに基づき第２近似ハッシュ値を、生成して良い。近似ハッシュ値は、認証サーバ１４０に通信されて良い。認証サーバ１４０は、近似関係秘密鍵を用いてハミング距離の観点で近似ハッシュ値の間の近似を検出して良い。
【００４３】
認証サーバ１４０は、ハードウェアサーバ又はサーバとして機能するよう構成される別のプロセッサに基づくコンピューティング装置を有して良い。認証サーバ１４０は、関係認証モジュール１０８及びメモリ１２２を有して良い。メモリ１２２は、後述するメモリ３０８と実質的に同様であって良い。メモリ１２２の幾つかの追加の詳細事項は、本願明細書の他の場所で提供される。
【００４４】
関係認証モジュール１０８は、線形暗号文及び／又は近似ハッシュ値、関係秘密鍵、検証アルゴリズム、又はそれらの何らかの組み合わせを、関係暗号化モジュール１１０又は別のソースから受信するよう構成されて良い。関係認証モジュール１０８は、暗号文の間の線形関係を発見して良く、及び／又は近似ハッシュ値の間の近似を検出して良い。関係認証モジュール１０８は、関係秘密鍵及び／又は検証アルゴリズムを用いて、暗号文の間の線形関係を発見し及び近似を検出して良い。
【００４５】
関係認証モジュール１０８は、線形認証モジュール１３２、及び近似認証モジュール１２８を有して良い。図１に示さないが、幾つかの実施形態では、設定モジュール１４４、又は設定モジュール１４４に属する１又は複数の工程を実行するよう構成されるモジュールは、関係認証モジュール１０８に含まれて良い。
【００４６】
線形認証モジュール１３２は、線形暗号文に関連する１又は複数の工程を実行するよう構成されて良い。例えば、線形認証モジュール１３２は、線形暗号文のうちの２以上の間の線形関係を発見するよう構成されて良い。
【００４７】
線形関係の発見は、ハミング距離の関数であって良い。例えば、線形認証モジュール１３２は、第３秘密鍵及び第１線形暗号文の第１要素に適用されるＩＮＤ＿ＣＣＡセキュア解読アルゴリズム（ＤｅｃＣＰＡ）、第３秘密鍵及び第２線形暗号文の第１要素に適用されるＤｅｃＣＰＡ、及び第１整数×第２整数のサイズのランダム２進行列、の和を計算して良い。線形認証モジュール１３２は、次に、この和と、検証エンティティにより選択され得る特定値（上述の「ｚ」）との積を計算して良い。線形認証モジュール１３２は、次に、和と特定値との積のハミング距離が、２の値、確率、及び第１整数の積より小さい又はそれに等しいか否かを決定して良い。
【００４８】
近似認証モジュール１２８は、近似ハッシュ値に関連する１又は複数の工程を実行するよう構成されて良い。例えば、近似認証モジュール１２８は、２以上の近似ハッシュ値の間の近似を検出するよう構成されて良い。幾つかの実施形態では、近似認証モジュール１２８は、本開示の他の場所に記載される近似検証アルゴリズムに従い実行されて良い。
【００４９】
関係暗号化モジュール１１０、線形暗号化モジュール１１２、近似暗号化モジュール１１４、設定モジュール１４４、関係認証モジュール１０８、線形認証モジュール１３２、及び近似認証モジュール１２８は、集合的に、関係モジュールと表されて良い。
【００５０】
関係モジュールは、（例えば、１又は複数の工程を実行する又はその実行を制御する）プロセッサ、マイクロプロセッサ、ＦＰＧＡ（field−programmable  gate  array）又はＡＳＩＣ（application−specific  integrated  circuit）を含むハードウェアを用いて実装できる。幾つかの他の例では、関係モジュールは、ハードウェア及びソフトウェアの組み合わせを用いて実装できる。ソフトウェアでの実装は、コンピューティングシステム（例えば、ユーザ装置１０２及び認証サーバ１４０）のハードウェアに含まれ得るような１又は複数のトランジスタ又はトランジスタ要素の迅速な起動及び停止を含み得る。追加で、ソフトウェア定義命令は、トランジスタ要素の中の情報に対して作用して良い。ソフトウェア命令の実装は、電子経路を少なくとも一時的に再構成し、コンピューティングハードウェアを変換して良い。
【００５１】
次の部分では、ＬＰＮ（learning  parity  with  noise）が導入される。ＬＰＮの導入に続き、ＬＰＮに基づく線形関係ハッシュ方式が記載される。線形関係ハッシュに続き、線形関係ハッシュを実施する関係線形暗号化方式が記載される。関係線形暗号化方式は、線形関係ハッシュ方式及び公開鍵暗号化方式に従い定められて良い。関係線形暗号化方式に続き、関係近似ハッシュ方式が記載される。関係近似ハッシュ方式は、関係線形暗号化方式及び誤り訂正符号（ＥＣＣ）に基づく。
【００５２】
＜ＬＰＮ（LEARNING  PARITY  WITH  NOISE）＞
ブール代数におけるパリティ関数は、入力ベクトルが１の（１’ｓ）奇数を有する場合に「１」を出力して良い。パリティ関数の一例は、２つの入力ベクトルを受け取る「ＸＯＲ」関数である。パリティ値の同定（Parity  learning）は、機械学習における近似を表す問題である。パリティ値の同定問題を解決するアルゴリズムが開発されている。アルゴリズムでは、関数は、幾つかの入力サンプルと、関数が幾つかの場所におけるビットのパリティを計算するという仮定に基づき、推定される。パリティ値の同定では、入力サンプルは、入力（例えば、独立値）、及び該入力に適用される関数の値（例えば、独立値から計算される従属値）を有する。入力サンプルは、アルゴリズムの複雑性を低減し得る、関数の分布に渡り提供されて良い。
【００５３】
ＬＰＮは、暗号化及び他の用途において見られるある種のパリティ値の同定である。ＬＰＮでは、入力サンプルは、何らかの誤り（例えば、ノイズ）を含み得る。例えば、ＬＰＮでは、入力サンプルは、入力（例えば、独立値）、及び何らかの小さな確率で該入力に適用される関数に近い別の値（例えば、独立値から計算される従属値）を有して良い。
【００５４】
本開示に記載される実施形態では、ＬＰＮは、以下のＬＰＮ式に従い定められて良い。
【数１】
2017201783.tif 000003
【００５５】
ＬＰＮ式において、パラメータτは確率を表す。関数Ｂｅｒｑτは、各エントリが確率τ（本開示ではノイズ確率としても参照される）で「１」であるｑビットの数を、又はその他の場合に「０」を出力する関数である。以下のパラメータは、整数集合を表す。
【数２】
2017201783.tif 000004
体の隣にある添え字「２」は、整数集合の基本数を表す。体の隣にある添え字「ｎ」は、整数集合の次元を表す。
【数３】
2017201783.tif 000005
において、整数集合はｑ×ｎの次元を有する。パラメータｓ、Ａ及びｒは、整数集合からサンプリングされ、ＬＰＮ式に従い関連付けられる。
【００５６】
ＬＰＮの利点は効率を有する。特に、ＬＰＮ式は、ＸＯＲゲート及びＡＮＤゲートの観点で実装できる。さらに、ｓが生体サンプルのような高いｍｉｎエントロピ分布からサンプリングされる場合でも、ＬＰＴはセキュアである。幾つかの実施形態では、確率τは約１／４であって良い。
【００５７】
＜線形関係ハッシュ方式＞
ＬＰＮ式は、平文ベクトル１４２のハッシュ値を生成するために、動作環境１００において実装されて良い。線形関係ハッシュは、平文ベクトル１４２に適用され得る複数の関数を含んで良い。関数は、Ｈａｓｈ＿ＫＥＹＧＥＮ関数、Ｈａｓｈ１（ｘ）関数、Ｈａｓｈ２（ｙ）関数、及びＨａｓｈ＿Ｖｅｒｉｆｙ関数を有して良い。Ｈａｓｈ＿ＫＥＹＧＥＮ関数は、ハッシュ鍵を生成するよう構成されて良い。Ｈａｓｈ１（ｘ）関数及びＨａｓｈ２（ｙ）関数は、１又は複数の入力ベクトル（例えば、平文ベクトル１４２）をハッシングするよう構成されて良い。Ｈａｓｈ＿Ｖｅｒｉｆｙ関数は、入力ベクトルの間の関係を検証するよう構成されて良い。
【００５８】
線形関係ハッシュは、以下の線形関係ハッシュ式に従い動作環境１００において適用されて良い。
【数４】
2017201783.tif 000006
【００５９】
線形関係ハッシュ式において、Ａ、Ｂｅｒｑτ、
【数５】
2017201783.tif 000007
【数６】
2017201783.tif 000008
【００６０】
線形関係ハッシュ式におけるセキュリティは、上述のＬＰＮに基づいて良い。さらに、線形関係ハッシュ式は、対称的であって良く、実質的に一方向性であって良い。これは、セキュリティを更に向上する。
【００６１】
例えば、線形関係ハッシュ式の一方向性は、以下の一方向性式に従い定められて良い。
【数７】
2017201783.tif 000009
が高ｍｉｎエントロピ分布から得られ、ｅ１←Ｂｅｒｑτの場合；
【数８】
2017201783.tif 000010
任意の多項式時間（つまり実現可能な実行時間の）アルゴリズムがｘ又は任意のｘに近いｘ’を出力することが、計算的に不可能である。
【００６２】
一方向性式、ｅ１←Ｂｅｒｑτ、ｘ、Ｈａｓｈ１（ｘ）、Ａ、
【数９】
2017201783.tif 000011
及びｈｘ１は、上述の通りである。高ｍｉｎエントロピ分布は、バイオメトリックテンプレートのような分布を含む。
【００６３】
＜関係線形暗号化方式＞
線形鍵は、セキュリティパラメータについて生成されて良い。概して、本願明細書で用いられるセキュリティパラメータは、鍵長を表して良い。幾つかの実施形態では、線形鍵の生成は、以下の例示的な線形ビットベクトル鍵式に従い実行されて良い。線形ビットベクトル鍵式の一例は、以下を含む。
Ｇｉｖｅｎ  λ：
整数ｍ、ｎ、及び実数τ∈［０，１］を生成する；
サイズｍ×ｎのランダム２進行列Ａを生成する；
鍵生成アルゴリズム（Ｋｅｙｇｅｎ−ＣＰＡ）、暗号化アルゴリズム（ＥｎｃＣＰＡ）、及び解読アルゴリズム（ＤｅｃＣＰＡ）を含む任意のＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式を決定する；
Ｋｅｙｇｅｎ−ＣＰＡを３回実行して、公開／秘密鍵ペアの３個のセットを生成する；
（ｐｋ＿１，ｓｋ＿１），（ｐｋ＿２，ｓｋ＿２），及び（ｐｋ＿３，ｓｋ＿３）；
以下を設定する：
ｐｋｘｌｉｎ：＝（Ａ，τ，ｐｋ＿１，ｐｋ＿３）；ｓｋｘｌｉｎ：＝ｓｋ＿１；
ｐｋｙｌｉｎ：＝（Ａ，τ，ｐｋ＿２，ｐｋ＿３）；ｓｋｙｌｉｎ：＝ｓｋ＿２；
ｓｋＲｌｉｎ：＝（Ａ，τ，ｐｋ＿３）
線形ビットベクトル鍵式では、←及びλは、概して上述の通りである。さらに、線形ビットベクトル鍵式では、ｐｋｘｌｉｎは第１線形公開鍵を表し、ｓｋｘｌｉｎは第１線形秘密鍵を表し、ｐｋｙｌｉｎは第２線形公開鍵を表し、ｓｋｙｌｉｎは第２線形秘密鍵を表し、ｓｋＲｌｉｎは関係線形秘密鍵を表す。パラメータτは、ノイズ確率を表す。さらに、パラメータｐｋｘｌｉｎ、ｓｋｘｌｉｎ、ｐｋｙｌｉｎ、ｓｋｙｌｉｎ、及びｓｋＲｌｉｎは、上述の鍵生成アルゴリズム（ＫｅｙＧｅｎ）の出力の少なくとも１つの線形部分を表して良い。幾つかの実施形態では、τは１／４に等しくて良い。
【００６４】
線形暗号化モジュール１１２は、平文ベクトル１４２を暗号化して良い。線形暗号化モジュール１１２は、平文ベクトル１４２を受信して良い。幾つかの実施形態では、線形暗号化モジュール１１２は、以下の例示的な線形ビットベクトル暗号化式に従い、平文ベクトル１４２を暗号化して良い。
ｍ１＝＜ｍ１ｉ＞ｎｉ＝１∈Ｆｎ２；ｍ２＝＜ｍ２ｉ＞ｎｉ＝１∈Ｆｎ２；
ｃｘ：＝ＥｎｃＣＰＡ（ｐｋ＿３，Ａ×ｍ１＋ｅ１），ＥｎｃＣＰＡ（ｐｋ＿１，ｍ１）；
ｃｙ：＝ＥｎｃＣＰＡ（ｐｋ＿３，Ａ，ｍ２＋ｅ２），ＥｎｃＣＰＡ（ｐｋ＿２，ｍ２）；
ｅ１∈Ｆｍ２、各要素は、確率τで１であり、その他の場合０である；
ｅ２∈Ｆｍ２、各要素は、確率τで１であり、その他の場合０である。
【００６５】
線形ビットベクトル鍵式において、ＥｎｃＣＰＡは、上述のＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の暗号化アルゴリズムを表す。演算子＋は、ビット毎のＸＯＲ演算子を表す。パラメータｃｘは第１線形暗号文を表し、パラメータｃｙは第２線形暗号文を表す。パラメータｍ１は、平文ベクトル１４２のような、ｎビットの第１メッセージを表す。パラメータｍ１ｉは、平文ベクトル１４２のうちの第１平文ベクトルの要素を表す。パラメータｍ２は、平文ベクトル１４２のうちの第２平文ベクトルを表す。パラメータｍ２ｉは、平文ベクトル１４２のうちの第２平文ベクトルの要素を表す。パラメータＦは体を表す。第１体の隣にある添え字２は、体の基本数を表す。第１体の隣にある添え字ｎは、第１体要素を含むベクトルの次元を表す。パラメータｉは、インデックス変数を表す。線形ビットベクトル鍵式では、インデックス変数は、１から第１体の次元までの範囲を有する。演算子＜＞は、簡単な表記法を表す。例えば、＜ｂｉ＞ｎｉ＝１は、ｂ１，ｂ２，．．．，ｂｎを表す。
【００６６】
線形ビットベクトル暗号化式は、上述の第１暗号化アルゴリズム（ＥｎｃＸ）及び第２暗号化アルゴリズム（ＥｎｃＹ）を定めて良い。例えば、第１暗号化アルゴリズムは次のように定められて良い。
【００６７】
ｇｉｖｅｎ：ｍ１及びｐｋｘｌｉｎ，
ランダム２進行列Ａをサンプリングする，
ｃｘを次の通り構成する：
ｃｘ：＝ＥｎｃＣＰＡ（ｐｋ＿３，Ａ×ｍ１＋ｅ１），ＥｎｃＣＰＡ（ｐｋ＿１，ｍ１）
同様に、第２暗号化アルゴリズムは次のように定められて良い。
ｇｉｖｅｎ  ｍ２及びｐｋｙｌｉｎ，
ランダム２進行列Ａをサンプリングする，
ｃｙを次の通り構成する：
ｃｙ：＝ＥｎｃＣＰＡ（ｐｋ＿３，Ａ，ｍ２＋ｅ２），ＥｎｃＣＰＡ（ｐｋ＿２，ｍ２）
第１線形暗号文及び第２線形暗号文は、線形認証モジュール１３２に通信されて良い。追加又は代替で、第１線形暗号文及び第２線形暗号文は、ネットワーク１０７を介して、認証サーバ１４０に通信されて良い。認証サーバ１４０は、第１線形暗号文及び第２線形暗号文を受信し、第１線形暗号文及び第２線形暗号文を線形認証モジュール１３２に通信して良い。
【００６８】
幾つかの実施形態では、第１線形暗号文は、第２線形暗号文の通信の前に、線形認証モジュール１３２に通信されて良い。線形認証モジュール１３２は、第１線形暗号文を登録暗号文１３０としてメモリ１２２に格納して良い。第１線形暗号文を通信した後に、第２線形暗号文は、線形認証モジュール１３２に通信されて良い。さらに、設定モジュール１４４は、関係線形秘密鍵を線形認証モジュール１３２に通信して良い。
【００６９】
認証のために関係暗号化が用いられる幾つかの実施形態では、第１線形暗号文は、登録暗号文１３０として格納されて良い。登録暗号文１３０は、第２線形暗号文又は任意の他の後続の線形暗号文との比較の基礎として用いられて良い。関係暗号化を実施する他の実施形態では、第１線形暗号文は、登録暗号文１３０として格納されなくて良い。例えば、第１線形暗号文及び第２線形暗号文は、それらを格納せずに分析されて良く、又は両者とも格納されて良い。
【００７０】
線形認証モジュール１３２は、第１線形暗号文と第２線形暗号文との間の線形関係を発見するよう構成されて良い。幾つかの実施形態では、線形認証モジュール１３２は、以下の例示的な線形ビットベクトル検証式に従って、第１線形暗号文と第２線形暗号文との間の線形関係を発見する。
ｚ＝＜ｚｉ＞ｎｉ＝１∈Ｆｎ２；
ｃｘ＿０：＝ＥｎｃＣＰＡ（ｐｋ＿３，Ａ×ｍ１＋ｅ１）；
ｃｙ＿０：＝ＥｎｃＣＰＡ（ｐｋ＿３，Ａ×ｍ２＋ｅ２）；
ｄｉｓｔ（ＤｅｃＣＰＡ（ｓｋ＿３，ｃｘ＿０）＋ＤｅｃＣＰＡ（ｓｋ＿３，ｃｙ＿０）＋Ａ×ｚ）＜？２×τ×ｍ
線形ビットベクトル検証式において、＜＞，ｉ，ｎ，Ａ，Ｆｎ２，ｐｋ＿３，ｍ１，ｅ１，τ，ｍ２，ｅ２，ｓｋ＿３は、上述の通りである。線形ビットベクトル検証式において、ｄｉｓｔは、ｍビットベクトルのハミング重みを評価する関数である。パラメータｃｘ＿０は、第１線形暗号文の第１成分を表す。パラメータｃｙ＿０は、第２線形暗号文の第１成分を表す。パラメータｚは、特定ベクトルを表す。パラメータｚｉは、特定ベクトルの要素を表す。演算子＋は、ビット毎のＸＯＲ演算子を表す。
【００７１】
線形ビットベクトル検証式は、上述の検証アルゴリズム（Ｖｅｒｉｆｙ）を定めて良い。同様に、検証アルゴリズムは次のように定められて良い。
ｇｉｖｅｎ  ｃｙ，ｃｘ，ｚ，ｓｋＲｌｉｎ：＝（Ａ，τ，ｓｋ＿３）：
以下の不等式をチェックする：
ｄｉｓｔ（ＤｅｃＣＰＡ（ｓｋ＿３，ｃｘ＿０）＋ＤｅｃＣＰＡ（ｓｋ＿３，ｃｙ＿０）＋Ａ×ｚ）＜？２×τ×ｍ
線形ビットベクトル解読式は、上述の第１解読アルゴリズム（ＤｅｃＸ）及び第２解読アルゴリズム（ＤｅｃＹ）を定めて良い。例えば、第１解読アルゴリズムは次のように定められて良い。
ｇｉｖｅｎ：ｃｘ及びｓｋｘｌｉｎ，
式に従い第１平文ベクトル１４２を１ビットずつ構成する：
ｃｘ＿１＝ＥｎｃＣＰＡ（ｐｋ＿１，ｍ１）；
ｍ１＝ＤｅｃＣＰＡ（ｓｋｘｌｉｎ，ｃｘ＿１）
第１解読アルゴリズムにおいて、ｓｋｘｌｉｎ，ＥｎｃＣＰＡ，ｐｋ＿１，ｍ１，ｓｋｘｌｉｎ，及びＤｅｃＣＰＡは、上述の通りである。パラメータｃｘ＿１は、第１線形暗号文の第２成分を表す（例えばｃｘ）。
【００７２】
同様に、第２の解読アルゴリズムは次のように定められて良い。
ｇｉｖｅｎ：ｃｙ及びｓｋｙｌｉｎ，
式に従い第２平文ベクトル１４２Ｂを１ビットずつ構成する：
ｃｙ＿１＝ＥｎｃＣＰＡ（ｐｋ＿２，ｍ２）
ｍ２＝ＤｅｃＣＰＡ（ｓｋｙｌｉｎ，ｃｙ＿１）
第２解読アルゴリズムにおいて、ｓｋｙｌｉｎ，ＥｎｃＣＰＡ，ｐｋ＿２，ｍ２，及びＤｅｃＣＰＡは、上述の通りである。パラメータｃｙ＿１は、第２線形暗号文の第２成分である（例えばｃｙ）。
【００７３】
＜関係近似ハッシュ方式＞
本開示に記載される実施形態において実施される関係近似ハッシュ方式では、暗号文の解読は可能でなくて良い。したがって、関係近似ハッシュ方式は、関係近似暗号化方式の代わりに関係近似ハッシュ方式であって良い。関係近似ハッシュ方式は、近似ハッシュ値の間の近さ（closeness）を決定するために用いられて良い。幾つかの実施形態では、近似は、ハミング距離の観点で与えられて良い。関係近似ハッシュ方式では、設定モジュール１４４は、鍵を生成する。鍵を用いて、近似暗号化モジュール１１４は、平文ベクトル１４２の暗号化及び／又は解読を実行する。近似ハッシュ値は、次に、近似認証モジュール１２８に通信されて良い。近似認証モジュール１２８では、近似ハッシュ値の間の近似が検出されて良い。
【００７４】
例えば、設定モジュール１４４は、ＣＰＡ（chosen−plaintext  attack）鍵生成アルゴリズム及び線形鍵生成アルゴリズムの出力を生成して良い。例えば、設定モジュール１４４は、本願明細書の別の場所に記載のように、線形鍵を起動（ｒｕｎ）する。ＣＰＡ鍵生成アルゴリズムは、ＣＰＡ公開鍵及びＣＰＡ秘密鍵を出力して良い。線形鍵生成アルゴリズムは、上述のようにｐｋｘｌｉｎ，ｓｋｘｌｉｎ，ｐｋｙｌｉｎ，ｓｋｙｌｉｎ，及びｓｋＲｌｉｎを出力して良い。
【００７５】
さらに、設定モジュール１４４は、誤り訂正符号（error  correcting  code：ＥＣＣ）を選択して良い。ＥＣＣは、線形誤り訂正符号方式であって良い。ＥＣＣは、長さ、ランク、及び距離を有して良い。さらに、ＥＣＣは、ＥＣＣ符号化演算子（ＥＮＣＯＤＥ）及びＥＣＣ復号化演算子（ＤＥＣＯＤＥ）も有して良い。設定モジュール１４４は、次に、第１近似秘密鍵、第２近似秘密鍵、第１近似公開鍵、第２近似公開鍵、及び近似関係秘密鍵（集合的に、「近似鍵」）を生成して良い。近似鍵は、近似ハッシュ値を生成し及び近似ハッシュ値の間の近似を検出するために、平文ベクトル１４２をハッシングするために使用される。
【００７６】
第１近似秘密鍵は、ＣＰＡ秘密鍵及び第１線形秘密鍵に基づき定められて良い。第２近似秘密鍵は、ＣＰＡ秘密鍵及び第２線形秘密鍵に基づき定められて良い。第１近似公開鍵は、ＥＮＣＯＤＥ、ＤＥＣＯＤＥ、ＣＰＡ公開鍵及び第１線形公開鍵に基づき定められて良い。第２近似公開鍵は、ＥＮＣＯＤＥ、ＤＥＣＯＤＥ、ＣＰＡ公開鍵及び第２線形公開鍵に基づき定められて良い。近似関係秘密鍵は、ＣＰＡ秘密鍵及び線形関係秘密鍵に基づき定められて良い。
【００７７】
幾つかの実施形態では、設定モジュール１４４は、以下の例示的な近似鍵生成式に従って、近似鍵を生成して良い。
（ｐｋＣＰＡ，ｓｋＣＰＡ）←ＫｅｙＧｅｎ−ＣＰＡ；
（ｐｋｘｌｉｎ，ｐｋｙｌｉｎ，ｓｋｘｌｉｎ，ｓｋｙｌｉｎ，ｓｋＲｌｉｎ）←ＫｅｙＧｅｎＬｉｎｅａｒ；Ｘ←Ｚｎ×ｋ２；
ｐｋｘｐｒｏｘ：＝（ＥＮＣＯＤＥ，ＤＥＣＯＤＥ，ｐｋＣＰＡ，ｐｋｘｌｉｎ，Ｘ）；
ｐｋｙｐｒｏｘ：＝（ＥＮＣＯＤＥ，ＤＥＣＯＤＥ，ｐｋＣＰＡ，ｐｋｙｌｉｎ，Ｘ）；
ｓｋｘｐｒｏｘ：＝（ｓｋＣＰＡ，ｓｋｘｌｉｎ）；
ｓｋｙｐｒｏｘ：＝（ｓｋＣＰＡ，ｓｋｙｌｉｎ）；
ｓｋＲｐｒｏｘ：＝（ｓｋＣＰＡ，ｓｋＲｌｉｎ）
近似鍵生成式において、ｐｋｘｌｉｎ，ｐｋｙｌｉｎ，ｓｋｘｌｉｎ，ｓｋｙｌｉｎ，ｓｋＲｌｉｎ，ＥＮＣＯＤＥ及びＤＥＣＯＤＥは上述の通りである。演算子←は、ランダムサンプリング演算子を表す。パラメータｐｋＣＰＡは、ＣＰＡ公開鍵を表す。パラメータｓｋＣＰＡは、ＣＰＡ秘密鍵を表す。パラメータＫｅｙＧｅｎ−ＣＰＡは、ＣＰＡ鍵生成アルゴリズムを表す。パラメータｋは、ランクを表す。パラメータｐｋｘｐｒｏｘは、第１近似公開鍵を表す。パラメータｐｋｙｐｒｏｘは、第２近似公開鍵を表す。パラメータＸは、ランダム行列を表す。パラメータｓｋｘｐｒｏｘは、第１近似秘密鍵を表す。パラメータｓｋｙｐｒｏｘは、第２近似秘密鍵を表す。パラメータｓｋＲｐｒｏｘは、近似関係秘密鍵を表す。さらに、パラメータｐｋｘｐｒｏｘ、ｓｋｘｐｒｏｘ、ｐｋｙｐｒｏｘ、ｓｋｙｐｒｏｘ、及びｓｋＲｐｒｏｘは、上述の鍵生成アルゴリズム（ＫｅｙＧｅｎ）の出力の少なくとも１つの近似部分を表して良い。
【００７８】
第１線形公開鍵は、第１平文ベクトル１４２Ａをハッシングして第１近似ハッシュ値を生成するために、近似暗号化モジュール１１４により使用されて良い。近似暗号化モジュール１１４は、平文ベクトル１４２を受信し、平文ベクトル１４２を近似暗号化モジュール１１４に通信して良い。平文ベクトル１４２は、上述の第１又は第２体のメンバを有して良い。
【００７９】
近似暗号化モジュール１１４は、第３体から近似乱数（以下のｒ）をサンプリングして良い。第３体は、基本数と、ＥＣＣのランクであって良い次元と、を有して良い。近似暗号化モジュール１１４は、次に、第１近似ハッシュ値及び第２近似ハッシュ値を構成して良い。第１近似ハッシュ値及び第２近似ハッシュ値の各々は、２つの部分を有して良い。第１近似ハッシュ値の第１部分は、ＣＰＡ公開鍵と第１平文ベクトル１４２Ａの和とを入力として受信するＣＰＡ暗号化アルゴリズム、及び近似乱数を入力として受信するＥＮＣＯＤＥを有して良い。第１近似ハッシュ値の第２部分は、第１線形公開鍵と近似乱数とを受信する第１線形暗号化アルゴリズムを有して良い。
【００８０】
第２近似ハッシュ値の第１部分は、ＣＰＡ公開鍵と第２平文ベクトル１４２Ｂの和とを入力として受信するＣＰＡ暗号化アルゴリズム、及び近似乱数を入力として受信するＥＮＣＯＤＥを有して良い。第２近似ハッシュ値の第２部分は、第２線形公開鍵と近似乱数とを入力として受信する第２線形暗号化アルゴリズムを有して良い。
【００８１】
幾つかの実施形態では、近似ハッシュ値は、以下の例示的な近似暗号化式に従って生成されて良い。
ｃｘｐ１：＝ＥｎｃＣＰＡ（ｐｋＣＰＡ，ｍ１＋ＥＮＣＯＤＥ（ｒ））；
ｃｘｐ２：＝ＥｎｃＸＬｉｎｅａｒ（ｐｋｘｌｉｎ，Ｘ○ｒ）；
ｃｘｐ：＝（ｃｘｐ１，ｃｘｐ２）；
ｃｙｐ１：＝ＥｎｃＣＰＡ（ｐｋＣＰＡ，ｍ２＋ＥＮＣＯＤＥ（ｒ））；
ｃｙｐ２：＝ＥｎｃＸＬｉｎｅａｒ（ｐｋｙｌｉｎ，Ｘ○ｒ）；
ｃｙｐ：＝（ｃｙｐ１，ｃｙｐ２）
近似暗号化式において、ＥＮＣＯＤＥ，ｍ１，ｍ２，ｐｋＣＰＡ，Ｘ，ｐｋｘｌｉｎ，及びｐｋｙｌｉｎは、上述の通りである。ＥｎｃＣＰＡは、ＣＰＡ暗号化アルゴリズムを表す。パラメータｒは、ｋビットの近似乱数を表す。パラメータｃｘｐ１は、第１近似ハッシュ値の第１部分を表す。パラメータｃｘｐ２は、第１近似ハッシュ値の第２部分を表す。パラメータｃｘｐは、第１近似ハッシュ値を表す。パラメータｃｙｐ１は、第２近似ハッシュ値の第１部分を表す。パラメータｃｙｐ２は、第２近似ハッシュ値の第２部分を表す。パラメータｃｙｐは、第２近似ハッシュ値を表す。パラメータＥｎｃＸＬｉｎｅａｒは、第１線形暗号化アルゴリズムを表す。パラメータＥｎｃＹＬｉｎｅａｒは、第２線形暗号化アルゴリズムを表す。
【００８２】
第１近似ハッシュ値は、認証サーバ１４０に通信されて、登録暗号文１３０として認証サーバ１４０に格納されて良い。第２近似公開鍵は、第２平文ベクトル１４２Ｂをハッシングして第２近似ハッシュ値を生成するために、近似暗号化モジュール１１４により使用されて良い。第２近似ハッシュ値は、認証サーバ１４０に通信されて良い。近似関係秘密鍵は、認証サーバ１４０において使用されて良い。特に、近似関係秘密鍵は、第２近似ハッシュ値と第１近似ハッシュ値との間の近似を検出するために、近似認証サーバ１２８により使用されて良い。この近似は、登録暗号文１３０として格納される。
【００８３】
近似認証モジュール１２８は、第１近似ハッシュ値と第２近似ハッシュ値との間の近似を検出するよう構成されて良い。近似を検出するために、近似認証モジュール１２８は、公開鍵情報で利用可能なＤＥＣＯＤＥにアクセスして良い。近似認証モジュール１２８は、第１近似ハッシュ値のランダム性の和（randomness  sum）を復元して良い。第１近似ハッシュ値のランダム性の和は、ＤＥＣＯＤＥとして定められて良い。ＤＥＣＯＤＥは、ＣＰＡ秘密鍵と第１近似ハッシュ値の第１部分の和とを入力として受信するＣＰＡ解読アルゴリズム（ＤｅｃＣＰＡ）と、ＣＰＡ秘密鍵と第２近似ハッシュ値の第１部分とを入力として受信するＣＰＡ解読アルゴリズムと、を入力として受信する。
【００８４】
ＤＥＣＯＤＥがエラーを返す場合、近似認証モジュール１２８は、拒否を返して良い。さらに、近似認証モジュール１２８は、線形検証アルゴリズムを出力して良い。線形検証アルゴリズムは、線形関係秘密鍵、第２近似ハッシュ値の第１部分、第２近似ハッシュ値の第２部分、及びランダム性の和を入力として受信する。
【００８５】
したがって、近似検証アルゴリズムは、第１近似ハッシュ値、第２近似ハッシュ値、及び近似秘密鍵を受信するよう定められて良い。近似検証アルゴリズムは、ランダム性の和を復元し、拒否又は線形検証アルゴリズムを出力して良い。線形検証アルゴリズムは、線形関係秘密鍵、第２近似ハッシュ値の第１部分、第２近似ハッシュ値の第２部分、及びランダム性の和を入力として受信する。例えば、近似認証モジュール１２８は、以下の例示的な近似検証アルゴリズムに従って、１又は複数の演算を実行して良い。
Ｚｒｓ：＝ＤＥＣＯＤＥ（ＤｅｃＣＰＡ（ｓｋｃｐａ，ｃｘ＿１＋ＤｅｃＣＰＡ（ｓｋｃｐａ，ｃｙ＿１）））；
Ｏｕｔｐｕｔ｛ＤＥＣＯＤＥが⊥を返す場合、拒否する；
ＶｅｒｉｆｙＬｉｎｅａｒ（ｓｋＲｌｉｎ，ｃｓ＿２，ｃｙ＿２，Ｘ○ｚ）｝
近似検証アルゴリズムにおいて、ｓｋｃｐａ，ｃｘ＿１，ｃｘ＿２，ｃｙ＿１，ｃｙ＿２，ｓｋＲｌｉｎ，Ｘ，ｚ，ＤｅｃＣＰＡ，及びＤＥＣＯＤＥは、上述の通りである。パラメータＯｕｔｐｕｔは、近似認証モジュール１２８の出力を示す。パラメータＺｒｓは、ランダム性の和を表す。パラメータ⊥は、エラーを表す。ＶｅｒｉｆｙＬｉｎｅａｒは、線形検証アルゴリズムを表す。
【００８６】
本願明細書に記載の関係近似暗号化方式は、以下の条件が真である場合にセキュアであり得る。
【００８７】
ＥＣＣは、（ｎ’，ｋ，２δ）線形誤り訂正方式である；
（ＫｅｙＧｅｎＣＰＡ，ＥｎｃＣＰＡ，ＤｅｃＣＰＡ）は、ＩＮＤ−ＣＰＡセキュア暗号化方式である；
（ＫｅｙＧｅｎＬｉｎｅａｒ，ＥｎｃＸＬｉｎｅａｒ，ＤｅｃＸＬｉｎｅａｒ，ＥｎｃＹＬｉｎｅａｒ，ＥｎｃＹＬｉｎｅａｒ，ＶｅｒｉｆｙＬｉｎｅａｒ）は、Ｆｎ２における線形の関係暗号化方式である。
【００８８】
条件の中で、ＫｅｙＧｅｎＣＰＡ，ＥｎｃＣＰＡ，ＤｅｃＣＰＡ，ＫｅｙＧｅｎＬｉｎｅａｒ，ＥｎｃＸＬｉｎｅａｒ，ＤｅｃＸＬｉｎｅａｒ，ＥｎｃＹＬｉｎｅａｒ，ＤｅｃＹＬｉｎｅａｒ，ＶｅｒｉｆｙＬｉｎｅａｒ，及びＦは、上述の通りである。ＥＣＣはＥＣＣを表す。パラメータｎ’は、コードワードの長さを表す。パラメータｋは、メッセージの長さを表す。パラメータ２δは、最小距離を表す。
【００８９】
本開示の範囲から逸脱することなく動作環境１００に対し変更、追加又は省略が行われて良い。本開示は、１又は複数のユーザ装置１０２、１又は複数の認証サーバ１４０、１又は複数の第２エンティティ１５０、１又は複数の第１エンティティ１５２、又はそれらの任意の組合せを有する動作環境１００に適用されて良い。
【００９０】
さらに、本願明細書に記載の実施形態の中の種々のコンポーネントの分割は、分割が全ての実施形態において生じることを意味しない。本開示の利益により、記載のコンポーネントが単一のコンポーネントに統合され又は複数のコンポーネントに分割されても良いことが理解される。
【００９１】
図２は、本願明細書に記載の少なくとも１つの実施形態に従って構成される生体認証システム（バイオメトリックシステム）２００のブロック図を示す。生体認証システム２００は、認証サービスが提供される図１の例示的な動作環境１００に含まれ又はそれを含んで良い。生体認証システム２００では、ユーザ２０６の認証は、認証サーバ１４０により実行されて良い。生体認証システム２００では、図１を参照して議論した関係暗号化は、ユーザ２０６の同一性を認証するために用いられて良い。
【００９２】
認証サービスは、登録処理及び認証処理を有して良い。登録処理は、認証処理において使用され得る情報及びデータをユーザ２０６から得るステップを有して良い。認証処理は、時間的に後に（例えば、登録処理に続いて）生じて良い。認証処理では、ユーザ２０６の同一性は、図１を参照して議論した関係暗号化動作のうちの１又は複数を用いて認証されて良い。概して、ユーザ２０６の同一性は、本願明細書に記載のように、第１線形暗号文と第２線形暗号文との間の線形を発見することにより、及び第１近似ハッシュ値と第２近似ハッシュ値との間の近似を検出することにより、認証されて良い。第１線形暗号文及び第１近似ハッシュ値は、第１バイオメトリックテンプレートの形式で、ユーザ２０６により提供されて良い。第１バイオメトリックテンプレートは、図１の平文ベクトル１４２のうちの第１平文ベクトル及び／又は図２の登録入力に含まれて良い。
【００９３】
ユーザ２０６及び／又は偽者２２２（後述する）は、１又は複数のバイオメトリック特徴を有する個人を有して良い。バイオメトリック特徴は、１又は複数のユニークな特徴を有して良い。例えば、バイオメトリック特徴は、畝及び／又畝間のパターンを有する、ユーザ２０６の指紋を有して良い。幾つかの実施形態では、ユーザ２０６は、ユーザ装置１０２と関連付けられて良い。例えば、ユーザ２０６は、ユーザ装置１０２を所有し又は定期的に操作して良い。幾つかの実施形態では、ユーザ２０６は、ユーザ装置１０２と具体的に関連付けられなくて良い。例えば、ユーザ装置１０２は、ユーザ２０６を含む複数のユーザにより公的にアクセス可能であって良い。幾つかの実施形態では、偽者２２２は、バイオメトリック特徴を表し得る入力を供給するエンティティを有して良い。
【００９４】
幾つかの実施形態では、ユーザ装置１０２は、センサ２９８を有してよい。センサ２９８は、例えばユーザ２０６を認証するために使用されるバイオメトリック特徴を測定する又はキャプチャするよう構成されるハードウェア装置を有して良い。ユーザ２０６のバイオメトリック特徴が測定され又はキャプチャされると、ユーザ装置１０２は、バイオメトリックテンプレートを生成して良い。バイオメトリックテンプレートは、バイオメトリック特徴を表しても良く、ユーザ２０６のバイオメトリック特徴のユニークな特徴のうちの少なくとも幾つかを有して良い。バイオメトリックテンプレートは、例えば、バイオメトリック特徴のグラフィカル表現及び／又はアルゴリズム表現を有して良い。
【００９５】
センサ２９８の幾つかの例は、指紋スキャナ、虹彩の画像をキャプチャするよう構成されるカメラ、ＤＮＡを測定するよう構成される装置、心拍をキャプチャするよう構成される心拍モニタ、骨格筋により生成される電気的活動をキャプチャするよう構成されるウエアラブル筋電センサ、又はバイオメトリック特徴を測定し又はキャプチャするよう構成される任意の他のセンサ２９８、を有して良い。
【００９６】
図示の生体認証システム２００では、センサ２９８は、ユーザ装置１０２に含まれる。他の実施形態では、センサ２９８は、ユーザ装置１０２又はそれに含まれるプロセッサに通信可能に結合されて良い。例えば、センサ２９８は、図１のネットワーク１０７のようなネットワークを介してユーザ装置１０２に信号を通信するよう構成されて良い。図２には１個のみのセンサ２９８が示されるが、幾つかの実施形態では、ユーザ装置１０２は、１又は複数のセンサ２９８を有して良い。
【００９７】
関係暗号化モジュール１１０は、第１線形暗号文及び第１近似ハッシュ値を登録入力２３２から生成して良い。関係暗号化モジュール１１０は、次に、第１線形暗号文及び第１近似ハッシュ値を登録データ２３４として、認証サーバ１４０に通信して良い。
【００９８】
関係認証モジュール１０８は、第１線形暗号文及び第１近似ハッシュ値を登録暗号文１３０として格納して良い。登録暗号文１３０は、ユーザ２０６に関連付けられて良い。例えば、ユーザ２０６は、関連付けられたユーザ識別子を有して良い。幾つかの実施形態では、登録暗号文１３０は、メモリ１２２に格納されて良い。
【００９９】
関係暗号化モジュール１１０は、次に、第１チャレンジ入力２３６Ａ又は第２チャレンジ入力２３６Ｂ（概して、チャレンジ入力２３６）を受信して良い。第１チャレンジ入力２３６Ａ及び第２チャレンジ入力２３６Ｂは、ユーザ２０６又は偽者２２２による、彼らの同一性を認証させる試みであって良い。第１チャレンジ入力２３６Ａ及び／又は第２チャレンジ入力２３６Ｂは、例えば、センサ２９８により読み取られた第２バイオメトリックテンプレートを有して良い。第２バイオメトリックテンプレートは、ユーザ２０６又は偽者２２２のバイオメトリック特徴のユニークな特徴を表して良い。
【０１００】
関係暗号化モジュール１１０は、第２線形暗号文及び第１近似ハッシュ値を登録入力２３６から生成して良い。関係暗号化モジュール１１０は、次に、第２線形暗号文及び第２近似ハッシュ値を登録データ２３８として、認証サーバ１４０に通信して良い。
【０１０１】
関係認証モジュール１０８は、チャレンジデータ２３８を受信して良い。関係認証モジュール１０８は、次に、ユーザ２０６の登録暗号文１３０を読み出して良い。
【０１０２】
関係認証モジュール１０８は、登録暗号文１３０として格納された第１線形暗号文とユーザ装置１０２から受信した第２線形暗号文との間の線形関係を決定して良い。さらに、関係認証モジュール１０８は、登録暗号文１３０として格納された第１近似ハッシュ値とユーザ装置１０２から受信した第２近似ハッシュ値との間の近似関係を決定して良い。
【０１０３】
第１線形暗号文が第２線形暗号文と線形関係を有し、及び第１近似ハッシュ値と第２近似ハッシュ値との間の特定の近似が存在することに応答して、認証サーバ１４０は、第１バイオメトリックテンプレートと第２バイオメトリックテンプレートとの間に概算類似性が存在すると決定して良い。
【０１０４】
したがって、ユーザ２０６により提供される第１チャレンジ入力２３６Ａが、第２線形暗号文及び第２近似ハッシュ値の基礎である場合、第１線形暗号文と第２線形暗号文との間に線形関係が存在し、第１近似ハッシュ値と第２近似ハッシュ値との間に近似が存在し得る。
【０１０５】
しかしながら、偽者２２２により提供される第２チャレンジ入力２３６Ｂが、第２線形暗号文及び第２近似ハッシュ値の基礎である場合、第１線形暗号文と第２線形暗号文との間に線形関係が存在せず、第１近似ハッシュ値と第２近似ハッシュ値との間に近似が存在しない。
【０１０６】
線形関係及び／又は近似に基づき、関係認証モジュール１０８は、認証を決定できる。例えば、関係認証モジュール１０８は、チャレンジデータ２３８がユーザ２０６又は偽者２２２に起因するかを決定して良い。関係認証モジュール１０８は、線形関係の発見及び／又は近似の検出に基づき、認証信号２４２を通信して良い。関係暗号化モジュール１１０は、認証信号２４２を受信して良い。
【０１０７】
本開示の範囲から逸脱することなく生体認証システム２００に対し変更、追加又は省略が行われて良い。具体的には、図２に示す実施形態は、１人のユーザ２０６、１つのユーザ装置１０２、及び１つの認証サーバ１４０を有する。しかしながら、本開示は、１又は複数のユーザ２０６、１又は複数のユーザ装置１０２、１又は複数の認証サーバ１４０、又はそれらの任意の組み合わせを有し得る生体認証システム２００に適用される。
【０１０８】
さらに、本願明細書に記載の実施形態の中の種々のコンポーネントの分割は、分割が全ての実施形態において生じることを意味しない。本開示の利益により、記載のコンポーネントが単一のコンポーネントに統合され又は複数のコンポーネントに分割されて良いことが理解される。例えば、幾つかの実施形態では、関係暗号化モジュール１１０及び／又はそれに属する１又は複数の機能は、認証サーバ１４０にあるモジュールにより実行されて良い。
【０１０９】
図３は、関係暗号化のために構成される例示的なコンピューティングシステム３００を示す。コンピューティングシステム３００は、例えば図１の動作環境１００において実装されて良い。コンピューティングシステム３００の例は、ユーザ装置１０２又は認証サーバ１４０を有して良い。コンピューティングシステム３００は、１又は複数のプロセッサ３０４、メモリ３０８、通信ユニット３０２、ユーザインタフェース装置３１４、データ記憶装置３０１を有して良い。データ記憶装置３０１は、関係認証モジュール１０８、関係暗号化モジュール１１０（集合的に、モジュール１０８／１１０）を有する。
【０１１０】
プロセッサ３０４は、任意の適切な特定用途向け又は汎用コンピュータ、コンピューティングエンティティ、又は種々のコンピュータハードウェア若しくはソフトウェアモジュールを有して良く、任意の適切なコンピュータ可読媒体に格納された命令を実行するよう構成され得る処理装置を用いて実施されて良い。例えば、プロセッサ３０４は、マイクロプロセッサ、マイクロコントローラ、デジタシグナルプロセッサ（ＤＳＰ）、ＡＳＩＣ、FPGA又はプログラム命令を解釈し及び／若しくは実行し並びに／又はデータを処理するよう構成された任意の他のデジタル若しくはアナログ回路を有して良い。
【０１１１】
図３には単一のプロセッサを示したが、プロセッサ３０４は、より一般的には、本開示で説明される任意の数の工程を個々に又は共同で実行するよう構成される任意の数のプロセッサを有して良い。さらに、プロセッサ３０４のうちの１又は複数は、１又は複数の異なる電子装置又はコンピューティングシステムに存在して良い。幾つかの実施形態では、プロセッサ３０４は、プログラム命令を解釈し及び／又は実行し、及び／又はメモリ３０８、データ記憶装置３０１又はメモリ３０８及びデータ記憶装置３０１に格納されたデータを処理して良い。幾つかの実施形態では、プロセッサ３０４は、データ記憶装置３０１からプログラム命令をフェッチし、該プログラム命令をメモリ３０８にロードして良い。プログラム命令がメモリ３０８にロードされた後、プロセッサ３０４は該プログラム命令を実行して良い。
【０１１２】
メモリ３０８及びデータ記憶装置３０１は、コンピュータ実行可能命令又はデータ構造を伝える又は格納しているコンピュータ可読記憶媒体を含み得る。用語コンピュータ可読媒体は、単一の媒体又は複数の媒体を表して良い。このようなコンピュータ可読媒体は、プロセッサ３０４のような汎用又は特定目的コンピュータによりアクセスできる任意の利用可能な媒体を含み得る。例として且つ限定ではなく、このようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、フラッシュメモリ装置（例えば、固体メモリ素子）を含む有形又は非一時的コンピュータ可読記憶媒体、又はコンピュータにより実行可能な命令若しくはデータ構造の形式で所望のプログラムコード手段を伝える若しくは格納するために用いられ汎用若しくは特定目的コンピュータによりアクセス可能な他の記憶媒体を有し得る。上述の組合せも、コンピュータ可読記憶媒体の範囲に包含され得る。コンピュータ実行可能命令は、例えば、プロセッサ３０４に特定の工程又は工程のグループを実行させるよう構成される命令及びデータを含み得る。
【０１１３】
コンピュータにより実行可能な命令は、例えば、汎用コンピュータ、特定目的コンピュータ又は特定目的処理リソースに特定の機能又は機能グループを実行させる命令及びデータを有する。本発明の主題は構造的特徴及び／又は方法論的動作に特有の言葉で記載されたが、本発明の主題は、特許請求の範囲に定められる上述の特定の特徴又は動作に限定されないことが理解されるべきである。むしろ、上述の特定の特徴及び動作は、特許請求の範囲の実施の例示的形態として開示されたものである。
【０１１４】
通信ユニット３０２は、通信を受信し及び送信するよう構成されるハードウェアの１又は複数のピースを有して良い。幾つかの実施形態では、通信ユニット３０２は、通信ハードウェア装置の中でも特に、アンテナ、有線ポート、変調／復調ハードウェア、のうちの１又は複数を有して良い。特に、通信ユニット３０２は、コンピューティングシステム３００の外部から通信を受信するよう、及び該通信をプロセッサ３０４に提示し又はプロセッサ３０４からの通信を別の装置若しくはネットワーク（例えば、図１の１０７）に送信するよう、構成されて良い。
【０１１５】
ユーザインタフェース装置３１４は、ユーザからの入力を受信し及び／又はユーザに出力を提供するよう構成されるハードウェアの１又は複数のピースを有して良い。幾つかの実施形態では、ユーザインタフェース装置３１４は、ハードウェア装置の中でも特に、スピーカ、マイクロフォン、ディスプレイ、キーボード、タッチスクリーン、ホログラフィックプロジェクション、のうちの１又は複数を有して良い。
【０１１６】
モジュール１０８／１１０は、データ記憶装置３０１に格納されたプログラム命令を有して良い。プロセッサ３０４は、モジュール１０８／１１０をメモリ３０８にロードし、モジュール１０８／１１０を実行するよう構成されて良い。代替で、プロセッサ３０４は、メモリ３０８にロードしないで、データ記憶装置３０１からモジュール１０８／１１０を１行毎に実行して良い。モジュール１０８／１１０を実行するとき、プロセッサ３０４は、本開示の他の場所に記載したように、関係認証を実行するよう構成されて良い。
【０１１７】
本開示の範囲から逸脱することなくコンピューティングシステム３００に対し変更、追加又は省略が行われて良い。例えば、幾つかの実施形態では、コンピューティングシステム３００は、ユーザインタフェース装置３１４を有しなくて良い。幾つかの実施形態では、コンピューティングシステム３００の異なるコンポーネントは、物理的に別個であって良く、任意の適切なメカニズムにより通信可能に結合されて良い。例えば、データ記憶装置３０１は、記憶装置に通信可能に結合されるプロセッサ３０４とメモリ３０８と通信ユニット３０２とを含むサーバから分離した、該記憶装置の部分であって良い。
【０１１８】
図４は、本願明細書に記載の少なくとも１つの実施形態に従って構成される、生体認証の例示的な方法４００のフロー図である。方法４００は、図２の生体測定システム２００のような生体認証システムの中で又は図１の動作環境１００の中で実行されて良い。方法４００は、本願明細書に記載された認証サーバ１４０により幾つかの実施形態においてプログラム制御されて実行されて良い。認証サーバ１４０は、方法４００を実行する又はその実行を制御するためにプロセッサにより実行可能なプログラムコード又は命令を符号化し又は格納している非一時的コンピュータ可読媒体（例えば、図１のメモリ１２２又は図３のメモリ３０８）を含んで良く又はそれに通信可能に結合されて良い。追加又は代替で、認証サーバ１４０は、方法４００を実行する又はその実行を制御するためにコンピュータ命令を実行するよう構成されるプロセッサ（例えば、図３のプロセッサ３０４）を有して良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されて良い。
【０１１９】
方法４００はブロック４０２で開始して良い。ブロック４０２で、第１線形暗号文が受信されて良い。第１線形暗号文は、認証サーバにより受信されて良い。例えば、図１を参照すると、ユーザ装置１０２は、第１線形暗号文を認証サーバ１４０に通信して良い。第１線形暗号文は、高ｍｉｎエントロピ分布からサンプリングされ得る第１バイオメトリックテンプレートを表して良い。
【０１２０】
第１バイオメトリックテンプレートは、関係線形暗号化方式を用いて暗号化されて良い。関係線形暗号化方式は、ＬＰＮに基づく線形関係ハッシュに基づいて良い。さらに、関係線形暗号化方式は、ＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式に更に基づいて良い。ＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式は、鍵生成アルゴリズム（Ｋｅｙｇｅｎ−ＣＰＡ）、暗号化アルゴリズム（ＥｎｃＣＰＡ）、及び解読アルゴリズム（ＤｅｃＣＰＡ）を含んで良い。
【０１２１】
ブロック４０４で、第１近似ハッシュ値が受信されて良い。第１近似ハッシュ値は、認証サーバにより受信されて良い。例えば、図１を参照すると、ユーザ装置１０２は、第１近似ハッシュ値を認証サーバ１４０に通信して良い。第１近似ハッシュ値は、関係近似ハッシュ方式を用いて暗号化された第１バイオメトリックテンプレートを表して良い。関係近似ハッシュ方式は、関係線形暗号化方式及びＥＣＣに基づいて良い。
【０１２２】
ブロック４０６で、第１線形暗号文及び／又は第１近似ハッシュ値は、登録暗号文として格納されて良い。例えば、第１線形暗号文及び／又は第１近似ハッシュ値は、認証サーバ１４０のメモリ１２２のような認証サーバのメモリに格納されて良い。
【０１２３】
ブロック４０８で、第２線形暗号文が受信されて良い。第２線形暗号文は、高ｍｉｎエントロピ分布からサンプリングされ得る第２バイオメトリックテンプレートを表して良い。第２バイオメトリックテンプレートは、関係線形暗号化方式を用いて暗号化されて良い。第１線形暗号文及び／又は第２線形暗号文は、本開示の別の場所に記載される線形ビットベクトル暗号化式に従い暗号化されて良い。
【０１２４】
ブロック４１０で、第２近似ハッシュ値が受信されて良い。第２近似ハッシュ値は、関係近似暗号化方式を用いて暗号化される第２バイオメトリックテンプレートを表して良い。幾つかの実施形態では、第１近似ハッシュ値及び／又は第２近似ハッシュ値は、本開示の別の場所に記載される近似暗号化式に従い生成される。
【０１２５】
ブロック４１２で、第１線形暗号文と第２線形暗号文との間の線形関係が、発見されて良い。線形関係は、線形関係鍵を用いて発見されて良い。幾つかの実施形態では、線形関係の発見は、本開示の他の場所に記載される検証アルゴリズムに従い実行されて良い。さらに、幾つかの実施形態では、発見は、ＡＮＤゲート及びＯＲゲートのみを用いて実行されて良い。
【０１２６】
ブロック４１４で、第１近似ハッシュ値と第２近似ハッシュ値との間の近似が検出されて良い。近似は、ハミング距離の観点で決定されて良い。幾つかの実施形態では、近似の検出は、本開示の他の場所に記載される近似検証アルゴリズムに従い実行されて良い。さらに、幾つかの実施形態では、発見は、ＡＮＤゲート及びＯＲゲートのみを用いて実行されて良い。ブロック４１８で、ユーザの同一性は、近似及び線形関係に基づき認証されて良い。
【０１２７】
当業者は、上述の及び本願明細書に開示した他の手順及び方法において、その処理及び方法で実行される機能が異なる順序で実施されても良いことを理解するだろう。さらに、概略のステップ及び動作は、単に例として提供され、幾つかのステップ及び動作は、開示の実施形態から逸脱することなく、任意であり、より少ないステップ及び動作に組み合わされ、又は追加ステップ及び動作に拡張されて良い。
【０１２８】
本願明細書で用いられるように、用語「モジュール」、「コンポーネント」、及び／又は「エンジン」は、コンピュータシステムで実行されるソフトウェアオブジェクト又はルーチンを表し得る。本願明細書に記載されたのと異なるコンポーネント、モジュール、エンジン及びサービスは、（例えば、別個のスレッドとして）コンピューティングシステムで実行されるオブジェクト又は処理として実施されて良い。本願明細書に記載されたシステム及び方法はソフトウェアで実施されることが望ましいが、ハードウェアによる実装又はソフトウェアとハードウェアの組合せも、可能であり想定される。この説明では、「コンピュータエンティティ」は、本願明細書で先に定められたようにコンピューティングシステム、又はコンピューティングシステムで実行されるモジュール若しくはモジュールの組合せであって良い。
【０１２９】
本願明細書に記載された全ての例及び条件文は、教育上の目的で、読者が本発明の原理及び発明者により考案された概念を理解するのを助け、技術を促進させるためであり、これらの特に記載された例及び条件に限定されないものと考えられるべきである。本発明の実施形態が詳細に記載されたが、種々の変更、置換及び修正が本発明の精神及び範囲から逸脱することなく行われうることが理解されるべきである。
【０１３０】
以上の実施形態に加えて、更に以下の付記を開示する。
（付記１）  ＬＰＮ（learning  parity  with  noise）に少なくとも部分的に基づく関係線形暗号化方式を用いて暗号化される第１バイオメトリックテンプレートを表す第１線形暗号文を受信するステップと、
前記関係線形暗号化方式を用いて暗号化される第２バイオメトリックテンプレートを表す第２線形暗号文を受信するステップと、
線形関係秘密鍵を用いて、前記第１線形暗号文と前記第２線形暗号文との間の線形関係を発見するステップと、
関係近似ハッシュ方式を用いて暗号化される前記第１バイオメトリックテンプレートを表す第１近似ハッシュ値を受信するステップであって、前記関係近似ハッシュ方式は、前記関係線形暗号化方式及び誤り訂正符号（ＥＣＣ）に基づく、ステップと、
前記関係近似ハッシュ方式を用いて暗号化される前記第２バイオメトリックテンプレートを表す第２近似ハッシュ値を受信するステップと、
ハミング距離の観点で、前記第１近似ハッシュ値と前記第２近似ハッシュ値との間の近似を検出するステップと、
前記近似及び前記線形関係に基づき、ユーザの同一性を認証するステップと、
を有する方法。
（付記２）  前記関係線形暗号化方式は、鍵生成アルゴリズム、暗号化アルゴリズム、及び解読アルゴリズムを含むＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式に更に基づく、付記１に記載の方法。
（付記３）  前記線形関係を発見するステップは、以下の検証アルゴリズムに従い実行され、
ｓｋＲｌｉｎ：＝（Ａ，τ，ｓｋ＿３）；
ｇｉｖｅｎ  ｃｙ，  ｃｘ，  ｚ，ｓｋＲｌｉｎ：
以下の不等式をチェックする：
ｄｉｓｔ（ＤｅｃＣＰＡ（ｓｋ＿３，ｃｘ＿０）＋ＤｅｃＣＰＡ（ｓｋ＿３，ｃｙ＿０）＋Ａ×ｚ）＜？２×τ×ｍ）、
ここで、ｃｙは前記第１線形暗号文を表し、
ｃｘは前記第２線形暗号文を表し、
ｓｋＲｌｉｎは線形関係秘密鍵を表し、
ｚは検証エンティティにより選択される特定値を表し、
Ａは第１整数×第２整数の次元を有するランダム２進行列を表し、
τはノイズ確率を表し、
ｓｋ＿３はＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の秘密鍵を表し、
ｃｘ＿０は前記第１線形暗号文の第１要素を表し、
ｃｙ＿０は前記第２線形暗号文の第１要素を表し、
ＤｅｃＣＰＡは前記解読アルゴリズムを表し、
ｄｉｓｔはハミング距離演算子を表し、
ｍは前記第１整数を表す、
付記２に記載の方法。
（付記４）  前記第１線形暗号文は、以下の線形ビットベクトル暗号化式に従い暗号化され、
ｍ１＝＜ｍ１ｉ＞ｎｉ＝１∈Ｆｎ２；
ｃｘ：＝ＥｎｃＣＰＡ（ｐｋ＿３，Ａ×ｍ１＋ｅ１）、ＥｎｃＣＰＡ（ｐｋ＿１，ｍ１）；
ｅ１∈Ｆｍ２、各々の要素は、確率τで１であり、その他の場合に０であり、
ｍ１はｎビットの第１メッセージを表し、
ｐｋ＿３は前記ＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の公開鍵を表し、
ｐｋ＿１は前記ＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の別の公開鍵を表し、
ｉはインデックス変数を表し、
ｎは第１体の次元を表し、
ＥｎｃＣＰＡは前記暗号化アルゴリズムを表し、
＋演算子はビット毎のＸＯＲ演算子を表し、
Ｆ２は基本数２の体を表す、
付記３に記載の方法。
（付記５）  前記ノイズ確率は約０．２５に等しい、付記４に記載の方法。
（付記６）  前記第１バイオメトリックテンプレートは高ｍｉｎエントロピ分布からサンプリングされる、付記１に記載の方法。
（付記７）  近似を検出するステップは、以下の近似検証アルゴリズムに従い実行され、
Ｚｒｓ：＝ＤＥＣＯＤＥ（ＤｅｃＣＰＡ（ｓｋｃｐａ，ｃｘ＿１＋ＤｅｃＣＰＡ（ｓｋｃｐａ，ｃｙ＿１）））；
Ｏｕｔｐｕｔ＝｛ＤＥＣＯＤＥが⊥を返す場合、拒否する；  ＶｅｒｉｆｙＬｉｎｅａｒ（ｓｋＲｌｉｎ，ｃｘ＿２，ｃｙ＿２，Ｘ○Ｚ）｝；
ここで、Ｚｒｓはランダム性の和を表し、
ＤＥＣＯＤＥはＥＣＣ復号化演算子を表し、
ＤｅｃＣＰＡはＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の解読アルゴリズムを表し、
ｃｘ＿１は前記第１線形暗号文の第２要素を表し、
ｃｙ＿１は前記第２線形暗号文の第２要素を表し、
ｃｘ＿２は前記第１線形暗号文の第３要素を表し、
ｃｙ＿２は前記第２線形暗号文の第３要素を表し、
ｓｋＲｌｉｎは関係線形鍵を表し、
Ｘはランダム行列を表し、
ｓｋｃｐａはＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の鍵生成アルゴリズムにより生成されるＣＰＡ秘密鍵を表し、
⊥は誤りを表し、
ｚは検証エンティティにより選択される特定値を表し、
ＶｅｒｉｆｙＬｉｎｅａｒは線形検証アルゴリズムを表す、
付記１に記載の方法。
（付記８）  前記第１近似ハッシュ値は、以下の近似暗号化式に従い生成され、
ｃｘｐ１：＝ＥｎｃＣＰＡ（ｐｋＣＰＡ，ｍ１＋ＥＮＣＯＤＥ（ｒ））；
ｃｘｐ２：＝ＥｎｃＸＬｉｎｅａｒ（ｐｋｘｌｉｎ，Ｘ○ｒ）；
ｃｘｐ：＝（ｃｘｐ１，ｃｘｐ２）、
ここで、ｃｘｐは前記第１近似ハッシュ値を表し、
ｃｘｐ１は前記第１近似ハッシュ値の第１部分を表し、
ｃｘｐ２は前記第１近似ハッシュ値の第２部分を表し、
ＥｎｃＣＰＡはＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の暗号化アルゴリズムを表し、
ｍ１は前記第１バイオメトリックテンプレートを表し、
ｐｋＣＰＡはＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の鍵生成アルゴリズムにより生成されるＣＰＡ公開鍵を表し、
ＥＮＣＯＤＥはＥＣＣ符号化演算子を表し、
ｒは近似乱数を表し、
Ｘはランダム行列を表し、
ＥｎｃＸＬｉｎｅａｒは第１線形暗号化アルゴリズムを表す、
付記１に記載の方法。
（付記９）  前記発見するステップ及び前記検出するステップは、ＡＮＤゲート及びＯＲゲートのみを使用して実行される、付記１に記載の方法。
（付記１０）  前記第１線形暗号文及び第１近似暗号文を登録暗号文として格納するステップ、を更に有する付記１に記載の方法。
（付記１１）  非一時的コンピュータ可読媒体であって、工程を実行するために又はその実行を制御するためにプロセッサにより実行可能な符号化されたプログラミングコードを有し、前記工程は、
ＬＰＮ（learning  parity  with  noise）に少なくとも部分的に基づく関係線形暗号化方式を用いて暗号化される第１バイオメトリックテンプレートを表す第１線形暗号文を受信するステップと、
前記関係線形暗号化方式を用いて暗号化される第２バイオメトリックテンプレートを表す第２線形暗号文を受信するステップと、
線形関係秘密鍵を用いて、前記第１線形暗号文と前記第２線形暗号文との間の線形関係を発見するステップと、
関係近似ハッシュ方式を用いて暗号化される前記第１バイオメトリックテンプレートを表す第１近似ハッシュ値を受信するステップであって、前記関係近似ハッシュ方式は、前記関係線形暗号化方式及び誤り訂正符号（ＥＣＣ）に基づく、ステップと、
前記関係近似ハッシュ方式を用いて暗号化される前記第２バイオメトリックテンプレートを表す第２近似ハッシュ値を受信するステップと、
ハミング距離の観点で、前記第１近似ハッシュ値と前記第２近似ハッシュ値との間の近似を検出するステップと、
前記近似及び前記線形関係に基づき、ユーザの同一性を認証するステップと、
を有する、非一時的コンピュータ可読媒体。
（付記１２）  前記関係線形暗号化方式は、鍵生成アルゴリズム、暗号化アルゴリズム、及び解読アルゴリズムを含むＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式に更に基づく、付記１１に記載の非一時的コンピュータ可読媒体。
（付記１３）  前記線形関係を発見するステップは、以下の検証アルゴリズムに従い実行され、
ｓｋＲｌｉｎ：＝（Ａ，τ，ｓｋ＿３）；
ｇｉｖｅｎ  ｃｙ，ｃｘ，ｚ，ｓｋＲｌｉｎ：
以下の不等式をチェックする：
ｄｉｓｔ（ＤｅｃＣＰＡ（ｓｋ＿３，ｃｘ＿０）＋ＤｅｃＣＰＡ（ｓｋ＿３，ｃｙ＿０）＋Ａ×ｚ）＜？２×τ×ｍ）、
ここで、ｃｙは前記第１線形暗号文を表し、
ｃｘは前記第２線形暗号文を表し、
ｓｋＲｌｉｎは線形関係秘密鍵を表し、
ｚは検証エンティティにより選択される特定値を表し、
Ａは第１整数×第２整数の次元を有するランダム２進行列を表し、
τはノイズ確率を表し、
ｓｋ＿３はＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の秘密鍵を表し、
ｃｘ＿０は前記第１線形暗号文の第１要素を表し、
ｃｙ＿０は前記第２線形暗号文の第１要素を表し、
ＤｅｃＣＰＡは前記解読アルゴリズムを表し、
ｄｉｓｔはハミング距離演算子を表し、
ｍは前記第１整数を表す、
付記１２に記載の非一時的コンピュータ可読媒体。
（付記１４）  前記第１線形暗号文は、以下の線形ビットベクトル暗号化式に従い暗号化され、
ｍ１＝＜ｍ１ｉ＞ｎｉ＝１∈Ｆｎ２；
ｃｘ：＝ＥｎｃＣＰＡ（ｐｋ＿３，Ａ×ｍ１＋ｅ１）、ＥｎｃＣＰＡ（ｐｋ＿１，ｍ１）；
ｅ１∈Ｆｍ２、ここで各々の要素は、確率τで１であり、その他の場合に０であり；
ｍ１はｎビットの第１メッセージを表し、
ｐｋ＿３は前記ＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の公開鍵を表し、
ｐｋ＿１は前記ＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の別の公開鍵を表し、
ｉはインデックス変数を表し、
ｎは第１体の次元を表し、
ＥｎｃＣＰＡは前記暗号化アルゴリズムを表し、
＋演算子はビット毎のＸＯＲ演算子を表し、
Ｆ２は基本数２の体を表す、
付記１３に記載の非一時的コンピュータ可読媒体。
（付記１５）  前記ノイズ確率は約０．２５に等しい、
付記１４に記載の非一時的コンピュータ可読媒体。
（付記１６）  前記第１バイオメトリックテンプレートは高ｍｉｎエントロピ分布からサンプリングされる、付記１１に記載の非一時的コンピュータ可読媒体。
（付記１７）  前記近似を検出するステップは、以下の近似検証アルゴリズムに従い実行され、
Ｚｒｓ：＝ＤＥＣＯＤＥ（ＤｅｃＣＰＡ（ｓｋｃｐａ，ｃｘ＿１＋ＤｅｃＣＰＡ（ｓｋｃｐａ，ｃｙ＿１）））；
Ｏｕｔｐｕｔ＝｛ＤＥＣＯＤＥが⊥を返す場合、拒否する；
ＶｅｒｉｆｙＬｉｎｅａｒ（ｓｋＲｌｉｎ，ｃｘ＿２，ｃｙ＿２，Ｘ○Ｚ）｝；
ここで、Ｚｒｓはランダム性の和を表し、
ＤＥＣＯＤＥはＥＣＣ復号化演算子を表し、
ＤｅｃＣＰＡはＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の解読アルゴリズムを表し、
ｃｘ＿１は前記第１線形暗号文の第２要素を表し、
ｃｙ＿１は前記第２線形暗号文の第２要素を表し、
ｃｘ＿２は前記第１線形暗号文の第３要素を表し、
ｃｙ＿２は前記第２線形暗号文の第３要素を表し、
ｓｋＲｌｉｎは関係線形鍵を表し、
Ｘはランダム行列を表し、
ｓｋｃｐａはＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の鍵生成アルゴリズムにより生成されるＣＰＡ秘密鍵を表し、
⊥は誤りを表し、
ｚは検証エンティティにより選択される特定値を表し、
ＶｅｒｉｆｙＬｉｎｅａｒは線形検証アルゴリズムを表す、
付記１１に記載の非一時的コンピュータ可読媒体。
（付記１８）  前記第１近似ハッシュ値は、以下の近似暗号化式に従い生成され、
ｃｘｐ１：＝ＥｎｃＣＰＡ（ｐｋＣＰＡ，ｍ１＋ＥＮＣＯＤＥ（ｒ））；
ｃｘｐ２：＝ＥｎｃＸＬｉｎｅａｒ（ｐｋｘｌｉｎ，Ｘ○ｒ）；
ｃｘｐ：＝（ｃｘｐ１，ｃｘｐ２）、
ここで、ｃｘｐは前記第１近似ハッシュ値を表し、
ｃｘｐ１は前記第１近似ハッシュ値の第１部分を表し、
ｃｘｐ２は前記第１近似ハッシュ値の第２部分を表し、
ＥｎｃＣＰＡはＩＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の暗号化アルゴリズムを表し、
ｍ１は前記第１バイオメトリックテンプレートを表し、
ｐｋＣＰＡはＮＤ＿ＣＣＡセキュア公開鍵暗号化方式の鍵生成アルゴリズムにより生成されるＣＰＡ公開鍵を表し、
ＥＮＣＯＤＥはＥＣＣ符号化演算子を表し、
ｒは近似乱数を表し、
Ｘはランダム行列を表し、
ＥｎｃＸＬｉｎｅａｒは第１線形暗号化アルゴリズムを表す、
付記１１に記載の非一時的コンピュータ可読媒体。
（付記１９）  前記発見するステップ及び前記検出するステップは、ＡＮＤゲート及びＯＲゲートのみを使用して実行される、付記１１に記載の非一時的コンピュータ可読媒体。
（付記２０）  前記工程は、前記第１線形暗号文及び第１近似暗号文を登録暗号文として格納するステップ、を更に有する、付記１１に記載の非一時的コンピュータ可読媒体。
【符号の説明】
【０１３１】
１００  動作環境
１０２  ユーザ装置
１０７  ネットワーク
１０８  関係認証モジュール
１１０  関係暗号化モジュール
１１２  線形暗号化モジュール
１１４  近似暗号化モジュール
１２２  メモリ
１２８  近似認証モジュール
１３０  登録暗号文
１３２  線形認証モジュール
１４０  認証サーバ
１４２  平文ベクトル
１４４  設定モジュール
１５０  第２エンティティ
１５２  第１エンティティ
【図１】
2017201783.tif 000012
【図２】
2017201783.tif 000013
【図３】
2017201783.tif 000014
【図４】
2017201783.tif 000015