Vorlesung Mathematik 2 für Informatik Literatur

Werbung
Vorlesung Mathematik 2 für Informatik
Inhalt:
I Modulare Arithmetik
I Lineare Algebra
I Vektoren und Matrizen
I Lineare Gleichungssysteme
I Vektorräume, lineare Abbildungen
I Orthogonalität
I Eigenwerte und Eigenvektoren
Literatur
Teschl/Teschl: Mathematik für Informatiker, Band 1,
Kapitel 3, 9, 10, 11, 13 und 14
modular13.pdf, Seite 1
Modulare Arithmetik (Teschl/Teschl 3)
Idee:
Rechnen in einem endlichen Teilbereich der ganzen Zahlen
basierend auf dem ModuloOperator, welcher mit Hilfe der
Division mit Rest deniert wird.
Da nur endlich viele Werte vorkommen, können dieses auf dem
Computer exakt (ohne Rundungsfehler) dargestellt werden.
Anwendungen
u. a. bei Verschlüsselung von Daten
modular13.pdf, Seite 2
Division mit Rest
≥ 2 gibt eindeutig
0 ≤ r < m sodass
Zu ganzen Zahlen m und n mit m
bestimmte Zahlen k , r
∈Z
n
mit
= k · m + r.
Dabei ist r der Divisionsrest, Notation
r
=n
mod m
(gesprochen n modulo m).
Beispiele
I 13
= 2 · 5 + 3,
= 13
d. h. zu n
Es folgt 13
I 1234
I
−10
und m
mod 5
=5
ist k
=2
und r
= 3.
= 3.
= 1 da 1234 = 137 · 9 + 1,
3 = 2, da −10 = −4 · 3 + 2.
mod 9
mod
modular13.pdf, Seite 3
Kongruenz
Ganze Zahlen a und b heiÿen kongruent modulo m, wenn
a
Notation a
≡b
mod m
=b
(mod m ) oder a
mod m ,
=b
(mod m ).
Dies ist genau dann der Fall, wenn sich a und b um ein
Vielfaches von m unterscheiden:
a
=b
(mod m )
⇔b−a =k ·m
mit k
∈ Z.
mod 7
=2
Beispiel
I 16
= 30
(mod 7), da 16 mod 7
= 30
− 16 = 14 = 2 · 7.
5 = −7 (mod 4),
da −7 − 5 = −3 · 4 (bzw. 5 − (−7) = +3 · 4)
bzw. 30
I
modular13.pdf, Seite 4
Rechnenregeln für Kongruenzen
Ist a
=c
(mod m ) und b
=d
+b =
a−b =
a·b =
a
(mod m ), so gilt
c
c
c
+ d (mod m)
− d (mod m)
· d (mod m)
Beispiel
Aus 12
12
= 22 = 2
(mod 10) und 23
= 13 = 3
· 23 = 276 = 22 · 13 = 286 = 2 · 3 = 6
(mod 10) folgt
(mod 10)
Der Beweis der Regeln
erfolgt mit Hilfe der Denition:
Ist c
c
= a + k1 · m
und d
= b + k2 · m,
+ d = a + b + (k1 + k2 ) · m,
also c
so folgt z. B.
+d =a+b
(mod m ).
modular13.pdf, Seite 5
Anwendungen
I Uhrzeit:
9 Uhr
+
11 Stunden
=
8 Uhr (9
9 Uhr plus 23 mal 17 Stunden
=
+ 11 = 8
mod 12),
4 Uhr.
I Wochentage (Rechnung modulo 7)
I Teilbarkeitsregeln, z. B. eine Zahl ist genau dann durch 9
teilbar, wenn ihre Quersumme durch 9 teilbar ist
I Prüfziern, z. B. ISBN-Nummer abc-d-efg-hijkl-p mit
a + c + e + g + i + k + p + 3 · (b + d + f + h + j + l )
=0
mod 10.
I Hashfunktionen, z. B. MD5Summe
I Krytographie
modular13.pdf, Seite 6
Beispiel
Frage: Welcher Wochentag ist der 11.11.2222 ?
Antwort: Von Montag, dem 7.10.2013 bis zum 11.11.2222 sind
es 35 Tage plus 209 Jahre, von denen 50 Schaltjahre sind,
also 34
+ 210 · 365 + 50
Tage.
Rechnung modulo 7 ergibt
35
+ 209 · 365 + 50 = 0 + 6 · 1 + 1 = 7 = 0
(mod 7)
Die Zahl der Tage ist also ein Vielfaches von 7, d. h. der
11.11.2222 ist ein Montag.
modular13.pdf, Seite 7
m
Der Restklassenring modulo
Zu einem festen Modul m
∈N
mit m
≥2
setzt man
Zm = {0, 1, ..., m − 1}
Addition, Subtraktion und Multiplkation auf
Zm
werden
deniert durch
a
+b
mod m,
a
−b
mod m,
und
a
·b
mod m.
Diese Rechenoperationen werden als modulare Arithmetik
bezeichnet.
Beispiel
In
Z10 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
1
+ 1 = 2,
2
− 8 = −6
6
+ 7 = 13
mod 10
=4
mod 10
und 6
ist
= 3,
· 7 = 2.
modular13.pdf, Seite 8
Bemerkung
Formal kann
Zm
als Menge von Äquivalenzklassen betrachtet
werden. Dazu stellt man fest, dass für einen gegebenen festen
Modul m Kongruenz modulo m eine Äquivalenzrelation auf
Z
ist.
Die Äquivalenzklassen bezüglich dieser Relation werden als
Restklassen modulo m bezeichnet.
Z. B. ist
{..., −18, −8, 2, 12, 22, ...} eine
Restklasse modulo 10.
Jede Restklasse hat einen eindeutig bestimmten
Repräsentanten zwischen 0 und m
−1
(im Beispiel 2).
modular13.pdf, Seite 9
Der Restklassenring
kann nun deniert werden als Menge aller Resklassen
modulo m:
Zm = {0, 1, 2, ..., m − 1},
wobei jetzt jede Zahl als Repräsentant für ihre Restklasse
steht.
Aus den Rechenregeln folgt, dass sich bei Addition,
Subtraktion und Multiplikation das Ergebnis nicht ändert,
wenn eine Zahl durch ein anderes Element ihrer Restklasse
ersetzt wird.
Diese Eigenschaft erlaubt es, die modulare Arithmetik als
Rechnen mit Restklassen zu interpretieren.
modular13.pdf, Seite 10
Beispiel (Restklassen modulo 5)
= 5 gibt es 5 Restklassen:
{..., −5, 0, 5, 10, ...} (Repräsentant 0),
{..., −4, 1, 6, ...} (Repräsentant 1),
{..., −3, 2, 7, ...} (Repräsentant 2),
{..., −2, 3, 8, ...} (Repräsentant 3),
{..., −6, −1, 4, 9, ...} (Repräsentant 4).
Mit m
Es ist z. B.
{..., −3, 2, 7, ...} + {..., −1, 4, 9, ...} = {..., −4, 1, 6, 11, ...}
bzw. mit Repräsentanten 2
+4=1
(mod 5),
{..., −3, 2, 7, ...} − {..., −1, 4, 9, ...} = {..., −12, −7, −2, 3, 8, ...}
bzw. 2
−4=3
(mod 5),
{..., −3, 2, 7, ...} · {..., −1, 4, 9, ...} = {..., −12, −7, −2, 3, 8, ...}
bzw. 2
·4=3
(mod 5).
modular13.pdf, Seite 11
Verknüpfunstabellen in
In
Z5
Z5
erhält man die folgenden Additions- und
Multiplikationstabellen:
+
0
1
2
3
4
·
0
1
2
3
4
0
0
1
2
3
4
0
0
0
0
0
0
1
1
2
3
4
0
1
0
1
2
3
4
2
2
3
4
0
1
2
0
2
4
1
3
3
3
4
0
1
2
3
0
3
1
4
2
4
4
0
1
2
3
4
0
4
3
2
1
sowie
Die Tabelleneinträge sind die Summe (links) bzw. das Produkt
(rechts) der beiden zur jeweiligen Spalte und Zeile gehörenden
Restklassen. Dabei wird jede Restklasse durch ihren
Repräsentanten
∈ {0, 1, 2, 3, 4}
dargestellt.
modular13.pdf, Seite 12
Bemerkung
Aus der Denition und den Rechenregeln folgt, dass die
Gesetzte für das Rechnen mit ganzen Zahlen auch beim
Rechnen in
Zm
gültig sind:
+ b = b + a sowie a · b = b · a (Kommutativgesetze),
(a + b) + c = a + (b + c ) sowie (a · b) · c = a · (b · c )
I a
I
(Assoziativgesetze),
· (b + c ) = a · b + a · c (Distributivgesetz)
a + 0 = a sowie a · 1 = a (neutrale Elemente)
Inverse der Addition: Mit −a = m − a ist a − a = 0.
I a
I
I
modular13.pdf, Seite 13
Grundidee bei der Verschlüsselung von Daten
Die Daten werden zunächst in Zahlen umgewandelt. Diese (der
Klartext) werden mittels modularer Arithmetik in andere
Zahlen (Geheimtext) umgerechnet. Man spricht von einem
Tauschchire.
Zur Entschlüsselung muss die angewandte Rechenoperation
wieder rückgängig gemacht werden.
modular13.pdf, Seite 14
Beispiel: CaesarVerschlüsselung
1. Schritt Buchstaben
also A
7→ 0,
B
7→ 1,
→ Z26 ,
C
Beispiel: KLEOPATRA
7→ 2,
..., Z
7→ 10
Z. B. mit k
= 10:
11 4 14 15 0 19 17 0,
7→ x + k
2. Schritt: Verschlüsselung x
wobei der Schlüssel k
7→ 25
∈ Z26
(mod 26),
als Konstante gewählt wird.
KLEOPATRA
7→ 20
21 14 24 25 10 3 1 10
Verschlüsselter Text (Geheimtext): UVOYZKDBK
Entschlüsselung: y
7→ y + 16
Dabei wird benutzt, dass 16
(mod 26).
= 26 − 10
das additive Inverse
von 10 modulo 26 ist, also
(x + 10) + 16 = x + (10 + 16) = x + 0 = x
(mod 26).
modular13.pdf, Seite 15
Erweiterter Ansatz mit Multiplikation
x
7→ a · x + b
(mod 26), z. B. a
KLEOPATRA
BANANE
7→
ANRENNEN
7→
= 2, b = 3:
XZLFHDPLD
FDDDDL
7→
DDLLDDLD
Problem
Die Abbildung x
⇒
7→ 2x + 3
(mod 26) ist nicht injektiv!
Geheimtext nicht eindeutig entschlüsselbar.
Ansatz: Entschlüsselung mittels Division
y
= ax + b ⇔ ax = y − b ⇔ x =
1
a
· (y − b) = a−1 · (y − b)
Frage: Wie kann ein multiplikatives Inverses a−1
?
sinnvoll
deniert werden?
modular13.pdf, Seite 16
Beispiel
Wird die Verschlüsselungsformel y
= 3x + 2
(mod 26)
verwendet,
so folgt aus 3
y
·9=1
(mod 26) (Rechnung modulo 26):
= 3x + 2 ⇒ 3x = y − 2 ⇒ 9 · 3x = 9 · (y − 2)
⇒ x = 9y − 18 = 9y + 8
Die Multiplikation mit 9 macht somit die Multiplikation mit 3
rückgängig,
9 ist das multiplikative Inverse von 3 modulo 26.
Allgemein
= a−1 ist multiplikatives
b · a = 1 (mod m ).
b
Inverses von a modulo m, wenn
modular13.pdf, Seite 17
Frage
Wann existieren multiplikative Inverse und wie können Sie
bestimmt werden?
Zur Antwort muss der gröÿte gemeinsame Teiler betrachtet
werden.
Teilbarkeit
Seien m , n
∈ Z.
m ist Teiler von n (Notation m |n, gesprochen m teilt n),
wenn es ein k
Es gilt n |m
∈Z
gibt mit n
⇔n=0
= k · m.
(mod m ).
Beispiel: 13|65, da 65 = 5 · 13,
14|
− 84,
da
−84 = −6 · 14.
modular13.pdf, Seite 18
Primzahlen
Eine Zahl p
>1
heiÿt Primzahl, wenn sie auÿer 1 und p keine
positiven Teiler hat.
Beispiel
±1, ±2, ±3, ±4, ±6, ±8, ±12
und
±24
sind Teiler von 24,
insbesondere ist 24 keine Primzahl.
2, 3, 5, 7, 11, 13, 17, ..., 1009, ... sind Primzahlen.
modular13.pdf, Seite 19
Fakten
I Es gibt unendlich viele Primzahlen.
I Jede natürliche Zahl ist auf (bis auf die Reihenfolge)
eindeutige Weise als Produkt von Primzahlen darstellbar
(Primfaktorzerlegung).
Beispiel
60
= 22 · 3 · 5,
1001
= 7 · 11 · 13,
1003
= 17 · 59,
1007
= 19 · 53.
modular13.pdf, Seite 20
Satz (Euklid)
Es gibt unendliche viele Primzahlen
Beweis durch Widerspruch
Annahme: Es gibt nur endliche viele Primzahlen p1 , p2 , ..., pn .
Setze
m
= p1 · p2 · ... · pn + 1.
Dann gibt es keine Primzahl, die Teiler von m ist, da alle
Primzahlen Teiler von m
−1
sind.
Widerspruch dazu, dass sich m in Primfaktoren zerlegen lässt!
Folgerung: Die Annahme war falsch, der Satz richtig!
modular13.pdf, Seite 21
Bemerkung: Primzahlsatz, 1896 bewiesen
≤ n)
∼
an
lim
n→∞ bn
= 1.
(Anzahl der Primzahlen
Dabei ist
an
∼ bn ⇔
n
ln n
Beispiel
Aus
999.999.999
ln 999.999.999
≈ 48.254.942
folgt, dass es etwa 50.000.000
Primzahlen mit maximal 9 Stellen geben sollte bzw. etwa jede
20. neunstellige Zahl eine Primzahl ist.
Tatsächlich liegt die exakte Anzahl bei 50.847.534.
modular13.pdf, Seite 22
Gröÿter gemeinsamer Teiler
Der ggT(a, b ) ist die gröÿte natürliche Zahl k mit
k |a und k |b.
Beispiel
ggT(60, 78)
= 6,
ggT(330, 1001)
ggT(64, 121)
= 11,
= 1.
Zahlen a und b mit ggT(a, b )
=1
heiÿen teilerfremd.
Bemerkung
ggT(a, b ) ist das Produkt aller gemeinsamen Primfaktoren von
a und b.
Beispiel: 60
⇒
= 2 · 2 ·3 · 5
ggT(60, 78)
und 78
=2·3=6
= 2 · 3 · 13
modular13.pdf, Seite 23
Euklidischer Algorithmus zur Berechnung des ggT
Beruht auf folgender Beobachtung:
Ist r
=a
mod b, so gilt
ggT(a, b )
= ggT(b, r ).
Der Algorithmus
Zu a, b
x0
= a,
xn +1
∈N
x1
mit a
=b
= xn −1
setze
und deniere rekursiv
mod xn ,
solange, bis xn+1
Dann ist xn
>b
= 0.
= ggT(a, b).
modular13.pdf, Seite 24
Beispiel
Berechnung von ggT(5124, 18711):
x0
= 18711,
x2
= 18711
x3
= 5124
mod 3339
= 1785,
x4
= 3339
mod 1785
= 1554,
x5
= 1785
mod 1554
= 231,
x6
= 1554
mod 231
x7
= 231
mod 168
x8
= 168
mod 63
x9
= 63
x10
= 42
= 5124,
x1
mod 5124
mod 42
= 3339,
= 168,
= 63,
= 42,
= 21,
mod 21
=0
⇒ ggT(5124, 18711) = 21.
modular13.pdf, Seite 25
Satz
Es gibt genau dann ein multiplikatives Inverses a
−1
von a
modulo m, wenn a und m teilerfremd sind, also ggT(a, m )
a
−1
ist in diesem Fall in
Zm
= 1.
eindeutig bestimmt.
Beweisidee
Haben a und m einen gemeinsamen Teiler t
> 1,
so ist a
·b
mod m immer ein Vielfaches von t , kann also niemals 1
werden.
Ist umgekehrt ggT(a, m )
= 1,
so liefert der erweiterte
euklidische Algorithmus eine Lösung der Gleichung
a
·b =1
(mod m ) (siehe folgende Seiten).
Die Eindeutigkeit des Inversen folgt aus den Rechenregeln: Ist
ab
b
= ac = 1
(mod m ), so gilt
=b·1=b·a·c =a·b·c =1·c =c
(mod m ).
modular13.pdf, Seite 26
Methoden zur Bestimmung des Inversen
1. Probieren
für kleine m: z. B. mit
2
· 3 = 6,
3
m
· 3 = 2,
=7
4
und a
=3
· 3 = 5,
5
·3=1
(mod 7),
also ist 5 multiplikatives Inverses von 3 modulo 7.
2. Ein etwas eektiverer Ansatz
Wähle k
Mit b
∈N
so, dass k
= (k · m + 1)/a
a
·m+1
durch a teilbar ist.
ist dann
·b =k ·m+1=1
(mod m ),
d. h. b ist multiplikatives Inveres von a.
modular13.pdf, Seite 27
Beispiel
a=
7,
27
= 26 + 1,
53
= 2 · 26 + 1
79
= 3 · 26 + 1
m=
26
und
sind nicht durch 7 teilbar, aber
105
= 4 · 26 + 1 = 15 · 7,
also ist 15
=
4·26+1
multiplikatives Inverses von 7 modulo 26.
7
modular13.pdf, Seite 28
Erweiterter euklidischer Algorithmus
Mit Hilfe des euklidischen Algorithmus lassen sich für beliebige
natürliche Zahlen a und m Faktoren k , l
∈Z
berechnen, so
dass gilt
k
Ist ggT(a, m )
1
= 1,
· a + l · m = ggT(a, m).
so folgt dann
=k ·a+l ·m =k ·a
(mod m ),
d. h. k ist multiplikatives Inverses zu a modulo m.
modular13.pdf, Seite 29
Erweiterter euklidischer Algorithmus am Beispiel
a=
25,
m=
264:
Links der einfache euklidische Algorithmus, rechts die daraus
durch Umstellung der linken Gleichung und einsetzen der
rechten Gleichung aus dem vorherigen Schritt gewonnene
Darstellung des jeweiligen Divisionsrestes durch Vielfache von
a und m.
264
25
14
11
3
=
=
=
=
=
· 25 + 14
1 · 14 + 11
1 · 11 + 3
3·3+2
1·2+1
14
10
Damit: 25−1 = −95 = 169
11
3
2
1
in
=
=
=
=
=
− 10 · 25
11 · 25 − 264
2 · 264 − 21 · 25
74 · 25 − 7 · 264
9 · 264 − 95 · 25
264
Z264 .
Z. B. Erläuterung zur 2. Zeile rechts: 25
= 1 · 14 + 11
⇒ 11 = 25 − 1 · 14 = 25 − 1 · (264 − 10 · 25) = 11 · 25 − 264
modular13.pdf, Seite 30
Vereinfachung
Bei der Bestimmung von multiplikativen Inversen kommt es
nur auf das Ergebnis modulo m an, also können alle
Rechnungen modulo m (hier 264) durchgeführt werden. Im
Beispiel erhält man (rechte Seite modulo 264):
264
25
14
11
3
=
=
=
=
=
· 25 + 14
1 · 14 + 11
1 · 11 + 3
3·3+2
1·2+1
10
⇒ 25−1 = −95 = 169
14
11
3
2
1
= −10 · 25
= 25 − 14 = 11 · 25
= 14 − 11 = −21 · 25
= 11 − 3 · 3 = 74 · 25
= 3 − 2 = −95 · 25
(mod 264)
modular13.pdf, Seite 31
Formale Darstellung
Startwerte für Darstellung xn
=m
x1 = a (wobei
k0 = 0
k1 = 1
= kn · a
(mod m ):
I x0
I
I
I
a
<m
Rekursionsformel für n
I xn −1
xn +1
vorausgesetzt wird)
≥ 1:
= xn+1 + qn · xn , also
= xn−1 mod xn und qn = xn−1
div xn ,
wobei div den ganzzahligen Anteil bei der Division angibt.
I kn + 1
= k n − 1 − qn · k n
solange, bis xn+1
Dann ist xn
=
=0
ggT(a, b )
= kn · a
(mod m ).
modular13.pdf, Seite 32
Beispiel
Gesucht ist multiplikatives Inverses von a
modulo m
x0
= 333,
x1
= 55,
x2
= 333
= 333:
k0
k1
= 0,
= 1,
mod 55
⇒
x3
= 55
x3
=3
⇒
= 55
k2
= 3, q1 = 333 div
= 0 − 6 · 1 = −6
55
=6
= 1, q2 = 55 div 3 = 18
⇒ k3 = 1 − 18 · (−6) = 109
mod 3
mod 1
=0
ggT(333, 55)
=1
sowie 109
· 55 = 1
(mod 333),
d. h. 109 ist multiplikatives Inverses von 55 modulo 333.
modular13.pdf, Seite 33
Beispiel
a=
qn
123 und
n
xn
kn
0
346
1
123
2
1
2
100
1
−2
3
23
2
−14
m=
346
(Startwerte in grün)
0
4
4
8
5
7
1
6
1
7
3
31
−45
0
2 Beispielrechnungen: 100
=4
: 23 = 4,
Rest 8, also
q3
= x2
k6
= k4 − q5 · k5 = −14 − 1 · 31 = −45
Aus x7
div x3
=0
sowie
folgt ggT(123, 346)
x4
= x2
mod x3
=8
= x6 = 1.
Das multiplikative Inverse von 123 modulo 346 ist dann
k6
= −45 = 301
(mod 346).
modular13.pdf, Seite 34
Anwendung: Auösung von Gleichungen
Ist a
−1
∈ Zm
modulares Inverses von a modulo m, so kann
= b nach x = a−1 b (mod m)
jede Gleichung der Form ax
aufgelöst werden.
Beispiel
Ein Text ist mit dem Tauschchire y
= 3x + 2
mod 26
verschlüsselt worden:
KLEOPATRA
7→
GJOSVCHBC
−1
Mit dem multiplikativen Inversen 3
BANANE
=9
7→
FCPCPO
modulo 26 erfolgt
die Entschlüsselung gemäÿ
y
= 3x + 2 ⇔ y − 2 = 3x
⇔ x = 9 · 3x = 9(y − 2) = 9y − 18 = 9y + 8
Der Buchstabe G
9
(= 6)
· 6 + 8 = 62 = 10
(mod 26)
im Geheimtext wird z. B. entschlüsselt zu
(mod 26), was dem K im Klartext entspricht.
modular13.pdf, Seite 35
Das RSAVerfahren
ist ein asymmetrisches kryptographisches Verfahren beruhend
auf modularer Arithmetik.
Es besteht aus einem öentlichen Schlüssel, der sich als
bijektive Abbildung f
: Zm → Zm
darstellen lässt.
Zur Entschlüsselung benutzt man die Umkehrabbildung f
−1
,
den privaten Schlüssel .
Dabei ist f so konstruiert, dass sich f
−1
nicht ohne weiteres
aus der Abbildungsvorschrift von f berechnen lässt. Somit darf
der öentliche Schlüssel allgemein bekannt sein.
modular13.pdf, Seite 36
Der kleine Fermatsche Satz
liefert die Grundlage für das RSAVerfahren:
Ist p eine Primzahl, so gilt
a
p −1
=1
(mod p )
für alle a mit ggT(a, p )
=1
Folgerungen:
I ap
=a
(mod p ) für alle a
∈ N,
wenn p Primzahl ist.
I Sind p und q Primzahlen, so gilt
(p −1)·(q −1)
a
= 1 (mod p · q ) für alle a mit
· q ) = 1.
(mod p · q )
ggT(a, p
I an
=a
für alle a
∈ N,
wenn p und q Primzahlen sind und
n
=1
(mod
(p − 1) · (q − 1))
ist.
modular13.pdf, Seite 37
Beispiel
p=
7
Modulo 7 gilt
3
3
2
= 2,
3
5
=3·4=5
3
= 3 · 32 = 6,
6
und
3
Damit lässt sich jedes a
einem k
a
a
∈ {1, 2, ..., 6}.
4
3
=3·5=1
∈ Z7 \ { 0}
= (3k )6 = 36·k = (36 )k = 1k = 1
7
= a · a6 = a · 1 = a
7
=0
= 3k
mit
(mod 7) sowie
(mod 7).
gilt die letzte Gleichung auch für a
damit für alle a
=0
und
∈ Z7 .
sowie a
5
=a
4
= 1 (mod 5) für alle
(mod 5) für alle a ∈ Z.
Eine analoge Rechnung zeigt a
∈ Z5 \ {0}
darstellen als a
Es folgt
6
Wegen 0
a
= 3 · 6 = 4,
modular13.pdf, Seite 38
Fortsetzung Beispiel
Ist nun a
a
a
∈Z
p=
= a6·4 = (a6 )4 = 14 = 1
24
= (a4 )6 = 16 = 1
24
−1
5
(mod 7) und analog
(mod 5),
ist sowohl durch 5 als auch durch 7 und damit
auch durch 35
Somit gilt a
q=
weder durch 5 noch durch 7 teilbar, so gilt
24
d. h. a
7 und
24
=5·7
=1
teilbar.
(mod 35)
⇒ a25 = a · a24 = a
(mod 35) für
alle a, die keinen gemeinsamen Teiler mit 35 haben.
Ähnlich zeigt man a
25
=a
(mod 35) auch dann, wenn a durch
5 und/oder 7 teilbar ist.
modular13.pdf, Seite 39
Einschub: Eziente Berechnung von Potenzen
Zur Berechnung von a
e
(mod n ) kann man wie folgt vorgehen:
I Zunächst berechnet man rekursiv a2 mod n,
a
4
= (a2 )2
mod n,
a
8
= (a4 )2
mod n,
a
16
= ...
I Der Exponent e wird als Dualzahl dargestellt und als
Summe von Zweierpotenzen geschrieben, Beispiel
e
= 21 = (10101)2 = 16 + 4 + 1.
I Schlieÿlich berechnet man (im Beispiel e
21
a
= a16+4+1 = a16 · a4 · a mod n,
= 21)
wobei der ModuloOperator in jedem Zwischenschritt
angewandt wird, damit die Zwischenergebnisse nicht zu
groÿ werden.
modular13.pdf, Seite 40
Beispiel
Mit a
p=
= 10
13,
gilt b
q=
= a2 = 100 = 9
c
= b2 = a4 = 81 = 3
d
= c 2 = a8 = 9
= 3 · 9 = 27 = 1
16
=1
192
= (1016 )12 = 112 = 1
−1
=1
(mod 13) und
(mod 17).
sowohl durch 13 als auch durch 17 und
damit auch durch 13
192
(mod 13).
(mod 17). Es folgt
= 1012·16 = (1012 )16 = 116 = 1
192
10
(mod 13),
192
Damit ist 10
10
(mod 13),
Analog rechnet man 10
10
a=
(mod 13).
Damit erhält man
12
a
= a8+4 = a8 · a4
10
17 und
· 17 = 221
teilbar, d. h.
(mod 221).
modular13.pdf, Seite 41
Fortsetzung Beispiel
Ist nun n
=1
Es folgt
n
k ·192
10 = 10
=1
13,
q=
17 und
(mod 192), so gibt es ein k mit n
a=
n
=a
10
= k · 192 + 1.
· 101 = (10192 )k · 10 = 1k · 10 = 10
Analog rechnet man a
n
p=
(mod 221).
(mod 221) für beliebiges a, falls
(mod 192).
Ist nun eine zu 192 teilerfremde Zahl e gegeben und d
modulares Inverses von d modulo 192, so folgt mit
n
=d ·e =1
(mod 192)
(ae )d = ae ·d = a
(mod 221) für alle a
∈ Z221 .
modular13.pdf, Seite 42
Aufbau des RSAVerfahrens
Man wählt einen Modul n
=p·q
mit hinreichend groÿen
Primzahlen p und q (in der Praxis werden Primzahlen mit
mehreren Hundert Stellen benutzt).
Für den öentlichen Schlüssel wird n sowie ein Exponent e
bekannt gegeben.
Um daraus den für die Entschlüsselung benötigten privaten
Schlüssel zu bestimmen, muss man p und q kennen, d. h. die
Primfaktorzerlegung von n berechnen. Dies ist jedoch extrem
aufwändig und praktisch nicht durchführbar, wenn p und q
groÿ genug sind.
modular13.pdf, Seite 43
Öentlicher und privater Schlüssel
Der öentliche Schlüssel
(n, e )
besteht aus dem
= p · q und einem Exponenten e, der zu
m = ϕ(n ) = (p − 1) · (q − 1) teilerfremd sein muss.
Modul n
Dabei bezeichnet
ϕ(m)
Der private Schlüssel
die Eulersche PhiFunktion.
(n, d ) besteht aus
= e −1 von e
dem modularen Inversen d
dem Modul n und
modulo m
= ϕ(n).
Die zu verschlüsselnden Daten werden als Elemente x
∈ Zn
dargestellt. Die Verschlüsselung erfolgt durch die Berechnung
e
von y = x mod n.
Zur Entschlüsselung wird x
= y d = x d ·e
mod n berechnet.
Dass man tatsächlich x als Ergebnis erhält, ist durch die
Folgerungen aus dem Satz von Fermat garantiert. Diese
d
besagen gerade, dass g (y ) = y mod n die Umkehrabbildung
e
zu f : Zn → Zn : x 7→ y = x mod n ist.
modular13.pdf, Seite 44
Beispiel
Zur Erstellung des öentlichen und des privaten Schlüssels sind
zunächst zwei Primzahlen p und q zu wählen.
Wir wählen p
=7
und q
= 11.
= p · q = 77 und
m = (p − 1) · (q − 1) = 6 · 10 = 60
Daraus werden n
berechnet.
Für den öentlichen Schlüssel wird ein zu m
= 60
= 13.
teilerfremder Exponent e benötigt, wir wählen e
Dazu ist das modulare Inverse von 13 modulo 60 zu
−1
berechnen, man erhält d = 13
= 37 = 1 (1 + 8 · 60).
13
Der öentliche Schlüssel
bekannt gegeben, d
(n, e ) = (77, 13)
= 37
wird öentlich
wird zur Entschlüsselung benötigt
und geheim gehalten.
p, q und m werden nur zur Erstellung des Schlüssels, nicht
jedoch zur Ver- oder Entschlüsselung benötigt und müssen in
jedem Fall geheim bleiben.
modular13.pdf, Seite 45
Fortsetzung Beispiel: Verschlüsselung
Die mit dem öentlichen Schlüssel
Daten werden als Elemente x
∈ Z77
Berechnet wird der Geheimtext y
Für x
x
2
= 28
= 14,
erhält man z. B. in
x
4
= 142 = 42,
(77, 13)
zu verschlüsselnden
dargestellt.
= x 13 = x · x 4 · x 8
mod 77.
Z77
x
8
= 422 = 70
⇒ y = x 13 = 28 · 42 · 70 = 7.
Entschlüsselung
Mit dem privaten Schlüssel
(77, 37)
ist y
37
mod 77 zu
berechnen.
7
x
16
2
= 49,
= 422 = 70
Mit 7
4
8
2
= 492 = 14,
7 = 14 = 42,
32
und 7
= 702 = 49 erhält man
7
= y 37 = 7 · 74 · 732 = 7 · 14 · 49 = 28.
modular13.pdf, Seite 46
Warum funktioniert es?
Wir betrachten x
∈ Z77
=1⇒
ggT(x , 77)
mit
ggT(x , 7)
=
ggT(x , 11)
= 1.
Nach dem Satz von Fermat folgt
x
x
6
=1
10
(mod 7)
=1
⇒ x 60 = 110 = 1
(mod 11)
Somit ist x
60
−1
(mod 7) sowie
⇒ x 60 = 16 = 1
(mod 11)
sowohl durch 7 als auch durch 11 und damit
auch durch 77 teilbar, d. h.
x
60
=1
(mod 77)
⇒ x 481 = x 8·60+1 = (x 60 )8 · x 1 = 18 · x = x
Die Gleichung x
481
=x
(mod 77).
(mod 77) bleibt auch dann richtig,
wenn x einen gemeinsamen Teiler mit 77 hat.
Wegen 481
y
37
= 13 · 37
gilt daher mit y
= (x 13 )37 = x 13·37 = x 481 = x
= x 13
mod 77
(mod 77).
modular13.pdf, Seite 47
Beispiel zur Entschlüsselung
(n, e ) = (10001, 131),
Gegeben sei der öentliche Schlüssel
d. h. zur Verschlüsselung wird die Abbildung
f
: Z10001 → Z10001 , x 7→ y = x 131
Gesucht ist die Umkehrabbildung f
mod 10001 verwendet.
−1
wobei d das modulare Inverse von e
= (p − 1) · (q − 1) ist
(d. h. (10001, d ) bilden den
(y ) = y d mod
= 131 modulo
10001,
m
privaten Schlüssel).
Um d berechnen zu können, muss man m kennen, wofür die
Primfaktorzerlegung 10001
=p·q
von n benötigt wird.
Beispielsweise durch Probieren erhält man 10001
und damit m
= 73 · 137
= 72 · 136 = 9792.
Nun kann d mit dem erweiterten euklidischen Algorithmus
bestimmt werden.
modular13.pdf, Seite 48
Berechnung des modularen Inversen
i
xi
0
9792
qi
ki
1
131
74
1
2
98
1
−74
3
33
2
75
4
32
1
−224
5
1
0
299
= 299 und der private Schlüssel
(n, d ) = (10001, 299), d. h. man erhält
Somit ist d
x
= f −1 (y ) = y 299
mod 10001.
modular13.pdf, Seite 49
Herunterladen