ファジー抽出器は、生体認証データを標準の暗号化技術への入力として使用して、コンピュータのセキュリティを強化する方法です。ここでの「ファジー」とは、暗号化に必要な固定値が、必要なセキュリティを損なうことなく、元のキーに近いが同一ではない値から抽出されることを意味します。1 つの用途は、ユーザーの生体認証入力をキーとして使用して、ユーザー レコードを
暗号化および認証することです。
ファジー抽出器は、ユーザの生体認証データから構築された生体認証テンプレートをキーとして使用し、ノイズを許容する入力 から均一でランダムな文字列を抽出することで、ユーザ認証を可能にする生体認証ツールです。入力が に変化しても に近い場合は、同じ文字列が再構築されます。これを実現するために、プロセスの初期計算中に、後で復元できるように保存されるヘルパー文字列も出力します。このヘルパー文字列は、 のセキュリティを損なうことなく公開できます。また、攻撃者がを変更した場合でも、プロセスのセキュリティは確保されます。固定文字列が計算されると、たとえば、生体認証入力のみに基づいてユーザとサーバ間の鍵合意に使用できます。[1] [2]









歴史
ファジー抽出器の前身の一つは、ジュエルズとワッテンバーグによって設計された、いわゆる「ファジーコミットメント」でした。[2]ここでは、暗号鍵は生体認証データを使用してデコミットされます。
その後、Juels とSudan はファジー ボールト スキームを考案しました。これはファジー コミットメント スキームの順序不変であり、リード ソロモン エラー訂正コードを使用します。コード ワードは多項式の係数として挿入され、この多項式は生体認証データのさまざまなプロパティに関して評価されます。
Fuzzy Commitment と Fuzzy Vaults はどちらも Fuzzy Extractor の前身でした。[引用が必要]
モチベーション
ファジー抽出器が生体認証データやその他のノイズの多いデータから強力なキーを生成するために、この生体認証データに暗号化パラダイムが適用されます。これらのパラダイムは次のとおりです。
(1)生体認証データの内容に関する仮定の数を制限する(生体認証データはさまざまなソースから取得されるため、攻撃者による悪用を避けるためには、入力が予測不可能であると想定するのが最善です)。
(2)入力に対して通常の暗号化技術を適用する。(ファジー抽出器は生体認証データを秘密かつ均一にランダムで、確実に再現可能なランダム文字列に変換する。)
これらの技術は、人間の記憶からの近似データ、パスワードとして使用される画像、量子チャネルからのキーなど、他の種類のノイズの多い入力にも幅広く応用できます。[2]ファジー抽出器は、統計データベースに関するプライバシーの強い概念の不可能性を証明するためにも応用されています。[3]
基本的な定義
予測可能性
予測可能性は、敵が秘密鍵を推測できる確率を示します。数学的に言えば、ランダム変数の予測可能性は です。

![{\displaystyle \max_{\mathrm{a}}P[A=a]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a1ebe995f01cc2d2d0895c3d376d745587041ab5)
たとえば、ランダム変数 と のペアが与えられた場合、敵対者がを知っている場合、 の予測可能性は になります。したがって、敵対者はで を予測できます。 は敵対者の制御下にないため における平均を使用しますが、 を知っているとの予測が敵対的になるため、 における最悪のケースを採用します。





![{\displaystyle \max _{\mathrm {a} }P[A=a|B=b]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4fbb0cd934d8e484ab773c1add966baf652d1b3c)

![{\displaystyle E_{b\leftarrow B}[\max _{\mathrm {a} }P[A=a|B=b]]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/51a0038075f5afe463ce6452a7bc259c9d9d426d)




最小エントロピー
最小エントロピーは最悪の場合のエントロピーを示します。数学的には次のように定義されます。
![{\displaystyle H_{\infty }(A)=-\log(\max _{\mathrm {a} }P[A=a])}](https://wikimedia.org/api/rest_v1/media/math/render/svg/be55cb73f3995ae9d2fdfa67a6776be0fd7f15ea)
最小エントロピーが少なくとも であるランダム変数は-ソースと呼ばれます。


統計的距離
統計的距離は、区別可能性の尺度です。数学的に言えば、2 つの確率分布とに対して=として表されます。どのシステムでも、を に置き換えると、少なくとも の確率で元のシステムと同じように動作します。


![{\displaystyle SD[A,B]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/df6e28cdfd4090d07cd3d9380ab17958b7b02c1e)
![{\displaystyle {\frac {1}{2}}\sum _{\mathrm {v} }|P[A=v]-P[B=v]|}](https://wikimedia.org/api/rest_v1/media/math/render/svg/28924150dcc8e6f3d7b1d58c78b1deff33e1c979)


![{\displaystyle 1-SD[A,B]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/07817477e3ab534a4163bacbe5efadc036c50cd9)
を強いランダム性抽出器として設定します。長さ のランダム性を持つランダム化関数 Ext: は、が に依存しない上のすべての-ソースに対する強い抽出器です。









抽出器の出力は、シード でから生成されたキーです。これは、 の確率でシステムの他の部分とは独立して動作します。強力な抽出器は、任意の -ソースから最大 ビットを抽出できます。





安全なスケッチ
セキュア スケッチにより、ノイズの多い入力を再構築できます。つまり、入力がでスケッチが の場合、とに近い値が与えられれば、を復元できます。ただし、スケッチを安全に保つために、
に関する情報を開示してはなりません。







が距離空間である場合、安全なスケッチは、それ自体を明らかにすることなく、に近い任意の点から点を復元します。





定義 2 (安全なスケッチ)
セキュアスケッチは、次のような効率的なランダム化手順のペア (SS – スケッチ、Rec – 回復) です。

(1)スケッチ手順SSは文字列を入力として受け取り、それを返す。


- 回復手順 Rec は、と の2 つの要素を入力として受け取ります。


(2)正しさ: ならば、


(3)安全性:上の任意の -ソースについて、が与えられた場合、の最小エントロピーは高い:




- 任意の に対して、 であれば、 となります。



ファジー抽出器は元の入力を復元しませんが、から(均一に近い)文字列を生成し、に近い任意の値を与えて(ヘルパー文字列 を使用)その後の再現を可能にします。 強力抽出器は、 = 0 かつの場合のファジー抽出器の特殊なケースです。







ファジー抽出器は、次のような効率的なランダム化手順 (Gen – 生成と Rep – 再現) のペアです。

(1)Genは、与えられた場合、抽出された文字列とヘルパー文字列を出力する。



(2)正しさ:かつならば、である。



(3) 安全性:上のすべての m-ソースに対して、 が与えられたとしても、文字列はほぼ一様です。したがって、 のとき 、 となります。






したがって、ファジー抽出器は、暗号化アプリケーション (秘密鍵など) を使用するための前提条件である、ほぼ均一なランダムなビット シーケンスを出力します。出力ビットはわずかに不均一であるため、セキュリティが低下するリスクがありますが、均一分布からの距離は 以下です。この距離が十分に小さい限り、セキュリティは十分に保たれます。

安全なスケッチとファジー抽出
セキュア スケッチは、ファジー抽出器の構築に使用できます。たとえば、 SS を に適用すると が得られ、ランダム性 を持つ強力な抽出器 Ext をに適用すると が得られます。はヘルパー文字列 として保存できます。はおよびによって再現できます。は回復でき、 を再現できます。














次の補題はこれを形式化します。
(SS,Rec) が安全なスケッチであり、Ext が平均的なケースの強力な抽出器であると仮定します。次の (Gen, Rep) はファジー抽出器です。



(1)Gen :設定して出力する。



(2)繰り返し:回復して出力する。



証拠:
- セキュアスケッチの定義(定義2)より、

- Ext は平均ケースの強い抽出器なので、


補論1
(SS,Rec) が 安全なスケッチであり、Ext が強力な抽出器である場合、上記の構成 (Gen, Rep) はファジー抽出器です。



引用された論文には、セキュアスケッチとファジー抽出器に関する多くの一般的な組み合わせ境界が含まれています。[2]
基本的な構造
セキュア スケッチは、エラー耐性があるため、一般的なエラー訂正コードや線形コードのように扱い、分析し、構築することができます。ここで、はコードワードの長さ、はコード化されるメッセージの長さ、はコードワード間の距離、 はアルファベットです。 が可能なワードの集合である場合、ハミング距離がである一意のコードワードがごとに存在するようなエラー訂正コードを見つけることができる可能性があります。セキュア スケッチを作成する最初のステップは、発生する可能性のあるエラーの種類を決定し、測定する距離を選択することです。

![{\displaystyle [n,k,d]_{\mathcal {F}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/854321223eac7889936f4c4c58a85d389ad6f742)









赤はコードオフセット構造、青はシンドローム構造、緑は編集距離やその他の複雑な構造を表します。
ハミング距離構造
データが削除されるリスクがなく、破損するリスクのみがある場合、エラー訂正に使用する最適な測定はハミング距離です。ハミング エラーを訂正するための一般的な構成は、コードが線形かどうかによって 2 つあります。どちらの構成も、距離が であるエラー訂正コードから始まります。ここで は許容されるエラーの数です。


コードオフセット構築
一般的なコードを使用する場合、各 に均一にランダムなコードワードを割り当て、に変更するために必要なシフトを とします。 のエラーを修正するには、から を減算し、結果として得られる誤ったコードワードのエラーを修正して を取得し、最後にを加算してを取得します。これは、 を意味します。この構成では、のときにエラー許容度とエントロピー損失の間で可能な限り最高のトレードオフを実現できます。リード・ソロモン コードが使用されるため、エントロピー損失は になります。この結果を改善する唯一の方法は、リード・ソロモンよりも優れたコードを見つけることです。
















症候群の構築
線形コードを使用する場合、をのシンドロームとします。 を修正するには、となるベクトルを見つけます。
![{\displaystyle [n,k,2t+1]_{\mathcal {F}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c913661da204f8324f13175972506b66c7ea29fc)






差分構成
非常に大きなアルファベットや非常に長い文字列で作業し、その結果非常に大きなユニバース になる場合、と をセットとして扱い、セットの差を確認してエラーを修正する方が効率的な場合があります。大きなセットで作業するには、その特性ベクトル を確認すると便利です。これは、要素が で の場合は値が 1 、の場合は値が 0になる、長さ のバイナリ ベクトルです。 が大きい場合にセキュア スケッチのサイズを小さくする最善の方法は、 を大きくすることです。これは、サイズが によって決まるためです。この構築のベースとなる適切なコードは、 および であるBCHコードです。BCH コードは、線形時間未満でデコードできることが便利です。















ピンスケッチ構築
とします。 を修正するには、まず を見つけ、次に となる集合 v を見つけ、最後に対称差 を計算してを取得します。 これは差を設定するために使用できる唯一の構成ではありませんが、最も簡単な構成です。





距離構造を編集する
データが破損または削除される可能性がある場合、使用する最適な測定は編集距離です。編集距離に基づいて構築を行う最も簡単な方法は、中間修正ステップとして集合差またはハミング距離の構築から始めて、その周りに編集距離構築を構築することです。
その他の距離測定構造
他の状況をモデル化するために使用できるエラーと距離には、他にも多くの種類があります。これらの他の可能な構成のほとんどは、編集距離構成などのより単純な構成に基づいています。
正しさの概念を緩和することでエラー許容度を向上させる
確率的手法を成功確率の高いエラー訂正に適用することで、セキュア スケッチのエラー許容度を向上できることが示されています。これにより、潜在的なコード ワードは、エラー訂正の制限があるPlotkin 境界 を超え、ほぼ訂正が可能なShannon 境界に近づくことができます。この強化されたエラー訂正を実現するには、より制限の少ないエラー分布モデルを使用する必要があります。


ランダムエラー
この最も制限の厳しいモデルでは、BSC を使用して、の各位置で受信ビットが間違っている確率でを作成します。このモデルは、エントロピー損失が(はバイナリ エントロピー関数)に制限されることを示しています。最小エントロピーの場合、ある定数 に対してエラーを許容できます。









このモデルでは、エラーには既知の分布がなく、敵対者から発生する可能性があり、唯一の制約は、破損した単語は入力のみに依存し、セキュア スケッチには依存しないことです。このエラー モデルでは、すべての複雑なノイズ プロセスを考慮できるため、エラーが を超えることは決してないことがわかります。つまり、シャノンの境界に到達できます。これを行うには、エントロピー損失を減らすランダムな順列をセキュア スケッチの前に追加します。



計算上制限された誤差
このモデルは、入力とセキュア スケッチの両方に依存するエラーを持つ点で入力依存モデルとは異なり、攻撃者はエラーを導入するために多項式時間アルゴリズムに制限されます。多項式時間よりも短い時間で実行できるアルゴリズムは現時点では現実世界では実現不可能であるため、このエラー モデルを使用して肯定的な結果が得られれば、エラーを修正できることが保証されます。これは最も制限の少ないモデルであり、シャノンの限界に近づく唯一の既知の方法はリスト デコード可能なコードを使用することですが、単一のコード ワードではなくリストを返すことが常に受け入れられるとは限らないため、実際にはこれが常に役立つとは限りません。

プライバシーの保証
一般的に、安全なシステムは、敵対者にできるだけ情報を漏らさないように努めます。生体認証の場合、生体認証の読み取りに関する情報が漏洩すると、敵対者はユーザーの個人情報を知ることができる可能性があります。たとえば、敵対者は、ヘルパー文字列にユーザーの民族性を暗示する特定のパターンがあることに気付きます。この追加情報は関数と考えることができます。敵対者がヘルパー文字列を知った場合、このデータから生体認証の読み取りを行った人物に関するデータを推測できないようにする必要があります。

理想的には、ヘルパー文字列は生体認証入力に関する情報を明らかにしません。これは、後続のすべての生体認証読み取りが元の と同一である場合にのみ可能です。この場合、実際にはヘルパー文字列は必要ありません。そのため、 とまったく相関関係のない文字列を生成するのは簡単です。





に似た生体認証入力を受け入れることが望ましいため、ヘルパー文字列は何らかの相関関係にある必要があります。と が異なることが許されるほど、と の間には相関関係が強くなります。相関関係が強いほど、について明らかになる情報が多くなります。この情報は関数 と考えることができます。最善の解決策は、敵対者がヘルパー文字列から有用な情報を何も学べないようにすることです。










ゲン(わ)を確率マップとして
確率マップは、わずかな漏れで関数の結果を隠します。漏れとは、1人が確率マップを知っていて、もう1人が知らない場合に、2人の敵対者が何らかの関数を推測する確率の差です。正式には、


![{\displaystyle |\Pr[A_{1}(Y(W))=f(W)]-\Pr[A_{2}()=f(W)]|\leq \epsilon }](https://wikimedia.org/api/rest_v1/media/math/render/svg/fa22b1abe43809e935a99045614dbf78ec4e88da)
関数が確率マップである場合、たとえ敵対者がヘルパー文字列と秘密文字列の両方を知っていたとしても、何も知らない場合と比べて、対象者について何かを見つけ出す可能性はごくわずかしか高くありません。文字列は秘密にしておく必要があるため、たとえ漏洩したとしても (可能性は非常に低いはずです)、が小さい限り、敵対者は対象者について何も有用な情報を見つけることができません。生体認証入力と人物の何らかの身体的特徴との間の相関関係を と見なすことができます。上記の式を に設定すると、次のようになります。







![{\displaystyle |\Pr[A_{1}(R,P)=f(W)]-\Pr[A_{2}()=f(W)]|\leq \epsilon }](https://wikimedia.org/api/rest_v1/media/math/render/svg/e166a87ac360ea7d46f30faac664962f4d8b86f3)
つまり、一方の敵が知識を持ち、もう一方の敵が何も知らない場合、彼らの推測は異なるだけであるということです。





一様ファジー抽出器はファジー抽出器の特殊なケースであり、 の出力は一様分布から選択された文字列、つまり とほとんど変わりません。



セキュア スケッチはファジー抽出器を意味するため、均一なセキュア スケッチを作成すると、均一なファジー抽出器を簡単に作成できます。均一なセキュア スケッチでは、スケッチ手順はランダム性抽出器です。ここで、 は生体認証入力、 はランダム シードです。ランダム性抽出器は均一分布からの文字列を出力するため、入力に関するすべての情報を隠します。



アプリケーション
抽出スケッチを使用して、-ファジー完全一方向ハッシュ関数を構築できます。ハッシュ関数として使用する場合、入力はハッシュするオブジェクトです。出力するはハッシュ値です。 が元の から以内であることを確認したい場合は、 を確認します。このようなファジー完全一方向ハッシュ関数は、入力が元の と完全に一致する場合にのみ受け入れる従来のハッシュ関数と比較して、最大でエラーまでの任意の入力を受け入れる特殊なハッシュ関数です。従来の暗号ハッシュ関数は、同じ値にハッシュされる 2 つの異なる入力を見つけることが計算上不可能であることを保証しようとします。ファジー完全一方向ハッシュ関数は、同様の主張を行います。ハミング距離以上離れており、同じ値にハッシュされる 2 つの入力を見つけることが計算上不可能になります。









アクティブ攻撃に対する保護
アクティブ攻撃は、攻撃者がヘルパー文字列を変更できる攻撃です。攻撃者が、再現機能でも受け入れられる別の文字列に変更できる場合、不正な秘密文字列が出力されます。堅牢なファジー抽出器は、変更されたヘルパー文字列が入力として提供された場合に再現機能が失敗するようにすることで、この問題を解決します。





堅牢なファジー抽出器を構築する方法の 1 つは、ハッシュ関数を使用することです。この構築には、2 つのハッシュ関数とが必要です。関数は、セキュア スケッチの出力を読み取りスケッチとセキュア スケッチの両方のハッシュに追加することで、ヘルパー文字列を生成します。2 番目のハッシュ関数をとに適用することで、秘密文字列を生成します。正式には次のようになります。










再現関数はハッシュ関数 および も使用します。生体認証入力が 関数を使用して復元されたものと十分に類似していることを確認するだけでなく、 の 2 番目の部分のハッシュが実際におよびから導出されたものであることも確認します。これらの条件が両方とも満たされると、 が返されます。これは、およびに適用された 2 番目のハッシュ関数です。正式には次のようになります。










If and then elseからand を取得する





が改ざんされている場合、出力で非常に高い確率で失敗するため、それは明らかです。アルゴリズムに異なる を受け入れさせるには、敵対者はとなるを見つける必要があります。ハッシュ関数 は一方向性関数であると考えられるため、そのような を見つけることは計算上不可能です。 を見ても、敵対者は有用な情報を得ることができません。また、ハッシュ関数 は一方向性関数であるため、敵対者がハッシュ関数を逆にして を見つけることは計算上不可能です。 の一部はセキュアスケッチですが、定義上、スケッチは入力についてごくわずかな情報しか明らかにしません。同様に、を見ても (決して見るべきではないにもかかわらず)、敵対者は有用な情報を得ることができません。敵対者はハッシュ関数を逆にして生体認証入力を見ることができないからです。










参考文献
- ^ 「ファジー抽出器:2004年から2006年までの結果の簡単な調査」www.cs.bu.edu 。 2021年9月11日閲覧。
- ^ abcd Yevgeniy Dodis、Rafail Ostrovsky、Leonid Reyzin、Adam Smith。「ファジー抽出: 生体認証やその他のノイズの多いデータから強力なキーを生成する方法」2008 年。
- ^ Dwork, Cynthia (2006). 「差分プライバシー」.オートマトン、言語、プログラミング: 第 33 回国際コロキウム、ICALP 2006、イタリア、ヴェネチア、2006 年 7 月 10 ~ 14 日、議事録、パート II (コンピュータ サイエンスの講義ノート)。Springer。ISBN 978-354035907-4。
さらに読む
- 「ファジー抽出器: 2004 年から 2006 年までの結果の簡単な調査」。
- アルバレス、F. エルナンデス他 (2007)。「虹彩テンプレートのバイオメトリックファジー抽出スキーム」(PDF)。スペイン国立研究評議会(CSIC) 。2022年3 月 25 日に閲覧。
- Juels, Ari; et al. (2002). 「A Fuzzy Vault Scheme」(PDF) . MIT コンピューターサイエンスおよび人工知能研究所(CSAIL) . 2022 年3 月 25 日閲覧。
- Fuller, Benjamin; et al. (2014). 「ファジー抽出器はいつ可能になるのか?」(PDF)。国際暗号研究協会(IACR) 。2024 年7 月 23 日に閲覧。
外部リンク
- 「Minisketch: BCH ベース (ピン スケッチ) セット調整用に最適化された C++ ライブラリ」. github.com . 2021 年 5 月 31 日。