Resposta curta.
Se formularmos uma versão apropriada do problema de decisão do problema do Logaritmo Discreto, podemos mostrar que ele pertence à interseção das classes de complexidade NP , coNP e BQP .
Uma versão com problema de decisão do Registro Discreto.
O problema do logaritmo discreto é mais frequentemente formulado como um problema de função , mapeando tuplas de números inteiros para outro número inteiro. Essa formulação do problema é incompatível com as classes de complexidade P , BPP , NP e assim por diante que as pessoas preferem considerar, que dizem respeito apenas a problemas de decisão (sim / não). Podemos considerar uma versão do problema de decisão do problema de log discreto que é efetivamente equivalente:
Log Discreto (Problema de Decisão). Dado um primo , um gerador do módulo multiplicativo , um número inteiro e um limite superior , determinam se existe tal que .a ∈ Z × N N 0 < c < NNa∈Z×NN0<c<N 1 ⩽ L ⩽ b a L ≡ cb∈N1⩽L⩽baL≡c(modN)
Isso nos permitiria calcular o log a ( c ) módulo N por pesquisa binária, se pudéssemos resolvê-lo com eficiência. Podemos então perguntar a quais classes de complexidade esse problema pertence. Observe que o definimos como um problema promissor: podemos estendê-lo a um problema de decisão suspendendo os requisitos de que é primo e um gerador, mas adicionando a condição que essas restrições mantêm para qualquer instância 'SIM' do problema.Na ∈ Z×N
O registro discreto está no BQP.
Usando o algoritmo de Shor para calcular o logaritmo discreto ( algoritmos de tempo polinomial para fatoração primária e logaritmos discretos em um computador quântico ), podemos facilmente conter o log discreto no BQP . (Para testar se é realmente um gerador, podemos usar o algoritmo de busca de ordem de Shor no mesmo artigo, que é a base do algoritmo de logaritmo discreto, para encontrar a ordem de e compare com .)a ∈ Z×NumaN- 1
O Registro Discreto está no NP ∩ coNP.
Se, na verdade, é primo e é um gerador, um certificado suficiente para uma instância 'YES' ou 'NO' do problema de decisão é o inteiro único tal que . Por isso, é suficiente para mostrar que nós podemos certificar ou não as condições em e espera. Na sequência do Brassard Uma nota sobre a complexidade da criptografia , se é tanto o caso em que é primo e é um gerador, então é o caso que
Na ∈ Z×Na L ≡ c0 ⩽ L < N- 1a N N a ∈ Z × N r N - 1 ≡ 1umaeu≡ c( modN)umaNNa ∈ Z×NZ × N N - 1
rN- 1≡ 1( modN)er( N- 1 ) / q≢ 1( modN) para números primos q dividindo N- 1
por definição (usando o fato de que tem a ordem ).
Z×NN- 1
Um certificado de que as restrições sobre e tanto espera seria uma lista dos fatores primos dividindo , o que nos permitirá testar as restrições de congruência acima. (Podemos testar se cada é primo usando o teste AKS, se desejarmos, e testar se esses são todos os fatores primos de , tentando encontrar a fatoração de potência primária de apenas com esses primos.)a q 1 , q 2 , … N - 1 q j N - 1 N - 1Numaq1, q2, …N- 1qjN- 1N- 1
Um certificado de que uma das restrições em ou falha seria um número inteiro que divide , de modo que . Não é necessário testar para primidez neste caso; Implica imediatamente que a ordem de é menor que e, portanto, é um gerador do grupo multiplicativo apenas se falhar em ser primo.a q N - 1 a ( N - 1 ) / q ≡ 1NumaqN- 1uma(N- 1 ) / q≡1(modN)qumaN- 1N