Blinding_(cryptography)
で暗号化、盲検化は、エージェントが(すなわち、計算するサービスを提供することが可能な技術である機能を実際の入力または実際の出力のいずれかを知らずに符号化された形式でクライアントのために)。ブラインド技術には、暗号化デバイスに対するサイドチャネル攻撃を防ぐためのアプリケーションも
より正確には、アリスには入力xがあり、オスカーには関数fがアリスは、オスカーにxまたはyを明かさずに、彼女のy = f(x)を計算してもらいたいと考えています。彼女がこれを望んでいる理由は、彼女が関数fを知らないか、それを計算するためのリソースを持っていないためかもしれません。アリスは、メッセージを他の入力E(x)にエンコードすることにより、メッセージを「ブラインド」します。エンコーディングEは、fの入力空間での全単射、理想的にはランダム順列でなければなりません。オスカーは彼女に与えるf(E(x))、これにデコードDを適用して、D(f(E(x)))= yを取得します。
すべての関数がブラインド計算を許可しているわけではありません。それ以外の場合は、ブラインドを慎重に適用する必要が後者の例は、Rabin–Williams署名です。フォーマットされたメッセージにブラインドが適用されているが、ランダムな値がpとqのJacobi要件を満たしていない場合、秘密鍵の回復につながる可能性が回復のデモンストレーションは、EvgenySidorovによって発見されたCVE – 2015-2141 で見ることができます。
ブラインドの最も一般的なアプリケーションは、ブラインド署名です。ブラインド署名プロトコルでは、署名者はメッセージの内容を学習できずにメッセージにデジタル署名します。
ワンタイムパッド(OTP)は、その性質により、安全な通信の問題に盲目のアプリケーションです。アリスはボブに密かにメッセージを送りたいと思っていますが、彼らのコミュニケーションはすべてオスカーが読むことができます。したがって、アリスは、ボブと共有する秘密鍵またはOTPでメッセージをブラインドした後、メッセージを送信します。ボブはメッセージを受信した後、ブラインドを元に戻します。この例では、関数fはIDであり、EとDはどちらも通常XOR演算です。
ブラインドは、非対称暗号化スキームに対する特定のサイドチャネル攻撃を防ぐためにも使用できます。サイドチャネル攻撃により、攻撃者は、アルゴリズムの結果以外の何か(消費電力、計算時間、デバイスによる無線周波数放射など)を測定することにより、暗号化操作への入力に関する情報を回復できます。通常、これらの攻撃は、アルゴリズムの特性と(一部の)入力を知っている攻撃者に依存します。この設定では、ブラインドはアルゴリズムの入力を予測できない状態に変更するのに役立ちます。ブラインド機能の特性によっては、これにより、有用な情報の一部またはすべての漏洩を防ぐことができます。セキュリティは、サイドチャネル攻撃に対するブラインド機能自体の耐性にも依存することに注意して
例えば、内RSAブラインド操作算出することを含むブラインドE(X)= (XR)E MOD N、rは1との間のランダムな整数であり、Nと互いに素のN(すなわち、GCD(R、N)= 1) 、xは素テキスト、eはパブリックRSA指数、NはRSAモジュラスです。いつものように、復号関数F(Z)= Z Dは国防省Nがこのように与え適用されるFを(E(X))= (XR)は編MOD N = XR MOD Nを。最後に、関数用いて非盲検であるD(Z)= ZR -1 MOD Nを。乗算XR MOD NによりR -1 MOD Nの収率のX所望に応じて、。この方法で復号化する場合、この操作にかかる時間を測定できる攻撃者は、定数rを知らないため、この情報を利用できません(タイミング攻撃を適用することにより、RSAは脆弱であることが知られています)。したがって、RSAプリミティブに供給される実際の入力についての知識はありません。
例
GPG1.xでの盲検化
参考文献
^ CVE-2015-2141
外部リンク
Diffie-Hellman、RSA、DSSおよびその他のシステムの実装に対するタイミング攻撃
Crypto ++ライブラリでのRabin-Williamsデジタル署名システムの実装を破る