Risposta breve.
Se formuliamo una versione appropriata del problema di decisione del problema del logaritmo discreto, possiamo dimostrare che appartiene all'intersezione delle classi di complessità NP , coNP e BQP .
Una versione con problemi di decisione di Log discreto.
Il problema del logaritmo discreto è spesso formulato come un problema di funzione , mappando tuple di numeri interi su un altro numero intero. Tale formulazione del problema è incompatibile con le classi di complessità P , BPP , NP e così via che le persone preferiscono considerare, che riguardano solo problemi di decisione (sì / no). Potremmo considerare una versione del problema decisionale del problema di registro discreto che è effettivamente equivalente:
Registro discreto (problema decisionale). Dato un primo , un generatore delle unità moltiplicative modulo , un numero intero e un limite superiore , determinano se esiste tale che .a ∈ Z × N N 0 < c < N b ∈ N 1 ⩽ L ⩽ b a L ≡ cNa∈Z×NN0<c<Nb∈N1⩽L⩽baL≡c(modN)
Ciò ci consentirebbe di calcolare effettivamente il registro a ( c ) modulo N mediante la ricerca binaria, se potessimo risolverlo in modo efficiente. Potremmo quindi chiedere a quali classi di complessità appartiene questo problema. Nota che lo abbiamo definito un problema promettente: possiamo estenderlo a un problema decisionale sospendendo i requisiti che sia primo e un generatore, ma aggiungendo la condizione per cui queste restrizioni qualsiasi istanza "SÌ" del problema.a ∈ Z × NNa∈Z×N
Il log discreto è in BQP.
Utilizzando l'algoritmo di Shor per calcolare il logaritmo discreto ( algoritmi a tempo polinomiale per la fattorizzazione primaria e logaritmi discreti su un computer quantistico ), possiamo facilmente contenere Log discreto in BQP . (Per verificare se effettivamente un generatore, possiamo usare l'algoritmo di ricerca ordini di Shor nello stesso documento, che è la base dell'algoritmo logaritmo discreto, per trovare l'ordine di e confrontalo con .) a N - 1a∈Z×NaN−1
Il log discreto è in NP ∩ coNP.
Se in realtà è primo e è un generatore, un certificato sufficiente per un'istanza 'SÌ' o 'NO' del problema decisionale è il numero intero univoco tale che . Quindi è sufficiente dimostrare che possiamo certificare se le condizioni su e attesa. Seguendo una nota di Brassard sulla complessità della crittografia , se è sia il caso che il primo sia è un generatore, allora è il caso
a ∈ Z × N 0 ⩽ L < N - 1 a L ≡ cNa∈Z×N0⩽L<N−1a N N a ∈ Z × N r N - 1 ≡ 1aL≡c(modN)aNNa∈Z×N
rN−1≡1(modN)andr(N−1)/q≢1(modN) for primes q dividing N−1
per definizione (usando il fatto che ha l'ordine ).
N-1Z×NN−1
Un certificato che i vincoli su e sia presa sarebbe un elenco dei fattori primi divisione , che ci permetterà di testare i vincoli di congruenza di cui sopra. (Possiamo testare se ogni è primo usando il test AKS se lo desideriamo, e che questi sono tutti i fattori primi di tentando di trovare la fattorizzazione in potenza primaria di con solo quei numeri primi.)a q 1 , q 2 , … N - 1 q j N - 1 N - 1Naq1,q2,…N−1qjN−1N−1
Un certificato secondo cui uno dei vincoli su o fallimento sarebbe un numero intero che divide , in modo tale che . In questo caso non è necessario testare per primeness; implica immediatamente che l'ordine di è inferiore a , e quindi è un generatore del gruppo moltiplicativo solo se non riesce a essere primo.a q N - 1 a ( N - 1 ) / q ≡ 1NaqN−1q a N - 1 Na(N−1)/q≡1(modN)qaN−1N