È possibile crittografare un CNF?


17

È possibile convertire un CNF in un altro CNF tale che Ψ ( C )CΨ(C)

  1. La funzione può essere calcolata in tempo polinomiale da alcuni parametri casuali segreti .rΨr
  2. Ψ(C) ha una soluzione se e solo se ha una soluzione.C
  3. Qualsiasi soluzione di può essere efficacemente convertita in una soluzione di usando .Ψ ( C ) C rxΨ(C)Cr
  4. Senza , la soluzione (o qualsiasi altra proprietà di ) non dà alcun aiuto per risolvere .x Ψ ( C ) CrxΨ(C)C

Se esiste un , allora può essere usato per fare in modo che gli altri risolvano le sfide computazionali per noi (eventualmente sostituendo la risoluzione di un CNF con altri problemi - ho scelto CNF perché volevo rendere il problema più specifico), in tale modo in cui non possono trarre profitto da una possibile soluzione anche se sanno quale problema li abbiamo usati per risolvere. Ad esempio, potremmo incorporare un problema di fattorizzazione in un gioco per computer, che consente ai giocatori di giocare solo se lavorano sul nostro problema in background, di volta in volta inviando indietro prove del calcolo. Forse il software può anche essere reso "gratuito" in questo modo, dove "libero" nasconde un costo (forse più elevato) nella bolletta elettrica dei tuoi genitori.Ψ


2
Errore di battitura "... non fornisce alcun aiuto nella risoluzione di C "?. A proposito, se non sei preoccupato per la struttura di Ψ cioè il "giocatore" non ha accesso a Ψ(C) ma solo alla soluzione X , quindi una semplice permutazione casuale del segno delle variabili ( π(io)=±io ) ed una permutazione casuale degli indici delle variabili dovrebbe fare una soluzione X di Ψ(C) totalmente inutilizzabile per risolvere C .
Marzio De Biasi,

@Marzio Thx, errore di battitura fisso. Ma non capisco il tuo commento - pensi che il "giocatore" non abbia accesso a Ψ(C) ma solo a X ? Dovrebbe essere chiaro dalla descrizione che ha.
domotorp,

sì, i semplici "shuffle letterali e indici variabili" funzionano sicuramente se il giocatore non ha accesso alla struttura di (il mio era solo un breve commento). Ma forse l'idea "shuffle" potrebbe essere estesa in questo modo: se è 3-CNF, allora ci sono solo possibili clausole distinte e conoscenza (una versione mescolata di ) potrebbe essere utile solo conoscendo un modo efficace per trovare un isomorfismo tra e . C ( 2 n ) 3 Ψ ( C ) C Ψ ( C ) CΨ(C)C(2n)3Ψ(C)CΨ(C)C
Marzio De Biasi,

@Marzio Mentre le cose stanno andando, probabilmente (iper) grafisomorfismo è risolvibile velocemente.
domotorp,

1
Dai un'occhiata alla congettura del set completo criptato. Suggerisce che la tua proposta è plausibile. Indica che esiste una funzione unidirezionale fingente aumenta la lunghezza in modo tale che SAT e non siano p-isomorfi. f f ( S A T )2nϵff(SAT)
Mohammad Al-Turkistany,

Risposte:


5

Feigenbaum in, Encrypting Problem Instances , propone una definizione (Def. 1) della funzione di crittografia per problemi NP completi che soddisfa le vostre esigenze. Dimostra che il problema NP completo Le disuguaglianze comparative di vettore ammettono tale funzione di crittografia. Conclude con il teorema principale che tutti i problemi NP-completi che sono p-isomorfi rispetto a CNF-SAT sono crittografabili.


1
E nel lavoro di follow-up concludono che è improbabile che i problemi NP-completi siano crittografabili! doi.org/10.1016/0022-0000(89)90018-4 Questi documenti sono proprio quello che stavo cercando. Mi chiedo perché riesca a capirli molto meglio dei recenti risultati della crittografia - forse da allora il campo si è discostato troppo dalla teoria della complessità ...
domotorp,

8

L'applicazione che citi è chiamata "prova di lavoro utile" in letteratura, vedi ad esempio questo articolo .

È possibile utilizzare uno schema di crittografia completamente omomorfo (in cui il testo in chiaro è l'istanza CNF) per delegare il calcolo a una parte non attendibile senza rivelare l'input.

Questo non risponde esattamente alla tua domanda, poiché tale schema non mappa un CNF in un altro CNF, ma funziona per l'applicazione prevista.


Dopotutto, la crittografia omomorfa è per fare un calcolo su alcuni numeri. Come lo useresti esattamente per il mio problema?
domotorp,

FHE è definito per i circuiti booleani. Tratta l'istanza CNF come un vettore bit. Data una dimensione di ingresso, è possibile costruire un circuito booleano che emetta un'assegnazione se presente (vedere cs.stackexchange.com/q/72289/627 ).
Diego de Estrada,

Penso che la differenza sia che nella tua soluzione, mentre la privacy è preservata, la codifica è piuttosto costosa rispetto al compito che vogliamo risolvere. Vorrei codificare in tempo polinomiale una quantità esponenziale di lavoro.
domotorp,

@domotorp ho capito. C'è un modo per usare FHE senza circuiti, vedi eprint.iacr.org/2013/229.pdf
Diego de Estrada il

4
Dato che sempre più utenti stanno votando la tua risposta, forse contiene qualcosa che mi è sfuggito. Stai affermando in questo momento che funziona per la mia domanda o solo per l'applicazione? Ho anche guardato il giornale, ma non è così facile da capire. Potresti dirmi quale risultato / teorema specifico sarebbe applicabile nel mio caso?
domotorp,
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.