Kettenbruchmethode

Kettenbruchmethode

Die Kettenbruchmethode (Abk.: CFRAC) berechnet zwei Teiler einer natürlichen Zahl, die keine Primzahl ist. Durch wiederholte Anwendung lässt sich so die Primfaktorzerlegung dieser Zahl ermitteln.

Die Kettenbruchmethode wurde 1931 von Derrick Henry Lehmer und dem Mathematik-Liebhaber Ralph Ernest Powers veröffentlicht, der auch durch zahlentheoretische Rechenergebnisse bekannt ist. Über Jahrzehnte hinweg wurde sie kaum verwendet, da sie auf den zur Verfügung stehenden Rechenmaschinen häufig nach mehreren Stunden noch keine Faktorisierung fand. Im Jahr 1970 programmierten Michael Morrison und John Brillhart die Kettenbruchmethode auf einem Großrechner und berechneten damit die Faktorisierung der siebten Fermat-Zahl. In den achtziger Jahren des zwanzigsten Jahrhunderts war die Kettenbruchmethode das Standardverfahren für die Faktorisierung großer Zahlen. Das waren damals Zahlen mit bis zu fünfzig Dezimalstellen. 1990 wurde mit dem quadratischen Sieb ein neuer Algorithmus vorgestellt, der die Nachfolge der Kettenbruchmethode antrat. Die Laufzeit der Kettenbruchmethode in O-Notation ist O\left(e^{\sqrt{2\log N \log\log N}}\right), wobei N die zu faktorisierende Zahl ist.

Inhaltsverzeichnis

Funktionsweise

Der Algorithmus sucht eine Kongruenz der Form x2 ≡ y2 (mod N). Um diese zu finden, multipliziert er geeignete Kongruenzen der Form x2y (mod N). Solche Kongruenzen führen zu einer Faktorisierung von N (genauer beschrieben im Artikel Dixons Faktorisierungsmethode.)

Bei der Kettenbruchmethode nutzt man die Kettenbruchentwicklung von \sqrt{N} um solche Kongruenzen zu finden. Die Kettenbruchentwicklung liefert beste Näherungen der Wurzel von N als Brüche der Form  \frac{p}{q} . Jede Näherung liefert eine Kongruenz x2y (mod N) für x = p und y = x2 - q2 · N. Da der Bruch eine beste Näherung für \sqrt{N} ist, ist y klein und mit hoher Wahrscheinlichkeit glatt und man braucht nur wenige solcher Kongruenzen.

Algorithmus nach Morrison und Brillhart

Die hier beschriebene Variante der Kettenbruchmethode entspricht derjenigen, die von Morrison und Brillhart in ihrem Aufsatz „A Method of Factoring and the Factorization of F7“ veröffentlicht wurde. Der Algorithmus besteht aus drei wesentlichen Schritten. Die zu faktorisierende Zahl wird im Weiteren mit N bezeichnet.

Schritt A

Wähle eine natürliche Zahl k \ge 1 und berechne die Kettenbruchentwicklung von \sqrt{kN}. Die Kettenbruchentwicklung kann an einer beliebigen Stelle n − 1 abgebrochen werden, sodass man einen Kettenbruch der Form

[ q_0; q_1, q_2, \ldots, q_{n-1}, \frac{\sqrt{kN} + P_n}{Q_n}]

erhält. Man berechnet nun die Paare (Ai − 1,Qi), wobei Ai der Zähler und Bi der Nenner der i-ten Konvergente sind und sich Qi nach der Formel

Q_i = (-1)^i \cdot (A_{i-1}^2 - kNB_{i-1}^2)

berechnet.

Schritt B

Aus den in Schritt A erzeugten (A,Q)-Paaren werden diejenigen ausgewählt, bei denen alle Primfaktoren von Q einer vorher festgelegten Faktorbasis entstammen. Die Faktorbasis enthält üblicherweise die -1 und alle Primzahlen, die Teiler der Q sein können, bis zu einer bestimmten Schranke. Man braucht nur die Primzahlen p mit p = 2 oder  (kN)^{(p-1)/2} \, \bmod \; p \le 1 in die Faktorbasis aufnehmen, denn Q kann nur durch diese p teilbar sein.

Durch mehrfache Probedivision lässt sich feststellen, ob das jeweilige Q ein Produkt von Zahlen aus der Faktorbasis ist, und nebenbei erhält man die Primfaktorzerlegung von Q.

Mit den ausgewählten (A,Q)-Paaren füllt man eine Tabelle. Diese Tabelle enthält eine Spalte für jede Zahl der Faktorbasis. In die Faktorbasisspalten wird eine Eins eingetragen, wenn der jeweilige Faktor in der Primzahlzerlegung von Q ungerade oft vorkommt. Andernfalls trägt man eine Null ein. Der Tabelleneintrag für das Paar (375, -220 = -1 \cdot 2^2 \cdot 5 \cdot 11) und die Faktorbasis { − 1,2,3,5,7,11,13} sieht beispielsweise wie folgt aus.

-1 2 3 5 7 11 13
(375, -220) 1 0 0 1 0 1 0

Dann bestimmt man eine Auswahl von Tabellenzeilen, für die die Summe der Einträge in jeder Tabellenspalte gerade ist, so dass das Produkt der Q der ausgewählten Zeilen jeden Faktor mit einer geraden Potenz enthält und somit eine Quadratzahl ist. Das ist sicher dann möglich, wenn die Zahl der Tabellenzeilen mindestens um eins größer ist als die Zahl der Faktoren in der Faktorbasis und damit der Tabellenspalten.

Schritt C

Man multipliziert die As aller Paare und die Qs aller Paare der ausgewählten Tabellenzeilen. So erhält man die Legendre-Kongruenz

x^2 = \prod A^2 \equiv y^2 = \prod Q \; ( \bmod \, N).

Man berechnet dann d_1 = \operatorname{ggT}(x - y, N) und d_2 = \operatorname{ggT}(x + y, N).

Wenn x \not\equiv y \; ( \bmod \, N) und x \not\equiv -y \; ( \bmod \, N), dann sind d1 und d2 echte Teiler von N. Anderenfalls kann eine andere Auswahl von Tabellenzeilen erfolgreich sein. Ggfs. muss man noch weitere Zeilen berechnen.

Geschichte

Der erste Schritt auf dem Weg zur Kettenbruchmethode war die 1643 von Pierre de Fermat beschriebene Faktorisierungsmethode von Fermat. Dieses Rechenverfahren findet zwei Quadratzahlen x2 und y2, sodass x2y2 = N gilt. N ist auch hier wieder die zu faktorisierende Zahl. Aufgrund der 3. Binomischen Formel gilt

N = x2y2 = (x + y)(xy)

und x + y und xy sind deshalb Teiler von N.

1798 veröffentlichte Adrien-Marie Legendre sein Buch „Essai sur la théorie des nombres“. In diesem findet sich mit den Legendre-Kongruenzen eine Weiterentwicklung der Methode von Fermat. Die Differenz der Quadratzahlen x2 und y2 muss nicht mehr gleich N sein, sondern kann ein beliebiges Vielfaches von N sein. Die Wurzeln x und y der Quadratzahlen müssen zudem drei Bedingungen erfüllen: 0 < x,y < N, x \ne y und x + y \ne N. Unter diesen Voraussetzung ist N ein Teiler von x2y2 = (x + y)(xy) und sowohl der größte gemeinsame Teiler \operatorname{ggT}(N, x + y) als auch \operatorname{ggT}(N, x - y) sind Faktoren von N.

Literatur


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • CFRAC — Die Kettenbruchmethode (Abk.: CFRAC) berechnet zwei Teiler einer natürlichen Zahl, die keine Primzahl ist. Durch wiederholte Anwendung lässt sich so die Primfaktorzerlegung dieser Zahl ermitteln. Die Kettenbruchmethode wurde 1931 von Derrick… …   Deutsch Wikipedia

  • Faktorisierungsproblem — Das Faktorisierungsproblem für ganze Zahlen ist eine Aufgabenstellung aus dem mathematischen Teilgebiet der Zahlentheorie. Dabei soll zu einer zusammengesetzten Zahl ein nichttrivialer Teiler ermittelt werden. Ist beispielsweise die Zahl 91… …   Deutsch Wikipedia

  • Faktorisierungsproblem für ganze Zahlen — Das Faktorisierungsproblem für ganze Zahlen ist eine Aufgabenstellung aus dem mathematischen Teilgebiet der Zahlentheorie. Dabei soll zu einer zusammengesetzten Zahl ein nichttrivialer Teiler ermittelt werden. Ist beispielsweise die Zahl 91… …   Deutsch Wikipedia

  • Geschichte der Faktorisierungsverfahren — Das Faktorisierungsproblem für ganze Zahlen ist eine Aufgabenstellung aus dem mathematischen Teilgebiet der Zahlentheorie. Dabei soll zu einer zusammengesetzten Zahl ein nichttrivialer Teiler ermittelt werden. Ist beispielsweise die Zahl 91… …   Deutsch Wikipedia

  • Faktorisierungsverfahren — Das Faktorisierungsproblem für ganze Zahlen ist eine Aufgabenstellung aus dem mathematischen Teilgebiet der Zahlentheorie. Dabei soll zu einer zusammengesetzten Zahl ein nichttrivialer Teiler ermittelt werden. Ist beispielsweise die Zahl 91… …   Deutsch Wikipedia

  • Kettenbruch — In der Mathematik und insbesondere der Zahlentheorie ist ein Kettenbruch (fortgesetzter Bruch) ein Ausdruck der Form Ein Kettenbruch ist also ein gemischter Bruch der Form , bei dem der Nenner x wieder die Form eines gemischten Bruchs besitzt,… …   Deutsch Wikipedia

  • Legendre-Kongruenz — Die Legendre Kongruenz ist ein Begriff aus dem mathematischen Teilgebiet der Zahlentheorie. Es handelt sich um eine Kongruenz, bei der auf beiden Seiten je eine Quadratzahl steht: Diese nach Adrien Marie Legendre benannten Kongruenzen bilden die… …   Deutsch Wikipedia

  • Quadratisches Sieb — ist ein Begriff aus dem Bereich Zahlentheorie der Mathematik und bezeichnet einen der schnellsten bekannten Algorithmen zur Faktorisierung großer natürlicher Zahlen. Es ist ein allgemeines Faktorisierungsverfahren, d.h. die Laufzeit hängt nur von …   Deutsch Wikipedia

  • Diophantische Gleichungen — Diophantische Gleichungen, solche Gleichungen, bei denen die Anzahl der Unbekannten größer ist als die Zahl der Gleichungen, wobei aber für die Unbekannten nur ganze Zahlen als Lösungen zugelassen werden. Die Zahl der Lösungen ist unendlich groß …   Lexikon der gesamten Technik

  • John Brillhart — John David Brillhart (* 13. November 1930 in Alameda County, Kalifornien) ist ein US amerikanischer Mathematiker, der sich mit Algorithmischer Zahlentheorie beschäftigt. Brillhart studierte an der University of California, Berkeley, wo er 1967… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”