機能と実装が似ている検出回路


11

ましょうx=(x1,,xn)ブール変数のベクトルです。ましょC,D上の2つのブール回路でx。次の場合、C類似しているとしDます。

  1. Pr[C(x)D(x)]x{0,1}n

  2. C,Dはグラフ編集距離がわずかに異なります(編集距離は回路のサイズ、たとえばまたはいくつかの小さな定数よりもはるかに小さくなります)、つまりほとんどすべてのゲートとワイヤが一致します対応するゲートとワイヤ、追加/削除/変更されたわずかなゲートのみ。O(1)CD


私の問題は:私は、回路与えられています、そして私は、回路が存在するかどうかを知りたいに似ていると同じではなく、(すなわち、そこに存在する場合ように)。CDCCxC(x)D(x)

誰でもこの問題を解決するアルゴリズムを提案できますか?

それが助け場合は、回路に注意を制限することができます与えられた回路よりも小さい(すなわち、我々は回路が存在するかどうかを知りたいというようにより小さくなる、に似ている、およびそこに存在するその結果、)。DCDDCDCxC(x)D(x)

それが役立つ場合、既知の良好なテストケースが与えられ、がすべての、我々はさらに回路のみに注意を制限することができるがように、全てに対して。x1,,xm,y1,,ymC(xi)=yiiDD(xi)=yii


これは実用的なアプリケーションから発生するため、この問題を解決できない場合は、バリアントや興味深い特殊なケースを自由に解決してください。たとえば、パラメーターやしきい値は、都合の良い方法でインスタンス化できます。回路が大きすぎない(多項式サイズなど)と仮定できます。グラフの編集距離を、実装のほぼ一致する他の尺度に置き換えてください。また、実際には、SATソルバーは実際に生じる構造化された回路に対して驚くほど効果的であることが多いため、SATソルバーをサブルーチン/オラクルとして呼び出すことはおそらく問題ありません(少なくとも、SATインスタンスから派生したようなもので呼び出している場合は、ような回路から)。C

あるいは、アルゴリズムがない場合、存在の質問にも興味があります。「平均」回路場合、すべての基準を満たすが存在する確率はどれくらいですか。(私はこの確率が非常に低いことを望んでいますが、そうであるかどうかはわかりません。)CD


実用的なアプリケーションは、回路悪意のあるバックドア/隠されたイースターエッグが含まれるかどうかをテストすることです。そのようなものがどのように挿入されるのかという仮説は、このようになります。「ゴールデン」回路から始めます。これは、目的の機能を計算し、隠されたバックドアはありません。次に、敵はに小さな変更を加えて、隠れたバックドアを導入し、修正された回路取得します。バックドアの目的は、によって計算された関数を何らかの方法で変更することです。場合は小さすぎない敵はおそらく維持しようとしますので、変更はもっともらしく、ランダムテストによって検出することができるCDDCDPr[C(x)D(x)]Pr[C(x)D(x)]非常に少ない。同様に、がとあまりにも多くの場所で異なる場合、これは回線のランダム検査によって認識される可能性があるため、敵はおそらく変更の数を最小限にしようとします。(また、目的の機能のインスタンスを表すペアのテストスイートがある場合があるため、「ゴールデン」回路が何であれ、満たすことがわかります。 for all。)最終的に、回路(ただし「ゴールデン」回路はない)が与えられ、が一部の修正バージョンであるかどうかを知りたいCDxi,yiDD(xi)=yiiCDCD、この種の隠されたバックドアを導入するために変更が行われました。


回路への入力を形成するビット数は?これが十分に小さい場合は、徹底的なテストを行うことが理にかなっています。
アンドラスサラモン

@AndrásSalamon:悲しいことに、回路への入力の数は実際には(私が考えているアプリケーションでは)十分に大きいため、可能なすべての入力に対する徹底的なテストは実行不可能です。しかし、私はその考えに感謝します!n2n
DW

遺伝的アルゴリズムを使用して、この問題のようなものを経験的に攻撃しています。この場合、あなたが述べたアルゴリズム、ランダムなテストは試してみるものです。また、回路の「バックドア」が何であるかについてはまったく説明しなかったようですが(これは暗号化への無言の接続を持っているようです)、動機付けの試みを提供するためのthx ...ランダムテストによる検出を回避しながらバックドアを挿入しますか?しかし、全体的なシナリオは完全に定義されていないようです。
vzn

3
@vzn、ゴールデンサーキットは、デバイスの意図された機能を記述します。入力ビットのうち100 個が攻撃者によって選択/影響を受けると仮定します。には次のような隠れたバックドアが存在するのではないかと心配しています。攻撃者が入力に魔法の100ビット値を入力すると、バックドアの回路は間違った出力を(悲劇的な効果で)計算しますが、そうでなければはまったく同じように動作します。これにより、攻撃者は自分が選んだときに悲劇をトリガーできますが、ランダムテストでは検出が困難です(入力の1/2のみが悲劇をトリガーするため)。D(x)nCCCD1/2100
DW

質問は、SATの「バックボーン」と何らかの関係があるようです。cnf対dnf変換/エラーに関するこの質問も参照してくださいこれは、正式に定量化しない「類似性」を定量化するための自然/正式な方法かもしれません。攻撃者がゲートを追加することで、真または偽の「ゴールデン」結果のみを「反転」できるのは本当ですか?すなわち、 -xor-ような問題のように聞こえます。f(x)g(x)
vzn

回答:


4

これは、質問を読んだ直後に頭に浮かんだ拡張コメントです。

  • 変数を持つ3SAT式があり、が対応する回路であるとします。ϕnx1,...,xnC

  • 新たな回路構築添加、変数、十分なゲートし、元の出力を持つ新しい変数();Cm=nky1,y2,...,ynkmCC=ϕy1...ym

  • ANDおよびNOTゲートを使用して出力を0に強制するから新しい回路構築します()DCD=C¬C

が充足可能でない場合、とは同等です。それ以外の場合、が式AND all満たした場合は異なりますが、を選択して確率を非常に小さくすることができます。ϕDCxiyi=1myi=1

したがって、問題に対して効率的なアルゴリズムがあれば、3SATインスタンスを効率的に解決できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.