¿Es posible encriptar un CNF?

17

¿Es posible convertir un CNF C en otro CNF modo queΨ(C)

  1. La función se puede calcular en tiempo polinómico a partir de algún parámetro aleatorio secreto .Ψr
  2. Ψ(C) tiene una solución si y solo si tiene una solución.C
  3. Cualquier solución de se puede convertir eficientemente en una solución de usando .XΨ(C)Cr
  4. Sin , la solución (o cualquier otra propiedad de ) no da ninguna ayuda en la solución de .rXΨ(C)C

Si existe tal , entonces se puede usar para hacer que otros resuelvan desafíos computacionales para nosotros (posiblemente reemplazando resolver un CNF con otros problemas; elegí CNF porque quería hacer el problema más específico), en tal de manera que no puedan beneficiarse de una posible solución, incluso si saben qué problema los hemos utilizado para resolver. Por ejemplo, podríamos incrustar un problema de factorización en un juego de computadora, lo que permite a los jugadores jugar solo si trabajan en nuestro problema en segundo plano, de vez en cuando enviando pruebas de cálculo. Tal vez el software se puede hacer "gratis" de esta manera, donde "gratis" oculta un costo (posiblemente más alto) en la factura de electricidad de sus padres.Ψ

domotorp
fuente
2
Typo "... no da ninguna ayuda para resolver "? Por cierto, si no le preocupa la estructura de es decir, el "jugador" no tiene acceso a sino solo a la solución , entonces una simple permutación aleatoria del signo de las variables ( ) y una permutación aleatoria de los índices de las variables debe hacer una solución de totalmente inutilizable para la solución de . CΨΨ(C)xπ(i)=±ixΨ(C)C
Marzio De Biasi
@Marzio Thx, error tipográfico fijo. Pero no entiendo su comentario: ¿asume que el "jugador" no tiene acceso a sino solo a ? Debe quedar claro por la descripción que tiene. Ψ(C)x
domotorp
sí, los simples "literales aleatorios e índices variables" seguramente funcionan si el jugador no tiene acceso a la estructura de (el mío fue solo un comentario rápido). Pero quizás la idea de "barajar" podría extenderse de esta manera: si es 3-CNF, entonces solo hay posibles cláusulas distintas y conociendo (una versión barajada de ) podría ser útil conocer solamente una forma eficiente para encontrar un isomorfismo entre y . C ( 2 n ) 3 Ψ ( C ) C Ψ ( C ) CΨ(C)C(2n)3Ψ(C)CΨ(C)C
Marzio De Biasi
@Marzio A medida que avanzan las cosas, probablemente el (hiper) grafisomorfismo se pueda resolver rápidamente.
domotorp
1
Eche un vistazo a la conjetura del conjunto completo cifrado. Sugiere que su propuesta es plausible. Establece que hay una función unidireccional segura de aumenta la longitud de manera f tal que SAT yf ( S A T ) no son p-isomorfas. 2norteϵFF(SUNT)
Mohammad Al-Turkistany

Respuestas:

5

Feigenbaum in, Cifrar problemas de instancias , propone una definición (Def. 1) de la función de cifrado para problemas NP-completos que satisface sus requisitos. Ella demuestra que el problema NP-completo Comparativo Vector Inequalities admite dicha función de cifrado. Concluye con el teorema principal de que todos los problemas de NP completo que son p-isomórficos para CNF-SAT son encriptables.

Mohammad Al-Turkistany
fuente
1
¡Y en el trabajo de seguimiento concluyen que es poco probable que los problemas de NP completo sean encriptables! doi.org/10.1016/0022-0000(89)90018-4 Estos documentos son justo lo que estaba buscando. Me pregunto por qué puedo entenderlos mucho mejor que los resultados recientes en criptografía: tal vez el campo se ha desviado demasiado de la teoría de la complejidad desde entonces ...
domotorp
8

La aplicación que menciona se llama "prueba de trabajo útil" en la literatura; consulte, por ejemplo, este artículo .

Puede usar un esquema de cifrado totalmente homomórfico (donde el texto sin formato es la instancia CNF) para delegar el cálculo a una parte no confiable sin revelar la entrada.

Esto no responde exactamente a su pregunta, ya que dicho esquema no asigna un CNF a otro CNF, pero funciona para la aplicación prevista.

Diego de Estrada
fuente
Afaik, el cifrado homomórfico es para hacer algunos cálculos en algunos números. ¿Cómo exactamente lo usarías para mi problema?
domotorp
FHE se define para circuitos booleanos. Trate la instancia CNF como un vector de bits. Dado un tamaño de entrada, puede construir un circuito booleano que emite una asignación si hay alguna (consulte cs.stackexchange.com/q/72289/627 ).
Diego de Estrada
Creo que la diferencia es que en su solución, mientras se preserva la privacidad, la codificación es bastante costosa en comparación con la tarea que queremos resolver. Me gustaría codificar en tiempo polinómico una cantidad exponencial de trabajo.
domotorp
@domotorp lo entiendo. Hay una manera de usar FHE sin circuitos, ver eprint.iacr.org/2013/229.pdf
Diego de Estrada
44
A medida que más y más usuarios están votando su respuesta, tal vez contiene algo que me he perdido. ¿Estás afirmando ahora que funciona para mi pregunta o solo para la aplicación? También he mirado el papel, pero no es tan fácil de entender. ¿Podría decirme qué resultado / teorema específico sería aplicable en mi caso?
domotorp