Solovay-Strassen-Test

Solovay-Strassen-Test

Der Solovay-Strassen-Test (nach Robert M. Solovay und Volker Strassen) ist ein probabilistischer Primzahltest. Der Test prüft für eine ungerade Zahl n, ob sie prim oder zusammengesetzt ist. Im letzteren Fall liefert der Test jedoch im allgemeinen keinen Faktor der Zahl n.

Der Solovay-Strassen-Test ist, wie der Miller-Rabin-Test, ein Monte-Carlo-Algorithmus. Das heißt, er liefert nur mit einer gewissen Wahrscheinlichkeit (50%) eine Aussage. Durch Wiederholung kann diese Wahrscheinlichkeit aber beliebig vergrößert werden. Ergibt der Test (wiederholt) keine Aussage, so lässt sich dies als „n ist wahrscheinlich eine Primzahl“ interpretieren.

Inhaltsverzeichnis

Vorgehensweise

Zu einer ungeraden Zahl n, welche auf Primzahleigenschaft zu testen ist, wird zufällig eine natürliche Zahl a mit 1 < a < n gewählt. Bei mehrfacher Durchführung des Tests sind für a jeweils neue Werte zu wählen.

  • Es wird g := ggT(a,n) berechnet. Falls g > 1 gilt, so ist g ein echter Teiler von n. Damit ist n keine Primzahl und der Test wird beendet.
  • Berechne
b := a^{\frac{n-1}{2}} \mod n
Gilt 1 < b < n-1, so kann n nach dem Satz von Euler keine Primzahl sein und der Test wird beendet. Ist aber b = 1 oder b = n-1, kann es sich bei n um eine Eulersche Pseudoprimzahl handeln und der folgende Schritt muss noch ausgeführt werden.
  • Berechne das Jacobi-Symbol J(a,n). Falls n eine Primzahl ist, so muss J(a,n)b mod n gelten. Gilt dies nicht, kann n keine Primzahl sein und der Test ist beendet.
  • Falls die Berechnungen nacheinander g = 1, b = 1 oder b = n-1, J(a,n)b mod n ergeben, liefert der Solovay-Strassen-Test keine Aussage, n ist also eventuell eine Primzahl.

Bewertung

Um die Güte des Solovay-Strassen-Tests zu bewerten, muss unterschieden werden, ob n eine Primzahl ist oder nicht.

  • Falls n eine Primzahl ist, liefert der Test immer das korrekte Ergebnis (nämlich „keine Aussage“).
  • Falls n keine Primzahl ist, ist die Wahrscheinlichkeit, im ersten Schritt des Tests ein a zu wählen, so dass der Test ein falsches Ergebnis liefert, kleiner als 1/2 (siehe unten: Falsche Zeugen).

Um die Güte des Tests für Nichtprimzahlen zu erhöhen, wird der Test mit unabhängig gewählten zufälligen Basen a hinreichend oft wiederholt. Wenn der Test k-mal wiederholt wird, dann ist die Wahrscheinlichkeit, dass in allen k Wiederholungen das Ergebnis „keine Aussage“ lautet (obwohl n keine Primzahl ist), kleiner als 1 / 2k. Dies ist eine pessimistische Schätzung - in den meisten Fällen wird die Güte wesentlich besser sein.

Effizienz

Der Solovay-Strassen-Test ist effizient, da der ggT, die Potenzen und das Jacobi-Symbol effizient berechnet werden können.

Beispiel

Am Beispiel der zusammengesetzten Zahl n = 91 (einer Fermatschen Pseudoprimzahl zu – beispielsweise – den Basen 17, 29) wird ein möglicher Ablauf des Tests gezeigt:

Ist 91 eine Primzahl?

Test 1: a = 29

g = ggT(29,91) = 1, b = 2945 ≡ 1 mod 91, J(29,91) = 1 ≡ b mod 91 => Primzahl nicht ausgeschlossen

Test 2: a = 17

g = ggT(17,91) = 1, b = 1745 ≡ -1 mod 91, J(17,91) = -1 ≡ b mod 91 => Primzahl nicht ausgeschlossen

Test 3: a = 23

g = ggT(23,91) = 1, b = 2345 ≡ 64 mod 91 => keine Primzahl

Falsche Zeugen

Sei n > 2 eine ungerade zusammengesetzte Zahl.
Eine Zahl a mit ggT(a,n) = 1 heißt falscher Zeuge für die Primalität von n bezüglich des Solovay-Strassen-Tests, falls

a^{\frac{n-1}{2}} \equiv J(a,n) \mod n .

Für n = 91 sind also die Basen a = 17, 29 falsche Zeugen. Da die Menge der falschen Zeugen eine Untergruppe der multiplikativen Gruppe (\mathbb{Z}/n)^* mit Ordnung ≤ φ(n)/2 bildet (wie üblich bezeichnen wir mit ϕ die Eulersche φ-Funktion, die die Anzahl der teilerfremden Zahlen kleiner als n angibt) und ϕ(n) < n gilt, sind höchstens die Hälfte aller zur Auswahl stehenden Basen a falsche Zeugen. Daher erreicht man bei k Durchläufen eine Fehlerwahrscheinlichkeit (zusammengesetzte Zahl wird nicht als solche erkannt) von kleiner als 1 / 2k.

Was steckt hinter dem Solovay-Strassen-Test?

Der Solovay-Strassen-Test beruht auf zwei Primzahl-Eigenschaften:

Die eine ist der Eulersche Satz: Für jede Primzahl p > 2 gilt

a^{\frac{p-1}{2}} \equiv \pm 1 \mod p .

Mit diesem Kriterium werden alle Zahlen herausgesiebt, die weder Primzahlen noch Eulersche Pseudoprimzahlen zur Basis a sind.

Die andere Eigenschaft verbindet dies mit dem Legendre-Symbol: Für jede Primzahl p > 2 gilt

a^{\frac{p-1}{2}} \equiv \Big(\frac{a}{p}\Big)\mod p .

Da man bei den zu testenden Zahlen nicht davon ausgehen darf, dass es sich um Primzahlen handelt, benutzt man das Jacobi-Symbol.
Mit diesem Kriterium fallen auch die Euler-Jacobi-Pseudoprimzahlen heraus.

Literatur


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

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

  • Solovay–Strassen primality test — The Solovay–Strassen primality test, developed by Robert M. Solovay and Volker Strassen, is a probabilistic test to determine if a number is composite or probably prime. It has been largely superseded by the Miller–Rabin primality test, but has… …   Wikipedia

  • Test de primalite de Solovay-Strassen — Test de primalité de Solovay Strassen Le test de primalité de Solovay Strassen, dû à Robert M. Solovay et Volker Strassen, est un test probabiliste permettant de déterminer si un nombre impair est un nombre composé ou un nombre premier probable.… …   Wikipédia en Français

  • Test de primalité de solovay-strassen — Le test de primalité de Solovay Strassen, dû à Robert M. Solovay et Volker Strassen, est un test probabiliste permettant de déterminer si un nombre impair est un nombre composé ou un nombre premier probable. Les concepts Le mathématicien suisse… …   Wikipédia en Français

  • Soloway-Strassen-Test — Der Solovay Strassen Test (nach Robert Solovay und Volker Strassen) ist ein probabilistischer Primzahltest. Der Test prüft für eine ungerade Zahl n, ob sie eine Primzahl oder das Produkt mehrerer Faktoren ist. Für den Fall, dass der Test als… …   Deutsch Wikipedia

  • Test de primalité de Solovay-Strassen — Le test de primalité de Solovay Strassen, dû à Robert M. Solovay et Volker Strassen, est un test probabiliste permettant de déterminer si un nombre impair est un nombre composé ou un nombre premier probable. Les concepts Le mathématicien suisse… …   Wikipédia en Français

  • Test de primalite AKS — Test de primalité AKS Le test de primalité AKS (aussi connu comme le test de primalité Agrawal Kayal Saxena et le test cyclotomique AKS) est un algorithme déterministe de preuve de primalité découvert et publié le 6 août 2002 par trois… …   Wikipédia en Français

  • Test de primalité aks — Le test de primalité AKS (aussi connu comme le test de primalité Agrawal Kayal Saxena et le test cyclotomique AKS) est un algorithme déterministe de preuve de primalité découvert et publié le 6 août 2002 par trois scientifiques indiens nommés… …   Wikipédia en Français

  • Test de primalité AKS — Le test de primalité AKS (aussi connu comme le test de primalité Agrawal Kayal Saxena et le test cyclotomique AKS) est un algorithme déterministe de preuve de primalité découvert et publié le 6 août 2002 par trois scientifiques indiens nommés… …   Wikipédia en Français

  • Test de primalite de Miller-Rabin — Test de primalité de Miller Rabin Le test de primalité de Miller Rabin est un test de primalité probabiliste : c’est à dire un algorithme qui détermine si un nombre donné est probablement premier, de façon similaire au test de primalité de… …   Wikipédia en Français

  • Test de primalité de miller-rabin — Le test de primalité de Miller Rabin est un test de primalité probabiliste : c’est à dire un algorithme qui détermine si un nombre donné est probablement premier, de façon similaire au test de primalité de Fermat et le test de primalité de… …   Wikipédia en Français

Share the article and excerpts

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