Este é essencialmente o domínio das classes de complexidade computacional. Por exemplo, a classe BQP pode ser descrita de maneira grosseira como o conjunto de todos os problemas que podem ser resolvidos com eficiência em um computador quântico. A dificuldade com as classes de complexidade é que é difícil provar separações entre muitas classes, ou seja, a existência de problemas que estão em uma classe, mas não em outra.
Em certo sentido, é suficiente poder dizer "se este algoritmo quântico não pode quebrá-lo, é seguro", basta usar o algoritmo correto. Você precisa de um algoritmo completo do BQP, como encontrar raízes do polinômio Jones - qualquer algoritmo quântico pode ser convertido como uma instância de um algoritmo completo do BQP. No entanto, como esse algoritmo pode ser usado para o cracking é completamente obscuro e não é trivial. Não é suficiente ver que você não pode diretamente fazer força bruta. Portanto, essa abordagem provavelmente não é tão útil.
O que queremos de um cenário de criptografia pós-quantum? Nós precisamos:
- uma função que podemos calcular facilmente para fins de criptografia.y=f(x)
- para o qual o inverso não pode ser facilmente calculado em um computador quântico, ou seja, a classe do problema está fora do BQP.f−1(y)
- dado algum segredo , existe uma função classicamente computável eficientemente , ou seja, com as informações suplementares, a função pode ser invertida. Isso é para que a pessoa certa (que possui a chave privada, ) possa descriptografar a mensagem.zg(y,z)=xf(x)z
Este último item é (essencialmente) a definição da classe de complexidade NP: os problemas para os quais pode ser difícil encontrar uma solução, mas para os quais uma solução é facilmente verificada quando é fornecida uma prova (correspondente à chave privada no nosso caso) .
Então, o que estamos procurando são problemas no NP, mas não no BQP. Como não sabemos se NP = BQP, não sabemos que essas coisas existem. No entanto, há um bom caminho para procurar soluções: consideramos problemas completos de NP. Esses são os casos mais difíceis de problemas no NP; portanto, se o BQP NP (que se acredita ser o caso), os problemas completos do NP certamente não estão no BQP. (Se um problema estiver completo para uma classe de complexidade, isso significa que, se você puder resolvê-lo com eficiência, poderá resolver todas as instâncias da classe com eficiência.) Portanto, esse é um tipo de orientação para onde se pode procurar algoritmos pós-quânticos .≠
A sutileza adicional que complica as coisas, no entanto, é mais ou menos (não sou especialista) que as classes de complexidade falam sobre a complexidade do pior caso, ou seja, para um determinado tamanho de problema, é sobre quão difícil é a instância mais difícil possível do problema. Mas poderia haver apenas uma instância desse problema, o que significaria que, se corrigirmos o tamanho do problema (como é padrão, por exemplo, você pode falar sobre RSA de 1024 bits; 1024 bits é o tamanho do problema), haverá apenas uma chave privada. Se sabemos disso, um interceptador pode usar essa chave privada para descriptografar as mensagens. Portanto, precisamos realmente que esse raciocínio de complexidade computacional se aplique a uma grande proporção de entradas possíveis. Isso leva você ao mundo da complexidade de casos médios, onde, pelo que entendi, fica muito mais difícil fazer essas declarações.
Pode ser útil comparar o RSA, um sistema de criptografia de chave pública e ignorar a existência de computadores quânticos. É baseado na dificuldade de fatorar grandes números compostos. Esse problema não está (acredita-se) em P, portanto acredita-se que seja difícil para um hacker com um computador clássico obter a resposta. Enquanto isso, ele está no NP porque a solução é facilmente verificada (se você receber um fator, poderá verificar com facilidade). Isso significa que pode ser descriptografado usando um computador clássico pelo legítimo destinatário.