Erkennungsschaltung, die in Funktionalität und Implementierung ähnlich ist

11

Sei ein Vektor boolescher Variablen. Sei zwei boolesche Schaltungen auf . Sagen Sie, dass ähnlich ist, wenn:x=(x1,,xn)C,DxCD

  1. Pr[C(x)D(x)] ist exponentiell klein, wenn x gleichmäßig zufällig aus \ {0,1 \} ^ n gezeichnet wird {0,1}n(mit anderen Worten, sie haben eine nahezu identische Funktionalität); und,

  2. C,D unterscheiden sich in der Grafikbearbeitungsentfernung um einen winzigen Betrag (ihre Bearbeitungsentfernung ist viel kleiner als die Größe der Schaltung, z. B. O(1) oder eine kleine Konstante), was bedeutet, dass fast alle Gates und Drähte von C übereinstimmen ein entsprechendes Gate und Draht in D , wobei nur wenige Gates hinzugefügt / gelöscht / geändert wurden.


Mein Problem: Ich bekomme eine Schaltung C und möchte wissen, ob es eine Schaltung D gibt, die C ähnlich, Caber nicht identisch mit C (dh wo es x gibt, xso dass C(x)D(x) ).

Kann jemand einen Algorithmus vorschlagen, um dieses Problem zu lösen?

Wenn es hilft, können wir die Aufmerksamkeit auf Schaltungen D , die kleiner als die gegebene Schaltung C (dh wir möchten wissen, ob es eine Schaltung D so dass D kleiner als C , D ähnlich zu C ist und x existiert xso dass C(x)D(x) ).

Wenn es hilft, können Sie zusätzlich annehmen, dass wir bekanntermaßen gute Testfälle x1,,xm,y1,,ym so dass C(xi)=yi für all i , und wir können die Aufmerksamkeit weiter auf nur Schaltungen D so dass D(xi)=yi für alle i .


Dies ergibt sich aus einer praktischen Anwendung. Wenn Sie dieses Problem nicht lösen können, können Sie jede Variante oder jeden interessanten Sonderfall lösen. Sie können beispielsweise einen der Parameter oder Schwellenwerte auf eine für Sie geeignete Weise instanziieren. Sie können davon ausgehen, dass die Schaltkreise nicht zu groß sind (Polynomgröße oder ähnliches). Sie können die Bearbeitungsentfernung für Diagramme durch ein anderes Maß für die nahezu übereinstimmende Implementierung ersetzen. In der Praxis sind SAT-Löser in den in der Praxis auftretenden strukturierten Schaltkreisen häufig überraschend effektiv. Daher ist es wahrscheinlich in Ordnung, einen SAT-Löser als Subroutine / Orakel aufzurufen (zumindest, wenn Sie ihn in einer abgeleiteten SAT-Instanz aufrufen von einem Stromkreis wie ).C

Wenn mir keine Algorithmen fehlen, würde mich auch die Existenzfrage interessieren: Wie groß ist für eine "durchschnittliche" Schaltung die Wahrscheinlichkeit, dass existiert , das alle Kriterien erfüllt? (Ich hoffe, diese Wahrscheinlichkeit ist sehr gering, aber ich habe keine Ahnung, ob dies der Fall ist.)CD


Die praktische Anwendung besteht darin, zu testen, ob eine Schaltung eine böswillige Hintertür / ein verstecktes Osterei enthalten könnte. Die Hypothese, wie so etwas eingefügt werden könnte, lautet wie folgt. Wir beginnen mit einer "goldenen" Schaltung , die die gewünschte Funktionalität berechnet und keine versteckte Hintertür hat. Dann nimmt der Gegner eine kleine Änderung an , um die verborgene Hintertür einzuführen und eine modifizierte Schaltung . Der Zweck der Hintertür besteht darin, die von berechnete Funktion auf irgendeine Weise zu ändern . Wenn nicht zu klein ist, kann die Änderung plausibel durch zufällige Tests erkannt werden, sodass ein Gegner wahrscheinlich versuchen wird,CDDCDPr[C(x)D(x)]Pr[C(x)D(x)]sehr klein. Wenn sich an zu vielen Stellen von unterscheidet , kann dies durch zufällige Inspektion der Schaltung bemerkt werden, sodass ein Gegner wahrscheinlich versuchen wird, die Anzahl der Änderungen zu minimieren. (Und es kann eine Testsuite von Paaren geben, die Instanzen der gewünschten Funktionalität darstellen, so dass wir wissen, dass unabhängig von der "goldenen" Schaltung erfüllt ist für alle .) Letztendlich erhalten wir die Schaltung (aber nicht die "goldene" Schaltung ), und wir wollen wissen, ob eine modifizierte Version von einigenCDxi,yiDD(xi)=yiiCDCD, wo die Änderung vorgenommen wurde, um eine versteckte Hintertür dieser Art einzuführen.

DW
quelle
Wie viele Bits bilden den Eingang zur Schaltung? Wenn dies ausreichend klein ist, kann es sinnvoll sein, umfassende Tests durchzuführen.
András Salamon
@ AndrásSalamon: Leider ist die Anzahl der Eingänge in die Schaltung in der Praxis groß genug (in den Anwendungen, an die ich denke ), dass ein ausführliches Testen aller möglichen Eingänge nicht möglich ist. Ich schätze den Gedanken jedoch! n2n
DW
haben genetische Algorithmen verwendet, um so etwas empirisch anzugreifen. In diesem Fall scheint der von Ihnen angegebene Algorithmus, das zufällige Testen, ein Versuch zu sein. Außerdem haben Sie anscheinend überhaupt nicht beschrieben, was eine "Hintertür" in der Schaltung ist (dies scheint eine unausgesprochene Verbindung zur Kryptographie zu haben), aber danke für einen Motivationsversuch ... eine unmittelbare Frage scheint zu sein, wie ein Gegner sein könnte Hintertür einfügen, während Sie der Erkennung durch zufällige Tests entgehen? Das Gesamtszenario scheint jedoch nicht vollständig definiert zu sein.
vzn
3
@vzn, Die goldene Schaltung beschreibt die beabsichtigte Funktionalität des Geräts. Angenommen, 100 der Eingangsbits können vom Angreifer ausgewählt / beeinflusst werden. Wir befürchten, dass es in eine versteckte Hintertür gibt , die so funktioniert: Wenn der Angreifer einen magischen 100-Bit-Wert für seine Eingaben bereitstellt, berechnet die Hintertürschaltung die falsche Ausgabe (mit tragischem Effekt), aber ansonsten verhält sich genau so . Dies würde es dem Angreifer ermöglichen, eine Tragödie zu einem Zeitpunkt seiner Wahl auszulösen, aber es ist schwer durch zufällige Tests zu erkennen (da nur 1/2 der Eingaben eine Tragödie auslösen). D(x)nCCCD1/2100
DW
Die Frage scheint in irgendeiner Beziehung zum "Rückgrat" des SAT zu stehen. Siehe auch diese Frage zu cnf vs dnf-Konvertierung / Fehlern, die eine natürliche / formale Methode zur Quantifizierung von "Ähnlichkeit" sein können, die Sie nicht formal quantifizieren. Ist es wahr, dass der Angreifer das "goldene" Ergebnis von wahr oder falsch nur durch Hinzufügen von Toren "umdrehen" kann? dh es klingt wie ein -xorg -ähnliches Problem. f(x)g(x)
vzn

Antworten:

4

Dies ist nur ein ausführlicher Kommentar, der mir unmittelbar nach dem Lesen der Frage in den Sinn kam:

  • Angenommen, Sie haben eine 3SAT-Formel mit Variablen und lassen die entsprechende Schaltung sein;ϕnx1,...,xnC

  • Bauen Sie eine neue Schaltung , indem Sie Variablen und genügend Gatter hinzufügen, um UND die neuen Variablen mit der Ausgabe des ursprünglichen ( );Cm=nky1,y2,...,ynkmCC=ϕy1...ym

  • Erstellen Sie eine neue Schaltung aus , die ihren Ausgang einfach mit einem UND- und NICHT-Gatter auf 0 zwingt ( ).DCD=C¬C

Wenn nicht erfüllbar ist, sind und äquivalent, andernfalls unterscheiden sie sich, wenn die Formel UND alle erfüllt , aber Sie können groß genug wählen , um die Wahrscheinlichkeit, dass sehr klein ist , zu .ϕDCxiyi=1myi=1

Wenn Sie also einen effizienten Algorithmus für Ihr Problem haben, können Sie die 3SAT-Instanz effizient lösen.

Marzio De Biasi
quelle