Wie schwer ist es, den diskreten Logarithmus zu finden?

20

Der diskrete Logarithmus ist derselbe wie in , wenn , und .bab=cmodNacN

Ich frage mich, in welchen Komplexitätsgruppen (z. B. für klassische Computer und Quantencomputer) sich dies befindet und welche Ansätze (dh Algorithmen) sich am besten für diese Aufgabe eignen.

Der obige Wikipedia-Link gibt nicht wirklich konkrete Laufzeiten an. Ich hoffe auf etwas Ähnliches wie die bekanntesten Methoden, um solche zu finden.

Matt Groff
quelle
Ich weiß nicht, was der beste Algorithmus ist, aber Sie finden einige Algorithmen in Kapitel 5 dieses Skriptes von Johan Hastad. Ich würde diese Algorithmen zusammenfassen, aber ich habe dieses Kapitel nicht gelesen, daher stelle ich nur den Link zur Verfügung;)
Marc Bury

Antworten:

21

Kurze Antwort.
Wenn wir eine geeignete Entscheidungsproblemversion des Diskreten Logarithmus-Problems formulieren , können wir zeigen, dass es zum Schnittpunkt der Komplexitätsklassen NP , coNP und BQP gehört .


Eine Entscheidungsproblemversion von Discrete Log.
Das diskrete Logarithmusproblem wird meist als Funktionsproblem formuliert , bei dem Tupel von ganzen Zahlen einer anderen ganzen Zahl zugeordnet werden. Diese Formulierung des Problems ist nicht kompatibel mit den Komplexitätsklassen P , BPP , NP usw., die von den Menschen bevorzugt berücksichtigt werden und nur Entscheidungsprobleme (Ja / Nein) betreffen . Wir können eine Entscheidungsproblemversion des diskreten Protokollproblems in Betracht ziehen, die effektiv äquivalent ist:

Diskretes Protokoll (Entscheidungsproblem). Wenn eine Primzahl , bestimmt ein Generator der multiplikativen Einheiten modulo , einer ganzen Zahl und einer oberen Schranke , ob es so, dass .NaZN×N0<c<NbN1LbaLc(modN)

Dies würde es uns ermöglichen, log a ( c ) modulo N durch binäre Suche tatsächlich zu berechnen , wenn wir es effizient lösen könnten. Wir können dann fragen, zu welchen Komplexitätsklassen dieses Problem gehört. Beachten Sie, dass wir es als ein Versprechensproblem formuliert haben: Wir können es auf ein Entscheidungsproblem , indem wir die Anforderungen aussetzen, dass Primzahl und Generator ist, aber die Bedingung hinzufügen, für die diese Einschränkungen gelten JEDE JA-Instanz des Problems.NaZN×


Diskretes Protokoll ist in BQP.
Unter Verwendung des Shor-Algorithmus zur Berechnung des diskreten Logarithmus ( Polynomial-Time-Algorithmus zur Primfaktorisierung und diskreten Logarithmen auf einem Quantencomputer ) kann Discrete Log in BQP leicht enthalten sein . (Um zu testen, ob tatsächlich ein Generator ist, können wir Shors Algorithmus zur Ordnungsfindung in derselben Veröffentlichung verwenden, der die Grundlage für den diskreten Logarithmus ist, um die Ordnung von und zu ermitteln Vergleiche es mit .)aZN×aN1


Diskretes Protokoll ist in NP NP coNP.
Wenn es tatsächlich so ist, dass eine Primzahl ist und ein Generator ist, ist ein ausreichendes Zertifikat entweder für eine 'YES'- oder eine' NO'-Instanz des Entscheidungsproblems die eindeutige Ganzzahl so dass . Es reicht also zu zeigen, dass wir zertifizieren können, ob die Bedingungen für und gelten oder nicht . Nach Brassards Ein Hinweis auf die Komplexität der Kryptographie , wenn es sowohl der Fall , dass eine Primzahl ist und ein Generator ist, dann ist es der Fall , dass NaZN×0L<N1aLc(modN)aNNaZN×

rN11(modN)andr(N1)/q1(modN)  for primes q dividing N1
per Definition (unter Verwendung der Tatsache, dass die Ordnung ).ZN×N1
  • Ein Zertifikat , das die Beschränkungen für und beide halten würde eine Liste der Primfaktoren sein Dividieren , die uns die obigen Einschränkungen Kongruenz testen können. (Wir können testen, ob jedes eine Primzahl ist, indem wir AKS-Test verwenden , und testen, ob dies alle Primfaktoren von indem wir versuchen, die Primzahlfaktorisierung von nur mit diesen Primzahlen zu finden.)Naq1,q2,N1qjN1N1

  • Ein Zertifikat, dass eine der Bedingungen für oder Fehler eine ganze Zahl die teilt , so dass . In diesem Fall ist es nicht erforderlich, auf Primität zu prüfen . es impliziert sofort, dass die Ordnung von kleiner als , und ist daher nur dann ein Generator der multiplikativen Gruppe, wenn keine Primzahl ist.NaqN1a(N1)/q1(modN)qaN1N

Niel de Beaudrap
quelle
3

Im allgemeinen und im schlimmsten Fall ist die Antwort von Niel de Beaudrap nach meinem besten Wissen richtig.

Für den Fall, dass nur kleine Primfaktoren hat, findet der Pohlig-Hellman-Algorithmus den Logarithmus in Zeit. Daher ist für diesen Fall ist die Discrete Log Problem in . Wenn ein kryptografisches Protokoll von der Härte dieses Problems abhängt, ist es daher wichtig, den Modul so zu wählen , dass große Primfaktoren aufweist.N1O(log2(N))PNN1

danxinnoble
quelle
-1

da , dann ist . (Bedeutet, Brute-Force ist in EXP.)|a|=O(N)b=O(N)

Für eine nicht deterministische Maschine gibt es ein polynomisches Zeugnis, da wir in P. eine modulare Exponentiation durchführen können (dh das Problem liegt in .)NP

Die Theorie, dass diskrete Logarithmen in und nicht in ist die Grundlage der modernen Kryptographie, aber das ist offensichtlich nicht bewiesen.NPP

Shors Methode (auf dieser Wikipedia-Seite verlinkt) läuft in polynomialer Zeit auf einem Quantencomputer.

Xodarap
quelle