É possível criptografar um CNF?

17

É possível converter um CNF em outro CNF tal que Ψ ( C )CΨ(C)

  1. A função pode ser calculada em tempo polinomial a partir de algum parâmetro aleatório secreto .rΨr
  2. Ψ(C) tem uma solução se e somente se tiver uma solução.C
  3. Qualquer solução de pode ser eficientemente convertida em uma solução de usando .Ψ ( C ) C rxΨ(C)Cr
  4. Sem , a solução (ou qualquer outra propriedade de ) não dá qualquer ajuda para resolver .x Ψ ( C ) CrxΨ(C)C

Se houver tal , ele poderá ser usado para ajudar outras pessoas a resolver desafios computacionais (com a possibilidade de substituir a CNF por outros problemas - eu escolhi a CNF porque queria tornar o problema mais específico). de maneira que eles não possam lucrar com uma solução possível, mesmo que saibam que problema os usamos para resolver. Por exemplo, poderíamos incorporar um problema de fatoração em um jogo de computador, o que permite aos jogadores jogar apenas se eles resolverem o nosso problema em segundo plano, enviando de vez em quando provas de cálculo. Talvez o software possa ser "gratuito" dessa maneira, onde "gratuito" oculta um custo (possivelmente mais alto) na conta de luz de seus pais.Ψ

domotorp
fonte
2
O erro de digitação "... não ajuda em nada a resolver "? A propósito, se você não está preocupado com a estrutura de ou seja, o "player" não tem acesso a mas apenas à solução , uma simples permutação aleatória do sinal das variáveis ( ) e uma permutação aleatória dos índices das variáveis devem fazer uma solução de totalmente inutilizável para a solução de . Ψ Ψ ( C ) x ¸ ( i ) = ± i x Ψ ( C ) CCΨΨ(C)xπ(i)=±ixΨ(C)C
Marzio De Biasi
@Marzio Thx, erro de digitação fixo. Mas eu não entendo o seu comentário - você assume que o "player" não tem acesso a mas apenas a ? Deveria ficar claro pela descrição que ela tem. xΨ(C)x
Domotorp
sim, os simples "literais aleatórios e índices variáveis" certamente funcionam se o jogador não tiver acesso à estrutura de (o meu foi apenas um comentário rápido). Mas talvez a idéia de "embaralhar" possa ser estendida dessa maneira: se for 3-CNF, haverá apenas possíveis cláusulas distintas e conhecimento (uma versão embaralhada de ) poderia ser útil sabendo apenas uma maneira eficiente de encontrar um isomorfismo entre e . C ( 2 N ) 3 Ψ ( C ) C Ψ ( C ) CΨ(C)C(2n)3Ψ(C)CΨ(C)C
Marzio De Biasi
@ Marzio Como as coisas estão indo, provavelmente o (hiper) grafisomorfismo é solucionável rapidamente.
Domotorp 29/12/19
11
Veja a conjectura do conjunto completo criptografado. Isso sugere que sua proposta é plausível. Ele afirma que existe uma função unidirecional segura com aumento de comprimento injetor tal que SAT não sejam p-isomórficos. f f ( S A T )2nϵff(SAT)
Mohammad Al-Turkistany

Respostas:

5

Feigenbaum, Instâncias de problemas com criptografia , propõe uma definição (Def. 1) da função de criptografia para problemas NP-completos que satisfazem seus requisitos. Ela prova que o problema NP-complete Comparative Vector Inequalities admite essa função de criptografia. Ela conclui com o principal teorema de que todos os problemas NP-completos que são p-isomórficos ao CNF-SAT são criptografáveis.

Mohammad Al-Turkistany
fonte
11
E no trabalho de acompanhamento, eles concluem que é improvável que os problemas de NP-completos sejam criptografáveis! doi.org/10.1016/0022-0000(89)90018-4 Estes documentos são exatamente o que eu estava procurando. Eu me pergunto por que eu posso entendê-los muito melhor do que os recentes resultados em criptografia - talvez o campo divergiu muito da teoria da complexidade, desde então ...
domotorp
8

O aplicativo mencionado é chamado de "prova de trabalho útil" na literatura; veja, por exemplo, este artigo .

Você pode usar um esquema de criptografia totalmente homomórfica (em que o texto simples é a instância do CNF) para delegar a computação a uma parte não confiável, sem divulgar a entrada.

Isso não responde exatamente à sua pergunta, pois esse esquema não mapeia um CNF para outro CNF, mas funciona para o aplicativo pretendido.

Diego de Estrada
fonte
Depois, a criptografia homomórfica é para fazer alguns cálculos em alguns números. Como exatamente você o usaria para o meu problema?
Domotorp
FHE é definido para circuitos booleanos. Trate a instância CNF como um vetor de bit. Dado um tamanho de entrada, você pode construir um circuito booleano que emita uma atribuição, se houver algum (consulte cs.stackexchange.com/q/72289/627 ).
Diego de Estrada
Penso que a diferença é que, na sua solução, enquanto a privacidade é preservada, a codificação é bastante cara em comparação com a tarefa que queremos resolver. Eu gostaria de codificar em tempo polinomial uma quantidade exponencial de trabalho.
Domotorp
@domotorp eu entendo. Existe uma maneira de usar o ESF sem circuitos, veja eprint.iacr.org/2013/229.pdf
Diego de Estrada
4
À medida que mais e mais usuários votam sua resposta, talvez ela contenha algo que eu perdi. Você está afirmando agora que funciona para minha pergunta ou apenas para o aplicativo? Também olhei para o jornal, mas não é tão fácil de entender. Você poderia me dizer qual resultado / teorema específico seria aplicável no meu caso?
91118 domotorp