Est-il possible de crypter un CNF?


17

Est-il possible de convertir un CNFC en un autre CNF tel queΨ(C)

  1. La fonction peut être calculée en temps polynomial à partir d'un paramètre aléatoire secret r .Ψr
  2. a une solution si et seulement si C a une solution.Ψ(C)C
  3. Toute solution de Ψ ( C ) peut être convertie efficacement en une solution de C en utilisant r .xΨ(C)Cr
  4. Sans , la solution x (ou toute autre propriété de Ψ ( C ) ) ne donne pas d'aide dans la résolution C .rxΨ(C)C

S'il existe un tel , il peut être utilisé pour en faire d'autres pour résoudre des problèmes de calcul pour nous (en remplaçant éventuellement la résolution d'un CNF par d'autres problèmes - j'ai choisi CNF parce que je voulais rendre le problème plus spécifique), de cette manière qu'ils ne peuvent pas bénéficier d'une solution possible même s'ils savent quel problème nous les avons utilisés pour résoudre. Par exemple, nous pourrions intégrer un problème de factorisation dans un jeu informatique, qui permet aux joueurs de jouer uniquement s'ils travaillent sur notre problème en arrière-plan, en renvoyant de temps en temps des preuves de calcul. Peut-être que le logiciel peut même être rendu "gratuit" de cette façon, où "gratuit" cache un coût (éventuellement plus élevé) dans la facture d'électricité de vos parents.Ψ


2
Typo "... ne donne aucune aide pour résoudre "?. Soit dit en passant, si vous n'êtes pas préoccupé par la structure de Ψ c'est-à-dire que le "joueur" n'a pas accès à Ψ ( C ) mais seulement à la solution x , alors une simple permutation aléatoire du signe des variables ( π ( i ) = ± i ) et une permutation aléatoire des indices des variables doivent faire une solution x de Ψ ( C ) totalement inutilisable pour la résolution C . CΨΨ(C)xπ(i)=±ixΨ(C)C
Marzio De Biasi

@Marzio Thx, faute de frappe fixe. Mais je ne comprends pas votre commentaire - supposez-vous que le "joueur" n'a pas accès à mais seulement à x ? Cela devrait être clair d'après la description qu'elle a. Ψ(C)x
domotorp

oui le simple "shuffle literals and variable indexes" fonctionne sûrement si le joueur n'a pas accès à la structure de (le mien n'était qu'un petit commentaire). Mais peut-être que l'idée de "shuffle" pourrait être étendue de cette façon: si C est 3-CNF alors il n'y a que ( 2 n ) 3 clauses distinctes possibles et connaître Ψ ( C ) (une version mélangée de C ) pourrait être utile seulement en sachant un moyen efficace de trouver un isomorphisme entre Ψ ( C ) et C . Ψ(C)C(2n)3Ψ(C)CΨ(C)C
Marzio De Biasi

@Marzio Alors que les choses avancent, le (hyper) graphisomorphisme est probablement résoluble rapidement.
domotorp

1
Jetez un œil à la conjecture de l'ensemble complet chiffré. Cela suggère que votre proposition est plausible. Il indique qu'il existe une fonction unidirectionnelle f sécurisée à augmentation de longueur telle que SAT et f ( S A T ) ne sont pas p-isomorphes. 2nϵff(SAT)
Mohammad Al-Turkistany

Réponses:


5

Feigenbaum dans, Encrypting Problem Instances , propose une définition (Def. 1) de la fonction de cryptage pour les problèmes NP-complets qui répond à vos besoins. Elle prouve que le problème NP-complete Comparative Vector Inequality admet une telle fonction de cryptage. Elle conclut avec le théorème principal que tous les problèmes NP-complets qui sont p-isomorphes à CNF-SAT sont cryptables.


1
Et dans le travail de suivi, ils concluent qu'il est peu probable que les problèmes NP-complets soient cryptables! doi.org/10.1016/0022-0000(89)90018-4 Ces papiers sont exactement ce que je cherchais. Je me demande pourquoi je peux mieux les comprendre que les résultats récents en cryptographie - peut-être que le domaine a trop divergé de la théorie de la complexité depuis ...
domotorp

8

L'application que vous mentionnez est appelée «preuve de travail utile» dans la littérature, voir par exemple cet article .

Vous pouvez utiliser un schéma de chiffrement entièrement homomorphe (où le texte en clair est l'instance CNF) pour déléguer le calcul à une partie non fiable sans divulguer l'entrée.

Cela ne répond pas exactement à votre question, car un tel schéma ne mappe pas un CNF dans un autre CNF, mais il fonctionne pour l'application prévue.


Afaik, le cryptage homomorphique sert à effectuer des calculs sur certains nombres. Comment l'utiliseriez-vous exactement pour mon problème?
domotorp

FHE est défini pour les circuits booléens. Traitez l'instance CNF comme un vecteur de bits. Étant donné une taille d'entrée, vous pouvez construire un circuit booléen qui génère une affectation s'il y en a (voir cs.stackexchange.com/q/72289/627 ).
Diego de Estrada

Je pense que la différence est que dans votre solution, alors que la confidentialité est préservée, l'encodage est assez coûteux par rapport à la tâche que nous voulons résoudre. Je voudrais encoder en temps polynomial une quantité exponentielle de travail.
domotorp

@domotorp je comprends. Il existe un moyen d'utiliser FHE sans circuits, voir eprint.iacr.org/2013/229.pdf
Diego de Estrada

4
Comme de plus en plus d'utilisateurs votent pour votre réponse, elle contient peut-être quelque chose que j'ai manqué. Êtes-vous en train de prétendre que cela fonctionne pour ma question ou simplement pour l'application? J'ai aussi regardé le papier, mais ce n'est pas si facile à saisir. Pourriez-vous me dire quel résultat / théorème spécifique serait applicable dans mon cas?
domotorp
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.