A maior parte da criptografia de hoje, como o RSA, depende da fatoração de número inteiro, que não se acredita ser um problema difícil de NP, mas pertence ao BQP, que o torna vulnerável a computadores quânticos. Eu me pergunto, por que não houve um algoritmo de criptografia baseado em um problema NP-hard conhecido. Parece (pelo menos em teoria) que criaria um algoritmo de criptografia melhor do que um que não está provado ser NP-hard.
109
Houve.
Um exemplo é o sistema de criptografia McEliece, que se baseia na dureza de decodificar um código linear.
Um segundo exemplo é o NTRUEncrypt, que se baseia no menor problema de vetor que acredito ser conhecido como NP-Hard.
Outro é o sistema de criptografia da mochila Merkle-Hellman, que foi quebrado.
Nota: Não faço idéia se os dois primeiros estão quebrados / quão bons são. Tudo o que sei é que eles existem e consegui que eles fizessem uma pesquisa na web.
fonte
Posso pensar em quatro grandes obstáculos que não são totalmente independentes:
Observe que não tenho experiência em criptografia; estes são meramente resp. algorítmicos. objeções teóricas da complexidade.
fonte
A criptografia de chave pública como a conhecemos hoje é construída sobre permutações de alçapão unidirecional , e o alçapão é essencial.
Para que um protocolo seja publicamente seguro, você precisa de uma chave disponível para qualquer pessoa e uma maneira de criptografar uma mensagem usando essa chave. Obviamente, uma vez criptografada, deve ser difícil recuperar a mensagem original sabendo apenas sua cifra e a chave pública: a cifra só deve ser decifrável com algumas informações extras, como sua chave privada.
Com isso em mente, é fácil criar um sistema de criptografia primitivo com base em qualquer permutação unidirecional de alçapão.
fonte
Apenas para dar um argumento heurístico, com base na experiência prática.
Quase todas as instâncias, de quase todos os problemas completos de NP, são fáceis de resolver. Existem problemas em que isso não é verdade, mas eles são difíceis de encontrar e é difícil ter certeza de que você tem uma classe dessas.
Isso surgiu na prática várias vezes quando as pessoas tentam escrever geradores aleatórios de problemas para algumas classes famosas de NP-completas, como Programação de Restrições, SAT ou Traveller Salesman. Em algum momento posterior, alguém encontra um método para resolver quase todas as instâncias que o gerador aleatório produz trivialmente. Obviamente, se esse fosse o caso de um sistema de criptografia, estaríamos com sérios problemas!
fonte
Os sistemas de criptografia Merkle-Hellman são baseados em problemas de mochila binária (soma do subconjunto).
fonte