Est-il difficile de trouver le logarithme discret?

20

ba c Nab=cmodNacN

Je me demande dans quels groupes de complexité (par exemple pour les ordinateurs classiques et quantiques) il s'agit, et quelles approches (c'est-à-dire les algorithmes) sont les meilleures pour accomplir cette tâche.

Le lien wikipedia ci-dessus ne donne pas vraiment de temps d'exécution très concrets. J'espère quelque chose de plus comme quelles sont les méthodes les plus connues pour en trouver.

Matt Groff
la source
Je ne sais pas quel est le meilleur algorithme, mais vous pouvez trouver quelques algorithmes dans le chapitre 5 de ces notes de cours de Johan Hastad. Je résumerais ces algorithmes mais je n'ai pas lu ce chapitre, donc je ne fournis que le lien;)
Marc Bury

Réponses:

21

Réponse courte.
Si nous formulons une version appropriée du problème de décision du problème du logarithme discret, nous pouvons montrer qu'il appartient à l'intersection des classes de complexité NP , coNP et BQP .


Une version de problème de décision du journal discret.
Le problème du logarithme discret est le plus souvent formulé comme un problème de fonction , mappant des tuples d'entiers à un autre entier. Cette formulation du problème est incompatible avec les classes de complexité P , BPP , NP , etc. que les gens préfèrent considérer, qui ne concernent que les problèmes de décision (oui / non). On peut considérer une version problème de décision du problème de log discret qui est effectivement équivalente:

Journal discret (problème de décision). Étant donné un premier , un générateur les unités multiplicatives modulo , un entier et une borne supérieure , déterminent s'il existe tel qu'un .a Z × N N 0 < c < N b N 1 L bNaZN×N0<c<NbN1LbaLc(modN)

Cela nous permettrait de calculer réellement log a ( c ) modulo N par recherche binaire, si nous pouvions le résoudre efficacement. On peut alors se demander à quelles classes de complexité appartient ce problème. Notez que nous l'avons formulé comme un problème de promesse: nous pouvons l'étendre à un problème de décision en suspendant les exigences que soit premier et un générateur, mais en ajoutant la condition que ces restrictions valent pour toute instance «OUI» du problème.NaZN×


Le journal discret est en BQP.
En utilisant l'algorithme de Shor pour calculer le logarithme discret ( algorithmes à temps polynomial pour la factorisation principale et logarithmes discrets sur un ordinateur quantique ), nous pouvons facilement contenir un journal discret dans BQP . (Pour tester si est réellement un générateur, nous pouvons utiliser l'algorithme de recherche d'ordres de Shor dans le même article, qui est la base de l'algorithme du logarithme discret, pour trouver l'ordre d' et comparer avec .)aZN×aN1


Le journal discret est en NP ∩ coNP.
S'il est en fait vrai que est premier et est un générateur, un certificat suffisant soit pour un 'OUI' soit un 'NON' du problème de décision est l'entier unique tel qu'un . Il suffit donc de montrer que l'on peut certifier si les conditions sur et respectées. Suivant une note de Brassard sur la complexité de la cryptographie , si c'est à la fois le cas où est premier et est un générateur, alors c'est le cas que a Z × N 0 L < N - 1 a LcNaZN×0L<N1a N N a Z × N r N - 11aLc(modN)aNNaZN×Z × N N - 1

rN11(modN)andr(N1)/q1(modN)  for primes q dividing N1
par définition (en utilisant le fait que a l'ordre ).ZN×N1
  • Un certificat que les contraintes qui pèsent sur et fois Conclure une liste des facteurs premiers division , ce qui nous permettra de tester les contraintes de congruence ci - dessus. (Nous pouvons tester si chaque est premier en utilisant le test AKS si nous le souhaitons, et tester que ce sont tous les facteurs premiers de en essayant de trouver la factorisation en puissance première de avec seulement ces nombres premiers.)a q 1 , q 2 , N - 1 q j N - 1 N - 1Naq1,q2,N1qjN1N1

  • Un certificat qu'une des contraintes sur ou échec serait un entier qui divise , tel que . Il n'est pas nécessaire de tester la primauté de dans ce cas; cela implique immédiatement que l'ordre de est inférieur à , et donc il n'est générateur du groupe multiplicatif que si ne parvient pas à être premier.a q N - 1 a ( N - 1 ) / q1NaqN1a(N1)/q1(modN)qaN1N

Niel de Beaudrap
la source
3

Dans les scénarios généraux et les cas les plus défavorables, la réponse de Niel de Beaudrap est correcte, à ma connaissance.

Cependant, dans le cas où n'a que de petits facteurs premiers, l' algorithme de Pohlig-Hellman trouve le logarithme en temps . Par conséquent, pour ce cas, le problème est discret Connexion . Ainsi, lorsqu'un protocole cryptographique dépend de la dureté de ce problème, il est important de choisir le module, , de telle sorte que ait de grands facteurs premiers.N1O(log2(N))PNN1

danxinnoble
la source
-1

puisque , alors . (Cela signifie que la force brute est dans EXP.)|a|=O(N)b=O(N)

Pour une machine non déterministe, il existe un témoin polynomial puisque nous pouvons faire une exponentiation modulaire en P. (C'est-à-dire que le problème est en .)NP

La théorie selon laquelle les logarithmes discrets sont dans mais pas est la base de la cryptographie moderne, mais cela n'est évidemment pas prouvé.NPP

La méthode de Shor (liée à cette page wikipedia) fonctionne en temps polynomial sur un ordinateur quantique.

Xodarap
la source