WikiDer > Lenstra .Algorithmus

Algoritme van Lenstra

Es Algorithmus von Lenstra ist ein Algorithmus das wurde entwickelt von Hendrik Lenstra, um ein positives zu machen gerade Zahl zu faktorisieren, d.h. auch faktorisieren. Dazu verwendet der Algorithmus a elliptische Kurve. Deshalb wird dieser Algorithmus als ECM (Elliptic Curve Method) bezeichnet. Der ECM ist ein sogenannter deterministischer Algorithmus. Dies bedeutet, dass einmal zufällig eine Wahl getroffen wurde (zum Beispiel die Wahl für eine elliptische Kurve), wird der Algorithmus deterministisch, d.h. eindeutig, ausgeführt.

Andere Faktorisierungsalgorithmen

ECM ist der drittschnellste Weg, um die Faktorisierung einer Zahl zu finden. Der schnellste Weg ist der Zahlenfeldsieb, gefolgt von der quadratisches Sieb. Bei diesen Methoden handelt es sich um sogenannte 'probabilistische' Algorithmen, die Wahrscheinlichkeiten verwenden. Es ist jedoch nicht garantiert, dass ein Faktor innerhalb der erwarteten Zeit erhalten wird, der nicht trivial ist. ECM gilt als Faktorisierung mit einem hohen erwarteter Wert, die sich am besten zum Auffinden eines relativ kleinen Faktor. Häufig wird ECM verwendet, um relativ kleine Faktoren aus einer sehr großen Zahl mit vielen Faktoren zu entfernen. Wenn die verbleibende Zahl immer noch a . ist zusammengesetzte Zahl es hat nur große Faktoren und es müssen andere Techniken verwendet werden, oder es ist fast unmöglich, Faktoren zu finden. Es ist derzeit noch der beste Algorithmus, um Teiler einer Zahl mit bis zu 25 Stellen zu finden (ca. 80 .). bisschen). Hier wird die Zeit zum Finden eines Faktors mehr von der Größe des kleinsten Faktors bestimmt als um die Größe der zu faktorisierenden Zahl selbst. Am 24. August 2006 faktorisierte B. Dodson mithilfe von ECM eine 67-stellige Zahl. Zwar ist die Chance, einen Faktor zu finden, umso größer, je mehr Kurven verwendet werden, aber die Anzahl der verwendeten Kurven verläuft (leider) nicht linear mit der Stellenzahl der zu faktorisierenden Zahl.

Motivation für ECM

Tatsächlich ist das ECM eine Erweiterung von Pollards p-1-Methode.

Angenommen, die zu faktorisierende Zahl ist das Produkt zweier Primfaktoren und , So .

Pollards Methode funktioniert eigentlich nur, wenn oder sogenannt -glatt ist, d.h. jeder Primfaktor ist weniger als . Ist dies nicht der Fall, ist es unmöglich, mit Pollards Methode eine Zerlegung zu finden. Da das ECM mit Punktgruppen auf einer elliptischen Kurve arbeitet, besteht eine größere Chance auf das gewünschte Ergebnis.

Lenstras Algorithmus zur Faktorisierung mit der ECM

Der ECM-Algorithmus von Lenstra, um einen Faktor einer bestimmten natürlichen Zahl zu finden funktioniert wie folgt:

  1. Wählen Sie eine beliebige elliptische Kurve über , gegeben durch die Gleichung
    .
  2. Wähle einen nicht trivialen Punkt auf dieser Kurve.
  3. Wähle eine Nummer , nicht zu groß und nicht zu klein. Diese Nummer wird verwendet als -glatt Nummer.
  4. Finden (kleinstes gemeinsames Vielfaches). Für die weitere Berechnung ist es oft sinnvoll und daher üblich, binär schreiben.
  5. Bestimmen unter Verwendung der Additionen und anderer Berechnungen, wie für elliptische Kurven definiert.
  6. Bestimmen Sie für jede Zugabe
  7. Bestimmen (größter gemeinsamer Teiler).
  8. wenn , ist ein nicht-trivialer Faktor von . Wenn dies nicht der Fall ist, dann ein anderer Punkt oder eine andere elliptische Kurve gewählt werden.

Beispiel

der Zahl ein Faktor wird mit ECM von Lenstra gesucht.

  1. Wählen Sie als elliptische Kurve
    Über
  2. Wählen Sie den Punkt auf dieser Kurve .
  3. nehmen .
  4. Dann ist (binär)
  5. Berechnung vor dem
  6. Dann ist
  7. Berechnen Sie Punkte von jedem Paar
  8. Bestimmen Sie für jedes Punktpaar
  9. Es stellt sich heraus, dass keiner von eine nicht triviale Lösung gefunden wird, also kein Faktor von 5959 gefunden wird.

Mit einer anderen elliptischen Kurve

Über

und der punkt auf dieser Kurve gelangt man zu den Punkten und . Addition in der für elliptische Kurven definierten Weise ergibt

.

Dann ist

,

woraus der nicht-triviale Faktor 101 von 5959 folgt.