Ganze Zahl factorization

In der Zahlentheorie, ganze Zahl factorization oder erster factorization ist die Zergliederung einer zerlegbaren Zahl in kleinere nichttriviale Teiler, der, wenn multipliziert, zusammen gleich die ursprüngliche ganze Zahl.

Wenn die Zahlen sehr groß, nicht effizient sind, ist ganze Nichtquant-Zahl factorization Algorithmus bekannt; eine Anstrengung geschlossen 2009 von mehreren Forschern factored eine 232-stellige Nummer (RSA-768), Hunderte von Maschinen über eine Spanne von 2 Jahren verwertend. Die gewagte Schwierigkeit dieses Problems ist am Herzen weit verwendeter Algorithmen in der Geheimschrift wie RSA. Viele Gebiete der Mathematik und Informatik sind gebracht worden, um sich auf das Problem, einschließlich elliptischer Kurven, Theorie der algebraischen Zahl und Quant-Computerwissenschaft zu beziehen.

Nicht alle Zahlen einer gegebenen Länge sind zum Faktor ebenso hart. Die härtesten Beispiele dieser Probleme (für zurzeit bekannte Techniken) sind Halbblüte, das Produkt von zwei Primzahlen. Wenn sie sowohl groß, zum Beispiel, zufällig gewählte, als auch über dieselbe Größe mehr als 2000 Bit lang sind (aber nicht zu nahe, z.B um effizienten factorization durch die factorization Methode von Fermat zu vermeiden), können sogar die schnellsten factorization Hauptalgorithmen auf den schnellsten Computern Zeit in Anspruch nehmen, um die Suche unpraktisch zu machen; d. h. als die Zahl von Ziffern der Blüte, die factored Zunahmen ist, nimmt die Zahl von Operationen, die erforderlich sind, den factorization auf jedem Computer durchzuführen, drastisch zu.

Viele kryptografische Protokolle basieren auf der Schwierigkeit des Factorings große zerlegbare ganze Zahlen oder ein zusammenhängendes Problem, das RSA Problem. Ein Algorithmus, dass effizient Faktoren eine willkürliche ganze Zahl RSA-basierte unsichere Geheimschrift des öffentlichen Schlüssels machen würde.

Hauptzergliederung

Durch den Hauptsatz der Arithmetik hat jede positive ganze Zahl einen einzigartigen ersten factorization. (Ein spezieller Fall für 1 ist mit einem passenden Begriff des leeren Produktes nicht erforderlich.) Jedoch gibt der Hauptsatz der Arithmetik keine Scharfsinnigkeit darin, wie man einen ersten factorization einer ganzen Zahl erhält; es versichert nur seine Existenz.

In Anbetracht eines allgemeinen Algorithmus für die ganze Zahl factorization kann man Faktor jede ganze Zahl unten zu seinen konstituierenden Hauptfaktoren durch die wiederholte Anwendung dieses Algorithmus. Jedoch ist das nicht der Fall mit einem speziellen Zweck factorization Algorithmus, da es für die kleineren Faktoren nicht gelten kann, die während der Zergliederung vorkommen, oder sehr langsam auf diesen Werten durchführen können. Zum Beispiel wird Probe-Abteilung schnell Faktor 2 × (2  1) × (2  1), aber wird nicht schnell Faktor die resultierenden Faktoren.

Aktueller Stand der Technik

Die schwierigsten ganzen Zahlen zum Faktor in der Praxis mit vorhandenen Algorithmen sind diejenigen, die Produkte von zwei großer Blüte der ähnlichen Größe sind, und aus diesem Grund das die in kryptografischen Anwendungen verwendeten ganzen Zahlen sind. Das größte solche Halbblüte noch factored war RSA-768, eine 768-Bit-Zahl mit 232 dezimalen Ziffern am 12. Dezember 2009. Dieser factorization war eine Kollaboration von mehreren Forschungseinrichtungen, zwei Jahre abmessend und die Entsprechung von fast 2000 Jahren der Computerwissenschaft auf 2.2 Einleiter-GHz AMD Opteron nehmend. Wie alle neuen Factorization-Aufzeichnungen wurde dieser factorization mit einer hoch optimierten Durchführung des allgemeinen Siebs des numerischen Feldes vollendet, das auf Hunderten von Maschinen geführt ist.

Schwierigkeit und Kompliziertheit

Wenn eine große, B-Bit-Zahl das Produkt von zwei Blüte ist, die grob dieselbe Größe ist, dann ist kein Algorithmus veröffentlicht worden, der Faktor in der polynomischen Zeit kann, d. h., der Faktor es rechtzeitig O (b) für einen unveränderlichen k kann. Es gibt veröffentlichte Algorithmen, die schneller als O ((1 +ε)) für den ganzen positiven ε, d. h., Subexponential-sind.

Die beste veröffentlichte asymptotische Laufzeit ist für den Algorithmus des allgemeinen Siebs des numerischen Feldes (GNFS), der, für ein B-Bit Nummer n, ist:

:

Für einen gewöhnlichen Computer ist GNFS der beste veröffentlichte Algorithmus für großen n (mehr als ungefähr 100 Ziffern). Für einen Quant-Computer, jedoch, hat Peter Shor einen Algorithmus 1994 entdeckt, der ihn in der polynomischen Zeit löst. Das wird bedeutende Implikationen für die Geheimschrift haben, wenn ein großer Quant-Computer jemals gebaut wird. Der Algorithmus von Shor nimmt nur O (b) Zeit und O (b) Raum auf B-Bit-Zahl-Eingängen. 2001 ist der erste sieben-qubit Quant-Computer das erste geworden, um den Algorithmus von Shor zu führen. Es factored die Nummer 15.

Wenn

man bespricht, worin Kompliziertheitsklassen die ganze Zahl factorization Problem fallen, ist es notwendig, zwei ein bisschen verschiedene Versionen des Problems zu unterscheiden:

  • Die Funktionsproblem-Version: In Anbetracht einer ganzen Zahl N, finden Sie eine ganze Zahl d mit 1, wie man bekannt, ist Es in BQP wegen des Algorithmus von Shor. Wie man verdächtigt, ist es außerhalb aller drei der Kompliziertheitsklassen P, NP-complete und des co-NP-complete. Es ist deshalb ein Kandidat für die NP-Zwischenkompliziertheitsklasse. Wenn es bewiesen werden konnte, dass es entweder in NP-Complete oder in co-NP-Complete ist, der NP = co-NP einbeziehen würde. Das würde ein sehr überraschendes Ergebnis sein, und deshalb, wie man weit verdächtigt, ist ganze Zahl factorization außerhalb beider jener Klassen. Viele Menschen haben versucht, klassische polynomisch-malige Algorithmen dafür zu finden, und gescheitert, und deshalb, wie man weit verdächtigt, ist es außerhalb P.

Im Gegensatz ist das Entscheidungsproblem "N eine zerlegbare Zahl?" (oder gleichwertig: "Ist N eine Primzahl?") scheint, viel leichter zu sein, als das Problem, wirklich die Faktoren von N zu finden. Spezifisch kann der erstere in der polynomischen Zeit (in der Nummer n von Ziffern von N) mit dem AKS primality Test gelöst werden. Außerdem gibt es mehrere probabilistic Algorithmen, die primality sehr schnell in der Praxis prüfen können, wenn man bereit ist, die vanishingly kleine Möglichkeit des Fehlers zu akzeptieren. Die Bequemlichkeit der Primality-Prüfung ist ein entscheidender Teil des RSA Algorithmus, weil es notwendig ist zu finden, dass große Primzahlen damit anfangen.

Factoring-Algorithmen

Spezieller Zweck

Eine Factoring-Algorithmus-Laufzeit des speziellen Zwecks hängt von den Eigenschaften der Zahl ab, factored oder auf einem seiner unbekannten Faktoren zu sein: Größe, spezielle Form, usw. Genau, wovon die Laufzeit abhängt, ändert sich zwischen Algorithmen.

Eine wichtige Unterklasse von Factoring-Algorithmen des speziellen Zwecks ist die Kategorie 1 oder die Ersten Kategorie-Algorithmen, deren Laufzeit von der Größe des kleinsten Hauptfaktors abhängt. In Anbetracht einer ganzen Zahl der unbekannten Form werden diese Methoden gewöhnlich vor Mehrzweckmethoden angewandt, kleine Faktoren zu entfernen. Zum Beispiel ist Probe-Abteilung eine Kategorie 1 Algorithmus.

  • Probe-Abteilung
  • Rad factorization
  • Der rho Algorithmus des gekappten Baums
  • Algebraische Gruppe factorisation Algorithmen, unter denen der p von Pollard  1 Algorithmus, Williams p + 1 Algorithmus und Lenstra elliptische Kurve factorization sind
  • Die factorization Methode von Fermat
  • Die factorization Methode von Euler
  • Spezielles Sieb des numerischen Feldes

Mehrzweck-

Ein Mehrzweckfactoring-Algorithmus, auch bekannt als eine Kategorie 2, die Zweite Kategorie, oder Familienalgorithmus von Kraitchik (nach Maurice Kraitchik), hat eine Laufzeit hängt allein von der Größe der ganzen Zahl ab, um factored zu sein. Das ist der Typ des Algorithmus, der an den Faktor RSA Zahlen verwendet ist. Die meisten Mehrzweckfactoring-Algorithmen basieren auf der Kongruenz der Quadratmethode.

  • Der Algorithmus von Dixon
  • Fortlaufender Bruchteil factorization (CFRAC)
  • Quadratisches Sieb
  • Allgemeines Sieb des numerischen Feldes
  • Das Quadrat von Unterschenkeln bildet factorization (SQUFOF)

Andere bemerkenswerte Algorithmen

Heuristische Laufzeit

In der Zahlentheorie gibt es viele Factoring-Algorithmen der ganzen Zahl, die heuristisch Laufzeit erwartet haben

:

in o und L-Notation.

Einige Beispiele jener Algorithmen sind die elliptische Kurve-Methode und das quadratische Sieb.

Ein anderer solcher Algorithmus ist die Klassengruppenbeziehungsmethode, die von Schnorr, Seysen und Lenstra vorgeschlagen ist, der unter von Generalized Riemann Hypothesis (GRH) bewiesen wird.

Strenge Laufzeit

Wie man

streng bewiesen hat, hat der Schnorr-Seysen-Lenstra probabilistic Algorithmus von Lenstra und Pomerance Laufzeit durch das Ersetzen der GRH Annahme durch den Gebrauch von Vermehrern erwartet.

Der Algorithmus verwendet die Klassengruppe von positiven binären quadratischen Formen von discriminant Δ angezeigt durch G.

G ist der Satz dessen verdreifacht sich von ganzen Zahlen (a, b, c), in dem jene ganzen Zahlen Verhältnisblüte sind.

Schnorr-Seysen-Lenstra-Algorithmus

Gegeben ist eine ganze Zahl n, der factored sein wird, wo n eine sonderbare positive ganze Zahl ist, die größer ist als eine bestimmte Konstante. In diesem Factoring-Algorithmus wird der discriminant Δ als ein Vielfache von n, Δ =-dn gewählt, wo d ein positiver Vermehrer ist. Der Algorithmus erwartet, dass für einen d dort bestehen, zeigen genug glatte Formen in G. Lenstra und Pomerance, dass die Wahl von d auf einen kleinen Satz eingeschränkt werden kann, um das Glätte-Ergebnis zu versichern.

Zeigen Sie durch P den Satz der ganzen Blüte q mit dem Symbol von Kronecker an. Durch das Konstruieren einer Reihe von Generatoren von G und Hauptformen f G mit q in P eine Folge von Beziehungen zwischen dem Satz von Generatoren und f werden erzeugt.

Die Größe von q kann durch für eine Konstante begrenzt werden.

Die Beziehung, die verwendet wird, ist eine Beziehung zwischen dem Produkt von Mächten, das dem neutralen Element von G gleich ist. Diese Beziehungen werden verwendet, um eine so genannte zweideutige Form von G zu bauen, der ein Element von G der Ordnung ist, die sich 2 teilt. Durch das Rechnen des entsprechenden factorization von Δ und durch die Einnahme eines gcd stellt diese zweideutige Form den ganzen ersten factorization von n zur Verfügung. Dieser Algorithmus hat diese Hauptschritte:

Lassen Sie n die Zahl sein, um factored zu sein.

  1. Lassen Sie Δ eine negative ganze Zahl mit Δ =-dn sein, wo d ein Vermehrer ist und Δ der negative discriminant von einer quadratischen Form ist.
  2. Nehmen Sie den t die erste Blüte, für einige.
  3. Lassen Sie, eine zufällige Hauptform von G damit zu sein.
  4. Finden Sie, dass ein Erzeugen X von G gesetzt
hat
  1. Sammeln Sie eine Folge von Beziehungen zwischen dem Satz X und {f: q  P\Zufriedenheit:
  2. Bauen Sie eine zweideutige Form (a, b, c), der ein Element f  G von der Ordnung ist, die sich 2 teilt, um einen coprime factorization vom größten sonderbaren Teiler von Δ in der Δ =-4a.c oder (-4c) oder (b - 2a) zu erhalten. (b + 2a)
  3. Wenn die zweideutige Form einen factorization von n zur Verfügung stellt, dann halten an, finden sonst eine andere zweideutige Form, bis der factorization von n gefunden wird. Um nutzlose zweideutige Formen davon abzuhalten zu erzeugen, bauen Sie die 2-Sylow Gruppe S (Δ) G (Δ) auf.

Um einen Algorithmus für das Factoring jede positive ganze Zahl zu erhalten, ist es notwendig, einige Schritte zu diesem Algorithmus wie Probe-Abteilung, Summe-Test von Jacobi hinzuzufügen.

Erwartete Laufzeit

Der Algorithmus, ist wie festgesetzt, ein probabilistic Algorithmus, weil er zufällige Wahlen macht. Seine erwartete Laufzeit ist höchstens.

Siehe auch

Referenzen

  • Kapitel 5: Exponentialfactoring-Algorithmen, Seiten 191-226. Kapitel 6: Subexponentialfactoring-Algorithmen, Seiten 227-284. Abschnitt 7.4: Elliptische Kurve-Methode, Seiten 301-313.
  • Donald Knuth. Die Kunst der Computerprogrammierung, Bands 2: Halbnumerische Algorithmen, die Dritte Ausgabe. Addison-Wesley, 1997. Internationale Standardbuchnummer 0-201-89684-2. Abschnitt 4.5.4: Factoring in die Blüte, Seiten 379-417.

Links

Ganze

Der Fluss Indus / Reichseinheiten
Impressum & Datenschutz