Post on 06-Feb-2018
Rechnen modulo n
Bernhard Ganter
Institut fur AlgebraTU Dresden
D-01062 Dresdenbernhard.ganter@tu-dresden.de
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Kanonische Primfaktorzerlegung
Jede naturliche Zahl n > 0 kann auf eindeutige Weise in der Form
n = pα11 · p
α22 · . . . · p
αkk
geschrieben werden, wobei
k ∈ N,
αi ∈ N \ {0} fur i ∈ {1, . . . , k} und
p1 < p2 < · · · < pk Primzahlen sind.
Dies ist die kanonische Primfaktorzerlegung von n.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
ggT und kgV
Je zwei naturliche Zahlen n und m besitzen
einen großten gemeinsamen Teiler ggT(m, n) und
ein kleinstes gemeinsames Vielfaches kgV(m, n).
Zur Bestimmung des ggT kann man den Algorithmus derWechselwegnahme benutzen:
while m 6= n dobegin
if m < n then n := n −m
if n < m then m := m − n
endoutput(‘‘ggT =’’, m).
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Gauss–Klammer
Ist r eine reelle Zahl, dann bezeichnet brc die großte ganze Zahl,die kleiner oder gleich r ist.
Analog ist dre die kleinste ganze Zahl, die großer oder gleich r ist.
Sind a und b ganze Zahlen, b 6= 0, so ist
a div b =⌊a
b
⌋.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
z mod n
Ist z eine beliebige ganze Zahl und ist n > 0 eine naturliche Zahl,dann ist
z mod n := z − n ·⌊z
n
⌋.
Beispielsweise ist
17 mod 5 = 2 und
−17 mod 5 = 3.
In jedem Falle gilt z mod n ∈ {0, 1, . . . , n − 1}.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Rechnen modulo n
Wenn man umfangreiche Rechnungen modulo n auszufuhren hat,dann ist die Homomorphieregel außerordentlich hilfreich. Siebesagt, dass man auch Zwischenergebnisse modulo n rechnen darf,ohne dass sich das Endergebnis andert. Formal besagt sie, dass furganze Zahlen a, b stets folgendes gilt:
(a + b) mod n = (a mod n + b mod n) mod n
(a− b) mod n = (a mod n − b mod n) mod n
(a · b) mod n = (a mod n · b mod n) mod n
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
a ≡ r (mod n)
Der standige Zusatz”
modn“ wird rasch lastig und gernweggelassen. Um Missverstandnisse zu vermeiden, kann man ihnam Ende der Rechnung in Klammern angeben und dieGleichheitszeichen durch ≡ ersetzen, wie im folgenden Beispiel:
(108 · 33)− 22 ≡ (3 · 3) + 3 ≡ 9 + 3 ≡ 2 (mod 5).
Statt a mod n = r schreibt man oft auch
a ≡ r (mod n)
und liest dies etwas altertumlich aber einpragsam als
a ist kongruent zu r modulo n.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Ein Satz von J.P.Fermat
Eine Primzahl p ist genau dann nicht als Summe zweierQuadrate ganzer Zahlen darstellbar, wenn p kongruent zu3 modulo 4 ist.
Solche Ergebnisse der elementaren Zahlentheorie haben in denletzten Jahren fur die Kryptologie an Bedeutung gewonnen.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Rechnen modulo 5
+ 0 1 2 3 4
0 0 1 2 3 41 1 2 3 4 02 2 3 4 0 13 3 4 0 1 24 4 0 1 2 3
− 0 1 2 3 4
0 0 4 3 2 11 1 0 4 3 22 2 1 0 4 33 3 2 1 0 44 4 3 2 1 0
· 0 1 2 3 4
0 0 0 0 0 01 0 1 2 3 42 0 2 4 1 33 0 3 1 4 24 0 4 3 2 1
Die Verknupfungstafeln fur die Rechenarten modulo 5.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Operationen auf einer Menge
Grundsatzlich hat man nahezu unbegrenzte Freiheiten, sich neueRechenstrukturen zu verschaffen: Man wahlt sich eineTragermenge und definiert darauf Operationen, beispielsweiseindem man willkurlich Verknupfungstafeln hinschreibt.
Operation und Verknupfung bedeuten in diesem Zusammenhangdasselbe. Eine n-stellige Operation auf einer Tragermenge Tnimmt als Input eine Folge von n Elementen aus T und gibt einElement von T als Output zuruck.
Eine n-stellige Operation auf T ist also eine Abbildung
f : T n → T .
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Tischtennisturniermultiplikation
a
bc
de
a
bc
de
PPPP
aaa
a
bc
de
��
����
a
bc
deSSSS
SS a
bc
de
����
!!!
x◦y :=
{x falls x = y ,
der Spieler, der aussetzt, wenn x gegen y spielt falls x 6= y .
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Tischtennisturniermultiplikationstafel
a
bc
de
a
bc
de
PPPP
aaa
a
bc
de
��
����
a
bc
deSSSS
SS a
bc
de
����
!!!
◦ a b c d e
a a d b e cb d b e c ac b e c a dd e c a d be c a d b e
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Regeln (1) fur das Rechnen modulo n
Die Addition
ist assoziativ: es gilt (a + b) + c = a + (b + c)fur alle a, b, c ,ist kommutativ: es gilt a + b = b + a fur alle a, b,ist kurzbar: aus a + b = a + c folgt stets b = c .Das ist wichtig, wenn man Gleichungen losenwill.hat 0 als neutrales Element: a + 0 = 0 + a = agilt fur alle a.hat inverse Elemente: Zu jedem a ist−a := 0− a ein Element mita + (−a) = 0 = (−a) + a. Daraus folgt ubrigensdie Kurzbarkeit.
(Zn,+ mod n,− mod n, 0) ist eine abelsche Gruppe.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Regeln (2) fur das Rechnen modulo n
die Multiplikation
ist assoziativ: es gilt (a · b) · c = a · (b · c) furalle a, b, c,ist kommutativ: es gilt a · b = b · a fur alle a, b,hat 1 als neutrales Element: a · 1 = a = 1 · a giltfur alle a.ist uber der Addition distributiv:a · (b + c) = a · b + a · c gilt fur alle a, b, c(Leseregel:
”Punktrechnung vor
Strichrechnung“).
Zn := (Zn,+ mod n,− mod n, · mod n, 0, 1)
ist ein kommutativer Ring mit Eins.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Ein anderer Zugang zu Zn
Fur Zahlenmengen A,B ⊆ R definiert man die Komplexadditiondurch
A + B := {a + b | a ∈ A, b ∈ B}.
Entsprechend kann man eine Komplexsubtraktion und eineKomplexmultiplikation einfuhren.
So kommt man (wenn man noch Klammern einspart) furnaturliche Zahlen n und r zu
nZ + r := {. . . , r − 2n, r − n, r , r + n, r + 2n, . . .},
der Restklasse zum Rest r modulo n. Diese Menge enthalt genaudiejenigen ganzen Zahlen, die bei der ganzzahligen Division durchn den Rest r ergeben.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Restklassenringe
Man uberzeugt sich, dass bei festem n die
Komplexaddition,
Komplexsubtraktion und
Komplexmultiplikation
von Restklassen als Ergebnisse immer Restklassen liefern.
Die Restklassen modulo n bilden einen kommutativen Ring mitEins, den Restklassenring der ganzen Zahlen modulo n.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Rechnen mit Reprasentanten
Jede Restklasse modulo n enthalt genau eine der Zahlen{0, 1, . . . , n − 1}.
Deshalb rechnet man nicht wirklich mit den Restklassen, sondernmit ihren Reprasentanten aus Zn.
Das entspricht genau der oben eingefuhrten Rechenweise modulon.
Der Restklassenring modulo n ist also isomorph zum Ring Zn derganzen Zahlen modulo n.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Rechnen modulo 2
Der fur die Informatik wichtigste Fall ist naturlich Z2. In diesemFall stimmen Addition und Subtraktion uberein. Die beidenRestklassen sind die Menge der geraden und die der ungeradenZahlen.
+ 0 1
0 0 11 1 0
· 0 1
0 0 01 0 1
Das Rechnen modulo 2.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Dividieren modulo n?
Eine Division modulo n kann man nicht ohne erheblicheEinschrankungen erfinden.
Das zeigt ein einfaches Beispiel: das Rechnen modulo 6.
Wenn es moglich ware, eine Division durch 2 modulo 6 zu erfinden,dann sollte doch jedenfalls 2 geteilt durch 2 das Ergebnis 1 und 0geteilt durch 2 das Ergebnis Null liefern.Daraus erhalt man die widerspruchliche Gleichung
3 ≡ 3 · 1 ≡ 3 · 2
2≡ 3 · 2
2≡ 0
2≡ 0 (mod 6).
So geht es also nicht!
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Nullteiler
Man kann dieses Beispiel verallgemeinern.Man nennt eine Zahl a 6= 0 (in einem Ring) einen Nullteiler, wennes eine Zahl b 6= 0 mit a · b = 0 gibt.
Im Ring Z6 ist diese Bedingung fur a = 2 und b = 3 erfullt:2 ist also ein Nullteiler in Z6.
Die Argumentation der vorigen Seite zeigt:
eine Division durch Nullteilerkann nicht sinnvoll definiert werden.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Einheiten
Eine Zahl a in einem Ring ist eine Einheit, wenn es eine Zahl bmit a · b = 1 gibt.
Durch Einheiten kann man”dividieren“, denn b verhalt sich ja wie
ein Kehrwert zu a.
Man sagt, b sei multiplikativ invers zu a.
Man dividiert durch a, indem man mit b multipliziert.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Mittelwert mod 5
Auf diese Weise konnen wir z.B. einen”Mittelwert modulo 5“
definieren, namlich die Operation
a • b := 3(a + b) mod 5,
denn wegen 2 · 3 mod 5 = 1 ist 3(a + b) modulo 5 dasselbe wiea+b2 .
• 0 1 2 3 4
0 0 3 1 4 21 3 1 4 2 02 1 4 2 0 33 4 2 0 3 14 2 0 3 1 4
.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Tischtennis mod 5
Auf diese Weise konnen wir z.B. einen”Mittelwert modulo 5“
definieren, namlich die Operation
a • b := 3(a + b) mod 5,
denn wegen 2 · 3 mod 5 = 1 ist 3(a + b) modulo 5 dasselbe wiea+b2 .
◦ a b c d e
a a d b e cb d b e c ac b e c a dd e c a d be c a d b e
∼=
• 0 1 2 3 4
0 0 3 1 4 21 3 1 4 2 02 1 4 2 0 33 4 2 0 3 14 2 0 3 1 4
.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Welche Zahlen sind Einheiten mod n?
Durch Einheiten kann man dividieren, durch Nullteiler nicht.
Es bleibt die Frage, wie man Einheiten und Nullteiler erkennt.
Modulo n ist das einfach:
Hilfssatz Eine Zahl a ∈ {1, . . . , n − 1} ist genau dann eine Einheitmodulo n, wenn a zu n teilerfremd ist.Ist a keine Einheit, dann ist a ein Nullteiler.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Eulersche ϕ-Funktion
Die Eulersche ϕ-Funktion ist fur n ∈ N folgendermaßen definiert:
ϕ(n) := |{e ∈ {0, . . . , n − 1} | ggT(e, n) = 1}|.
ϕ(n) gibt also die Anzahl der zu n teilerfremden naturlichen Zahlenan, die kleiner als n sind.
ϕ(n) gibt also auch die Anzahl der Einheiten in Zn an.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Eine Formel fur ϕ(n)
Satz Istn = pα1
1 · pα22 · . . . · p
αkk
die kanonische Primfaktorzerlegung von n, dann gilt
ϕ(n) = n · (1− 1
p1) · (1− 1
p2) · · · (1− 1
pk).
Beispiel: 1008 = 24 · 32 · 7, deshalbϕ(1008) = 1008 · (1− 1
2) · (1− 13) · (1− 1
7) = 1008 · 12 ·
23 ·
67 = 288.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Funktion Wegnahme
Input: Eine Menge {a, b}, bestehend aus naturlichen Zahlena und b.
Output: WN({a, b}) :=
{{b, a− b} falls a ≥ b
{a, b − a} sonst.
Es wird also die großere der beiden Zahlen ersetzt durch diepositive Differenz der beiden Zahlen. Das Ergebnis ist eine zwei-oder einelementige Menge.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Eigenschaften der Funktion Wegnahme
1 Ist{a1, b1} = WN({a, b}),
dann gibt es ganze Zahlen λ1, λ2, λ3, λ4 mit
a1 = λ1 · a + λ2 · b
undb1 = λ3 · a + λ4 · b.
2 Ist {a1, b1} = WN({a, b}) und ist d ein gemeinsamer Teilervon a1 und b1, dann ist d auch ein Teiler von a und von b.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Wechselwegnahme
Algorithmus Wechselwegnahme.Input: Naturliche Zahlen a, b.
while |{a, b}| = 2 do
{a, b} := WN({a, b});
Output: a.
Weil bei jedem while-Schritt die großere der beiden Zahlenverkleinert wird, terminiert dieser Algorithmus offenbar, d.h., erkommt zu einem Ergebnis.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel zur Wechselwegnahme
Input: 154 238238− 154 = 84 also: 154 84154− 84 = 70 also: 84 7084− 70 = 14 also: 70 1470− 14 = 56 also: 56 1456− 14 = 42 also: 42 1442− 14 = 28 also: 28 1428− 14 = 14 also: 14 14
stop.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
ggT-Berechnung
Hilfssatz Der Algorithmus Wechselwegnahme berechnet dengroßten gemeisamen Teiler (ggT).
Beweis Sei d das Ergebnis einer Ausfuhrung des Algorithmus beidem Input {a, b}. Wendet man die Beobachtungen 1) und 2)induktiv an, so erhalt man:
1 Es gibt ganze Zahlen α, β mit d = α · a + β · b,
2 d teilt a und b.
Das zweite zeigt, dass d ein gemeinsamer Teiler von a und b ist,und aus dem ersten folgt, dass jeder gemeinsame Teiler von a undb auch ein Teiler von d ist. Deshalb muss d der großtegemeinsame Teiler von a und b sein.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beobachtung
Eine Erkenntnis aus dem Beweis wollen wir als Satz festhalten, weilsie oft sehr nutzlich ist:Satz Zu je zwei ganzen Zahlen a, b existieren ganze Zahlen α, βmit
ggT(a, b) = α · a + β · b.
Diese Zahlen α, β kann man durch”Ruckwartseinsetzen“ beim
Algorithmus”Wechselwegnahme“ leicht bestimmen.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beschleunigung der ggT-Berechnung
Am Beispiel erkennt man eine Moglichkeit, den Algorithmus zubeschleunigen: die letzten vier Schritte kann man zu einemeinzigen zusammenfassen.Funktion Mehrfachwegnahme.Input: Naturliche Zahlen a und b mit a ≥ b.Output: MW(a, b) := (b, a mod b).Es wird also die großere der beiden Zahlen ersetzt durch ihren Restmodulo der anderen.Algorithmus (Euklidischer Algorithmus).Input: Ganze Zahlen a, b mit a ≥ b ≥ 0while b 6= 0 do(a, b) := MW(a, b);Output: a.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
. . . berechnet den ggT
Der Euklidische Algorithmus fuhrt offenbar zum gleichen Ergebniswie die Wechselwegnahme. Wir haben also:
Satz Der Euklidische Algorithmus berechnet den ggT.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel
a b
238 154 238 mod 154 = 84
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel
a b
238 154 238 mod 154 = 84154 84 154 mod 84 = 70
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel
a b
238 154 238 mod 154 = 84154 84 154 mod 84 = 70
84 70 84 mod 70 = 14
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel
a b
238 154 238 mod 154 = 84154 84 154 mod 84 = 70
84 70 84 mod 70 = 1470 14 70 mod 14 = 0
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel
a b
238 154 238 mod 154 = 84154 84 154 mod 84 = 70
84 70 84 mod 70 = 1470 14 70 mod 14 = 0 ggT(238, 154) = 14
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel
a b
238 154 238 mod 154 = 84154 84 154 mod 84 = 70
84 70 84 mod 70 = 14 14 = 84− 7070 14 70 mod 14 = 0 ggT(238, 154) = 14
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel
a b
238 154 238 mod 154 = 84154 84 154 mod 84 = 70 70 = 154− 84
84 70 84 mod 70 = 14 14 = 84− 7070 14 70 mod 14 = 0 ggT(238, 154) = 14
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel
a b
238 154 238 mod 154 = 84 84 = 238− 154154 84 154 mod 84 = 70 70 = 154− 84
84 70 84 mod 70 = 14 14 = 84− 7070 14 70 mod 14 = 0 ggT(238, 154) = 14
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel
a b
238 154 84 = 238− 154154 84 70 = 154− 84
84 70 14 = 84− 7070 14 ggT(238, 154) = 14
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel
a b
238 154 84 = 238− 154154 84 70 = 154− 84
84 70 14 = 84− 70 ggT = 84− 7070 14 ggT(238, 154) = 14
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel
a b
238 154 84 = 238− 154154 84 70 = 154− 84 ggT = 2 · 84− 154
84 70 14 = 84− 70 ggT = 84− 7070 14 ggT(238, 154) = 14
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beispiel
a b
238 154 84 = 238− 154 ggT = 2 · 238− 3 · 154154 84 70 = 154− 84 ggT = 2 · 84− 154
84 70 14 = 84− 70 ggT = 84− 7070 14 ggT(238, 154) = 14
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Beweis des Hilfssatzes uber die Einheiten
Beweis Wenn a zu n teilerfremd ist, dann gibt es nach dem SatzZahlen α und β mit
α · a + β · n = 1
und folglichα · a ≡ 1 (mod n),
woraus(α mod n) · a ≡ 1 (mod n)
folgt. α mod n ist dann multiplikativ invers zu a in Zn.Ist ggT (a, n) =: d > 1, dann ist b := n
d eine ganze Zahl in Zn, dievon Null verschieden ist. Aber a · b ist dann ein Vielfaches von nund folglich a · b ≡ 0 (mod n), d.h. a ist ein Nullteiler oder gleich0.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
Inversenberechnung modn
Aufgabe: Bestimme die Losung der Gleichung
13 · x mod 109 = 10.
Losungsweg:
1 Zeige mit Hilfe des Euklidischen Algorithmus, dassggT(109, 13) = 1 gilt.
2 Berechne Zahlen α und β mit 1 = α · 13 + β · 109.
3 Multiplikativ invers zu 13 ist dann α mod 109.
4 Die (einzige) Losung der Aufgabe ist daher
x = 10 · α mod 109.
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker
GF(p)
Wenn p eine Primzahl ist, dann ist jede Zahl in {1, 2, . . . , p − 1}teilerfremd zu p.
Wenn p eine Primzahl ist, dann gibt es modulo p keine Nullteiler.Man kann durch alle Zahlen von Zp (außer Null) modulo pdividieren.
Der Ring Zp, p prim, ist ein Korper!
Er wird auch mit dem Symbol GF(p) abgekurzt (“Galois-Field”).
Bernhard Ganter, TU Dresden Mathematik I fur Informatiker