Sie sind auf Seite 1von 14

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens

Inhaltsverzeichnis
1. Einleitung .............................................................................................................. 1 2. Anwendung von Primzahlen ................................................................................. 1 2.1 Kryptografie ....................................................................................................1 2.1.1 RSA-Verschlsselung..............................................................................2 2.2 Anforderungen an Primzahltests .....................................................................3 3. Das AKS-Verfahren .............................................................................................. 3 3.1 Die Idee des AKS-Verfahrens .........................................................................4 3.2 Der Algorithmus nach AKS ............................................................................5 3.3 Ein praktisches Beispiel ..................................................................................6 3.4 Laufzeitverhalten ............................................................................................7 4. Ausblick auf Miller-Rabin-Verfahren ................................................................... 7 5. Begriffsklrung ..................................................................................................... 8 6. Schlussbemerkungen ............................................................................................ 9 7. Literaturverzeichnis ............................................................................................ 11 8. Selbststndigkeitserklrung ................................................................................ 12 9. Anhang ................................................................................................................ 13

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens

1. Einleitung
Im Folgenden wird das AKS-Verfahren behandelt, welches einen groen Schritt in Informatik und Zahlentheorie darstellt. Dabei wird jedoch nur das 2002 verffentlichte Verfahren im Detail behandelt und die Verbesserungen, die ber die Jahre verffentlicht wurden, ausgelassen. Das AKS-Verfahren ist interessant, da es ein lange ungelstes mathematisches und informatorisches Problem lst. Dieses ordnet das PRIMESProblem der Komplexittsklasse P zu. Es gab schon vor AKS deterministische Tests. Diese waren jedoch durch exponentielle Laufzeiten unbrauchbar. Im folgenden Abschnitt wird zuerst geklrt, wofr Primzahlen bentigt werden und was die resultierenden Anforderungen an Primzahlen sind. Dabei wird schnell klar, dass sehr effektive Verfahren bentigt werden. Im Verlauf dieser Arbeit werden verschiedene mathematische Sachverhalte behandelt, fr deren Verstndnis folgende Vereinbarungen getroffen sind: log beschreibt den Logarithmus zur Basis 2 und in den Tests ist die getestete Zahl entweder PRIME (Prim) oder COMPOSITE (zusammengesetzt). Des weiteren werden viele verwendete Fachbegriffe im Kapitel Begriffsklrung definiert.

2. Anwendung von Primzahlen


Primzahlen sind schon durch ihren zahlentheoretischen Hintergrund fr viele Mathematiker und Informatiker interessant. Sie haben jedoch einen praktischen Verwendungszweck, der in der Kryptografie besonders zum Tragen kommt.

2.1 Kryptografie
In der Kryptografie geht es darum eine Nachricht so zu verschlsseln, dass ihr Inhalt nur fr den Empfnger lesbar ist. Ein sehr einfaches Beispiel fr ein kryptografisches Verfahren ist die Caesar-Chiffre (ROT-13) 1, welche die Buchstaben des lateinischen Alphabets um 13 Stellen verschiebt. So wird der Buchstabe A zu einem N, wenn dieser mit ROT-13 verschlsselt wird. Wie unschwer zu erkennen ist, ist dieses Verfahren sehr unsicher und eignet sich hchstens zum unkenntlich machen bestimmter
1 [ROT], Einleitung

-1-

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens Textpassagen. Diese Eigenschaft wurde im Usenet genutzt, um die Pointen von Witzen zu verschlsseln. ROT-13 ist durch eine Hufigkeitsanalyse entschlsselbar, welche bereits 1000 n. Chr. von arabischen Kryptoanalytikern entwickelt wurde. Diese Analyse betrachtet hufig auftretende Buchstaben. Je nach Sprache variiert die Hufigkeit von Buchstaben. Im Deutschen wre der Hufigste zum Beispiel das E. Zuerst werden die hufigsten Buchstaben im verschlsselten Text gesucht. Dann wird die Verschiebung dessen analysiert und vermutet, dass es sich dabei um ein E handelt. Trifft dies zu, wird die Rckfhrung auf den Originaltext mglich. Um Daten effektiv verschlsseln zu knnen, musste daher ein Verfahren gefunden werden, welches eine Nachricht schnell verschlsselt und wieder entschlsselt, wenn man das Passwort, das zum entschlsseln notwendig ist, hat (public-key) 2. Des weiteren darf der Verschlsselungsalgorithmus nicht umkehrbar sein. Dies entspricht einer mathematischen Einwegfunktion.3

2.1.1 RSA-Verschlsselung

Es ist (vergleichsweise) einfach, einer Zahl anzusehen, ob sie eine Primzahl ist. Ist sie aber keine, so ist es schwierig, ihre Primfaktoren tatschlich zu bestimmen.4 RSA basiert auf der Multiplikation von Primzahlen (RSA-Modul). Dadurch ist die Rckfhrung auf die ursprnglichen Primfaktoren, die zum entschlsseln notwendig sind, sehr kompliziert, jedoch die Errechnung des RSA-Moduls schnell und unkompliziert.5 Das Problem an RSA ist, dass es etwa um den Faktor 1000 langsamer ist AES. Daher wird es meistens nur zum Schlsselaustausch und zum Signieren von Nachrichten verwendet.6 RSA wre zum Beispiel fr die Verschlsselung der Daten auf dem RFID-Chip des deutschen Reisepasses vollkommen ausreichend.

2 3 4 5 6

[PRI1], S.103, 3. Absatz [PRI1], S.103 ff., 4.1 [PRI1], Einleitung unten [PRI1], S.106, 4.2 http://de.wikipedia.org/wiki/RSA-Kryptosystem#Anwendung (Zugriff: 02.03 21:10)

-2-

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens

2.2 Anforderungen an Primzahltests


Da die Rckfhrung auf die Primfaktoren in RSA bei 20 Dezimalstellen mit Heimrechnern in Sekunden mglich ist, sind sehr groe Primzahlen mit jeweils mehreren 100 Dezimalstellen ntig.7 Bis 2007 veranstalteten die RSA Laboratories das RSA Factoring Challenge, welche ein Preisgeld auf RSA-1024 und RSA-2048 von 100.000 $ und 200.000 $ aussetzte. Da jedoch Wissenschaftler der Universitt Bonn eine 312 Stellen lange Mersenne-Primzahl faktorisiert haben, wurde der Wettbewerb abgebrochen. Zum Vergleich: RSA-1024 ist 302 und RSA-2048 617 Dezimalstellen gro. Sowohl RSA-1024, als auch RSA-2048 wurden bisher nicht faktorisiert. 8 Nun ergibt sich das Problem, dass Primzahlen zwar unendlich sind9, aber anscheinend randomisiert auftreten. Um nun eine Dezimalzahl auf Primeigenschaft zu prfen, ist es praktisch nicht machbar jede Kombinationsmglichkeit auszuschlieen, wie es bei einer Brute-Force-Implementierung der Fall wre. Es muss also ein Verfahren gefunden werden, das in mglichst kurzer Zeit feststellt, ob eine Zahl PRIME ist oder nicht. Durch diese Voraussetzungen wird zum Beispiel das Sieb des Eratosthenes unbrauchbar. Es dauert zu lange, bis dieses zwei groe Primzahlen gefunden hat, die verwendbar sind. Des weiteren listet es alle Primzahlen aus einem Zahlenbereich auf. Es werden jedoch nur zwei bentigt. Dadurch ist es einfacher Zahlen direkt auf Primeigenschaft zu testen. Einen Durchbruch im theoretischen Bereich brachte das AKS-Verfahren.

3. Das AKS-Verfahren
Das AKS-Verfahren wurde im Jahr 2002 von den indischen Forschern Manindra Agrawal, Neeraj Kayal, und Nitin Saxena unter dem Titel PRIMES is in P verffentlicht.10 Ihr Familiennamen bilden den Namen des Algorithmus. Der Titel lsst sich mit PRIMES ist in P bersetzen, wobei PRIMES fr die Problematik des Testens einer Zahl auf Primlitt verweist und P fr die Komplexittsklasse P steht. Dies bedeutet, dass ein deterministischer Algorithmus fr das Problem gefunden wurde, welcher dieses effizient in polynomineller Laufzeit lsen kann.
7 8 9 10 [PRI1], S.106 [RSA3], RSA-1024, RSA-2048 [PRI1], S. 25f, 1.6 [AKS], Introduction

-3-

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens Im Folgenden wird die Idee hinter dem original AKS-Algorithmus betrachtet. Die Beweise, sowie viele Verbesserungen werden bewusst ausgelassen, da diese ausschlielich mathematisch sind, beziehungsweise nur eine leicht verbesserte Laufzeit zur Folge haben und letztlich den Rahmen dieser Facharbeit sprengen wrden.

3.1 Die Idee des AKS-Verfahrens


Das AKS-Verfahren beruht auf einer Verallgemeinerung des kleinen Satzes von Fermat.11
12

Dieser wurde auf Polynome erweitert.


13

Jedoch war dieser zuerst nicht effektiv genug, da im schlimmsten Fall die Kongruenz fr alle

an getestet werden musste. Im Rahmen einer Bachelorarbeit wurde dieser

Satz erweitert, um eine Berechnung in logarithmischer Laufzeit mglich zu machen.


14

Hier stellt sich noch die Frage was Q ist und welche Zahlen a eingesetzt werden mssen, um die Kongruenz zu testen.. Um das einzugrenzen, wird der Satz von Agrawal, Kayal und Saxena verwendet.15 Es sei r eine zu n teilerfremde Primzahl mit ord(n) > 4 (log n) und Q= x r 1 . Ist n keine Potenz von p, so gibt es weniger als r Polynome der Form

P=x +a mit 0a< p , die [...] ( P ( X )) p P( X p )mod ( p , Q)

erfllen. Gibt es also eine Zahl r mit der im obigen Satz gegebenen Eigenschaft, so muss nur noch eine logarithmische, endliche Anzahl von a getestet werden.16

11 12 13 14 15 16

[AKS2], S. 2, Punkt 2 [PRIM], S. 17, Punkt 2.A, Kleiner Satz von Fermat [AKS2], S. 2, Punkt 2, Lemma 2.1 (1) [AKS2], S. 2, Punkt 2, Lemma 2.1 (2) [PRI1], S. 140, Satz 6.1.1 und der folgende Abschnitt [PRI1], S. 140 Z. 9f.

-4-

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens Diese Idee fhrt direkt zum Algorithmus.

3.2 Der Algorithmus nach AKS


Eingabe: int n; 1. Wenn n eine reine Potenz ist (also b>1 ) gib COMPOSITE aus; 2. Suche das kleinste r Ord (n)>log( n) ; 3. Wenn 1<ggT ( a , n) fr ein ar gib COMPOSITE aus; 4. Wenn nr gib PRIME aus; 5. Fhre fr a=1 bis n=a b fr eine ganze Zahl a>0 und

( ( r ))log (n)

aus:

Wenn (( X +a)n != X n+a (mod X r1, n)) gib COMPOSITE aus; 6. Gib PRIME aus; Dies ist der sinngem bersetzte Algorithmus aus Primes is in P.17 Da diese Version recht kompliziert ist, folgt nun eine vereinfachte Version: 1. Wenn n eine reine Potenz ist (also b>1 ) gib COMPOSITE aus; 2. Suche das kleinste r >ord ( n) , fr das
n 1 mod r
k

n=a b

fr eine ganze Zahl

a>0

und

nicht gilt. Dabei ist k

jede ganze Zahl kleiner gleich 4log(n) . 3. Suche einen ggT ( a , n)>1 fr ein

ar . Wenn es kein a> ggT

gibt,

fahre fort, sonst ist die Zahl COMPOSITE. 4. Wenn nr , gib PRIME aus. 5. Gibt es einen AKS-Zeugen < n, so fhre fr a = 1 bis

((r ))log(n)

aus:

Wenn (( X +a)n != X n+a (mod X r1, n)) gib COMPOSITE aus; 6. Wurde bis hier hin nicht abgebrochen, gib PRIME aus.18 ( r) ist die Eulersche Phi-Funktion. Diese Funktion gibt an, wie viele positiven

17 [AKS2], S. 3, Punkt 4 18 Diese Vereinfachung wurde mit dem Quelltext von [AKS3] , [AKS3] und dem Originalalg. erstellt.

-5-

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens ganzen Zahlen zu ihr Teilerfremd sind.19 ggT bezeichnet den grten gemeinsamen Teiler von zwei Zahlen. Hier a und n. n k 1( mod r) gilt.20 Ord (n) bezeichnet die kleinste Zahl k, fr die

3.3 Ein praktisches Beispiel


Die Zahl n, die berprft werden soll, hat im folgenden Beispiel den Wert sieben.

1. berprfen, ob n eine reine Potenz ist. Dies ist nicht der Fall, da es kein a und kein b gibt, die mit a hoch b n bilden. 1. Beweis: 2<7 ; werden. 2. r = 7; 1. Beweis: Es ist das kleinste r >ord ( n) gesucht, fr das n i1 mod r nicht gilt, 2>7 ; 3>7 n kann nicht als reine Potenz geschrieben

da sonst die Zahl n keine Primzahl mehr sein kann. Dies gilt sowohl fr die Zahl eins, als auch fr die Zahl sieben. Da aber das kleinste r>ord(n) gesucht ist, wird der AKS-Zeuge sieben gewhlt. 3. Es gibt keinen grten gemeinsamen (echten) Teiler, der grer eins und kleiner n ist. 1. Beweis: Fr alle a von 1 bis 7 gilt, dass sie mit 7 ausschlielich den ggT 1 haben. Daher kann auch in diesem Schritt nicht COMPOSITE ausgegeben werden. 4. Da n = r ist, ist die Zahl PRIME. 5. Schritt 5 ist nicht notwendig, da die Primalitt von sieben bereits festgestellt wurde.
19 [PRI1], S. 77, 3.2.4 20 [PRI1], S. 74, 3.2.1

-6-

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens

3.4 Laufzeitverhalten
Das Laufzeitverhalten hngt sehr stark von den Verfahren ab, die in den Schritten eins bis vier verwendet werden. Man msste daher eigentlich alle Schritte einzeln betrachten. Das wre allerdings sehr kompliziert und langwierig und jeder Schritt daher der Einfachheit halber als ein einfacher Schritt betrachtet und hat somit die Laufzeit O(1) . Diese Schritte sind im Folgenden also nicht relevant. Des weiteren werden nur der worst und best case behandelt. Worst case: r <n und Schritt 5 muss somit durchlaufen werden. r ist PRIME
10 Fr die Grenordnung von r gilt immer O( log n) .21 Daher ist im Folgenden
10 r =log n und ( r)=r 1 .

Die Laufzeit ist also mit O( log 12 n) anzugeben. Somit ist ebenfalls bewiesen, dass PRIMES tatschlich P zuzuordnen ist. Best case: Schritt fnf wird nicht erreicht, da r n . Hier gilt dann O( log 10 n) , weil r der dominante Teil der Laufzeit des Algorithmus ist.

4. Ausblick auf Miller-Rabin-Verfahren


Dieser Test ist ein Probabilistischer und basiert auf dem Satz von Fermat-Miller.22 Es sei p2 eine Primzahl. Schreibe p1=d2l , wobei d ungerade ist und l1 . Dann gilt fr jedes a , das nicht von p geteilt wird: (a) Entweder ist a d 1(mod p) , (b) oder es gibt ein i zwischen 0 und l1 mit a (2 )d 1(mod p) .
i

21 [PRI1], S. 155, 7.2 22 [PRI1], S. 117, 4.5.2

-7-

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens Diese Erweiterung des kleinen Satzes von Fermat schliet gleichzeitig starke Carmichael-Zahlen aus.23 Dennoch sind sind die getesteten Zahlen nur wahrscheinlich prim. Das geht aus folgendem Algorithmus hervor. Eingabe: Eine natrliche Zahl n>1 . 1. Ist n eine gerade Zahl mit n>2 oder eine echte Potenz einer natrlichen Zahl, so antworte n ist zusammengesetzt. 2. Andernfalls schreibe n1=d2l zwischen 1 und n1 aus. 4. Andernfalls berechne b:= a d mod n . 5. Ist b = 1, so antworte n ist wahrscheinlich prim. 6. Andernfalls berechne die Zahlen b , b2 ,b 4 , , b2l mod n . 7. Ist keine dieser Zahlen kongruent zu -1 modulo n, so antworte n ist zusammengesetzt 8. Andernfalls antworte n ist wahrscheinlich prim 24 Die Laufzeit dieses Algorithmus' ist dabei in jedem Schritt und whle (zufllig[!]) eine Zahl a

3. Sind a und n nicht teilerfremd, antworte n ist zusammengesetzt.

log n .25 Wie man sieht, ist

dieser deutlich(!) schneller als AKS. Der Nachteil ist, dass von ihm auch Pseudoprimzahlen wie 2047 als wahrscheinlich prim gelten knnen. Die Fehlerwahrscheinlichkeit sinkt jedoch mit der Gre von n, denn fr die Erkennung der Zusammengesetztheit gilt: die Wahrscheinlichkeit,
(n1) . Ist n nicht zusammengesetzt, desto grer wird 2

dass

Prim

ist.

Des

weiteren

lsst

sich

die

Fehlerwahrscheinlichkeit durch das Wiederholen des Tests weiter verringern.26

5. Begriffsklrung
1. PRIMES27 PRIMES bezeichnet das Problem in der Informatik, das sich mit der Frage beschftigt, ob das Finden von Primzahlen der Komplexittsklasse P (siehe unten) zuzuordnen ist.
23 24 25 26 27 [PRI1], S. 119, 4.5.3 [PRI1], S. 118, ALGORITHMUS MILLER-Rabin [PRI1], S.194f., Aufgabe 4.5.7 [PRI1], S. 120 unten [AKS2], S. 1f., Introduction

-8-

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens 2. Komplexittsklasse P Die Komplexittsklasse P bezeichnet alle Algorithmen, die effizient in polynomineller Zeit lsbar sind.28 3. Deterministische Aussage Eine deterministische Aussage ist entweder wahr oder falsch..29 4. Probabilistische Aussage Eine probabilistische Aussage muss nicht unbedingt wahr oder falsch sein. Sie ist nur mit einer gewissen Wahrscheinlichkeit wahr oder falsch. Algorithmen, die solche Aussagen geben, werden auf Monte-Carlo-Algorithmen genannt (z.B. Miller-Rabin-Test)30 5. Charmichael-Zahlen Eine zusammengesetzte natrliche Zahl n heit Carmichael-Zahl, wenn fr alle natrlichen Zahlen a mit ggT (a , n)=1 gilt a n 1 1 mod n .31 Das heit, dass diese den Fermatschen Primzahltest bestehen, obwohl sie zusammengesetzt sind. Im Miller-Rabin-Verfahren sind starke Carmichael-Zahlen jedoch ausgeschlossen. 6. (Starke) Pseudoprimzahl Die Carmichael-Zahl gehrt zu den Pseudoprimzahlen. Eine Pseudoprimzahl ist dann stark, wenn sie ebenso nach dem Fermat-Miller-Satz eine Primzahl ist. 7. Mersenne-Primzahl32 Geht aus 2 n 1 eine echte Primzahl hervor, so ist es eine Mersenne-Primzahl. 8. AKS-Zeuge33 Der AKS-Zeuge bezeichnet das r im Algorithmus.

6. Schlussbemerkungen
Abschlieend lsst sich sagen, dass der AKS-Algorithmus zwar wie im Verlauf der
28 29 30 31 32 33 [PRI1], S.44, 2.3.2 [DUD], S. 169, Stichwort Determiniertheit http://de.wikipedia.org/wiki/Probabilistische_Aussage (Zugriff 02.03 16:55) und [PRI1], S. 55, 2.5 [CAR], S.2, 1.2 Definition der Carmichael-Zahlen [PRI1], S. 168f., Mersenne-Zahlen [AKS3], Hauptidee

-9-

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens Facharbeit bewiesen den Durchbruch fr das PRIMES-Problem bedeutet, er sich aber letztlich durch seine relativ schlechte Laufzeit nicht fr die Praxis eignet. Dafr wird das kurz behandelte Miller-Rabin-Verfahren genutzt, da dieses schnell ist und eine sehr geringe Fehlerwahrscheinlichkeit aufweist, die mit der Gre der Zahl sinkt. Primzahlen sind generell ein sehr mathematisches Thema mit entsprechend viel theoretischem Hintergrund. Daraus resultiert fr Schler ein Verstndnisproblem, das vor der Erstellung dieser Arbeit beseitigt werden musste. Des weiteren war auch die Quellensuche ein Problem. Der AKS-Test erschien im Jahr 2002 und es gibt nur wenig Literatur ber diesen. Das Buch Primzahltests fr Einsteiger war die grte Hilfe. Es versucht Schlern der gymnasialen Oberstufe auf mglichst einfache Art und Weise das ntige Grundwissen zu vermitteln und behandelt letztlich das AKS-Verfahren selbst. PRIMES is in P war in Kombination mit der gerade genannten Quelle ebenfalls eine groe Hilfe fr diese Arbeit. Es blieb dennoch uerst zeitintensiv sich in das komplexe Thema einzuarbeiten und dieses zu verstehen.

- 10 -

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens

7. Literaturverzeichnis
[ROT] http://de.wikipedia.org/wiki/ROT13 Letzter Zugriff: 19 Februar 11:37 [PRI1] Rempe, L.; Waldecker, R.: Primzahltests fr Einsteiger: Zahlentheorie Algorithmik Kryptographie, VIEWEG+TEUBNER (2009) [PRI2] Ribenboim, P.: Die Welt der Primzahlen: Geheimnisse und Rekorde, Springer (2004), 2. Auflage [AKS] http://en.wikipedia.org/wiki/AKS_primality_test Letzter Zugriff: 19. Februar 12:25 [RSA3] http://en.wikipedia.org/wiki/RSA_numbers [AKS2] Agrawal, M., Kayal, N., Saxena, N.: Auszug aus Annals of Mathematics: PRIMES is in P (2004) [AKS3] http://www-ti.informatik.unituebingen.de/~reinhard/krypto/AKSTest/AKSeng.html Letzter Zugriff: 02.03 20:35 [DUD] B.I.-Wissenschaftsverlag unter Leitung von Engesser, H.: DUDEN Informatik (1988) [CAR] Pape, F: Carmichael-Zahlen und Miller-Rabin (2003)

- 11 -

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens

8. Selbststndigkeitserklrung
Hiermit erklre ich, dass ich die Facharbeit ohne fremde Hilfe angefertigt und nur die im Literatur- und Quellenverzeichnis angefhrten Quellen und Hilfsmittel verwendet habe.

_____________________________________

Ort, Datum, Unterschrift

- 12 -

Testen von Zahlen auf Primeigenschaft anhand des AKS-Verfahrens

9. Anhang

- 13 -