Circuito de detección que es similar en funcionalidad e implementación

11

Sea un vector de variables booleanas. Sea dos circuitos booleanos en . Digamos que es similar a si:x=(x1,,xn)C,DxCD

  1. Pr[C(x)D(x)] es exponencialmente pequeño, cuando x se dibuja uniformemente al azar desde {0,1}n (en otras palabras, tienen una funcionalidad casi idéntica); y,

  2. C,D difieren en la distancia de edición del gráfico en una pequeña cantidad (su distancia de edición es mucho menor que el tamaño del circuito, por ejemplo, O(1) o alguna pequeña constante), lo que significa que casi todas las puertas y cables de C coinciden una puerta correspondiente y un cable en D , con solo unas pocas puertas agregadas / eliminadas / modificadas.


Mi problema: me dan un circuito C , y quiero saber si existe un circuito D que sea similar a C pero no idéntico a C (es decir, donde existe x tal que C(x)D(x) )

¿Alguien puede sugerir un algoritmo para resolver este problema?

Si ayuda, podemos restringir la atención a los circuitos D que son más pequeños que el circuito C dado C(es decir, queremos saber si existe un circuito D tal que D es más pequeño que C , D es similar a C y existe x tal que C(x)D(x) ).

Si ayuda, también puede suponer que se nos dan casos de prueba bien conocidos x1,,xm,y1,,ym modo que C(xi)=yi para todo i , y podemos restringir aún más la atención solo a los circuitos D modo que D(xi)=yi para todo i .


Esto surge de una aplicación práctica, por lo que si no puede resolver este problema, no dude en resolver cualquier variante o caso especial interesante. Por ejemplo, siéntase libre de instanciar cualquiera de los parámetros o umbrales de la manera que le resulte conveniente. Puede suponer que los circuitos no son demasiado grandes (tamaño polinómico, o algo así). Siéntase libre de reemplazar la distancia de edición del gráfico por alguna otra medida de casi coincidencia de implementación. Además, en la práctica, los solucionadores de SAT a menudo son sorprendentemente efectivos en los circuitos estructurados que surgen en la práctica, por lo que probablemente esté bien invocar un solucionador de SAT como una subrutina / oráculo (al menos, si lo invoca en algo como una instancia de SAT derivada de un circuito como ).C

Alternativamente, al carecer de algoritmos, también me interesaría la pregunta de existencia: para un circuito "promedio" , ¿cuál es la probabilidad de que exista algo de que cumpla con todos los criterios? (Espero que esta probabilidad sea muy baja, pero no tengo idea si ese es el caso).CD


La aplicación práctica es probar si un circuito puede contener una puerta trasera maliciosa / huevo de Pascua oculto. La hipótesis de cómo podría insertarse algo así es así. Comenzamos con un circuito "dorado" , que calcula la funcionalidad deseada y no tiene una puerta trasera oculta. Entonces, el adversario hace un pequeño cambio en para introducir la puerta trasera oculta, la obtención de un circuito modificado . El propósito de la puerta trasera es cambiar la función calculada por de alguna manera. Si no es demasiado pequeño, el cambio puede detectarse plausiblemente mediante pruebas aleatorias, por lo que un adversario probablemente tratará de mantenerCDDCDPr[C(x)D(x)]Pr[C(x)D(x)]muy pequeña. Del mismo modo, si difiere de en demasiados lugares, esto podría notarse mediante una inspección aleatoria del circuito, por lo que un adversario probablemente tratará de minimizar el número de cambios. (Y, puede haber un conjunto de pruebas de pares que representan instancias de la funcionalidad deseada, por lo que sabemos que sea cual sea el circuito "dorado" , satisface para todo .) En última instancia, se nos da el circuito (pero no el circuito "dorado" ), y queremos saber si podría ser una versión modificada de algunaCDxi,yiDD(xi)=yiiCDCD, donde se realizó la modificación para introducir una puerta trasera oculta de este tipo.

DW
fuente
¿Cuántos bits forman la entrada al circuito? Si esto es lo suficientemente pequeño, entonces podría tener sentido hacer pruebas exhaustivas.
András Salamon
@ AndrásSalamon: Lamentablemente, el número de entradas al circuito es lo suficientemente grande en la práctica (en las aplicaciones que tengo en mente) que las pruebas exhaustivas sobre las entradas posibles no son factibles. ¡Aunque aprecio el pensamiento! n2n
DW
He usado algoritmos genéticos para atacar algo como este problema empíricamente. en este caso parece que el algoritmo que estableces, las pruebas aleatorias, es algo para probar. Además, parece que no describió en absoluto qué es una "puerta trasera" en el circuito (esto parece tener alguna conexión no establecida con la criptografía), pero gracias por proporcionar algún intento de motivación ... una pregunta inmediata parece ser cómo podría un adversario insertar alguna puerta trasera mientras evade la detección mediante pruebas aleatorias? pero el escenario general parece no estar completamente definido.
vzn
3
@vzn, El circuito dorado describe la funcionalidad prevista del dispositivo. Suponga que 100 de los bits de entrada pueden ser elegidos / influenciados por el atacante. Nos preocupa que haya una puerta trasera oculta en que funcione así: si el atacante proporciona un valor mágico de 100 bits en sus entradas, entonces el circuito retroactivo calcula la salida incorrecta (con efecto trágico), pero de lo contrario comporta exactamente como . Esto permitiría al atacante desencadenar una tragedia en el momento de su elección, pero es difícil de detectar con pruebas aleatorias (ya que solo 1/2 de las entradas desencadenan la tragedia). D(x)nCCCD1/2100
DW
Parece que la pregunta podría tener alguna relación con la "columna vertebral" del SAT. también vea esta pregunta sobre conversión / errores cnf vs dnf que podrían ser una forma natural / formal de cuantificar la "similitud" que no cuantifica formalmente. ¿Es cierto que el atacante solo puede "voltear" el resultado "dorado" de verdadero o falso agregando puertas? es decir, suena como un problema similar a -xor- . f(x)g(x)
vzn

Respuestas:

4

Este es solo un comentario extenso que vino a mi mente inmediatamente después de leer la pregunta:

  • supongamos que tiene una fórmula 3SAT con variables y deja que sea ​​el circuito correspondiente;ϕnx1,...,xnC

  • construya un nuevo circuito , agregando variables , y suficientes puertas para AND las nuevas variables con la salida de la original ( );Cm=nky1,y2,...,ynkmCC=ϕy1...ym

  • construya un nuevo circuito desde que simplemente fuerce su salida a 0 usando una compuerta AND y NOT ( )DCD=C¬C

Si no es satisfactoria, entonces y son equivalentes; de lo contrario, difieren cuando satisface la fórmula AND all , pero puede elegir suficientemente grande como para que la probabilidad de que muy pequeña.ϕDCxiyi=1myi=1

Entonces, si tiene un algoritmo eficiente para su problema, puede resolver de manera eficiente la instancia de 3SAT.

Marzio De Biasi
fuente