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 .Na∈Z×NN0<c<Nb∈N1⩽L⩽baL≡c(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.Na∈Z×N
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 .)a∈Z×NaN−1
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
Na∈Z×N0⩽L<N−1aL≡c(modN)aNNa∈Z×N
rN−1≡1(modN)andr(N−1)/q≢1(modN) for primes q dividing N−1
per Definition (unter Verwendung der Tatsache, dass die Ordnung ).
Z×NN−1
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,…N−1qjN−1N−1
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.NaqN−1a(N−1)/q≡1(modN)qaN−1N