Rilevamento di circuiti simili per funzionalità e implementazione


11

Sia un vettore di variabili booleane. Sia due circuiti booleani su . Dì che è simile a se:C , D x C Dx=(x1,,xn)C,DxCD

  1. Pr[C(x)D(x)] è esponenzialmente piccolo, quando x viene disegnato in modo uniforme a caso da {0,1}n (in altre parole, hanno funzionalità quasi identiche); e,

  2. C,D differiscono nella distanza di modifica del grafico di una piccola quantità (la loro distanza di modifica è molto più piccola della dimensione del circuito, diciamo O(1) o una piccola costante), il che significa che quasi tutte le porte e i fili di C corrispondono un corrispondente cancello e filo in D , con solo alcune porte aggiunte / cancellate / modificate.


Il mio problema: mi viene dato un circuito C e voglio sapere se esiste un circuito D simile a C ma non identico a C (cioè, dove esiste x tale che C(x)D(x) ).

Qualcuno può suggerire un algoritmo per risolvere questo problema?

Se aiuta, possiamo limitare l'attenzione ai circuiti D che sono più piccoli del dato circuito C (cioè, vogliamo sapere se esiste un circuito D tale che D è più piccolo di C , D è simile a C , e esiste x tale che C(x)D(x) ).

Se aiuta, puoi anche supporre che ci vengano dati casi di test noti x1,,xm,y1,,ym tali che C(xi)=yi per tutti i , e possiamo limitare ulteriormente l'attenzione solo ai circuiti D tali che D(xi)=yi per tutti i .


Ciò deriva da un'applicazione pratica, quindi se non riesci a risolvere questo problema, sentiti libero di risolvere qualsiasi variante o caso speciale interessante. Ad esempio, sentiti libero di creare un'istanza di qualsiasi parametro o soglia in qualsiasi modo sia conveniente per te. Puoi presumere che i circuiti non siano troppo grandi (dimensioni polinomiali o qualcosa del genere). Sentiti libero di sostituire la distanza di modifica del grafico con qualche altra misura di quasi corrispondenza dell'implementazione. Inoltre, in pratica i solutori SAT sono spesso sorprendentemente efficaci sui circuiti strutturati che sorgono nella pratica, quindi probabilmente va bene invocare un solutore SAT come subroutine / oracolo (almeno, se lo si sta invocando su qualcosa come un'istanza SAT derivata da un circuito come ).C

In alternativa, privo di algoritmi, sarei anche interessato alla domanda di esistenza: per un circuito "medio" , qual è la probabilità che esista una che soddisfi tutti i criteri? (Spero che questa probabilità sia molto bassa, ma non ho idea se sia così.)DCD


L'applicazione pratica è verificare se un circuito potrebbe contenere un backdoor dannoso / uovo di Pasqua nascosto. L'ipotesi di come una cosa del genere possa essere inserita va così. Iniziamo con un circuito "dorato" , che calcola la funzionalità desiderata e non ha backdoor nascosto. Quindi, l'avversario apporta una piccola modifica a per introdurre la backdoor nascosta, ottenendo un circuito modificato . Lo scopo della backdoor è di modificare la funzione calcolata da in qualche modo. Se non è troppo piccolo, la modifica può essere plausibilmente rilevata da test casuali, quindi un avversario probabilmente cercherà di mantenereD D C D Pr [ C ( x ) D ( x ) ] Pr [ C ( x ) D ( x ) ] C D x i , y i D D ( x i ) = y i i C D C DCDDCDPr[C(x)D(x)]Pr[C(x)D(x)]molto piccolo. Allo stesso modo, se differisce da in troppi punti, ciò potrebbe essere notato da un'ispezione casuale del circuito, quindi un avversario probabilmente proverà a minimizzare il numero di modifiche. (E, potrebbe esserci una suite di test di coppie che rappresentano istanze della funzionalità desiderata, quindi sappiamo che qualunque sia il circuito "dorato" , soddisfa per tutti .) Alla fine, ci viene dato il circuito (ma non il circuito "dorato" ) e vogliamo sapere se potrebbe essere una versione modificata di alcuniCDxi,yiDD(xi)=yiiCDCD, in cui è stata apportata la modifica per introdurre una backdoor nascosta di questo tipo.


Quanti bit formano l'ingresso al circuito? Se questo è sufficientemente piccolo, potrebbe avere senso eseguire test esaustivi.
András Salamon,

@ AndrásSalamon: Sfortunatamente, il numero di ingressi al circuito è abbastanza grande in pratica (nelle applicazioni che ho in mente) che è impossibile eseguire test esaustivi su tutti i possibili ingressi. Apprezzo il pensiero, però! 2 nn2n
DW,

hanno usato algoritmi genetici per attaccare empiricamente qualcosa di simile a questo problema. in questo caso sembra che l'algoritmo che affermi, il test casuale, sia qualcosa da provare. inoltre, sembra che tu non abbia descritto affatto cosa sia una "backdoor" nel circuito (questo sembra avere una connessione non dichiarata alla crittografia), ma grazie per aver fornito qualche tentativo di motivazione ... una domanda immediata sembra essere come potrebbe un avversario inserire qualche backdoor mentre si elude il rilevamento mediante test casuali? ma lo scenario complessivo non sembra completamente definito.
vzn

3
@vzn, Il circuito dorato descrive la funzionalità prevista del dispositivo. Supponiamo che l'attaccante possa scegliere / influenzare 100 degli bit di input. Siamo preoccupati che ci sia una backdoor nascosta in che funziona in questo modo: se l'attaccante fornisce un valore magico di 100 bit sui suoi input, allora il circuito backdoored calcola l'uscita sbagliata (con effetto tragico), ma altrimenti si comporta esattamente come . Ciò consentirebbe all'attaccante di innescare una tragedia nel momento di sua scelta, ma è difficile da rilevare con test casuali (poiché solo degli input innescano la tragedia). n C C C D 1 / 2 100D(x)nCCCD1/2100
DW

la domanda sembra che potrebbe avere qualche relazione con la "spina dorsale" SAT. vedere anche questa domanda sulla conversione / errori cnf vs dnf che potrebbe essere un modo naturale / formale per quantificare la "somiglianza" che non quantificate formalmente. è vero che l'attaccante può solo "capovolgere" il risultato "dorato" di vero o falso aggiungendo porte? cioè sembra un problema simile a -xor- . g ( x )f(x)g(x)
vzn

Risposte:


4

Questo è solo un commento esteso che mi è venuto in mente subito dopo aver letto la domanda:

  • supponiamo di avere una formula 3SAT con variabili e lasciare che sia il circuito corrispondente;n x 1 , . . . , x n Cϕnx1,...,xnC

  • costruire un nuovo circuito , aggiungendo variabili e abbastanza gate per AND le nuove variabili con l'output della originale ( ); m = n k y 1 , y 2 , . . . , y n k m C C = ϕ y 1. . . y mCm=nky1,y2,...,ynkmCC=ϕy1...ym

  • costruire un nuovo circuito da che forza semplicemente la sua uscita a 0 usando un gate AND e NOT ( )C D = C ¬ C DCD=C¬C

Se non è soddisfacente allora e sono equivalenti, altrimenti differiscono quando soddisfa la formula E tutto , ma puoi scegliere abbastanza grande da rendere molto piccola la probabilità che .D C x i y i = 1 m y i = 1ϕDCxiyi=1myi=1

Quindi, se disponi di un algoritmo efficiente per il tuo problema, puoi risolvere efficacemente l'istanza 3SAT.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.