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


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.