Wykrywanie obwodu o podobnej funkcjonalności i implementacji

11

Niech będzie wektorem zmiennych boolowskich. Niech C , D będą dwoma obwodami logicznymi na x . Powiedz, że C jest podobny do D, jeśli:x=(x1,,xn)C,DxCD

  1. jest wykładniczo mały, gdy x jest losowo narysowany równomiernie z { 0 , 1 } n (innymi słowy, mają prawie identyczną funkcjonalność); i,Pr[C(x)D(x)]x{0,1}n

  2. różnią się nieznacznie odległością edycji wykresu (ich odległość edycji jest znacznie mniejsza niż rozmiar obwodu, powiedzmy O ( 1 ) lub jakaś niewielka stała), co oznacza, że ​​prawie wszystkie bramki i przewody w C pasują do siebie odpowiednią bramę i drut w D , z kilkoma bramkami dodanymi / usuniętymi / zmienionymi.C,DO(1)CD


Mój problem: otrzymałem obwód i chcę wiedzieć, czy istnieje obwód D, który jest podobny do C, ale nie identyczny z C (tj. Gdzie istnieje x taki, że C ( x ) D ( x ) ) .CDCCxC(x)D(x)

Czy ktoś może zasugerować algorytm rozwiązania tego problemu?

Jeśli to pomoże, możemy ograniczyć uwagę do obwodów które są mniejsze niż dany obwód C (tzn. Chcemy wiedzieć, czy istnieje obwód D taki, że D jest mniejszy niż C , D jest podobny do C i istnieje x takie, że C ( x ) D ( x ) ).DCDDCDCxC(x)D(x)

Jeśli to pomoże, możesz dodatkowo założyć, że otrzymaliśmy znane dobre przypadki testowe takie, że C ( x i ) = y i dla wszystkich i , i możemy dodatkowo ograniczyć uwaga tylko na obwody D takie, że D ( x i ) = y i dla wszystkich i .x1,,xm,y1,,ymC(xi)=yiiDD(xi)=yii


Wynika to z praktycznego zastosowania, więc jeśli nie możesz rozwiązać tego problemu, możesz rozwiązać dowolny wariant lub interesujący specjalny przypadek. Na przykład możesz dowolnie tworzyć dowolne parametry lub progi w dogodny dla siebie sposób. Możesz założyć, że obwody nie są zbyt duże (wielomianowe lub coś w tym rodzaju). Możesz zastąpić odległość edycji wykresu inną miarą zbliżonego dopasowania. Ponadto w praktyce solwery SAT są często zaskakująco skuteczne w obwodach strukturalnych, które powstają w praktyce, więc prawdopodobnie dobrze jest wywołać solver SAT jako podprogram / wyrocznię (przynajmniej, jeśli wywołuje się go na czymś w rodzaju pochodnej instancji SAT z obwodu takiego jak ).C

Alternatywnie, bez żadnych algorytmów, byłbym również zainteresowany pytaniem o istnienie: w przypadku „przeciętnego” obwodu , jakie jest prawdopodobieństwo, że istnieje jakieś D, które spełnia wszystkie kryteria? (Mam nadzieję, że prawdopodobieństwo to jest bardzo niskie, ale nie mam pojęcia, czy tak jest w tym przypadku).CD


Praktycznym zastosowaniem jest sprawdzenie, czy obwód może zawierać złośliwe tylne drzwi / ukryte jajko wielkanocne. Hipoteza, jak coś takiego może zostać wstawione, wygląda następująco. Zaczynamy od „złotego” obwodu D , który oblicza pożądaną funkcjonalność i nie ma ukrytego tylnego wejścia. Następnie przeciwnik robi małe zmiany D wprowadzenie ukryty furtkę, uzyskując zmodyfikowany obwód C . Celem backdoora jest zmiana funkcji obliczonego przez D w jakiś sposób. Jeśli Pr [ C ( x ) D ( x ) ]CDDCDPr[C(x)D(x)]nie jest zbyt mały, zmiana może być prawdopodobnie wykryta przez losowe testy, więc przeciwnik prawdopodobnie będzie próbował utrzymać bardzo małym poziomie. Podobnie, jeśli C różni się od D w zbyt wielu miejscach, można to zauważyć przez losową kontrolę obwodu, więc przeciwnik prawdopodobnie spróbuje zminimalizować liczbę zmian. (I nie może być zestaw testów z x i , y í par, które reprezentują wystąpienia pożądanej funkcjonalności, więc wiemy, że bez względu na „złoty” Obieg D jest, że spełnia D (Pr[C(x)D(x)]CDxi,yiD dla wszystkich i .) Ostatecznie otrzymujemy obwód C (ale nie „złoty” obwód D ) i chcemy wiedzieć, czy C może być zmodyfikowaną wersją jakiegoś D , gdzie modyfikacja była wprowadzone w celu wprowadzenia tego rodzaju ukrytego backdoora.D(xi)=yiiCDCD

DW
źródło
Ile bitów stanowi wejście do obwodu? Jeśli jest to wystarczająco małe, sensowne może być przeprowadzenie wyczerpujących testów.
András Salamon,
n2n
zastosowali algorytmy genetyczne, aby empirycznie zaatakować coś takiego. w tym przypadku wydaje się, że algorytm, który podajesz, testowanie losowe, jest czymś, co można wypróbować. wydaje się również, że wcale nie opisałeś, czym jest „backdoor” w obwodzie (wydaje się, że ma to jakieś nieokreślone powiązanie z kryptografią), ale dziękuję za dostarczenie jakiejś próby motywacji ... natychmiastowe pytanie wydaje się, jak przeciwnik wstawić jakiś backdoor, unikając wykrycia przez losowe testy? ale ogólny scenariusz wydaje się nie w pełni zdefiniowany.
vzn
3
D(x)nCCCD1/2100
DW
f(x)g(x)

Odpowiedzi:

4

To tylko rozszerzony komentarz, który przyszedł mi do głowy natychmiast po przeczytaniu pytania:

  • ϕnx1,...,xnC

  • Cm=nky1,y2,...,ynkmCC=ϕy1...ym

  • DCD=C¬C

ϕDCxiyi=1myi=1

Jeśli więc masz skuteczny algorytm dla swojego problemu, możesz skutecznie rozwiązać instancję 3SAT.

Marzio De Biasi
źródło