DiskreteMathematik.pdf

105
Diskrete Mathematik G¨ otz Kersting, SS 2005 Die Diskrete Mathematik behandelt ,diskrete‘, insbesondere endliche Ob-  jekte und Strukturen. Der Name betont den Gegensatz zu den kontinuier- lichen Ans¨ atzen und Methoden in der Mathematik. Die Grenzwertbetrach- tungen der Analysis treten in den Hintergrund, wichtig sind Prozeduren, die nach endlich vielen Schritten zu einem Resultat f ¨ uhren, also  Algorithmen. Die Diskrete Mathematik verdankt ihren Aufschwung auch den Computer- wissenschaften, f ¨ ur die sie eine wichtige Rolle spielt. Die Theoretische Infor- matik ist besonders an ezienten Algorithmen interessiert, w ¨ ahrend f ¨ ur die Kryptographie algorithmisch schwere Probleme von Bedeutung sind. Literatur M. Aigner (1994): Diskrete Mathematik, Vieweg L. Childs (1979): A Concrete Introduction to Higher Algebra, Springer T. Ihringer (1993): Diskrete Mathematik, Teubner D.E. Knuth (1973,1981): The Art of Computer Programming, Vol. I,II, Addison-Wesley N. Koblitz (1994): A Course in Number Theory and Cryptography, Springer J.H. van Lint (1992): Introduction to Coding Theory, Springer C. Papadimitriou (1994): Computational Complexity, Addison Wesley 1

Transcript of DiskreteMathematik.pdf

  • Diskrete Mathematik

    Gotz Kersting, SS 2005

    Die Diskrete Mathematik behandelt ,diskrete, insbesondere endliche Ob-jekte und Strukturen. Der Name betont den Gegensatz zu den kontinuier-lichen Ansatzen und Methoden in der Mathematik. Die Grenzwertbetrach-tungen der Analysis treten in den Hintergrund, wichtig sind Prozeduren, dienach endlich vielen Schritten zu einem Resultat fuhren, also Algorithmen.Die Diskrete Mathematik verdankt ihren Aufschwung auch den Computer-wissenschaften, fur die sie eine wichtige Rolle spielt. Die Theoretische Infor-matik ist besonders an effizienten Algorithmen interessiert, wahrend fur dieKryptographie algorithmisch schwere Probleme von Bedeutung sind.

    Literatur

    M. Aigner (1994): Diskrete Mathematik, Vieweg

    L. Childs (1979): A Concrete Introduction to Higher Algebra, Springer

    T. Ihringer (1993): Diskrete Mathematik, Teubner

    D.E. Knuth (1973,1981): The Art of Computer Programming, Vol. I,II,Addison-Wesley

    N. Koblitz (1994): A Course in Number Theory and Cryptography, Springer

    J.H. van Lint (1992): Introduction to Coding Theory, Springer

    C. Papadimitriou (1994): Computational Complexity, Addison Wesley

    1

  • Inhaltsverzeichnis

    1 Der Euklidische Algorithmus 41.1 Grote gemeinsame Teiler und der Euklidische Algorithmus . . 41.2 Laufzeit des Euklidischen Algorithmus . . . . . . . . . . . . . 81.3 Ein binarer Algorithmus . . . . . . . . . . . . . . . . . . . . . 91.4 Der Euklidische Algorithmus fur Polynome . . . . . . . . . . . 101.5 Euklidische Ringe . . . . . . . . . . . . . . . . . . . . . . . . . 121.6 Eine geometrische Sicht . . . . . . . . . . . . . . . . . . . . . . 15

    2 Kongruenzen und modulares Rechnen 222.1 Der Restklassenring Zm . . . . . . . . . . . . . . . . . . . . . 222.2 Der Chinesische Restsatz . . . . . . . . . . . . . . . . . . . . . 242.3 Ein probabilistischer Gleichheitstest . . . . . . . . . . . . . . . 262.4 Exakte Losung ganzzahliger Gleichungssysteme . . . . . . . . 272.5 Ein allgemeiner Chinesischer Restsatz . . . . . . . . . . . . . . 292.6 Prime Restklassen . . . . . . . . . . . . . . . . . . . . . . . . . 332.7 Ein probabilistischer Primzahltest . . . . . . . . . . . . . . . . 352.8 Offentliche Chiffriersysteme . . . . . . . . . . . . . . . . . . . 362.9 Zero-Knowledge Beweise . . . . . . . . . . . . . . . . . . . . . 392.10 Faktorzerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . 452.11 Gruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    3 Fehlerkorrigierende Kodes 553.1 Der HammingKode . . . . . . . . . . . . . . . . . . . . . . . 553.2 Die mittlere Fehlerzahl des Hamming-Kodes . . . . . . . . . . 583.3 Lineare Kodes . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.4 Zyklische Kodes . . . . . . . . . . . . . . . . . . . . . . . . . . 66

    4 Endliche Korper 704.1 Eine algebraische Version des Hamming-Kodes . . . . . . . . . 704.2 Die Struktur endlicher Korper . . . . . . . . . . . . . . . . . . 724.3 Konstruktion von endlichen Korpern . . . . . . . . . . . . . . 76

    2

  • 4.4 BCH-Kodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784.5 Spezielle Falle von BCH-Kodes . . . . . . . . . . . . . . . . . 824.6 Elliptische Kurven uber endlichen Korpern . . . . . . . . . . . 84

    5 Lineares Programmieren 905.1 Grundbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . 905.2 Dualitat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925.3 Eckpunkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945.4 Ganzzahliges Programmieren . . . . . . . . . . . . . . . . . . . 965.5 Der Simplex-Algorithmus . . . . . . . . . . . . . . . . . . . . . 102

    3

  • Kapitel 1

    Der Euklidische Algorithmus

    1.1 Grote gemeinsame Teiler und der Eukli-

    dische Algorithmus

    Der Euklidische Algorithmus gehort zu den altesten Rechenverfahren, er warschon Eudoxus (375 v.Chr.) bekannt. Er ist grundlegend und kommt in vielenRechenprozeduren zur Anwendung. Der Algorithmus dient zur Bestimmungvon groten gemeinsamen Teilern. Wir betrachten zunachst den Ring Z derganzen Zahlen. Zur Notation: Man schreibt a | b fur ganze Zahlen a, b, fallsa Teiler von b ist, d.h., falls es ein ganze Zahl c gibt, so dass ac = b.

    Definition 1.1. d Z heit groter gemeinsamer Teiler, kurz ggT derganzen Zahlen a1, . . . , an 6= 0, falls gilt:i) d | a1, . . . , d | an,ii) Gilt z | a1, . . . , z | an fur eine ganze Zahl z, so folgt z | d.Wir schreiben dann d = ggT(a1, . . . , an). Gilt 1 = ggT(a1, . . . , an), so sagtman, a1, . . . , an sind relativ prim oder teilerfremd.

    Aus z | d folgt |z| |d| (wegen a1, . . . , an 6= 0 ist d = 0 ausgeschlossen).In diesem Sinne ist d am groten unter allen Teilern von a1, . . . , an. Ist d

    ein weiterer ggT fur a1, . . . , an, so teilen sich d und d gegenseitig, so dass

    |d| = |d|, also d = d folgt. Der ggT von a1, . . . , an ist daher bis auf dasVorzeichen eindeutig bestimmt.

    Etwas weniger evident ist, dass immer ein groter gemeinsamer Teilerexistiert etwa fur zwei naturliche Zahlen a und b. Man kann Gebrauchmachen davon, dass sich ganze Zahlen in eindeutiger Weise in Primfaktorenzerlegen lassen. Seien p1, . . . , pr die Primzahlen, die in a oder b als Teiler

    4

  • enthalten sind. Dann gilt a = pe11 perr und b = pf11 pfrr mit ganze Zahlene1, . . . , er, f1, . . . , fr 0 (ei = 0 bedeutet, dass pi kein Teiler von a ist),und die gemeinsamen Teiler von a und b haben die Gestalt z = ph11 phrrmit hi {0, 1, . . . , gi}, gi := min(ei, fi). Die beiden groten gemeinsamenTeiler von a und b sind folglich d = pg11 pgrr . Fur explizite Rechnungenist dieses Vorgehen nicht geeignet, denn die Zerlegung einer Zahl in ihrePrimfaktoren ist sehr rechenaufwendig.

    Wir gehen hier anders vor und klaren die Existenzfrage, indem wir einRechenverfahren angeben, dass grote gemeinsame Teiler liefert. Es beruhtauf einer grundlegenden Eigenschaft ganzer Zahlen, der Division mit Rest:Zu ganzen Zahlen a, b 6= 0 gibt es ganze Zahlen m, r, so dass

    a = mb+ r und 0 r < |b|.

    Die Idee des Euklidischen Algorithmus ist es, aus zwei Zahlen den ggT schritt-weise herauszudividieren (durch ,Wechselwegnahme zu gewinnen).

    Euklidischer Algorithmus.

    Eingabe: ganze Zahlen a, b 6= 0.Ausgabe: rj1 = ggT(a, b).

    Verfahren: Setze r1 = a, r0 = b. Bestimme durch Division mit Rest suk-zessive ganze Zahlen r1, . . . , rj1 mit |b| > r1 > > rj1 > rj = 0, biskein Rest mehr bleibt. ri sei also der Rest, der bei Division von ri2 durchri1 entsteht:

    r1 = m1r0 + r1,r0 = m2r1 + r2,

    ...ri2 = miri1 + ri,

    ...rj3 = mj1rj2 + rj1,rj2 = mjrj1,

    mit ganzen Zahlen m1, . . . ,mj. 2

    Da die Divisionsreste ri strikt fallen, bricht das Verfahren nach endlich vielenSchritten ab. Es ist korrekt: rj1 teilt der Reihe nach rj2, rj3, . . . , r0 = bund r1 = a, wie sich sukzessive aus den Gleichungen ri2 = miri1 + riergibt. Teilt umgekehrt z sowohl a wie b, so teilt z der Reihe nach r1, . . . , rj1,wie aus den Gleichungen ri = ri2 miri1 folgt.

    5

  • Beispiel. Fur a = 1736, b = 1484 ergibt das Verfahren

    1736 = 1 1484 + 2521484 = 5 252 + 224252 = 1 224 + 28224 = 8 28 (+0).

    Also28 = ggT(1736, 1484).

    Liest man die Gleichungen von unten nach oben, so erkennt man: 28 | 224,28 | 252, 28 | 1484, 28 | 1736. Liest man von oben nach unten, so ist klar,dass jeder Teiler von 1736 und 1484 auch 28 teilt. 2

    Weiter liefert der Algorithmus eine Darstellung des ggT als Linearkombi-nation: Aus der Gleichung rj3 = mj1rj2 + rj1 lat sich rj2 mittelsrj2 = rj4 mj2rj3 eliminieren. Genauso lassen sich der Reihe nachrj3, . . . , r1 eliminieren, und wir erhalten rj1 als ganzzahlige Linearkom-bination von a und b. Im Beispiel sieht das so aus:

    28 = 252 224 = 6 252 1484 = 6 1736 7 1484.Damit haben wir im Fall n = 2 den folgenden Satz von Bezout bewiesen(Den Fall n > 2 folgt per Induktion, Ubung).

    Satz 1.2. Fur d = ggT(a1, . . . , an) gibt es ganze Zahlen z1, . . . , zn, so dass

    d = z1a1 + + znan.Durch Erweiterung des Euklidischen Algorithmus kann man mit dem ggTzweier Zahlen a und b gleichzeitig seine Darstellung nach dem Satz vonBezout gewinnen. Man bestimme dazu ganze Zahlen s1, . . . , sj1, t1, . . . ,tj1 rekursiv aus den Gleichungen

    s1 = 1, s0 = 0, t1 = 0, t0 = 1,si2 = misi1 + si, ti2 = miti1 + ti,

    unter Benutzung der vom Euklidischen Algorithmus gewonnenen ganzen Zah-len m1, . . . ,mj. Dann gilt

    ggT(a, b) = rj1 = asj1 + btj1.

    Beweis. Es gilt sogar ri = asi+bti fur alle 1 i < j, wie sich per Induktionnach i ergibt: Fur i = 1, 0 folgt dies nach Wahl von s1, s0, t1 und t0, undder Induktionsschritt folgt aus

    ri = ri2 miri1= asi2 + bti2 mi(asi1 + bti1)= asi + bti.

    6

  • Beispiel. a=1736, b=1484.

    i ri1 ri mi+1 si1 si ti1 ti0 1736 1484 1 1 0 0 11 1484 252 5 0 1 1 -12 252 224 1 1 -5 -1 6

    3 224 28 8 -5 6 6 -7

    Also28 = 6 1736 7 1484. 2

    Eine andere Verwendung des Euklidischen Algorithmus besteht darin,rationale Zahlen als Kettenbruche auszudrucken. Dazu formen wir die Divi-sionen ri2 = miri1 + ri des Algorithmus um zu den Gleichungen

    ri2ri1

    = mi +

    (ri1ri

    )1. (1.1)

    Diese Ausdrucke lassen sich ineinander einsetzen, und es entsteht ausgehendvon r1/r0 = a/b die Kettenbruchdarstellung

    a

    b= m1 +

    (r0r1

    )1= m1 +

    1

    m2 +

    (r1r2

    )1 = . . . (1.2)Zum Beispiel ist

    1736

    1484= 1 +

    1

    5 +1

    1 +1

    8Allgemein schreiben wir

    a

    b= m1 +

    1

    m2+

    1

    m3+ 1

    mj1+1

    mj(1.3)

    unter Verwendung der Notation

    m1 +1

    m2+

    1

    m3+ 1

    mj1+1

    mj

    := m1 +1

    m2 +1

    m3 +1

    ...

    mj1 +1

    mj

    7

  • Fur die Berechnung der Kettenbruche braucht man nicht auf den Eukli-dischen Algorithmus zuruckzugreifen. Wir formen (1.1) um zu der Gleichung

    i = mi + 1i+1, i = 1, . . . , j 1, mit i :=

    ri2ri1

    .

    Da die Reste ri strikt fallen, gilt i+1 > 1 fur i 1, und es folgt

    mi = [i], i+1 = (i mi)1.

    Ausgehend vom Startwert 1 = a/b kann man so m1,m2, . . . rekursiv berech-nen. Diese Prozedur heit Kettenbruchalgorithmus.

    1.2 Laufzeit des Euklidischen Algorithmus

    Der Euklidische Algorithmus fuhrt sehr schnell zum Resultat, die Anzahlder benotigten Divisionen hat eine Groe, die nur logarithmisch von denEingabedaten a und b abhangt. Dies zeigt eine worst-case Analyse des Algo-rithmus. Besonders ungunstige Falle erhalt man mit den FibonacciZahlen0,1,1,2,3,5,8,13,21,34,55,. . .

    Definition 1.3. Die FibonacciZahlen F0, F1, . . . sind rekursiv definiertals F0 := 0, F1 := 1 und Fi := Fi1 + Fi2 fur i 2.Bei der Wahl a = Fj+2, b = Fj+1 ergeben sich fur den Euklidischen Algorith-mus folgende j Divisionen

    a = b+ Fj,b = Fj + Fj1,

    ...Fji+3 = Fji+2 + Fji+1,

    ...F4 = F3 + F2,F3 = 2F2,

    denn abgesehen von F1 = F2 = 1 sind die FibonacciZahlen strikt wachsend,so dass Fi = Fi1+Fi2 die Division von Fi durch Fi1 mit Rest ist. Es folgt1 = ggT(Fj+2, Fj+1). Im vorliegenden Fall gilt m1 = = mj1 = 1, mj = 2und rj1 = 1, und dies sind die minimal moglichen Werte, denn mj = 1 istbeim Euklidischen Algorithmus in der letzten Division ausgeschlossen.

    8

  • Fur die Fibonacci-Zahlen gilt die bemerkenswerte Formel

    Fi =15

    [(1 +

    5

    2

    )i(15

    2

    )i ].

    Der Beweis ergibt sich leicht per Induktion. Die Falle i = 0 und 1 pruft mandirekt nach. Auerdem erfullt der angegebene Ausdruck fur Fi die rekursivenGleichungen der Fibonacci-Zahlen. Dies liegt daran, dass die Zahlen

    1 :=1 +

    5

    2, 2 :=

    152

    die Gleichung 2 = + 1 und folglich i = i1 + i2 erfullen.

    Satz 1.4. Der Euklidische Algorithmus benotigt bei der Eingabe a > b > 0

    hochstens c ln(b5) Divisionen, mit c =

    (ln 1+

    5

    2

    )1 2, 08.Beweis. Fur die Divisionsreste gilt ri Fji+1, i j 1, wie man perInduktion von i = j1 bis i = 1 zeigt: Es gilt rj1 1 = F2, rj2 2 = F3,sowie im Induktionsschritt

    ri1 = mi+1ri + ri+1 Fji+1 + Fji = Fji+2.

    Insbesondere folgt b = r0 Fj+1. Aus obiger Formel fur Fj erhalt man

    15

    (1 +

    5

    2

    )j= Fj +

    15

    (15

    2

    )j Fj + 1 b

    (es gilt 2 0, 618) bzw.

    j ln1 +

    5

    2 ln(b

    5).

    2

    Der Beweis zeigt: Fur jedes Paar a > b > 0 von Zahlen, fur das derEuklidische Algorithmus genau j Divisionen braucht, gilt b Fj+1 und a Fj+2.

    1.3 Ein binarer Algorithmus

    Fur den Computer ist Euklids Algorithmus in den ganzen Zahlen nicht dasgunstigste Verfahren. Divisionen mit Rest sind vergleichsweise rechenaufwen-dig. Der folgende Algorithmus benotigt nur Divisionen durch 2, sie sind auf

    9

  • einem Rechner besonders schnell zu realisieren, da er Zahlen in Dualdarstel-lung verarbeitet. Die Idee ist, a und b schrittweise zu verkleinern auf eineArt, dass sich der ggT in kontrollierbarer Weise verandert. Im ersten Schrittnimmt man aus a und b den gemeinsamen geraden Anteil hinaus, gema derRegel

    a, b gerade, d = ggT(a, b) d = 2 ggT(a/2, b/2).Anschlieend verkleinert man a und b schrittweise, ohne den ggT noch zuverandern. Ist a gerade und b ungerade, so ersetzt man a durch a/2 und latb unverandert. Der ggT andert sich nicht, denn

    a gerade, b ungerade, d = ggT(a, b) d = ggT(a/2, b).Der Fall a ungerade, b gerade ist analog. Sind a und b beide ungerade, sobenutzen wir die Regel

    d = ggT(a, b) d = ggT(a b, b).Wir ziehen dann die kleinere der Zahlen von der groeren ab. Diese Regelnkommen abwechselnd zu Zuge, wie das folgende Beispiel zeigt.

    ggT(1736, 1484) = 4 ggT(434, 371) = 4 ggT(217, 371)= 4 ggT(217, 154) = 4 ggT(217, 77) = 4 ggT(140, 77)= 4 ggT(35, 77) = 4 ggT(35, 42) = 4 ggT(35, 21)= 4 ggT(14, 21) = 4 ggT(7, 21) = 4 ggT(7, 14)= 4 ggT(7, 7) = 28.

    1.4 Der Euklidische Algorithmus fur Polyno-

    me

    Der binare Algorithmus ist an die Computerarithmetik angepat und benutztspezielle Eigenschaften der ganzen Zahlen. Die Starke des Euklidischen Al-gorithmus besteht darin, dass er sich auch in anderen Rechenbereichen alsdem der ganzen Zahlen anwenden lat. Wir betrachten nun Polynome inder Variablen x mit rationalen Koeffizienten (oder allgemeiner mit Koeffizi-enten in einem Korper K). Ein rationales Polynom ist gegeben durch einenAusdruck der Gestalt

    f(x) = anxn + an1xn1 + + a1x+ a0

    mit n N und ai Q, i = 0, . . . , n. Glieder aixi mit dem Koeffizienten ai = 0durfen aus der Summe weggelassen bzw. zur Summe beliebig hinzugefugtwerden. Wir betrachten also zwei Polynome als identisch, falls sie dieselbenGlieder haben, abgesehen von Summanden mit dem Koeffizienten 0.

    10

  • Bemerkung. Es ist hier weder notig noch angemessen, sich Polynome wiein der Analysis als Funktionen vorzustellen. Wir fassen Polynome als for-male Ausdrucke auf. Dieser Unterschied in der Auffassung macht sich zwarfur rationale Polynome nicht bemerkbar, sehr wohl jedoch fur Polynome mitKoeffizienten in anderen Korpern. So gilt f(0) = f(1) = 0 fur das Polynomf(x) = x(x + 1) = x2 + x mit Koeffizienten aus dem Korper Z2 = {0, 1},es nimmt nur den Wert 0 an. Dennoch ist dieses Polynom vom Nullpolynomverschieden. 2

    Mit Polynomen kann man rechnen wie mit ganzen Zahlen. Zwei Polynomef(x) = anx

    n + + a0 und g(x) = bmxm + + b0 lassen sich addieren undmultiplizieren:

    (f + g)(x) := (an + bn)xn + + (a0 + b0)

    (o.E.d.A. kann man m = n annehmen) und

    (fg)(x) := cm+nxm+n + + c0, mit ci :=

    j+k=i

    ajbk.

    Es bereitet keine Muhe, die bekannten Rechenregeln fur Zahlen auf Polynomezu ubertragen, Assoziativitat, Kommutativitat, Distributivitat. Die Rolle derZahl 0 ubernimmt das Nullpolynom, dessen Koeffizienten alle verschwin-den. Insgesamt haben wir den Ring Q[x] der rationalen Polynome konstruiert(zur Definition eines Ringes vergleiche den folgenden Abschnitt).

    Um eine Division mit Rest fur Polynome einzufuhren, definieren wir denGrad deg(f) eines vom Nullpolynom verschiedenen Polynoms f(x) = anx

    n+ + a0. Er ist die grote Zahl i, so dass ai 6= 0. Das zugehorige ai heitAnfangskoeffizient von f .

    Seien nun f, g 6= 0 Polynome vom Grade n und m, mit Anfangskoeffizi-enten an und bm. Falls n m, konnen wir g aus f hinausdividieren, also dasPolynom

    h(x) = f(x) anb1m xnmg(x)bilden. Offenbar hat h einen kleineren Grad als f . Gilt deg(h) m, so kanng aus h ein weiteres Mal hinausdividiert werden. Dies lat sich fortsetzen, bisein Polynom r vom Grade kleiner m oder aber das Nullpolynom ubrigbleibt.Wir erhalten wie fur die ganzen Zahlen eine Division mit Rest: Zu ratio-nalen Polynomen f(x), g(x) 6= 0 existieren rationale Polynome m(x), r(x), sodass

    f(x) = m(x)g(x) + r(x), mit deg(r) < deg(g) oder r(x) = 0.

    11

  • Der Euklidische Algorithmus lat sich nun auch auf rationale Polynomeanwenden. Da sich der Grad der Restpolynome bei jeder Division verkleinert,bricht er nach endlich vielen Schritten ab, seine Laufzeit ist durch den Graddes Polynoms g beschrankt. Wie fur ganze Zahlen konnen wir also feststellen:Zwei rationale Polynome f(x), g(x) 6= 0 besitzen einen ggT d(x), und es gibtrationale Polynome s(x) und t(x), so dass

    d(x) = s(x)f(x) + t(x)g(x).

    Beispiel. Seien a > b > 0 naturliche Zahlen. Wir wollen den ggT von xa1und xb 1 berechnen. Sei a = mb+ r die Division von a durch b mit Rest r.Fur die Division von xa 1 durch xb 1 erhalten wir

    xa 1 = (xab + xa2b + + xamb)(xb 1)+ xr 1.Der Rest ist xr1, er verschwindet genau dann, wenn r = 0 ist, und ist sonstvon demselben Typ wie die beiden Polynome, von denen wir ausgegangensind. Der Euklidische Algorithmus, angewandt auf xa 1 und xb 1, lauftdaher parallel ab zum Euklidischen Algorithmus, angewandt auf a und b.Insbesondere folgt

    xggT(a,b) 1 = ggT(xa 1, xb 1).2

    Diese Uberlegungen gelten nicht nur fur rationale Polynome, die Koeffizien-ten konnen genauso gut reelle oder komplexe Zahlen sein. Fur die Divisionmit Rest langt es, dass die Koeffizienten einem Korper K angehoren, dennin Korpern kann man wie in den reellen Zahlen addieren, multiplizieren unddividieren (die Definition eines Korpers wiederholen wir im nachsten Ab-schnitt). Spater werden insbesondere endliche Korper wichtig.

    Dagegen hat man im Ring Z[x] aller Polynome f(x) = anxn + + a0,deren Koeffizienten ai ganze Zahlen sind, im allgemeinen keine Division mitRest, denn der Kehrwert b1m des Anfangskoeffizienten von g(x) lat sich inden ganzen Zahlen nur bilden, falls bm = 1 ist.

    1.5 Euklidische Ringe

    Eine Division mit Rest hat man nicht nur fur die ganzen Zahlen und furPolynome. Allgemein nennt man die Bereiche, in denen eine Division mit Restmoglich ist, Euklidische Ringe. Wir rekapitulieren kurz diese Terminologieaus der Algebra.

    12

  • Sei G eine Menge mit einer binaren Verknupfung. Je zwei Elementena, b aus G seien also ein Element ab (ihr ,Produkt) zugeordnet. Gilt Asso-ziativitat (ab)c = a(bc), so heit G (zusammen mit der Verknupfung) eineHalbgruppe. Ein neutrales Element e G ist durch die Eigenschafta = ea = ae fur alle a G gekennzeichnet. G kann hochstens ein neutralesElement besitzen, denn fur neutrale Elemente e, e folgt e = ee = e. Gibt eszu a G ein b G, so dass ab = ba = e, so heit b das inverse Elementvon a. Ist auch b invers zu a, so folgt b = b(ab) = (ba)b = b, das inverseElement ist also eindeutig. Man schreibt b = a1. Enthalt eine HalbgruppeG ein neutrales Element, und besitzt jedes a G ein inverses Element, sonennt man G eine Gruppe. Es gilt dann (ab)1 = b1a1. Ist in G zusatzlichnoch Kommutativitat ab = ba fur alle a, b gegeben, so heit G eine abelscheGruppe.

    Sei nun R eine Menge, die wie die ganzen Zahlen mit zwei binaren Ope-rationen a + b und ab (,Addition und ,Multiplikation) versehen ist. Dannheit R (zusammen mit + und ) ein Ring, falls gilt:i) R ist in Bezug auf die Addition eine abelsche Gruppe, mit neutralem

    Element 0. Jedes a R besitzt also ein ,entgegengesetztes Element a,so dass a+ (a) = 0 (das inverse Element bzgl. der Addition).

    ii) R ist in Bezug auf die Multiplikation eine Halbgruppe.

    iii) Es gilt Distributivitat: a(b+ c) = ab+ ac, (a+ b)c = ac+ bc.

    Man schreiben a b fur a + (b) und a | b, wenn es ein c R mit ac = bgibt. Es gilt

    a 0 = 0 a = 0(beachte a 0 + a a = a(0 + a) = a a), ein Produkt ist also 0, falls einFaktor 0 ist. Die Umkehrung ist im Allgemeinen nicht richtig, wir werdenRinge kennenlernen, in denen ab = 0 gelten kann fur zwei Elemente a, b 6= 0.a und b heien dann Nullteiler. Ringe ohne Nullteiler haben den Vorteil,dass man in ihnen kurzen darf: Aus ac = bc folgt (a b)c = 0 und damita = b, sofern c kein Nullteiler ist.

    Wir werden uns nur mit Ringen befassen, die ein Einselement enthalten.Ein Einselement 1 R {0} in einem Ring R ist ein neutrales Elementbzgl. der Multiplikation in R {0}, es erfullt also 1a = a1 = a fur allea 6= 0. Diejenigen a R {0}, die bzgl. der Multiplikation ein Inverses a1besitzen, heien die Einheiten des Ringes. Die Menge R aller Einheiten isteine Gruppe: Fur a, b R ist b1a1 invers zu ab.

    In manchen Ringen ist das Kommutativitatsgesetz verletzt. Ist die Mul-tiplikation kommutativ, ab = ba, so spricht man von einem kommutativen

    13

  • Ring. Ein kommutativer Ring ohne Nullteiler mit Einselement heit Inte-gritatsbereich. Besitzt jedes Element a 6= 0 eines Integritatsbereiches R einInverses a1, gilt also R = R {0}, so nennt man R einen Korper.Beispiel. Sei R ein Ring. Dann ist auch die Menge aller Polynome f(x) =anx

    n+ +a1x+a0 mit ai R ein Ring, der Polynomring R[x]. Zwei Poly-nome gelten als gleich, wenn sie sich nur um Summanden unterscheiden, derenKoeffizienten 0 sind. Addition und Multiplikation werden wie in Abschnitt1.4 definiert. R ist in R[x] durch die Polynome vom Grad 0 eingebettet. EinEinselement in R ist auch Einselement in R[x], und es gilt R[x] = R. Mansagt, R[x] entsteht aus R durch Adjunktion der Unbestimmten x. 2

    Definition 1.5. Ein Integritatsbereich R heit Euklidischer Ring, fallsjedem a R {0} eine nicht-negative ganze Zahl g(a) zugeordnet ist, undfalls zu beliebigen a, b R {0} Ringelemente m, r existieren, so dass gilt:a = mb+ r und entweder r = 0 oder g(r) < g(b).

    Unsere Uberlegungen uber grote gemeinsame Teiler ubertragen sich voll-standig auf Euklidische Ringe. Man hat erneut den Euklidischen Algorithmuszur Verfugung, daher existieren grote gemeinsame Teiler im Sinne der De-finition 1.1, und es gilt der Satz von Bezout: Fur a, b 6= 0 und d = ggT(a, b)gibt es s, t R, so dass

    d = sa+ tb.

    Man uberzeugt sich leicht, dass grote gemeinsame Teiler bis auf Einheiteneindeutig bestimmt ist.

    Beispiele.

    1) Z ist ein Euklidischer Ring, mit g(a) := |a|.2) Sei K ein Korper (etwa Q,R,C oder Z2 = {0, 1}). Dann ist der Polynom-

    ring K[x] ein Euklidischer Ring, mit g(f) := deg(f) (vergleiche Abschnitt1.4).

    3) Die ganzen Gauschen Zahlen, also die komplexen Zahlen z = x+ iy mitx, y Z, bilden bzgl. der komplexen Addition und Multiplikation einenEuklidischen Ring, mit g(z) := |z|2 = x2 + y2 (Ubung). 2

    14

  • 1.6 Eine geometrische Sicht

    Seien a, b teilerfremde ganze Zahlen. Nach dem Satz von Bezout gibt es dannganze Zahlen s, t, so dass as+bt = 1 gilt, bzw. (nach Wechsel von Vorzeichen)ganze Zahlen a, b, so dass

    ab ba = 1gilt. In diesem Abschnitt liefern wir einen geometrischen Kontext.

    Wir betrachten das 2-dimensionale Gitter

    G = {(x, y) : x, y Z}aller Tupel (x, y) mit ganzzahligen Komponenten. Jeder Gitterpunkt v =(x, y) hat die Darstellung v = xe+ ye mit

    e := (1, 0) , e := (0, 1)

    und x, y Z. Man sagt, e, e bilden eine Gitterbasis. Allgemeiner heienGitterpunkte

    g = (a, b) , g = (a, b)

    eine Gitterbasis, falls fur alle v G ganze Zahlen x, y gibt, so dassv = xg + yg

    gilt. Diese Darstellung ist dann nach der Linearen Algebra notwendigerweiseeindeutig. Wir fragen, wann g, g eine Gitterbasis bilden. Dazu ist es offenbarnotwendig wie hinreichend, dass es ganze Zahlen x, y, x, y gibt, so dass

    e = xg + yg , e = xg + yg

    gilt, oder in MatrixSchreibweise( 1 00 1

    )=( x yx y

    )( a ba b

    ).

    Mit anderen Worten: Notwendig und hinreichend ist, dass die aus a, b, a, b

    gebildete Matrix eine Inverse besitzt, deren Eintrage zudem ganzzahlig sind.Fur die Determinanten folgt 1 = (xy yx)(ab ba), so dass wir die Be-dingung ab ba = 1 als notwendig erkennen. Sie ist auch hinreichend, wieman der Gleichung( a b

    a b)1

    =1

    ab ba( b ba a

    )entnimmt. Wir halten fest: g und g bilden genau dann eine Gitterbasis, wenn

    ab ba = 1gilt.

    15

  • Bemerkung. Bekanntlich ist ab ba der (orientierte) Flacheninhalt desvon g und g in der Ebene aufgespannten Parallelogramms. g und g bildenalso genau dann eine Gitterbasis, wenn dieser Flacheninhalt gleich 1 ist. 2

    Eine notwendige Bedingung, g G zu einer Gitterbasis erganzt zu konnen,ist offenbar, dass a und b relativ prim sind. In diesem Fall nennt man g sicht-bar, denn dann befindet sich auf der Verbindungsstrecke zwischen g und demGitterursprung 0 := (0, 0) kein weiterer Gitterpunkt (und ein Beobachter imUrsprung kann g sozusagen sehen).

    Der Satz von Bezout besagt, dass die Bedingung auch hinreichend ist:Jeder sichtbare Gitterpunkt g lasst sich zu einer Gitterbasis g, g erganzen(die Aussage gilt analog fur hoherdimensionale Gitter). Wir konnen den Satznun auch auf geometrische Art beweisen.

    Dazu stellen wir ein weiteres Kriterium auf dafur, dass Gitterpunkte eineGitterbasis bilden und definieren das von g, g aufgespannte Dreieck als

    [g, g] := {g + g : 0 , 0 , + 1} .Wir behaupten: g, g bilden eine Gitterbasis, falls [g, g] nicht entartet istund von den Gitterpunkten nur 0, g und g (also seine Eckpunkte) enthalt.Ist namlich g, g Gitterbasis, so durchlauft xg+yg, x, y Z alle Gitterpunkteund in [g, g] genau die Eckpunkte. Ist andererseits g, g keine Gitterbasis, soist entweder g, g uberhaupt keine Basis im gewohnlichen Sinne der LinearenAlgebra - dann entartet [g, g] zu einer Linie - oder es gibt einen Gitterpunktv = (x + )g + (y + )g mit x, y Z, , [0, 1), so dass und nicht gleichzeitig 0 sind. Dann sind auch g + g = v xg yg und(1 )g + (1 )g = (x+ 1)g + (y + 1)g v Gitterpunkte, und einer vonbeiden liegt in [g, g], ohne Eckpunkt zu sein.

    Man kann den Satz von Bezout nun folgendermaen begrunden: Ist gsichtbarer Gitterpunkt und v weiterer Gitterpunkt. Wahle in [g, v] einenGitterpunkt g 6= g, 0, der moglichst nahe an der Strecke von 0 nach g liegt.Dann enthalt [g, g] keinen zusatzlichen Gitterpunkt, und g, g ist Gitter-basis.

    Beispiel. Die FareyReihe. Wir betrachten zu vorgegebener naturlicherZahl n alle Bruche a/b in gekurzter Form mit

    0 a b n .In aufsteigender Folge 0 = a1/b1 < a2/b2 < < ak/bk = 1 heien sie dieFareyReihe Fn. Zum Beispiel ist F5

    0

    1,1

    5,1

    4,1

    3,2

    5,1

    2,3

    5,2

    3,3

    4,4

    5,1

    1.

    16

  • Die zugehorigen Gitterpunkte (bi, ai) durchlaufen alle sichtbaren Gitterpunk-te im Dreieck [(n, 0), (n, n)], mit wachsender Steigung geordnet. Fur zweibenachbarte Bruche a/b und a/b in einer FareyReihe enthalten damit dieDreiecke [(b, a), (b, a)] keine weiteren Gitterpunkte, und es folgt

    ab ba = 1 .2

    Ein Euklidischer Algorithmus in der Ebene. Wir betrachten nun dieFrage, wie man eine Zahl > 0 moglichst genau durch Bruche a/b annahernkann. Der Ansatz ist geometrisch: Gesucht werden Gitterpunkte v = (b, a),die besonders nahe an der durch die Gleichung y = x gegebenen Geradenliegen, so dass also

    d(v) := |a b|besonders klein wird (bzw. d(v)/

    1 + 2, der Abstand zwischen v und der

    Geraden).

    -

    6

    r r r r rr r r r rr r r r rr r r r rh

    h

    v

    d(v)

    y = x

    #############

    Dazu betrachten wir einerseits die konvexe Hulle Ko R2+ aller Gitter-punkte ungleich 0 oberhalb der Geraden im positiven Quadranten (also diekleinste konvexe Menge, die all diese Gitterpunkte enthalt),

    Ko := kH{(b, a) G : a b , a > 0}sowie die analoge konvexe Menge unterhalb der Geraden,

    Ku := kH{(b, a) G : b a , b > 0} .Der Rand von Ko oberhalb der Geraden ist ein konvexer Streckenzug o mitEckpunkten, den Extremalpunkten von Ko, die wir mit g0 = (0, 1), g2 =(b2, a2), g4 = (b4, a4), . . . bezeichnen, und der Rand von Ku ist ein konka-ver Streckenzug u mit den Eckpunkten g1 = (1, 0), g1 = (b1, a1), g3 =(b3, a3), . . .

    17

  • -6

    rr r r

    rr

    r

    p p p p p p p pp p p p p p p pp p p p p p p pp p p p p p p pp p p p p p p p

    o u

    ...........................................................................................

    ............................

    ............................

    ............................

    ............................

    ............................

    ............................

    .............................

    ..............................

    ..............................

    ..............................

    ..............................

    ..............................

    ..............................

    .....................

    ...........................................................................................

    ..................................

    ..................................

    ..................................

    ..............................

    ..............................

    ..............................

    ..............................

    ..............................

    ..............................

    ..............................

    ..............................

    ..............................

    ..............................

    ........................

    Diese Folge der Eckpunkte bieten sich an als Kandidaten fur Bruche ai/bi, die besonders gut approximieren. Es ist geometrisch klar, dass die Eckpunktesichtbare Gitterpunkte sind, dass es sich also um gekurzte Bruche handelt.

    Bemerkenswerterweise lassen sich die Eckpunkte nach Art des Euklidi-schen Algorithmus bestimmen. Wir betrachten dazu folgende geometrischeKonstruktion.

    Konstruktion. v1 = (b1, a1), v2 = (b2, a2) seien zwei Punkte in R2+, dienicht auf derselben Seite der Geraden y = x liegen, also

    a1b1

    < >a2b2.

    Setze v3 = v1 +mv2, wobei m die grote ganze Zahl sei, so da v3 noch aufderselben Seite der Geraden liegt wie v1. Dann gilt

    d(v1) = md(v2) + d(v3), 0 d(v3) < d(v2).

    Im Falle d(v1) d(v2), also m 1, gilta1b1

    a3b3 .

    2

    d(v3) berechnet sich also aus d(v1) und d(v2) nach demselben Schema wie beider Division mit Rest fur die ganzen Zahlen. Die beiden letzten Ungleichun-gen ergeben sich daraus, da die Steigung des Vektors v3 zwischen und derSteigung von v1 liegt. Das folgende Bild verdeutlicht die Situation im Falla1/b1 < < a2/b2.

    18

  • -6

    ,,,,,,,,,,,,,

    ,,,,,

    v1

    v2

    v3 = v1 + 2v2

    d(v1) = 2d(v2) + d(v3)

    y = x

    :

    Durch wiederholte Anwendung der Konstruktion entsteht aus den Startwer-ten (1, 0) und (0, 1) eine ganze Folge von Gitterpunkten.

    Euklidischer Algorithmus in der Ebene.

    Eingabe: > 0

    Ausgabe: v1 = (b1, a1), v2 = (b2, a2), . . .

    Verfahren: Setze v1 = (1, 0), v0 = (0, 1). Bestimme m1,m2, . . . N0,r1, r2, . . . 0 und v1 = (b1, a1), v2 = (b2, a2) . . . N20 rekursiv aus denGleichungen

    d(vi2) = mid(vi1) + ri, 0 ri < d(vi1) undvi = mivi1 + vi2,

    i = 1, 2 . . . Gilt rj = 0, so beende die Prozedur. 2

    Wegen d(v1) = und d(v0) = 1 ist m1 = [] und v1 = (1, []). Fur ganz-zahliges bricht das Verfahren bereits ab. Andernfalls ergibt sich die Un-gleichung d(v0) = 1 > d(v1) = [], und unsere Konstruktion kommt zumZuge. Es folgt schrittweise d(vi+1) = ri+1 < d(vi), und folglich nach unsererKonstruktionsvorschrift m2,m3, . . . 1. Die zugehorigen Naherungsbruchenahern sich und liegen abwechselnd oberhalb und unterhalb von ,

    a1b1

    (2100)100 = 210.000, nach Annahme folgt daher a = b. In diesem Fall istein Ubertragungsfehler ausgeschlossen.

    26

  • Eine Fehlentscheidung ist also nur moglich, falls es weniger als 100 Prim-zahlen q > 2100 mit der Eigenschaft a b mod q gibt, und eine Fehlentschei-dung tritt nur dann ein, wenn das Verfahren zufalligerweise nur derartigePrimzahlen auswahlt. Nach dem beruhmten Primzahlsatz gilt fur die An-zahl pi(x) aller Primzahlen q < x die asymptotische Formel pi(x) x/ lnx.Zwischen 2100 und 2101 gibt es daher approximativ

    pi(2101) pi(2100) 2101

    ln 2101 2

    100

    ln 2100 2

    100

    100 ln 2 9, 90 1027

    Primzahlen. Bei k-facher unabhangiger Wahl einer Primzahl ist die Fehler-wahrscheinlichkeit also hochstens(

    99

    9, 90 1027)k

    = 1026k.

    Schon fur k = 1 ist dies verschwindend klein.

    2.4 Exakte Losung ganzzahliger Gleichungs-

    systeme

    Wir losen nun lineare Gleichungsysteme mit modularer Arithmetik. Sei A =(aij) eine ganzzahlige n n Matrix mit detA 6= 0, und sei b = (b1, . . . , bn)tein ganzzahliger Vektor. Dann ist das lineare Gleichungssystem

    Ax = b

    mit x = (x1, . . . , xn)t eindeutig in den rationalen Zahlen losbar. Das bekann-

    teste Losungsverfahren ist das Gausche Eliminationsverfahren. Es kann inden Zwischenrechnungen zu so groen Werten fuhren, da es nicht mehr inexakter Weise gelingt. Bei Verwendung von Gleitkomma-Arithmetik kann essehr ungenaue Ergebnisse liefern.

    Es liegt daher nahe, das Gausche Verfahren in modularer Arithmetikdurchzufuhren. Der Hauptanteil der arithmetischen Operationen kann so mitkleinen Zahlen vollzogen werden. Unser Ausgangspunkt ist die CramerscheRegel, nach der die Losung durch

    xj = (detA)1

    i

    bi detAij

    gegeben ist; dabei bezeichnet Aij die Matrix, die aus A durch Streichen deri-ten Zeile und der j-ten Spalte entsteht. Es genugt daher, detA und den

    27

  • ganzzahligen Vektor y = detA x zu bestimmen. Man erhalt y als eindeutigeganzzahlige Losung des Gleichungssystems

    Ay = detA b.Das Verfahren besteht aus mehreren Schritten.

    1) Wahle Primzahlen p1, . . . , pk (und zwar an der Grenze der verfugbarenZahlen: Hat der Computer Wortlange 64, so wahle man die pi zwischen263 und 264).

    2) Lose des Gleichungssystems modulo pi. Bringe dazu die erweiterte Koef-fizientenmatrix (A, b) modulo pi auf obere Dreiecksform:

    (A, b) 7 (Ai, bi) =

    a11 a

    12 . . . a

    1n b

    1

    0 a22 . . . a2n b

    2

    .... . . . . .

    ......

    0 . . . 0 ann bn

    Dies lat sich erreichen, indem man das Gausche Eliminationsverfahrenmodulo pi durchfuhrt. Das Verfahren besteht bekanntlich aus der Additi-on von Vielfachen einer Matrixzeile zu einer anderen Zeile und dem Aus-tausch von Zeilen. Diese Operationen lassen sich in Vektorraumen mit be-liebigem Skalarbereich durchfuhren. In unserem Fall ist der Skalarbereichder Korper Zpi . Die Addition einer Zeile zu einer anderen lat detA un-verandert, wahrend Zeilenvertauschungen das Vorzeichen von detA wech-seln. Fur den Rest di von a

    11a

    22 ann modulo pi folgt also

    di detA mod pi(+ bei einer geraden, bei einer ungeraden Anzahl von Zeilenvertauschun-

    gen). Eine Losung y(i) = (y(i)1 , . . . , y

    (i)n ) des Gleichungssystems modulo pi

    erhalt man nun schrittweise aus den Gleichungen

    y(i)n dibn/ann mod pi...

    y(i)1 (dib1

    nj=2

    a1jy(i)j )/a

    11 mod pi

    Fur die Divisionen werden die inversen Elemente von ann, . . . , a11 in Zpi

    benotigt. Sie existieren, falls di 6 0 mod pi. Der Ausnahmefall di 0 modpi tritt nur fur Primteiler pi von detA ein, man verwerfe dann pi.

    28

  • 3) Nur in diesem Schritt sind Rechnungen mit groen Zahlen erforderlich.Setze m = p1 pk. Bestimme nach dem Chinesischen Restsatz ganzeZahlen d und y1, . . . , y

    n zwischen m/2 und m/2, so da fur alle i

    d di mod pi und yj y(i)j mod pi.Dann folgt

    d detA mod m und y detA b mod m,

    4) Die Zahl d und der Vektor y sind Kandidaten fur detA und y. Mit demprobabilistischen Gleichheitstest aus Abschnitt 3.3 kann man dies uber-prufen. Man wahlt dazu zufallig eine weitere Primzahl pk+1 und testet,ob Ay d b mod pr+1 gilt. Bestehen d und y diesen Test, so wirddie Prozedur mit der

    Ausgabe: x = d1 y

    beendet. Andernfalls wird die Prozedur mit der erweiterten Primzahlfol-ge p1, . . . , pk+1 wiederholt. Die Fehlerwahrscheinlichkeit dieses Tests istvernachlassigbar klein, ahnlich wie die des Gleichheitstests im letzten Ab-schnitt.

    2.5 Ein allgemeiner Chinesischer Restsatz

    Die Grundidee der letzten Abschnitte war es, die ganzen Zahlen so in Klas-sen aufzuteilen, da man mit diesen Klassen in ahnlicher Weise wie mit denZahlen rechnen kann. Man mu nur darauf achten, da sich die Klassenbil-dung mit der Addition und Multiplikation ganzer Zahlen vertragt, im Sinnevon Satz 2.2. Diese einfache Idee bewahrt sich auch in anderen Rechenberei-chen. Fur Polynomringe wird sie sich spater als nutzlich erweisen, in diesemAbschnitt betrachten wir Restklassenbildung in beliebigen Ringen.

    Sei eine Aquivalenzrelation in einem Ring R. Die Aquivalenzklasse, inder a liegt, bezeichnen wir wieder mit a. Wir setzen voraus, da sich dieRelation mit Addition und Multiplikation vertragt, da also

    a1 a2, b1 b2 a1 + b1 a2 + b2, a1b1 a2b2 (2.1)gilt. Dann konnen wir erneut durch a + b := a+ b, a b := ab in wohldefi-nierter Weise Addition und Multiplikation von Aquivalenzklassen einfuhren.Die Aquivalenzklassen bilden einen Ring R. Es ist offensichtlich, da sichAssoziativ-, Distributiv- und Kommutativgesetze von R auf R ubertragen,

    29

  • wir haben dies bereits fur den Restklassenring Zm festgestellt. Das Null-element in R ist die Restklasse 0, denn a + 0 = a, und aus a b folgta (a) + b + (b) (a) + a + (b) b, so da a := a wohldefi-niert ist. Besitzt R ein Einselement 1, so ist 1 Einselement in R.

    Wir wollen nun die Aquivalenzrelationen charakterisieren, die (2.1) erful-len. Es gilt a b genau dann, wenn ab 0, daher ist die Aquivalenzrelationbereits durch die Teilmenge I := 0 von R eindeutig gekennzeichnet. AlsNullelement von R hat I folgende Eigenschaften:

    a, b I a+ b I, denn a 0, b 0 a+ b 0 + 0 = 0,a I a I, denn a 0 a 0 = 0,a I, b R ab, ba I, denn a 0 ab 0b = 0.

    Definition 2.5. Eine nichtleere Teilmenge I eines Ringes R heit Ideal,falls gilt:

    a, b I a+ b I,a I a Ia I, b R ab, ba I.

    Ist umgekehrt I ein Ideal, so wird, wie man leicht nachpruft, in R durcha b : a b I eine Aquivalenzrelation erklart. Wir schreiben dann

    a b mod I

    und nennen a und b kongruent modulo I. Die Relation ist mit Additionund Multiplikation vertraglich, denn aus a1b1, a2b2 I folgt a1+a2(b1+b2) I und a1a2b1b2 = a1(a2b2)+(a1b1)b2 I. Insgesamt erkennen wir,da eine eineindeutige Beziehung besteht zwischen Idealen und denjenigenAquivalenzrelationen, die (2.1) erfullen. Die Aquivalenzklassen nennt manRestklassen. Sie sind gegeben durch a = a+I, a R, wir schreiben sie auchals a mod I. Der Ring der Restklassen wird als Faktorring R/I bezeichnet.Speziell erhalten wir bei der Wahl R = Z und I = mZ den RestklassenringZm.

    Die Abbildung a 7 a von R nach R/I ist, wie wir gesehen haben, mitAddition und Multiplikation vertraglich. Man spricht von einem Homomor-phismus.

    Definition 2.6. Seien R,R Ringe. Eine Abbildung : R R heit Ring-Homomorphismus, falls (a+ b) = (a)+(b) und (ab) = (a) (b) furalle a, b R gilt. Ist bijektiv, so spricht man von einem Isomorphismusund schreibt R = R.

    30

  • Ein Homomorphismus von R nach R induziert seinerseits in R eine Aquiva-lenzrelation: a b : (a) = (b). Hier entsprechen Restklassen Elementenaus R, das zugehorige Ideal ist ker() := {a R : (a) = 0}, der Kern derAbbildung. Wir erhalten so den Homomorphiesatz fur Ringe.

    Satz 2.7. Sei : R R ein Homomorphismus, dann ist ker() ein Idealund R/ker() = bild() := {(a) : a R}.Wir beweisen nun eine allgemeine Version des Chinesischen Restsatzes. Dazuvereinbaren wir die folgende Sprechweise: Zwei Ideale I1, I2 heien teiler-fremd, falls

    R = I1 + I2

    gilt, mit I1 + I2 := {r + s : r I1, s I2}.Satz 2.8. Sei R ein Ring mit Einselement 1 und seien I1, . . . , Ik R paar-weise teilerfremde Ideale. Dann gibt es zu a1, . . . , ak R ein a R, so dadas Kongruenzensystem

    x a1 mod I1, . . . , x ak mod Ikaquivalent ist zu der Kongruenz

    x a mod I.

    Dabei bezeichnet I das Ideal I1 . . . Ik.Beweis. Wir gehen wie im ganzzahligen Fall vor. Da nach VoraussetzungIi + Ij = R fur i 6= j, gibt es bij Ii, cij Ij, so da bij + cij = 1. Setze

    ei :=j 6=i

    cij =j 6=i

    (1 bij).

    Dann gilt ei 0 mod Ij fur i 6= j und ei 1 mod Ii. Folglich lost a =i aiei das Gleichungssystem. Ist a

    eine weitere Losung des Systems, so gilta a Ii fur alle i, d.h. a a I bzw. a a mod I. 2

    Der Satz lat sich zu einer Isomorphieaussage von Ringen umformulieren.Wir benotigen dazu den Begriff des direkten Produktes von Ringen. SeienR1, . . . , Rk Ringe und R = R1 Rk ihr kartesisches Produkt. Durch dieVereinbarung

    (a1, . . . , ak) + (b1, . . . , bk) := (a1 + b1, . . . , ak + bk),

    (a1, . . . , ak) (b1, . . . , bk) := (a1b1, . . . , akbk)

    31

  • wird R zum Ring. R heit das direkte Produkt von R1, . . . , Rk.Wir betrachten nun die Abbildung

    a mod I 7 (a mod I1, . . . , a mod Ik)von R/I nach R/I1 R/Ik. Sie ist wohldefiniert, denn a mod I = b modI bzw. b a I impliziert b a Ii bzw. a mod Ii = b mod Ii fur allei. Umgekehrt folgt a mod I = b mod I aus a mod Ii = b mod Ii fur alle i,die Abbildung ist also injektiv. Nach dem letzten Satz gibt es zu a1, . . . , akein a, so da (a1 mod I1, . . . , ak mod Ik) = (a mod I1, . . . , a mod Ik). Daherist die Abbildung surjektiv. Schlielich ist sie offenbar mit Addition undMultiplikation vertraglich. Wir konnen daher den Chinesischen Restsatz auchals Aussage uber die Isomorphie von Ringen ansehen,

    R/ki=1

    Ii= R/I1 R/Ik.

    Zum Abschlu gehen wir auf den Begriff Hauptideal ein.

    Definition 2.9. Sei R ein Integritatsbereich. Ein Ideal I heit Hauptideal,wenn es ein m R gibt, so da I = mR := {mr : r R}. Dieses von merzeugte Ideal wird mit (m) bezeichnet. Ist jedes Ideal in R ein Hauptideal,so heit R Hauptidealring.

    Fur ein Hauptideal I = mR gilt a b mod I genau dann, wenn m | b a,dies entspricht vollig der Situation in Z.

    Proposition 2.10. Jeder Euklidische Ring R ist ein Hauptidealring.

    Beweis. Das Nullideal {0} = 0 R ist ein Hauptideal. Sei also I R ein Idealungleich {0}. Wahle m I {0} derart, da g(m) auf I {0} minimal ist.Fur jedes b I gibt es dann s, r R, so da b = sm + r, mit r = 0 oderg(r) < g(m). Es folgt r I, nach Wahl von m kann also nur r = 0 gelten.Daher gilt b = sm und I = mR. 2

    Von einem algebraischen Standpunkt unterscheiden sich Hauptidealringe nichtwesentlich von Euklidischen Ringen. So existieren in einem HauptidealringR zu Elementen a und b immer ein groter gemeinsamer Teiler. Zum Beweisbilden wir das Ideal

    I := {as+ bt : s, t R}.Nach Annahme ist es von der Gestalt I = dR fur ein d R. Wegen a, b Iist d Teiler von a und b. Andererseits gibt es s, t R, so da d = as + bt.Jeder Teiler von a und b teilt daher auch d. d ist also ein groter gemeinsamer

    32

  • Teiler von a und b. Dieser Beweis bestatigt auch die Gultigkeit des Satzesvon Bezout in Hauptidealringen. Ist d ein weiterer ggT von a und b, sogibt es e, e R, so da d = ed und d = ed. Es folgt d = eed unddurch Kurzen 1 = ee. Daher sind e und e Einheiten. Ein ggT ist alsobis auf Einheiten eindeutig festgelegt. Schlielich stellen wir noch fest, daR = aR + bR genau dann gilt, wenn 1 = ggT(a, b), wenn also a und bteilerfremd sind. Teilerfremdheit von Idealen, wie oben eingefuhrt, hat inHauptidealringen daher die ubliche Bedeutung.

    Von einem algorithmischen Standpunkt sind dagegen Euklidische Ringeund Hauptidealringe wesentlich verschieden. Der Euklidische Algorithmussteht in Hauptidealringen nicht zur Verfugung.

    2.6 Prime Restklassen

    Wie wir fruher festgestellt haben, ist eine Restklassen a in Zm entwederEinheit oder Nullteiler. Wir untersuchen nun die Gruppe der Einheiten.

    Definition 2.11. Sei a Z. Die Restklasse a Zm {0} heit primeRestklasse modulo m, falls 1 = ggT(a,m). Die Menge der primen Rest-klassen modulo m wird mit Zm bezeichnet, ihre Anzahl mit (m). heitEulersche -Funktion.

    Es gilt Zm = Zm {0} und (m) = m 1 genau dann, wenn m prim ist.Wir zeigen nun, da Zm bzgl. der Restklassenmultiplikation eine Gruppe ist.

    Satz 2.12.

    i) a, b Zm a b Zm.ii) Jedes a Zm besitzt ein inverses Element a1 Zm.iii) Die Gleichung a x = b ist in Zm eindeutig losbar.Beweis. Zu i): Aus 1 = ggT(a,m) = ggT(b,m) folgt 1 = ggT(ab,m). Zu ii):Wegen 1 = ggT(a,m) gibt es nach dem Satz von Bezout ganze Zahlen r, s,so da ar+ms = 1. Es folgt 1 = ggT(r,m) und ar 1 mod m, also r = a1.Zu iii): x = a1 b. 2

    Von fundamentaler Bedeutung ist das Theorem von Euler. Wir schreibenwie ublich

    an = a a n-mal

    .

    33

  • Satz 2.13. Fur alle a Zm gilt

    a(m) = 1.

    Anders ausgedruckt: a1 = a(m)1.

    Beweis. Seien a1, . . . , a(m) alle Restklassen in Zm. Dann durchlaufen aucha a1, . . . , a a(m) alle Restklassen in Zm, denn aus a ai = a aj folgt durchMultiplikation mit a1 die Gleichung ai = aj und damit i = j. Daher gilt

    a1 a(m) = a(m) a1 a(m)und, indem wir mit a1i , i = 1, . . . , (m), multiplizieren,

    a(m) = 1.2

    Im Fall eines primen Moduls geht diese Aussage auf Fermat zuruck.

    Korollar 2.14. (Theorem von Fermat) Sei p eine Primzahl. Dann giltfur jede ganze Zahl a

    ap a mod p.Beweis. Fur a 0 mod p ist die Aussage offensichtlich, und fur a 6 0 giltwegen (p) = p 1

    ap1 1 mod p.2

    Die Eulersche -Funktion lat sich leicht berechnen, vorausgesetzt wir kennendie Primfaktorzerlegung von m.

    Proposition 2.15. Seien p1, . . . , pk die unterschiedlichen Primteiler von m.Dann gilt

    (m) = mki=1

    (1 1

    pi

    ).

    Beweis. Ist m = pr mit primem p, so sind genau die Zahlen 0, p, 2p, . . . ,(pr1 1)p Vertreter von Restklassen, die nicht zu Zm gehoren. Also:

    (pr) = pr pr1 = pr(1 1

    p

    ).

    34

  • Sei nunm = m1 mk mit paarweise teilerfremden Zahlenm1, . . . ,mk. Danngilt 1 = ggT(a,m) genau dann, wenn 1 = ggT(a,mi) fur alle i. Nach demChinesischen Restsatz ist daher

    a mod m 7 (a mod m1, . . . , a mod mk)eine Bijektion von Zm nach Zm1 Zmk . Es folgt

    (m) = (m1) (mk).2

    2.7 Ein probabilistischer Primzahltest

    Fur den probabilistischen Gleichheitstest in Abschnitt 2.3 wie fur Anwen-dungen der modularen Arithmetik in den folgenden Abschnitten benotigtman ein effektives Verfahren zur Gewinnung groer Primzahlen. Nach demPrimzahlsatz ist in dem Intervall [n, 2n] im Mittel jede (lnn)-te Zahl einePrimzahl. Durch zufallige Wahl von Zahlen aus dem Intervall wird man alsoausreichend oft auf Primzahlen treffen. Um sie zu erkennen, benotigt maneinen effektiven Primzahl-Test. Das folgende probabilistische Verfahren te-stet, ob die Zahl m die Fermatsche Identitat am1 1 mod m erfullt. Nachdem Fermatschen Theorem genugen Primzahlen dieser Identitat, sie sindaber nicht die einzigen Zahlen.

    Definition 2.16. Die ganze Zahl m heit Carmichael-Zahl, falls m nichtprim ist, und falls fur alle a Zm gilt

    am1 1 mod m.Die kleinste Carmichael-Zahl ist 561 = 3 11 17. Computerberechnungen ha-ben gezeigt, da sie sehr viel seltener sind als Primzahlen. Lehmer und Pou-let haben festgestellt, da es unter den ersten 100.000.000 Zahlen 5.761.455Primzahlen gibt, aber nur 252 Carmichael-Zahlen. Zahlen die weder primnoch Carmichael-Zahlen sind, lassen sich mit ausreichender Sicherheit erken-nen.

    Proposition 2.17. Ist m weder prim noch Carmichael-Zahl, so gilt

    card {a Zm : am1 1 mod m} (m)/2.Beweis. Seien a1, . . . , ak alle Elemente aus Zm mit am1i 1 mod m. NachVoraussetzung gibt es ein b Zm mit bm1 6 1 mod m. Dann gilt fur bi = bai

    bm1i = am1i b

    m1 6 1 mod m,es gibt daher mindestens ebenso viele Elemente in Zm, die die FermatscheIdentitat nicht erfullen. Also gilt k (m)/2. 2

    35

  • Ein probabilistischer Primzahltest.

    Eingabe: Eine naturliche Zahl m.

    Ausgabe: ,m ist prim oder ,m ist nicht prim.

    Verfahren: Wahle rein zufallig Zahlen a1, . . . , ak < m, die teilerfremd zu msind. Gilt am1i 1 mod m fur alle i = 1, . . . , k, so entscheide ,m ist prim.Andernfalls gilt ,m ist nicht prim. 2

    Dieser Test erkennt sicher Primzahlen. Ein Zahl, die weder prim noch Car-michal-Zahl ist wird mit ausreichender Sicherheit erkannt, die Fehlerwahr-scheinlichkeit ist kleiner als 2k. Nur Carmichael-Zahlen bleiben unerkannt.Praktisch ist dies fur das Verfahren bedeutungslos, weil Carmichael-Zahlenso uberaus selten auftreten. Ein raffinierteres Verfahren von Rabin besei-tigt diese letzte Unsicherheit (vgl. die Monographie von Knuth Vol. II, 3.Ausgabe, S. 395).

    2.8 Offentliche Chiffriersysteme

    Die Kryptographie ist die Lehre von den Chiffriersystemen. Stellen wir unsvor, da eine Person A eine geheime Nachricht an die Person B ubermittelnmochte. A kodiert sie deswegen mittels einer bijektiven Kodierabbildung

    : N K.Anstelle der Nachricht a N im Klartext sendet A die chiffrierte Nachricht(a). Der Empfanger dekodiert mittels der inversen Abbildung

    1 : K N .Ein bekanntes Verfahren beruht auf der Addition modulo 2. Wir nehmenan, da die Nachrichten als 01-Folgen der Lange n vorliegen, wahlen alsoN = K = {0, 1}n. Wir fassen die Folgen als Vektoren der Lane n uber demKorper Z2 auf. Zum Kodieren wird ein 01-String k = k1k2 . . . kn verwendet.Wir setzen

    (a) := a+ k,

    die beiden 01-Folgen a und k werden also komponentenweise modulo 2 ad-diert. Es gilt 1 = , denn k + k ist die nur aus Nullen bestehende Folge.Nachrichten werden daher nach demselben Verfahren dekodiert. Dieses klas-sische Verfahren hat den Namen ,One-time-pad. Es gilt a+(a) = k, gelingtes daher, eine kodierte Nachricht k(a) zu entschlusseln, so kennt man k und

    36

  • damit bereits die vollstandige Kodier- und Dekodiervorschrift. Dies bedeutet,da das Verfahren sicher ist, man hat keine Chance, eine Nachricht zu de-chiffrieren, wenn man auf k keinen Zugriff hat. Ist k rein zufallig aus {0, 1}ngewahlt, so gilt dies auch fur (a).

    Das RSA-Schema

    Fur die klassischen Chiffrierverfahren besteht ein Sicherheitsproblem darin,da man nicht nur die Dekodiervorschrift 1 geheimhalten mu, sondernauch das Kodierverfahren . Wie das Beispiel des One-time-pad zeigt, las-sen sich die Nachrichten mit Hilfe der Chiffrier- wie der Dechiffriervorschriftleicht entschlusseln. Diffie und Hellman haben daher 1976 einen (damals be-herzten) Vorschlag gemacht: Man solle Kodierabbildungen benutzen, furdie b = (a) aus a leicht berechnet werden kann, umgekehrt aber die Berech-nung von a = 1(b) aus b typischerweise mit einem immensen Rechenauf-wand verbunden ist, der praktisch nicht bewaltigt werden kann (selbst wenneinem die Abbildung bekannt ist!). In dieser asymmetrischen Situation darfman das Chiffrierverfahren offentlich bekannt machen, ohne die Sicherheit zugefahrden. Dies ist die Grundidee der modernen, computergestutzten offent-lichen Kodiersysteme. Theoretisch ist es schwer zu begrunden, da sol-che Abbildungen , man spricht von Einweg- (one-way) Abbildungen,wirklich existieren. Fur praktische Zwecke haben sich jedoch verschiedeneAbbildungen als brauchbar erwiesen. Wir werden Abbildungen betrachten,bei denen das Dekodieren erst dann praktisch durchfuhrbar ist, wenn manuber einen zusatzlichen ,Schlussel verfugt. Dann spricht man von Falltur-(trapdoor) Abbildungen.

    Zum Beispiel kann man schnell modulo m potenzieren:

    a20 = a16+4 = (((a2)2)2)2 (a2)2.

    Allgemein berechnet man ac modulo m, indem man den Exponenten alsbinare Zahl darstellt, c = d0 + d1 2 + + dk 2k mit di {0, 1}, ink Schritten rekursiv die Potenzen a2

    i= (a2

    i1)2 modulo m berechnet und

    schlielich diejenigen Potenzen modulo m multipliziert, fur die di = 1 gilt.Die Anzahl der Operationen ist von der Ordnung O(k) = O(log c). Eineallgemeine Methode, mit der man schnell (schneller als Durchprobieren) dieGleichung b ax mod m nach x auflost (,diskreter Logarithmus), kennt mandagegen nicht.

    Wir beschreiben nun das bekannteste offentliche Chiffriersystem, das vonRivest, Shamir und Adleman 1978 vorgeschlagene RSA-System. Es bautdarauf auf, da es schwer ist, eine Zahl m in ihre Primfaktoren zu zerlegen.

    37

  • Als Nachrichtenmenge N = K wird Zm gewahlt. Dabei sei m = pq dasProdukt zweier sehr groer Primzahlen p und q. Wir gehen also davonaus, da die Nachricht als naturliche Zahl a < m dargestellt ist.

    Zum Kodieren wird eine naturliche Zahl s < (m) gewahlt, die teiler-fremd zu (m) ist. Die Kodierung der Nachricht a N ist dasjenige(a) N , so da

    (a) as mod m. Zum Dekodieren benotigt man einen Schlussel, eine naturliche Zahlt < (m) mit der Eigenschaft

    s t 1 mod (m).bzw. st = 1 + k(m) = 1 + k(p 1)(q 1) fur eine naturliche Zahl k.Eine solche Zahl t existiert, denn nach Wahl von s gilt s Z(m). Giltnun a 6 0 mod p, so folgt nach dem Satz von Euler ap1 1 mod p,also

    (as)t a (ap1)k(q1) a mod p.Offenbar gilt die Behauptung auch fur a 0 mod p. Genauso folgt(as)t a mod q fur alle a. Nach dem chinesischen Restsatz folgt

    (as)t a mod mfur alle a, und es folgt

    1(b) bt mod m. 2

    Man darf dieses Verfahren so einrichten, da die Nachrichtenmenge N , dieZahl s und auch die kodierte Nachricht (a) offentlich zuganglich sind. Nurder Schlussel t mu geheim bleiben. Bei Kenntnis von (m) lat sich tnaturlich muhelos mit Euklids Algorithmus aus s errechnen. Daher mu dafurgesorgt sein, da (m) praktisch nicht berechenbar ist. Diese Aufgabe istaber im wesentlichen so aufwendig wie das Zerlegen von m in seine beidenPrimfaktoren. Einerseits gilt namlich

    (m) = (p 1)(q 1),andererseits kann man m bei Kenntnis von (m) sofort faktorisieren: p undq erhalt man aus den Gleichungen

    p+ q = m (m) + 1,p q =

    (p+ q)2 4pq

    = (m (m) + 1)2 4m.

    38

  • Das RSA-System steht und fallt damit, da die Primfaktoren p und qgeheim bleiben. Die Erfahrung zeigt, da die Faktorisierung von m einenhohen Rechenaufwand erfordert und praktisch nicht mehr gelingt, wenn pund q ausreichend gro sind. Dies ist ein Grundpostulat der Kryptographie:Man geht davon aus, da es keinen schnellen Algorithmus zum Zerlegen einerZahl in seine Primfaktoren gibt. Man nennt deshalb in der Kryptographie einChiffriersystem ,beweisbar sicher, wenn es letztlich auf die Faktorisierunggroer Zahlen zuruckgefuhrt werden kann.

    Signatur von Nachrichten

    Das RSA-Schema eignet sich gut zum geheimen Austausch von Nachrichteninnerhalb einer Gruppe von Teilnehmern. Jeder Teilnehmer A erhalt von einerZentrale einen offentlichen Schlussel (m(A), s(A)) und seinen personlichen ge-heimen Schlussel t(A). A teilt B eine geheime Nachricht a als b := B(a) as(B) mod m(B) mit, B dekodiert mittels 1B (b) bt(B) mod m(B). Ein vor-heriger Kontakt zwischen A und B ist nicht erforderlich, A braucht lediglichden offentlich zuganglichen Schlussel s(B) von B. Ein wichtiger Vorteil desSystems ist, da es den Teilnehmern erlaubt, Mitteilungen falschungssicherzu signieren (,Unterschriftensystem). A beglaubigt eine offentliche Nachrichta durch die offentliche Mitteilung von c = 1A (a) at(A) mod m(A). Alle an-deren Teilnehmer konnen verifizieren, da a cs(A) mod m(A) gilt.

    Randomisiertes RSA

    Um ein einzelnes bit a = 0 oder 1 geheim zu ubertragen, mu man dasRSA-Schema modifizieren. Dann gilt as = a, und die Nachricht bleibt unver-schlusselt. Stattdessen kann man so vorgehen: Man wahle rein zufallig einegerade Zahl 2u aus {0, 1, . . . , (m 1)} und ubertragt anstelle von a mit demRSA-Schema die Zahl 2u+ a, die verschlusselte Nachricht ist also (2u+ a)s.Der Empfanger kann mit seinem geheimen Schlussel die Nachricht als 2u+ adekodieren und a als das letzte bit dieser Nachricht zuruckgewinnen. Alexi,Chor, Goldreich und Schnorr haben gezeigt, da dieses Verfahren genausosicher wie das RSA-Schema ist.

    2.9 Zero-Knowledge Beweise

    Eine Person mochte beweisen (und sich dadurch ausweisen), da sie ein Ge-heimnis (eine Geheimzahl) kennt, ohne von ihrem Wissen irgend etwas preis-zugeben. Wie ist das moglich?

    39

  • Um die Idee des Verfahrens zu erlautern, betrachten wir das folgendeSzenario: Die Person A mochte einer zweiten Person B demonstrieren, dasie den Schlussel zu einer Geheimtur G besitzt, die zwei Raume verbindet.Den Schlussel mochte A nicht vorzeigen, ja nicht einmal einen Blick in dieRaume gestatten. Deswegen einigen sich A und B auf folgendes Vorgehen: Ageht durch den Vorraum V und dann rein zufallig entweder durch die Tur Rin den rechten Raum, oder die Tur L in den linken Raum.

    V

    L R

    G

    Nun betritt B den Vorraum. Sie wei nicht, in welchem der beiden Raumesich A befindet. Sie wahlt zufallig eine der Turen R oder L aus und fordertA auf, durch diese Tur wieder herauszukommen. Dies ist A immer moglich,wenn sie die Geheimtur offnen kann. Andernfalls besteht sie den Test nur mitWahrscheinlichkeit 1/2, und bei r-facher unabhangiger Wiederholung sogarnur mit Wahrscheinlichkeit 2r. Auch fur kleines r bietet dieses Verfahrenschon hohe Sicherheit.

    Der Fiat-Shamir-Algorithmus

    Nach einem verwandten Muster funktioniert der Algorithmus, den Fiat undShamir 1988 vorgeschlagen haben, und bei dem der Schlussel eine geheimeZahl ist. Der Algorithmus beruht darauf, da es sehr aufwendig ist, die Wur-zel eines quadratischen Restes modulo einem Primzahlprodukt m = pq zuberechnen. Zuerst erlautern wir diesen Sachverhalt. a heit quadratischerRest modulo m , falls die Kongruenz

    x2 a mod m (2.2)

    eine Losung b besitzt, wenn also die Restklassengleichung b2= a gilt. b

    nennen wir dann Wurzel von a.

    Beispiel. Z15 = {1, 2, 4, 7, 8, 11, 13, 14} enthalt die quadradischen Reste 1und 4:

    12

    = 42

    = 112

    = 142

    = 1,

    22

    = 72

    = 82

    = 132

    = 4.

    40

  • Die quadratischen Reste sind 1 und 4, sie besitzen beide vier verschiedeneWurzeln. 2

    Wir zeigen nun, da allgemein quadratische Reste vier verschiedene Wur-zeln haben fur Moduln m = pq mit zwei Primzahlen p, q > 2. Die Gleichung

    x2 = a = b2in Zm ist dann aquivalent zu der Aussage pq | (x b)(x + b).

    Daher teilt p entweder x b oder x + b, und ebenso q entweder x b oderx+ b. Es sind vier Falle moglich:

    x b mod p, x b mod q, oderx b mod p, x b mod q, oderx b mod p, x b mod q, oderx b mod p, x b mod q.

    Nach dem Chinesischen Restsatz sind alle Falle eindeutig losbar, und dieLosungen sind voneinander verschieden. Die beiden ersten Kongruenzen ha-ben offenbar die Losungen b und b, die beiden anderen Kongruenzen fuhrenzu weiteren Losungen c und c. b und c unterscheiden sich nicht nur durchdas Vorzeichen, sie heien wesentlich verschiedene Losungen.

    Wir begrunden nun, da es genauso rechenintensiv ist, (2.2) im Fallm = pq zu losen (selbst wenn bekannt ist, da a quadratischer Rest ist), wiem in seine Primfaktoren zu zerlegen. Nehmen wir an, da wir uber einen Al-gorithmus verfugen, der zu jedem quadratischen Rest modulo m eine Wurzelberechnet. Wir konnen dann auch leicht zwei wesentlich verschiedene Wur-zeln eines quadratischen Restes finden. Dazu wahle man rein zufallig ein b aus

    Zm und bilde daraus den quadratischen Rest a = b2. Mit dem Algorithmus

    erhalten wir eine Wurzel c von a, die mit Wahrscheinlichkeit 1/2 wesentlichverschieden von b ist (im gegenteiligen Fall wahle zufallig ein neues b). In Zmgilt dann (b + c)(b c) = 0, d.h. pq | (b + c)(b c). Sind b und c wesentlichverschieden, so konnen p und q nicht gleichzeitig b+ c teilen, und auch nichtgleichzeitig b c teilen. Es gilt also ggT(m, b+ c) = p oder ggT(m, b+ c) = q.Daher lat sich p oder q mit dem Euklidischen Algorithmus berechnen undm problemlos faktorisieren.

    Das Fazit ist: Das Ziehen von Quadratwurzeln in Zm ist genauso rechenin-tensiv wie das Faktorisieren von m. Ist es ausgeschlossen, m in Primfaktorenzu zerlegen, so kann man auch keine Quadratwurzeln modulo m berechnen.

    Dies macht sich der Fiat-Shamir Algorithmus zu Nutzen. Verschiedene Per-sonen konnen sich beteiligen. Wir stellen uns vor, da eine Zentrale gehei-me Schlussel verteilt. Sie wahlt zwei Primzahlen p und q und veroffentlichtm = pq. Die Faktoren p und q bleiben geheim und mussen deswegen so

    41

  • gro sein, da sich m praktisch nicht in seine Primteiler zerlegen lat. DieZentrale weist jedem Teilnehmer eine geheime Zahl b zu, die zu einer pri-

    men Restklasse modulo m gehort. Gleichzeitig wird die Restklasse a = b2

    veroffentlicht.Die Person A mochte nun sein Gegenuber B davon uberzeugen, da sie

    die Geheimzahl b kennt. Dazu fuhren A und B den folgenden ,Dialog:

    A wahlt rein zufallig r Zm und bildet s = r 2. A ubermittelt s an B. B wahlt rein zufallig die Zahl t = 0 oder 1. Falls t = 0, fragt er A nacheiner Wurzel w von s, andernfalls fragt er nach einer Wurzel w von a s.

    Ist t = 0, so gibt A an B die Antwort w = r, ist dagegen t = 1, so gibtA als Antwort w = b r.

    B uberpruft die Antwort: r 2 = s im Falle t = 0, und (b r) 2 = a s imFalle t = 1.

    Kennt A die Geheimzahl, so hat sie mit ihrem Teil des Dialogs kein Pro-blem. Kennt A die Geheimzahl dagegen nicht, so wird sie hochstens eine derFragen von B beantworten konnen. Sonst hatte A namlich (wie immer siesich auch s verschafft haben mag) sowohl eine Wurzel x von s als auch eineWurzel y von a s zur Verfugung, die sich zu einer Wurzel x 1y von a zu-sammensetzen lieen. Das Ziehen von Wurzeln quadratischer Reste modulom ist aber, wie wir gesehen haben, genau so schwer wie das Faktorisierenvon m. Ein Schwindler A wird daher r Dialogrunden mit dem Verifizierer Bhochstens mit Wahrscheinlichkeit 2r bestehen.

    Schielich wird in dem Dialog keine Information uber b preisgegeben. Wiekann man dies einsehen? Protokolliert B den Dialog, so kann das Protokollnur die Zahlen s, t, w enthalten. Sie haben die folgenden Eigenschaften:

    s ist Quadrat eines rein zufalligen Elements aus Zm, ein rein zufalligerquadratischer Rest modulo m.

    t ist rein zufallig aus {0, 1} gewahlt. w 2 = s oder a s, je nachdem, ob t = 0 oder 1 ist.

    Solch ein Protokoll kann nun B aber auch ohne die Hilfe von A simulieren,namlich so:

    B wahlt rein zufallig t {0, 1} und ein w Zm. B bildet daraus s = w 2bzw. s = w 2 a1, je nachdem, ob t = 0 oder 1 ist.

    B erstellt das Protokoll (s, t, w).

    42

  • Dieses Protokoll ist ohne Kenntnis von b erstellt und hat dieselben Eigen-schaften wie das Protokoll aus dem Dialog zwischen A und B. Deswegen kannauch der Dialog keine Informationen uber b tragen. Man sagt, der Dialog be-sitzt die Zero-Knowledge Eigenschaft.

    Auf den ersten Blick konnte man meinen, dass auch ein verkurzter Dia-log, in dem nur nach der Wurzel von a s gefragt wird und demzufolge keinzufalliges bit t generiert wird, brauchbar ist. Er ist jedoch ungeeignet: Wohlhat er dann die Zero-Knowledge Eigenschaft, jedoch kann einen solchen Dia-log auch ein Schwindler A bestehen, der b gar nicht kennt. A konnte dannetwa so vorgehen:

    A wahlt rein zufallig w und berechnet s = w2a1. A ubermittelt s anB.

    A teilt w mit. B uberpruft: w2 = a s.B kann diesen Dialog nicht von dem vorigen im Fall t = 1 unterscheiden.

    Zero-Knowledge Beweis fur ein NP-vollstandiges Problem

    Wir betrachten nun ein Entscheidungsproblem, von dem man gute Grundehat anzunehmen, da es zu den Problemen zahlt, die den hochsten Rechen-aufwand erfordern. Es handelt sich darum zu entscheiden, ob ein gegebenerendlicher Graphen G 3-farbbar ist, d.h. ob man seine Ecken so mit drei ver-schiedenen Farben anmalen kann, da benachbarte Ecken immer verschiedengefarbt sind.

    Ein Graph G = (E,K) besteht bekanntlich aus einer Menge E, denEcken, und einer Menge K {{a, b} : a, b E}, den Kanten, die jeweilszwei Ecken verbinden. Ecken a 6= b heien benachbart, falls sie durch eineKante verbunden sind, falls also {a, b} K gilt. Fur E = {1, 2, 3, 4, 5} undK = {{1, 2}, {1, 3}, {2, 4}, {2, 5}, {3, 4}, {4, 5}, {5, 5}} ergibt sich das folgen-de Bild

    rr

    rr

    mr

    HHHHH

    1 2

    3 4

    5

    Ob ein Graph 2-farbbar ist, lat sich schnell feststellen, man probiert es,ausgehend von einer Ecke, einfach aus. Nur ganz am Anfang steht einem dieWahl der Farbe offen. Bei 3 Farben ist dies anders, man mu beim Farbender Ecken immer wieder zwischen Alternativen entscheiden, und fuhrt ein

    43

  • Versuch nicht zum Erfolg, so bedeutet dies noch nicht, da der Graph nicht3-farbbar ist. Es stellt sich heraus, da die 3-Farbbarkeit von Graphen einNP-vollstandiges Entscheidungsproblem ist, also zur Klasse der Entschei-dungsprobleme gehort, die nach heutigem Kenntnisstand den groten Re-chenaufwand erfordern.

    Wir beschreiben nun, wie eine Person A eine andere Person B mit belie-big hoher Sicherheit davon uberzeugen kann, da sie eine 3-Farbung einesGraphen G kennt, ohne von ihrem Wissen irgend etwas zu verraten. DieserDialog erfordert von A eine sorgfaltige Vorbereitung.

    Fur jede Ecke e E des Graphen erzeugt A eine RSA-Kodierungme = peqe, se, te. Sie gibt ihrem Gegenuberme und se fur alle e bekannt.

    Weiter generiert A eine zufallige Permutation der drei Farben und da-mit eine neue zufallige 3-Farbung des Graphen. Die permutierte Farbejeder Ecke e lat sich durch 2 bits beb

    e beschreiben. A kodiert die-

    se bits mit dem randomisierten RSA-Schema und gibt sie kodiert alsye (2u+ be)se bzw. ye (2u + be)se modulo me bekannt.

    Nun wahlt B zufallig zwei benachbarte Ecken e(1), e(2), zu denen A ihmdie Schlussel te(1) und te(2) uberlat. B kann dann die Farben be(1)b

    e(1)

    und be(2)be(2) dekodieren und feststellen, ob sie, wie von A behauptet,

    verschieden sind.

    Hat A eine 3-Farbung des Graphen, so kann sie die Frage von B immer beant-worten. Dagegen wird ein Schwindler, der keine 3-Farbung kennt, mit einerWahrscheinlichkeit von mindestens k1 uberfuhrt, wobei k die Anzahl derKanten bezeichne. r unabhangige Runden ubersteht er nur mit Wahrschein-lichkeit (1 k1)r er/k.

    B lernt aus diesem Dialog nichts. Er erfahrt von A ein zufalliges Paar vonverschiedenen Farben, das zudem Runde fur Runde unabhangig ist. SolchePaare kann er sich auch verschaffen, ohne eine 3-Farbung des Graphen zukennen. Folglich tragt der Dialog keine Information uber die 3-Farbung.

    44

  • 2.10 Faktorzerlegung

    Wir kommen nun auf Anwendungen des modularen Rechnens auf die Zerle-gung von ganzen Zahlen und Polynomen zu sprechen. Ein Integritatsbereich,in dem sich jedes Element (bis auf Einheiten) eindeutig in irreduzible Elemen-te (Primelemente) zerlegen last, heit faktorieller Ring. In der Algebra wirdgezeigt, dass jeder Hauptidealring R faktoriell ist und auch jeder Polynom-ring R[x] mit Koeffizienten in einem faktoriellen Ring R. Die Beweise gebenjedoch keinen Hinweis, wie man im Einzelnen effizient faktorisiert. Wir be-trachten hier zwei Methoden, Fermats Methode zur Zerlegung ganzer Zahlenund den Berlekamp-Algorithmus zum Zerlegen von ganzzahligen Polynomenmodulo einer Primzahl p.

    Fermats Methode

    Die Methode von Fermat fuhrt das Faktorisieren einer Zahl n zuruck auf ihreDarstellung als Differenz zweier Quadratzahlen. Sei n = a b eine ungeradeZahl. Dann sind auch a und b ungerade, und wir konnen die Zahlen

    s =a b2

    , t =a+ b

    2

    bilden. Es folgtn = t2 s2.

    Umgekehrt erhalten wir aus dieser Darstellung die Zerlegung

    n = (t+ s)(t s).Dies fuhrt zu folgendem Algorithmus: Bilde die Zahlen t0 = [

    n] + 1, t1 =

    [n]+2, . . . und uberprufe der Reihe nach, ob t20n, t21n, . . . Quadratzahlen

    sind.

    Beispiel. Fur n = 1767 ist t20 n = 432 1767 = 82 keine Quadrat-zahl und t21 n = 442 1767 = 169 = 132. Wir erhalten die Zerlegung1767 = (44 + 13) (44 13) = 57 31. 2

    Das Verfahren findet zuerst die groen Teiler von n und fuhrt schnell zumZiel, wenn sich n in zwei ahnlich groe Faktoren zerlegen lat.

    Schon Fermat gestaltete seine Methode effizienter, indem er die Uber-prufung auf Quadratzahl modular durchfuhrte. Man wahlt dazu teilerfremdeModulnm1, . . . ,mk und betrachtet zunachst t

    2in als Rest modulomj. Liegt

    kein quadratischer Rest vor, so kann t2i n keine Quadratzahl sein. Nur in

    45

  • dem Fall, da es sich fur jeden Modul m1, . . . ,mk um einen quadratischenRest handelt, mu man nachprufen, ob man auf eine Quadratzahl gestoenist.

    In der praktischen Durchfuhrung stellt man eine Liste (ein ,Sieb) derquadratischen Reste auf. Knuth faktorisiert in seiner Monographie auf dieseWeise die Zahl n = 8.616.460.799 (von der der englische Okonom und LogikerW.S. Jevons 1874 unvorsichtigerweise behauptet hat, da man sie niemalswird zerlegen konnen, vgl. Knuth Vol. II, S. 388). Er stellt dazu die folgendeTabelle auf:

    mi t mod mi t2 mod mi (t

    2 n) mod mi3 0, 1, 2 0, 1, 1 1, 2, 25 0, 1, 2, 3, 4 0, 1, 4, 4, 1 1, 2, 0, 0, 27 0, 1, 2, 3, 4, 5, 6 0, 1, 4, 2, 2, 4, 1 5, 6, 2, 0, 0, 2, 68 0, 1, 2, 3, 4, 5, 6, 7 0, 1, 4, 1, 0, 1, 4, 1 1, 2, 5, 2, 1, 2, 5, 211 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 4, 9, 5, 3, 3, 5, 10, 0, 3, 8, 4, 2, 2, 4,

    8, 9, 10 9, 4, 1 8, 3, 0

    Ein Vergleich der beiden letzten Spalten zeigt, da nur dann t2 n eineQuadratzahl sein kann, falls gilt

    t 0 mod3t 0, 2 oder 3 mod5t 2, 3, 4 oder 5 mod7t 0 oder 4 mod8t 1, 2, 4, 7, 9 oder 10 mod11.

    Die Suche nach einem passenden t wird so erheblich eingeschrankt. Nach denBedingungen modulo 3 und modulo 8 mu t ein Vielfaches von 3 4 = 12 sein.Das kleinste t groer als [

    n] + 1 = 92825 mit dieser Eigenschaft ist 92832.

    Es hat modulo 5 den Rest 2, modulo 7 den Rest 5 und modulo 11 den Rest3. Die Liste zeigt, da dieses t kein Kandidat zum Faktorisieren ist. Erhohenwir t um den Betrag 12, so andert sich sein Residuum jeweils um 2 modulo5, um 5 modulo 7 und um 1 modulo 11. Wie eine kurze Rechnung zeigt, istdas erste t, da alle aufgestellten Bedingungen erfullt, gleich 92880. Es folgt928802 n = 10233601 = 31992. Wir haben also eine Losung s = 3199, t =92880 gefunden und konnen n zerlegen:

    8.616.460.799 = (t s)(t+ s) = 89681 96079.Allgemein gesprochen wird zum Faktorisieren von n mit den Moduln

    m1, . . . ,mk eine Siebtabelle s(i, t), 1 i k, 0 t < mi aufgestellt. Esist s(i, t) = 1 oder 0, je nachdem ob q = t2 n quadratischer Rest modulomi ist oder nicht.

    46

  • Faktorisieren mit Sieben.

    Eingabe: n und Moduln m1, . . . ,mk.

    Ausgabe: Ein Teiler m von n.

    Verfahren: Stelle die Siebtafel auf. Berechne sukzessive modulo m1, . . . ,mkdie Zahlen qt = t

    2n, t > [n] (also qt+1 = qt+2t+1). Bestimme mit derSiebtafel das kleinste t, so das qt fur alle j quadratischer Rest modulo mjist. Teste, ob qt eine Quadratzahl s

    2 ist. In diesem Fall ist m = t s Teilervon n. Andernfalls setze die Suche nach einem geeigneten t fort. 2

    Faktorisieren in Zp[x]Will man ein ganzzahliges Polynom in seine irreduziblen Anteile zerlegen,so ist es im Allgemeinen gunstig, das Polynom zunachst modulo m, d.h. inZm[x] zu zerlegen. Haufig gelingt es, dann auf die Zerlegung in Z[x] zuruck-zuschlieen. Sei etwa f(x) Z[x] ein normiertes Polynom, ein Polynommit Anfangskoeffizient 1,

    f(x) = xn + an1xn1 + + a0.

    Dann hat f(x) auch als Polynom in Zm[x] (ai wird zur Restklasse ai mod m)unverandert den Grad n. Gibt es eine Zerlegung f(x) = g(x)h(x), so konnenwir auch g(x) und h(x) als normiert annehmen, und die Zerlegung bleibt inZm[x] gultig. Anders ausgedruckt: Ist das normierte Polynom f(x) in Zm[x]irreduzibel, so ist f(x) auch in Z[x] irreduzibel. Die Erfahrung zeigt, da sichauf diese Weise Irreduzibilitat haufig feststellen lat.

    Beispiel. Das Polynom f(x) = x8+x6 3x4 3x3+8x2+2x 5 zerfalltin Z2[x] und Z13[x] in die irreduziblen Faktoren

    f(x) (x6 + x5 + x4 + x+ 1)(x2 + x+ 1) mod 2f(x) (x4 + 2x3 + 3x2 + 4x+ 6)(x3 + 8x2 + 4x+ 12)(x+ 3) mod 13,

    wie man mit der gleich beschriebenen Berlekamp-Methode findet. Eine Fak-torisierung von f(x) in Z[x] mute mit diesen beiden Zerlegungen vereinbarsein, was offenbar nicht moglich ist. Zerfiele f(x) etwa in irreduzible Fakto-ren vom Grad 6 und 2, so muten diese Faktoren modulo 13 weiter zerfallen.Ein irreduzibler Teiler vom Grad 4 modulo 13 kann dabei nicht entstehen.Folglich ist f(x) in Z[x] irreduzibel. 2

    47

  • Wir behandeln nun die Faktorisierung von Polynomen in Zp[x] fur einePrimzahl p. Die Situation unterscheidet sich deutlich vom Zerlegen ganzerZahlen. Das Faktorisieren ganzer Zahlen ist mit den heutigen Methoden imwesentlichen ein mehr oder weniger geschicktes Suchen nach Teilern, am An-fang ist schwer abzusehen, wie schnell man fundig wird. Fur Polynome gibtes andersartige Verfahren.

    Irreduzible Faktoren vom Grade 1 erhalt man mittels Nullstellen.

    Proposition 2.18. Sei f(x) ein Polynom mit Koeffizienten aus einem be-liebigen Korper K. Dann teilt das Polynom x s genau dann f(x), wenn sNullstelle von f(x) ist.

    Beweis. Wir teilen f(x) durch x s mit Rest,

    f(x) = m(x)(x s) + r

    mit r R. Durch Einsetzen von s folgt f(s) = r. Es teilt also x s genaudann f(x), wenn r = f(s) = 0 gilt. 2

    Polynome in Zp[x] lassen sich mit derMethode von Berlekamp (1967)in ganz systematischer Weise zerlegen. Wir benotigen dazu folgende Polynom-Identitaten.

    Proposition 2.19. Sei p eine Primzahl und seien h(x) und k(x) Polynomein Zp[x]. Dann gilt

    (h(x) + k(x))p = h(x)p + k(x)p,

    h(xp) = h(x)p,

    h(x)p h(x) = h(x)(h(x) 1)(h(x) 2) (h(x) p+ 1).

    Beweis. Der Binomialkoeffizient(pk

    )= p(p1)(pk+1)

    12k ist fur primes p und0 < k < p ein Vielfaches von p, daher gilt

    (h(x) + k(x))p = h(x)p +

    (p

    1

    )h(x)p1k(x) + + k(x)p

    h(x)p + k(x)p mod p.

    Dies ist die erste Behauptung. Zusammen mit dem Fermatschen Theoremimpliziert sie die zweite Behauptung,

    h(x)p = (i

    aixi)p =

    i

    apixip =

    i

    ai(xp)i = h(xp).

    48

  • Zum Beweis der letzten Aussage verwenden wir die Identitat

    xp x x(x 1) (x p+ 1) mod p .Sie ergibt sich aus Proposition 2.18 und der Beobachtung, dass nach demSatz von Fermat xp x die Nullstellen 0, 1, . . . , p 1 hat. Die Behauptungfolgt, indem wir in der Identitat x durch h(x) ersetzen. 2

    Quadratische Anteile eines Polynoms lassen sich mithilfe seiner (formalen)Ableitung identifizieren. Die Ableitung eines Polynoms f(x) = anx

    n+ +a1x+ a0 ist definiert als

    f (x) := n an xn1 + (n 1) an1 xn2 + + 2 a2 x+ a1.Dabei benutzen wir fur ein Element a aus dem Koeffizientenbereich und einenaturliche Zahl n die Schreibweise

    n a := a+ a+ . . .+ a nmal

    .

    Diese Definition einer Ableitung macht Sinn in beliebigen Polynomringen.Die aus der Analysis bekannte Interpretation einer Ableitung als Steigunglat sich naturlich nicht mehr aufrechterhalten. Wesentlich ist, da die be-kannten Rechenregeln fur Ableitungen erhalten bleiben. Es gilt (Ubung)

    f(x) = h(x) + k(x) f (x) = h(x) + k(x),f(x) = h(x)k(x) f (x) = h(x)k(x) + h(x)k(x).

    Proposition 2.20. Sei p prim und sei f(x) Zp[x]. Dann gilt:i) f (x) = 0 f(x) = h(x)p fur ein h(x) Zp[x],ii) f (x) 6= 0 f(x) = [ggT(f(x), f (x))]2h(x), mit einem h(x) Zp[x],

    das keine quadratischen Teiler mehr enthalt.

    Beweis. Zu i): Die Koeffizienten i ai von f (x) verschwinden genau dann furalle i, falls ai = 0 fur alle i 6 0 mod p. Dann gibt es offenbar ein Polynomh(x), so da f(x) = h(xp). Die Behauptung folgt nun aus Proposition 2.19.

    Zu ii): Gilt f(x) = s(x)2t(x), so teilt s(x) auch

    f (x) = 2s(x)s(x)t(x) + s(x)t(x).

    Sei umgekehrt s(x) ein Teiler von f(x) und f (x). Wir nehmen an, da s(x)irreduzibel in Zp ist, so da nach i) s(x) 6= 0 gilt. Aus f(x) = s(x)k(x) folgt

    49

  • f (x) = s(x)k(x) + s(x)k(x), folglich teilt s(x) auch s(x)k(x). Da s(x) 6= 0einen Grad kleiner als s(x) besitzt, mu s(x) bereits k(x) teilen. Folglich istsogar s(x)2 Teiler von f(x). Insgesamt konnen wir feststellen, da s(x) genaudann f(x) und f (x) teilt, falls s(x)2 ein Teiler von f(x) ist. Dies ergibt diezweite Behauptung. 2

    Da sich grote gemeinsame Teiler problemlos mit dem Euklidischen Algo-rithmus berechnen lassen, konnen quadratische Anteile eines Polynoms mitKoeffizienten in Zp leicht ermittelt werden. Es bleibt die Aufgabe, ein Poly-nom zu zerlegen, dessen irreduzible Teiler alle verschieden sind. Dazu ist diefolgende Aussage nutzlich.

    Proposition 2.21. Sei p Primzahl und sei f(x) Zp[x]. Dann sind aquiva-lent:

    i) Es gilt f(x) = f1(x)f2(x) mit teilerfremden Polynomen fi(x), i = 1, 2,so da 0 < deg(fi) < deg(f).

    ii) Es gibt ein Polynom g(x) Zp[x] mit 0 < deg(g) < deg(f), so da f(x)ein Teiler von g(x)p g(x) ist.

    Es ist dann

    f(x) =

    p1i=0

    ggT(f(x), g(x) i)

    eine nicht-triviale Faktorisierung von f(x).

    Beweis. Hat g(x) die geforderten Eigenschaften, so ist wegen deg(g) 1zunachst g(x)p g(x) 6= 0. Die Polynome g(x), g(x)1, . . . , g(x)p+1 sindpaarweise teilerfremd. Es folgt daher aus f(x) | g(x)p g(x)

    f(x) = ggT(f(x), g(x)p g(x))

    =

    p1i=0

    ggT(f(x), g(x) i).

    Mit g(x)i sind auch die Polynome ggT(f(x), g(x)i) paarweise teilerfremdund haben einen Grad kleiner als f(x). Mindestens zwei haben einen Gradgroer 0, die man noch zu zwei teilerfremden Faktoren zusammenfassen kann.Dies ergibt die gewunschte Zerlegung von f(x).

    Sei umgekehrt f(x) = f1(x)f2(x) eine Zerlegung von f(x) in teilerfremdeFaktoren. Wir betrachten das Kongruenzensystem

    g(x) i mod fi(x), i = 1, 2

    50

  • im Polynomring Zp[x]. Nach dem Chinesischen Restsatz gibt es ein solchesPolynom g(x) von einem Grad kleiner als deg(f). Da deg(fi) > 0, kann g(x)kein Polynom vom Grade 0 sein. Es folgt, da fi(x) ein Teiler von g(x) iist. Nach Proposition 2.19 teilt fi(x) auch g(x)

    p g(x), und da die fi(x)teilerfremd sind, ist schlielich f(x) ein Teiler von g(x)p g(x). 2

    Damit man die letzte Proposition zum Faktorisieren eines Polynoms nutzenkann, mu man passende Polynome g(x) bestimmen konnen. Es stellt sichheraus, da diese Aufgabe auf das Losen eines linearen Gleichungssystemsfuhrt. Wir machen den Ansatz

    g(x) = bn1xn1 + + b1x+ b0mit n = deg(f). Dann folgt

    g(x)p = bn1xp(n1) + + b1xp + b0.Division von xpi durch f(x) ergibt

    xip = f(x)mi(x) + ri(x)

    mit einem Rest ri(x) von einem Grad kleiner als n. Es folgt

    g(x)p bn1rn1(x) + + b0r0(x) mod f(x).f(x) teilt also genau dann g(x)p g(x), wenn es

    bn1rn1(x) + + b0r0(x) bn1xn1 b0teilt, falls dieses Polynom also verschwindet. Koeffizientenvergleich fuhrt zueinem linearen Gleichungssystem fur die bi: Sind rj,i die Koeffizienten vonri(x),

    ri(x) = rn1,ixn1 + + r0,i,so ergibt sich in Zp das lineare Gleichungssystem

    bj =n1i=0

    rj,ibi ,

    oder in Matrix-Schreibweise

    (R Id) b = 0mit

    R :=

    r00 . . . r0,n1... ...rn1,0 . . . rn1,n1

    , b := b0...

    bn1

    .51

  • Beispiel. Wir wollen das Polynom

    f(x) = x6 + x5 + x4 + x3 + x2 + x+ 1

    in Z2[x] zerlegen. Die Ableitung ist

    f (x) = 6x5 + 5x4 + 4x3 + 3x2 + 2x+ 1 = x4 + x2 + 1.

    Division von f(x) durch f (x) mit Rest ergibt

    f(x) = (x2 + x)f (x) + 1.

    Der ggT von f(x) und f (x) ist 1, f(x) enthalt daher keine quadratischenAnteile. Nun berechnen wir die Restpolynome ri(x):

    x0 = f(x) 0 + 1 r0(x) = 1x2 = f(x) 0 + x2 r1 = x2x4 = f(x) 0 + x4 r2 = x4x6 = f(x) + (x5 + + 1) r3(x) = x5 + x4 + x3 + x2 + x+ 1x8 = f(x)(x2 + x) + x r4(x) = xx10 = f(x)(x4 + x3) + x3 r5(x) = x

    3,

    also

    R =

    1 0 0 1 0 00 0 0 1 1 00 1 0 1 0 00 0 0 1 0 10 0 1 1 0 00 0 0 1 0 0

    .Fur b erhalten wir das Gleichungssystem

    b0 = b0 + b3, b2 = b1 + b3, b4 = b2 + b3,b1 = b3 + b4, b3 = b3 + b5, b5 = b3,

    das sich zub1 = b2 = b4, b3 = b5 = 0

    zusammenfassen lat. b0 ist beliebig. Aus der Bedingung deg(g) > 0 in Pro-position 2.21 folgt, da nur die Wahl b1 = 1 zu einer Faktorisierung von f(x)fuhrt. Wir erhalten also

    g(x) = x4 + x2 + x+ b0,

    und die Faktorisierung

    f(x) = ggT(f(x), x4 + x2 + x) ggT(f(x), x4 + x2 + x+ 1)= (x3 + x+ 1)(x3 + x2 + 1).

    Beide Faktoren haben in Z2[x] keine Nullstellen und sind damit irreduzibel.

    52

  • 2.11 Gruppen

    Die Satze von Fermat und Euler sind Spezialfalle eines allgemeinen Satzesder Gruppentheorie, den wir nun behandeln wollen. Im folgenden sei G eineGruppe mit neutralem Element e.

    Definition 2.22. H G heit Untergruppe von G, falls a b H unda1 H fur alle a, b H. Als Links- und Rechtsnebenklassen von Hbezeichnet man die Mengen

    aH := {ab : b H} bzw. Ha := {ba : b H},

    wobei a durch G lauft.

    Beispiel. Die Menge H der quadratischen Reste bilden eine Untergruppe

    von Zm. Gilt namlich a = b2und a = b

    2, so folgt a a = (b b)2 und

    a1 = (b1)2. Wegen 1

    2= 1 2 ist H 6= Zm, sofern m > 2. 2

    Zwei Linksnebenklassen a1H und a2H sind entweder disjunkt oder gleich:Nehmen wir an, da a1H a2H 6= . Dann gilt a1b1 = a2b2 fur geeigneteb1, b2 H. Es folgt a1b = a2b2b11 b a2H fur alle b H. Deswegen gilta1H a2H, und analog a2H a1H.

    Es ist also G Vereinigung von disjunkten Nebenklassen. Auerdem sindalle Nebenklassen gleichmachtig,

    card aH = cardH,

    denn die Abbildung b 7 ab ist eine Bijektion von H nach aH (die Umkehr-abbildung ist b 7 a1b).

    Dies fuhrt unmittelbar zum Satz von Lagrange. Sei dazu |G| die Ord-nung von G, d.h. die Anzahl ihrer Elemente, und sei [G : H] der Index derUntergruppeH, d.h. die Anzahl der verschiedenen (disjunkten) Nebenklassenvon H in G.

    Satz 2.23. Sei G endliche Gruppe und H Untergruppe. Dann gilt

    |G| = [G : H] |H|.

    Insbesondere ist |G| ein Vielfaches von |H|.

    53

  • Beispiel. Die Anzahl der quadratischen Reste ist fur m > 2 ein echter Tei-ler der Euler-Funktion (m). 2

    Wir betrachten nun spezielle Untergruppen. Sei a G. Dann ist die kleinsteUntergruppe von G, die a enthalt, gegeben durch

    Ha := {. . . , a2, a1, a0 = e, a, a2, . . .}.

    Wir nehmen an, da Ha endlich ist. Dann gibt es ganze Zahlen s < t, so daas = at, also ats = e. Ist k die kleinste naturliche Zahl mit der Eigenschaft

    ak = e,

    so folgtHa = {a, a2, . . . , ak1, e},

    insbesondere (aj)1 = akj und as = e k | s. k heit die Ordnung vona und wird mit ord(a) bezeichnet. ord(a) ist offenbar die Ordnung von Ha.Nach dem Satz von Lagrange ist die Ordnung von a ein Teiler der Ordnungvon G. Daher folgt

    a|G| = e. (2.3)

    Im Fall G = Zm ergibt sich erneut den Satz von Euler:

    a(m) = 1.

    Ist ord(a) = |G|, also Ha = G, so heit G zyklische Gruppe und a einerzeugendes Element von G.

    54

  • Kapitel 3

    Fehlerkorrigierende Kodes

    3.1 Der HammingKode

    Bei der Ubertragung von Nachrichten durch einen gestorten Kanal entste-hen Fehler, die der Empfanger gern erkennen wurde. Man sendet daherdie Nachricht in redundanter Form, die Information wird teilweise wieder-holt oder in eine spezielle Form gebracht, die es erlaubt, Fehler zu ent-decken. Sei zum Beispiel a . . . d eine binare, aus den Bits 0 und 1 zusam-mengesetzte Nachricht. Man kann ihr das Prufbit u a + + d mod 2anhangen und a . . . du senden. Der Empfanger kann dann uberprufen, oba+ + d+ u 0 mod 2 gilt (parity check), und so einen Fehler erkennen.Solche Prufzeichen sind in den Strichkodes auf Warenpackungen, den Interna-tionalen Standard-Buchnummern (ISBN) und den Nummern der deutschenGeldscheine enthalten.

    Werden Daten nur einmal ubertragen (Satellitendaten, Ablesen von Kom-paktdisketten in CD-Spielern), so ist es wichtig, Ubertragungsfehler auch be-heben zu konnen. Zum Beispiel konnte man jedes bit a 3-fach senden: aaa.Der Empfanger entscheidet sich fur das Bit, das in der Nachricht uberwiegt.Dieser Kode korrigiert auf drei Buchstaben einen Fehler, allerdings tragt nurjedes dritte bit Information.

    Wir beschreiben nun einen binaren Kode, der in 7 bits einen Fehler korri-giert, dabei 4 bits Information ubertragt. Die Worte sind Tupel aus 1en und0en, jedes Tupel der Lange 4 wird in ein Tupel der Lange 7 verwandelt. DieBuchstaben werden als Elemente von Z2 aufgefat. Setze

    H :=

    1 0 1 1 1 0 01 1 0 1 0 1 01 1 1 0 0 0 1

    .H ist spaltenweise aus allen 01-Tripeln aufgebaut, abgesehen vom Tripel aus

    55

  • drei Nullen.

    Kodieren. Soll die Botschaft abcd ubertragen werden, so wird der Vektor

    k = (abcduvw)

    gesendet, fur denH kt = 0,

    gilt. In Gleichungen in Z2 ausgedruckt bedeutet dies

    u = a+ c+ d,

    v = a+ b+ d

    w = a+ b+ c.

    Dekodieren.Wird k = (ABCDUVW ) empfangen, so bestimmt man H kt.Gilt H kt = 0, so wird an k keine Anderung vorgenommen. Andernfalls istH kt eine der sieben Spalten von H. Dann wird k an der entsprechendenStelle korrigiert.

    Tritt ein einziger Fehler auf, so enthalt der Vektor f = k k genau eine 1und sechs 0en, und

    H kt = H f ttaucht als Spalte in H an der Position auf, an der es in k zu dem Uber-tragungsfehler gekommen ist. Dies ermoglicht es dem Empfanger, den Fehlerzu korrigieren. Fur k = (1011101) etwa gilt H kt = (001)t, der Fehler ist(vorausgesetzt es liegt nur ein Fehler vor!) an der letzten Stelle aufgetreten,und der Empfanger dekodiert k = (1011100).

    Dieser von Hamming 1950 vorgeschlagene Kode ist in der Korrektur vonFehlern recht wirksam. Ist p = 0, 01 die Wahrscheinlichkeit, da ein Bit falschempfangen wird, und treten Fehler unabhangig voneinander auf, so ist dieWahrscheinlichkeit, da die dekodierte Nachricht Fehler enthalt (da alsomindestens zwei Ubertragungsfehler vorliegen), gleich

    1 (1 p)7 7p(1 p)6 = 0, 0020.Im Kontrast dazu ist die Wahrscheinlichkeit, da bei Ubertragung von 4 bitsmindestens ein Fehler auftritt, fast 20-mal so gro, namlich 1 (1 p)4 =0, 039.

    Durch Modifikation lat sich erreichen, da der Hamming-Kode zwei Feh-ler erkennen und einen korrigieren kann. Sei

    H :=

    1 1 1 1 1 1 1 11 0 1 1 1 0 0 01 1 0 1 0 1 0 01 1 1 0 0 0 1 0

    =

    1 . . . 10

    H 00

    .56

  • Die Botschaft abcd wird als der Vektor k = (abcduvwx) kodiert, der dieGleichung

    H kt = 0erfullt. u, v, w ergeben sich wie oben, ferner gilt a+b+c+d+u+v+w+x = 0,was zu der weiteren Gleichung

    x = b+ c+ d

    in Z2 fuhrt. Der Empfanger bestimmt bei Empfang von k = (ABCDUVWX)wieder H kt. Wir unterscheiden 3 Falle.Fall 1. Tritt kein Ubertragungsfehler ein, so ist H kt = 0.Fall 2. Bei einem Fehler enthalt der Vektor f = k k genau eine 1, und

    H kt = H f t ist wieder die Spalte in H an der Stelle, an der in kder Fehler steckt.

    Fall 3. Bei zwei Fehlern enthalt f genau zwei 1en. Dann ist der oberste Ein-trag von H kt eine 0, und H kt 6= 0, namlich die Summe zweierSpalten aus H. Man erkennt so, da es zwei Ubertragungsfehler gibt,kann ihre Position jedoch nicht mehr erkennen.

    Hammings Konstruktion lat sich verallgemeinern.

    Definition 3.1. Sei H eine binare l (2l 1) Matrix, die als Spalten alle01-Tupel der Lange l besitzt, abgesehen vom Tupel aus lauter Nullen. Derzugehorige binare Kode heit (n,m)-Hamming-Kode, mit n = 2l 1 undm = n l.Diese Kodes, die Worte der Lange m als Worte der Lange n = m+l kodieren,konnen alle einen Fehler korrigieren. Man kann sie erneut so erweitern, so dasie 2 Fehler erkennen. Von praktischer Bedeutung ist allerdings nur der (7,4)-Hamming-Kode. Das Problem besteht darin, da Hamming-Kodes nicht nurFehler korrigieren, sondern auch zusatzliche Fehler erzeugen konnen, wenn esnamlich pro Wort zu mehr als einem Fehler kommt. Diese Tendenz verstarktsich mit wachsendem l. Die folgende Tabelle belegt dies. Sie enthalt denErwartungswert E der Fehler, die ein Kodewort eines (n,m)-Hamming-Kodeenthalt, unter der Annahme, da Fehler pro bit mit Wahrscheinlichkeit p =0, 02 und unabhangig voneinander auftreten.

    l E (2l 1)p(7, 4)Kode 3 0, 024 0, 14

    (31, 26)Kode 5 0, 41 0, 62(127, 120)Kode 7 3, 06 2, 54

    57

  • Zum Vergleich ist die erwartete Anzahl von Fehlern in einer unkodiertenNachricht der Lange 2l 1 angegeben. Das Resultat ist ernuchternd: Furl = 7 erze