Quanto è difficile trovare il logaritmo discreto?


20

Il logaritmo discreto è la stessa come trovare in , in una , c , e N .a b = c mod N a c Nbab=cmodNacN

Mi chiedo in quali gruppi di complessità (es. Per computer classici e quantistici) ci sia e quali approcci (es. Algoritmi) siano i migliori per eseguire questo compito.

Il link di Wikipedia sopra non dà risultati realmente concreti. Spero in qualcosa di più simile a ciò che i metodi più noti sono per trovare tale.


Non so quale sia l'algoritmo migliore, ma puoi trovare alcuni algoritmi nel capitolo 5 di queste note di conferenza di Johan Hastad. Riassumerei questi algoritmi ma non ho letto questo capitolo, quindi fornisco solo il link;)
Marc Bury

Risposte:


21

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 LcNaZN×N0<c<NbN1LbaLc(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 × NNaZN×


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 - 1aZN×aN1


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 LcNaZN×0L<N1a N N a Z × N r N - 11aLc(modN)aNNaZN×

rN11(modN)andr(N1)/q1(modN)  for primes q dividing N1
per definizione (usando il fatto che ha l'ordine ). N-1ZN×N1
  • 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,N1qjN1N1

  • 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 ) / q1NaqN1q a N - 1 Na(N1)/q1(modN)qaN1N


3

Negli scenari generali e nel caso peggiore, la risposta di Niel de Beaudrap è corretta, per quanto ne so.

Tuttavia, nel caso in cui abbia solo piccoli fattori primi, l' algoritmo Pohlig-Hellman trova il logaritmo nel tempo . Pertanto, per questo caso, il problema Discrete log è in . Pertanto, quando un protocollo crittografico dipende dalla durezza di questo problema, è importante scegliere il modulo, , in modo tale che abbia grandi fattori primi.N1P N N - 1O(log2(N))PNN1


-1

poiché , quindi . (Il che significa che la forza bruta è in SCAD.)|a|=O(N)b=O(N)

Per una macchina non deterministica, esiste un testimone polinomiale poiché possiamo fare esponenziazione modulare in P. (cioè il problema è in .)NP

La teoria secondo cui i logaritmi discreti si trovano in ma non in è la base della crittografia moderna, ma questo ovviamente non è dimostrato.NPP

Il metodo di Shor (collegato a quella pagina di Wikipedia) funziona in tempo polinomiale su un computer quantistico.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.