Skript zum Seminarteil der Vorlesung Diskrete Mathematik SS 2008

Werbung
Skript zum Seminarteil der Vorlesung
Diskrete Mathematik
SS 2008
Prof. Dr. C. Schelthoff
Graphentheorie und Kryptographie
M. Keldenich & M. Rambadt
M. Holtkötter & C. Geyer
U. Stormanns & S. Weber
T. Weber
M. Brune & A.Erler
St. Meier & St. Graf
C. Druska & O. Bücker
F. Gülak & S. Both
V. Kronhardt
B. Beuck & J. Kuhl
M. Decker & R. Halver
I. Adrian
7. Juli 2008
1 Vorwort
Im Rahmen der Vorlesung Diskrete Mathematik wurden von den beteiligten Studenten des
Diplomstudiengangs und Masterstudiengangs Technomathematik Seminarvorträge zu den
Themen Graphentheorie und Kryptographie gehalten. Teil des Vortrags war die schriftliche Ausarbeitung, welche nun in zusammengefasster Form vorliegt.
An dieser Stelle Dank an U. Stormanns für das Zusammenfügen und die Integration der
einzelnen Ausarbeitungen.
Jülich, im Juli 2008
C. Schelthoff
2
Inhaltsverzeichnis
1 Vorwort
2
2 Fibonacci
2.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Determinanteneigenschaft der Fibonacci-Zahlen
2.3 Formel von Binet . . . . . . . . . . . . . . . . . . . . .
2.4 Der goldene Schnitt . . . . . . . . . . . . . . . . . . .
2.4.1 Goldener Schnitt und Fibonacci Zahlen . . . .
2.5 Euklid‘scher Algorithmus und Satz von Lame . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
9
9
11
13
14
15
3 Eulersche Graphen
3.1 Grundbegriffe . . . . . . . . . . . . . . . . . . . . .
3.1.1 Das Haus vom Nikolaus . . . . . . . . . . .
3.1.2 Was ist ein Graph? . . . . . . . . . . . . . .
3.1.3 Begriffe und Merkmale . . . . . . . . . . . .
3.1.4 Der Grad einer Ecke (Valenz) . . . . . . . .
3.1.5 Verschiedene Graphen - gleiche Graphen? .
3.1.6 Petersen Graph . . . . . . . . . . . . . . . .
3.1.7 Wege und Kreise . . . . . . . . . . . . . . .
3.1.8 Anwendungen . . . . . . . . . . . . . . . . .
3.1.9 Aufgaben Grundbegriffe . . . . . . . . . . .
3.1.10 Lösungen Grundbegriffe . . . . . . . . . . .
3.2 Eulersche Graphen . . . . . . . . . . . . . . . . . .
3.2.1 Königsberger Brückenproblem . . . . . . .
3.2.2 Leonhard Euler (1707 - 1783) . . . . . . . .
3.2.3 Eulergraph . . . . . . . . . . . . . . . . . .
3.2.4 Welche Graphen sind eulersch? . . . . . . .
3.2.5 Eulersche Touren - Hierholzer Algorithmus
3.2.6 Anwendungsbeispiele . . . . . . . . . . . . .
3.2.7 Vollständige Vielecke . . . . . . . . . . . . .
3.2.8 Aufgaben Eulersche Graphen . . . . . . . .
3.2.9 Lösungen Eulersche Graphen . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
17
17
18
19
20
21
22
23
23
24
25
25
25
26
27
28
29
31
32
33
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Hamiltonsche Graphen Und Grade von Ecken
4.1 Hamiltonsche Graphen . . . . . . . . . . . . . . . . . . .
4.1.1 Historisches . . . . . . . . . . . . . . . . . . . . .
4.1.2 Definitionen . . . . . . . . . . . . . . . . . . . . .
4.1.3 Das Grundproblem . . . . . . . . . . . . . . . . .
4.1.4 Hamiltonsche Kreise finden . . . . . . . . . . . .
4.1.5 Hamiltonsche Graphen neu zeichnen . . . . . . .
4.1.6 Wann ist ein Graph nicht hamiltonsch? . . . . .
4.1.7 Wie viele hamiltonsche Kreise gibt es? . . . . . .
4.2 Grade von Ecken . . . . . . . . . . . . . . . . . . . . . .
4.2.1 Es gibt immer zwei Ecken die den gleichen Grad
4.2.2 Das Handshaking lemma . . . . . . . . . . . . . .
4.2.3 Ecken mit ungeradem Grad . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
haben
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
35
35
36
36
38
38
39
39
39
40
40
5 Bäume
5.1 Einführung . . . . . . . . . . . . . . . . . . . . . . .
5.1.1 Was sind Bäume . . . . . . . . . . . . . . . .
5.1.2 Begrifflichkeiten aus der Graphentheorie . . .
5.2 Eigenschaften von Bäumen . . . . . . . . . . . . . .
5.2.1 Grundlagen . . . . . . . . . . . . . . . . . . .
5.2.2 Kanten eines Baums . . . . . . . . . . . . . .
5.2.3 Aufspannende Bäume . . . . . . . . . . . . .
5.3 Algorithmen und Anwendungsbeispiele für Bäume .
5.3.1 Strategie zur Wegfindung in einem Labyrinth
5.3.2 Der Greedy Algorithmus . . . . . . . . . . . .
5.3.3 Der Dijkstra Algorithmus . . . . . . . . . . .
5.3.4 Die kürzeste Tour eines Briefträgers . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
41
41
41
42
42
43
44
45
45
46
47
49
6 Bipartite Graphen
6.1 Liste vs. Graph . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Aufgabe 1 . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.2 Aufgabe 2 . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.3 Ein bipartiter Graph muss nicht zusammenhängend sein
6.2 Bipartite Kreise . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.1 Aufgabe 3 . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.2 Sind alle Kreise bipartit? . . . . . . . . . . . . . . . . .
6.2.3 Aufgabe 4 . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.4 Aufgabe 5 . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Bipartite Bäume . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.1 Aufgabe 6 . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.2 Aufgabe 7 . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Erkennung bipartiter Graphen . . . . . . . . . . . . . . . . . .
6.4.1 Hypothese & Beweis . . . . . . . . . . . . . . . . . . . .
6.4.2 Beweis der Hypothese . . . . . . . . . . . . . . . . . . .
6.5 Bipartite Graphen und Schach . . . . . . . . . . . . . . . . . .
6.6 Fachwerkhäuser . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
50
50
51
51
52
52
54
54
55
55
56
56
57
58
58
59
61
61
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6.7
Definition Matching . . . . . . .
6.7.1 Perfektes Matching . . . .
6.7.2 Maximales Matching . . .
6.7.3 Übung: Aufgabe 17 . . . .
6.8 Heiratsvermittlung mit Graphen
6.9 Heiratssatz . . . . . . . . . . . .
6.9.1 Beweis . . . . . . . . . . .
6.10 Folgerung aus dem Heiratssatz .
6.10.1 Beweis . . . . . . . . . . .
6.11 abschließende Übung . . . . . . .
7 Digraphen
7.1 gerichtete Graphen
7.1.1 Anwendung
7.1.2 Anwendung
7.1.3 Anwendung
.
.
.
.
.
.
.
.
.
.
– Digraphen . .
von Digraphen:
von Digraphen:
von Digraphen:
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
64
64
65
66
68
69
70
71
71
73
. . . . . . . . . . . . . .
Turniergraphen . . . . .
kürzeste Wege Problem
Teilergraph . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
75
75
78
83
84
8 Körper und Flächen
8.1 Einleitung und Motivation . . . . . . . .
8.2 Darstellung von Polyedern in der Ebene
8.2.1 Schrägbilder . . . . . . . . . . . .
8.2.2 Überdehnung einer Fläche . . . .
8.2.3 Ausdehnen einer Kugel . . . . .
8.3 Ebene und planare Graphen . . . . . . .
8.4 Ebene Graphen und Flächen . . . . . .
8.4.1 Die eulersche Formel . . . . . . .
8.5 Die platonischen Körper bzw. Graphen .
8.5.1 Parkettierung . . . . . . . . . . .
8.6 Lösung der Übungsaufgaben . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
85
. 85
. 86
. 86
. 87
. 89
. 90
. 95
. 95
. 98
. 102
. 103
9 Farben
9.1 Vierfarbenproblem . . . . . . . . . . . . . . .
9.1.1 Landkarten . . . . . . . . . . . . . . .
9.1.2 Graphen . . . . . . . . . . . . . . . . .
9.2 Knotenfärbung . . . . . . . . . . . . . . . . .
9.2.1 Chromatische Zahl . . . . . . . . . . .
9.2.2 Obergrenze für die chromatische Zahl
9.2.3 Chromatische Polynome . . . . . . . .
9.2.4 Algorithmus . . . . . . . . . . . . . . .
9.3 Anwendungsbeispiele zu Konfliktgraphen . .
9.3.1 Ampelschaltungen . . . . . . . . . . .
9.3.2 Eurovision Song Contest . . . . . . . .
9.3.3 Museum . . . . . . . . . . . . . . . . .
9.4 Kantenfärbung . . . . . . . . . . . . . . . . .
9.4.1 Chromatischer Index . . . . . . . . . .
9.4.2 Satz von König . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
104
104
104
106
107
107
109
109
111
115
115
116
117
119
119
121
9.4.3
Lateinische Quadrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
10 Kryptographie: Grundlagen
10.1 Ziele der Kryptographie . . . . . . . . . . .
10.1.1 Einleitung . . . . . . . . . . . . . . .
10.1.2 Geheimhaltug . . . . . . . . . . . . .
10.1.3 Authentikation . . . . . . . . . . . .
10.1.4 Anonymität . . . . . . . . . . . . . .
10.1.5 Protokolle . . . . . . . . . . . . . . .
10.2 Einführung in die Kryptographie . . . . . .
10.2.1 Verschlüsselung . . . . . . . . . . . .
10.2.2 Asymmetrische Verschlüsselung . . .
10.2.3 Einwegfunktion . . . . . . . . . . . .
10.2.4 Kryptogrphische Hashfunktion . . .
10.2.5 Trapdoor-Einwegfunktion . . . . . .
10.2.6 Commitment und Bit-Commitment .
10.2.7 Digitale Signatur . . . . . . . . . . .
10.2.8 Der RSA-Algorithmus . . . . . . . .
11 Kryptographie: Protokolle
11.1 Einleitung . . . . . . . . . . . . . . . . . . .
11.1.1 Protokoll . . . . . . . . . . . . . . .
11.1.2 Protokolle und Kryptographie . . . .
11.1.3 Anforderungen an ein Protokoll . . .
11.2 Authentikationsverfahren . . . . . . . . . .
11.2.1 Passwortverfahren (Festcodes) . . .
11.2.2 Wechselcodes . . . . . . . . . . . . .
11.2.3 Challenge and Response . . . . . . .
11.3 Diskrete Exponentialfunktion . . . . . . . .
11.4 Public-Key-Protokolle . . . . . . . . . . . .
11.4.1 Diffie-Hellman-Schlüsselvereinbarung
11.4.2 ElGamal-Verschlüsselungsverfahren .
11.4.3 ElGamal-Signatur . . . . . . . . . .
11.4.4 Blinde Signaturen . . . . . . . . . .
11.5 Shamirs No-Key-Protokoll . . . . . . . . . .
11.6 Knobeln über Telefon . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
124
124
124
124
125
126
126
126
126
130
132
133
133
134
135
138
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
142
142
142
142
143
143
143
144
145
147
148
148
151
152
154
154
156
12 Zero-Knowledge-Verfahren
12.1 Interaktive Beweise . . . . . . . . . . . . . . . . . .
12.1.1 Cardanosche Formeln . . . . . . . . . . . .
12.1.2 Allgemeines Prinzip nach L.Babai ( Merlin“
”
12.1.3 Zero-Knowledge-Eigenschaft . . . . . . . . .
12.2 Zero-Knowledge-Verfahren . . . . . . . . . . . . . .
12.2.1 Die magische Tür . . . . . . . . . . . . . . .
12.2.2 Isomorphie von Graphen . . . . . . . . . . .
12.2.3 Fiat-Shamir-Algorithmus . . . . . . . . . .
.
.
)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
159
159
160
161
163
164
164
165
167
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12.3 Existenz von Zero-Knowledge-Beweisen . . . . .
12.4 Erweiterungen, Verbesserungen und sonstiges . .
12.4.1 Two-Prover Verfahren . . . . . . . . . . .
12.4.2 Witness-Hiding . . . . . . . . . . . . . . .
12.4.3 Nicht-Interaktive Zero-Knowledge-Beweise
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
169
171
171
171
173
13 Der Beweis des Fünffarbensatzes und Historie des Vierfarbensatzes
13.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2 Der Vierfarbensatz . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2.1 Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2.2 Der Beweis mittels Computer . . . . . . . . . . . . . . . .
13.3 Der Fünffarbensatz . . . . . . . . . . . . . . . . . . . . . . . . . .
13.3.1 Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.3.2 Bezug zur Graphentheorie . . . . . . . . . . . . . . . . . .
13.3.3 Der Beweis . . . . . . . . . . . . . . . . . . . . . . . . . .
13.4 Fazit und Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
174
174
174
174
176
176
176
177
179
182
A Literaturverzeichniss
A.1 Fibonacci . . . . . . . . . . . . . . . . . . . .
A.2 Eulersche Graphen . . . . . . . . . . . . . . .
A.3 Hamiltonsche Graphen und Grade von Ecken
A.4 Bäume . . . . . . . . . . . . . . . . . . . . . .
A.5 Bipartite Graphen . . . . . . . . . . . . . . .
A.6 DiGraphen . . . . . . . . . . . . . . . . . . .
A.7 Körper und Flächen . . . . . . . . . . . . . .
A.8 Farben . . . . . . . . . . . . . . . . . . . . . .
A.9 Kryptogaphie: Grundlagen . . . . . . . . . . .
A.10 Kryptogaphie: Protokolle . . . . . . . . . . .
A.11 Zero Knowledge Verfahren . . . . . . . . . . .
A.12 Beweis 5 Farben Satz . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
183
183
183
183
184
184
184
185
185
185
186
186
186
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Abbildungsverzeichnis
191
Tabellenverzeichnis
192
7
2 Fibonacci
2.1 Einleitung
Als Entdecker der so genannten Fibonacci-Zahlen gilt der 1175 geborene Leonardo von Pisa,
alias Fibonacci ( Sohn des Bonacci “). Heutzutage wird dieser aufgrund seiner Werke und
”
Schriften als einer der bedeutensten Mathematiker des Mittelalters angesehen. Eines seiner
wichtigsten Bücher heißt Liber Abaci ( Das Buch vom Abakus“). Darin stellt er folgende
”
Aufgabenstellung:
Betrachtet man die Vermehrung eines Kaninchenpaares unter folgenden Bedingungen:
• Jedes Kaninchenpaar wird im Alter von 2 Monaten gebärfähig
• Jedes Kaninchenpaar bringt ab der Gebärreife jeden Monat ein neues Paar zur Welt
• Die Kaninchen sterben nicht, so dass die Gesamtanzahl an Kaninchen monoton wächst
Wie berechnet man nun die Anzahl der Kaninchen im Monat n?
Zur Herleitung der Formel betrachtet man zunächst die ersten 6 Monate dieser Kaninchen
Vermehrung. Im ersten und im zweiten Monat existiert nur ein Kaninchenpaar, welches im
dritten Monat das erste neue Paar zur Welt bringt. Es exisitieren ab dem dritten Monat also
2 Paare. Im vierten Monat wird nur ein weiteres Paar geboren. Verfolgt man diese Reihe
weiter, so ergibt sich folgende Tabelle:
n
Fn
1
1
2
1
3
2
4
3
5
5
6
8
Tabelle 2.1: Mit n wird der Monat, mit Fn die Anzahl der Kaninchenpaare im Monat n
bezeichnet
Möchte man Fn , die Anzahl der Kaninchen im n-ten Monat, berechnen, erkennt man, dass
sie sich als Summe der beiden vorherigen Monate darstellen lässt. Als Formel ergibt sich
folgende Rekursion:
Fn+1 = Fn + Fn−1 , für n ≥ 2 und F1 = 1, F2 = 1
Die nach dieser Formel erzeugten Zahlen werden Fibonacci-Zahlen genannt.
8
(2.1)
n
Fn
1
1
2
1
3
2
4
3
5
5
6
8
7
13
8
21
9
34
10
55
11
89
12
144
13
233
Tabelle 2.2: Die ersten 13 Fibonacci Zahlen
2.2 Beispiel
Die auf diese Weise gefundenen Fibonacci-Zahlen lassen sich auf verschiedene Alltagsfragen
anwenden. Dabei wird die Logik, die hinter dieser Zahlenfolge steht, deutlich. Betrachtet
man beispielsweise eine Treppe mit n Stufen. Man möchte nun die Anzahl der verschiedenen
Möglichkeiten errechen diese Treppe hinaufzusteigen. Dabei ist zu beachten, dass die erste
Stufe immer gegangen und danach in Einer- oder Zweierschritten weiter gegangen wird. Für
eine Treppe mit 6 Stufen sind die Möglichkeiten in folgender Tabelle aufgetragen:
Möglichteit
1
2
3
4
5
6
7
8
Schrittfolge
1,1,1,1,1,1
1,2,1,1,1
1,1,2,1,1
1,1,1,2,1
1,1,1,1,2
1,1,2,2
1,2,1,2
1,2,2,1
Aus der Tabelle wird ersichtlich, dass es 8 Möglichkeiten gibt, die Treppe hinaufzugehen,
also gilt F6 = 8. Betrachtet man eine Treppe mit 5 Stufen, so ergeben sich 5 Möglichkeiten, bei
einer Treppe aus einer Stufe bzw. aus zwei Stufen gibt es jeweils nur eine Möglichkeit hinaufzugehen. Betrachtet man eine beliebige, n-stufige Treppe, so errechnen sich die Möglichkeiten
diese hinaufzugehen aus der Fibonacci-Folge: Fn+1 = Fn + Fn−1 mit F1 = 1 und F2 = 1. Dass
auch dieses Problem auf die Fibonacci-Zahlen führt ist jedoch kein Zufall. Zur Berechnung
der Möglichkeiten n+1 Stufen hinaufzugehen, reicht die Betrachtung der Anzahl der Möglichkeiten die Stufen n und die Stufe n − 1 zu erreichen aus. Nur von diesen beiden Stufen ist
es möglich die nte Stufe direkt zu erreichen. Addiert man also die Anzahl der Möglichkeiten
diese beiden Stufen zu erreichen, erhält man direkt die Gesamtanzahl für den n-ten Schritt.
2.2.1 Determinanteneigenschaft der Fibonacci-Zahlen
Nimmt man sich drei beliebige, aufeinanderfolgende Fibonacci-Zahlen, so gilt folgender Zusammenhang:
Fn+1 Fn−1 − Fn2 = (−1)n
(2.2)
Anschaulich bedeutet dies, dass ein Rechteck mit den Seitenlängen Fn+1 und Fn−1 sich
lediglich um eine Einheit von einem Quadrat der Seitenlänge Fn unterscheidet.
9
5
8
8
8
5
5
13
Abbildung 2.1: Quadrat
Beweis mit vollständiger Induktion:
Induktionsanfang:
für n=2: F3 · F1 − F22 = 1 = (−1)2
Induktionsvoraussetzung:
∀n ≥ 2 gilt: Fn+1 Fn−1 − Fn2 = (−1)n
Induktionsbehauptung:
2
dann gilt auch: Fn+2 Fn − Fn+1
= (−1)n+1
Induktionsschluss:
2
Fn+2 Fn − Fn+1
=
=
=
=
I.V.
=
=
Fn+2 Fn − Fn+1 · (Fn + Fn−1 )
Fn (Fn+2 − Fn+1 ) − (Fn+1 · Fn−1 )
Fn2 − Fn+1 · Fn−1
−(Fn+1 · Fn−1 − Fn2 )
−(−1)n
(−1)n+1
(2.3)
Um diese Formel zu verdeutlichen, betrachtet man einfach ein Quadrat, mit der Seitenlänge
einer Fibonacci-Zahl, je größer desto besser. Im folgenden Beispiel wird ein Quadrat der
Seitenlänge 13 betrachtet: Der Flächeninhalt des Quadrates beträgt 13·13 = 169. Zerschneidet
10
13
8
5
8
5
8
13
Abbildung 2.2: rechteck
man dieses Quadrat, wie in der Zeichnung vorgegeben ist und legt es zu einem Rechteck der
Länge 8 und 21 zusammen, ergibt sich folgende Abbildung: Obwohl dieses Rechteck scheinbar
aus den gleichen Flächen wie das Quadrat gebildet wurde, ergibt sich hier ein Flächeninhalt
von 21 · 8 = 168. Es scheint also eine Flächeneinheit verloren gegangen zu sein. Wie kann das
sein?
Des Rätels Lösung ist lediglich eine optische Täuschung. Bei der Neuordnung der einzelen
Bestandteile zum Rechteck überlagern sich zwei Einzelstücke. Für das menschliche Auge
ist dies jedoch kaum wahrnehmbar. Dass dies tatsächlich so ist, wird deutlich, wenn man
5
= 0.38462)
die Steigungen der Trapeze ( 38 = 0.375) mit den Steigungen der Dreiecke ( 13
vergleicht. Diese müssten bei korrekter Neuordnung übereinstimmen.
2.3 Formel von Binet
Das rekursive Bildungsgesetz, Fn = Fn−1 + Fn−2 erlaubt es nicht Fibonacci-Zahlen der
Größenordnung F30 oder F40 direkt auszurechnen. Stattdessen muss man zur Berechnung
von F30 auch die ersten 29 Fibonacci-Zahlen berechnen. Das Ziel ist es also eine direkte
Formel zu finden. Dazu betrachtet man die Fibonacci-Folge in Matrixschreibweise:
Fn+1
1 1
Fn
=
(2.4)
Fn
1 0
Fn−1
Aus dieser Formel lässt sich durch einfaches Nachrechnen folgendes Bildungsgesetz zeigen:
n Fn+1
1 1
1
=
(2.5)
Fn
1 0
0
Das bedeutet, dass durch
und anschließender Multiplikation
n-fache
n Matrixmultiplikation
1 1
1
der neuen Matrix Mn =
mit dem Vektor
1 0
0
die Fibonacci-Zahlen direkt ausgerechnet werden können. Die einzige Problematik an dieser
Formel ist die Berechnung der n-fachen Matrixmultiplikation von Mn . Zur Lösung dieses
Problems berechnet man die Eigenwerte und Eigenvektoren von Mn . Die Eigenwerte ergeben
sich als Nullstellen des charakteristischen Polynoms von Mn . Betrachtet man zunächst M1 =
11
√
√
1 1
, so ergeben sich als Eigenwerte λ1 = 1+2 5 und λ2 = 1−2 5 . Aus der Tatsache, dass
1 0
det(A · B) = det(A) · det(B) gilt, folgt für die Eigenwerte von Mn :
√ !n
√ !n
1+ 5
1− 5
und Λ2 =
.
(2.6)
Λ1 =
2
2
Die zugehörigen Eigenvektoren lauten:
~1 =
E
√
1+ 5
2
1
!
√
1− 5
2
~2 =
und E
1
!
(2.7)
√ √
Die Zahl −1+2 5 = − 1−2 5 heißt goldener Schnitt“. Die Bedeutung dieser Zahl wird später
”
noch näher erläutert.
Mit Hilfe des folgenden Satzes:
Satz: Sei M eine diagonalisierbare Matrix, S eine Basis von Eigenvektoren und D die
Diagonalmatrix der Eigenwerte von M, dann kann die Matrix M dargestellt werden als M =
S · Dn · S −1 .
Also lässt sich Mn darstellen als Produkt aus der Eigenvektormatrix, der Diagonalmatrix
und der Inversen der Eigenvektormatrix:
1 1
1 0
n
=
√
1+ 5
2
1
√
1− 5
2
1
!  1+√5 n

2
0
0

√ n  √1
1− 5
5
2
1
−1
√
5−1
√2
5+1
2
!
(2.8)
Wendet man diese Darstellung auf Mn an und rechnet die explizite Darstellung [2.5] aus,
ergibt sich für die n-te Fibonacci-Zahl:
"
√ !n
√ !n #
1
1+ 5
1− 5
Fn = √
−
(2.9)
2
2
5
Aus der Formel [2.5] kann man zusätzlich noch folgende Darstellung ableiten:
n
Fn+1 Fn
1 1
=
Fn Fn−1
1 0
(2.10)
Mit Hilfe dieser Formel und der Tatsache, dass die Determinate eines Matrixproduktes
gleich dem Produkt der einzelenen Determinaten ist, det(AB) = det(A)det(B), kann man
leicht
beweisen:
die Determinateneigenschaft
n
Fn+1 Fn
1 1
2
det
= Fn+1 Fn−1 − Fn und det
= (−1)n
Fn Fn−1
1 0
12
1-X
X
Abbildung 2.3: goldener Schnitt
2.4 Der goldene Schnitt
Der oben bereits erwähnte goldene Schnitt beschreibt ein bestimmtes Teilungsverhältnis zweier Strecken zueinander:
Betrachtet man eine Strecke der Länge 1 und unterteilt diese in zwei unterschiedlich große
Strecken, wobei das Verhältnis der längeren Strecke zur Gesamtstrecke gleich dem Verhältnis
des kürzeren Teilstücks zum längeren Teilstück sein muss. Also:
1
x
=
x
1−x
Formt man diese Gleichung um, so erhält man folgende quadratische Gleichung:
x2 = 1 − x ⇔ x2 + x − 1 = 0
Berechnet man die Nullstellen dieser Gleichung, so ergibt sich:
√
−1 ± 5
x1,2 =
2
(2.11)
(2.12)
(2.13)
√
Die positive Lösung, x1 = −1+2 5 ≈ 0.618, bezeichnet man als goldenen Schnitt “. Dieses
”
Teilungsverhältnis kann man häufig in der Natur wieder. Betrachtet man beispielsweise den
menschlichen Körper und bildet das Verhältnis zwischen der Gesamtgröße und der Höhe des
Bauchnabels, so sieht man, dass dieses Verhältnis relativ genau dem goldenen Schnitt entspricht. Dieser ergibt sich ebenfalls, wenn man den Abstand des Bauches zu den Füssen im
Verhälnis zum Abstand des Bauches zum Kopf setzt.
Von diesem naturgegebenen Verhältnis inspiriert, malten viele Künstler ihre Bilder im goldenen Schnitt. Speziell Portaits sind oftmals so konzipiert, dass die Größe des Kopfes im
Verhälnis zur Größe des Rumpfes im goldenen Schnitt steht.
Ein ebenfalls fazinierendes Beispiel für das Auftreren des goldenen Schnitts, ist die Anordnung der Blätter einiger Pflanzenarten: Diese ordnen sich dabei im so genannten goldenen
”
Winkel “an. Dieser entsteht, wenn man den Vollwinkel von 360◦ im Verhältnis des goldenen
Schnitts teilt:
φ1 = 0.618 · 360◦ ≈ 222.5◦
φ2 = 0.618 · 222.5◦ ≈ 137.5◦
13
(2.14)
Der kleinere Winkel, φ2 = 137.5◦ wird dabei als goldener Winkel bezeichnet. Wie man
in obiger Graphik erkennen kann, bedeutet diese Anordnung der Blätter, dass sie in einer
Spirale angeordnet werden. Auffällig ist dabei, dass es bei übereinanderliegenden Blättern
nur geringfügige Überdeckungen gibt.
Als möglichen Grund für die Anordnung der Blätter im goldenen Winkel, nennen Biologen
das Bestreben der Pflanze möglichst alle Blätter mit einem Maximum an Sonnenlicht zu versorgen. Das bedeutet, aus dem Bestreben der maximalen Lichtversorgung der Blätter, ergibt
sich als optimaler Winkel, der goldenen Winkel.
2.4.1 Goldener Schnitt und Fibonacci Zahlen
Außer der Tatsache, dass der goldene Schnitt in der Formel von Binet [2.8] vorkommt, stehen
dieser und die Fibonacci-Zahlen noch in einem weiterem Zusammenhang:
Betrachtet man das Verhältnis von zwei aufeinander folgenen Fibonacci-Zahlen,
konvergiert dieses für n gegen unendlich gegen den goldenen Schnitt. Es gilt also:
√
fn
−1 + 5
lim
=
≈ 0.618
n→∞ fn+1
2
fn
fn+1 ,
so
(2.15)
Nimmt man beispielsweise das Verhältnis der Fibonacci-Zahlen f9 = 34 und f10 = 55, so
kann man die Konvergenz gegen den goldenen Schnitt bereits erkennen:
f9
34
=
≈ 0.618
f10
55
14
(2.16)
2.5 Euklid‘scher Algorithmus und Satz von Lame
Der Euklid‘sche Algorithmus dient zur Berechnung des größten gemeinsamen Teilers
(ggT) zweier Zahlen. Er lautet folgendermaßen:
Euklid‘scher Algorithmus:
Gegeben seien zwei natürliche Zahlen a, b mit a > 0:
1. Berechne die Zerelgung b = q · a + r mit q, r natürliche Zahlen
2. a) Ist r = 0, dann ist (a,b) = a
b) Ist r 6= 0, dann ist (b,a) = (a,r), setze b := a und a := r und springe wieder zu 1.
Wendet man diesen Algorithmus auf zwei beliebige, aufeinanderfolgende Fibonacci-Zahlen
an, so erkennt man, dass diese Fibonacci-Zahlen stets teilerfremd sind, also ggT (Fn+1 , Fn ) =
1. Zum Beweis betrachtet man die Definition der Fibonacci-Zahlen und die Vorgehensweise
des Euklid‘schen Algorithmus:
Fn+1 = 1 · Fn + Fn−1
Fn = 1 · Fn−1 + Fn−2
..
.
1(F2 ) = 1(F1 ) + 0
Man sieht, dass man zur Berechnung von ggT (Fn+1 , Fn ) genau n Schritte benötigt. Zudem
wird deutlich, dass dies die maximale Anzahl an Schritten ist, die im Euklid‘schen Algorithmus benötigt werden kann. Dieses Resultat kann man verwenden, um folgendes Lemma zu
beweisen:
Lemma von Lame:
Ist 0 < a < b, so ist die Zahl der Schritte beim euklid‘schen Algorithmus nicht größer als
das fünffache der Ziffernzahl von a.
Da zwei aufeinanderfolgende Fibonacci-Zahlen die maximale Anzahl von n Schritten benötigen, läuft der Beweis über die Fibonaccizahlen.
Beweis:
Zunächst zeigt man mit Hilfe von vollständiger Induktion, dass Fn+5 > 10Fn für n ≥ 2,
gilt:
Induktionsanfang:
für n = 2 gilt: F7 > 10F2 , also 13 > 10
Induktionsvoraussetzung:
15
für n ≥ 2 gilt: Fn+5 > 10Fn
Induktionsbehauptung:
dann gelte auch: Fn+6 > 10Fn+1 für n ≥ 2
Induktionsschluß:
Fn+6
=
I.V.
>
I.V
Fn+5 + Fn+4
10Fn + Fn+4
>
10Fn + 10Fn−1
=
10Fn+1
(2.17)
Führt man diese Induktion fort, so sieht man, dass sich daraus folgender Zusammenhang
ergibt:
Fn+5l > 10Fn+5(l−1) > 102 Fn+5(l−2) > ... > 10l Fn
(2.18)
Nimmt man sich nun ein n mit n > 5lbzw.n ≥ 5l + 1, so ergibt sich für eine Zahl a = Fn
folgende Abschätzung:
a = Fn ≥ F5l+1 > 10l f1 = 10l
(2.19)
Diese Gleichung besagt, dass die Anzahl der Ziffern der Zahl a l + 1 beträgt. Umgekehrt folgt
für a besitzt l Ziffern “, n ≤ 5l. Die Anzahl der Schritte im Euklid’schen Algorithmus ist
”
also kleiner gleich dem fünfachen der Anzahl der Ziffern von a. Damit ist das Lemma von
Lame bewiesen.
16
3 Eulersche Graphen
3.1 Grundbegriffe
3.1.1 Das Haus vom Nikolaus
Abbildung 3.1: Nikolaus - Haus
Dieses Bild kennt jeder. Man malt es mit Hilfe des Spruches “Das - ist - das - Haus - vom
- Ni - ko - laus.” ohne den Stift abzusetzen und ohne eine Linie doppelt zu zeichnen. Am
besten beginnt man dazu links unten (wie in Abbildung 1) oder rechts unten, weil dort drei
Linien zusammentreffen. In diesen beiden Punkten fängt man an und hört auch dort auf.
Bei den anderen Punkten grenzen zwei oder vier Linien an, d.h. man kann hinkommen und
wieder weggehen. Einfacher wird es, wenn das Nikolaus - Haus einen “Keller” bekommt, so
kann man an jedem beliebigen Punkt anfangen:
Abbildung 3.2: Nikolaus - Haus mit Keller
3.1.2 Was ist ein Graph?
Definition: Graph
Ein Graph G ist ein Paar von endlichen Mengen E und K. E ist nicht die leere
Menge. Jedem Element von K ist eine zweielementige oder einelementige Teilmenge
von E zugeordnet. Die Elemente von E heißen Ecken und von K Kanten.
Ein Graph besteht aus Ecken bzw. Knoten und Kanten. Jede Kante verbindet zwei Ecken.
Das Nikolaus Haus besteht aus 5 Ecken und 8 Kanten und hat damit alles, was ein Graph
braucht.
17
Abbildung 3.3: Nikolaus- Haus als Graph
3.1.3 Begriffe und Merkmale
• Mehrfachkanten (parallele Kanten): mehrere Kanten zwischen zwei Ecken
• Schlinge: eine Kante, die eine Ecke mit sich selbst verbindet
• einfacher Graph: ein Graph, der keine parallelen Kanten und keine Schlingen hat
Abbildung 3.4: Graph mit Besonderheiten
•
•
•
•
•
•
endlicher Graph: Menge der Ecken und Kanten ist endlich
unendlicher Graph: Menge der Ecken und Kanten ist unendlich
gerichteter Graph: Kanten sind gerichtet durch Pfeile statt Linien
ungerichteter Graph: Kanten als normale Linien
gewichteter Graph: Kanten sind mit Gewichten/Werten versehen
(k-) regulärer Graph: jede Ecke des Graphen hat den gleichen Grad k, 3-regulärer
Graph heißt auch kubischer Graph
• isolierte Ecke: eine Ecke, die nicht mit einer anderen Ecke verbunden ist
Abbildung 3.5: Graph mit zwei isolierten Ecken
• zusammenhängender Graph: ein Graph, der nicht aus mehreren Teilen besteht
18
Abbildung 3.6: zusammenhängender und nicht zusammenhängender Graph
• vollständiger Graph: ein Graph, bei dem man von jeder Ecke zu jeder anderen gelangen kann (je zwei Ecken sind miteinander verbunden), es sind also keine weiteren
Verbindungen mehr möglich
Abbildung 3.7: Graph mit n Ecken wird mit Kn bezeichnet
• Komponenten: mehrere Teile eines nicht zusammenhängenden Graphen, die jeder für
sich zusammenhängend sind → maximal zusammenhängender Graph, nur ein leerer
Graph hat keine Komponenten
Abbildung 3.8: Graph aus 3 Komponenten
• Multigraph: mehrfache Kanten zwischen den Ecken
• Hypergraph: Kanten verbinden mehr als nur zwei Ecken
3.1.4 Der Grad einer Ecke (Valenz)
Der Grad einer Ecke (Valenz) bezeichnet die Anzahl der Kanten, die in einer Ecke zusammentreffen. Isolierte Ecken haben den Grad 0. Eine Schlinge erhöht den Grad einer Ecke
um 2.
Abbildung 3.9: Graph und seine Eckengrade
19
3.1.5 Verschiedene Graphen - gleiche Graphen?
Jeder Graph lässt sich durch eine Zeichnung repräsentieren. Dabei müssen die Kanten nicht
notwendig als gerade Strecke gezeichnet werden, sie dürfen verbogen, gedehnt oder zusammengezogen werden. Bei einem Graphen ist also nicht die Form entscheidend. Auch die Lage
der Ecken ist nicht wichtig, man kann sie beliebig verschieben. Dies kann man bei der Verwanldlung des Nikolaus-Hauses gut sehen:
Abbildung 3.10: Verwandlung des Nikolaus- Hauses
Definition: Isomorphie
Zwei Graphen G1 (E1 , K1 ) und G2 (E2 , K2 ) heißen isomorph, wenn es eine bijektive
Abbildung φ : E1 → E2 und eine bijektive Abbildung ψ : K1 → K2 gibt, die die
folgende Eigenschaft hat: Wenn k ∈ K1 eine Kante zwischen den Ecken A und B
von G1 ist, gilt: ψ(k) ist eine Kante zwischen den Ecken ϕ(A) und ϕ(B).
Zwei Graphen sind isomorph, wenn man den einen Graph durch Umzeichnen des anderen
erhält. Alle elastischen Verformungen sind erlaubt! Man darf jedoch Kanten nicht durchschneiden oder verknoten und Ecken nicht so verschieben, dass sie aufeinander fallen.
Folgende Graphen sind nicht isomorph:
• weil sie nicht die gleiche Anzahl von Ecken haben.
• weil sie verschieden viele Kanten haben.
• weil die Grade der Ecken nicht übereinstimmen.
20
• weil in dem linken Graphen die Ecken mit dem Grad 3 direkt miteinander verbunden
sind, in dem rechten jedoch nicht.
Einfacher ist der Nachweis der Isomorphie über eine Tabelle. In der Graphentheorie ist der
übliche Name Adjazenzmatrix. Für die Repräsentation von Graphen im Computer wird
häufig eine Adjazenzmatrix oder eine Adjazenzliste benutzt. Ein Graph mit n Knoten wird
durch eine n×n -Matrix dargestellt. Man kann einige Eigenschaften auf einen Blick erkennen.
Ob ein Graph Schlingen hat, sieht man in der Diagonale von links oben nach rechts unten.
Parallele Kanten erkennt man daran, dass in der Tabelle eine andere Zahl als 0 oder 1 steht.
Abbildung 3.11: nicht einfacher Graph als Zeichnung und als Tabelle
Zwei Graphen sind isomorph, wenn ihre Tabellen gleich sind. Dazu müssen die entsprechenden
Ecken gleich bezeichnet werden.
3.1.6 Petersen Graph
Abbildung 3.12: Petersen- Graph
21
Der Petersen Graph wurde nach dem dänischischen Mathematiker Julius Petersen (1839
- 1919) benannt. Mit dem Fünfeck und dem fünfzackigen Stern in der Mitte hat dieser Graph
viele interessante Eigenschaften:
•
•
•
•
•
•
•
Kubisch bzw. 3-regulär (jede Ecke hat Grad 3)
Nicht planar
Zusammenhängend
Symmetrisch
Die Länge des kürzesten Kreises ist 5
Chromatische Zahl 3
Chromatischer Index 4
3.1.7 Wege und Kreise
Die Menge der Ecken darf nicht leer sein, wohl aber die Menge der Kanten. Ein kantenloser
Graph besteht also aus lauter isolierten Ecken.
Abbildung 3.13: kantenloser Graph
Ein Kantenzug ist eine Folge von aneinander stoßenden Kanten. Man zeichnet ihn ohne
den Stift abzusetzen. Es ist erlaubt, über dieselbe Kante mehrmals zu fahren und eine Ecke
mehrmals zu besuchen. Ein Kantenzug darf sich also selbst überkreuzen. Der Kantenzug heißt
geschlossen, wenn der Ausgangspunkt dem Endpunkt entspricht.
Abbildung 3.14: abcdef bzw. abcdea ist ein Kantenzug
Ein Graph heißt zusammenhängend, wenn es zu je zwei Ecken einen Kantenzug gibt, der
sie verbindet. Ist ein Graph unterbrochen oder existieren isolierte Punkte, so ist der Graph
nicht zusammenhäängend.
Ein Kantenzug, bei dem jede Kante nur (maximal) einmal durchlaufen wird, heißt Weg, man
bezeichnet ihn durch die natürliche Folge seiner Ecken. Einen geschlossenen Weg nennt man
Kreis und die Länge des Weges wird durch die Anzahl der Kanten definiert. Die Länge des
kürzesten Weges bezeichnet man mit Abstand oder Distanz. Der größte Abstand zwischen
zwei Ecken in einem Graph heißt Durchmesser. Als Taillenweite kennzeichnet man die
Länge eines kürzesten nicht trivialen Kreises. Die Länge des längsten Kreises heißt Umfang.
Enthält ein Graph keinen Kreis, so habe er die Taillenweite ∞ und den Umfang 0. Eine
22
Ecke heißt zentral, wenn ihr größter Abstand von anderen Ecken möglichst klein ist. Dieser
Abstand heißt Radius. Eine Ecke, die zwei andere Ecken der gleichen Komponente trennt,
bezeichnet man als Artikulation. Eine Kante heißt Brücke, wenn sie ihre Endecken trennt
bzw. sie auf keinem Kreis liegt.
Abbildung 3.15: Graph mit Artikulation v, x, y und Brücke e = xy
3.1.8 Anwendungen
Mit Graphen können Strukturen, Hierarchien, Abläufe und dergleichen dargestellt und untersucht werden. Einige Beispiele:
•
•
•
•
•
Verkehrswesen: Rundreiseprobleme, Flugoptimierung, Speditionseinsätze
EDV: Berechnen von Netzwerken
Elektronik
Chemie: Moleküle, Strukturformeln
Soziologie: Soziogramme
3.1.9 Aufgaben Grundbegriffe
23
1. Bestimme zum Nikolaus - Haus den Grad jeder Ecke. Ist der Graph zusammenhängend?
Vollständig?
2. Sind die zwei folgenden Graphen isomorph?
3. Gesucht ist die Tabelle (Adjazenzmatrix) zu dem folgenden Graph:
3.1.10 Lösungen Grundbegriffe
1. Das Nikolaus Haus ist zusammenhängend, da keine isolierte Ecke existiert und der
Graph aus einer Komponente besteht. Er ist nicht vollständig, weil 2 Kanten fehlen.
2. Diese Graphen sind tatsächlich isomorph. Jede der Ecken A, B, C ist mit jeder der
Ecken D, E, F verbunden. Die Ecken A, B, C, sind untereinander nicht verbunden,
ebenso D, E, F. Das gleiche gilt für U, W, Y sowie V, X, Z.
3. Tabelle:
24
3.2 Eulersche Graphen
3.2.1 Königsberger Brückenproblem
In Königsberg (heute Kaliningrad) gibt es den Fluss Pregel, der sich im Stadtgebiet mehrfach
teilt.
Abbildung 3.16: Stadtplan von Königsberg im 18. Jahrhundert
Königsberger Brückenproblem: Kann man einen Spaziergang durch die Stadt machen
und dabei über jede Brücke gehen, aber nur einmal? Nach dem Spaziergang soll man zum
Ausgangspunkt zurückkehren.
Leonard Euler hat diese Aufgabe 1736 als erster gelöst. Seine Lösung ist auf die Graphentheorie zurückzuführen. Die Stadtteile entsprechen hierbei den Ecken und die Kanten den
Spazierwegen über die Brücken.
Abbildung 3.17: Stadtplan von Königsberg als Graph
Lösungsidee: Alle Ecken haben ungeraden Grad. Ein Rundgang, bei dem man zum Ausgangspunkt zurückkehrt, gibt es also nicht. Die Königsberger hatten also keine Gelegenheit
zu diesem Spaziergang.
3.2.2 Leonhard Euler (1707 - 1783)
Leonhard Euler (geb. 15. April 1707 in Basel; gest. 18. September 1783 in Sankt Petersburg)
war ein bedeutenter Mathematiker. Ab 1720 studierte er an der Universität Basel Mathematik, eine Zeit lang auch Theologie. 1727 berief ihn Daniel Bernoulli an die Universität Sankt
Petersburg. 1741 wurde ihm von Friedrich dem Großen eine Stelle an der Berliner Akademie
angeboten. Nach 25 Jahren kehrte er aber dann 1766 zurück nach St. Petersburg.
25
Wichtige Einzelleistungen sind: der Eulersche Polyedersatz, die Eulersche Gerade, die Eulersche Konstante, die Lösung des Königsberger Problems sowie die Feststellung, dass der
Logarithmus unendlich vieldeutig ist. Ein großer Teil P
der heutigen mathematischen Symbolik
geht auf Euler zurück (z. B. e, π, i, Summenzeichen , f(x) als Darstellung für eine Funktion). Euler kann als Begründer der Analysis angesehen werden.
Nach Euler benannte Begriffe: Euler-Bernoulli-Gleichung, Euler-Hierholzer-Satz, Eulersche
Bewegungsgleichung, Eulersche Differentialgleichung, Eulersche Formel (Flächenkrümmung),
Eulersche Formeln (harmonische Analyse), Eulersche ϕ -Funktion, Eulersche Identität, Eulersche Zahl: e = 2, 718.., Eulersches Polygonzugverfahren, Eulersche Pseudoprimzahl, ... Wesentliche Beiträge lieferte er auch zur Astronomie, zur Mondtheorie und Himmelsmechanik,
zum Schiffsbau, zur Kartographie, Optik, Hydraulik, Philosophie und Musiktheorie.
3.2.3 Eulergraph
Beim Königsberger Brückenproblem haben wir bereits, ohne es zu wissen, nach den Bedingungen eines eulerschen Graphen gesucht. Der gesuchte Kantenzug sollte folgende drei
Eigenschaften erfüllen:
• Keine Kante kommt mehrfach vor
• Sämtliche Kanten des Graphen sind enthalten
• Anfangs- und Endpunkt stimmen überein
Einen solchen Kantenzug nennt man eulersche Tour und den Graphen, der diese enthält,
eulerschen Graphen. Hat ein Kantenzug nur die erste Eigenschaft, wird von einer Tour gesprochen.
Wie wir gesehen haben, ist beim Königsberger Brückenproblem keine eulersche Tour zu finden.
Auch beim Nikolaus-Haus gelingt uns dies nicht. Zwar sind die ersten beiden Bedingungen
erfüllt, aber der Kantenzug ist in keinem Fall geschlossen. Erst wenn die beiden unteren Ecken
durch eine weitere Kante verbunden werden, entsteht ein eulerscher Graph.
26
Abbildung 3.18: Nikolaus-Haus mit eulerscher Tour
Einen eulerschen Graphen erkennt man also daran, dass man ihn zeichnen kann ohne den
Stift abzusetzen und ohne dabei eine Kante mehrmals zu zeichnen. Ausserdem endet man
bei eulerschen Graphen immer im Anfangs-Knoten.
Also muss jeder Knoten des Graphen immer über eine andere Kante verlassen werden, als
über die man zu ihm gelangt ist. Da nur unbenutzte“ Kanten in Frage kommen, hat jeder
”
Knoten eines eulerschen Graphen einen geraden Grad.
Jede Ecke eines eulerschen Graphen hat einen geraden Grad.
3.2.4 Welche Graphen sind eulersch?
Nun wissen wir, dass der Grad jeder Ecke eines eulerschen Graphen gerade sein muss.
Aber: Reicht diese Bedingung aus, dass ein Graph eulersch ist?
Die Antwort ist Nein: Zusätzlich ist zumindest zu fordern, dass der Graph zusammenhängend
sein muss.
Behauptung:
Ein zusammenhängender Graph ist genau dann eulersch, wenn jede
seiner Ecken einen geraden Grad hat.
Beweis
Die Gradbedingung ist offensichtlich notwendig: tritt eine Ecke k-mal in einem eulerschen
Kantenzug auf (bzw. (k+1)-mal, wenn sie die Anfangs-/Endecke des Kantenzugs ist), so ist
ihr Grad 2k. (also gerade)
Umgekehrt sei nun der Graph zusammenhängend und alle Ecken von geraden Grad. Zu zeigen ist, dass man einen solchen Graphen immer mit einem Strich zeichnen kann und dabei
jede Kante genau einmal überfährt.
Schlingen kann man bei der Betrachtung außer Betracht lassen, da sie am Ende leicht einzufügen sind.
Wir wählen einen Knoten u ∈ E aus und bilden einen Kantenzug, beginnend bei u ,
der keine Kante doppelt enthält, solange das möglich ist. Bei jedem Knoten 6= u , den der
Kantenzug erreicht, gibt es eine ungerade Anzahl von Kanten mit Endknoten, die bisher
vom Kantenzug noch nicht benutzt worden sind. Daher kann man bei jedem dieser Knoten
den Kantenzug fortführen. Da die Zahl der Kanten endlich ist, bricht das Verfahren einmal
ab. Sei der erhaltene Zug gerade Z = (u = u0 , k1 , u1 , . . . , kn , un ), dann ist un = u . Denn
wäre un 6= u , so muss es außer kn eine weitere Kante kn+1 geben, dessen einer Knoten un
ist, weil die Gradzahl d(un ) gerade ist. Also wäre das Verfahren noch nicht abgebrochen.
Wir erhalten den geschlossenen einfachen Kantenzug (u = u0 , k1 , u1 , . . . , un−1 , kn , un = u).
Sei S die Menge der Kanten dieses Kantenzugs. Ist S = K, so sind wir fertig. Sei also
S 6= K, dann existiert ein Knoten v , der Endknoten einer Kante aus S und einer Kante
aus K \ S ist, da der Graph zusammenhängend ist. Wir betrachten den Graphen H mit
Knotenmenge E und Kantenmenge K \ S. Jeder Knoten dieses Graphen hat geraden Grad.
Wir können daher, wie oben, in H einen einfachen geschlossenen Kantenzug von v nach v
bilden: ( v, kn+1 , v1 , . . . , vm−1 , kn+m , v ). Da v Endknoten einer Kante aus S ist, ist v = ui
für ein i ∈ {0, . . . , n} . Wir fügen nun den Kantenzug in H in den ursprünglichen Kantenzug
27
“an der Stelle v = ui ” ein:
(u = u0 , k1 , u1 , . . . , ki , ui = v, kn+1 , v1 , . . . , vm−1 , kn+m , v = ui , ki+1 , . . . , kn , u).
Dies liefert einen größeren, geschlossenen, einfachen Kantenzug. In dieser Weise fortfahrend
erhalten wir wegen der Endlichkeit von G am Ende einen eulerschen Kantenzug.
3.2.5 Eulersche Touren - Hierholzer Algorithmus
Um eulersche Touren zu finden gibt es veschiedene Ansätze/Algorithmen. Wir gehen jeweils
davon aus, dass ein eulerscher Graph vorliegt und darin eine beliebige Eulertour gefunden
werden soll. Hier beschränken wir uns auf den Algorithmus von Hierholzer1 , der sehr anschaulich ist.
Bei diesem Algorithmus handelt es sich im Prinzip um den Beweis des Satzes von Euler (siehe
oben). Hier noch einmal der Algorithmus in Kurzform:
1. Einen beliebigen Punkt A des Graphen wählen.
2. Einen geschlossenen Unterkreis mit Anfangspunkt A finden, der alle Eigenschaften einer
eulerschen Tour erfüllt.
3. Alle Kanten dieses Unterkreises für die weiteren Betrachtungen vernachlässigen.
4. Die erste Ecke des Unterkreises wählen, deren Grad nun größer als 0 ist, und eine neue
eulersche Tour finden.
5. Diese Schritte solange wiederholen, bis alle Kanten verwendet wurden.
6. Man erhält den Eulerkreis, indem man mit dem ersten Unterkreis beginnt und an jedem
Schnittpunkt mit einem anderen Unterkreis, diesen einfügt. Anschliessend wird der erste
fortgesetzt bis zum Endpunkt.
1
nach C.F.B. Hierholzer (1840-1871)
28
Zur Verdeutlichung ein einfaches Beispiel:
Abbildung 3.19: Hier ist eine eulersche Tour zu finden
Wir sehen, dass dieser Graph eine eulersche Tour enthält: Alle Ecken haben den Grad 4.
Wir teilen den Graphen in geschlossene Touren ohne doppelte Kanten ein. In diesem Beispiel
bieten sich dazu die 3 Kreise an. Beginnt man nun an einem beliebigen Punkt und wechselt,
immer wenn dies möglich ist, auf einen Kreis, auf dem man noch nicht war, kann man leicht
eine Euler-Tour finden.
Die folgende Grafik zeigt eine mögliche Lösung.
Abbildung 3.20: Eine eulersche Tour: A-B-C-A-D-E-C-F-D-B-E-F-A
Durch das Anwenden dieses Algorithmus findet man also immer eine eulersche Tour, wenn
wir einen Graphen mit den genannten Eigenschaften haben.
3.2.6 Anwendungsbeispiele
Besuch einer Ausstellung
In vielen Ausstellungen stehen/hängen Kunstwerke auf beiden Seiten der Gänge. Auf dem
Rundgang durch die Ausstellung möchte man an allen Gemälden/Kunstwerken vorbeikommen, aber an jedem nur einmal und am Ende wieder an der Tür ankommen.
Abbildung 3.21: Ausstellungsräume
29
Um herauszufinden, ob ein solcher Rundgang überhaupt möglich ist, betrachten wir die
Ausstellung als Graphen:
• Jede Seite eines Ganges wird als Kante gezeichnet
• Jede Kreuzung von Gängen stellt eine Ecke des Graphen dar
Abbildung 3.22: Ausstellungsräume als Graph
Da der Graph, wie man leicht sieht, geschlossen ist und nur Ecken von geradem Grad hat,
handelt es sich um einen eulerschen Graphen. Somit ist ein Rundgang in gewünschter Form
möglich.
Domino
Die Aufgabenstellung lautet:
Ist es möglich alle Steine eines Dominospiels zu einem geschlossenen Kreis zusammenzulegen, wobei jeweils gleiche Zahlen nebeneinander liegen?
Es wird davon ausgegangen, dass ein Dominospiel aus 28 Spielsteinen, nämlich jeweils ein
Spielstein jeder möglichen Kombination der Zahlen 0 - 6, besteht.
Wir erstellen einen Graphen, der die Aufgabenstellung repäsentiert:
Die Ziffern 0 bis 6 stellen die Ecken dar und jeder Spielstein wird durch eine Kante repräsentiert. Eine Schlinge steht für einen Stein mit 2 gleichen Ziffern. Wir erhalten somit:
30
Abbildung 3.23: Domino als Graph
Da es sich hier um einen eulerschen Graphen handelt, ist auch unsere Aufgabenstellung
lösbar.
3.2.7 Vollständige Vielecke
Eine Verallgemeinerung des eben entwickelten Domino-Graphen sind die sogenannten vollständigen Vielecke. Der Domino-Graph stellt ein vollständiges Siebeneck dar, wenn man die
Schlingen vernachlässigt, also ein Siebeneck mit allen Diagonalen. Dem Haus vom Nikolaus“
”
fehlen 2 Kanten, um ein ein vollständiges Fünfeck zu sein. Dies würde wie folgt aussehen:
31
Abbildung 3.24: Vollständiges Vieleck
Wie man sieht, hat jeder Knoten den selben Grad, näämlich n-1. Folglich haben alle Ecken
eines vollständigen Vielecks einen geraden Grad, wenn die Anzahl der Ecken ungerade ist.
Diese Graphen sind eulersch.
Vollständige Vielecke sind genau dann eulersch, wenn sie eine ungerader Anzahl von Ecken haben.
3.2.8 Aufgaben Eulersche Graphen
1. Kann man die folgenden geometrischen Figuren zeichnen, ohne den Stift abzusetzen
(und ohne Kanten doppelt zu zeichnen), oder kann man gar eulersche Touren finden?
2. Ist es möglich in dieser Wohnung einen Rundgang zu machen, so dass man jede Tür
einmal passiert?
3. Kann man einen Draht so biegen, dass ein Würfel entsteht?
32
4. Ein Mitarbeiter des Straßendienstes will jeden Weg des vorliegenden Straßennetzes
genau einmal kontrollieren und anschliessend wieder zum Betriebshof zurückkehren. Ist
das möglich? Wenn ja machen Sie einen Tourenvorschlag.
3.2.9 Lösungen Eulersche Graphen
1. Die mit einem roten Kreis markierten Ecken haben einen ungeraden Grad.
• Die Graphen c), d) und e) sind eulersch und man kann sie somit auch mit einem
Strich zeichnen.
• Die Graphen a) und f) haben jeweils 2 Ecken mit ungeradem Grad, also kann man
sie auch mit einem Strich zeichen, wenn man in jeweils einer der markierten Ecken
beginnt und endet.
• Graph b) lässt sich nicht auf die geforderte Art zeichnen, da er 4 Ecken mit ungeradem Grad hat.
2. Die Wohnung als Graph dargestellt:
Knoten B und D haben einen ungeraden Grad, alle anderen einen geraden.
⇒ Man kann einen Rundgang finden, der durch jede Tür genau einmal führt. Allerdings
33
schafft man es nicht anschliessend auch wieder im gleichen Raum zu enden.
Ein möglicher Weg ist: A-B-C-B-D-E-D-F-C-D
3. Dies ist nicht möglich, da in jeder der acht Ecken eines Würfels drei Kanten enden.
4. Da man dieses Straßennetz als eulerschen Graphen darstellen kann, ist es auch möglich
eine Lösung zu finden.
Geht man nach dem Hierholzer Algorithmus vor, erhält man beispielsweise: G-C-E-GD-F-H-B-F-I-A-H-I-B-G
34
4 Hamiltonsche Graphen Und Grade von
Ecken
4.1 Hamiltonsche Graphen
4.1.1 Historisches
William Rowan Hamilton (1805 -1865) wurde in Dublin geboren und in Irland blieb er sein
Leben lang. Er galt als Wunderkind, allerdings nicht auf dem Gebiet der Mathematik, sondern
wegen seiner Sprachkenntnisse. Er soll sich vorgenommen haben pro Jahr, das er lebte, eine
Sprache sprechen zu können. Angeblich hat er dieses Vorhaben bis zu seinem 17. Lebensjahr
durchgehalten. Erst später begann er sich intensiver mit der Mathematik und Physik zu
beschäftigen. Mit 18 Jahren war er so erfolgreich, dass er bereits als irischer Newton gepriesen
wurde. Mit 22 erhielt er den Lehrstuhl für Astronomie an der Universität Dublin, ohne
sich dafür beworben zu haben. Hamilton arbeitete jedoch nicht als Astronom sondern als
Mathematiker. Er stellte die Algebra auf ein neues Fundament und befasste sich in diesem
Zusammenhang auch mit Graphen. Zu dem erfand er für die Physik eine Methode, mit
der man alle pysikalischen Phänomene egal ob Licht, mechanische Bewegungen oder Kräfte
beschreiben und zuverlässige Vorhersagen machen konnte.
Hamilton war seit seiner Kindheit berühmt und er fühlte sich auch als Genie. Dabei war er
kein ungeselliger Mensch. Jedoch war seine Ehe für ihn nicht glücklich, da seine Frau sich
nicht entsprechend der damaligen Zeit verhalten wollte oder konnte, und nicht den Haushalt
führte.
4.1.2 Definitionen
Kanten
Eine Kante verbindet zwei Ecken miteinander. Sind zwei Ecken miteinander verbunden, so
sind sie benachbart.
Kanten können gerichtet, gewichtet oder beides sein. Nennt man eine Kante gerichtet, so
kann man sie nur in einer Richtung benutzen. Das Gewicht einer Kante wird meist mit den
Kosten assoziiert, die bei der Benutzung dieser Kante entstehen. Eine Kante, die denselben
Start und Endpunkt hat nennt man Schleife
Ecken / Knoten
Ecken oder auch Knoten können die Anfangs- bzw. Endpunkte von Kanten sein. Ein Knoten
(oder eine Ecke) k von dem n Kanten ausgehen hat den Grad n.
35
Kantenzüge
Ein Kantenzug beschreibt den Weg von einer Ecke zu einer beliebigen anderen Ecke über
Kanten. Es kann sein, dass dabei der Weg sich selbst kreuzt, der anders ausgedrückt eine
Ecke mehr als einmal benutzt.
Kreise
Ein Kreis ist ein geschlossener Kantenzug, der jede der in ihm enthaltenen Ecken nur einmal
benutzt, sich also nicht überkreuzt und wieder bei seinem Ausgangspunkt ankommt.
4.1.3 Das Grundproblem
Kann man eine Rundfahrt durch verschiedene Städte, die miteinander durch Bahnlinien verbunden sind, so planen, dass man jede Stadt nur genau einmal besucht? Dabei spielt es
keine Rolle, ob jede Zugverbindung genutzt worden ist. Übertragen in einen Graph, stellen
die Städte die Knoten dar und die Zugverbindungen die Kanten. Die Strecke der Rundfahrt
ist ein geschlossener Kantenzug, der alle Knoten miteinander verbindet, ohne eine Kante
mehr als einmal zu benutzen. Ein Graph, der einen geschlossenen Kantenzug enthält, der alle
Knoten/Ecken miteinander verbindet nennt man hamiltonschen Graph, der Kantenzug heißt
hamiltonscher Kreis.
Definition Hamiltonscher Kreis: Ein geschlossener Kantenzug, der jede Ecke des Graphen
genau einmal enthält, heißt hamiltonscher Kreis. Er geht durch jede Ecke, braucht aber nicht
durch jede Kante zu führen.
Definition Hamiltonscher Graph: Ein Graph, der einen hamiltonschen Kreis enthält, heißt
hamiltonscher Graph. Diese Definition impliziert zugleich, dass jede Kante innerhalb des
Kreises auch nur maximal einmal benutzt wird.
4.1.4 Hamiltonsche Kreise finden
Um einen hamiltonschen Kreis zu finden muss man schrittweise nach dem Try & Error Prinzip vorgehen. Da man einen Kreis sucht ist die Wahl des Startpunktes sekundär.
Vom Startpunkt geht man zu einem benachbarten Knoten und von dort wiederum zum
nächsten. Nun hat man schon einen Kantenzug der Länge 3. Da der mittlere Knoten nicht
mehr angefahren werden darf, kann man alle nicht benutzten Kanten dieses Knotens streichen (natürlich nicht die Kante vom vorherigen Knoten und auch nicht die zum nächsten).
Entsteht bei einem noch nicht angefahrenen Knoten nach dem Streichen der Kanten der Grad
kleiner oder gleich 1, ist der Kantenzug, den man gerade ausgewählt hat nicht Teil eines hamiltonschen Kreises. Noch einmal die Regeln zum Finden eines hamiltonschen Kreises kurz
zusammen gefasst:
• nach dem Passieren eines Knotens werden alle nicht benutzten Kanten gestrichen
• es dürfen keine Knoten mit dem Grad 1 oder kleiner entstehen
36
Abbildung 4.1: Ein Hamiltonscher Kreis in einem Dodekaeder
• es dürfen keine Teilgraphen abgespalten werden, die mit dem restlichen Graphen nicht
zusammenhängen
Offensichtlich ist, dass dies keine konstruktiven Regeln sind, da sie sagen was nicht getan werden darf. Bis heute hat man weder einen Algorithmus gefunden, der eine qualitative Aussage
macht, ob ein Graph ein hamiltonscher Graph ist oder nicht, noch einen Algorithmus zum
Finden eines hamiltonschen Kreises. Es überrascht auch nicht, dass sich die Schwierigkeit
einen Hamiltonschen Kreis zu finden mit steigender Eckenzahl erhöht.
Jedoch kann man heute sagen, dass wenn jeder Koten eines Graphen mit n Knoten mindestens den Grad n2 hat, dann ist er hamiltonsch.
Mathematisch ausgedrückt:
Erfüllt ein Graph G(E,K), wobei E die Menge der Knoten(Ecken) ist und K die Menge der
der Kanten, die Bedingung:
grad(x) + grad(y) ≥ |E| ∀ x, y ∈ E , mit x 6= y ∧ {x,y} ∈
/K
dann ist der Graph G hamiltonsch
Beweis: Durch Widerspruch
Wenn der obige Satz falsch wäre, dann gäbe es mindestens einen Graphen G(E,K), der die
Bedingung erfüllt aber keinen Hamilton-Kreis enthält. Man betrachte das Gegenbeispiel mit
37
Eckenmenge E, für den |K| maximal ist. Da En einen Hamiltonkreis enthält, ist G kein
vollständiger Graph. G entält also mindestens eine Nichtkante, d.h. einen Knoten x,y mit
x 6= y und {x, y} ∈
/ K. Man nimmt sich ein beliebiges solches Paar, und fügt {x, y} als
zusätzliche Kante dem Graph hinzu. Dadurch erhält man einen neuen Graph G’, der ebenfalls die oben genannte Bedingung erfüllt. Da G als maximaler Gegenbeispiel-Graph gewählt
wurde, ist bekannt, dass G’ einen Hamiltonkreis C enthält. Da G einen solchen Kreis nicht
enthält muss G’ die Kante {x, y} enthalten.
Bei Durchnummerierung nach dem Prinzip C = (x = v1 , v2 , . . . , vn = y) und setzen von
S := { vi |1 ≤ i < n, {x, yi+1 } ∈ E} und
T := { vi |1 ≤ i < n, {x, yi } ∈ E}
/ S ∪ T und |S ∪ T | < |K| = n. Da aber —S— = grad(x) und —T— =
Dann gilt, y = vn ∈
grad(y), kann laut dem Satz nur gelten, wenn S ∩ T > 0.
Sei nun vi ein beliebiger Knoten in S ∩ T . Ersetzt man jetzt in C die beiden Kanten {x, y}
und { vi , vi+1 } durch { x, vi+1 } und { y, vi }, so erhält man wieder einen Hamiltonkreis und
damit den gewünschten Widerspruch. qed
Zusammenfassend kann man sagen: Hat der Graph genügend viele Kanten, so ist er hamiltonsch, da es genügend viele Möglichkeiten gibt einen Kreis zu finden.
4.1.5 Hamiltonsche Graphen neu zeichnen
Eine Eigenschaft von hamiltonschen Graphen ist, dass man sie leicht umzeichnen kann, so
dass sie übersichtlich werden. Da ja alle Knoten auf einem Kreis liegen, kann man Sie als
solchen anordnen.
Abbildung 4.2: Ein hamiltonscher Graph wird neu gezeichnet
4.1.6 Wann ist ein Graph nicht hamiltonsch?
Wenn man aus einem Graphen eine Ecke mit allen Kanten, die von ihr ausgehen entfernt
und der Graph zerfällt dann in zwei oder mehr Teile, war der Graph nicht hamiltonsch. Die
38
Begründung ist einfach: Einen Kreis kann man nicht durch einen Schnitt in zwei Teile teilen.
Abbildung 4.3: Erst zwei Schnitte teilen einen Kreis in zwei Teile
Wird eine Ecke aus einem hamiltonschen Graphen gelöscht, dann bleibt der restliche Graph
zusammenhängend. Entfernt man zwei Ecken, die nebeneinander liegen, so bleibt auch hier
der verbleibende Graph zusammenhängend. Wenn zwei beliebige Ecken entfernt werden,
zerfällt der Graph in höchstens zwei Teilgraphen. Das lässt sich auch allgemein so formulieren:
Löscht man aus einem Graphen n Ecken, so zerfällt er in höchstens n Teilgraphen.
Oder anders ausgedrückt: Wenn es möglich ist durch Entfernen von n Ecken den Graphen G
in n+1 Teilgraphen zerfallen zu lassen, dann ist G kein hamiltonscher Graph gewesen.
Diese Eigenschaft ist zwar auch nicht konstruktiv, aber man kann zumindest zeigen, dass ein
Graph kein Hamiltonkreis enthält.
4.1.7 Wie viele hamiltonsche Kreise gibt es?
In einem vollständigen Vieleck ist jede Ecke mit jeder anderen Ecke verbunden(vernetzt).
Jede Ecke in einem n-Eck hat also den Grad n-1. Ein vollständiges Vieleck ist offensichtlich
ein hamiltonscher Graph.
Um einen Hamiltonkreis zu finden, egal von welcher Ecke man startet, gibt es n-1 Kanten
über die man gehen kann. Von der zweiten Ecke sind es nur noch n-2 Möglichkeiten usw. Da
man aber einen Kreis in zwei Richtungen durchlaufen kann, ist die Vermutung es gäbe (n-1)!
hamiltonsche Kreise nicht ganz korrekt. Tatsächlich ist die Anzahl der hamiltonschen Kreise
in einem vollständigen n-Eck (n−1)!
2 . Damit hat man auch eine obere Schranke gefunden, wie
viele Hamiltonkreise es höchstens in einem einfachen Graphen mit n Ecken gibt.
4.2 Grade von Ecken
4.2.1 Es gibt immer zwei Ecken die den gleichen Grad haben
Satz: In jedem einfachen Graphen gibt es mindestens zwei Ecken, die den gleichen Grad haben.
Beweis: Bei einem einfachen Graphen handelt es sich um einen Graphen, der weder parallele Kanten noch Schlingen, d.h. Kanten die denselben Startecke und Endecke haben, hat.
39
In einem Graphen mit n Ecken ist der höchstmögliche Eckengrad n-1, da eine Ecke maximal zu jeder anderen Ecke verbunden sein kann. Nach Vorrausetztung kommen als möglich
Gradzahlen nur Zahlen aus der Menge { 0,1,2, . . . , n - 1 } in Frage.
• Falls eine der Ecken den Grad n-1 haben sollte, ist offensichlich, dass diese Ecke mit
jeder anderen Ecke im Graphen verbunden sein muss. Im Umkehrschluss heißt das aber
auch, dass es eine isolierte Ecke mit Grad 0 nicht geben kann. Jede Ecke muss also
einen Grad aus der Menge {1, 2, . . . , n - 1} haben. Diese Menge hat die Mächtigkeit
n-1, d.h. n - 1 Zahlen auf n Ecken zu verteilen. Das geht aber nur, wenn mindestens
eine Zahl doppelt verwendet wird.
• Hat aber keine der Ecken den Grad n - 1, ist der größtmögliche Grad n - 2. Es kann
also Ecken mit verschiedenen Graden aus der Menge {0, 1, . . . , n - 2} geben. Diese
Menge hat wiederum die Mächtigkeit n - 1, da es nun isolierte Ecken vom Grad 0 geben
kann. D.h wie im ersten Fall gilt es n - 1 Zahlen auf n Ecken zu verteilen, das geht wie gehabt - nur wenn mindestens eine der Zahlen doppelt verwendet wird.
4.2.2 Das Handshaking lemma
Satz: Die Summe der Eckengrade ist in jedem Graph eine gerade Zahl
Beweis: Jede Kante eines Graphen hat zwei Enden. Hat ein Graph p Kanten, so gibt es
2p Enden. Da sich der Grad einer Ecke aus den Enden der Kanten, die die Ecke berühren
bestimmt, ist 2p zugleich auch die Summe aller Grade der Ecken.
Außerdem ist leicht zu erkennen: Die Summe aller Eckengrade ist doppelt so groß wie
Anzahl der Kanten.
4.2.3 Ecken mit ungeradem Grad
Satz: In jedem Graphen ist die Summe der Ecken mit ungeradem Grad eine gerade Zahl.
Beweis: Sei u die Summe der Eckengrade, die ungerade sind und sei g die Summe der
Eckengrade die gerade sind. Dann ist g + u = a. a ist Summe aller Eckengrade und wie oben
gezeigt eine gerade Zahl. Auch g ist eine gerade Zahl da alle Summanden von g gerade sind.
Zieht man von einer gerade Zahl eine gerade Zahl ab, ist die Differenz wieder gerade. Daraus
folgt, das u eine gerade Zahl sein muss.
40
5 Bäume
5.1 Einführung
5.1.1 Was sind Bäume
Bäume sind eine spezielle Form von Graphen. Sie gehören zu den für die Anwendung wichtigsten Typen von Graphen. Im täglichen Leben trifft man häufig auf Bäume, wie zum Beispiel
beim Betrachten des Familienstammbaums, der Organisation von Tunieren oder der hierarchischen Struktur eines größeren Unternehmens. Gerade in der Informatik sind Baumstrukturen
von fundamentaler Bedeutung, etwa zur Organisation von Daten. Hier gibt es viele nützliche
Einsatzgebiete für Bäume.
In der hier folgenden Ausarbeitung werde ich auf Bäume im Sinne der Graphentheorie eingehen. Die Bedeutung von Bäumen in der Informatik, speziell ihre Funktion als Datenstruktur,
werden in dieser Ausarbeitung vernachlässigt. Wer diesbezüglich Informationen sucht, dem
seien die ,,Algorithmen”-Bücher des Literaturverzeichnis empfohlen.
[hp]
Abbildung 5.1: Beispiele von Bäumen
5.1.2 Begrifflichkeiten aus der Graphentheorie
Dieser Abschnitt soll nochmal Begrifflichkeiten wiederholen, die in vorangegangenen Ausarbeitungen ausführlicher erklärt wurden. .Siehe dazu die Skripte der vorangegangenen Abschnitte. Die Ansammlung der Begriffe erhebt keinen Anspruch auf Vollständigkeit. Sie soll
lediglich die in diesem Skript benutzten Begriff kurz erklären.
41
Kreis: ist ein geschlossener Kantenzug, der sich nicht überkreuzt.
Schlinge: ist ein Kreis der Länge eins.
Weg: ist ein Kantenzug, der jede seiner Ecken höchstens einmal enthält.
Grad: ist die Anzahl der Kanten die von einer Ecke ausgehen.
Hamlitonscher Kreis: ist ein Kreis, der jede Ecke des Graphen genau einmal enthält.
Eulerscher Graph: ist ein zusammenhängender Graph, in dem jede Ecke einen geraden
Grad hat.
5.2 Eigenschaften von Bäumen
5.2.1 Grundlagen
Wie schon in der Einführung erwähnt, handelt es sich bei Bäumen um eine spezielle Form
von Graphen. Von einem Baum spricht man in der Graphentheorie, wenn ein Graph weder
Schlingen noch Kreise besitzt. Des weiteren darf der Graph nicht aus mehreren Teilen bestehen. Es muss sich also um einen zusammenhängenden Graphen handeln. Somit erhält man
folgende Definition für Bäume:
Ein Baum ist ein zusammenhängender Graph, der keine Kreise oder Schlingen
enthält.
Aufgrund dessen, dass laut Definition in Bäumen keine Kreise zulässig sind, ergibt sich folgende Aussage:
Zwei unterschiedliche Ecken in einem Baum sind durch genau einen Weg miteinander verbunden.
Diese Aussage kann man leicht durch Überlegung nachvollziehen. Sollte es in einem Graphen zwischen zwei Ecken einen Hin- und einen Rückweg geben, so ist dieser Graph kein
Baum. Selbst zwei Wege zwischen zwei Ecken, die sich nur um eine Ecke unterscheiden und
sonst die gleichen Kanten besitzen, haben als Teilstrecke mindestens einen Kreis. Somit kann
dieser Graph auch kein Baum sein.
Die Umkehrung der letzten Aussage ist auch gültig. Denn sollte es in einem zusammenhängenden Graphen zwischen je zwei Ecken genau einen Weg geben, so ist dieser Graph ein Baum.
Die Existenz von Schlingen ist bei diesen Graphen auch ausgeschlossen.
42
Abbildung 5.2: Zwei Wege zwischen Start und Ziel
Sollte es einen Graphen geben, der nicht zusammenhängend ist und keine Kreise enthält,
so spricht man von einem Wald. Dieser Name kommt daher, da der Graph aus einzelnen
Bäumen besteht.
[h]
Abbildung 5.3: Ein Wald im Sinne der Graphentheorie
Durch die speziellen Eigenschaften von Bäumen lassen sich Aussagen über die Kanten
machen. Dies wird im folgenden Kapitel näher betrachtet.
5.2.2 Kanten eines Baums
Dadurch, dass in Bäumen keine geschlossenen Kantenzüge vorhanden sein dürfen, lassen sich
exakte Aussagen über die Anzahl der Kanten machen. Sie entspricht genau der um eins verringerten Anzahl aller Ecken eines Baums. Oder anders ausgedrückt:
Hat ein Baum n Ecken, so ist n-1 die Anzahl der Kanten dieses Baums.
Dies kann man leicht durch ein kleines Experiment nachvollziehen. Zeichnet man sich n
Punkte auf ein Blatt und verbindet diese, ohne dabei einen geschlossenen Kantenzug zu erzeugen, so hat man genauso viele Ecken besucht, wie man Kanten gezeichnet hat. Nimmt
man zu den besuchten Ecken die Anfangsecke mit hinzu, so erhält man n+1 Ecken und n
gezeichnete Kanten. Was wiederum der obigen Aussage entspricht.
Über die Kanten eines Baums lassen sich noch andere Aussagen treffen. Entfernt man zum
Beispiel eine Kante aus einem Baum, so zerfällt er in zwei Teilbäume. Diese Teilbäume hängen
nicht mehr miteinander zusammen. Die Begründung hierfür liegt in den oben geforderten Voraussetzung, die einen Graphen zu einem Baum machen. Denn sollte bei entfernen einer Kante
der angebliche Baum nicht in zwei Teile zerfallen, so war der Graph vor dem entfernen der
Kante kein Baum. Hieraus lässt sich eine andere Definition für Bäume herleiten:
Entfernt man aus einem zusammenhängenden Graphen eine beliebige Kante, sodass der Graph nicht mehr zusammenhängen ist, so war der Graph, vor entfernen
der Kante, ein Baum.
Kanten, durch dessen Entfernen ein Graph in zwei Teilgraphen zerfällt, werden auch Brücken
genannt. Somit kann man für Bäume feststellen, dass alle Kanten eines Baums Brücken sein
müssen. Und in der Umkehrung gilt auch, dass jeder zusammenhängende Graph, dessen Kanten Brücken sind, ein Baum ist.
43
5.2.3 Aufspannende Bäume
Jeder beliebige, zusammenhängende Graph enthält einen so genannten aufspannenden Baum.
Ein aufspannender Baum kann aus jedem zusammenhängenden Graphen erzeugt werden.
Hierzu ist es einzig und allein nötig alle Kreise des Graphen zu entfernen. Dies geschieht in
dem man nach und nach einzelne Kanten der Kreise entfernt. Ist die Anzahl der Kreise im
Graph auf null gesunken, hat man einen aufspannenden Baum erhalten. Dieser Baum, der
alle Ecken des Graphen enthält, wird aufspannender Baum des Graphen genannt.
Die Idee des aufspannenden Baums finden Anwendung in vielen praktischen Bereichen des
Lebens. So sind zum Beispiel Gas-, Strom- und Wasserversorgungbetriebe darauf bedacht,
dass ihr Versorgungsnetz gerade kein Baum ist. Denn falls eine Leitung ausfällt oder nicht in
Betrieb ist, sollte nicht gleich das ganz Netz zusammenbrechen. Nach Ausfall einer Leitung
sollte noch mindestens ein aufspannender Baum das Leitungsnetz charakterisieren.
[h]
Abbildung 5.4: Zwei aufspannende Bäume zum Nikolaushaus
Ein Graph kann ziemlich viele aufspannende Bäume besitzen. So lassen sich z.B. bei einem
Dreieck drei aufspannende Bäume finden. Es sind aber nur drei Bäume, wenn isomorphe1
Graphen unterschieden werden. Dies ist dann möglich, wenn die Kanten des Baums unterschieden werden können. Wird zwischen isomorphen Graphen kein Unterschied gemacht, so
hat ein Dreieck nur einen einzigen aufspannenden Baum. Für vollständige n-Ecke(vergleiche
hierzu Kapitel 1 Eulersche Graphen) lässt sich sogar die Anzahl der aufspannenden Bäume
berechnen. Für vollständige n-Ecke existieren genau nn-2 aufspannende Bäume.
Diese Formel kann auch auf ein anderes Problem angewandt werden. Falls es von Interesse
ist, wieviele Bäume mit n Ecken es gibt, so liefert diese Formel gleich das Ergebnis. Es sind
genau nn-2. Dieses Verhalten hat zuerst der engl. Mathematiker Caley erkannt. Aus diesem
Grund findet man sie in der Literatur auch als Formel von Caley.
[h]
1
gleiche Gestalt, gleiche Form
44
Abbildung 5.5: Aufspannende Bäume zu einem Dreieck, wenn man die Kanten unterscheidet.
5.3 Algorithmen und Anwendungsbeispiele für Bäume
5.3.1 Strategie zur Wegfindung in einem Labyrinth
Die Kenntnisse über Graphen können helfen den Weg aus einem Labyrinth zu finden. Hierzu
muss das Labyrinth abstrahiert werden. In dem man Gänge als Kanten und alle Kreuzungen/Verzweigungen als Ecken eines Graphen betrachtet, kann man ein Labyrinth als Graph
ansehen.
[h]
Abbildung 5.6: Labyrinth und dazu erstellter Graph
Sucht man nun an einer beliebigen Ecke des Labyrinths einen Weg zum Ausgang so empfiehlt sich folgende Strategie:
Zuerst muss der Startpunkt markiert werden. Im Anschluss daran sollte eine beliebige Richtung gewählt werden. Diese Richtung sollte auch im Gang markiert werden. Die Richtung
wird beibehalten, bis die nächste Ecke erreicht wird. An dieser Ecke wird die Ankunftsrichtung festgehalten. Und der Gang ausgewählt, der am weitesten rechts liegt, falls dies möglich
ist. Anfang und Ende des Ganges werden wieder durch Richtungspfeile markiert. Ist dieser
Gang eine Sackgasse, so geht man zurück zur vorherigen Ecke und markiert diesen Gang als
Sackgasse.
Gleiches gilt, falls eine schon besuchte Ecke nochmals besucht werden soll. Ist dies der Fall,
so sollte der letzte Gang auch als Sackgasse markiert werden.
Danach wählt man den nächsten möglichen Gang aus.
Wendet man diese Strategie an, so erreicht man alle Ecken des Graphen und somit auch den
Ausgang.
[h]
45
Abbildung 5.7: A: Sperren einer schon besuchten Ecke B: Sperren von Sackgassen C: Sperren
einer Kante eines Kreises
5.3.2 Der Greedy Algorithmus
Der Greedy2 Algorithmus wird angewandt, wenn in einem bewerteten Graphen ein aufspannender Baum erstellt werden soll, der den kleinstmöglichen Wert besitzt. So ein Baum wird
auch minimal aufspannender Baum genannt.
[h]
Abbildung 5.8: Straßennetz und die Baukosten
Ein praktisches Beispiel wäre der Neubau von Straßen zwischen verschiedenen Orten. Um
Kosten zu sparen soll nicht jeder Ort mit jedem verbunden werden. Es soll lediglich gewährleistet sein, dass jeder Ort von jedem anderen Ort auf einer neuen Straße erreicht werden
2
aus dem englischen greedy für gierig
46
kann. Dies bedeutet, dass das neue Straßennetz einem aufspannenden Baum entspricht. Wie
Eingangs erwähnt, handelt es sich hierbei sogar um einen minimal aufspannenden Baum.
Der Ablauf des Algorithmus ist denkbar einfach. Zuerst werden die Bewertungen der Kanten
in aufsteigender Reihenfolge notiert. Mehrfaches Vorkommen einer Zahl wird auch mehrfach
notiert.
Jetzt beginnt man damit einen Baum zu erzeugen, in dem man mit den geringsten Kosten
beginnt. Bei gleichen Kantenkosten hat man die freie Wahl welche man nimmt. Es macht
am Schluss keinen Unterschied für die Kosten. Lediglich der Baum sieht etwas anders aus.
Hat man alle Ecken miteinander verbunden, so hat man einen minimal aufspannenden Baum
erzeugt.
[h]
Abbildung 5.9: Minimal aufspannender Baum für den gegebenen Graphen
5.3.3 Der Dijkstra Algorithmus
Der Dijkstra Algorithmus ist ein sehr bekannter Graphenalgorithmus, der von Dijkstra entwickelt und nach ihm benannt wurde. Er dient zum Finden kürzester Wege in einem Graphen.
Oder anders ausgedrückt, mit diesem Algorithmus lässt sich ein Verbindungsweg zwischen
zwei Ecken finden, der die kleinste Bewertung hat.
Die Idee des Algorithmus ist es von der Startecke einen Baum wachsen zu lassen, bis er an
die Zielecke stößt. Hierbei ist beim erzeugen des Baums darauf zu achten, das nur kannten
mit möglichst kleinen Bewertungen zu nutzen. Da der Algorithmus recht komplex ist, ist es
am einfachsten ihn am Beispiel zu erklären.
Der Ansatz des Algorithmus ist der, dass ausgehend von einer Startecke mit jedem Schritt
eine neue Ecke hinzugenommen wird. Die Auswahl der Ecke geschieht so, dass die Ecke selektiert wird, die die geringste Kantenbewertung zur Startecke hat. Damit teilt sich der Graph
in zwei Teile auf. Zum Einen eine Menge von Ecken für die der günstigste Weg schon ermittelt wurde. Und eine Menge von Ecken, für die der Weg noch zu ermitteln ist. Das Ordnen
der direkten Verbindungen zwischen den zwei Mengen bringt die Lösung. Durch die Auswahl
der jeweils günstigsten Verbindung, und das Hinzufügen der neuen Ecke zu der Menge der
47
schon betrachteten Ecken, verringert sich die Anzahl der Ecken die noch betrachtet werden
müssen. Sobald man alle Ecken betrachtet hat, hat man, ausgehend von einer Startecke, zu
jeder anderen Ecken einen Weg mit kleinster Bewertung gefunden.
[h]
Abbildung 5.10: Schritt1: U ist der Startknoten, benachbarte Knoten sind V, W, X, Schritt2:
X hinzufügen, neue Nachbarknoten V,W,Y
[h]
Abbildung 5.11: Schritt3: V hinzufügen , Schritt4: Y hinzufügen, neue Nachbarknoten W,Z
[h]
Abbildung 5.12: Schritt3: W hinzufügen , Schritt4: Z hinzufügen
48
5.3.4 Die kürzeste Tour eines Briefträgers
Um die Arbeitszeit von Briefträger oder Müllabfuhrmitarbeitern möglichst optimal zu nutzen, sollen die zurückgelegten Wege möglichst kurz sein. Die Graphentheorie hilft auch hier
wieder um dieses Problem zu lösen. Auch hier ist es möglich den Zustellbezirk des Postboten zu einem Graphen zu abstrahieren. Wege und Straßen entsprechen wieder den Kanten,
Kreuzungen und Einmündungen entsprechen den Ecken eines Graphen. Einen kürzesten Weg
kann man nur finden, wenn der Graph ein bewerteter Graph ist.
Die eigentliche Aufgabenstellung für dieses Problem lautet also folglich: Es wird ein geschlossener Kantenzug gesucht, der alle Straßen des Bezirks enthält und eine minimal Gesamtbewertung hat. Dieses Problem ist auch als Chinese Postman Problem3 bekannt. Nicht zu
verwechseln mit dem Traveling Salesman Problem. In dem es darum ging den kürzesten hamiltonschen Kreis zu finden.
Handelt es sich bei dem erstellten Graphen um einen eulerschen Graphen, so ist die Lösung
denkbar einfach. Der Postbote kann jede eulersche Tour nehmen, da sie alle Straßen nur einmal enthält.
Ist der Graph ein Baum, so ist leicht ersichtlich, dass jede Kante genau zweimal durchlaufen
werden muss.
Im Allgemeinen löst sich das Problem dadurch, dass zu jeder Paarung zweier Ecke mit ungeradem Grad ein kürzester Weg gesucht wird. Hat man diesen Weg gefunden, so werden
entlang des Weges Kanten eingefügt, sodass der Graph nach und nach eulersch wird. Ist der
Graph ein eulerscher Graph, so macht der Postbote eine eulersche Tour.
[h]
Abbildung 5.13: Links: Bezirk des Briefträgers, Rechts: minimaler eulerscher Graph zum Bezirk
3
da sich ein chinesischer Mathematiker mit diesem Problem befasste
49
6 Bipartite Graphen
6.1 Liste vs. Graph
Fünf Freunde treffen sich zum Frühstücken und jeder bringt was mit.
Liste:
Fritz
Sarah
Hans
Manni
Gerd
???
Brötchen, Tee
Butter, Marmelade
Marmelade, Saft
Milch, Tee
Käse, Brötchen
Kaffee
Graph:
Abbildung 6.1: Frühstücksgraph
Entscheidender Vorteil des Graphen gegenüber einer Liste:
• man sieht welche Lebensmittel eine Person mitbringt
• man sieht welche Personen ein bestimmtes Lebensmittel mitbringen
50
• d.h. der Graph ist in beide Richtungen lesbar!
Definition: Bipartiter Graph Man nennt einen Graph G = (V, E) (V Menge der Knoten, E Menge der Kanten) bipartit (oder paar), wenn die Knoten aus zwei disjunkte Teilmengen A und B bestehen, sodass zwischen den Knoten innerhalb einer Teilmenge keine
Knoten miteinander verbunden sind.
Definition: Vollständig bipartiter Graph G ist vollständig bipartit, falls jeder Knoten
aus A mit jedem Knoten aus B verbunden ist.
Allgemein: k-partiter Graph Knotenmenge in k disjunkte Teilmengen zerfällt, so dass
die Knoten jeder dieser Teilmengen untereinander nicht benachbart sind.
Der Graph von eben ist also bipartit, denn er enthält 2 Sorten von Ecken (Personen,
Lebensmittel) und nur Kanten zwischen diesen beiden Eckenarten. Er ist nicht vollständig
bipartit, da nicht jede Person alles mitbringt.
6.1.1 Aufgabe 1
Zeichnen Sie einen bipartiten Graphen dieser musikalischen Familie: Die Mutter spielt Violine und Keyboard, der Vater Bass, Keybord und Trompete. Farin spielt Gitarre, Bela spielt
Schlagzeug und Bass, Rod spielt Keyboard, Ukulele und Gitarre.
Abbildung 6.2: Lösungsgraph zur Aufgabe 1
6.1.2 Aufgabe 2
Zeichnen Sie alle vollständigen bipartiten Graphen mit 6 Ecken!
Alle vollständigen bipartiten Graphen mit 6 Ecken:
51
Abbildung 6.3: Alle Lösungsgraphen zur Aufgabe 2
6.1.3 Ein bipartiter Graph muss nicht zusammenhängend sein
Graph:
Abbildung 6.4: Komponenten eines bipartiten Graphen
Wie man in dem obigen Graphen sehen kann, besteht dieser bipartite Graph aus 3 Komponenten (rot, blau, schwarz). Es können sogar isolierte Kanten auftreten. Ein Extremfall wäre
es, wenn alle Ecken isoliert sind.
6.2 Bipartite Kreise
Manche Graphen sollte man umzeichnen um die Bipartitheit besser zu erkennen, da sie oft
nicht offensichtlich ist wie z.B. bei einem viereckigen Graphen:
52
Abbildung 6.5: Viereck umzeichnen
Am einfachsten ist es, wenn man die Ecken der einen Menge auf eine Seite zeichnet und
die Ecken der anderen Menge auf die andere Seite, z.B:
Abbildung 6.6: Graphen umzeichnen
Anstatt einen Graphen umzuzeichnen, was sich besonders bei komplexeren Graphen als
mühsam gestaltet, kann man auch die Ecken einfärben. Wenn man es mit 2 Farben schafft,
dass benachbarten Ecken verschiedene Farben erhalten, so ist der Graph bipartit.
Abbildung 6.7: Graphen färben
53
6.2.1 Aufgabe 3
Sind folgende Graphen biparitit? (Zeichnen Sie sie geeignet um oder verwenden Farben)
Abbildung 6.8: Lösung zur Aufgabe 3
6.2.2 Sind alle Kreise bipartit?
Durchläuft man einen Kreis und färbt abwechselnd die Ecken weiß
bzw. schwarz, so ist klar, dass nur Kreise mit gerader Eckenzahl bipartit sein können. Denn
bei Kreisen mit ungerader Länge, liegen irgendwo 2 Ecken mit der selben Farbe nebeneinander.
Definition: nicht bipartiter Kreis Alle Kreise mit ungerader Eckenzahl sind nicht
bipartit.
Definition: bipartiter Kreis Alle Kreise mit gerader Eckenzahl sind bipartit.
Abbildung 6.9: Achteckiger Kreis
54
6.2.3 Aufgabe 4
Welche Eigenschaften im Bezug auf bipartit und eulersch haben diese Graphen?
Abbildung 6.10: Graphen zur Aufgabe 4
a) bipartit, eulersch; b) bipartit, nicht eulersch;
c) nicht bipartit, eulersch; d) nicht bipartit, nicht eulersch;
6.2.4 Aufgabe 5
Welche Eigenschaften im Bezug auf bipartit und hamiltonsch haben diese Graphen?
Abbildung 6.11: Graphen zur Aufgabe 5
a) bipartit, hamiltonsch; b) bipartit, nicht hamiltonsch;
c) nicht bipartit, hamiltonsch; d) nicht bipartit, nicht hamiltonsch;
55
6.3 Bipartite Bäume
In einem Baum existieren keine Kreise. Wenn man den Baum durchläuft und mit 2 Farben
anmalt, so haben benachbarte Ecken immer unterschiedliche Farben.
Beispiel:
Abbildung 6.12: Bipartiter Baum
Definition: Bipartite Bäume Jeder Baum ist bipartit.
Sprechweise: Bipartiter m-n-Graph Man nennt einen bipartiten Graphen einen m-nGraph, wenn m die Anzahl der Knoten in A und n die Anzahl der Knoten in B ist.
Bemerkung: Die Knotenmengen in einem bipartiten hamiltonischen Graphen müssen
gleich groß sein,
weil bipartite Graphen nur gerade Kreise enthalten.
6.3.1 Aufgabe 6
Wie viele bipartite 2-2-Graphen ohne parallele Kanten gibt es?
Wie viele davon sind zusammenhängend?
Es gibt 6 bipartite 2-2-Graphen ohne parallele Kanten,
von denen 2 zusammenhängend sind.
56
Abbildung 6.13: Lösungsgraphen zur Aufgabe 6
6.3.2 Aufgabe 7
Begründen sie mit der obigen Bemerkung,
dass der folgende Graph nicht hamiltonsch ist:
Abbildung 6.14: nicht hamiltonscher Graph
Es handelt sich um einen bipartiten 4-5-Graphen,
da die Eckenmengen nicht gleich groß sind.
57
Abbildung 6.15: nicht hamiltonscher Graph (gefärbt)
6.4 Erkennung bipartiter Graphen
Kreise mit ungerader Eckenanzahl sind nicht bipartit
⇒ Graphen die solche Kreise enthalten sind ebenfalls nicht bipartit
Beispiel:
Abbildung 6.16: nicht bipartiter Graph mit ungeradem Kreis
6.4.1 Hypothese & Beweis
Hypothese: Alle Graphen ohne Kreise mit ungerader Eckenanzahl sind bipartit
Beweis:
Graph ohne Kreise mit ungerader Eckenzahl (Fallunterscheidung):
1.Fall: Graphen ohne Kreise ⇒ Baum, d.h. ist bipartit
2.Fall: Graph enthält Kreise mit gerader Eckenanzahl
58
6.4.2 Beweis der Hypothese
2.Fall:
Wir lassen so viele Kanten weg, bis ein Baum übrig bleibt. Färbt man nun alle Knoten
abwechselnd ein, so wird folgendes klar:
Abbildung 6.17: Baum der durch teilweise Kantenlöschung eines Graphen entstand
Fügt man die weggelassenen Kanten wieder ein, so konnten diese nur Knoten unterschiedlicher Farbe verbunden haben, wegen der Vorraussetzung, dass nur gerade Kreise im Graphen
enthalten sind.
In der folgenden Abbildung sieht man, dass bei den hier verbundenen gleichfarbigen Kanten
ein Kreis der Länge 7 herauskommt. Ganz egal welche Kanten man zum Wiedereinfügen“
”
wählt, wenn sie die selbe Farbe haben, so würde ein ungerader Kreis entstehen.
59
Abbildung 6.18: Baum mit hypothetisch hinzugefügter Kante
Ergebnis: Die Hypothese ist korrekt Ein Graph ist bipartit ⇔ er enthält keine Kreise
ungerader Länge.
60
6.5 Bipartite Graphen und Schach
Für einen Turm ist das Schachbrett ein bipartiter Graph, wobei die weißen bzw. schwarzen
Felder je eine Menege darstellen. Ein Zug sieht dann so aus:
Abbildung 6.19: Zug des Turms in 3D und im bipartiten Graphen
6.6 Fachwerkhäuser
Im folgenden wird ein Fachwerkhaus betrachtet:
Dieses kann nicht ausschließlich aus senkrechten und waagerechten Balken bestehen, da es
sonst einer Belastung nicht standhalten würde.
Zunächst betrachten wir ein Rechteck.
61
Abbildung 6.20: Schlechtes Fachwerk
Hier kann man sehen, wie sich ein Fachwerk unter Belastung verhalten würde. Durch
Hinzufügen weiterer Streben lässt sich ein stabile Konstruktion eines Rechtecks und somit
auch des kompletten Fachwerks erreichen:
Abbildung 6.21: Stabiles Fachwerk
Nun stellt sich die Frage, ob es wirklich nötig ist, alle Rechtecke mit zusätzlichen Streben
auszustatten, dies könnte dann so aussehen und die Folge ist ein instabiles Fachwerkhaus.
Abbildung 6.22: Sparsames Fachwerk mit Bruch
Man könnte allerdings auch die sparsame Variante um eine Strebe erweitern und erhält ein
stabiles Fachwerkhaus, wie in folgender Abbildung gezeigt wird.
62
Abbildung 6.23: Stabiles sparsames Fachwerk
Nun untersuchen wir die Kriterien für die Stabilität von Fachwerkhäusern genauer.
Dazu unterteilen wir die Rechtecke in Fächer. In unserem Fall also 6 Fächer, aufgeteilt auf 2
waagerechte Zeilen und 3 senkrechte Spalten. Bei c) verbindet also die zuletzt hinzugefügte
Strebe die 1. Zeile mit der 2. Spalte.
Stabilitätsbedingung für ein Fachwerk:
Ein Fachwerk ist stabil, wenn jede Zeile mit jeder Spalte durch eine Strebe indirekt verbunden
ist.
Indirekt verbunden bedeutet: z.B.die 2. Zeile nicht direkt mit der 3. Spalte verbunden ist,
da das Fach rechts unten keine Strebe besitzt. Nun ist aber die 2. Zeile mit der 2. Spalte
verbunden, die 2. Spalte mit der 1. Zeile und die 1. Zeile mit der 3. Spalten.
Zur Veranschaulichung kann man dies in bipartiten Graphen darstellen, wobei die Zeilen und
Spalten die Ecken darstellen und die Streben die Kanten. Für die oben konstruierten Fachwerkhäuser könnte das wiefolgt aussehen:
Abbildung 6.24: Graphen zu den konstruierten Fachwerkhäusern
• zu a) jede Zeile ist mit jeder Spalte verbunden ⇒ vollständiger bipartiter Graph
• zu b) zwischen der 1.Zeile und der 2. Spalte besteht keine Verbindung ⇒ nicht zusammenhängender Graph
63
• zu c) hier sind alle Ecken direkt bzw.indirekt durch Kanten verbunden; von Z2 gelangt
man beispielweise über S2 und Z1 zu S1
Dadurch können wir folgende Schlussfolgerung ziehen:
Ein Fachwerk ist genau dann stabil, wenn der entsprechende bipartite Graph
zusammenhängend ist.
Man kann auch noch weitere Folgerungen ziehen:
Beispielsweise ist der Graph c) zusammenhängend, wenn man jedoch eine Kante weglässt,
ist er es nicht mehr und das Fachwerk wäre nicht mehr stabil. Der Graph für das stabile
Fachwerk mit dem geringsten Materialverbrauch ist ein Baum. Falls der Graph Kreise hat,
kann man in den Kreisen solange Kanten weglassen bis ein Baum übrig bleibt.
Auf das Fachwerk übertragen heißt das, dass man entsprechenden Streben weglassen kann.
Diese Veranschaulichung kann man auch auf andere Konstruktionsbereiche wie Baugerüste,
Brücken, usw. verallgemeinern.
6.7 Definition Matching
Für das nächste Kapitel ist der Begriff Matching wichtig, wir führen ihn nun ein:
Eine Untermenge M von E, d.h. eine Untermenge M der Kanten von dem Graphen G heißt Matching (Paarung) von G, wenn keine zwei Kanten aus M adjazent sind, oder anders gesagt, wenn keine zwei Kanten aus M einen gemeinsamen
Endknoten haben.
In den folgenden Abbildungen stellen die verstärkten Linien die Matchings dar.
Abbildung 6.25: Haus vom Nikolaus mit Matchinglinien
6.7.1 Perfektes Matching
Unter einem perfekten Matching versteht man, wenn ein Graph aus Teilgraphen dargestellt
werden kann, welche sämtliche Ecken in dem Graphen abdecken. Der Teilgraph darf jedoch
nicht aus isolierten Kanten bestehen; somit hat jede Ecke in einem perfekten Matching den
Grad 1.
64
Abbildung 6.26: Haus vom Nikolaus Perfektes Matching
6.7.2 Maximales Matching
Unter einem maximalen Matching versteht man, dass man keine zusätzliche Kante hinzunehmen kann, ohne die Bedingung für ein Matching zu verletzen. Im Gegensatz zum perfekten
Matching sind hier auch isolierte Kanten als Teilgraphen erlaubt.
Anschaulich bedeutet dies: Man kann keine weitere Verbindung zwischen Ecken des Graphens
zeichnen, ohne dass sich der Grad an mindestens einer der Ecken auf 2 erhöht.
Abbildung 6.27: Haus vom Nikolaus Maximales Matching I
Abbildung 6.28: Haus vom Nikolaus Maximales Matching II
65
Folgerungen:
Jedes perfekte Matching ist maximal, da alle Ecken durch Teilgraphen abgedeckt sind, jede
Ecke also den Grad 1 besitzt und durch Hinzunehmen einer Kante, also durch Verbinden
zweier Ecken, jede dieser Ecken danach den Grad 2 besitzt und somit kein Matching mehr
darstellt.
Dahingegen ist nicht jedes maximale Matching ein perfektes Matching, da bei maximalen
Matchings auch isolierte Kanten erlaubt sind, was im Widerspruch zur Definition des perfekten Matchings steht.
6.7.3 Übung: Aufgabe 17
Finden Sie zu dem folgenden Graphen ein perfektes Matching!
Abbildung 6.29: Graph zur Übung 17
Lösung:
66
Abbildung 6.30: Lösung zur Übung 17 - perfektes Matching
67
6.8 Heiratsvermittlung mit Graphen
Ein weiteres Beispiel für bipartite Graphen ist das bekannte Heiratsproblem. Bei einer Heiratsvermittlung werden die Kunden in zwei Kategorien eingeteilt; in Männer und in Frauen.
Zudem werden persönliche Wünsche bzgl. des Partners mit angegeben. Bei Ermittlung der
darauf basierender Paarungen, stellt sich raus, dass nicht nur ein Mann zu einer Frau passt
und umgekehrt. Dies kann man zunächst in einer Tabelle darstellen aber auch in einem
bipartiten Graphen. Dafür konstruiere man einen bipartiten Graphen G mit der Zweiteilung V (G) = X ∪ Y , wobei X = {x1 , x2 , ..., xn } die Menge der n Männer repräsentiert und
Y = {y1 , y2 , ..., yn } die Menge der n Frauen darstellt. Eine Kante verbindet den Knoten xi mit
dem Knoten yi nur dann, wenn xi zu yi passt. Die Kanten des Graphen zeigen die möglichen
Verbindungen der beiden Geschlechter.
Abbildung 6.31: Heiratsbeispiel 1
Die Verkupplung entspricht dann der Ermittlung von Bedingungen für die Existenz eines
Matchings in G. Gesucht ist nun eine Lösung bei der jeder Kunde einen Partner findet.
Dies könnte folgendermaßen aussehen:
68
Abbildung 6.32: Heiratsbeispiel 2
Es gibt jedoch nicht immer eine Lösung, auch wenn es genauso viele Männer wie Frauen
gibt, wie das folgende Beispiel zeigt:
Zu den drei Männern Thomas, Lars und Michael passen insgesamt nur zwei Frauen, so dass
einer der drei unverheiratet bleibt.
Abbildung 6.33: Heirat ohne Erfolg
6.9 Heiratssatz
Um nun jeden Mann verheiraten zu können, muss es zu jeder Menge von Männern eine mindestens ebenso große Menge an Frauen geben, die zu ihnen passen könnten.
Die Umkehrung ist nicht so leicht einzusehen:
Wenn der Graph jeder Menge von Männern eine mindestens gleich große Menge passender
Frauen zuordnet, dann kann jeder Mann ein Frau finden.
Dies gibt folgender Satz wieder:
In einem bipartiten Graph mit den Mengen M und N gibt es genau dann ein Matching, in
dem alle Elemente von M berücksichtigt werden, wenn für jede beliebige Teilmenge T von M
69
gilt: Die Kanten, die in T beginnen, haben in der Menge N mindestens so viele Enden wie T
Elemente hat.
6.9.1 Beweis
Beweis (per vollständiger Induktion). Wir bezeichnen die Menge X als die Menge der
Männer und Y als die Menge der Frauen, und es sei n = |X|. Dann ist für jedes k, 1 ≤ k ≤ n
eine Untermenge S von k Männern gegeben, die nur dann alle heiraten können, wenn sie
mindestens k Freundinnen haben, d.h. |N (S)| ≥ |S|. (*)
Dies zeigt, dass die Bedingung(*) dann erfüllt sein muss, wenn es eine Lösung des Heiratsproblem gibt, d.h., wenn es ein Matching in G gibt, so dass jeder Knoten ein Endknoten einer
Kante ist,.
Nehmen wir umgekehrt an, dass die Bedingung(*) erfüllt ist. Wir wollen nun durch vollständige Induktion nach der Anzahl der Männer beweisen, dass jeder Mann mit einer seiner Freundinnen(mögliche Partnerinnen) verheiratet werden kann.
Induktionsanfang:
Wenn n = 1, gibt es nur einen Mann, den wir x nennen wollen. Dann besagt(*) mit S = {x},
dass er mindestens eine Freundin hat. Damit können wir ihn verheiraten und haben den Beweis für n = 1 erbracht.
Nehmen wir nun an, dass das Ergebnis für alle Mengen von t Männern richtig ist, wobei t =
1,2,...,n-1 ist.
Wir wollen zeigen, dass das Ergebnis für eine Menge von n Männern richtig ist und betrachten zwei Fälle.
Induktionsschluss: Fall a. Nehmen wir zunächst an, dass für jedes beliebige k mit 1 ≤ k ≤
n, jede Menge von k Männern zusammen mindestens k+1 Freundinnen hat.
Dies bedeutet, dass wir für jede Untermenge S von X mit |S| < n,
|N (S)| ≥ |S + 1|
erhalten, d.h., die Bedingung (*) ist erfüllt, wobei eine Freundin “übrigbleibt“. Wird nun ein
beliebiger Mann mit einer seiner Freundinnen verheiratet, verbleiben noch n-1 zu verheiratende Männer.
Für jede beliebige, aus k Männern bestehende Untermenge der verbleibenden n-1 Männern,
haben durch dieses Verfahren möglicherweise eine ihrer Freundinnen verloren, nämlich die eine, die den ersten Mann geheiratet hat. Damit könnten wir die übriggebliebene Frau“verloren
”
haben, aber die Bedingung(*)ist für die Untermenge der n-1 Jungen noch nicht erfüllt. Gemäß
unserer Induktionsvoraussetzung können wir daher jeden dieser n Männer mit einer seiner
Freundinnen verheiraten.
Fall b. Nehmen wir nun an, dass es eine Menge k dieser n Männer gibt, mit k < n, die
gemeinsam genau k Frauen kennt. (Das besagt, dass (*) gültig ist, aber der vorherige Fall (a)
nicht.)
Da k < n, ermöglicht es unsere Induktionsannahme, diese k Männer zu verheiraten. Es
verbleiben n-k Männer, die noch unverheiratet sind. Aber jede Auswahl von h dieser n-k
Männer(mit 1 ≤ h ≤ n − k ) muss mindestens h Freundinnen aus der Anzahl der verbleibenden Frauen haben, da andernfalls diese h Männer zusammen mit der obigen Auswahl
der k Männern(h+k Männer insgesamt)im Widerspruch zu Bedingung(*) weniger als h+k
Freundinnen haben würden.
Es folgt, dass die Bedingung(*)auch für die verbleibenden Männer zutrifft und wir somit
70
gemäß unserer Induktionsvoraussetzung jeden dieser n Männer ebenfalls mit einer Freundin
verheiraten können.
Unter der Annahme, dass das Ergebnis für 1,...,n-1 richtig ist, konnten wir beweisen, dass
es auch für n richtg ist. Daher ist das Ergebnis gemäß der vollständigen Induktion für alle
Werte von n richtig. q.e.d
6.10 Folgerung aus dem Heiratssatz
Zunächst eine kurze Definition, die wir im Folgenden benötigen:
Ein Graph ist regulär, wenn alle Ecken den gleichen Grad haben.
Eine Folgerung aus dem Heiratssatz ist die, dass man immer ein Matching findet, dass alle
Ecken berücksichtigt, falls der bipartite Graph regulär ist.
6.10.1 Beweis
Zunächst wieder einige Bezeichnungen: Die beiden Teilmengen, die den bipartiten Graphen
darstellen, nennen wir M und N. Der Grad der Ecken, die hier gleich groß sein sollen, nennen
wir r. Mit |M | bezeichnen wir wieder die Anzahl der Ecken von M.
Somit ist die Anzahl aller Kanten, die von allen Ecken von M ausgehen insgesamt r * |M |
Gleichermaßen gibt es r * |N | Kanten, die von N nach M führen. Wenn der Graph G bipartit
ist, verläuft jede Kante von M nach N (dieselbe wie von N nach M ) und somit gilt: r *|M | =
r * |N | Da k > 0, führt das Kürzen zu: |M | = |N |. Dies bedeutet, dass die Mengen M und N
gleich viele Ecken besitzen.
Im Folgenden wird der Heiratssatz angewendet. Dazu betrachten wir eine beliebige Teilmenge
T von M (in der folgenden Abbildung verdeutlicht durch zusätzlichen Kreis um die Ecke).
Von T aus gehen also einige Kanten zu Ecken von N. Die erreichten Ecken bilden die Menge
U (in der folgenden Abbildung sind diese auch durch zusätzliche Kreise um die Ecken von N
gekennzeichnet.
Wie man sieht, beginnen in T r * |T | Kanten. Von U gehen in diesem Beispiel jedoch mehr
Kanten aus als von der Menge T.
Es gilt also: r ∗ |U | ≥ r ∗ |T | gekürzt also
|U | ≥ |T | Das ist gerade die Bedingung für die Verwendung des Heiratssatz.
71
Abbildung 6.34: Folgerung Heiratssatz 1
Es folgt also: Ist ein bipartiter Graph regulär, so gibt es ein Matching, dass alle
Ecken von M und N berücksichtigt. (M und N sind dabei die Eckenmengen,
aus denen der Graph besteht.)
Also gibt es in jedem regulären bipartiten Graphen ein perfektes Matching.
Für unser Beispiel:
72
Abbildung 6.35: Folgerung Heiratssatz - perfektes Matching
6.11 abschließende Übung
Wir haben gelernt, dass jeder reguläre bipartite Graph ein perfektes Matching hat.
Es stellt sich die Frage, ob jeder reguläre Graph ein perfektes Matching besitzt. Die Antwort
lautet nein. Die Begründung liefert der folgende Graph. Woran kann man erkennen, dass er
1. nicht bipartit ist
2. regulär ist
3. kein perfektes Matching besitzt
Abbildung 6.36: Graph zur Übung 18
Lösung:
• nicht bipartit: Er besitzt Dreiecke
• regulär: Alle Ecken haben den Grad 3
• kein perfektes Matching: Von diesen drei Kanten kann nur eine zum Matching gehören,
die beiden anderen also nicht. Sie müssen von den anhängenden Quadraten versorgt“
”
werden. Diese Quadrate haben aber fünf Ecken, so dass es für sie kein perfektes Matching geben kann.
73
Abbildung 6.37: Lösungsgraph zur Übung 18
74
7 Digraphen
7.1 gerichtete Graphen – Digraphen
In den vorangegangenen Kapiteln haben wir Graphen kennengelernt, in denen es ausreichte zu wissen, dass zwischen zwei Knoten eine Verbindung besteht. Es gibt aber auch viele
Problemstellungen, bei denen dieses Wissen nicht genügt bzw. nicht eindeutig zu bestimmen
ist. Wenn man z.B. die Straßen einer Stadt nimmt, kann es sein, dass man von Kreuzung A
nach Kreuzung B direkt gelangt, aber die umgekehrte Richtung nicht möglich ist, da es sich
um eine Einbahnstraße handelt. In diesem Fall gibt es eine Kante von A nach B, aber nicht
umgekehrt. Zur eindeutigen Kennzeichnung wird die Kante in Form eines Pfeils gezeichnet.
Demnach benötigt man für normale Straßen zwei Kanten, eine für jede Richtung.
A
B
c Google Maps)
Abbildung 7.1: Stadtplan von Jülich City (
Stellt man den Stadtplan nach dieser Art dar, erhält man einen so genannten gerichteten“
”
75
Graphen, der allgemein auch als Digraph 1 bezeichnet wird.
Definition 1 (Digraphen) Gegeben sind eine endliche Menge Knoten V und eine Relation
K ⊆ V × V , wobei k = (u, v) ∈ K eine gerichtete Kante von Knoten u nach Knoten v ist,
~
dann bezeichnet man G(V,
K) als gerichteten Graphen bzw. Digraphen.
Bemerkung 2 Jeder ungerichtete Graph ist auch ein Digraph, aber nicht jeder Digraph ist
ein ungerichteter Graph.
1
2
1
2
3
4
3
4
Abbildung 7.2: Übergang vom ungerichteten zum gerichteten Graphen
Jeder ungerichtete Graph kann in einen Digraph umgewandelt werden, indem jede Kante
durch zwei gerichtete Kanten ersetzt wird, wie es in Abbildung 7.2 dargestellt ist.
Durch die Richtung erhalten die Knoten jetzt ein weiteres Charakteristikum. Und zwar
kann man zählen, wie viele Kanten von einem Knoten abgehen bzw. an einem Knoten ankommen.
Definition 3 Die Anzahl der zu einem Knoten hinführenden Kanten nennt man Eingangsgrad eines Knoten. Entsprechend nennt man die Anzahl Kanten, die von einem Knoten
wegführen, den Ausgangsgrad.
Das bedeutet auch, ein Knoten erhält durch eine Schlinge einen Ausgangs- und einen Eingangsgrad hinzu, weil die Kante beim Knoten beginnt und wieder endet.
Eine weitere Konsequenz der gerichteten Kanten ist, dass die Adjazenzmatrix eines Digraphen nicht mehr notwendigerweise symmetrisch ist (Siehe Abbildung 7.3).
A
C
B
A
→ B
C
D
D
A
0
0
0
1
B
1
1
0
0
C
1
0
0
1
D
1
0
0
0
Abbildung 7.3: Adjazenzmatrix eines Digraphen
Ausserdem hat die Ergänzung eines Graphen durch Richtungen Auswirkungen auf die
Frage, ob zwei Digraphen isomorph zueinander sind. Den Isomorphismus bei ungerichteten
Graphen haben wir bereits im ersten Kapitel über Eulersche Graphen kennengelernt.
1
Digraph kommt aus dem Englischen und steht für directed graph
76
Bemerkung 4 Zwei Digraphen sind isomorph, wenn die zugrunde liegenden ungerichteten
Graphen isomorph sind, und die Knoten den gleichen Eingangs- und Ausgangsgrad besitzen.
In Abbildung 7.4 sind die beiden Digraphen ➊ und ➌ isomorph zueinander. Die Digraphen
➊ und ➋ sind es nicht , weil im zweiten Graph u.a. ein Knoten mit Eingangsgrad drei existiert,
der im ersten nicht vorkommt.
1
2
3
Abbildung 7.4: Isomorphie bei Digraphen
Kommen wir zurück auf das Beispiel mit dem Straßenplan, der teilweise aus Einbahnstraßen besteht. Die Frage, die man sich jetzt stellen könnte, ist: Können alle Straßen durch
Einbahnstraßen ersetzt werden, so dass ein Autofahrer trotzdem noch alle Punkte in der
Stadt erreichen kann?
Definition 5 Gibt es in einem Digraph von jedem Knoten einen gerichteten Weg über alle
anderen Knoten, so bezeichnet man ihn als stark zusammenhängend.
Nicht jeder Straßenplan lässt sich in ein Einbahnstraßensystem umwandeln, das diese Eigenschaft besitzt. Wenn zum Beispiel zwei Stadtteile nur durch eine einzelne Brücke miteinander
verbunden sind, darf diese nicht zur Einbahnstraße gemacht werden. Ansonsten könnten die
Bewohner der einen Seite die auf der anderen nicht besuchen, nur umgekehrt. Sackgassen sind
die einfachste Art einer Brücke. Noch eindeutiger ist der fehlenden Zusammenhang, wenn eine Stadt – wie früher Berlin – in zwei Teile unterteilt ist und es überhaupt keine Verbindung
zwischen den Teilen gibt.
In Abbildung 7.5 on the next page sind Digraphen dargestellt, die nicht stark zusammenhängend
sind, weil sie entweder Brücken besitzen(➊,➋) oder gar nicht verbunden sind(➌).
Bemerkung 6 Ein Graph kann genau dann zu einem stark zusammenhängenden Digraphen
gemacht werden, wenn er zusammenhängend ist und keine Brücken enthält.
Der Beweis für diesen Satz geht analog dem Beweis aus Abschnitt 7.5 on the following page,
nur das bei gerichteten Graphen noch die Richtung der Kante berücksichtigt werden muss.
Sowohl eulersche Graphen (Vgl. Königsberger Brückenproblem [?]) als auch hamiltonsche
Graphen (Vgl. Traveling Salesman Problem [?]) erfüllen diese Bedingung.
Um einen eulerschen Digraphen zu erhalten, muss bei einem eulerschen Graphen die Richtung der Kanten berücksichtigt werden. Folgt man dem eulerschen Weg, muss die Anzahl der
Eingangsgrade jedes Knotens gleich der Anzahl der Ausgangsgrade sein. Umgekehrt kann mit
77
1
2
3
Abbildung 7.5: Brücken und Einbahnstraßen
dem Algorithmus von Hierholzer ([?]) gezeigt werden, dass immer ein gerichteter eulerscher
Weg gefunden wird, wenn in einem Digraph in jedem Knoten die Eingangsgradzahl gleich
der Ausgangsgradzahl ist.
Definition 7 (eulerscher Digraph) Ein Digraph ist genau dann eulersch, wenn er zusammenhängend ist und in jedem Knoten der Eingangsgrad gleich dem Ausgangsgrad ist.
Abbildung 7.6: eulerscher Digraph (links) und hamiltonscher Digraph (rechts)
Ähnlich kann die hamiltonsche Eigenschaft von Graphen auf Digraphen übertragen werden.
Definition 8 (hamiltonscher Digraph) Ein hamiltonscher Digraph ist ein Digraph, bei
dem ein gerichteter Rundweg über alle Knoten existiert.
Ein eulerscher und ein hamiltonscher Digraph sind in Abbildung 7.6 zu sehen.
7.1.1 Anwendung von Digraphen: Turniergraphen
Ein Turnierverlauf, bei dem jeder Spieler einmal gegen jeden Gegenspieler antritt und es
immer einen Sieger pro Duell gibt, kann durch einen Digraphen dargestellt werden. Die Spieler
werden durch die Knoten repräsentiert und zwischen je zwei Knoten wird eine gerichtete
Kante vom Sieger zum Verlierer eingetragen.
78
Definition 9 Ein Digraph, bei dem es zwischen je zwei Knoten genau eine gerichtete Kante
gibt und keine Kante existiert, die von einem Knoten auf sich selber zeigt (Schlinge), bezeichnet man als Turniergraph.
Zwei Beispiele von Turniergraphen sind in Abbildung 7.7 on the following page zu sehen.
Die Frage ist nun: Kann man aus einem Turniergraphen erkennen, wer der beste Spieler
ist?
Natürlich ist der Spieler Turniersieger, der die größte Ausgangsgradzahl hat. Nur muss dass
nicht immer eindeutig sein. Um festlegen zu können, wer Sieger des Turniers ist, muss daher
eine Rangfolge erstellt werden.
Bemerkung 10 In jedem Turniergraph gibt es mindestens einen gerichteten Weg, der durch
sämtliche Knoten führt.
Beweis: vollständige Induktion
Induktionsanfang: Es gibt eine Menge mit zwei Knoten {A1 , A2 } und o.B.d.A. gilt:
A1
A2
Induktionsbehauptung: n Knoten {A1 , . . . An } bilden einen Turniergraphen, in dem es einen
gerichteten Weg über alle Knoten gibt:
Ai(2)
Ai(1)
A...
Ai(n)
Induktionsschritt: Wird An+1 hinzugefügt, müssen drei Fälle unterschieden werden.
1. Fall: An+1 → Ai(1) : Es existiert ein Weg!
Ai(1)
Ai(n)
A...
An+1
2. Fall: Ai(n) → An+1 : Es existiert ein Weg!
Ai(1)
A...
Ai(n)
An+1
3. Fall: Es gilt: Ai(1) → An+1 und An+1 → Ai(n) => Es muss ein Knoten-Tupel (Ai(k) , Ai(k+1) )
geben, so dass (Ai(k) → An+1 → Ai(k+1) ), denn ansonsten müssten alle Beziehungen An+1 →
Ai(∗) bzw. Ai(∗) → An+1 sein, was aber laut Vorraussetzung nicht sein kann.
Ai(1)
Ai(k+1)
Ai(k)
An+1
79
Ai(n)
Haben wir somit immer einen eindeutigen Sieger? Nein, denn nimmt man z.B. drei Spieler
A, B und C und gewinnt A gegen B, B gegen C und C gegen A, so kann sich jeder als
Sieger fühlen, da er jeden anderen direkt oder indirekt geschlagen hat. Er findet einen Weg
durch den Turniergraphen zu allen Knoten, der bei ihm selbst beginnt. So eine Konstellation
bezeichnet man als Kreis im Turniergraph, der Graph ➊ in Abbildung 7.7 ist ein Beispiel
dafür
1
2
Abbildung 7.7: Beispiele für Turniergraphen: Turniergraphen mit drei Knoten
Wie man in der Abbildung 7.8 sieht, ist dort zwar der Sieger eindeutig bestimmt, die
restlichen Spieler bilden aber wieder einen Kreis. Auch hier kann keine eindeutige Reihenfolge
festgelegt werden.
S
Abbildung 7.8: Turniergraph mit eindeutigem Sieger
Damit das möglich ist, darf es nur genau einen Weg durch den Turniergraphen geben.
Transitive Turniergraphen erfüllen diese Eigenschaft.
Definition 11 (transitiver Turniergraph) Ein Turniergraph ist transitiv, wenn für alle
Knoten A, B, C ∈ {Knoten des Graphen} gilt:
A→B
und
B→C
=>
A→C
Das bedeutet zusätzlich, dass zwei transitive Turniergraphen, die in der Anzahl ihrer Knoten übereinstimmen, isomorph sind. Denn aus der Bedingung für die Transitivität kann es
nur eine Darstellung für den Turniergraphen geben.
80
A1
A2
A3
Ak
Ak+1
An-1
An
Abbildung 7.9: transitiver Turniergraph
Ein Beispiel für einen transitiven Turniergraphen finden wir in Abbildung 7.9 und auch in
in Abbildung 7.7 on the preceding page in Graph ➋
In Abbildung 7.9 wird zudem gezeigt, dass man jeden transitiven Turniergraphen so zeichnen kann das alle Kanten von links nach rechts führen.
Könige und Vizekönige
Mit Turniergraphen können auch soziale Beziehungen in einer Personengruppe dargestell
werden (Soziogramm), sofern man den Idealfall der partnerschaftlichen Gleichberechtigung
außer Acht lässt. Wie in Bemerkung 10 on page 79 bereits erwähnt, gibt es immer einen
Weg durch den ganzen Digraphen, doch der muss nicht eindeutig sein. Wer hat also jetzt das
Sagen in der Gruppe?
Betrachten wir dazu die Ausgangsgrade der Knoten. Ohne Beschränkung der Allgemeinheit
können wir sagen, dass es einen Knoten M - den König - gibt, der den größten Ausgangsgrad
hat.
Der einfachste Fall ist, wenn der Knoten M nur abgehende Kanten hat. Diese Person ist
allen anderen übergeordnet, hat also die Position eines Diktators.
Wenn dem nicht so ist, können wir die anderen Knoten in zwei Gruppen einteilen. Die Ein”
gangsmenge“ E enthält alle Personen, die Einfluss auf M haben, und in der “Ausgangsmenge“
A sind alle die, die M kontrolliert.
Betrachten wir nun die Gruppe E. Kann es eine Person in dieser Gruppe geben, die alle
Personen der Gruppe A direkt beeinflussen kann? Nein, denn dann wäre der Ausgangsgrad
dieses Knotens größer als der von M , was nicht sein kann. Also wird jede Person aus E von
mindestens einer Person aus A kontrolliert. Damit wissen wir von König M , dass er jeden
anderen direkt oder über einen Mittelsmann - einem Vizekönig - beherrscht.
Bemerkung 12 In jedem Turniergraphen gibt es mindestens einen Knoten, von dem aus
man jeden anderen Knoten in höchstens zwei Schritten erreichen kann.
Ein Beispiel dazu findet sich in Abbbildung 7.10 on the next page.
Diese Person muss nicht eindeutig sein. Es ist sogar so, dass fast immer eine Konstellation
konstruiert werden kann, so dass jeder Knoten alle anderen in ein oder zwei Schritten erreichen
kann.
Bemerkung 13 Für jede Knotenzahl gibt es einen Turniergraphen, in dem man von jedem
Knoten zu jedem anderen in höchstens zwei Schritten gelangen kann, außer für n = 2 und 4
81
k
K
Abbildung 7.10: K ist ein König, k ein Vizekönig
N = 2 ist der triviale Fall, denn zwischen den beiden Knoten gibt es nur eine gerichtete
Kante, und damit gibt es keine Möglichkeit vom Unterlegenen einen Weg zum Sieger zu
finden.
Für vier Knoten sind in Abbildung 7.11 alle möglichen Turniergraphen (bis auf die isomorphen Kombinationen) aufgezeichnet, und wie man sieht gibt es keine Lösung, so dass alle
Knoten König sein können.
3-1-1-1
2-2-2-0
3 - 2 - 1- 0
2-2-1-1
Abbildung 7.11: Turniergraphen mit vier Knoten (Die Zahlen entsprechen dem Ausgangsgrad
der Knoten)
Warum gibt es denn für alle anderen Knotenzahlen eine Lösung?
Turniergraphen für 3, 5 und 6 Knoten, die diese Bedingung erfüllen, sind in Abbildung 7.12 on
the next page angegeben.
Angenommen, für n Knoten gibt es eine Lösung. Dann nehmen wir zwei Knoten hinzu:
A und B
Ohne Beschränkung der Allgemeinheit können wir festlegen, dass B A schlägt. Wenn dann
A alle n Knoten besiegt, aber B von allen geschlagen wird, wie in Abbildung 7.13 on the
following page dargestellt, dann haben wir wieder einen Turniergraphen, wo jeder Knoten
jeden anderen in spätestens zwei Schritten erreichen kann.
Da wir damit den Beweis von n → n + 2 gezeigt haben, und es für 5 und 6 nachgewiesen
haben, gilt die Aussage für alle Knotenzahlen n ≥ 5.
82
Abbildung 7.12: Turniergraphen mit drei, fünf und sechs Knoten
A
B
...
(je n-2 Kanten)
Turniergraph mit n-2 Ecken
Abbildung 7.13: Turniergraphen mit n Knoten
7.1.2 Anwendung von Digraphen: kürzeste Wege Problem
Eine weitere Anwendung von Digraphen findet sich bei der Suche nach dem kürzesten Weg
von einem Knoten zu einem bestimmten anderen Knoten. Wenn man z.B. in einer großen
Stadt mit der Straßenbahn zu einem bestimmten Ziel fahren möchte, kann es sein, dass es
mehrere Wege gibt, die dort hin führen. Nur welcher ist der kürzeste?
9M
H4
ten
8 Minuten
Ziel
H6
inu
H3
10
Min
ute
n
M
in
ut
en
7 Minuten
12
4 Minuten
H1
H2
4 Minuten
15
Start
n
ute
Min
H5
ten
inu
M
14
Abbildung 7.14: Fahrstrecke vom Start zum Ziel als gewichteter Digraph
Um das Problem zu lösen, stellt man die Haltestellen als Knoten eines Digraphen dar.
Wenn zwei Haltestellen direkt miteinander verbunden sind, zeichnet man zwischen ihnen
eine Kante. Um nun die Fahrdauer zu berücksichtigen, wird die entsprechende Kante mit der
Zeit gewichtet. In der Abbildung 7.14 ist ein Beispiel dargestellt.
Ein Lösungsansatz ist der Dijkstra-Algorithmus, der für allgemeine Graphen bereits beschrieben wurde. In diesem Beispiel muß wie folgt vorgegangen werden. Man geht von dem
Start-Knoten H1 als Anfangsmenge aus und merkt sich alle Knoten in einer Liste, die direkt
erreicht werden können: H2 : 15 Minuten
H3 : 9 Minuten
Der mit der kürzesten Fahrzeit wird mit in die Menge aufgenommen: {H1, H3}
Die Liste aus dem ersten Schritt wird um die Knoten erweitert, die über den gerade hinzugewonnenen Knoten zu erreichen sind. Dabei muss bei der Fahrzeit die Zeit bis zu der
83
neuen Haltestelle berücksichtigt werden. Wird jetzt ein Knoten, der bereits in der Liste
ist, noch schneller über den neuen Knoten erreicht, muß diese neue Zeit behalten werden:
H2 : 13 Minuten
H4 : 21 Minuten
H5 : 17 Minuten
Die Haltestelle mit der insgesamt kürzesten Fahrzeit wird in unsere Menge aufgenommen:
{H1, H3, H2 über H3}
So fährt man fort, bis man am Zielknoten angekommen ist. Als Ergebnis erhält man den
kürzesten Weg vom Start- zum Zielpunkt und die Fahrzeit.
In diesem Beispiel kommt man am schnellsten ans Ziel, wenn man von H1 über H3 nach
H2, weiter nach H4 und letztlich nach H6 fährt. Die Fahrzeit beträgt 30 Minuten.
7.1.3 Anwendung von Digraphen: Teilergraph
Für jede natürliche Zahl kann ein sogenannter Teilergraph erstellt werden. Dabei fängt man
mit der Zahl selber an und teilt diese durch ihre Primteiler. In Abbildung 7.15 hat die Zahl
50 die möglichen Primteiler 2 und 5. Die Zahl 50 geteilt durch 2 ergibt 25, und wird als
neuer Knoten eingetragen. Mit den neuen Knoten fährt man nach selben Prinzip fort, bis die
Ergebnisse selber Primzahlen sind.
50
2
5
25
10
5
2
5
2
5
Abbildung 7.15: Teilergraph
Diese Darstellung für die Zahl 50 sagt etwas über die Struktur der Zahl aus. Nimmt man
sich zwei beliebige Knoten heraus - z.B. die 25 und die 10, und folgt diesen Knoten nach
unten bis sich die Wege in einem Knoten treffen, hat man den größten gemeinsamen Teiler
(ggT) gefunden (5).
Geht man statt nach unten nach oben - z.B. von der 2 und 5, dann treffen sich die Wege
im kleinsten gemeinsamen Vielfachen (kgV), hier der 10.
84
8 Körper und Flächen
8.1 Einleitung und Motivation
Bisher betrachtete Graphen waren Zeichnungen in der Ebene, d.h. zweidimensionale Gebilde.
Aber da unsere Welt um uns herum dreidimensional ist, sollten wir versuchen, auch den
Begriff des Graphen auf die dritte Dimension auszuweiten.
Ecken und Kanten können wir uns auch im Raum vorstellen. Dabei sind Ecken Punkte
im Dreidimensionalen und die Kanten stellen die Verbindungen zwischen diesen Punkten
dar. Auf diese Art und Weise können wir nun auch Körper als Graphen ansehen. Dabei
interessieren wir uns hier nicht für Volumen, Winkel oder Längen von Kanten und Größen
von Flächen. Vielmehr soll es in diesem Kapitel um die Beziehungen zwischen Ecken und
Kanten eines als Graphen aufgefassten Körpers gehen. Die folgende Abbildung zeigt zwei
Beispiele für Graphen im dreidimensionalen Raum.
Abbildung 8.1: Räumliche Graphen.
Ohne große Vorkenntnisse können wir jedoch bereits an dieser Stelle feststellen, dass sich
gewisse Körper nicht in einem Graphen darstellen lassen. Eine Kugel beispielsweise besitzt
keine Kanten. Ein Zylinder hingegen besitzt zwar Kanten, diese sind aber nicht durch Ecken
begrenzt. Wir müssen daher die Gruppe der Körper, die wir uns in diesem Kapitel näher
ansehen wollen, einschränken. Wir beschäftigen uns im Weiteren mit endlichen Polyedern,
d.h. mit Körpern, die durch ebene Flächen begrenzt werden. Außerdem schließen wir bei den
im Folgenden zu betrachtenden Körpern durchgehende Löcher wie in Abbildung 8.2 aus.
Abbildung 8.2: Körper mit Löchern werden nicht untersucht.
85
8.2 Darstellung von Polyedern in der Ebene
Nachdem wir im letzten Abschnitt festgelegt haben, welche Art von Gebilden wir näher
betrachten wollen, stellt sich die Frage, wie man dreidimensionale Graphen in der zweidimensionalen Zeichenebene darstellen kann.
8.2.1 Schrägbilder
Eine bekannte Möglichkeit Körper zu zeichnen, bietet die Verwendung von Schrägbildern.
Bei der Konstruktion von Schrägbildern ist es sinnvoll, zunächst die Grundfläche zu zeichnen.
Dabei beginnt man mit einer beliebig gewählten Grundseite. Diese wird horizontal und in
der vorgegebenen Länge gezeichnet. Anschließend konstruiert man die Tiefenkanten, welche
je an den beiden Eckpunkten der Grundseite um 45◦ geneigt angesetzt werden. Damit wird
ein dreidimensionalen Effekt erzielt. Des Weiteren konstruiert man die Tiefenkanten um die
Hälfte des vorgegebenen Maßes gekürzt, da man in der Wirklichkeit aus dieser schrägen
Perspektive auch nur die Hälfte der Tiefenkanten erkennen kann bzw. es kommt einem so
vor als wären sie nur halb so lang wie sie wirklich sind. Wenn nun die Konstruktion der
Grundfläche abgeschlossen ist, sind die Höhenkanten an der Reihe. Sie werden in wahrer Länge
vertikal zu den Breitenkanten gezeichnet, wobei auf jeden Eckpunkt jeweils eine Höhenkante
gesetzt“ wird. Zuletzt verbindet man noch diese miteinander, sodass man die Deckfläche des
”
Körpers erhält und dieser somit fertig dargestellt ist.
Wenden wir dieses Verfahren auf unseren Würfel an, so erhalten wir das bereits auf der
linken Seite in Abbilung 8.1 gezeigte Ergebnis.
Bei Schrägbildern kann es jedoch zu einer Art optischen Täuschung kommen, da einzelne
Flächen und ihre Formen nicht deutlich zu erkennen sind und unser Gehirn ggf. das Gesehene
falsch interpretiert. Verstärkt wird dieser Effekt durch die Tatsache, dass die Schnittpunkte
gezeichneter Linien nicht immer auch Ecken des Körpers sind (s. Abb. 8.3).
Abbildung 8.3: Schrägbilder von Graphen, in denen sich die Kanten schneiden
(rote Markierungen).
Wünschenswert sind also Darstellungen, in denen sich die Kanten nur in wirklichen Ecken
schneiden.
Eine solche Art von Darstellung nutzen beispielsweise auch Elektrotechniker. Auf ihren
Schaltplänen dürfen sich, wie in Abbildung 8.4 zu erkennen, Leitungen ohne weiteres überkreuzen. In der technischen Ausführung, also beispielsweise auf den Leiterplatten (siehe Abb.
86
8.5), sollten solche Kreuzungen möglichst vermieden werden, um Kurzschlüsse auszuschließen.
Abbildung 8.4: Schaltplan, in dem sich Leitungen kreuzen.
Abbildung 8.5: Vorlage für die Beschichtung einer Leiterplatte nach dem Schaltplan aus Abbilung 8.4.
8.2.2 Überdehnung einer Fläche
Zur Darstellung von dreidimensionalen Graphen, in denen sich keine Kanten schneiden, überdehnen wir eine Fläche. Betrachten wir dazu als Beispiel den Würfel aus Abbildung 8.1 und
stellen uns vor, dass wir ihn beliebig dehen könnten. Dehnen wir die vordere Fläche nach allen
Seiten aus, werden die angrenzenden Seitenflächen jeweils nur an einer Kante mitgedehnt und
so in Trapeze überführt. Abschließend werden alle Ecken in die Frontfläche vorgezogen. Wie
in Abbildung 8.6 zu erkennen, liegen abschließend alle Ecken und somit auch die verbindenden
Kanten in einer Ebene.
Abbildung 8.6: Dehnen eines Würfels - Abschließend liegen alle Ecken und Kanten auf einer
Ebene.
87
Mit dieser Plättung“ wurde nun erreicht, dass sich die Kanten nur noch in Ecken schnei”
den. Allerdings geht so der räumlichen Eindruck ein wenig verloren. Außerdem gewinnt man
den Eindruck, dass der Würfel jetzt nur noch fünf statt vorher sechs Seitenflächen besitzt.
Die Ursache liegt in der stark gedehnten Vorderseite, so dass sie alle anderen Flächen überdeckt. Aus diesem Grund wird als Frontfläche nicht die Fläche innerhalb der äußersten Ecken
definiert, sondern die Fläche um unser Gebilde herum. Anschaulich kann man auch sagen,
man schneidet ein Loch in die Vorderseite und zieht den Rand des Loches nach außen.
Die Vorderseite wird bei diesem Vorgehen quasi ins Unendliche ausgedeht, aber besitzt immer
noch die gleich Anzahl an Ecken und Kanten - in unserem Beispiel jeweils vier.
Aus diesem Vorgehen können wir nun einen Algorithmus zur Darstellung von endlichen Polyedern herleiten:
• Eine beliebige Seitenfläche nach allen Seiten dehnen.
• Die übrigen Ecken und Kanten in die Ebene dieser Fläche drücken.
• In die Vorderfläche ein Loch stechen und die Ränder nach außen ziehen.
Dass die so erzielte Darstellung nicht gradlinige Kanten besitzen muss, zeigt das nächste
Beispiel.
Abbildung 8.7: Dehnen einer vierseitigen Pyramide.
Abbildung 8.7 zeigt das Ergebnis unseres Algorithmus angewendet auf eine vierseitige
Pyramide. Dabei wurde eine der vier Dreiecksflächen als Außenfläche gewählt. Durch das
Überdehnen verbeulen einige der Dreiecksflächen, was aber im Rahmen der hier betrachteten
Graphentheorie keine Rolle spielt. Man kann aber auch wie im Fall des Würfels die Pyramide
mit gradlinigen Kanten darstellen, wie Abbildung 8.8 zeigt.
Abbildung 8.8: Vierseitige Pyramide mit geradlinigen Kanten.
Diese einfachen Beispiele zeigen jedoch schon, worauf es bei der graphentheoretischen Betrachtung von Polyedern ankommt:
88
• Kanten und begrenzende Ecken bleiben eine Einheit.
• Verschiedene Kanten schneiden sich nur in Ecken, die auch tatsächlich im Körper vorhanden sind.
• Die wesentlichen Charakteristika (Grad jeder Ecke, Anzahl der Ecken für jede Fläche,
Anzahl aller Ecken) eines Graphen bleiben erhalten.
8.2.3 Ausdehnen einer Kugel
Eine weitere Möglichkeit, einen dreidimensionalen Graphen auf eine zweidimensionalen Ebene
abzubilden, ohne dass sich Kanten kreuzen, ist die Methode der ausdehnenden Kugel.
Hierzu stelle man sich eine Kugel in einem Polyeder vor. Unter der Voraussetzung, dass
die Kanten des Polyeders biegsam sind, kann sich diese Kugel ausdehnen. Die Kanten und
Ecken legen sich auf die Oberfläche der Kugel.
Abbildung 8.9: Darstellung eines Würfels als platter Graph mittels einer sich ausdehnenden
Kugel - hier mit einem Luftballon.
Nachdem sich alle Ecken und Kanten auf der Oberfläche der Kugel befinden, kann man die
Oberfläche der Kugel aufschneiden und platt auf eine Ebene legen.
Bei dieser Methode wird auch klar, warum der ursprüngliche Körper, wie in Abschnitt 8.1
auf Seite 85 vorausgesetzt, keine durchgehenden Löcher besitzen darf. Dann wäre die gerade
vorgestellte Methode nicht durchführbar gewesen.
Eine weitere Möglichkeit für die Darstellung dreidimensionaler Graphen in einer zweidimensionalen Ebene bietet die stereographische Projektion (auch konforme azimutale Projektion
genannt). Dies ist ein winkeltreues Abbildungsverfahren zum mathematischen Entwurf von
Kartennetzen. Häufig wird diese Methode genutzt, um die Erdkugel in Atlanten darzustellen, wobei das Projektionszentrum jener Punkt ist, der dem Hauptpunkt/Mittelpunkt der
geplanten Landkarte gegenüber liegt. Im Fall des Plättens eines Graphen kann man sich anschaulich vorstellen, dass der Graph in eine Kugel gesteckt und in der Mitte des Graphen
(dem Hauptpunkt) eine Lampe eingeschaltet wird. Die Schatten des Graphen fallen auf die
Kugel. Danach kann man dann wieder die Kugel zerschneiden und platt auf eine Ebene legen.
89
Aufgabe 1:
Zeichnen Sie einen Graphen für das nebenstehende Haus, wobei die Bodenplatte des Hauses
die Außenfläche sein soll.
Lösung auf Seite 103
8.3 Ebene und planare Graphen
Im letzten Kapitel wurde gezeigt wie man einen Polyeder zeichnet, ohne dass sich zwei Kanten
(außer in den Ecken) schneiden. Diese Eigenschaft wollen wir nun definieren.
Definition 14 Ein Graph heißt eben, wenn seine Kanten keine gemeinsamen Punkte haben,
außer in den Ecken.
Außerdem legen wir fest, wann zwei Graphen isomorph heißen.
Definition 15 Zwei Graphen G1 = (E1 , K1 ) und G2 = (E2 , K2 ) sind isomorph, wenn es
eine bijektive Abbildung φ : E1 → E2 gibt, so dass (v, w) ∈ K1 ⇔ (φ(v), φ(w)) ∈ E2
Bemerkung 16 Isomorphe Graphen haben gleiche graphentheoretische Eigenschaften:
• Gleiche Anzahl von Knoten.
• Gleiche Anzahl von Kanten.
• Gleiche Anzahl von Knoten eines bestimmten Grades.
• Speziell: Zwei vollständige Graphen mit gleicher Knotenanzahl sind isomorph.
Abbildung 8.10: Ebene Graphen.
Ob ein Graph als eben bezeichnet werden kann, hängt davon ab, wie man den Graphen
zeichnet. Selbst isomorphe Graphen können, wie in Abbildung 8.11 zu erkennen ist, je nach
Art der Zeichnung eben oder nicht eben sein.
Definition 17 Ein Graph wird als planar oder plättbar bezeichnet, wenn er zu einem ebenen Graphen isomorph ist.
Wie zu Anfang dieses Kapitels gesagt, können alle Polyeder als ebene Graphen dargestellt
werden. Daher gilt der folgende Satz.
Satz 18 Alle Polyeder sind plättbare Graphen.
90
nicht eben
eben
Abbildung 8.11: Zwei isomorphe Graphen - einmal eben und einmal nicht.
Sind alle Graphen plättbar?
Es stellt sich nun die Frage, ob alle Graphen plättbar sind. Und es zeigt sich, dass nicht alle
Graphen plättbar sind.
Beweis 19
Wir zeigen, dass ein vollständiges Fünfeck nicht plättbar ist.
Ein vollständiges Fünfeck besteht aus fünf Seitenkanten und fünf Diagonalen (siehe Abbilung
8.12). Die Seitenkanten teilen die Zeichenebene in zwei Bereiche: das Innere des Fünfecks
und die Fläche außerhalb des Fünfecks. Im Inneren des Fünfeck können sich maximal zwei
Abbildung 8.12: Beweis, dass ein follständiges Fünfeck nicht plättbar ist.
Diagonalen befinden, die sich nicht kreuzen. Gleiches gilt für nach Außen verlegte Diagonalen.
Es ist also maximal möglich, vier Diagonalen zu zeichnen, ohne dass sich welche kreuzen. Ein
vollständiges Fünfeck besitzt jedoch fünf Diagonalen. Somit wurde ein Beispiel eines nicht
plättbaren Graphen gefunden, d.h. nicht alle Graphen sind plättbar. Aus diesem Beweis können wir nun ableiten, dass alle Graphen, die ein vollständiges Fünfeck
(im Folgenden mit K5 bezeichnet) als Teilgraph enthalten, ebenfalls nicht plättbar sind.
Aufgabe 2:
Welche der folgenden Graphen sind eben und welche plättbar?
Lösung auf Seite 103
91
a)
b)
e)
c)
d)
Neben dem K5 gibt es aber noch eine weitere Familie von Graphen, die nicht plättbar sind,
die bipartiten Graphen.
Definition 20 Ein einfacher Graph G = (E, K) (E Menge der Ecken, K Menge der Kanten)
heißt bipartit, falls sich seine Ecken in zwei disjunkte Teilmengen A und B aufteilen lassen,
sodass zwischen den Knoten innerhalb beider Teilmengen keine Kanten verlaufen (siehe auch
Abbilung 8.13).
Teilmenge A
Teilmenge B
Abbildung 8.13: Bipartiter Graph - In zwei disjunkten Mengen der Ecken befinden sich keine
vollständigen Kanten.
Beispiel 21 Energie- und Wasser-Versorgung
Ein regionales Versorgungsunternehmen bekommt den Auftrag, drei Häuser an das Gas-,
Wasser- und Strom-Netz anzuschließen. Aus Sicherheitsgründen dürfen sich die drei Leitungen nicht kreuzen.
Hierbei entsteht ein sogenannter K3,3 -Graph. Die erste Teilmenge beinhaltet die drei Häuser,
die untereinander nicht mit Leitungen verbunden sind, und die zweite Teilmenge beinhaltet
die drei Versorgungsarten, die ebenfalls nicht untereinander verbunden sind.
Die Suche nach der Lösung des Problems führt zum folgenden Satz
92
Abbildung 8.14: Auftrag zur Versorung von drei Häusern mit Gas, Wasser und Strom.
Satz 22 Ein K3,3 -Graph (als Spezialfall eines bibartiten Graphen) ist nicht plättbar.
Beweis 23 Der Beweis ähnelt dem Beweis, dass K5 nicht plättbar ist.
Ein K3,3 -Graph besteht aus sechs Seitenkanten und drei Diagonalen (Verbindung zweier
Knoten über den Mittelpunkt, siehe Abbildung 8.15). Die Seitenkanten teilen die Zeichenebene
in zwei Bereiche: das Innere des Graphen und die Fläche außerhalb. Im Inneren des Graphen
3
Haus 3
S
G
3
2
S
G
3
2
S
G
2
Haus 2
1
W
1
W
1
W
Haus 1
Abbildung 8.15: Beweis, dass ein K3,3 -Graph nicht plättbar ist.
kann sich maximal eine Diagonale befinden, ohne, dass sie sich mit einer anderen kreuzt. Auch
außerhalb des Graphen kann auch nur eine Diagonale kreuzungsfrei untergebracht werden.
Es können also maximal zwei Diagonalen kreuzungsfrei gezeichnet werden. Der K3,3 - Graph
besitzt jedoch drei Diagonalen. Somit wurde ein weiteres Beispiel für einen nicht plättbaren
Graphen gefunden. Auch bei K3,3 gilt analog zu K5 , dass alle Graphen, die einen bipartiten Graphen als Teilgraphen enthalten, nicht plättbar sind, daher der folgende Satz.
Satz 24 Alle Graphen, die einen K5 - oder K3,3 -Graphen enthalten, sind nicht plättbar.
Durch Unterteilung von Graphen, die dadurch entstehen, dass man auf Kanten noch zusätzliche Ecken einfügt, kann man weitere Graphen erzeugen (siehe Abbildung 8.16). Jedoch
können zusätzliche Ecken nicht bewirken, dass ein vorher nicht plättbarer Graph plättbar
wird.
Dass es neben den beiden bekannten nicht plättbaren Graphen und Graphen, die einen dieser beiden Graphen als Teilgraphen enthalten, keine weiteren Graphen mehr gibt, die nicht
plättbar nicht, hat 1930 Kazimierz Kuratowski bewiesen.
93
Abbildung 8.16: Unterilte Graphen des K5 und des K3,3 .
Kazimierz Kuratowski (* 2.2.1896, † 18.6.1980) war Sohn eines
Rechtsanwaltes und ging bis 1913 am philologischen ChrzanowskiGymnasium in Warschau zur Schule.
Ursprünglich wollte Kuratowski Ingenieur werden, stellte aber
während seines Studiums in Glasgow seine Freude an der Mathematik fest. Er wechselte den Studiengang und studierte bis 1914
in Glasgow Mathematik. Nach der durch die deutschen Besatzer
ermöglichten Neugründung der polnischen Universität Warschau
1915, kehrte er dorthin zurück. 1918 schloss er sein Studium an
der Universität Warschau ab und promovierte 1921.
Während des zweiten Weltkrieges besetzten die Nationalsozialisten Polen und versuchten polnische Geistesleben zu vernichten. Kuratowski riskierte in dieser Zeit sein Leben, da er in der
Untergrund-Universität in Warschau weiter lehrte.
Kazimierz Kuratowski
Satz 25 von Kuratowski
Ein Graph ist genau dann nicht plättbar, wenn er ein vollständiges Fünfeck (K5 ), einen
K3,3 -Graphen oder eine Unterteilung dieser beiden Graphen als Teilgraph enthält.
Der Beweis zu diesem Satz basiert auf vollständiger Induktion über die Anzahl e der Ecken
des Graphen und ist nachzulesen unter
http://i11www.iti.uni-karlsruhe.de/teaching/SS 08/planalgo/skript/algo-plan.pdf
Aus dem Satz von Kuratowski kann man nun einen Algorithmus zur Bestimmung der
Plättbarkeit eines Graphen herleiten.
Z
Z
Y Z
Z
Ist es möglich, den Graphen
in einen ebenen Graphen umzuzeichnen?
Der Graph ist plättbar
N
schrittweise den Graphen demontieren
Bis ein vollständiges Fünfeck K5 oder ein
bipartiter Graph K3,3 übrig bleibt
Abbildung 8.17: Algorithmus zur Bestimmung der Plättbarkeit eines Graphen.
94
Um den Graphen schrittweise zu demontieren, entfernt man iterativ Kanten, Ecken mit all
ihren Kanten, oder Ecken mit dem Grad zwei.
Beispiel 26 Demontage eines Graphen
Abbildung 8.18: Demontage eines Graphen bis ein K3,3 -Graph entstanden ist.
In Abbildung 8.18 hat man zunächst zwei Ecken mit ihren Kanten und dann zwei Ecken
mit dem Grad zwei entfernt. Das Ergebnis ist ein K3,3 -Graph, von dem wir wissen, dass er
nicht plättbar ist. Somit ist auch der ursprüngliche Graph nicht plättbar.
8.4 Ebene Graphen und Flächen
Definition 27 Ebene Graphen unterteilen die Ebene in verschiedene Gebiete. Diese Gebiete
nennen wir Flächen. Eine Fläche wird durch Kanten des Graphen begrenzt.
Abbildung 8.19: Der linke Graph besitzt zwei Flächen - der rechte eine.
8.4.1 Die eulersche Formel
Nachdem nun die Flächen definiert wurden, suchen wir nach einem Zusammenhang zwischen
den Anzahlen von Ecken, Kanten und Flächen eines Polyeders. Hierzu betrachten wir die
entsprechenden Zahlen an einigen Beispielen:
Ecken e Flächen f Kanten k Ecken + Flächen
Würfel
8
6
12
14
Tetraeder
4
4
6
8
Kuboktaeder
12
14
24
26
Ikosaederstumpf (Fußballkörper)
60
32
90
92
Die Vermutung, dass die Summe aus der Anzahl von Ecken und Flächen immer um zwei
größer ist, als die Anzahl der Kanten, wird durch die eulersche Formel bestätigt.
Satz 28 (Die eulersche Formel)
Für alle zusammenhängenden und ebenen Graphen gilt e + f − k = 2.
95
Beweis 29 Als einfachste Form eines zusammenhängenden und ebenen Graphen wird zunächst
der Baum betrachtet. Aus den vorherigen Kapiteln ist bekannt, dass bei einem Baum die Anzahl der Ecken immer um eins größer ist, als die Anzahl der Kanten. Eine weitere Eigenschaft
besagt, dass ein Baum immer nur eine Fläche besitzt. Also gilt:
⇔
e + f − k = (k + 1) + 1 − k
= 2
Für Bäume gilt somit die eulersche Formel.
Betrachten wir nun beliebige zusammenhängende Graphen, die keine Bäume sind. Von
einem solchen Graphen werden schrittweise Kanten eines beliebigen Kreises entfernt. Hierbei
bleibt, wie in Abbildung 8.20 zu sehen, der Wert für die Formel e + f − k konstant.
Schritt 1:
e = 4
f = 3
k = 5
e = 4
f = 4
k = 6
Schritt 2:
e = 4
f = 2
k = 4
Schritt 3:
e = 4
f = 1
k = 3
Abbildung 8.20: Schrittweises Entfernen von Kanten eines beliebigen Graphen.
Wenn kein Kreis im Graphen mehr gefunden werden kann, liegt ein Baum vor (siehe Schritt
3 in Abbildung 8.20). Dass für jeden Baum die eulersche Formel gilt, wurde bereits oben
gezeigt. Somit gilt die eulersche Formel für jeden zusammenhängenden, ebenen Graphen.
Aufgabe 3:
Prüfen Sie die Voraussetzungen für die eulersche Formel und weisen Sie die Richtigkeit der
Formel ggf. nach.
Lösung auf Seite 103
a)
c)
b)
Zu Beginn des Kapitels wurde in Satz 18 gezeigt, dass sich alle Polyeder in ebene, zusammenhängende Graphen überführen lassen. Jetzt können wir uns die Frage stellen, ob auch
96
die Rückrichtung gilt. Wir möchten also wissen, ob jeder ebene zusammenhängende Graph
ein Polyeder darstellt.
Wie in Abbildung 8.21 zu sehen, kann man sich leicht ebene, zusammenhängende Graphen
vorstellen, die keine Körper darstellen.
Abbildung 8.21: Ebene Graphen, die keine Körper sind.
Es können aber Mindestanforderungen an einen Graphen gestellt werden, so dass für diese
Art von Graphen die Rückrichtung von Satz 18 gilt:
Satz 30 Mindestanforderungen an Graphen, die auch einen Körper darstellen:
Die Ecken haben mindestens den Grad 3 und die Flächen haben mindestens 3 Ecken und 3
Kanten.
Da jede Ecke Endpunkt von mindestens drei Kanten ist, kann man die Anzahl für die
Kanten des Körpers mit
k ≥3·e
annähern. Bei dieser Annäherung wird aber jeder Kante doppelt gezählt. Somit kann die
Abschätzung durch
2·k ≥3·e
verbessert werden.
Analog kann man die Anzahl der Kanten über die Anzahl der Flächen abschätzen:
2·k ≥3·f
.
Zusammengefasst erhält man folgenden Satz:
Satz 31 Für alle Polyeder gilt
2·k ≥3·e
und
2·k ≥3·f
97
.
8.5 Die platonischen Körper bzw. Graphen
Die platonischen Körper sind die nach dem griechischen Philosophen Platon benannten besonders regelmäßigen konvexen Polyeder. Diese Körper sind dadurch charakterisiert, dass ihre
Flächen zueinander kongruente, regelmäßige Vielecke sind. In den Ecken treffen immer gleich
viele Flächen (und somit auch Kanten) zusammen. Daraus folgt, dass alle Kanten gleich lang
und alle Winkel gleich groß sind.
98
Tetraeder
Würfel
Ikosaeder
Oktaeder
Dodekaeder
Abbildung 8.22: Beispiel für platonsiche Körper.
Mit einem der zu Anfang des Kapitels beschriebenen Verfahren können nun die Graphen
zu den platonischen Körpern erzeugt werden.
Tetraeder
Würfel
Oktaeder
Dodekaeder
Ikosaeder
Abbildung 8.23: Die platonsichen Graphen zu den Körpern aus Abbildung 8.22.
Zu den oben aufgezählten Eigenschaften platonischer Körper kann man analoge Eigenschaften platonischer Graphen formulieren:
• Sie sind eben.
• Alle Ecken besitzen den gleichen Grad (mindestens 3).
• Alle Flächen haben die gleiche Anzahl Ecken (mindestens 3).
Definition 32 Graphen mit den genannten Eigenschaften heißen platonische Graphen.
99
Bemerkung 33 Da die platonischen Graphen Abbildungen von Körpern sind, sind die zustätzlichen Bedingungen mindestens der Grad 3 bei jeder Ecke“ und mindestens drei Ecken pro
”
”
Fläche“ notwendig.
In der obigen Abbildung wurden fünf platonische Körper dargestellt. Es stellt sich nun die
Frage, ob es noch weitere Körper dieser Art gibt. Da weniger Bedingungen an die platonischen
Graphen als an die platonischen Körper gestellt werden, ist es einfacher zu zeigen, dass es
kein weiterer platonsicher Graph existiert.
Beweis 34 Neben den schon bekannten Bezeichnungen für Ecken (e), Kanten (k) und Flächen
(f ), werden im Folgenden noch der Grad einer Ecke mit g und die Anzahl der Ecken jeder
Fläche mit n bezeichnet.
Die Anzahl der Eckengrade ist doppelt so groß wie die Anzahl der Kanten, da jede Kante
zwei Ecken hat (aufgrund der Bedingungen an einen platonischen Graphen können keine
Schlingen, also Kanten mit nur einer Ecke, vorkommen).
e·g = 2·k
⇔
e = 2·k
g
Analog kann man die Anzahl der Flächen, durch die Anzahl der Kanten ausdrücken:
f ·n = 2·k
f = 2·k
n
⇔
Mit dem Satz 28 gilt:
2·k
g
⇔
⇔
e+f −k = 2
+ 2·k
n −k = 2
1
1
1
1
+
g
n − 2 = k
(8.1)
Da k immer positiv ist kann man die Gleichung nach unten abschätzen:
1
g
+
⇔
1
n
1
g
− 12
+ n1
> 0
> 12
Aufgrund der Eigenschaften eines platonischen Graphen müssen g und n größer oder gleich
drei sein. OBdA sei n beliebig aber fest.
Fallunterscheidung:
n = 3:
1
g
+
1
3
1
g
1
g
+
⇔
⇔
g
3
4
5
n
3
3
3
> 12
> 16
g < 6
2
3
7
12
5
15
100
1
n
>
>
>
1
2
1
2
1
2
n = 4:
1
g
⇔
⇔
g n
3 4
n = 5:
1
g
⇔
⇔
g n
3 5
n = 6:
1
g
⇔
⇔
+
+
1
4
1
g
1
g
+
+
1
g
> 12
> 14
g < 4
7
12
1
n
>
1
2
1
5
1
g
> 12
3
> 10
g < 3.3̄
+
8
15
1
n
>
1
2
1
6
1
g
> 12
> 13
g < 3
Für beliebige n > 6 kann es keine Lösung geben, da g < 3 gelten muss, damit 1g +
erfüllt ist. Dies ist aber ein Widerspruch zur Voraussetzung.
Somit kann es nur die bereits bekannten fünf platonischen Graphen geben. 1
n
>
1
2
Da es nur die fünf platonischen Graphen gibt, kann es auch nur dazu passenden fünf
platonischen Körper geben.
Satz 35 Es gibt genau fünf platonischen Körper: Tetraeder, Würfel, Oktaeder, Dodekaeder
und Ikosaeder.
Aufgabe 4:
Zeichnen Sie einen nichtplatonischen Graphen mit weniger als 6 Knoten, bei dem alle Flächen
Vierecke sind.
Lösung auf Seite 103
Lässt man bei den platonischen Körpern die Bedingungen unberücksichtigt, die über die
Bedingungen des platonischen Graphen hinausgehen (gleiche Kantenlänge und gleiche Winkel), gibt es trotzdem nicht mehr Körper, die die restlichen Eigenschaften erfüllen.
Abbildung 8.24: Würfel und schiefer Körper - gleiche platonische Graphen.
Mit den übriggebliebenen Bedingungen kann man zwar weitere Körper finden, die aber alle
auf die bereits bekannten fünf platonischen Graphen führen.
101
8.5.1 Parkettierung
Im letzten Abschnitt haben wir die Eigenschaften des dreidimensionalen platonischen Körpers
auf die Eigenschaften eines platonischen Graphen projeziert. Im Folgenden wollen wir nun
direkt die Eigenschaften des platonischen Körpers in der zweidimensionalen Ebene anwenden.
Dies führt zum Begriff der Parkettierung.
Definition 36 Eine lückenlose Belegung einer Fläche mit gleichen Vielecken, bei der in einer
Ecke immer gleich viele zusammenstoßen, nennt man Parkettierung.
Wenn wir an Anwendungen im Alltag denken (Parkettfußboden, Fliesenspiegel in einer
Küche, Terrassenplatten o.ä.), lassen sich leicht drei mögliche Arten der Parkettierung aus
Quadraten, Dreiecken bzw. Sechsecken erzeugen.
Abbildung 8.25: Drei verschiedene Arten von Parkettierung.
Hieraus ergibt sich die Frage, ob das alle Möglichkeiten der Parkettierung sind. Mit der
Gleichung 8.1 können wir diese Frage beantworten, da sie auch für die Parkettierung gilt.
Da bei der Anordnung der Vielecke unendlich viele Flächen aneinander gesetzt werden,
strebt auch die Anzahl der Kanten gegen unendlich und somit die rechte Seite gegen 0.
1
g
⇔
+
1
n
1
g
− 12
+ n1
= 0
= 12
Wir erhalten also eine diophantische Gleichung 2n + 2g − gn = 0. Die Lösungen dieser
Gleichung erhält man äquivalten zum Vorgehen im Beweis, dass es genau fünf platonische
Körper gibt.
g n Bedingung N ame
3 6 13 + 16 = 12 Sechseck
4 4 14 + 14 = 12 Quadrat
6 3 16 + 13 = 12 Dreieck
Damit existieren nur diese drei Parkettierungsmöglichkeiten.
102
8.6 Lösung der Übungsaufgaben
Aufgabe 1
Aufgabe 2
Die Graphen b), d) und e) sind eben. Plättbar sind alle Graphen.
Aufgabe 3
Der Graph a) ist nicht eben. Damit ist die Flächenanzahl für die eulersche Formel
nicht definiert.
Der Graph b) ist nicht zusammenhängend. Damit gilt die eulersche Formel nicht:
e = 6, f = 3 und k = 6
6 + 3 − 2 6= 6
c) e = 11, f = 11 und k = 20
11 + 11 − 2 = 20
Aufgabe 4
103
9 Farben
9.1 Vierfarbenproblem
9.1.1 Landkarten
In der Kartografie spielen Farben und Färbungen eine wichtige Rolle. In einem Atlas sind beispielsweise überwiegend bunte Landkarten zu finden, in denen jedes Land seine eigene Farbe
erhält. Es wäre dabei natürlich sehr ungünstig, für zwei benachbarte Länder die gleiche Farbwahl zu treffen, da ein Unterscheiden dieser beiden Länder kaum noch möglich wäre. Eine
Möglichkeit diesem Problem entgegenzutreten wäre, jedem Land auf der Karte eine andere
Farbe zu geben. Doch hier stößt man auf ein weiteres Problem: Wenn man sich zum Beispiel
die Weltkarte vorstellt, erkennt man sofort, dass die Palette an Farben viel zu groß wäre.
Ziel ist es somit, die Farbwahl der Länder so zu treffen, dass man erheblich weniger Farben
benötigt als Länder auf der Karte eingezeichnet sind, benachbarte Länder aber unterschiedliche Farben erhalten. Als benachbarte Länder werden dabei diejenigen bezeichnet, die eine
gemeinsame Grenze besitzen, nicht jedoch diejenigen mit lediglich einer gemeinsamen Ecke.
Eine Veranschaulichung dafür bietet die nebenstehende Grafik: Beispielsweise dürfen jeweils
A und B sowie C und D die gleiche Farbe haben, A und C müssen jedoch aufgrund ihrer
gemeinsamen Grenze unterschiedlich gefärbt werden.
Jahrhundertelang haben sich Mathematiker an der Aufgabe versucht, herauszufinden, wieviele Farben maximal ausreichen, um eine beliebige Landkarte zu färben. Schaut man sich
beispielsweise die Länder Deutschland, Belgien, Luxemburg und Frankreich an, so erkennt
man, dass 3 Farben nicht zum Färben ausreichen, da jedes der 4 Länder mit allen drei übrigen
Ländern durch eine gemeinsame Grenze verbunden ist. In diesem Fall wären 4 Farben eine
sinvolle Wahl, was die folgende Karte zeigt:
Alle Versuche der Mathematiker führten immer wieder zu der maximalen Zahl 4, so kompliziert ihre Landkarten-Darstellung auch gewählt worden war. Francis Guthrie stellte 1852
erstmals die Vermutung auf, dass 4 Farben tatsächlich reichen. Doch der Beweis für dieses
sogenannte Vierfarbenproblem erwies sich als ziemlich problematisch und führte zu fehlerhaften Ergebnissen. Im Jahre 1890 gelang es dem britischen Mathematiker Percy Heawood
104
Abbildung 9.1: Beispiel Färbung einer Landkarte
erstmals einen Beweis mittels vollständiger Induktion für das Fünffarbenproblem aufzustellen, welches zwar schwächer doch wesentlich leichter zu belegen ist und eine obere Grenze
für die Färbung von Landkarten darstellt. Dieser besagt, dass fünf Farben für die Färbung
einer beliebigen Landkarte ausreichen. Aber der Beweis für das eigentliche Problem konnte
erst 1976 durch Kenneth Appel sowie Wolfgang Haken aufgestellt werden und war das erste
große mathematische Problem, das mit Hilfe von Computern gelöst wurde.
Sie bestätigten mit dem Vierfarbensatz, dass alle beliebigen Landkarten in der euklidischen
Ebene mit maximal 4 Farben gefärbt werden können, so dass keine zwei angrenzenden Länder
die gleiche Farbe erhalten.
In der folgenden Karte wird dies am Beispiel von Deutschland gezeigt:
Abbildung 9.2: Anwendung des Vierfarbensatzes
105
Der Vierfarbensatz gilt allerdings unter der Bedingung, dass keine Exklaven1 vorhanden
sind und findet sowohl in der Kartografie, Topologie sowie in der Graphentheorie Anwendung.
Ist (so wie in der Realität häufig der Fall) ein Land auf mehrere nicht-angrenzende Gebiete
verteilt, dann ist der zugehörige Graph nicht unbedingt planar 2 und es sind möglicherweise
mehr als vier Farben zur Färbung notwendig.
9.1.2 Graphen
Mit Hilfe von Graphen kann das Problem des Färbens vereinfacht und formal dargestellt
werden. Um auf das Beispiel mit den Landkarten zurückzukommen, wird jedes Land durch
jeweils einen Knoten ersetzt. Knoten, welche benachbarte Länder darstellen, werden durch
Kanten miteinander verbunden. Es entstehen somit ebene Graphen, da sich die Kanten nicht
überschneiden.
Zur Färbung des Graphen geht man analog zur Landkarte vor, wobei beachtet werden muss,
dass Knoten mit einer gemeinsamen Kante unterschiedliche Farben erhalten müssen. In der
nebenstehenden Abbildung wird deutlich, dass die Färbung durch das Übertragen von der
Landkarte zum ebenen Graphen nicht beeinflusst wird. Auch hier gilt weiterhin der Vierfarbensatz. Da jeder plättbare Graph 3 durch Umzeichnen zum ebenen Graphen gemacht werden
kann, gilt der Satz sogar für alle plättbaren Graphen.
1
Teil eines politischen Gebietes, das vom Rest des Gebietes räumlich abgetrennt ist
Ein Graph, der auf einer Ebene so dargestellt werden kann, dass sich die Kanten nicht schneiden (isomorph
zu einem ebenen Graphen)
3
siehe planarer Graph
2
106
Die Graphentheorie bietet eine Möglichkeit, zu zeigen, warum vier Farben ausreichen. Da
es sich um ebene Graphen handeln muss und keine Exklaven vorhanden sein dürfen, kann
wie folgt argumentiert werden: Damit mindestens 5 Farben notwendig sind, ist es erforderlich,
dass 5 Länder alle untereinander benachbart sind, was heißt, dass es sich um einen vollständigen Graphen mit 5 Knoten handeln muss. Dass dies nicht möglich ist, zeigt die Abbildung
rechts, denn ein vollständiger Graph mit mehr als 4 Knoten ist nicht plättbar. Es kann somit
keine 5 Länder geben, bei welchen sich jedes Land mit jedem eine Grenze teilt.
Der Vorteil ist, dass sich viele mathematische Probleme als Graphfärbungsprobleme formulieren lassen. Sie finden beispielsweise beim Stundenplanproblem, bei Register-Zuwei- sungsProblemen in Prozessoren, bei Bandbreitenzuweisungs-Problemen sowie bei der Suche nach
Wegen durch ein Labyrinth Anwendung.
Die Graphendarstellung lässt sich ebenfalls auf Körper anwenden. Wenn man sich nun ein
beliebiges Polyeder vorstellt, so ist bekannt, dass dieses zu einem ebenen Graphen umgezeichnet werden kann. Somit gilt wiederum, dass die Flächen jedes Polyeders mit höchstens vier
Farben ausgemalt werden können.
Es stellt sich nun die Frage, ob man auch alle anderen Graphen auf diese Art und Weise
färben kann.
Am Beispiel der Schlinge, die rechts (oben) im Bild dargestellt ist, erkennt man deutlich,
dass dies nicht der Fall ist, denn der einzige vorhandene Knoten müsste bereits 2 verschiedene
Farben aufweisen, was bei der Graphenfärbung nicht zulässig ist. Parallele Kanten hingegen
weisen keine Probleme auf, da man eine der beiden Kanten ohne Informationsverlust entfernen kann. Folglich ist es angebracht, sich auf einfache Graphen ohne Schlingen und ohne
Parallelen zu beschränken, damit die Färbungs-Regeln, dass Knoten mit einer gemeinsamen
Kante eine unterschiedliche Koloration erhalten und dabei möglichst wenig Farben zum Einsatz kommen, problemlos eingehalten werden können.
9.2 Knotenfärbung
9.2.1 Chromatische Zahl
Nun sei E die Menge aller Knoten ei , V die Menge aller Kanten vi und G = (E, V ) ein
ungerichteter Graph ohne Mehrfachkanten. Ist fE zusätzlich eine Abbildung von E in die
Menge der natürlichen Zahlen N0 , so wird fE als Knotenfärbung von G bezeichnet. Verbal
ausgedrückt bedeutet das, dass fE jedem Knoten des Graphen genau eine der Farben { f1 ,
f2 , ..., fk } zuordnet. Die Abbildung ist genau dann gültig (zulässig oder konfliktfrei), falls
für zwei Knoten ei und ej , die mit einer Kante verbunden sind, gilt, dass diese unterschiedlich
107
gefärbt werden; also fE (ei ) 6= fE (ej ).
Das fk mit dem kleinsten k, für das G eine konfliktfreie Färbung aufweist, wird als chromatische Zahl
oder Knotenfärbungszahl χ(G) bezeichnet.
In den Beispielen rechts wird dies noch- einmal veranschaulicht:
Im ersten Graphen stellt E die Menge bestehend aus dem roten, dem grauen und dem schwarzen Knoten dar. Die Abbildung fE ordnet nun jedem Knoten eine Zahl zu, wobei im ersten
Fall k = 3 ist, da alle drei Knoten benachbart sind. Die chromatische Zahl lautet somit
χ(G) = 3. Der dritte Graph hat die Knotenfärbungszahl 4, da es sich ebenfalls um einen
vollständigen Graphen 4 handelt. Dies bedeutet, dass jeder Graph, der einen vollständigen
Teilgraphen mit n Knoten enthält, mindestens eine chromatische Zahl von n besitzt.
Ist die Knotenzahl beim Kreis, wie im vierten Bild zu sehen ist, gerade, so ist χ(G) = 2. Bei
ungerader Eckenanzahl lautet die chromatische Zahl 3.
Zur Erinnerung war ein bipartiter Graph ein einfacher Graph, dessen Knoten sich in zwei
disjunkte Teilmengen A und B aufteilen lassen, so dass kein Knoten mit einem anderen Knoten aus der gleichen Teilmenge durch eine Kante verbunden ist.
Dementsprechend hat jeder bipartite Graph die chromatische Zahl 2, denn wie im Bild
rechts zu sehen ist, kann man jedem Knoten aus der ersten Teilmenge die Farbe fi zuordnen
und jedem Knoten der zweiten Menge die Farbe fj mit i 6= jgeben. Kein Knoten wäre mit
der gleichen Farbe benachbart.
Umgekehrt kann man jeden Graphen mit der chromatischen Zahl 2 ebenfalls als bipartiten
Graphen betrachten. Dazu legt man die erste Teilmenge mit den Knoten der gleichen Farbe
fest, die zweite Teilmenge besteht somit aus den übrigen Knoten.
4
In einem vollständigen Graphen ist jeder Knoten mit jedem anderen Knoten durch eine Kante verbunden
108
In der folgenden Abbildungist dies nocheinmal veranschaulicht:
Abbildung 9.3: Anwendung auf einen bipartiten Graphen
Folglich stimmt die Behauptung, dass jeder Graph bipartit ist, wenn dieser keinen Kreis
enthält, der eine ungerade Anzahl von Knoten besitzt.
9.2.2 Obergrenze für die chromatische Zahl
Bei größeren oder weniger überschaubaren Graphen ist die Bestimmung der chromatischen
Zahl nicht mehr ganz so einfach. Dafür ist es sinnvoll, eine geeignete obere Schranke zu finden.
Diese Obergrenze setzt sich dann folgendermaßen zusammen: Man bestimmt den höchsten
Grad gmax eines Knotens im Graphen und addiert eine 1 hinzu.
Die chromatische Zahl ist somit höchstens gmax + 1.
Um diesen Satz zu erklären, werden die geordneten Mengen E, welche die Knoten (e1 , e2 ,
..., ek ) enthält, und f , welche die Farben (f1 , f2 , ..., fk ) beinhaltet, definiert. Nun wird
jedem Knoten ei eine Farbe fj (i,j = 1, ..., k) zugeordnet, wobei der erste Knoten e1 die
Farbe f1 erhält. Ist der zweite Knoten e2 mit e1 verbunden, so bekommt dieser die Farbe f2 ,
andernfalls wieder f1 . So fährt man bis zur letzten Ecke ek fort, so dass allerdings immer die
kleinst mögliche Farbzahl aus der Menge verwendet wird. Hat ein Knoten ei den maximalen Grad gmax und somit auch gmax Nachbarknoten, und haben beispielsweise alle Knoten
unterschiedliche Farben, so braucht man allein schon gmax Farben für die Nachbarknoten.
Eine weitere Farbe wird für den Knoten ei mit dem Grad gmax benötigt. Das bedeutet,
dass man für Graphen, die einen vollständigen Teilgraphen enthalten, immer genau gmax + 1
Farben verwenden muss. Beispielsweise müssten in einem vollständigen Dreiecks-Graphen,
dessen Knoten alle den Grad 2 haben, drei Farben zum Ausmalen benutzt werden, also
χ(G) = gmax + 1 = 2 + 1 = 3. Für alle anderen Graphen reichen bereits weniger Farben aus.
Somit ist mit gmax eine obere Grenze gefunden worden.
9.2.3 Chromatische Polynome
Nun stellt sich die Frage, wie viele verschiedene Färbungen möglich sind, wenn eine bestimmte Anzahl von Farben zur Verfügung steht.
109
Im Beispiel rechts sollen drei Flächen mit zwei Farben koloriert werden. Wenn man dies auf
einen Graphen überträgt, erkennt man sofort, dass es sich um eine Kette handelt. Es gibt
genau 2 · 1 Färbungsmöglichkeiten, denn für den ersten Knoten stehen 2 Farben zur Wahl
und es bleibt für den zweiten noch eine Farbe übrig.
Anzunehmen ist, dass die Zahl der Möglichkeiten wächst, wenn mehr Farben zur Verfügung
gestellt werden. Sei nun x die Anzahl der zu verwendenden Farben, so geht man analog zum
eben erwähnten Beispiel vor: Der erste Knoten A kann auf x verschiedene Weisen gefärbt
werden. Wählt man nun für diesen Knoten eine bestimmte Farbe f1 , so kann diese Farbe für
den zweiten Knoten B nicht mehr verwendet werden. Man hat also nur noch x − 1 Möglichkeiten, diesen Knoten zu färben. Man wählt demnach f2 . Da es sich um eine Kette handelt
und der Knoten C nur mit B verbunden ist, darf C alle Farben außer f2 erhalten. Es stehen
dem Knoten dann wiederum x − 1 verschiedene Farbmöglichkeiten zur Verfügung.
Um den folgenden Graphen zu färben, gibt es folglich x · (x − 1) · (x − 1) = x · (x − 1)2
verschiedene Möglichkeiten.
Abbildung 9.4: Chromatisches Polynom einer Kette
Diese Methode kann man jetzt auch auf Ketten mit n Knoten ausweiten:
Jede Kette mit n Knoten kann auf x · (x − 1)n−1 verschiedene Arten koloriert werden.
Bei einem Baum sieht dies ähnlich aus: Bekanntlich können alle Verzweigungen die gleiche
110
Farbe erhalten, da diese untereinander nicht verbunden sind. Sie können also alle Farben
außer die des Vater-Knotens erhalten. Man hat somit wie bei einer Kette x · (x − 1)n−1 verschiedene Färbungsmöglichkeiten bei n Knoten und x zur Verfügung stehenden Farben. Da
es sich jeweils um Polynome handelt, werden diese Ausdrücke zur Bestimmung der Anzahl
der Färbungsmöglichkeiten als chromatische Polynome bezeichnet.
Doch wie sieht die Anzahl der Färbungsmöglichkeiten bei einem beliebig anderen Graphentypen aus? Zur Veranschaulichung batrachtet man ein Dreieck und nimmt an, dass 10 Farben
zum Färben der Knoten verwendet werden dürfen.
Um nun beispielsweise den Knoten A zu färben stehen noch alle 10 Farben zur Verfügung.
Die Ecke B hingegen muss eine andere Koloration erhalten als A, da die beiden Knoten benachbart sind. Es bleiben lediglich noch 9 Farben übrig. Da der Knoten C sowohl mit A als
auch mit B verbunden ist, benötigt man eine weitere Farbe und es stehen nur noch 8 Farben
zur Wahl. Somit ergibt sich eine Anzahl von 10 · 9 · 8 = 720 verschiedenen Färbungsarten.
Nimmt man nun an, dass es sich um ein vollständiges n-Eck handelt und stehen statt 10
Farben x Farben zur Wahl, so geschieht die Färbung analog:
Für den ersten Knoten ist die Auswahl mit x Farben wieder vollständig. Jede weitere Ecke,
die als nächstes koloriert wird, ist in der Farbwahl eingeschränkt, da sie sich mit dem ersten
Knoten definitiv eine Kante teilt. Es gibt also nur noch x − 1 Möglichkeiten. Da alle Knoten
untereinander verbunden sind, wird die Auswahl der Farben pro Knoten immer um 1 geringer. Es lässt sich folgender Satz formulieren:
In jedem vollständigen n-Eck gibt es
Färbungen bei x Farben.
x!
(x−n)!
= x · (x − 1) · (x − 2) · ... · (x − (n − 1)) verschiedene
Ist x = n, so gibt es genau n! verschiedene Weisen, den Graphen zu kolorieren.
Bei Graphen, deren Knoten alle isoliert sind, hat man xn verschiedene Färbungsmöglichkeiten, da jeder Knoten beliebig gefärbt werden kann.
Zusätzlich ist für die chromatischen Polynome erwähnenswert, dass die kleinste natürliche
Zahl x, für die das chromatische Polynom ein positives Ergebnis liefert, ebenfalls die chromatische Zahl des Graphen repräsentiert. Setzt man eine kleinere Zahl für x ein, so ist das
Ergebnis immer 0, da der Graph mit weniger Farben nicht ausgefüllt werden kann.
9.2.4 Algorithmus
Nicht immer sind die Graphen so übersichtlich und leicht zu färben. Daher wäre es ziemlich
vorteilhaft, einen Algorithmus aufzustellen, mit welchem die Färbungen in einem beliebigen
Graphen gefunden werden können. Ein solcher wird im Folgenden anhand eines Beispiels
111
beschrieben:
Der erste Schritt des Algorithmus betrifft das Löschen von Kanten. Warum das sinnvoll ist,
wird aus dem unten abgebildeten Graphen deutlich:
Abbildung 9.5: Erster Schritt des Algorithmus
Durch das Löschen der Kante AB wird der Graph kleiner, übersichtlicher und die Anzahl
der Färbungen, die bereits mit x · (x − 1)(n−1) bekannt ist, da es sich um eine Kette handelt, vergrößert sich, denn B ist nicht mehr direkt von A abhängig. Der entstandene Graph
wird als G1 bezeichnet und besitzt alle Färbungsmöglichkeiten vom Ursprungsgraphen G und
zusätzlich alle Färbungen mit fE (A) = fE (B) (fE ist wieder die Knotenfärbung), die bei G
aufgrund der gemeinsamen Kante nicht zulässig sind.
Im zweiten Schritt wird ein weiterer Graph G2 erstellt, welcher durch das Verlagern (Kontraktion5 ) von B nach A (folgende Abbildung) entsteht und exakt diese zusätzlichen Färbungen
von G1 aufweist.
Abbildung 9.6: Zweiter Schritt des Algorithmus
Sei F nun die Anzahl der Färbungen eines Graphens, so lässt sich folgender Ausdruck festlegen:
F (G1 ) = F (G) + F (G2 )
5
Zusammenziehen eines Objekts
112
⇔
F (G) = F (G1 ) − F (G2 )
Da für G1 die Anzahl bereits bekannt ist, muss das Verfahren nur noch für G2 wiederholt
werden:
Abbildung 9.7: Erneuter Aufruf des Algorithmus
Beim Löschen der Kante AC entsteht wieder eine Kette, deren Färbungszahl bekannt ist.
Zieht man diese Kante zusammen, so bilden sich bei AD zwei parallele Kanten, wobei eine
ohne Informationsverlust problemlos außer Betracht genommen werden kann. Es handelt sich
dementsprechend erneut um eine Kette. Nun lässt sich die Anzahl der Färbungen wie folgt
berechnen (chromatisches Polynom):
F (G) = x · (x − 1)4 − (x · (x − 1)3 − x · (x − 1)2 )
Man kann somit das Verfahren, um bei einem beliebigen Graphen das chromatische Polynom zu berechnen, wie folgt zusammenfassen:
113
Abbildung 9.8: Darstellung des Algorithmus als Struktogramm
Ein Verfahren, welches auch für beliebig große Graphen effektiv arbeitet, ist bisher nicht
bekannt.
114
9.3 Anwendungsbeispiele zu Konfliktgraphen
9.3.1 Ampelschaltungen
Ein für den Verkehrsablauf sowie für die Sicherheit wichtiges Problem, welches man mit Hilfe
der Graphenfärbung lösen kann, stellen die Ampelschaltungen dar. Es muss dabei beachtet
werden, dass sich die jeweiligen Verkehrsteilnehmer nicht gegenseitig behindern können. Im
folgenden Schaubild ist eine mögliche Verkehrssituation vorgegeben.
Abbildung 9.9: Beispiel Ampelschaltung
Ziel ist es nun, sichere und möglichst zeitsparende Möglichkeiten für die Ampelschaltungen
herauszufinden.
Dazu wird jedem Verkehrsstrom ein Knoten zugeordnet. Die Kanten des Graphen verbinden
Verkehrsströme, die sich gegenseitig stören. Beispielsweise dürften A und E nicht gleichzeitig
grün bekommen, da die Gefahr einer Kollision bestünde.
Der so entstandene Konfliktgraph sieht dann folgendermaßen aus:
Abbildung 9.10: Konfliktgraph zur Ampelschaltung
115
Eine Lösung wäre zwar, jedem Verkehrsstrom einzeln freie Fahrt anzuzeigen, doch dies
wäre viel zu zeitaufwendig. Man sucht nun nach einer eleganteren Lösung: Aus dem oben abgebildeten Graphen erkennt man, dass es auch Verkehrsströme gibt, die sich nicht behindern.
Dementsprechend kann man für diese Verkehrsströme die Ampel zur gleichen Zeit auf grün
schalten. Wenn man nun den Graphen nach den bekannten Regeln färbt, wird deutlich, dass
bereits 3 Farben ausreichen. Das bedeutet für die Verkehrssituation, dass der Verkehr durch
drei aufeinander folgende Grünphasen geregelt werden kann.
Es gibt somit mehrere Lösungsvorschläge, da der Graph auf verschiedene Arten gefärbt werden kann. Eine Lösung wäre wie folgt:
1. B
2. A und D
3. C, E und F
Doch bei weniger überschaubaren Kreuzungen wären mit dieser Methode mehrere Ampelschaltungen notwendig. Eine Verhinderung dieses Problems geht auf Kosten der Sicherheit:
Man könnte beispielsweise darauf bauen, dass die Verkehrsteilnehmer Vorsicht walten lassen und folglich zwei Verkehrsströmen, die sich gegenseitig behindern, zur gleichen Zeit eine
Grünphase geben.
9.3.2 Eurovision Song Contest
Ein weiteres aktuelles Problem bietet der Eurovision Song Contest. In den letzten Jahren kam
es immer wieder dazu, dass die teilnehmenden Länder nicht mehr nach Qualität der Lieder
abstimmen, sondern nach Nachbarschaft der Länder, da eine Stimmabgabe für sein eigenes
Land nicht möglich ist. Eine Möglichkeit, das Problem zu reduzieren wäre, ein Abstimmen
für ein benachbartes Land ebenfalls zu verbieten. Auch dieses Problem kann man auf die
Graphentheorie zurückführen: Man ordnet jedem der teilnehmenden Länder einen Knoten zu
und verbindet Knoten, die benachbarte Länder darstellen, miteinander. Zwei Knoten, die mit
einer Kante verbunden sind, müssen dementsprechend wieder unterschiedlich gefärbt werden.
Die Knoten mit der gleichen Farbe kommen dann in eine gemeinsame Gruppe. Die teilnehmenden Länder in dieser Gruppe dürfen somit nur untereinander abstimmen, nicht jedoch für
ein Land aus einer anderen Gruppe. Der folgende Graph zeigt dies anhand des diesjährigen
Wettbewerbs:
116
Abbildung 9.11: Nachbarschaften ESC 2008
Dieses Beispiel entspräche einer folgenden Gruppenverteilung:
Gruppe 1 (•) D
IS
E
HR AL FIN GE ISR
Gruppe 2 (•) TR AZ SRB LV UA
N
DK GB
Gruppe 3 (•)
F
P
BIH GR PL RO
S
RUS AR
Auf diese Weise wird nicht nur nach Nachbarschaft kategorisiert, sondern wird zudem eine
gleichmäßige Verteilung angestrebt. Somit wird ebenfalls das Problem, dass nach politischen
Verbündnissen oder nach Sympathien bewertet wird, abgeschwächt.
Doch diese Methode wird in der Realität möglicherweise nie Einsatz finden, da die Einschränkung viel zu groß wäre. Außerdem gäbe es das erneute Problem, dass die Wahrscheinlichkeit eines Punkte-Gleichstandes höher wäre.
9.3.3 Museum
Dieses Beipiel stellt ein ziemlich praxisbezogenes Problem dar: Die Mitarbeiter eines Museums müssen darauf achten, dass kein Raum auch nur für kurze Zeit unbeobachtet bleibt.
Doch wie ist dies realisierbar, so dass möglichst wenige Museumswärter eingestellt werden
müssen? Auch diese Fragelässt sich mit Hilfe von Konfliktgraphen beantworten.
Wenn man beispielsweise Raum 1 betrachtet, so ist relativ offensichtlich, welchen Standort
der Wärter einnehmen muss, um beide Gänge im Auge zu halten. Die Position ist in der
117
Abbildung 9.12: Einfache Beispiele für Museen
Abbildung oben mit einem roten Kreuz hervorgehoben. Es reicht somit lediglich ein Wärter.
Beim zweiten Raum wird schnell klar, dass mehr als ein Museumswärter benötigt wird, da
es zwei nicht angrenzende Gänge gibt, die nicht von einem Wärter gleichzeitig kontrolliert
werden können. Auch hier sind wieder zwei mögliche Positionen in der Abbildung gekennzeichnet.
Doch wie schaut es bei Räumen aus, die ein beliebiges Polygon bilden, wie das folgende Beispiel zeigt?
Abbildung 9.13: Polygonstruktur eines Museums
Hier kommt die Graphentheorie zum Einsatz. Zuerst wird das Museum trianguliert6 , wobei
es mehrere Möglichkeiten gibt. In der folgenden Abbildung wird eine vorgestellt:
Abbildung 9.14: Triangulierung der Struktur
Jeder Ecke des Polygons wird ein Graphenknoten zugeordnet, die dann jeweils so verbunden
werden, dass ein trianguliertes Gebiet entsteht. Nun werden die Knoten nach den bekannten
Regeln gefärbt. Die chromatische Zahl bei allen triangulierten Polygonen lautet χ(G) = 3,
6
Gebiet in Dreiecke unterteilen; vom Lateinischen: Triangulum ⇒ Dreieck
118
das heißt, es werden lediglich drei Farben benötigt. Alle Knoten mit der gleichen Farbe bieten
einen idealen Standort für die Wärter. Das bedeutet, dass die Wärter entweder an allen Ecken
mit der Farbe fi oder mit der Farbe fj oder mit der Farbe fk (mit i, j, k verschieden) Platz
nehmen können. Am sinnvollsten ist es die Farbe mit der geringsten Häufigkeit zu wählen,
denn so viele Wärter werden am Ende benötigt. Hat der Graph n Knoten, so ist die Anzahl
der möglichen Standorte höchstens n3 . Jedes Museum muss demnach im schlimmsten Fall n3
Wärter einstellen.
9.4 Kantenfärbung
9.4.1 Chromatischer Index
Sehr eng verwandt mit der Knotenfärbung ist die Kantenfärbung von Graphen. Die Kantenfärbung wird mit den selben Regeln der Knotenfärbung durchgeführt, mit dem Unterschied, dass nun Kanten die zum selben Knoten gehören nicht die gleiche Farbe besitzen
dürfen. So gelangt man schnell zu der Erkenntnis, dass mindestens die Farbanzahl des höchsten Eckengrades gmax des Graphen benötigt wird, da im Knoten mit der maximalen Kantenzahl für jede Kante eine neue Farbe verwendet werden muss. Sei demnach fV eine Kantenfärbung des Graphen G(E, V ), so muss für zwei beliebig benachbarte Kanten vi und vj
folgende Bedingung gelten:
fV (vi ) 6= fV (vj ). Diese Mindestanzahl der Farben bei der Kantenfärbung unter den Regeln,
dass jede Kante des selben Knotens unterschiedliche Farben erhalten, nennt man chromatischer Index
oder Kantenfärbungszahl und wird meist mit χ′ (G) bezeichnet.
χ′ (G) ≥ gmax
Mittels Kantenfärbung ist es möglich, Beziehungen zwischen den Knoten zu veranschaulichen, wie es zum Beispiel bei Bekanntschaftsgraphen der Fall ist. Dabei stellen die Knoten
jeweils die Personen und die Kanten die Beziehung zwischen zwei Personen (Bekanntschaft)
dar. Also werden nur die Personen verbunden, die sich kennen, wobei hier die Färbung der
Kanten keine Rolle spielt. Es gibt jedoch eine bessere Möglichkeit, die mehr auf Verwendung unterschiedlicher Farben basiert. Und zwar wird zunächst unter den Personen (Knoten)
ein vollständiges Vieleck erzeugt, also wird jeder Knoten mit jedem anderen verbunden und
schließlich werden die Kanten, die in Beziehung stehende Knoten miteinander verbinden,
mit einer anderen Farbe gefärbt. Auffällig dabei ist, dass man bei der Kantenfärbung eines
vollständigen Sechsecks mit 2 Farben immer mindestens ein Dreieck erzeugt, dessen Kanten
alle die gleiche Farbe haben. Dies führt zu einer interessanten Erkenntnis: Unter 6 Personen
sind aufjedenfall 3, die sich alle untereinander kennen, oder 3 Personen von denen keiner den
anderen kennt. Bei 5 Personen ist dies jedoch nicht immer der Fall, bei 7 Personen wiederum
gilt diese Erkenntnis. Also kann man sagen:
Bei der Kantenfärbung eines vollständigen n-Ecks, bei welcher 2 Farben verwendet werden,
entsteht für n ≥ 6 mindestens ein einfarbiges Dreieck.
Wie an diesem einleitenden Beispiel zu erkennen ist, stellt die Kantenfärbung eines vollständi-
119
gen Vielecks ein interessantes Themengebiet dar. Es stellt sich die Frage, wie der Zusammenhang zwischen Knotenzahl und chromatischem Index aussieht. Der Mathematiker Vizing fand
im Jahre 1964 heraus, dass folgende Beziehung gilt:
gmax (G) ≤ χ′ (G) ≤ gmax (G) + 1
Dass die Ungleichung gmax (G) ≤ χ′ (G) gelten muss, wurde schon im vorherigen Absatz
geklärt, aber warum der chromatische Index nach oben mit gmax (G) + 1 beschränkt ist, wird
im Folgenden bewiesen:
Wenn man zunächst einfache Beispiele betrachtet, fällt auf, dass man bei einem vollständigen
n-Eck ohne Kreise für gerade ng ng −1 Farben, und für ungerade nu genau nu Farben benötigt.
Für den Fall einer ungeraden Knotenanzahl wird angenommen, dass nu Farben zur Verfügung
stehen. Zuerst werden die Knoten symmetrisch angeordnet, so dass jedem Knoten ein anderer
Knoten gegenübersteht. Da man aber eine ungerade Anzahl von Knoten betrachtet, bleibt
ein Knoten e0 übrig. Die weiteren sich gegenüberstehenden Knoten kann man nun jeweils
durch Kanten der gleichen Farbe f1 problemlos miteinander verbinden, da diese Kanten parallel zueinander verlaufen. Nun ist also jeder Knoten bis auf e0 mit einem anderen Knoten
verbunden. Im nächsten Schritt verbindet man den Knoten e0 mit allen anderen nu − 1 Knoten und färbt alle Kanten mit unterschiedlichen Farben zwischen f2 und fn . Die Farbe f1
darf hier nicht mehr vorkommen, da jeder andere Knoten schon mit einer Kante dieser Farbe verbunden ist. Allein in dieser Situation wird deutlich, dass man mindestens nu Farben
benötigt. Bis auf den Knoten e0 fehlen aber bei allen anderen Knoten noch n-3 Kantenverbindungen. Nun geht man sukzessive Knoten für Knoten vor und verbindet diese mit allen
anderen Knoten (wo noch keine Verbindung besteht), so dass in keinem Knoten Kanten der
gleichen Farbe enden, es wird deutlich, dass diese nu Farben zur Koloration der Kanten des
vollständigen nu -Ecks ausreichen, wobei nu = χ′ (G) ≤ gmax (G) + 1 = nu gilt. Um den Satz
von Vizing auch für gerade ng zu beweisen, geht man von der letzten Situation des gefärbten
vollständigen nu -Ecks aus. Da in jedem Knoten nu -1 Kanten mit nu -1 unterschiedlichen Farben enden, kann man dem Graphen problemlos einen weiteren Knoten hinzufügen, so dass
man eine gerade Knotenanzahl ng = nu + 1 erhält. Der neue Knoten wird mit den anderen nu
Knoten durch Kanten verbunden und jeweils mit genau der Farbe gefärbt, die im jeweiligen
Knoten fehlt. So kann man jedes vollständige nu -Eck um eine Ecke erweitern, ohne eine neue
Farbe verwenden zu müssen. Zusammenfassend kann man sagen:
Um die Kanten eines vollständigen Graphen mit n Knoten zu färben, braucht man
• n Farben für n ungerade
120
• n-1 Farben für n gerade,
was auch den Satz von Vizing : gmax (G) ≤ χ′ (G) ≤ gmax (G) + 1 bestätigt.
9.4.2 Satz von König
Der chromatische Index für vollständige Graphen ist also mit Hilfe des Satzes von Vizing
bestimmt. Auf ähnliche Weise ermittelte Dènes König7 den chromatischen Index bipartiter
Graphen und legte folgenden Satz fest:
Der chromatische Index jedes bipartiten Graphen ist so groß wie der maximale Eckengrad
gmax .
Da der Beweis dieses Satzes für allgemeine bipartite Graphen zu weit führen würde, wird
dies auf einen Sonderfall der vollständigen bipartiten m-n-Graphen beschränkt. Dazu betrachtet man zwei Knotenmengen A = {A1 , ..., Am } und B = {B1 , ..., Bn }, wobei laut Definition
der bipartiten Graphen die Elemente der gleichen Menge nicht miteinander verbunden sind,
jedoch zwischen allen Elementen der Menge A mit den Elementen der Menge B jeweils eine
Kante liegt. Mit einer geschickten Färbung dieser Kanten kann man leicht einsehen, dass der
Satz von König gelten muss, so dass man mit gmax Farben auskommt. Dazu bestimmt man
zunächst, welche der beiden Mengen eine kleinere Mächtigkeit besitzt. Sei hier |A| ≥ |B| also
m ≥ n und somit gmax = m − 1, so beginnt man mit dem Knoten B1 und färbt alle m − 1
Kanten, die in ihm enden, der Reihe nach mit den Farben f1 , ..., fm−1 . Den Kanten, die in
B2 enden, gibt man die Farben f2 , ..., fm−1 , f1 , also mit den gleichen Farben wie in B1 der
Fall war, jedoch nur um eine Stelle versetzt. Führt man diesen Algorithmus bis zum letzten
Knoten Bn fort, so hat man garantiert alle Kanten gefärbt und dabei keiner benachbarten
Kanten die gleiche Farbe gegeben. In der Abbildung unten ist dies an einem Beispiel verdeutlicht:
Abbildung 9.15: Kantenfärbung eines vollständigen bipartiten Graphen
7
Dènes König (1884 - 1944) ungarischer Mathematiker, veröffentlichte 1936 ein Buch über Graphentheorie
121
9.4.3 Lateinische Quadrate
Ein lateinisches Quadrat der Ordnung n ist ein Quadrat, welches n × n Felder besitzt, die
auf eine besondere Weise mit n unterschiedlichen Elementen einer Symbolmenge K besetzt
sind. Und zwar befindet sich in jeder Zeile und in jeder Spalte des Quadrates jedes Element
der Symbolmenge genau einmal. Die Elemente können zwischen Farben, Buchstaben, Zahlen
etc. variieren, wie das Beispiel unten zeigt:
Abbildung 9.16: Beispiele für lateinische Quadrate
Das Ausfüllen eines lateinischen Quadrates der Ordnung n steht im starken Zusammenhang zur Kantenfärbung von vollständigen bipartiten n-n-Graphen. Analog zum Färben der
Kanten werden hier die Felder des Quadrates mit Symbolen bzw. Zahlen oder Farben besetzt.
Seien Z und S die Teilmengen des bipartiten n-n-Graphen, so entspricht die Menge Z den
Zeilen und die Menge S den Spalten des Quadrates. Demnach stimmen die Kantenfarben mit
den Farben in den einzelnen Feldern im Quadrat überein. Füllt man das Quadrat mit Farben
aus, so geht man dieses Zeile für Zeile durch. Die erste Zeile wird in einer beliebigen Reihenfolge mit den Farben f1 , ..., fn ausgefüllt. Man merkt sich diese Reihenfolge und besetzt die
nächste Zeile genau mit der gleichen Reihenfolge, nur um eine Position verschoben, das heißt
mit den Farben f2 , ..., fn , f1 . Wenn man auf diese Weise das Quadrat Zeile für Zeile ausfült,
erhält man schließlich ein lateinisches Quadrat.
Um nochmals die Analogie zu verdeutlichen, betrachte man die Abbildung rechts. Man sieht
beispielsweise, dass die Farbe des Feldes Z2 S3 im Quadrat mit der Farbe der Kante zwischen
den Knoten Z2 und S3 übereinstimmt.
Wenn man nun ein lateinisches Quadrat der Ordnung neun betrachtet und die Bedingungen
zum Ausfüllen des Quadrates erweitert, so dass für die Aufteilung in neun 3 × 3-Quadrate
ebenfalls gilt, dass in allen neun Quadraten alle Farben einmal vorkommen, so führt dies zu
dem bekannten Zahlenrätsel Sudoku. Diese Aufteilung ist dem Rätsel am Ende des Kapitels
zu entnehmen. Der einzige Unterschied ist, dass hier anstelle von Farben Zahlen von 1 bis 9
benutzt worden sind. An der Ausfüllstrategie ändert dies aber nichts.
122
Abbildung 9.17: Sonderfall eines lateinischen Quadrates (Sudoku)
123
10 Kryptographie: Grundlagen
10.1 Ziele der Kryptographie
10.1.1 Einleitung
Abbildung 10.1: Sichere Komminikation?
In der heutigen Zeit, in der die elektronischen Medien unentbehrlich sind, spielt die Datensicherheit eine enorme Bedeutung. Die elektronischen Daten und Informationen werden als
wirtschaftliches Gut behandelt, deshalb versucht man deren Geheimhaltung und eine sichere
Übermittlung zu gewährleisten.
Aber die Geheimhaltung wichitger Informationen oder deren sichere Übermittlung spielte
auch schon zu Zeiten von Julius Caeser sehr wichtige Rolle. Julius Caeser entwickelte eine
Art Geheimcode, um seine Nachrichten an die Generäle sicher zu verschicken.
Die kryptographische Wissenschaft beschäftigt sich mit diesen Problemen, und hat das Ziel
diese zu lösen. In den letzten Jahren wurden diverse Methoden entwickelt, die die Ziele der
Kryptographie, die im nächsten Kapitel erläutert werden, zu verwirklichen.
10.1.2 Geheimhaltug
Viele Menschen, auch im Alltag, haben sich Gedanken gemacht über die Frage: Wie kann
ich mit jemanden geheime Nachrichten austauschen, so dass keine unberechtigte Personen
davon Kenntnis erhalten? Diese Problematik erstreckt sich über viele Bereiche, von einer
heimlich vereinbarten Verlobung bis hin zur Verschickung einer EC-Geheimzahl in einem
unauffälligen Briefumschlag. Man ergreift drei verschiede Maßnahmen um die Übermittlung
und Speicherung der Nachricht zu sichern:
• Organisatorische Maßnahmen: Um eine heimliche Verlobung zu ermöglichen, organisiert
man einen einsamen Spaziergang im Wald, was wahrscheinlich einwenig veraltet ist.
124
Oder man wählt einen vertrauensvollen Boten um seine Nachricht sicher zu übermitteln.
• Physikalische Maßnahmen: Hier greift man z.B.: auf eine Geheimtinte zu um die Existenz der Nachricht zu verheimlichen. Man kann die Nachricht in einem Tresor verschließen oder in einem versiegelten Brief verschicken.
• Kryptographische Maßnahmen: Man versucht hier die Nachricht selbst zu entstellen,
damit ist es nur dem berechtigten Empfänger möglich die Nachricht zu lesen, aber er
braucht dazu eine zusätzliche Geheiminformation, die ihn als berechtigt einstuft.
10.1.3 Authentikation
Das nächste Problem wäre es zu beweisen, dass die Nachricht wirklich von dem angegebenen
Sender kommt, so zu sagen die Identität dieser Person soll nachgewiesen werden.
Welche Methode kann man in diesem Fall anwenden? Eine Methode wenden fast alle Menschen praktisch unbewusst, zum Beispiel erkennt man einen Menschen an seinem Aussehen,
Stimme oder auch an der Handschrift.
Die angewandte Methoden zur Lösung dieser Probleme fasst man zu einem Bereich zusammen. Dieser Bereich wird Authentikation genannt.
Grundlegend unterscheidet man zwischen zwei Arten von Authentikation.
Teilnehmerauthentikation versucht die Identität einer Person oder Instanz nachzuweisen,
bei der Nachrichtenauthentikation geht es nicht nur darum, die Herkunft einer Nachricht
nachzuweisen, sondern auch die Veränderung der Nachricht zu erkennen.
Bei der Teilnehmerauthentikation wird der Nachweis der Identität einem Rechner gegenüber erbracht. Zum Beispiel wird die richtige Eingabe der Geheimnummer bei einem
Geldausgabeautomaten als sicherer Nachweis für die Identität derjenigen Person. Die Geheimzahl ist die vorhin erwähnte geheime Information, die den Empfänger als berechtigt
einstuft.
Man unterscheidet drei verschiedene Arten von diesen Informationen, auch “Objekte” genannt. Es gibt Objekte, die biologische Eigenschaften haben, zum Beispiel: Fingerabdruck,
Stimme oder Unterschrift. Die Identität einer Person kann auch durch einzigartige Objekte
nachgewiesen werden, zum Beispiel durch ein Personalausweis.
In der Kryptographie wird der Nachweis der Identität durch geheimes Wissen erbracht. Dieses
geheime Wissen wird unterschiedlich genannt, zum Beispiel: “Geheimzahl” oder “kryptographischer Schlüssel”.
Bei Nachrichtenauthentikation wird die Authentität eines Dokumentes auf zwei Arten
überprüft:
• Unterschrift: Die Herkunft eines Dokumentes wird durch eine Unterschrift, ein Siegel
oder einen Dienstsiegel des Ausstellers bestätigt.
• Echheitsmerkmale: Die Echtheit der Geldscheine wird durch mehrere Merkmale wie
Silberfaden, Wasserzeichen usw. belegt.
125
In den einzelnen Authentikationsverfahren wird danach unterschieden, ob man zur Überprüfung das Geheimnis benötigt. Ein Beispiel, bei dem die Überprüfung nicht stattfindet, ist
das Signaturverfahren.
10.1.4 Anonymität
Bei der Kommunikation mit Hilfe elektronischer Medien möchte man trotzdem eigene Privatsphäre schützen, d.h. dass nicht nur der Inhalt der Nachricht geheim bleiben soll, sondern
auch der Sender, der Empfänger sogar deren Kommunikation. Dazu zwei Beispiele, bei dennen
die Anonymität der Personen gewährleistet wird:
• Bargeld-Zahlung, durch dieses Zahlungsmittel wird die Identität der zahlenden Person
nicht preisgegeben.
• Bei den karitativen Institutionen wie Telefonseelsorge, wird den Anrufern die Anonymität gewährleistet.
Es werden sehr hohe Anforderungen nach Anonymität bei der elektronischen Kommunikation
gestellt. Zunächst scheint es schwierig zu sein diese Forderungen zu erfüllen. Trotzdem stellt
man fest, dass die Anonymität auf hohem Neveau geboten wird.
10.1.5 Protokolle
Die Protokolle sind Regel, an die sich mehrere Personen oder Instanzen halten müssen, wenn
sie ein gemeinsames Zeil erreichen möchten.
Ein typisches Beispiel für ein Protokoll sind die Regel, nach denen ein Kunde sich an einem
Geldausgabeautomaten Geld holen kann.
In den letzten Jahren spielen die Protokolle immer mehr größere Rolle, weil die kryptographischen Public-Key-Verfahren nicht nur ihre ursprungliche Aufgabe lösen, nähmlich Schlüsselaustausch, sondern sie dienen als Grundstein für komplexe kryptographische Protokolle.
Die steigende Nachfragen nach den höherwertigen Sicherheitsdienstleistungen, wie elektronische Geldbörse, verlangt die hochwertige kryptographische Protokolle.
Da die elektronische Welt immer weiter wächst, steigen auch die Anforderungen an die Sicherheitsdienstleistungen, die durch das ausgefeilte Schlüsselmanagement, realisiert über entsprechende Protokolle, erfüllt werden.
10.2 Einführung in die Kryptographie
10.2.1 Verschlüsselung
Verschlüsselung ist ein Vorgang bei dem eine Nachricht durch eine Umwandlung mit Hilfe
einer Information geheim gehalten wird, d.h., dass die Nachricht nicht von unberechtigen
Personen gelesen werden kann. Wichtig ist dabei diese geheime Information zu schützen, die
nennt man Schlüssel. Und nur wenn der Empfänger diese Information besitzt, kann er die
empfangene Nachricht lesen.
126
Abbildung 10.2: Symmetrische Verschlüsselung
Wenn beide Kommunikationspartner den gleichen Schlüssel benutzen, spricht man in der
klassischen Kryptographie von einem symmetrischen Verschlüsselungsverfahren
Man verändert die Nachricht, damit sie nicht von fremden Personen gelesen wird. Vereinfacht dargestellt, wird es folgendermaßen realisiert:
Der Sender legt die Nachricht in ein Tresor und schliesst mit seinem Schlüssel ab.
Dann schickt er den Tresor mit der Nachricht ab. Der Empfänger kann den Tresor
mit seinem Zweitschlüssel öffnen und die enthaltene Nachricht lesen. Natürlich ist
es ziemlich umständlich einen Tresor zu verschicken, deshalb hat man mathematische Methoden entwickeln um eine Nachricht geheim zu verschicken.
Ein Beispiel für die symmetrische Verschlüsselung ist das bekannteste Verschlüsselungsverfahren von dem römischen Feldherren G.Julius Caeser (100 - 44 v. Cr.). Er benutzte es um
in Gallien geheime Nachrichten durch Feindesland an Cicero zu übermittlen.
Abbildung 10.3: Dabei sind die oberen Buchstaben die des Klartextes, die unteren die des
Geheimtextes. Quelle:http://www.it.fht-esslingen.de
Klartext:
Geheimtext:
traue
nie
dem
brutus
WUDXH
QLD
GHP
EUXWXV
Eine symmetrische Verschlüsselung ist ein Verfahren, realisiert durch eine Funktion f mit zwei
Eingabeparametern, dem Schlüssel k und dem Klartext m, und einen Ausgabeparameter dem
Geheimtext c, der sich auf k und m ergibt.
Um dem Empfänger das Lesen der Nachricht zu ermöglichen, muss die Funktion f umkehrbar
sein, d.h. es muss eine Funktion f ∗ geben, welche die Wirkung von f rückgängig macht. Also
127
mit dem gleichen Schlüssel die verschlüsselte Nachricht entschlüsselt. Dieser Verfahren ist
schematisch im Bild dargestellt.
Abbildung 10.4: Schematische Darstellung der symmetrischen Verschlüsselung
Nach dem Kerckhoffschen Prinzip sind beide Funktionen f und f ∗ bekannt. Um aber
als sicher eingestuft zu werden, muss die Funktion f folgende Angriffe überstehen:
• Ciphertext-only attack: Der Angreifer möchte aus einer bekannten aber begrenzten
Anzahl von Geheimtexten die zugehörige Klartexte bzw. den verwendeteten Schlüssel
bestimmen.
• Know-plaintext attack: Der Angreifer kennt einige Geheimtexte mit den zugehörigen Klartexten, er möchte andere Geheimtexte mit dem verwendeteten Schlüssel entschlüsseln.
• Chosen-plaintext attack: Der Angreifer kennt die Verschlüsselungsfunktion f aber
nicht den Schlüssel k. Er kann damit bestimmte Klartexte mit Hilfe von fk verschlüsseln.
Damit möchte er eigentlich andere Geiheimtexte entschlüsseln. Dieser Angriff stellt in
der Public-Key-Kryptographie eine echte Bedrohung dar.
• Chosen-ciphertext attack: Der Angreifer versucht mit der Funktion f ∗ , die ihm
bekannt ist, einige Geheimtexte zu entschlüsseln um den Schlüssel zu berechnen.
Die Algorithmen zur symmetrischen Verschlüsselung unterteilt man in zwei Arten und zwar
in Blockchiffren und Stromchiffren.
Bei einer Blockchiffre wird die Nachricht in Blöcke m1 , m2 , · · · fester Länge unterteilt, und
jeder Block mi wird einzeln verschlüsselt mit der Formel:
ci = f (k, m)
für 1 = 1, 2, 3, · · ·
Ein aktuelles Beispiel für Blockchiffre ist der AES-Algorithmus, er wurde von J.Daemen
und V.Rijmen entwickelt und am 02.10.2000 veröffentlicht. Es handelt sich dabei um Blocke
der Länge 128, 192 oder 256 Bit, die Blockchiffre lässt auch die gleiche Schlüssellänge zu.
Interne Darstellung:
Die Daten werden als Folge von Bytes in einer vierzeiligen Matrix angeordnet. Neben der
128
Abbildung 10.5: Blockchiffre
Addition entsprechender Rundenschlüssel besteht die Verschlüsselungsoperation aus einer
Byte-Substitution, einer zyklischen Verschiebung der Zeilen der Matrix und einer Transformation der Spalten der Matrix. Diese Operationen werden in jeder Runde wiederholt.
Inzwischen wurde der Algorithmus von AES besser untersucht. Es hat sich herausgestellt,
dass man das 128-Bit-AES-Problem als Gleichungssystem mit 8000 qaudratischen Gleichungen und mit 1600 binären Unbekannten darstellen kann.
Bie einer Stromchiffre wird die Nachricht zeichenweise verschlüsselt. Man erzeugt eine Zeichenfolge für den Schlüssel, der sollte die gleiche Länge haben wie der Klartext, so dass die
Zeichen miteinander verknüpft werden können.
Ein Beispiel für Stromchiffre ist das unten schematisch dargestellte One-Time-Pad Verfahren:
Hierzu muss sowohl die Nachricht als auch der Schlüssel als Bitfolge vorliegen. Die Bitfolge
des Schlüssel muss aber zufällig und unabhängig voneinander gewählt werden. Die zugehörigen Klartext-Bits werden mod 2 addiert, d.h sie werden miteinander verknüpft und zwar
nach folgenden Regeln:
0 ⊕ 0 = 0,
0 ⊕ 1 = 1,
1⊕1 = 0
Abbildung 10.6: Schematische Darstellung von One-time-pad
Bei diesem Beispiel verläuft die Entschlüsselung genauso wie die Verschlüsselung: Wenn
zur Geheimtextfolge die Schlüsselfolge modulo 2 addiert wird, erhält man wieder die Klartextfolge, es gilt also f = f ∗ .
129
Der Verfahren gilt als absolut sicher, falls die Schlüsselbitfolge nur einmal verwedet wird,
aber die gleiche Länge der Schlüsselfolge verlangsamt den Verfahren enorm. Man sollte mehrmalige Verwendung des Schlüssel vermeiden, da es sonst einem Known-Plain-Angriff nicht
standhalten kann. Deswegen setzt man zur Erzeugung der Schlüsselbitfolge einen Pseudozufallsgenerator ein, dabei wird nur eine kurze geheime Information zur Initialisierung benötigt,
sie wird dann vom Sender zum Empfänger übertragen.
10.2.2 Asymmetrische Verschlüsselung
Jahrtausende hat man die klassische also symmetrische Verschlüsselungsverfahren angewendet, aber erst im 20.Jahrhundert hat man sich mit der Frage beschäftigt, ob man wirklich
den gleichen Schlüssel benötigt, um sichere Kommunikation zu bekommen.
Schliesslich hatten W.Diffie und M.Hellmann 1976 ein Konzept für ein asymmetrischen Verfahren, so genannte Public-Key-Verfahren, veröffentlicht. Der wichtigste Aspekt dabei ist,
dass zwei Kommunizierende nicht den gleichen Schlüssel benutzen.
Abbildung 10.7: Asymmetrische Verschlüsselung
Die Vorgehensweise kann man so erklären, dass der Sender die Nachricht in dem “Briefkasten” des Empfängers wirft. Das Einwerfen entspricht der Verschlüsselung mit dem öffentlichen
Schlüssel des Empfängers, und jeder Teilnehmer des Systems kann dies durchführen. Aber
nur der Empfänger kann die Nachricht mit seinem geheimen Schlüssel aus dem Briefkasten
rausnehmen um sie zu lesen.
Mathematische Darstellung:
Jedem Teilnehmer T des Systems wird ein privater Schlüssel d = dT und ein öffentlicher
Schlüssel e = et zugerodnet. Dabei ist nur der private Schlüssel geheim zu halten, deshalb
auch als geheimer Schlüssel zu bezeichnen, der öffentliche Schlüssel darf allen zugänglich sein.
Der Algorithmus f verwendet den öffentlichen Schlüssel um aus einer Nachricht m einen Geheimtext
c = fe (m)
zu erhalten.
Unter Verwendung eines privaten Schlüssels d = dt entschlüsselt man die Nachricht m mit
130
der Funktion f
m˜ = fd (c)
Dabei müssen wieder folgende Eigenschaften erfüllt werden:
Korrekte Enschlüsselung: d.h. korrekte Reproduktion des Klartextes bei Entschlüsselung:
m˜ = fd (c) = fd (fe (m)) = m
für alle Klartexte m.
Publich-Key-Eigenschaft: Auch wenn der öffentliche Schlüssel e = eT vielen Teilnehmern
bekannt ist, ist es fast unmöglich daraus den privaten Schlüssel d = dT zu bestimmen.
Abbildung 10.8: Schematische Darstellung der asymmetrischen Verschlüsselung
Wenn man eine Nachricht einem Teilnehmer des Systems zuschicken möchte, muss man zuerst den öffentlichen Schlüssel dieser Person ermitteln. Man kann sich so vorstellen, als sucht
man in einem “elektronischen” Telefonbuch.
Dann wendet man die Funktion fd auf die Nachricht an und schickt den verschlüsselten Geheimtext
c = fe (m)
ab.
Der Empfänger entschlüsselt die Nachricht mit der Funktion fd , die mit dem geheimen
Schlüssel gebildet wurde. Und erhält den Klartext der Nachricht:
m = fd (c) = fd (fe (m))
Der RSA-Algorithmus ist ein Prototyp der asymmetrischen Verschlüsselung, er wird im späteren Kapitel näher erläutern.
131
10.2.3 Einwegfunktion
Eine Einwegfunktion ist eine sehr schwierig zu invertierbare Funktion, d.b. dass die Einwegfunktion eine Abbildung f einer Menge X in eine Menge Y ist, so dass f (x) für jedes Element
von der Menge X sehr leicht zu berechnen ist, während es für jedes Element y aus Y sehr
schwer ist ein Urbild x zu finden, da man versucht ein x mit f (x) = y zu finden.
Falls eine Einwegfunktion f bijektiv ist, also eine Permutation ist, so wird es Einwegpermutation genannt. Weitere Eigenschaft der Einwegfunktion ist die Kollisionsfreiheit, weil es
fast unmöglich ist für zwei verschieden Werte x und x́ in der Urbildmenge X zu finden mit
f (x) = f (x́).
Abbildung 10.9: Eine Einwegfunktion im Strassenverkehr
Ein Beispiel für eine Einwegfunktion ist das Telefonbuch.
Wenn der Name bekannt ist, ist es ganz einfach die passende Nummer zu finden, da die
Namen alphabetisch geordnet sind, aber es ist sehr schwierig mit einer bekannten Nummer
den zugehörigen Namen zu finden.
Man kann zwar fast alle kryptographische Verfahren auf eine Einwegfunktion zurückführen,
aber bis heute ist es nicht eindeutig bewiesen, ob es Einwegfunktion gibt. Soviel kann man
behaupten, dass Einwegfunktion genau dann existieren, wenn P 6= NP gilt.
Aus symmetrischen Verfahren kann man die wichtigsten Einwegfunktionen herleiten, indem
man ein Verfahren der Form f (· , ·) wählt und eine feste Nachricht m0 , somit ergibt sich die
Einwegfunktion:
F (·) = f (· , m0 )
Der Parameter von F wird an der Stelle von Schlüssel in f (· , m0 ) eingestzt. Die Tatsache,
dass es bei einem symmetrischen Verfahren, auch wenn Klartext und Geheimtext bekannt
sind, nicht möglich ist den benutzten Schlüssel zu berechnen. Dies bedeutet, dass F eine
Einwegfunktion ist.
Bemerkung: Die beschriebene Struktur ist nicht symmetrisch bezüglich den beiden Parametern von f . Man hat hier eine feste Nachricht m0 gewählt, wählt man stattdessen einen festen
Schlüssel k0 , so erhält man eine Funktion G(·) = f (k0 , ·). Die Funktion G ist keine Einweg-
132
funktion, da man für einen Wert y ein Urbild x := f ∗ (k0 , y) leicht berechnen kann.
10.2.4 Kryptogrphische Hashfunktion
Man verwendet die Hashfunktionen um eine Nachricht unverkennbar zu machen. Eine EinwegHashfunktion ist eine kollisionsfreie Einwegfunktion, die eine beliebig lange Nachricht auf
einen Hashwert zusammmenfasst. Dieser Wert hat eine feste Länge, z.B. 128 Bit.
Dieser Vorgang entspricht der Vorstellung eines Fingerabdrucks. Aus einem Fingerabdruck
kann man nicht auf die zugehörige Person schliessen und keine zwei Menschen haben denselben Fngerabdruck.
Es scheint aber sehr schwer zu sein, geignete Hashfunktion zu finden. Die Prüfsummen (englisch: checksum) sind nicht gut geignet zur Bildung von Hashfunktionen. Weil die Möglichkeit
verschiedene Nachrichten mit derselben Prüfsumme zu bilden, viele Angreifer lockt.
Zum Beispiel: Man möchte eine Überweisung tätigen: Ein Betrag von 2580,-EURO soll auf
das Konto 82677365 überweisen. Die Prüfsumme sei die Quersumme aller Ziffern, die in der
Überweisung zu finden sind. Hier kann der Angreifer mit der Kontonummer 7134599 leicht
manipulieren. da er nur den Betrag in 2980,- EURO ändern muss, zusätzlich zu seiner Kontonummer. Der Angriff wird garnicht bemerkt.
2
+ 8 + 0} +2
59
|{z}
| + 6 + 7 +{z7 + 3 + 6 + 5} =
| + 5 {z
Prüfsumme
Betrag
Kontonr.
Angreifer
z
}|
{
59
= 2
+ 8 + 0} +7
|{z}
| + 1 + 2 + 3{z+ 4 + 5 + 9 + 9}
| + 9 {z
Prüfsumme
Betrag
Kontonr.
Alltägliches Beispiel für eine Hashfunktion ist der Übergang von einem Rezept zum Gericht
oder Getränk. Man kann aus der Analyse von einem Getränk, z.B. Coca-Cola, nicht auf
das Rezept schliessen, das ist genau die Einwegeigenschaft, man kann aber auch nicht ein
Ersatzrezept (Kollision) für dieses Getränkt finden, was denselben Geschmack hat.
10.2.5 Trapdoor-Einwegfunktion
In der modernen Kryptographie werden weiter ausgearbeitete Konzepte von Einwegfunktionen gebraucht, weil der eingeschränkte Einsatzbereich der Einwegfunktion, indem nur Berechnungen möglich sind, die von allen Teilnehmern durchgeführt werden dürfen, nicht ausreicht.
So ein erweitertes Konzept ist die Trapdoor-Einwegfunktion, das ist eine Einwegfunktion mit einer Geheiminformation (“Geheimtür”, englisch: trapdoor), dadurch kann man die
Funktion leicht invertieren.
Zum Beispiel ist das Quadrieren
x 7→ x2 mod n
für n = pq eine Trapdoor-Einwegfunktion, wenn die Faktorisierung des Produktes bekannt
ist, ist das Invertieren sehr einfach, umgekehrt ist fast unmöglich.
133
In jedem Fall sind die Faktoren p und q die Trapdoorinformation. Man kann dies ganz allgemein betrachten.
Die Potenzfunktion
x 7→ xe mod n
ist für n = pq eine Trapdoor-Einwegfunktion mit der Trapdoorinformation: die Faktoren
p und q. Die Trapdoor-Einwegfunktion, nur mit anderen geheimen Informationen, wird bei
RSA-Algorithmus verwendet.
10.2.6 Commitment und Bit-Commitment
Beim Commitment (englisch: “Festlegung”) geht es darum, dass ein Teilnehmer A eine Nachricht so hinterlegt, dass sie
• von niemanden gelesen werden kann,
• von niemanden, for allem nicht von A verändert werden kann.
Dieses Problem wird durch die Anwendung von Einwegfunktionen gelöst. Ein Beispiel dafür
wäre eine Aussreibung für ein Auftrag. Dann möchten wahrscheinlich mehrere Firmen ein
Angebot einreichen. Aber wenn das erste Angebot bekannt ist, können die anderen Anbieter
ihren Preis anpassen, deswegen möchte jeder Anbieter, dass sein Angebot geheim bleibt, aber
er muss sich auf einen bestimmten Betrag festlegen.
Vereinfacht dargestellt, kann man dieses Problem wie folgt lösen. Jede Firma hinterlegt ihren
Kostenvoranschlag in einem Tresor. Dieser wird verschlossen an den Ausschreiber versendet.
Erst wenn alls Tresore bei dem ausschreibenden Unternehmen angekommen sind, können
die Anbieter ihre Tresorschlüssel versenden. Und so kann der geeignete Anbieter ausgewählt
werden.
Prinzipiell kann man ein Commitment für eine Nachricht m so erreichen, indem man eine
kollisionsfreie Einwegfunktion f anwendet und den Wert c = f (m) veröffentlicht. Dabei
garaniert die Einwegeigenschaft, dass niemand m berechnen kann.
Die Kollisionsfreiheit sorgt dafür, dass niemand ein anderes ḿ mit f (ḿ) = c finden kann, so
kann auch der Teilnehmer A seine Nachricht nicht verändern.
Ein Commitment-Protokoll besteht aus zwei Zuständen, dem Festlegen und öffnen des
Commitments. Ein Teilnehmer A legt einen Datensatz m fest, indem er c = f (m) berechnet,
und sendet c an den Teilnehmer B. Das öffnen des Commitmets geschieht durch die Mitteilung
des Urbildes von m an den Teilnehmer B.
Ein Sonderfall, wenn m nur ein Bit lang ist, also aus der Menge {0, 1}, man nennt es BitCommentment-Problem, kann folgendermaßen gelöst werden: man eignet sich nicht nur
auf das Bit b, sondern zusätzlich auf eine hinreichend große Zufallszahl r. Der Funktionswert
f (b, r) wird veröffentlicht, dabei ist f eine Einwegfunktion, wobei die Kollisionsfreiheit nur
für den ersten Parameter b gegeben ist. D.h. für alle Zufallszahlen r, s muss gelten
f (0, r) 6= f (1, s)
134
Dies wird durch folgende Funktion f raliesiert
f (b, r) := y b r 2 mod n,
wobei n = pq das Produkt zweier großer Primzahlen und y ein fester quadratischer Nichtrest
mod n mit Jacobisymbol+1 ist. Die Funktion f ist eine Einwegfunkion, die nur bezüglich des
ersten Parameters kollisionsfrei ist, da f (0, r) immer ein quadratischer Rest und f (1, r) immer
ein quadratischer Nichtrest ist. Die komplette Kollisionsfreiheit wird durch die Eigenschaft,
dass die Zahlr r 2 insgesamt vier Quadratwurzeln modulo n besitzt, verhindert.
10.2.7 Digitale Signatur
Abbildung 10.10: Scheck. Quelle: www.freewebs.com/mugumania/material/
Die Herkunft eines schriftlichen Dokumentes wird durch die handschriftliche Unterschrift
des Ausstellers bestätigt.
Die handschriftliche Unterschrift hat folgende Eigenschaften:
• Echtheitseigenschaft: Die Eigenschaft wird erfüllt, wenn die Unterschrift auf demselben Blatt des Dokumentes steht, erfordert natürlich engen Zusammenhang zwischen
Dokument und Unterschrift.
• Identitätseigenschaft: Es sollte schwierig sein eine Unterschrift zu fälschen, um sicher
zu sein, dass die Unterschrift von einem einzigen Menschen stammt.
• Abschlusseigenschaft: Die Unterschrift am Ende eines Dokumentes bedeutet die
Vollständigkeit des Dokumentes.
• Warneigenschaft: Je nachdem kann die Unterschrift unangenehme Konsequenzen mit
sich bringen, deshalb sollte jeder Unterschreibender wohl überlegt eine Unterschrift leisten.
135
• Verifikaitonseigenschaft: Die Echtheit einer Unterschrift kann durch ein Unterschriftsvergleich überprüft werden.
Diese Eigenschaften, ausser Warneigenschaft, versucht die Digitale Signatur zu realisieren.
Ein Signaturschema wird folgendermaßen definiert:
Jedem Teilnehmer T des Systems sind eine Signaturfunktion sT und eine Verifikation vt zugeordnet. st sollte geheim gehalten werden, und nur T ist bekannt, die vt
darf aber vielen Teilnehmern zugänglich sein. Auch wenn die Funktion vt öffentlich
zugänglich ist, ist es nicht mögliche die geheime Funktion st zu bestimmen.
Abbildung 10.11: Schematische Darstellung der digitalen Signatur
Ein Signaturschema kann man sich in der Form eines gläsernen Tresors vorstellen.
Nur der Eigentümer dessen kann eine Nachricht dort ablegen. Da nur er einen Schlüssel
besitzt, kann man davon ausgehen, dass die Nachricht nur von ihm kommen kann. Diese
Vorgehensweise definiert die Signatur und kann von jedem Teilnehmer bestätigt werden.
Ein Beispiel:
Eva möchte eine unterschrieben Nachricht m an Adam verschicken, um eine Unterschrift zu
leisten, wendet sie ihre Signaturfunktion an und erhält somit die Digitale Signatur
sig = sT (m)
Sie sendet dann die Nachricht m und die Signatur sig an den Adam. Er überprüft die Korrektheit erhaltener Signatur und zwar mit Hilfe der öffentlichen Funktion vT , die ihm ja
bekannt ist.
Bei einigen Verfahren, unter andrem RSA-Algorithmus, ist die Verifikationsfunktion vT die
Umkehrfunktion der Signatur, deshalb gilt:
vT (sig) = m
136
Es wird geprüft, ob die Funktion vT mit erhaltenden Parameter sig die Nachricht rekonstruieren kann.
Man kann aber den Verfahren der Digitalen Signatur nicht mit der Anwendung einer kryptographischen Hashfunktion vergleichen, da eine Hashfunktion öffentlich zugänglich ist. Hier
ist die Identitätseigenschaft nicht erfüllt, obwohl der Hashwert vom Dokumenten abhängt.
Das Verschlüsseln einer längeren Nachricht mit dem geheimen Schlüssel wird sehr viel Zeit
in Anspruch nehmen.
Stattdessen geht man wie folgt vor (siehe Grafik -¿ Hashfunktion):
1 Eva schreibt eine Nachricht.
2 Sie bildet den zugehörigen Hashwert, dieser Wert wird dann mit dem geheimen Schlüssel
von Eva verschlüsselt. Dies ist die Digitale Signatur der Nachricht.
3 Die Signatur wird zusammen mit der Nachricht verschickt.
4 Adam zerlegt die erhaltene Email in die Nachricht und die Digitale Signatur.
5 Dann bildet er den Hashwert der Nachricht.
6 Zum Schluss entschlüsselt er Evaś Digitale Signatur mit ihrem öffentlichen Schlüssel
und erhält so ihren Hashwert der Nachricht.
7 Dann vergleicht er die beiden Hashwerte miteinander, sind die gleich, kann er sicher
sein, dass die Nachricht von Eva stammt, und ausserdem kann er sicher sein, dass die
Nachricht unverändert bei ihm ankamm, obwohl der Text offen versendet wurde.
Abbildung 10.12: Hashfunktion bei Signieren einer Nachricht
Vorteile der Digitalen Signatur:
• In der Digitalen Signatur sind Informationen über das signierte Dokument enthalten,
somit sind nachträgliche Änderungen bemerkbar.
• Die Echtheit des Absenders ist nachweisbar.
137
• Die Digitale Signatur ist einfach zu leisten.
Die Digitale Signatur wurde am 13.06.1997 von Deutschen Bundestag der handschriftlichen
Unterschrift durch das “Signatur”-Gesetzt rechtlich gleichgestellt.
10.2.8 Der RSA-Algorithmus
RSA-Algorithmus ist ein Prototyp der asymmetrischen Verschlüsselung, wird aber auch zur
Erzeugung der Digitalen Signatur verwendet.
Der RSA-Algortithmus wurde 1978 von R.Rivest, A.Shamir und L.Adleman erfunden.
Der RSA-Algoritmus basiert auf dem Euler-Satz:
Sei n = pq das Produkt zweier verschiedener Primzahlen p und q. Dann gilt für
jede natürliche Zahl m ≤ n und jede natürliche Zahl k die Gleichung
mk(p−1)(q−1) mod n = m
(10.1)
Folgende Methode beschreibt den RSA-Algorithmus:
Man wählt zwei natürliche Zahlen e und d, deren Produkt folgende Form hat:
e · d = k(p − 1)(q − 1) + 1
mit k ∈ ℵ
Somit gilt:
(me )d mod n = mund
(md )e mod = m
Ein Beispiel zur Schlüsselerzeugung:
Adam wählt zwei verschiedene große Primzahlen p = 7 und q = 17. Er bildet
die Produkte p · q = n = 119 und ϕ(n) = (p − 1)(q − 1) = 6 · 16 = 96
Dann wählt er die Zahl e = 5 zwischen 1 und n, die teilerfremd zu ϕ(n) = 96 ist.
Weiterhin berechnet er die Zahl d = 77 (mit Hilfe des erweiterten euklidischen
Algorithmus) mit den Eigenschaften:
e · d mod ϕ(n) = 1,
e · d = 1 + k(p − 1)(q − 1)
für k ∈ ℵ
Der öffentliche Schlüssel besteht dann aus e und n, und d ist der geheime Schlüssel
von Adam.
Die Zahlen p, q und ϕ(n) sollten geheim gehalten werden.
138
Der RSA-Algorithmus als asymetrische Verschlüsselung
Korrektheit der Entschlüsselung wird duch folgende Interpretation gewährleistet:
Potenzieren mit e wird als Verschlüsseln und Potenzieren mit d als Entschlüsseln definiert,
somit garantiert der Euler-Satz, dass korrekt entschlüsselt wird.
Public-Key-Eigenschaft: Wenn die Faktoren p, q und ϕ(n) unbekannt sind, und nur die
Zahl n ist bekannt ist, so ist fast unmöglich aus e die Zahl d bestimmen.
Ein Beispiel zur Chiffrierung von Zahlen:
Eva möchte Adam eine geheime Nachricht m = 12 schicken.
Eva verschlüsselt die Nachricht, indem sie die Formel zur Verschlüsselung anwendet:
Verschlüsselung fe (m) := me mod n
(10.2)
also fe (m) = c 125 mod 119 = 3. Dann verschickt sie diese verschlüsselte Nachricht an Adam.
Adam entschlüsselt die erhaltene Nachricht, indem er die Formel anwendet:
Entschlüsselung fd (c) := cd mod n
Er erhält m = 37 7 mod 119 = 12. Zum Schluss prüft er die Korrektheit der Nachricht mit
folgender Formel:
Korrektheit fd (fe (m)) = (me )d = mod n = m
und er hat wieder die ursprüngliche Nachricht erhalten: (125 )7 7 mod119 = 12
Vorteile des RSA-Algorithmus:
• Kein Schlüsselaustausch notwendig, das bedeutet mehr Sicherheit.
• Durch die Trennung in öffentliche und private Schlüssel kann jeder verschlüsseln, aber
nur der Besitzer des privaten Schlüssels entschlüsseln.
Der RSA-Algorithmus als Signaturverfahren
Signaturfunktion:
Man bildet die Signatur, vielleicht unter Verwendung der Hashfunktionn, indem auf die Nachricht m der geheime Schlüssel des unterschreibenden Teilnehmer T angewendet wird.
sig = sT (m) : md mod n
Verifikationsfunktion:
Man überprüft eine Signatur, indem man den öffentlichen Schlüssel e des unterschreibenden Teilnehmer T aus die Signaturfunktion anwendet, und das Resultat mit der gesendeten
Nachricht m vergleicht.
?
z}|{
e
vT (sig) := sig mod n = m
139
Bemerkung:
Die Wahl der Faktoren (Zahlen) ist entscheident für die Sicherheit des RSA-Algorithmus.
Momentan werden für n Zahlen zwischen 512 und 2048 Bit Länge verwendet, aber wird ja
immer wieder versucht diese Zahl n zu faktorisieren, deshalb ist es zur Zeit empfehlenswert
für den Schlüssel die Länge von 768 Bit zu verwenden.
Attacken auf den RSA-Algorithmus
Der RSA-Algorithmus gilt immer noch als ziemlich sicher. Nur in Sonderfällen sind Angriffe
möglich, dies hilft aber zu der richtigen Wahl für Implementierungsparametern.
Die Homomorphie-Eigenschaft besagt, dass für den öffentlichen Schlüssel (e, n) eines
RSA-Algorithmus folgendes gilt:
me1 me2 mod n = (m1 m2 )e mod n
Das bedeutet, dass man die Nachricht m1 m2 verschlüsseln kann, ohne die Kenntnis über
m1 und m2 zu haben. Dies ist auch bei dem RSA-Signaturverfahren möglich und zwar auf
folgende Weise: aus den Signaturen md1 mod n und md2 mod n kann man eine gültige Signatur
(m1 m2 )d mod n der Nachricht m1 m2 erstellen, auch dann, wenn der geheime Schlüssel nicht
bekannt ist.
Generieren eines gültigen Nachricht-Signatur-Paares: Aus einer Signatur kann man
mit Hilfe von RSA-Verfahren eine Nachricht erzeugen, die diese Signatur hat.
Dabei wählt man sig aus und berechnet dazu m := sige mod n. Die Verifizierun der Signatur
md = siged mod n ergibt das richtige Ergebnis. Durch die Redundanz der Nachricht können
solche Angriffe vermieden werden.
Verwendung kleiner Exponente: Wird in einem System aus Effizienzgründen die gleiche
Zahl für den öffentlichen Schlüssel verwendet, so kann man leicht aus den Kryptogrammen
den Klartext bestimmen:
Z.B.: Seien y1 y2 y3 Chiffretexte von drei verschiedenen Teilnehmern:
y1 = m3 mod n1
y2 = m3 mod n2
y3 = m3 mod n3
Mit Hilfe des chinesischen Restsatzes erhält man eindeutige Lösung:
y = m3 mod n1 n2 n3
Die Nachricht m muss kleiner sein als jeder der drei Moduli n1 n2 und n3 also ist m3 auch
kleiner als n1 n2 n3 . Daraus ergibt sich:
y = m3 mod n1 n2 n3 = m3
Die Nachricht m kann man durch die dritte Wurzel aus y ziehen berechnen.
140
Verschlüsselung von Nachrichten, die in einer algebraischen Beziehung zueinander stehen.
Wenn die Chiffretexte von den Nachrichten m und m + 1 und der gängige Exponent e = 3
bekannt sind, ist es sehr leicht auf m zu kommen.
Z.B.: Sei c1 = m3 mod n und c2 = (m + 1)3 mod n. Dann gilt:
c2 + 2c1 − 1
(m + 1)3 + 2m3 − 1
3m3 + 3m2 + 3m
=
=
= m
c2 − c1 + 2
(m + 1)3 m3 + 2
3m2 + 3m + 3
Dieser Angriff ist ein aktuelles Beispiel und ist direkt auf die Verschlüsselung von Sequenznummern mit RSA anwendbar, Er enstand unter Mitwirkung von Don Coppersmith.
141
11 Kryptographie: Protokolle
11.1 Einleitung
Das folgende Kapitel Kryptographie- Protokolle“ beschäftigt sich mit den verschiedensten
”
Protokollen, die in der Kryptographie eine große Rolle spielen und stellt ihre Funktionsweise,
Stärken und Schwächen dar.
11.1.1 Protokoll
Bevor auf die verschiedenen Protokolle im Detail eingegangen wird, sollte zunächst der Begriff PProtokollërläutert werden:
Eine Basis sind immer zwei (oder mehrere) Instanzen oder Personen, die ein gemeinsames
Ziel verfolgen. Zu diesem Zweck müssen sie miteinander kommunizieren, was bestimmte Regeln voraussetzt. Diese Regeln können die Kommunikationspartner sich selbst geben oder
von außen übernehmen. Als Protokoll bezeichnet man dann die Vereinbarung zwischen den
Kommunikationspartnern über Art, Inhalt und Formatierung der ausgetauschten Nachrichten sowie über das Wechselspiel bei der Abwicklung eines Dialogs, also die Gesamtheit aller
Regeln.
11.1.2 Protokolle und Kryptographie
In der Kryptographie spielen Protokolle eine immer größer werdende Rolle. Dies liegt vor
allem daran, dass die Nachfrage nach hochwertigen Sicherheitsdienstleistungen immer mehr
zugenommen hat. Um diese Dienstleistungen wie z.B. die elektronische Geldbörse oder elektronische Verträge realisieren zu können, braucht man auch hochwertige kryptographische
Protokolle und beschränkt sich nicht mehr nur auf einfache Verfahren zur Verschlüsselung
oder Authentikation. Das Ziel ist also die Realisierung komplexer Anwendungen.
Ein weiterer Grund für die verstärkte Nachfrage nach kryptographischen Protokollen liegt
darin, dass die kryptographischen Dienste heutzutage auf große, offene Systeme wie z.B. das
Internet angewandt werden. Da solche offenen Systeme besonders anfällig für Manipulationsversuche oder Angriffe sind, bedarf es auch hier hochwertiger Sicherheitsvorkehrungen, die
über entsprechende Protokolle realisiert werden.
142
11.1.3 Anforderungen an ein Protokoll
Um die Protokolle sinnvoll einsetzen zu können müssen sie bestimmte Bedingungen erfüllen.
Dabei gibt es zwei Anforderungen, die von besonderer Wichtigkeit sind und auf welche die
im Folgenden vorgestellten Protokolle einzeln überprüft werden.
Durchführbarkeit Ein Protokoll muss immer das gewünschte Ergebnis liefern. Dies setzt
natürlich voraus, dass sich alle am Protokoll beteiligten Kommunikations- oder Kooperationspartner gemäß den Spezifikationen des Protokolls verhalten müssen.
Korrektheit Betrugsversuche können mit beliebig hoher Wahrscheinlichkeit erkannt werden.
Versucht beispielsweise eine am Protokoll beteiligte Partei oder ein Außenstehender in
irgendeiner Form zu betrügen, so kann dies erkannt und unterbunden werden.
11.2 Authentikationsverfahren
Protokolle haben vielerlei Anwendungsgebiete, z.B. dienen sie häufig der Authentikation (Authentisierung). Innerhalb der Authentikationsverfahren kann weiter unterschieden werden.
Häufig sind Protokolle zur Nachrichtenauthentikation vertreten. Diese finden Verwendung, wenn man beispielsweise den Ursprung einer Nachricht eindeutig erkenntlich machen
möchte. Im Alltag könnte man dies mit (z.B. Dienst-)Stempeln vergleichen. Nachrichtenauthentikation spielt aber auch dann eine Rolle, wenn man Änderungen erkennen möchte. Liegt
also z.B. ein Dokument mehrfach vor, kann mittels der Protokolle unterschieden werden, ob sie
identisch sind oder sich unterscheiden. Dies ist unter anderem interessant für Backupsysteme.
Ein zweites sehr großes und wichtiges Gebiet ist die Teilnehmerauthentikation. Hier werden Nachrichten zur Identifikation eines Teilnehmers gegenüber einer zentralen Stelle oder
einem anderen Teilnehmer ausgetauscht. Zur eindeutigen Formulierung wird im Folgenden
zwischen einem Teilnehmer unterschieden, der sich an einer zentralen Stelle authentisieren
möchte. Ein typisches Anwendungsbeispiel ist der Login“, dem man im Internet an verschie”
densten Stellen begegnet (E-Mails, Foren, Chat, ...). Im Folgenden werden mehrere Protokolle
zur Teilnehmerauthentikation vorgestellt.
11.2.1 Passwortverfahren (Festcodes)
Beim Passwortverfahren besitzt jeder Teilnehmer ein eigenes Geheimnis, das nur der Teilnehmer und die zentrale Stelle kennen (sollten). Zur Authentikation wird die Identität zusammen
mit dem Geheimnis übertragen. Die zentrale Stelle kann anschließend prüfen, ob die übertragenen Werte stimmig sind, d.h. ob zur übertragenen Identität tatsächlich das gesendete
Passwort gehört.
Diese Verfahren bergen mehrere Schwächen. Ein Teil dieser Schwächen und eventuelle
Lösungsansätze werden im Folgenden kurz beleuchtet.
Eine Schwäche liegt in der Menschlichkeit der Teilnehmer. Menschen neigen häufig dazu
143
Passwörter zu wählen, die man sich als Mensch leicht merken kann (z.B. Name des Freundes/der Freundin, usw.). Gerade diese Art von Passwörtern ist aber sehr unsicher, da sie
leicht zu erraten sind. Daher ist die Wahl eines sicheren Passwortes immer angebracht. Als
sicher gelten Passwörter, die möglichst lang und unsinnig sind, sowohl Klein- und Großbuchstaben, als auch Zahlen und Sonderzeichen enthalten.
Eine weitere Schwäche liegt in der zentralen Speicherung der Passwörter. Verschafft
sich jemand unerlaubten Zugriff auf die Passwortdateien eines Servers, kann er sich als jeder
Teilnehmer ausgeben, dessen Daten auf diesem Server gespeichert sind. Als Lösungsansatz
kann an dieser Stelle eine Einwegfunktion benutzt werden. Hierzu wird auf dem Server nicht
das Passwort x0 selber gespeichert, sondern der Funktionswert des Passwortes y0 = f (x0 ).
Findet ein Authentisierungsvorgang statt, bildet die zentrale Stelle erneut den Funktionswert
y = f (x), diesmal vom übertragenen Passwort x. Stimmen nun y und y0 überein, war die
Authentikation erfolgreich.
Eine dritte Schwäche ist die offene Übertragung, gepaart mit der namensgebenden Eigenschaft: Die Übertragung fester Nachrichten. Wird der offene Kanal von einem Betrüger
abgehört, kann er sich in Zukunft als der Teilnehmer ausgeben. Um dem entgegenzuwirken
sollten Passwörter möglichst regelmäßig geändert werden, um einen eventuellen Schadenszeitraum möglichst knapp zu halten. Optimal wäre ein Passwort, das sich mit jeder Sitzung
ändert. Diese Form zur sicheren Authentikation wurde bereits realisiert, z.B. in Form von
Transaktionsnummern (TANs). Allerdings kann dieses Verfahren bereits als Wechselcodeverfahren angesehen werden, welche im folgenden Kapitel behandelt werden.
Das Passwortverfahren ist durchführbar, weil jedem Teilnehmer natürlich sein privates
Passwort bekannt ist, bzw. sein sollte. Somit kann er mühelos die Authentikationsnachricht
generieren.
Solange der Teilnehmer sein Passwort wirklich geheim hält, ist das Verfahren auch korrekt,
da ein Betrüger nur die Möglichkeit hätte, das Passwort zu erraten. Die Wahrscheinlichkeit,
dass er das richtige Passwort auf diese Weise herausfindet, ist bei einem gut gewählten Passwort aber verschwindend gering.
11.2.2 Wechselcodes
Das Ziel der Wechselcodes sind möglichst variable Nachrichten, obwohl wie bei den Festcodes ein festes Geheimnis benutzt wird. Die Lösung ist ein variabler Wert, der mit dem
weiterhin statischen Geheimnis zu einem Code verrechnet wird. Dieser Code hat somit für
jeden Authentikationsvorgang ein anderes Erscheinungsbild und kann also zusammen mit
der Identität an die zentrale Stelle gesendet werden. Diese kennt ebenfalls sowohl das feste
Geheimnis des Teilnehmers als auch den variablen Wert und kann zur Überprüfung des Codes die Berechnung wiederholen. Ein Betrüger könnte die offene Leitung in diesem Fall zwar
abhören, könnte aus dem Code aber nicht auf seine Eingangsfaktoren, das statische Geheimnis und den variablen Wert, zurückschließen. Somit kann der Betrüger auch keinen validen
Code für die nächste Authentisierung generieren.
Zur Implementierung gibt es mehrere Möglichkeiten für den variablen Wert. Ein Beispiel
wäre eine Zählvariable, deren Initialwert einmalig zwischen Teilnehmer und zentraler Stelle
144
vereinbart wird. Als Alternative kann ein Zeitstempel verwendet werden, wobei die Nachricht
dann verständlicherweise nur sehr kurze Zeit gültig sein darf.
In dieser Form sind die Wechselcodeverfahren durchführbar, da nur den beiden Parteien
der aktuelle Schlüssel und Zählerstand bekannt ist. Korrekt ist es ebenfalls, da das Bilden
des Codes ohne Kenntnis beider Informationen nahezu unmöglich ist.
Eine weitere Möglichkeit der Implementation bietet noch einen ganz anderen Vorteil: Der zentralen Stelle muss das Geheimnis des Teilnehmers in diesem Fall nicht bekannt sein. Hierfür
wählt der Teilnehmer beliebig einen Startwert z0 , eine obere Grenze n und eine Einwegfunktion f aus. Zur Berechnung von z1 bis zn wertet der Teilnehmer nun rekursiv die Funktion
zi+1 = f (zi ) für i = 0,...,n − 1 aus. Den Wert zn sendet er zur Initialisierung an die zentrale
Stelle. Auch die Funktion f muss der zentralen Stelle bekannt gemacht werden. Möchte sich
der Teilnehmer beim nächsten Vorgang authentisieren, sendet er zu seiner Identität den Wert
zn−1 . Diesen kann die zentrale Stelle prüfen, da gilt: f (zn−1 ) = zn . Durch die Einwegeigenschaft der Funktion f kann an dieser Stelle nicht von einem Code zi auf seinen Vorgänger zi−1
geschlossen werden, weder durch die zentrale Stelle noch durch einen Angreifer. Allerdings
funktioniert dies natürlich nur bis alle Werte zi aufgebraucht sind, also n mal. Anschließend
müssen neue Werte berechnet werden.
In dieser Form sind Wechselcodes korrekt, da f aufgrund der Einwegeigenschaft von niemandem umgekehrt werden kann. Dies kann der Teilnehmer zwar auch nicht, er kann aber alle
Werte neu berechnen, da ihm z0 bekannt ist. Aufgrund dieser Eigenschaft ist das Protokoll
auch durchführbar.
11.2.3 Challenge and Response
Bisher wurden sogenannte unidirektionale Verfahren vorgestellt. Der Name entspringt
dem einseitigen Informationsfluss, da die zentrale Stelle dem Teilnehmer gegenüber maximal
noch eine Antwortnachricht mit der Bestätigung, bzw. Ablehnung sendet. Diese Eigenschaft
kann als Nachteil betrachtet werden, da die Nachrichten zumindest aus Teilnehmersicht vorhersagbar sind.
Diese Schwäche wird nun beseitigt durch das bidirektionale Protokoll Challenge and Response. Dieses regelt die Authentifizierung, indem die zentrale Stelle dem Teilnehmer eine
unvorhersehbare Frage stellt, die der Teilnehmer innerhalb eines bestimmten Zeitraumes beantworten muss. Hier nimmt die zentrale Stelle also eine aktive Rolle ein und bewirkt so den
Informationsfluss in beide Richtungen.
Zur Verdeutlichung wird ein Beispiel aus dem alltäglichen Leben dargestellt: Der Teilnehmer verliert seine Jacke und möchte nun im Fundbüro (zentrale Stelle) diese wieder abholen,
falls sie gefunden wurde. Um sicher zu gehen, dass die Jacke wirklich dem Teilnehmer gehört,
fordert das Fundbüro den Teilnehmer auf, die Jacke zu beschreiben, bzw. besondere Merkmale zu nennen. Diese Aufforderung entspricht der Challenge. Passt die Beschreibung des
Teilnehmers (Response) auf keine der Jacken, ist die gesuchte Jacke entweder nicht gefunden
worden oder der Teilnehmer versucht sich mit illegalen Mitteln eine Jacke anzueignen, die
ihm gar nicht gehört.
145
Technische Realisierungen sind vielfältig vorhanden. In einer Beispielimplementation ist
beiden Kommunikationspartnern ein gemeinsamer Schlüssel k und eine Einwegfunktion f
bekannt.
1. Als Challenge dient eine Zufallszahl RAN D, gewählt von der zentralen Stelle. Diese
sendet sie an den Teilnehmer.
2. Der Teilnehmer berechnet mittels der Zufallszahl und des Schlüssels k eine Antwort
RES = fk (RAN D) und sendet diese zurück an die zentrale Stelle.
3. Diese kann dieselbe Berechnung durchführen und muss nur noch den selbst berechneten
Wert mit RES vergleichen.
In der Folgenden Abbildung ist das Verfahren graphisch dargestellt.
Abbildung 11.1: Challenge and Response
In einer anderen Implementierung werden die Werte RES und RAN D vertauscht. Als
Challenge wird also ein Wert übergeben, der von einer Zufallszahl abhängt, die wiederum
als Antwort erwartet wird. Dieses Vorgehen setzt aber einen sehr starken Zufallsgenerator
voraus, da sich ein Angreifer sonst die Mühe sparen könnte RES zu entschlüsseln und den
Wert für RAN D einfach errät. Daher ist die zuerst genannte Methode dieser vorzuziehen.
Das Protokoll Challenge and Response ist korrekt, da der Betrüger im Alltagsbeispiel keine
Jacke stehlen könnte.
Es ist auch durchführbar, da der Besitzer der Jacke diese wahrscheinlich gut beschreiben
kann oder bestenfalls noch weitere Dinge gefunden werden, die dem Teilnehmer zugeordnet
werden können, z.B. das Portemonnaie in der Jackentasche.
146
11.3 Diskrete Exponentialfunktion
Eine Einwegfunktion ist eine Funktion, die leicht zu berechnen ist, deren Umkehrfunktion
hingegen sehr schwer auszuwerten ist.
Die diskrete Exponentialfunktion ist eine besonders wirksame Einwegfunktion, weil sie nicht
nur unstetig ist, sondern die Funktionswerte nahezu beliebige Sprünge machen (siehe Abbildung 11.2). Daher ist sie ist besonders gut für die Realisierung von Verschlüsselungs- oder
Signaturverfahren geeignet.
Die Diskrete Exponentialfunktion ist für eine Primzahl p und eine natürliche Zahl g mit
g ≤ p − 1 wie folgt definiert:
f (k) := gk modp(1 ≤ k ≤ p − 1)
Selbst für große Zahlen ist die Funktion verhältnismäßig leicht auszuwerten, z.B. mit dem
Verfahren Square and multiply“. Hierbei wird gk faktorisiert, sodass man nur noch qua”
drieren und multiplizieren muss.
Hier ein kleines Beispiel:
k = 10
gk = g10 = ((g2 )2 )2 ∗ g2
Für diesen Fall müssen nur viermal Zahlen quadriert und einmal multipliziert werden.
Für ein beliebiges k benötigt Square and Multiply“ maximal 2 ∗ log2 (k) Multiplikationen.
”
Der diskrete Logarithmus ist die Umkehrfunktion zur diskreten Exponentialfunktion und
wird wie folgt beschrieben:
dlg (gk ) = k
Das Problem des diskreten Logarithmus wird folglich so beschrieben:
Gegeben seien p, g, y, dann ist k so zu bestimmen, dass gilt: y = gk mod p
Aufgrund der Unstetigkeit der diskreten Exponentialfunktion ist der diskrete Logarithmus sehr schwer zu berechnen. Zwar gibt es einige Verfahren, die das Problem des diskreten Logarithmus lösen, allerdings sind diese nicht effizient. Als eines der besseren Verfahren
wäre
der
Baby-Step-Giant-Step“-Algorithmus zu nennen, der aber bei Zahlen mit etwa einer
”
Länge von 1000 Bit ca. 2500 ≈ 10150 Operationen verlangt. Zum Vergleich: Die Berechnung
von gk benötigt gerade mal ca. 2000 Multiplikationen.
147
Abbildung 11.2: Graph zu y = 7x mod 229
11.4 Public-Key-Protokolle
Der Sinn von Verschlüsselungsverfahren mit öffentlichem Schlüssel besteht darin, das Sicherheitsrisiko beim gegenseitigen Austausch von Schlüsseln zu minimieren.
Public-Key Kryptographie basiert auf einem mathematischen Verfahren, bei dem ein Schlüsselpaar aus einem geheimen Schlüssel (Private Key) und einem dazugehörigen öffentlichen
Schlüssel (Public Key) erzeugt wird. Mit dem Public Key verschlüsselte Nachrichten können
nur mit dem dazugehörigen Private Key entschlüsselt werden. Hat jemand nur den Public
Key, so kann er nur verschlüsseln, nicht aber entschlüsseln.
Daher können die Public Keys problemlos auf unsicheren Kanälen (z.B. per Email) ausgetauscht werden.
11.4.1 Diffie-Hellman-Schlüsselvereinbarung
Motivation: Da die klassische Kryptographie erst dann funktioniert, wenn die Teilnehmer einen geheimen Schlüssel ausgetauscht haben, führt also kein Weg daran vorbei, dass
zur Kommunikation benötigte Geheimnisse kryptographisch ungesichert ausgetaucht werden müssen. Um trotzdem die Sicherheit gewährleisten zu können, erfolgt der Austausch
der Geheimnisse in der klassischen Kryptographie über einen (geheimen) Kanal (technisch:
abhörsichere Übertragung, organisatorisch: Überbringung durch Boten). In der modernen
Kryptographie versucht man im Gegensatz zur klassischen Kryptographie einen geheimen
Schlüssel über öffentliche Kanäle zu vereinbaren. Man möchte also die Nutzung von geheimen Kanälen vermeiden.
Verdeutlichen kann man sich dies an folgendem vereinfachten Beispiel:
Betrachtet man das Geschehen an einer Börse, so zeigt sich, dass es für einen Börsenmakler von Bedeutung ist, die Angebote der Konkurrenten zu kennen, er möchte jedoch seine
eigenen Pläne geheim halten. Allerdings kann es auch zu der Situation kommen, dass zwei
148
Börsenmakler spontan zusammenarbeiten müssen. Sie haben also keine Möglichkeit vorher
einen geheimen Schlüssel zu vereinbaren. Damit diese Zusammenarbeit funktioniert, müssen
sie jedoch in der Lage sein, so miteinander kommunizieren zu können, dass die Kollegen ihre
Unterhaltungen nicht deuten können. Es ist also notwendig, dass sie eine offene Unterhaltung
führen können, beide das gleiche Geheimnis kennen und ihr Geheimnis nicht von den neugierigen Kollegen erraten werden kann. Um dieses Problem lösen zu können, greift man auf das
Diffie-Hellman-Verfahren zur Schlüsselvereinbarung zurück. Es ist ein Austauschverfahren,
bei dem die Teilnehmer auf öffentlichem Wege einen geheimen Schlüssel vereinbaren.
Die Diffie-Hellman-Schlüsselvereinbarung gilt als der erste Public-Key-Algorithmus.
Veröffentlicht wurde sie 1976 von W. Diffie und M. Hellman.
Whitfield Diffie wurde 1944 geboren und schloss 1965 sein Studium für Mathematik am MIT
ab. Er gilt noch heute als Experte für Kryptographie und arbeitet derzeit bei Sun Microsystems.
Martin Hellman wurde 1945 geboren und beendete 1966 sein Studium an der Universtät zu
New York. Anschließend erlangte er die Professur für Electrical Engineering“ an der Stand”
ford University, wo er auch noch heute tätig ist.
Funktionsweise des Algorithmus: Ziel des Diffie-Hellman-Verfahrens ist es also, dass
mehrere Personen über ein unsicheres Medium (z.B. eine Kabel- oder Funkleitung) verschlüsselt kommunizieren können. Dazu brauchen sie jedoch einen geheimen Schlüssel, an
den sie mittels des Diffie-Hellman-Schlüsselaustauschs gelangen. Realisiert wird das Protokoll folgendermaßen:
1. Zunächst einigen sich die Kommunikationspartner auf eine möglichst große Primzahl
p und eine natürliche Zahl g mit g ≤ p − 1. Da diese beiden Parameter nicht geheim
bleiben müssen, können sie über ein unsicheres Medium übertragen werden. In dem o.g.
Beispiel mit der Börse bedeutet dies, dass sich die beiden Börsenmakler diese beiden
Werte zuschreien können und die anderen Personen sie hören dürfen.
2. Im nächsten Schritt erzeugen sich die Kommunikationspartner jeweils einen geheimen
Wert. So wählt Teilnehmer A z.B. die Zahl a und B die Zahl b. Da a und b nicht übertragen werden, bleiben sie also der jeweils anderen Partei und allen Nichtteilnehmern
verborgen.
3. Die beiden Kommunikationspartner berechnen die Werte α = ga mod p bzw. β =
gb mod p. Diese beiden Werte werden dann untereinander ausgetauscht, also auf öffentlichem Weg übertragen.
4. Zum Schluss berechnen A und B aus den erhaltenen Werten k = β a mod p bzw.
k = αb mod p. Das errechnete Ergebnis ist für beide Partner gleich und kann daher
als Schlüssel für die weiter Kommunikation verwendet werden.
149
Abbildung 11.3: Diffie-Hellman-Schlüsselvereinbarung
Beispiel:
1. p = 13 und g = 2
2. Person A wählt a = 5 und Person B wählt b = 7
3. A berechnet α = 25 mod 13 = 6 und sendet α an B
B berechnet β = 27 mod 13 = 11 und sendet β an A
4. A berechnet k = 115 mod 13 = 7.
B berechnet k = 67 mod 13 = 7.
Beide erhalten also den gleichen Wert k, den sie nun als Schlüssel verwenden können.
Betrachtet man nun das Diffie-Hellman-Protokoll im Hinblick auf die zwei in der Einleitung vorgestellten Anforderungen, so wird deutlich, dass beide erfüllt sind. Das Protokoll ist
durchführbar, weil A und B einen gemeinsamen Wert k erhalten.
k = β a mod p = (gb )a mod p = (ga )b mod p = αb mod p = k
Es ist auch korrekt, weil der gemeinsame Wert k geheim ist, ihn also nur die beiden
Kommunikationspartner A und B kennen. Zwar kann ein Außenstehender durch Abhören
der Unterhaltung die Werte p, g, α und β erfahren, allerdings kann er aus diesen Information
nur sehr schwer auf den Schlüssel k schließen. Dazu müsste er in der Lage sein den diskreten
Algorithmus von α zur Basis g berechnen zu können. Es wird also deutlich, dass die Sicherheit
des Diffie-Hellman Protokolls eng mit der Berechnung des diskreten Logarithmus modulo p
zusammenhängt.
Gegen einen Man in the MiddleAngriff“ ist auch das Diffie-Hellman-Verfahren macht”
los. Hierbei geht man von der Situation aus, dass sich unbemerkt ein Dritter in die Kommunikation eingeschlichen hat und die Nachrichten in beide Richtungen abfangen kann, während
A und B im Glauben sind, sie würden sich nur untereinander unterhalten. Wie in Abbildung 11.4 zu sehen ist, generiert sich M (der Angreifer) einen eigenen privaten Schlüssel ω
und führt mit beiden Teilnehmern A und B eine eigene Schlüsselvereinbarung durch. Somit
existieren zwei unabhängige Schlüssel kA und kB , die beide in Besitz des Angreifers sind.
Somit hat er in der folgenden Kommunikation die Möglichkeit, geheime Nachrichten zu lesen
und sogar zu verändern, obwohl die Leitung für die Kommunikationspartner A und B sicher
zu sein scheint. Um einen solchen Angriff auszuschließen, können z.B. Signaturen verwendet
werden.
150
Abbildung 11.4: “Man in the middle“-Angriff
11.4.2 ElGamal-Verschlüsselungsverfahren
Taher ElGamal, geb 1956 in Ägypten, erreichte seinen Abschluss in Computerwissenschaften ebenfalls an der Stanford-Universität. Er leitet eine Firma, die sich mit Computersicherheit befasst und ist Mitglied verschiedener Aufsichtsräte. Er ist Begründer des ElGamalKryptosystems, das das ElGamal-Verschlüsselungsverfahren sowie die ElGamal-Signatur beinhaltet.
Bei dem ElGamal - Verschlüsselungsverfahren handelt es sich um einen asymmetrischen
Verschlüsselungsalgorithmus, den man durch leichte Variation des Diffie-Hellman Verfahrens erhält. ElGamal beruht also wie Diffie-Hellman auf dem Problem des diskreten Logarithmus. Genau wie bei Diffie-Hellman verwendet auch ElGamal einen öffentlichen Schlüssel,
der später zur Verschlüsselung dient, und einen geheimen Schlüssel, der nur dem Empfänger
der Nachricht bekannt sein darf.
Die ElGamal-Verschlüsselung funktioniert folgendermaßen:
1. Zunächst benötigt man wie beim Diffie-Hellman Verfahren wieder eine möglichst große
Primzahl p und eine natürliche Zahl g. Beide Werte sind öffentlich, dürfen also anderen
Personen bekannt sein
2. Jeder Teilnehmer, der eine Nachricht empfangen will, wählt sich seinen privaten Schlüssel,
eine natürliche Zahl t, und berechnet mit Hilfe dieser Zahl τ := gt mod p. τ verwendet
der Teilnehmer nun als seinen persönlichen, öffentlichen Schlüssel. Wer T eine Nachricht
senden möchte, muss τ kennen, aber auch anderen Personen darf der Schlüssel bekannt
sein.
3. Will nun Person A dem Teilnehmer eine Nachricht schicken, bringt er zunächst den
öffentlichen Schlüssel τ des Teilnehmers in Erfahrung. Desweiteren wählt er zufällig
151
eine natürliche Zahl a und berechnet die folgenden beiden Werte: α = ga mod p und
k = τ a mod p Nun kann er mit Hilfe eines symmetrischen Algorithmus f , der beiden
Seiten bekannt ist, und mit dem Schlüssel k die Nachricht m verschlüsseln und das
Ergebnis c := f (k, m) zusammen mit α an den Teilnehmer schicken.
4. Nun kann der Teilnehmer α mit seinem geheimen Schlüssel t potenzieren (k = αt mod p)
und die empfangene Nachricht c mit dem berechneten k entschlüsseln: m = f −1 (k, c).
Dadurch erhält er die ursprüngliche Nachricht m.
Abbildung 11.5: ElGamal-Verschlüsselung
Ein wesentlicher Unterschied zum Diffie-Hellman-Protokoll besteht darin, dass das Senden
der Schlüssel bei ElGamal zeitlich entkoppelt geschieht. Hier wird der öffentliche Schlüssel
τ einmal erzeugt und nie verändert. Wenn nun jemand eine Nachricht senden will, bringt
der Sender den öffentlichen Schlüssel τ des Empfängers in Erfahrung und kann damit die
Nachricht verschlüsseln. Im Vergleich dazu wird bei Diffie-Hellman der Wert β jedes Mal neu
erzeugt und dann praktisch zeitgleich mit α übermittelt.
Durch die enge Verwandschaft mit der Diffie-Hellman-Schlüsselvereinbarung ist dieses Verfahren aus denselben Gründen durchführbar und korrekt.
11.4.3 ElGamal-Signatur
Im Gegensatz zum RSA-Verfahren wird beim ElGamal - Signaturverfahren eine Nachricht
durch eine komplexere Operation ver- und entschlüsselt. Dadurch kann man aus der Signatur
nicht mehr auf die Nachricht zurückschließen.
Das Verfahren funktioniert folgendermaßen:
152
1. Wie beim ElGamal - Verschlüsselungsverfahren werden wieder ein privater Schlüssel t
und der damit zu berechnende Schlüssel τ := gt mod p benötigt, wobei p wieder eine
möglichst große Primzahl und g eine natürliche Zahl darstellt.
2. Erzeugung der Unterschrift für eine Nachricht m durch den Teilnehmer T: Wahl einer
zu p − 1 teilerfremden Zahl r und Berechnung von: k = gr mod p
3. Danach berechnet der Teilnehmer eine Lösung s der Kongruenz:
t · k + r · s ≡ m mod (p − 1)
Berechnen lässt sich diese Lösung z.B. indem T mit Hilfe des erweiterten euklidischen
Algorithmus das multiplikative Inverse r ′ zu r mod (p − 1) berechnet und dann
s = ((m − t · k) · r ′ ) mod (p − 1) bestimmt. Die digitale Unterschrift der Nachricht
m besteht nun aus dem Paar (k, s) und kann nun verschickt werden.
4. Der Empfänger der Nachricht (m, (k, s)) prüft nun die Nachricht. Wenn die beiden
Werte gm mod p und τ k · ks identisch sind, ist die Signatur gültig.
Abbildung 11.6: ElGamal-Signatur
Die Signatur ist durchführbar, weil nach dem Satz von Fermat für jedes korrekt signierte
Dokument gilt:
gm ≡ gt·k+r·s ≡ τ k · ks (mod p)
Aufgrund der hohen Sicherheit der diskreten Exponentialfunktion ist dieses Verfahren korrekt. Tatsächlich ist bis heute noch kein effizienter Angriff auf dieses Verfahren gefunden
worden.
153
Es existieren viele Varianten des ElGamal - Signaturverfahrens. Eine besonders effiziente
Variante namens Digital Signature Standard“ gilt in den USA als Norm für die Erzeugung
”
digitaler Unterschriften.
11.4.4 Blinde Signaturen
In den meisten Fällen ist dem Unterschreibenden der Inhalt des vorliegenden Dokumentes
bekannt. Es gibt aber auch Anwendungen, in denen dies entweder nicht gewünscht ist oder
bei denen es sogar notwendig ist, dass eine Person oder Instanz nicht wissen darf, was sie
unterschreibt. Deutlich wird dies an folgenden beiden Beispiele:
• Will eine Person z.B. bei einer Bank einen gewissen Geldbetrag abheben um sich z.B.
ein neues Auto kaufen zu können, so muss die Bank durch eine Signatur bestätigen, dass
das Geld zur Verfügung steht. Allerdings darf sie dabei nicht wissen, welchem Zweck
das Geld dienen soll.
• (Elektronische) Wahlen: Nimmt eine Person beispielsweise an einer Wahl teil, so muss
sie eine Bestätigung erhalten, dass sie an der Wahl teilgenommen hat. Allerdings darf
derjenige, der diese Bestätigung bzw. Signatur vornimmt, nicht wissen, was die Person
genau gewählt hat.
Ein Verfahren zur Erzeugung blinder Signaturen muss also gewährleisten, dass eine Person
A einem Unterzeichner B ein Dokument vorlegen kann, wobei
• B die Nachricht nicht sehen darf
• A eine gültige Unterschrift von B erhält
Mit Hilfe des RSA-Verfahrens kann man die blinden Signaturen realisieren. In folgendem
Szenario soll das Dokument m von B für A unterschrieben werden:
1. A wählt eine möglichst große Primzahl p und bildet x = mr·e mod p , wobei e der
öffentliche Schlüssel von B ist. Danach sendet er x an B.
2. B unterschreibt den erhaltenen Wert indem er y = xd mod p berechnet, wobei d sein
geheimer, zu e passender Schlüssel ist. Anschließend sendet er y an A.
′
3. A bildet nun mit Hilfe des erhaltenen Wertes y r = md . Dadurch erhält er die unterschriebene Nachricht.
Das Dokument m wurde mit der Zufallszahl r e verschlüsselt und B kann deshalb nicht von
x auf m schließen.
11.5 Shamirs No-Key-Protokoll
Alle bisher erläuterten Verfahren setzen voraus, dass sich beide Seiten in irgendeiner Form auf
einen (teilweise gemeinsamen) Schlüssel geeinigt haben. Das No-Key-Protokoll von Shamir
154
ermöglicht eine Kommunikation ohne diese Bedingung zu fordern. Möglich wird dies durch
das mehrfache symmetrische Verschlüsseln einer Nachricht.
Zunächst wird der Ablauf ohne technische Details erläutert. Ein Teilnehmer A verschlüsselt
eine Nachricht mit seinem geheimen Schlüssel a und sendet sie an einen Teilnehmer B. Dieser kann die Nachricht zwar nicht entschlüsseln, sie aber mit seinem eigenen Schlüssel b ein
zweites Mal verschlüsseln und zurücksenden. A entfernt nun seinen Schlüssel. Damit kann A
die Nachricht allerdings nicht lesen, da sie noch immer mit b verschlüsselt ist. Diese sendet
A wiederum an den Teilnehmer B, der die Nachricht nun endgültig entschlüsseln und die
ursprüngliche Nachricht lesen kann.
Technische Realisierung:
1. Beide Kommunikationspartner einigen sich zunächst auf eine möglichst große Primzahl
p. Beide Teilnehmer wählen sich nun jeweils zwei Zahlen, für die gilt: a · a′ ≡ 1 mod (p −
1), bzw. b · b′ ≡ 1 mod (p − 1).
′
′
Daraus ergibt sich: s = sa·a mod p und s = sb·b mod p.
2. Der Teilnehmer A verschlüsselt seine Nachricht s mittels der diskreten Exponentialfunktion, also x = sa mod p. Die verschlüsselte Nachricht geht an B.
3. Teilnehmer B verwendet wiederum die diskrete Exponentialfunktion, um die bereits
von A verschlüsselte Nachricht zusätzlich mit seinem privaten Schlüssel b zu versehen:
y = xb mod p.
4. A erhält y, das er mittels des vorher berechneten multiplikativen Inversen wieder von
′
seinem eigenen Schlüssel befreien kann: z = y a mod p.
5. Die Nachricht z wird als Letzte übertragen und am Schluss von B mittels b′ endgültig
entschlüsselt:
′
′
′
′
′
z b mod p = sa·b·a ·b mod p = (sa·a )b·b mod p = s
Wie an dieser Gleichung zu erkennen ist, dient die diskrete Exponentialfunktion hier als
symmetrische Verschlüsselung, was allgemein bedeutet:
fa (fb (x)) = fb (fa (x))
Dies bedeutet aber auch, dass dieses Verfahren maximal so sicher ist wie das Problem des
diskreten Logarithmus. Könnte man diesen also in kurzer Zeit berechnen, kann man beispielsweise auch schnell von x auf s rückschließen.
Die einzige Voraussetzung für beide Parteien ist die Einigung auf die Primzahl p, die durchaus öffentlich sein darf. Jeder Teilnehmer kann sein privates Schlüsselpaar bilden, was dieses
Verfahren durchführbar macht. Es ist auch so lange korrekt wie die Berechnung des diskreten Logarithmus noch so zeitaufwendig ist wie oben erklärt wurde.
Der Entwickler dieses Protokolls ist Adi Shamir, geb. 1952 in Tel-Aviv. Den Master of Science
155
Abbildung 11.7: Shamirs No-Key-Protokoll
sowie den Doktortitel erreichte er am Weizmann-Institut für Wissenschaften, die Professur
erlangte er am MIT. Er hat neben diesem Protokoll viele weitere Dienste vor allem für den
Bereich der Kryptographie geleistet, z.B. war er einer der Erfinder des RSA-Kryptosystems.
2002 wurde er für seine Leistungen mit dem Turing-Award ausgezeichnet.
11.6 Knobeln über Telefon
Ein letztes Protokoll soll an dieser Stelle ganz ohne Hinweise auf eine mögliche technische
Realisierung auskommen. Man stelle sich folgendes Problem vor: Zwei Personen A und B
wollen etwas über das Telefon ausknobeln. Sie wollen über das bekannte Spiel Schere - Stein
”
- Papier“ den Gewinner ermitteln. Da sich die Parteien auf ein Element einer vorgegebenen
Menge festlegen müssen, wird hier von (Bit-)Commitment-Techniken gesprochen. Nun ergibt sich folgende Problematik: Da sich dich die Teilnehmer nicht sehen können, können sie
auch nicht prüfen, welches Handzeichen der jeweils andere gerade vorzeigt. Ein gleichzeitiges Aufsagen des eigenen Handzeichens ist ebenfalls nicht möglich, da sich die Teilnehmer
dann nicht verstehen würden. Also müssen sie nacheinander ihre Entscheidung kundgeben.
Dies hat natürlich den gravierenden Nachteil, dass beispielsweise B seine Entscheidung noch
ändern kann, da er nun schon weiß, was A gewählt hat. An dieser Stelle sei erwähnt, dass die
Art und Weise des Knobelns hier eine untergeordnete Rolle spielt. Also wären Knobelarten
wie der Münzwurf ebenfalls anwendbar, da alle Möglichkeiten dieselben Probleme aufweisen
und auf dieses Beispiel übertragbar sind.
Als Lösung können sich die Kommunikationspartner in obigem Beispiel auf drei nichtisomorphe Graphen einigen, die die jeweilige Entscheidung repräsentieren, also hier die
Elemente Schere“, Stein“, Papier“. In Abbildung 11.8 sind drei Beispielgraphen darge”
”
”
stellt, allerdings sind diese zu klein. Die Graphen sollten möglichst umfangreich sein, um mit
bloßem Auge keine Chance zu haben, eine Permutation zu erkennen.
156
Sobald der Teilnehmer A sich entschieden hat, permutiert er den zugehörigen Graphen auf
beliebige Weise und lässt B diesen zukommen. B könnte nur mit erheblichem Aufwand herausfinden, zu welchem der Ausgangsgraphen die Permutation isomorph ist. Dafür hat B aber
nicht genug Zeit, also muss er seine Entscheidung ebenfalls willkürlich treffen und A mitteilen. Abschließend kann A seine Entscheidung auflösen und die Permutation nachvollziehbar
rekonstruieren.
157
Abbildung 11.8: 3 Beispielgraphen für Knobeln über Telefon
An dieser Stelle kann A nicht mogeln, da nur einer der Graphen zu dem übertragenen Ergebnis führen kann, daher ist das Verfahren als korrekt zu betrachten. Es ist auch durchführbar, da die Graphen vorher durch beide Parteien vereinbart wurden und daher nur diese
gültig sind.
158
12 Zero-Knowledge-Verfahren
Zero-Knowledge-Verfahren ist ein relativ neuer Begriff aus der Krytographie. Hinter dem
Begriff verbirgt sich ein Modell für Authentifizierungsverfahren. Aber um zu verstehen, wie
ein solches Zero-Knowledge-Verfahren arbeitet und funktioniert, sollte man zuerst eine andere
Art des mathematischen Beweises kennenlernen, den interaktiven Beweis. Über diesen kommt
man schließlich, über den Begriff der Zero-Knowledge-Eigenschaft, zu den Zero-KnowledgeVerfahren. Und genau so werden wir in diesem Kapitel versuchen einen Einstieg in dieses
Thema zu geben. Zunächst werden wir auf interaktive Beweise eingehen, um von dort auf
die Zero-Knowledge-Eigenschaft und schließlich auf Verfahren, die diese Eigenschaft besitzen
einzugehen. Am Ende werden dann noch Erweiterungen und weitere Eigenschaften von ZeroKnowledge-Verfahren beschrieben.
12.1 Interaktive Beweise
Beweise in der Mathematik sind normalerweise logisch lückenlose Argumentationsketten, mit
denen man Objekte, meist Definitionen, Sätze oder Lemmata verknüpft. Dazu wird für eine
Aussage, die bewiesen werden soll, versucht diese entweder aus Axiomen oder schon zuvor bewiesenen Sätzen, Lemmata oder Definitionen herzuleiten. Der Beweis ist dann, sofern
verständlich notiert, für jeden nachvollziehbar, dem die zugrundeliegenden Axiome, Sätze,
Lemmata oder Definitionen bekannt sind. Im folgenden wird die Nachvollziehbarkeit an der
sogenannten pq-Formel“ dargestellt:
”
q
p
2
pq-Formel 1 Die Gleichung x + px + q = 0 hat die Lösungen x1,2 = − 2 ± ( p2 )2 − q
Um diese Behauptung zu beweisen (nicht sie herzuleiten!), muss man nur x1 und x2 einzeln
in die Formel x2 + px + q = 0 einsetzen und überprüfen, ob das Ergebnis 0 ist. Für x1 wird
dies nun gezeigt, für x2 verhält sich der Beweis analog:
Beweis 37 (Beweis für x1 der pq-Formel) x21 + px + q =
q
2
q
− p2 + ( p2 )2 − q + p · − p2 ± ( p2 )2 − q + q
q
2
q
= p2 )2 − p · ( p2 )2 − q + p2 )2 − q + − p2 ± ( p2 )2 − q + q
q
q
2
= ( p2 )2 + ( p2 )2 + p2 + (−p · ( p2 )2 − q + p · ( p2 )2 − q) + (−q + q)
=0
Wie zu sehen ist, liefert das Einsetzen das gewünschte Ergebnis. Wodurch die Behauptung
gezeigt ist, da weder spezielle Zahlen verwendet wurden, noch an irgendeiner Stelle geschum”
melt“ wurde (z.B. durch absichtlich falsches Rechnen). Ausserdem wurden zum Beweis nur
die schon bewiesenen Grundrechenregeln herangezogen (Addition, Subtraktion, Multiplikation und Division).
159
12.1.1 Cardanosche Formeln
In der Einleitung wurde die in der Mathematik übliche Beweismethode vorgestellt. Auch
wenn es oft so aussieht, als sei dies die einzige Möglichkeit Beweise durchzuführen, so gibt es
in der Geschichte der Mathematik des 16. Jahrhunderts eine Begebenheit, die zeigt, dass es
auch anders möglich ist, Behauptungen in der Mathematik zu beweisen.
Zu Beginn des 16. Jahrhunderts fand der Mathematiker Scipione Del Ferro ein Lösungsverfahren für kubische Gleichungen der Form x3 + ax = b, welches er erst auf dem Sterbebett
an seinen Schüler Antonio Maria Fior weitergab. 1535 kam es zwischen Fior und einem venezianischen Mathematiker namens Nicòlo Fontana, genannt Tartaglia (ital. der Stotterer), zu
einem Disput darüber, wer zuerst in der Lage gewesen sei, kubische Gleichungen zu lösen. Da
es zu dieser Zeit keine veröffentlichte Lösungsformel zu diesem Problem gab und gemeinhin
kubische Gleichungen aller Art als unlösbar galten, war dies eine wichtige Frage. Tartaglia
hatte nun gegenüber Fior einen entscheidenen Vorteil, er kannte nicht nur die Formel zur
Lösung kubischer Gleichungen obriger Art, sondern auch die Lösungsformel für Gleichungen
der Art x3 + ax2 = b.
Abbildung 12.1: Niccolo Tartaglia“ Fontana (1499-1557)
”
Der folgende Wettstreit sollte nun dadurch entschieden werden, dass beide Kontrahenten je 30 Probleme verfassten und dem jeweils anderen diese zur Lösung vorlegten. Da Fior
überzeugt war, dass Tartaglia seine Art der kubischen Gleichungen nicht lösen könne, legte
er diesem 30 Gleichungen seiner Art vor. Diese konnte Tartaglia ohne Probleme lösen. Da
er seinerseits aber Fior sehr verschiedenartige Probleme vorlegte, die dieser kaum oder gar
nicht lösen konnte, gewann er den Wettstreit. wenn auch das sicherlich nicht die Frage nach
der Zeit des Entdeckens der Lösung offenbarte, war Fior dadurch in den Augen der akademischen Welt diskreditiert. Seine Formel veröffentlichte Tartaglia danach nicht, so dass bis
zur Veröffentlichung der so genannten Cardano-Tartaglia-Formel durch Gerolamo Cardano 1
keine Lösung für kubische Formeln bekannt war. Für weitere Hintergrundinformationen zu
diesem Thema empfehlen wir das Studium der angegebenen Quellen und weiterer Literatur.
Für unser Thema ist dieser Wettstreit aus einem anderen Blickwinkel viel interessanter:
1
Die Angaben über den Verlauf des Wettstreites und die Art der Veröffentlichung der Cardano-TartagliaFormel widersprechen sich je nach Quelle (Quellen: 1-3)
160
Während des Wettstreites konnte zwar gezeigt werden, dass Tartaglia in der Lage war kubische Gleichungen der Form x3 + ax = b zu lösen. Dennoch konnte anhand des Wettstreites
niemand auf die dazu verwendete Formel schließen. Somit wurde bewiesen, dass eine Formel
existiert, die bestimmte kubische Gleichungen löst, ohne dass diese bekannt wurde. Diese Art
eines Beweises unterscheidet sich grundlegend von den zuvor beschriebenen mathematischen
Beweisen: Es findet keine streng logische Zurückführung auf Axiome, Sätze oder andere bewiesene Behauptungen statt, stattdessen ließ Tartaglia seine Behauptung, dass er kubische
Gleichungen lösen könne, durch Aufgaben auf die Probe stellen. Diese Art eines Beweises
nennt man interaktiven Beweis.
Durchführbarkeit
Korrektheit
Für jede Gleichung, die die Bedingung x3 +
ax2 = b oder x3 + ax = b erfüllt, kann Tartaglia
eine Lösung errechnen (Allgemein: Der Prover
kann alle Anfragen des Verifiers richtig beantworten)
Ausgehend von damaligem Wissensstand kann
niemand außer Tartaglia eine Lösung für Gleichungen der 1. Art angeben, ohne zu raten
und das zwar mit je nach Gleichung schwankender Wahrscheinlichkeit aber insgesamt verschwindend geringer Wahrscheinlichkeit. (Allgemein: Bei wiederholten Versuchen konvergiert
die Wahrscheinlichkeit eines erfolgreichen Betrugs gegen 0)
Tabelle 12.1: Definitionen von Durchführbarkeit und Korrektheit
12.1.2 Allgemeines Prinzip nach L.Babai ( Merlin“ )
”
Das Vorgehen während des Wettstreits aus dem vorigen Abschnitt erfüllt Forderungen, die
an ein gutes kryptographisches Verfahren gestellt werden: Außer diesen beiden Eigenschaften
hat Tartaglias Auftritt bei dem Wettstreit noch eine dritte Eigenschaft: Die Fähigkeit eine
Behauptung zu beweisen, ohne sein eigenes Wissen offenbaren zu müssen.
Aber erst spät im 20. Jahrhundert wurde diese Art von Beweisführung in der Mathematik weiter untersucht. Aus diesen Untersuchungen resultierten 1985 die sogenannten ZeroKnowledge-Beweise. Im folgenden soll ein einprägsames Beispiel von L. Babai vorgestellt
werden, in dem es um ein auf klassischem Wege kaum zu beweisendes Problem geht:
Es sind zwei Graphen G0 und G1 gegeben, von denen behauptet wird, sie seien nicht isomorph. Ferner haben die Graphen so viele Ecken, dass die Isomorphie nicht sofort erkennbar
sei, ein Beispielswert hierfür sind 100 Ecken je Graph. Bei dieser Anzahl oder mehr Ecken,
ist der Aufwand, um alle möglichen Permutationen zu finden, enorm. Das heißt, schriebe
man alle möglichen Permutationen eines der beiden Graphen bei 100 Ecken je Graph auf,
so müsste man 9.33 · 10157 Permutationen notieren. Um den interaktiven Beweis führen zu
können wird eine Instanz vorausgesetzt, die in der Lage ist, Isomorphien von Graphen sofort
161
erkennen zu können. Eine solche Instanz ist aber nur theoretischer Natur.
Das einprägsame Bild, welches hierfür von Babai verwendet wurde war das Bild von Merlin, dem Zauberer, der die Rolle der allwissenden“ Instanz übernimmt, während Arthur als
”
Normalsterblicher die Rolle eines Prüfers übernimmt.
Abbildung 12.2: Kommunikation von Merlin und Arthur
Um die Behauptung Merlins, dass die Graphen G0 und G1 von oben nicht isomorph sind,
zu überprüfen, wählt Arthur zufällig einen der beiden Graphen und unterwirft ihn einer
zufälligen, nur ihm bekannten Permutation π und erzeugt so den Graphen H. Dann legt
er Merlin H vor und lässt diesen bestimmen, zu welchem Graphen H isomorph ist. Merlin
erkennt nun sofort zu welchem Graphen H isomorph ist, falls G0 nicht isomorph zu G1 ist.
Daraus ergeben sich folgende Möglichkeiten:
H isomorph
G0
H isomorph
G1
Behauptung G0 nicht
isomorph G1 falsch
Merlin muss raten, welchen Graphen Arthur
zuvor gewählt hat, Erfolgschance (50%)
Merlin muss raten, welchen Graphen Arthur
zuvor gewählt hat, Erfolgschance (50%)
Behauptung G0 nicht
isomorph G1 richtig
Merlin antwortet korrekt G0
Merlin antwortet korrekt G1
Tabelle 12.2: Merlins mögliche Antworten
Wird dieser Vorgang von Arthur nun t-mal wiederholt, so kann Merlin im Betrugsfall,
Arthur nur mit einer Wahrscheinlichkeit von ( 12 )t immer die Wahrheit sagen. Somit ist auch
für dieses Beispiel die Korrektheit des Verfahrens gezeigt. Da Arthur die Antwort, die Merlin
ihm gibt, immer mit seiner Anfrage abgleichen kann, ist das Verfahren auch durchführbar.
Anhand dieses Beispieles kann man noch einige Begriffe einführen. So wird die Rolle, die
Arthur einnimmt Verifizierer“ (Verifier) und die Rolle des Merlin Beweisführer“ (Prover)
”
”
genannt.
162
12.1.3 Zero-Knowledge-Eigenschaft
Im letzten Teil dieses Abschnittes über Interaktive Verfahren wird nochmals kurz auf die
Zero-Knowledge-Eigenschaft eingegangen. Diese Eigenschaft wurde im ersten Teilabschnitt
kurz erwähnt aber nicht weiter erläutert. In diesem Abschnitt wird nun eine kurze Erläuterung
für diesen Begriff gegeben.
Tartaglia sollte seine Behauptung, dass er kubische Gleichungen lösen könne beweisen. Dies
tut er, ohne dass er sein Wissen offenbart, aber dennoch kann der Verifizierer (Fior) mit einer
sehr hohen Wahrscheinlichkeit nach 30 Prüfungen beurteilen, ob er die Wahrheit sagt, oder
nicht. Abschließend eine Definition des Begriffes:
Zero-Knowledge-Eigenschaft 1 Aus der Interaktion zwischen dem Beweiser und dem
”
Verifizierer darf nicht mehr Wissen als die (Un)Gültigkeit der zu beweisenden Aussage gewonnen werden.“ 2
2
aus (4)
163
12.2 Zero-Knowledge-Verfahren
Die Zero-Knowledge-Eigenschaft eignet sich nun hervorragend für Authenifizierungsprotokolle, in denen sich eine Partei A gegenüber einer Partei B identifizieren möchte, da:
• Partei B das Geheimnis von Partei A vorher nicht kennen muss
• und es auch nach dem Identifizierungsvorgang nicht kennen wird
Der klare Vorteil davon ist, dass sich B so nie als A ausgeben kann, jedenfalls nicht mit einer
ausreichend hohen Sicherheit, aber die Identität von A mit einer beliebig hohen Wahrscheinlichkeit bestätigen kann. Im Folgenden werden nun ein Beispiel für Zero-Knowledge-Verfahren
und zwei praktsch verwendbare Zero-Knowledge-Verfahren vorgestellt: Die magische Türe
(12.2.1), Isomorphie von Graphen (12.2.2) und der Fiat-Shamir-Alogrithmus (12.2.3)3 . Alle diese Verfahren benötigen drei Eigenschaften, um als sinnvolle Zero-Knowledge-Verfahren
anerkannt zu werden: Durchführbarkeit, Korrektheit und die Zero-Knowledge-Eigenschaft.
Natürlich ist die Grundvoraussetzung für ein Zero-Knowledge-Eigenschaft nur die ZeroKnowledge-Verfahren, aber ohne die anderen beiden kann man ein solches Verfahren nicht
sinnvoll einsetzen.
12.2.1 Die magische Tür
Im Beispiel der magischen Türe geht es darum, dass eine Partei A einer Partei B beweisen
will, dass sie das Geheimnis zur Öffnen der magischen Türe kennt. Das folgende Verfahren
findet in einem Gebäude mit folgendem Grundriss statt. In diesem Gebäude wird Partei A
durch folgendes Vorgehen geprüft:
1. A betritt den Vorraum, schließt hinter sich die Eingangstüre und geht zufällig nach
links oder rechts und schließt auch dort wieder die Türe hinter sich
2. Dann betritt B den Vorraum, steht vor zwei geschlossenen Türen nach rechts und links
und entscheidet sich zufällig für eine Seite und ruft diese als links“ oder rechts“ in
”
”
den Raum.
3. A muss diesen Wunsch nun erfüllen, wobei dies kein Problem ist, sollte A sich bereits
auf der gewünschten Seite befinden. Sollte A auf der anderen Seite sein, so muss A das
Geheimnis des Codes der magischen Türe verwenden, um den Wunsch zu erfüllen.
Dieses Vorgehen wird t-mal wiederholt. Sollte A bei jedem Durchlauf aus der korrekten Türe
kommen, so ist B davon überzeugt, dass A das Geheimnis kennt. Betrachten wir nun die
drei Eigenschaften, die darüber entscheiden, ob das Verfahren wirklich ein brauchbares ZeroKnowledge-Verfahren ist.
Zunächst betrachten wir die Durchführbarkeit. Diese ist dadurch gegeben, dass A durch
Kenntnis des Codes der magischen Türe die Wünsche von B immer erfüllen kann.
Zur Beurteilung der Korrektheit des Verfahrens schauen wir uns an, wie wahrscheinlich es
ist, dass eine Partei à sich als A ausgeben kann. Um sich als A auszugeben, müsste à jedes
3
Verfahren aus (1)
164
mal aus der von B gewünschten Seite kommen. Da à aber nicht das Geheimnis der magischen Türe kennt, kann à nur aus der Seite kommen, zu der sie zu Beginn des Verfahrens
gegangen ist. Da es zwei Seiten zur Auswahl gibt ist die Wahrscheinlichkeit, dass es à nun
gelingt auf der richtigen Seite zu erscheinen 12 . Bei t Durchführungen des Verfahrens ist die
Wahrscheinlichkeit, immer auf der richtigen Seite zu erscheinen, somit ( 12 )t . Das heisst, dass
es je mehr Versuche t es gibt, in denen à sich identifizieren soll, die Wahrscheinlichkeit, dass
à erfolgreich betrügt immer weiter gegen 0 konvergiert ( lim ( 12 )t = 0).
t→∞
magische Tür
rechte Tür
linke Tür
Vorraum
Abbildung 12.3: Grundriss des Gebäudes mit der magischen Türe
Als letztes beurteilen wir die Zero-Knowledge-Eigenschaft des Verfahrens. Wie in der Definition (S. 163) gefordert wird, darf B nichts über das Geheimnis von A erfahren, wenn das
das Verfahren durchgeführt wird. In unserem Beispiel bedeutet das, dass B mit Hilfe einer
weiteren Partei C die Kommunikation mit A nachstellen kann, aber C dennoch nichts über
das Geheimnis von A weiß. Dies ist aber nur möglich, falls B und C alle Fehlschläge ignorieren
und nur erfolgreiche Versuche festhalten. Das so erstellte Protokoll kann nicht von einer echten Kommunikation zwischen A und B unterschieden werden. Dadurch steckt im Protokoll
der Kommunikation zwischen A und B keine Information über das Geheimnis von A. Somit
ist die geforderte Zero-Knowledge-Eigenschaft für das Verfahren gegeben.
12.2.2 Isomorphie von Graphen
Für dieses Verfahren wird die Annahme, dass es im Allgemeinen unmöglich ist, einen Isomorphismus für zwei große Graphen zu finden, zu Grunde gelegt. Für das Verfahren benötigt
Partei A nun ein Graphenpaar (G0 , G1 ), das isomorph ist und den entsprechenden Isomorphismus σ zwischen beiden. Wird nun nach folgendem Verfahren vorgegangen, so kann B sich
davon überzeugen, dass A den Isomorphismus kennt, ohne dass A diesen verraten muss:
1. A wählt zufällig einen der beiden Graphen aus, zum Beispiel durch zufällige Wahl des
Bits b ∈ {0, 1}. Auf diesen wendet A nun eine weitere zufällige Permutation τ an, so
dass ein neuer Graph H entsteht. Diesen Graphen bekommt B zur Verfügung gestellt.
165
Abbildung 12.4: Ablauf beim Verfahren der isomorphen Graphen (12.2.2)
2. B wünscht sich nun den Isomorphismus von H zu entweder G0 oder G1 , da H isomorph
zu beiden Anfangsgraphen ist und formuliert den Wunsch seinerseits wieder als Bit
c ∈ {0, 1}, das den Index des Graphen angibt, zu dem B den Isomorphismus zu H
wissen will.
3. A antwortet entweder mit α = τ , τ σ −1 oder τ σ, je nachdem ob H aus G0 oder G1
erzeugt wurde. Desweiteren hängt es natürlich von der Wahl von c ab, die B getroffen
hat.
4. B prüft nun, ob mit der Antwort von A wirklich ein Isomorphismus gegeben ist.
Dieser Vorgang wird t-mal wiederholt. Betrachten wir nun wieder die Eigenschaften, die
zuvor als Bedingung für ein brauchbares Zero-Knowledge-Verfahren festgelegt wurden.
A kennt die Abbildungen σ und τ und kann so sowohl τ σ, als auch τ σ −1 bilden und auf
diese Weise B alle Wünsche innerhalb des Verfahrens erfüllen, womit die Durchführbarkeit
des Verfahrens gegeben ist.
Bei der Betrachtung der Korrektheit gehen wir davon aus, dass ein Hochstapler Ã, der den
Platz von A einnehmen will, entweder τ oder τ σ kennt. Wären à beide Permutationen bekannt, könnte à daraus σ berechnen:
τ −1 (τ σ) = σ bzw. (τ σ −1 )−1 τ = (στ −1 )τ = σ
c=0
c=1
b=0
τ (korrekt)
τ σ (Ã kann nur raten)
b=1
τ σ −1 (Ã kann nur raten)
τ (korrekt)
Tabelle 12.3: Die möglichen Antworten von Ã, falls τ bekannt ist und H aus G0 erzeugt wurde
Folglich kann à nur einen von den Wünschen, die B äußern könnte, korrekt beantworten.
Da B zwei verschiedene Wahloptionen hat, kann à mit einer Wahrscheinlichkeit von 12 pro
Durchgang betrügen, ohne aufzufallen.
Insgesamt ist somit die Wahrscheinlichkeit, dass à erfolgreich betrügen kann nach oben durch
166
1
2
beschränkt. Nehmen wir nun die t-fache Durchführung des Vorgehens hinzu, so erhalten
wir, wie zuvor die Wahrscheinlichkeit ( 12 )t als Betrugswahrscheinlichkeit und sehen, dass somit auch die Korrektheit des Verfahrens gegeben ist.
Das Verfahren kann auch dieses Mal von B und C nachgestellt werden. Wie der Tabelle zu entnehmen ist, kann à aber nur dann korrekt antworten, wenn b = c gilt. Für eine erfolgreiche“
”
Simulation muss also wahrscheinlich die Hälfte aller Anfragen verworfen werden. Somit kann
ein Dialog mit A nachgestellt werden, der von einem Originaldialog nicht zu unterscheiden
ist. Dadurch ist die Zero-Knowledge-Eigenschaft gewahrt.
12.2.3 Fiat-Shamir-Algorithmus
A
wählt Zufallszahl r
x=r^2 mod n
B
x
b
bildet y=rs^b
y
wählt zufälliges Bit b
prüft ob
y^2=xv^b mod n
Abbildung 12.5: Kommuniktion beim Fiat-Shamir-Algorithmus (12.2.3)
Wurzeln in Z∗n
Bevor wir das Fiat-Shamir-Verfahren betrachten, zuerst eine kurze Erläuterung zu Wurzeln
im Körper Z∗n . Im Folgenden bezeichnet Wurzel “ immer die Quadratwurzel. Der Körper
”
Z∗n besteht aus einer Teilmenge der Zahlen {1, . . . , n − 1}, den Modulo-Resten des Moduls
n, außer der 0. Durch die Körpereigenschaft hat jedes Element in Z∗n ein multiplikatives
Inverses. Nun ist die Berechnung einer Wurzel in diesem Körper in ihrer Komplexität stark
vom Modul n abhängig. Ist n prim, so gibt es schnelle Verfahren, während es im anderen
Fall sehr aufwändig ist, Wurzeln zu bestimmen. Dieses Problem hängt eng mit dem Problem
der Faktorisierung großer Zahlen zusammen. Desweiteren gibt es in Z∗n drei unterschiedliche
Möglichkeiten, wieviele Wurzeln eine Zahl haben kann. Ist der Radikant r prim, so hat r genau
2 Wurzeln, ist r nicht prim, so kann r entweder gar keine oder vier Wurzeln (x, y, n − x, n − y)
haben. Desweiteren ist die Berechnung dieser Wurzel, wie zuvor erwähnt, recht aufwändig,
falls n keine Primzahl ist. In unseren Betrachtungen gilt n = pq mit p, q prim. 4
Für unsere folgenden Betrachtungen des Fiat-Shamir-Algorithmus sei hier hier noch erwähnt,
was ein quadratischer Rest modulo n ist. Wie oben beschrieben, gibt es im Z∗n Wurzeln. Eine
Zahl a ∈ Z∗n ist quadratischer Rest, falls es eine Zahl b ∈ Z∗n gibt, für die gilt5 :
b2 ≡ b · b ≡ a (mod n)
4
5
nach (1), S.122
siehe (1),S.122
167
Aber nicht nur das Berechnen von Wurzeln ist im Z∗n schwierig, sondern auch das Bestimmen
ob eine Zahl ein quadratischer Rest ist, oder nicht. 6
Wichtig ist in dem Zusammenhang also, dass es fast unmöglich ist, zu bestimmen, ob eine
Zahl quadratischer Rest modulo n ist und dass es genauso schwierig ist Quadratwurzeln in Z∗n
zu berechnen. Letzteres ist die wichtigste Grundannahme für den Fiat-Shamir-Algorithmus,
der im folgenden beschrieben wird.
Der Fiat-Shamir-Algorithmus
In der heutigen Kryptographie ist der Fiat-Shamir-Algorithmus das wichtigste praktisch eingesetze Zero-Knowledge-Verfahren. Die zuvor beschriebene Schwierigkeit, Wurzeln in Z∗n zu
bestimmen, liefert hier die Grundlage für die Korrektheit des Verfahrens. Aber bevor wir
diese genauer betrachten, stellen wir zuerst einmal den Ablauf vor, der sich in zwei Phasen
aufteilt.
Zunächst muss Partei A einen geheimen Schlüssel erzeugen. Dies geschieht, indem A zwei
große Primzahlen p und q erzeugt und das Produkt n = pq bildet. A veröffentlicht n und hält
die Primfaktoren p und q geheim, bzw. vernichtet sie. Da es bei großen Zahlen fast unmöglich
ist, die Primfaktoren schnell und effizient zu bestimmen, sind p und q nicht ohne weiteres
herauszufinden. Nun wählt A eine Zufallszahl s aus Z∗n und bildet dann v := s2 mod n. Von
diesen Zahlen veröffentlicht A nun v und behält s für sich. Wie zuvor erwähnt, lässt sich s
nicht ohne weiteres aus v berechnen. Dadurch ist das Geheimnis s sicher. Zentraler Punkt
des folgenden Verfahrens ist also, dass p, q und s von A geheimgehalten werden.
Das Verfahren zur Identifikation von A, anhand von n und v läuft nun wie folgt ab:
1. A wählt ein zufälliges Element r aus Z∗n und quadriert dieses x := r 2 mod n. x wird
dann an den Verifizierer B geschickt
2. B wählt ein Bit b ∈ {0, 1} und antwortet mit diesem
3. A antwortet mit y := rsb
4. B prüft nun, ob y 2 ≡ xv b ist
Zur Durchführbarkeit des Fiat-Shamir-Algorithmus ist zu sagen, dass diese durch folgenden
Zusammenhang in Z∗n gegeben ist.
y 2 ≡ (rsb )2 ≡ r 2 s2b ≡ r 2 v b ≡ xv b mod n
Somit kann A immer auf alle Anfragen von B antworten.
Nun betrachten wir die Erfolgswahrscheinlichkeit einer Partei Ã, die den Platz von A einnehmen will. Als erstes stellen wir fest, dass à höchstens für eine der Anfragen, die B stellen
kann, eine korrekte Antwort haben kann, da gilt: y02 = x und y12 = xv. Hieraus folgt aber
auch
y1
y1
( )2 = v = s2 =⇒
≡ s mod n
y0
y0
Daraus folgt, dass à aber nur in jeder Runde eine Betrugschance von
168
1
2
hat.
b=0
b=1
à kann nur raten
c=0
y = r (korrekt)
à kann nur raten
c=1
y = r (korrekt)
2
c wird zufällig von à gewählt und in x := r v −c mod n eingesetzt
Tabelle 12.4: Die möglichen Antworten von à beim Fiat-Shamir-Algorithmus
Wie man in der Tabelle sieht, kann Ã, falls sie Vermutungen über die Fragen B hat, ein
passendes c wählen. Ein solcher Betrug, würde B nicht aufallen.
Insgesamt folgt also, wie in den Fällen zuvor, dass à bei t Anfragen mit der Wahrscheinlichkeit
( 12 )t betrügen kann, so dass auch hier die Korrektheit des Verfahrens gegeben ist. Wie bei
den vorherigen Verfahren erfährt auch hier B nichts über das Geheimnis von A. Auch hier
kann B mit Hilfe von C eine Kommunikation mit A nachstellen. In diesem Fall müsste B alle
Fälle, in denen b und c ungleich gewählt wurden ignorieren und die Kommunikation neu zu
starten. Somit ist die Zero-Knowledge-Eigenschaft des Fiat-Shamir-Verfahrens gezeigt.
Sonstiges zum Fiat-Shamir-Verfahren
Aktuell gehört das Fiat-Shamir-Verfahren zu den am häufigsten verwendeten und bekanntesten Zero-Knowledge-Verfahren. Gründe dafür sind die geringe, benötige Rechenleistung,
sowie die Tatsache, dass das Verfahren ein Public-Key-Verfahren ist.
Diese Eigenschaften haben ihn sehr attraktiv für Authentifizierungen gemacht, in denen ein
Teilnehmer von einem System schnell identifiziert werden soll, ohne dass das System das Geheimnis kennen muss.
Aus diesen Gründen wurde das Fiat-Shamir-Verfahren recht schnell in praktische Verfahren
umgesetzt. Ein Beispiel hierfür ist das sogenannte VideoCrypt “-Verfahren, welches beim
”
Bezahlfernsehen eingesetzt wird. Bei diesem wird es eingesetzt, um die Echtheit einer verwendeten Chipkarte im Decoder zu erkennen.7
12.3 Existenz von Zero-Knowledge-Beweisen
Problemstellungen kann man im Allgemeinen unterteilen, indem man die Komplexitität ihrer Lösung betrachtet. Damit gemeint ist die Idee, dass es für jede Problemstellung einen
äquivalenten Algorithmus gibt, mit dem eine Turingmaschine das jeweilige Problem lösen
kann. Die Unterteilung verläuft nun anhand der Komplexität dieses Algorithmus. Zur Menge
P gehören nun die Probleme, die sich mit polynomialem Zeitaufwand lösen lassen. Beispiele
dafür sind die Addition und Multiplikation auf den natürlichen Zahlen und alle Probleme,
die sich auf einem herkömmlichen Computer exakt lösen lassen. In die Menge NP fallen nun
jene Probleme, bei denen sich mit polynomialem Zeitaufwand eine Lösung verifizieren lässt.
8
6
siehe (1), S.123f
Auf Grund von Implementierungsfehlern wurde das Verfahren dennoch recht schnell geknackt
8
siehe (1), S.132f.
7
169
In den späten 1980er bis Mitte der 1990er Jahre wurde beweisen, dass alle Probleme aus der
Gruppe der NP-Probleme einen interaktiven Beweis (12.1) besitzen. Diese Menge an Problemen nannte man dann IP, Probleme mit interaktivem Beweis. Zunächst dachte man, dass
nicht alle NP-Probleme einen interaktiven Beweis hätten, daher die Unterscheidung.
Später wurde dann nachgewiesen, dass es für alle Probleme aus dieser Klasse (IP), auch einen
Zero-Knowledge-Beweis gibt. Als Vorsausetzung dafür wurde herangezogen, dass es sichere
Bit-Commitment-Verfahren9 gibt.
Ein in (1) beschriebenes Beispiel handelt vom Zero-Knowledge-Beweis, dass ein Graph G
hamiltonsch ist10 . In diesem Beispiel geht es darum, dass eine Instanz A einen hamiltonschen
Kreis in G kennt und dies B beweist, indem entweder ein Isomorphismus zu einem gegebenen
isomorphen Graphen H geliefert wird, oder ein hamilonscher Kreis im Graphen H. Da immer
nur eins beantwortet wird, erfährt B zwar keinen hamiltonschen Kreis in G, aber dass es
einen in G geben muss, da hamiltonsche Kreise bei Isomorphien erhalten bleiben.
Dieses Beispiel ist erwähnenswert, da sich alle NP-Probleme immer auf das Finden von
hamiltonschen Kreisen in Graphen zurückführen lassen. Dadurch ist die Existenz von ZeroKnowledge-Beweisen für alle NP-Probleme gegeben.
9
10
siehe (1),S.15f.
siehe (1), S.52ff.
170
12.4 Erweiterungen, Verbesserungen und sonstiges
12.4.1 Two-Prover Verfahren
Nachdem wir nun schon einige Verfahren auf Basis der Zero-Knowledge-Eigenschaft vorgestellt haben, stellen wir fest, dass alle eine Gemeinsamkeit haben: Alle diese Verfahren
beruhen auf der Annahme, dass es ein mathematisch quasi-unlösbares Problem gibt, auf dem
wir unser Verfahren aufsetzen können. Sei dies die Schwierigkeit Isomorphien zu finden, oder
die Schwierigkeit Wurzeln in Z∗n zu berechnen. Alle diese Annahmen sind mathematisch nicht
bewiesen, auch wenn sie als gesichert gelten. Die Frage ist nun, ob es möglich ist, auch ohne
die Verwendung einer nicht bewiesenen Annahme, Zero-Knowledge-Beweise bzw. Protokolle
zu erstellen.
Bei den zuvor beschriebenen Protokollen stellt sich sofort das Problem, dass ohne die Richtigkeit einer solchen Annahme die Korrektheit eines Verfahrens nicht mehr gegeben sein würde.
Zum Beispiel wird sich das Finden von Quadratwurzeln in R sicher nicht als geeignetes
Problem erweisen. Dieses stellt sicher keine große Hürde für einen mathematisch gebildeten
Betrüger dar.
Aber um dennoch ein korrektes Protokoll ohne unbewiesene Annahmen auf die Beine zu stellen, macht man sich einen Trick zu nutze, der aus der Polizeiarbeit bekannt ist: Man befragt
einen zweiten Verdächtigen“. Sollte beiden das Geheimnis bekannt sein, so werden sie keine
”
Probleme damit haben, auf Anfragen korrekt zu antworten. Sollte mindestens einer betrügen
wollen, so wird dies auffallen, da sich bei getrennter Befragung mit hoher Wahrscheinlichkeit
Widersprüche ergeben werden. 11
Hier sei der Grund für diese Widersprüche nur kurz umrissen: Da die beiden Befragten
getrennt voneinander befragt werden, können sie sich nur vor der Befragung absprechen.
Zunächst lässt der Befragende den ersten Befragten eine Folge von Antworten auf zufällig
gewählte Anfragen geben. Dann vergleicht er diese mit Antworten des zweiten Befragten auf
die gleichen Fragen. Dabei werden sich sehr wahrscheinlich Widersprüche in den Antworten
ergeben, falls mindestens ein Befragter betrügen will.
Dieses Verfahren wird 2-Prover-Verfahren genannt, da hier zwei Prover zuhilfe genommen
werden. Es wurde gezeigt, dass sich mit diesen Verfahren mehr Problemstellungen beweisen bzw. lösen lassen, als mit herkömmlichen Zero-Knowledge-Verfahren. Die Klasse dieser
Probleme nennt man MIP.
12.4.2 Witness-Hiding
Untersuchungen an Verfahren mit der Zero-Knowledge-Eigenschaft haben ergeben, dass parallel durchgeführte Anfragen an den Prover zur Folge haben können, dass genau die ZeroKnowledge-Eigenschaft verloren gehen kann. Es könnte also durch parallele Anfragen möglich
sein das Geheimnis des Provers zu ermitteln. Dies stellt ein großes Problem dar, da gerade
diese Parallelanfragen in der Realität viel Zeit bei Authentifizierungen einsparen.
Die Idee, die nun einer Verbesserung von Zero-Knowledge-Verfahren zugrunde liegt, ist es
Zeugen “ für das Geheimnis des Provers zu verbergen. Zeugen sind in diesem Sinne In”
formationen, die helfen eine Behauptung zu beweisen. Ein Zeuge für die Behauptung, dass
11
In (1), S.56ff. wird ausführlich erklärt, wieso es selbst bei vorheriger Absprache zwischen den beiden Befragten sehr wahrscheinlich zu Widersprüchen kommen wird.
171
Graph G isomorph zu Graph H sein soll, wäre ein Isomorphismus zwischen beiden.
Witness-Indistinguishability
Bevor wir das Witness-Hiding vorstellen, müssen wir zuerst kurz auf die Ununterscheidbarkeit
von Zeugen (Witness-Indistinguishability) eingehen. Diese ist wie folgt definiert:
Witness-Indistinguishability 1 Ein Protokoll für die Behauptung x hat die Eigenschaft
”
”
L“ ist witness-indistinguishable (hat die WI-Eigenschaft), wenn man Ausführungen des Protokolls in denen der Prover P einen Zeugen w1 benutzt, nicht von solchen unterschieden
werden kann, in denen er einen anderen Zeugen w2 benutzt.“ 12
Ein Beispiel für ein Verfahren mit der WI-Eigenschaft ist das Fiat-Shamir-Verfahren, da
hier der Verifier nicht erkennen kann, welche Wurzel der Zahl v der Prover verwendet hat:
Seien s1 6= s2 zwei Wurzeln der Zahl v und t := vv12 mod n, dann gilt t2 = vv = 1 ( mod n)
und s1 = ts2 mod n. Daraus folgt nun, dass gilt rs1 = (rt)s2 mod n. Wegen
(rt)2 = r 2 t2 = r 2 = x
kann der Verifier nun nicht mehr erkennen, welche Wurzel s∗ der Prover verwendet hat. Damit
hat er auch keine Ahnung, welchen Zeugen der Prover verwendet hat, da der Zeuge hier der
jeweiligen Wurzel entspricht.
Es folgen daraus zwei Resultate:
Jedes Zero-Knowledge Protokoll hat die WI-Eigenschaft.“
”
13
und
Die WI-Eigenschaft bleibt bei paralleler Ausführung eines WI-Protokolls erhalten.“
”
14
Witness-Hiding
Betrachten wir nun die Eigenschaften, die Zeugen haben können noch einmal genauer. Wie
wir gesehen haben, haben alle Zero-Knowledge Protokolle die WI Eigenschaft. Damit stellen
wir sicher, dass ein Verifier keine Zeugen unterscheiden kann, aber nicht, dass er definitiv
keine bestimmen kann. Die Eigenschaft, die wir hierfür benötigen ist die WH-Eigenschaft,
die witness hiding Eigenschaft. Diese sagt aus, dass selbst bei mehrfachem Durchführen des
Verfahrens der Verifier nicht in der Lage ist, irgendeinen Zeugen zu ermitteln.
Aber um ein Resultat zu erhalten, wann ein Verfahren die WH-Eigenschaft hat, müssen wir
zuvor folgende Definition liefern:
Wesentlich verschiedene Zeugen 1 Zwei Zeugen w1 und w2 heißen wesentlich verschieden, wenn es mit Kenntnis von w1 genauso schwer ist w2 zu bestimmen, wie ohne w1 . Das
gleiche gilt analog für w2 in Bezug auf die Bestimmung von w1 .
12
(1),S.59
(1),S.60
14
(1),S.60
13
172
Mit Hilfe dieser Definition kann man nun folgendes Resultat liefern:
Ein Verfahren mit der WI-Eigenschaft hat genau dann die WH-Eigenschaft, wenn es schwer
ist irgendeinen Zeugen zu bestimmen und es mindestens zwei wesentlich verschiedene
Zeugen gibt.
Mit Verfahren mit WH-Eigenschaft kann man nun auch Verfahren konstruieren, die parallele
Nachrichtenübermittlung zulassen. In (1) werden auf Seite 61f. zwei Verfahren vorgestellt,
die sich witness hiding zu Nutze machen, das Fiat-Shamir-Verfahren und Verfahren, die auf
dem diskreten Logarithmus beruhen. Hierbei besitzt das Fiat-Shamir-Verfahren auch ohne
Änderungen schon die WH-Eigenschaft.
12.4.3 Nicht-Interaktive Zero-Knowledge-Beweise
Bisher waren alle Zero-Knowledge-Beweise, die wir betrachtet haben, interaktiv. Nun stellt
sich die Frage, ob es auch solche gibt, die keine Interaktivität benötigen. Theoretische Untersuchungen zu dieser Fragestellung haben ergeben, dass es diese nicht geben kann. Es wurde
gezeigt, dass Beweissysteme mit zwei oder weniger gesendeten Nachrichten nicht interessant
sind, da die damit lösbaren Probleme leicht für jeden Beteiligten zu lösen wären.
Obwohl man die Interaktivität nicht vollständig entfallen lassen kann, kann man diese durch
eine Art Pseudo-Interaktivität ersetzen. Das bedeutet, dass man die ersten beiden Interaktionen, die benötigt werden, vorausberechnen kann. Später kann der Prover dann seine
Behauptung beweisen, indem eine einzige Nachricht an den Verifier übertragen wird.
Eine weitere Möglichkeit Pseudointeraktivität zu generieren ist die Absprache einer, beiden
Parteien bekannten, Zufallsfolge. Dadurch können beide Parteien ihre jeweiligen ersten beiden Antworten ableiten. In der Folge muss der Prover dann nur noch eine Nachricht an den
Verifier senden.
Beide Verfahren laufen also darauf hinaus, dass die Anzahl der übermittelten Nachrichten auf
eins reduziert wird. In (1) wird das Problem des Findens von hamitonschen Graphen (170)
mit diesen beiden Möglichkeiten vorgestellt (S.63ff.).
173
13 Der Beweis des Fünffarbensatzes und
Historie des Vierfarbensatzes
13.1 Einleitung
Verschiedene Aspekte werden bei der Gestaltung von Karten berücksichtigt, damit ein Betrachter möglichst schnell die Informationen einer Karte erfassen kann. Einer der wichtigsten
Kriterien ist hierbei eine sinnvolle Farbgebung. Sie erleichtert erheblich die Lesbarkeit und
das Verständnis einer Karte. Damit Regionen voneinander abgehoben werden können, müssen
aneinandergrenzende Gebiete mit verschiedenen Farben gefärbt werden.
Der Grundgedanke hinter der Frage, wieviele Farben minimal zur Landkartenfärbung nötig
sind, kann auch auf andere Themengebiete übertragen werden. Beispiele sind:
• Wieviele Tage muss ein Parlament für Ausschusssitzungen einplanen, wenn jeder Ausschuss einen Tag lang tagen möchte und die einzelnen Parlamentsmitglieder mehrere
Sitzungen besuchen möchten?
• Wie sieht ein Stundenplan mit möglichst kurzer Gesamtlänge aus, wenn bekannt ist,
welcher Lehrer welche Klasse wie häufig unterrichten soll?
• Wieviele verschiedene Frequenzen sind in einem Mobilfunknetz notwendig, damit benachbarte Sender jeweils andere Frequenzen nutzen können.
13.2 Der Vierfarbensatz
Der Vierfarbensatz besagt, dass vier Farben immer ausreichen, um jede beliebige Landkarte in der euklidischen Ebene so einzufärben, dass benachbarte Länder mit unterschiedlichen
Farben gefärbt werden.
Der Satz hat die Einschränkungen, dass zwei Flächen, die sich in einem Punkt berühren,
nicht als benachbart gelten und jedes Land aus einer zusammenhängenden Fläche bestehen
muss, es also keine Exklaven geben darf.
13.2.1 Geschichte
Mitte des 19. Jahrhunderts bekam der englische Mathematiker Francis Guthrie die Aufgabe,
eine Landkarte von England zu kolorieren. Dabei stellte er sich die Frage, wieviele Farben
174
minimal notwendig sind um eine Karte vollständig zu färben, ohne dass benachbarte Gebiete gleichfarbig sind. Es ist offensichtlich, dass drei Farben nicht immer ausreichen, um die
Bedingungen zu erfüllen.
Abbildung 13.1: Färbung mit vier Farben ist notwendig1
Francis Guthrie stellte die Vermutung auf, dass vier Farben ausreichen, um jede beliebige
Karte entsprechend zu färben. Damit ist er der Erfinder dieser mathematischen Fragestellung.
Er testete seine Vermutung an verschiedenen Karten und kam immer wieder auf vier Farben,
ohne diese Vermutung zu beweisen.
Frederick Guthrie, der jüngere Bruder von Francis Guthrie, erzählte seinem Lehrer Augustus de Morgan von der Vierfarbenvermutung. Dieser fand Interesse daran und schrieb einen
Brief an Sir William Rowan Hamilton, in dem er das mathematische Problem erläuterte.
Dies war die erste schriftliche Notiz des Vierfarbenproblems. De Morgan beschäftigte sich
weiterhin mit dem Thema.
Nachdem sich fast zwanzig Jahre keine Mathematiker mehr mit der Fragestellung beschäftigt
hatten, erregte Arthur Cayley wieder das Interesse mit der Frage, ob schon jemand eine
Lösung gefunden hat und hielt einem Vortrag über das Problem.
Etwa ein Jahr später, im Jahre 1879 fand Alfred Bray Kempe erstmals einen Beweis. Verschiedene Mathematiker machten noch Erweiterungen. Das Vierfarbenproblem galt als gelöst.
Erst etwa 100 Jahre später entdeckt Percy John Heawood einen Fehler in dem vermeintlichen Beweis, ohne jedoch eine neue Beweisidee für den Vierfarbensatz zu erbringen.
Heinrich Heesch entwickelte den Ansatz von Kempe weiter und ihm gelang Ende der sechziger Jahre der entscheidende Durchbruch. Er entschied, dass ein Computer für den Beweis
nötig ist. Kenneth Appel und Wolfgang Haken an der University of Illinois at Urbana führten
dann letztendlich diesen Beweis durch. Sie entwickelten ein Programm, welches sich selbst
verbesserte und bewiesen 1976 den Vierfarbensatz.
0
0
Quelle: http://www.matheprisma.uni-wuppertal.de/Module/4FP/index.htm
Bildquelle: http://www.matheprisma.uni-wuppertal.de/Module/4FP/index.htm
175
Abbildung 13.2: Four colors suffice1
13.2.2 Der Beweis mittels Computer
Der Beweis besteht zunächst aus einem theoretischen Teil. Das allgemeine Problem wird auf
endlich viele Probleme minimiert und ein Computerprogramm überprüft all diese Fälle.
Diese revolutionäre Beweistechnik führt zu viel Aufsehen, da das erste Mal ein Computer
als Beweismittel eingesetzt wurde. Einige Mathematiker erkennen den Beweis nicht an, da
er nicht von einem Menschen nachvollzogen werden kann, sondern von der Korrektheit des
Compilers und der Hardware abhängt. Sie wünschen sich einen eleganteren Beweis, der sich
kurz und knapp fassen lässt.
13.3 Der Fünffarbensatz
Der Fünffarbensatz ist eine Abschwächung des Vierfarbensatzes und besagt, dass die Flächen
einer Karte immer mit fünf oder weniger Farben gefärbt werden können, so dass benachbarte
Länder unterschiedlich gefärbt sind.
Auch hier gibt es die Einschränkungen, dass zwei Flächen, die sich in einem Punkt berühren,
nicht als benachbart gelten und jedes Land aus einer zusammenhängenden Fläche bestehen
muss, es also keine Exklaven gibt.
13.3.1 Geschichte
Als Percy Heawood den Fehler im vermeintlichen Beweis des Vierfarbensatzes von Alfred
Kempe entdeckte, fand er mit elementaren Mitteln einen Beweis für den Fünffarbensatz. Jedoch fand man keine beispielhaften Konstruktionen von Landkarten, für die tatsächlich fünf
Farben zur korrekten Färbung benötigt wurden.
176
13.3.2 Bezug zur Graphentheorie
Transformation einer Landkarte in einen Graphen
Bei verwinkelten Grenzen zwischen Ländern kann es sehr kompliziert sein, eine detaillierte
Karte zu färben. Es eignet sich deshalb, eine Karte durch einen Graphen zu abstrahieren,
indem nur die wesentlichen Informationen festgehalten sind. Auch für die Nutzung von Computerprogrammen zur Farbfindung ist diese Darstellung sehr geeignet. Einen solchen Graphen
erhält man, wenn man in jedes Land einen Punkt als Ecke eines Graphen setzt und bei benachbarten Ländern die jeweiligen Ecken über Kanten miteinander verbindet.
Abbildung 13.3: Landkarte als Graph dargestellt1
Solche Graphen haben bestimmte Eigenschaften. Sie sind:
1. planar - keine Kanten schneiden sich
2. einfach - ein Land kann nicht an sich selbst angrenzen und kann nur jeweils eine Grenze
zu einem Nachbarland haben
Bemerkung: Länder, die mittels einer Ecke verbunden sind, gelten nicht als benachbarte
Länder und können somit gleich eingefärbt werden.
Wichtige Begriffe
• Färbung
Eine Eckenfärbung eines Graphen G = (V, E) ist eine Abbildung c : V → S, so dass
gilt c(u) 6= c(v) für je zwei benachbarte Ecken u, v. Die Elemente der Menge S nennt
man die zur Verfügung stehenden Farben. Im Bezug zum Fünffarbensatz ist nur die
Mächtigkeit von S interessant.
• Chromatische Zahl
Üblicherweise suchen wir die kleinste natürliche Zahl n, so dass G eine gültige Eckenfärbung
0
Bildquelle: http://de.wikipedia.org/wiki/Fünf-Farben-Satz
177
c : V → {1, ..., n} hat. Dieses n heißt die (ecken-) chromatische Zahl von G und wird
mit χ(G) bezeichnet.
• n-färbbar
Ein Graph G mit χ(G) ≤ n heißt n-färbbar.
• Zusammenhängender Graph
Ein Graph G = (V, E) heißt zusammenhängend, wenn für jedes Paar von Knoten u und
v ∈ V ein u-v-Pfad in G existiert. Oder auch anschaulicher ausgedrückt: Ein Graph ist
zusammenhängend, wenn er ‘nicht in mehrere Teile zerfällt’.
• Planarer Graph
Ein Graph wird als planar bezeichnet, wenn man ihn so zeichnen kann, dass sich keine
Kanten überschneiden.
Im Bezug zur Graphentheorie kann der Fünffarbensatz folgendermaßen formuliert werden:
Für jeden planaren Graphen G ist χ(G) ≤ 5.
Grundlegende Sätze
Für den Beweis des Fünffarbensatzes sind ein paar Sätze und Hilfssätze aus der Graphentheorie relevant:
• Die Eulersche Polyederformel
Sei G ein zusammenhängender planarer Graph mit k ≥ 1 Knoten, m Kanten und f
Flächen, in die die Ebene durch den Graphen eingeteilt wird (das Außengebiet zählt
mit). Dann gilt:
k−m+f =2
• Hilfssatz 1
Sei G ein zusammenhängender einfacher planarer Graph mit k ≥ 3 Knoten und m
Kanten. Dann gilt: m ≤ 3k − 6
• Hilfssatz 2
Jeder einfache, planare Graph enthält einen Knoten, dessen Grad höchstens fünf ist.
Beweis durch einen Widerspruch:
Annahme:
– geg: ein zusammenhängender, planarer Graph mit k ≥ 3
– jeder Knoten hat mindestens den Grad 6, also ist G ≥ 6
so gilt:
die Anzahl aller Kanten ist m ≥ G ∗ k/2
m ≥ 6 ∗ k/2 = 3 ∗ k
laut Hilfssatz 1 gilt: m ≤ 3k − 6
eingesetzt ergibt das: 3k ≤ 3k − 6 und dies ist ein Widerspruch.
178
Folglich muss es immer in einem einfachen, planaren Graph eine Ecke geben, deren
Grad höchstens fünf ist.
13.3.3 Der Beweis
Der Fünffarbensatz kann mit Hilfe der vollständigen Induktion nach der Eckenzahl eines planaren Graphen bewiesen werden.
Wir betrachten allgemein einen planaren, einfachen Graphen G mit k Ecken und m Kanten.
Induktionsannahme:
Alle planaren Graphen mit weniger als k Ecken sind 5-färbbar.
Induktionsanfang:
Planare Graphen mit weniger als sechs Ecken sind natürlich immer 5-färbbar.
Abbildung 13.4: 5-färbbare Graphen
Induktionsbehauptung:
Alle planaren Graphen mit k Ecken sind 5-färbbar.
Induktionsbeweis:
Wir wissen nach Hilfssatz 2, dass eine Ecke v ∈ G existiert, die höchstens den Grad fünf hat.
Wir entfernen nun v und erhalten den Graphen H mit k − 1 Ecken. Nach Induktionsannahme
wissen wir, dass der Graph H := G − v mit fünf Farben gefärbt werden kann.
Als nächstes wollen wir den Knoten v wieder zu H hinzufügen, so dass fünf Farben beim
Färben des Graphen H + v ausreichen. Wir bezeichnen nun die Nachbarknoten von v im
Uhrzeigersinn mit v1 , v2 , v3 , v4 und v5 . Hierfür betrachten wir zwei Färbungsfälle von den
Nachbarknoten von v.
1. Die Nachbarknoten von v sind mit höchstens vier Farben gefärbt. Entweder es gibt
weniger als fünf Nachbarknoten oder mehr als ein Nachbarknoten trägt die gleiche
Farbe. Dann kann v mit der fünften Farbe gefärbt werden und wir erhalten eine gültige
Färbung für den Graphen mit k Ecken.
179
Abbildung 13.5: Knoten v mit Grad 5
Abbildung 13.6: v hat nur 4 Nachbarknoten
2. v hat fünf Nachbarknoten, die mit fünf verschiedenen Farben gefärbt sind. Damit wir
eine freie Farbe für v bekommen, müssen wir die einzelnen Knoten geschickt umfärben.
Hierfür müssten wir also 2 Nachbarn von v finden, die wir gleich einfärben können. Die
Frage ist nur, wann dies möglich ist:
Färben wir zum Beispiel v1 genau wie v3 blau, so müssten wir alle daran angrenzenden
blauen Knoten umfärben, sonst wären zwei benachbarte Knoten gleich gefärbt. Nehmen
wir an, dass wir diese Nachbarknoten rot färben, so müssten wir wiederum alle daran
angrenzenden roten Knoten z.B. blau färben. Setzen wir diesen Algoithmus bei allen
Knoten fort, so erhalten wir einen rot-blau-Weg. Wichtig ist jetzt, ob v1 über einen
rot-blau-Weg zu Knoten v3 führt.
a) falls nein:
v kann rot gefärbt werden und wir erhalten somit einen gültig gefärbten Graphen
mit k Knoten.
b) falls ja:
Das Umfärben führt nicht zum Erfolg, da wir zwei blaue Knoten nebeneinander
erhalten. Wir haben also wieder die Ausgangssituation und benötigen ein anderes
180
Abbildung 13.7: Es gibt noch keine freie Farbe für v
Abbildung 13.8: Eine Umfärbung führt zum Erfolg
Umfärbungsverfahren.
Die Existenz des rot-blau-Weges zwischen v1 und v3 liefert aber eine andere strukturelle Eigenschaft des Graphen, die wir verwenden können. Wir betrachten die
Knoten v2 und v4 . Da der Graph planar ist, können sie nur über einen Weg miteinander verbunden sein, der durch einen Knoten des Weges v1 v3 führt. Dieser
Weg enthält also nicht nur gelbe oder orange Elemente, sondern auch einen roten
oder blauen Knoten. Folglich können wir entsprechend umfärben, so dass v gültig
gefärbt wird.
q.e.d.
181
Abbildung 13.9: Ein rot-blau-Weg führt von v1 zu v2 - Umfärben ist so nicht möglich
Abbildung 13.10: Das Umfärben des gelb-orange-Weges führt zum Erfolg
13.4 Fazit und Ausblick
Es ist wesentlich schwieriger den Vierfarbensatz zu beweisen, da nicht die vorgestellte Beweisführung wie bei dem Fünffarbensatz verwendet werden kann. Grund hierfür ist der Hilfssatz 2 (Jeder einfache, planare Graph enthält eine Ecke, deren Grad höchstens fünf ist.). Er
gilt nicht für Grad vier, was diesen Beweisweg unmöglich macht für vier Farben.
Obwohl 1976 ein Beweis des Vierfarbenproblems gefunden wurde, beschäftigen sich noch
viele Mathematiker damit. Sie hoffen einen schlüssigen und kurzen Beweis für den Vierfarbensatz zu finden. Wer ihn findet, steht bald in Matheskripten ;-).
182
A Literaturverzeichniss
A.1 Fibonacci
•
•
•
•
http://de.wikipedia.de/wiki/Fibonacci-Folge
http://de.wikipedia.org/wiki/Leonardo Fibonacci
http://www.ijon.de/mathe/fibonacci/
A. Beutelspacher, M.-A. Zschiegner (2002)
Diskrete Mathematik für Einsteiger
Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden
A.2 Eulersche Graphen
• Manfred Nitzsche (2005)
Graphen für Einsteiger: Rund um das Haus vom Nikolaus
2. Auflage, Vieweg
ISBN 3 − 8348 − 0056 − 2
• R. Diestel (1996)
Graphentheorie
2. Auflage, Springer
•
•
•
•
ISBN 3 − 540 − 67656 − 2
http://de.wikipedia.org/wiki/Leonhard Euler (19.05.2008)
http://de.wikipedia.org/wiki/Graphentheorie (19.05.2008)
http://de.wikipedia.org/wiki/Wege%2C Pfade%2C Zyklen und Kreise in Graphen (19.05.2008)
http://de.wikipedia.org/wiki/Eulerkreisproblem (19.05.2008)
A.3 Hamiltonsche Graphen und Grade von Ecken
• Manfred Nitzsche (2005)
Graphen für Einsteiger: Rund um das Haus vom Nikolaus
2. Auflage, Vieweg
ISBN 3 − 8348 − 0056 − 2
• http://www.wikipedia.de
• http://wikiserver.mdmt.tuwien.ac.at/lva/118149/Theorie 06.12.2005 Graphentheorie#Hamiltonsche Krei
183
A.4 Bäume
• A. Beutelspacher, M.-A. Zschiegner(2002)
,,Diskrete Mathematik für Einsteiger”
Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden
• Manfred Nitzsche (2005)
Graphen für Einsteiger: Rund um das Haus vom Nikolaus
2. Auflage, Vieweg
ISBN 3 − 8348 − 0056 − 2
• V. Sander,
Skript zur Vorlesung: ,,Next Generation Internet”
• R. Sedgewick
,,Algorithmen”, Pearson Education Deutschland GmbH, 2002
• G. Saake, K.-U. Sattler
,,Algorithmen und Datenstrukturen”, dpunkt.verlag GmbH, Heidelberg,
A.5 Bipartite Graphen
• J. Clark, D. A. Holton (1994)
,,Graphentheorie - Grundlagen und Anwendungen”
Spektrum Verlag GmbH, Heidelberg erschienen
ISBN 3 − 8602 − 5331 − X
• Manfred Nitzsche (2005)
Graphen für Einsteiger: Rund um das Haus vom Nikolaus
2. Auflage, Vieweg
ISBN 3 − 8348 − 0056 − 2
A.6 DiGraphen
• Königsberger Brückenproblem
(Wikipedia)
• Traveling Salesman Problem - Problem des Handlungsreisenden
(Wikipedia)
• Algorithmus von Hierholzer
(Wikipedia)
184
A.7 Körper und Flächen
• Manfred Nitzsche (2005)
Graphen für Einsteiger: Rund um das Haus vom Nikolaus
2. Auflage, Vieweg
ISBN 3 − 8348 − 0056 − 2
• Dorothea Wagner (2008)
Vorlesungsskript: Algorithmen für planare Graphen
http://i11www.iti.uni-karlsruhe.de/teaching/SS 08/planalgo/skript/algo-plan.pdf
Universität Karlsruhe
• Peter Steinberg (2005)
Graphiken zu den Platonischen Körpern
• http://www.wikipedia.de
A.8 Farben
• Manfred Nitzsche (2005)
Graphen für Einsteiger: Rund um das Haus vom Nikolaus
2. Auflage, Vieweg
ISBN 3 − 8348 − 0056 − 2
• http://www.wikipedia.de
A.9 Kryptogaphie: Grundlagen
• Beutelspacher, Schenk, Wolfenstetter (2006)
Moderne Verfahren der Kryptographie
ISBN 3 − 8348 − 0083 − X
• http://www.it.fht-esslingen.de
Spektakuläre Ereignisse in der Geschichte der Kryptographie
Hr.Schmidt
• www.mathematik.uni-osnabrueck.de
Codierungstheorie und Kryptographie
H.W.Bruns
185
A.10 Kryptogaphie: Protokolle
• Beutelspacher, Schenk, Wolfenstetter (2006)
Moderne Verfahren der Kryptographie
ISBN 3 − 8348 − 0083 − X
• http://www.wikipedia.de
A.11 Zero Knowledge Verfahren
• Beutelspacher, Schenk, Wolfenstetter (2006)
Moderne Verfahren der Kryptographie
ISBN 3 − 8348 − 0083 − X
• http://de.wikipedia.org/wiki/Niccolo Fontana Tartaglia
• http://www-groups.dcs.st-and.ac.uk/ history/Biographies/Tartaglia.html
• http://de.wikipedia.org/wiki/Zero Knowledge
A.12 Beweis 5 Farben Satz
• Steger
Diskrete Strukturen - Band 1 ISBN: 978-3-540-46660-4 2007
• R. und G. Fritsch
Der Vierfarbensatz - Geschichte, Topologische Grundlagen und Beweisidee
ISBN: 3-411-15141-2
1994
• R. Diestel (1996)
Graphentheorie
ISBN: 3-540-60918-0
• Das Vierfarbenproblem - mehr als Malen nach Zahlen
http://www.matheprisma.uni-wuppertal.de/Module/4FP/index.htm
• http://de.wikipedia.org/wiki/Fünf-Farben-Satz
• Jörn Steuding
Der Beweis des Fünffarbensatzes
http://www.mathematik.uni-wuerzburg.de/ steuding/elsesser.doc
186
Abbildungsverzeichnis
2.1
2.2
2.3
Quadrat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
rechteck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
goldener Schnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
11
13
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
3.14
3.15
3.16
3.17
3.18
3.19
3.20
3.21
3.22
3.23
3.24
Nikolaus - Haus . . . . . . . . . . . . . . . . . . . . . . . . .
Nikolaus - Haus mit Keller . . . . . . . . . . . . . . . . . . .
Nikolaus- Haus als Graph . . . . . . . . . . . . . . . . . . .
Graph mit Besonderheiten . . . . . . . . . . . . . . . . . . .
Graph mit zwei isolierten Ecken . . . . . . . . . . . . . . .
zusammenhängender und nicht zusammenhängender Graph
Graph mit n Ecken wird mit Kn bezeichnet . . . . . . . . .
Graph aus 3 Komponenten . . . . . . . . . . . . . . . . . .
Graph und seine Eckengrade . . . . . . . . . . . . . . . . .
Verwandlung des Nikolaus- Hauses . . . . . . . . . . . . . .
nicht einfacher Graph als Zeichnung und als Tabelle . . . .
Petersen- Graph . . . . . . . . . . . . . . . . . . . . . . . .
kantenloser Graph . . . . . . . . . . . . . . . . . . . . . . .
abcdef bzw. abcdea ist ein Kantenzug . . . . . . . . . . . .
Graph mit Artikulation v, x, y und Brücke e = xy . . . . .
Stadtplan von Königsberg im 18. Jahrhundert . . . . . . . .
Stadtplan von Königsberg als Graph . . . . . . . . . . . . .
Nikolaus-Haus mit eulerscher Tour . . . . . . . . . . . . . .
Hier ist eine eulersche Tour zu finden . . . . . . . . . . . . .
Eine eulersche Tour: A-B-C-A-D-E-C-F-D-B-E-F-A . . . . .
Ausstellungsräume . . . . . . . . . . . . . . . . . . . . . . .
Ausstellungsräume als Graph . . . . . . . . . . . . . . . . .
Domino als Graph . . . . . . . . . . . . . . . . . . . . . . .
Vollständiges Vieleck . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
18
18
18
18
19
19
19
20
21
21
22
22
23
25
25
26
29
29
29
30
31
32
4.1
4.2
4.3
Ein Hamiltonscher Kreis in einem Dodekaeder . . . . . . . . . . . . . . . . . .
Ein hamiltonscher Graph wird neu gezeichnet . . . . . . . . . . . . . . . . . .
Erst zwei Schnitte teilen einen Kreis in zwei Teile . . . . . . . . . . . . . . . .
37
38
39
5.1
5.2
5.3
5.4
Beispiele von Bäumen . . . . . . . . . . . . .
Zwei Wege zwischen Start und Ziel . . . . . .
Ein Wald im Sinne der Graphentheorie . . . .
Zwei aufspannende Bäume zum Nikolaushaus
41
42
43
44
187
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.5
5.6
5.7
5.11
5.12
5.13
Aufspannende Bäume zu einem Dreieck, wenn man die Kanten unterscheidet.
Labyrinth und dazu erstellter Graph . . . . . . . . . . . . . . . . . . . . . . .
A: Sperren einer schon besuchten Ecke B: Sperren von Sackgassen C: Sperren
einer Kante eines Kreises . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Straßennetz und die Baukosten . . . . . . . . . . . . . . . . . . . . . . . . . .
Minimal aufspannender Baum für den gegebenen Graphen . . . . . . . . . . .
Schritt1: U ist der Startknoten, benachbarte Knoten sind V, W, X, Schritt2:
X hinzufügen, neue Nachbarknoten V,W,Y . . . . . . . . . . . . . . . . . . .
Schritt3: V hinzufügen , Schritt4: Y hinzufügen, neue Nachbarknoten W,Z .
Schritt3: W hinzufügen , Schritt4: Z hinzufügen . . . . . . . . . . . . . . . . .
Links: Bezirk des Briefträgers, Rechts: minimaler eulerscher Graph zum Bezirk
48
48
48
49
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
6.13
6.14
6.15
6.16
6.17
6.18
6.19
6.20
6.21
6.22
6.23
6.24
6.25
6.26
6.27
6.28
6.29
6.30
6.31
6.32
6.33
Frühstücksgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösungsgraph zur Aufgabe 1 . . . . . . . . . . . . . . . . . . . . .
Alle Lösungsgraphen zur Aufgabe 2 . . . . . . . . . . . . . . . . . .
Komponenten eines bipartiten Graphen . . . . . . . . . . . . . . .
Viereck umzeichnen . . . . . . . . . . . . . . . . . . . . . . . . . .
Graphen umzeichnen . . . . . . . . . . . . . . . . . . . . . . . . . .
Graphen färben . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösung zur Aufgabe 3 . . . . . . . . . . . . . . . . . . . . . . . . .
Achteckiger Kreis . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Graphen zur Aufgabe 4 . . . . . . . . . . . . . . . . . . . . . . . .
Graphen zur Aufgabe 5 . . . . . . . . . . . . . . . . . . . . . . . .
Bipartiter Baum . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösungsgraphen zur Aufgabe 6 . . . . . . . . . . . . . . . . . . . .
nicht hamiltonscher Graph . . . . . . . . . . . . . . . . . . . . . . .
nicht hamiltonscher Graph (gefärbt) . . . . . . . . . . . . . . . . .
nicht bipartiter Graph mit ungeradem Kreis . . . . . . . . . . . . .
Baum der durch teilweise Kantenlöschung eines Graphen entstand
Baum mit hypothetisch hinzugefügter Kante . . . . . . . . . . . .
Zug des Turms in 3D und im bipartiten Graphen . . . . . . . . . .
Schlechtes Fachwerk . . . . . . . . . . . . . . . . . . . . . . . . . .
Stabiles Fachwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sparsames Fachwerk mit Bruch . . . . . . . . . . . . . . . . . . . .
Stabiles sparsames Fachwerk . . . . . . . . . . . . . . . . . . . . .
Graphen zu den konstruierten Fachwerkhäusern . . . . . . . . . . .
Haus vom Nikolaus mit Matchinglinien . . . . . . . . . . . . . . . .
Haus vom Nikolaus Perfektes Matching . . . . . . . . . . . . . . .
Haus vom Nikolaus Maximales Matching I . . . . . . . . . . . . . .
Haus vom Nikolaus Maximales Matching II . . . . . . . . . . . . .
Graph zur Übung 17 . . . . . . . . . . . . . . . . . . . . . . . . . .
Lösung zur Übung 17 - perfektes Matching . . . . . . . . . . . . .
Heiratsbeispiel 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heiratsbeispiel 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heirat ohne Erfolg . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
51
52
52
53
53
53
54
54
55
55
56
57
57
58
58
59
60
61
61
62
62
63
63
64
65
65
65
66
67
68
69
69
5.8
5.9
5.10
188
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
44
45
46
46
47
6.34
6.35
6.36
6.37
Folgerung Heiratssatz 1 . . . . . . . . . . .
Folgerung Heiratssatz - perfektes Matching
Graph zur Übung 18 . . . . . . . . . . . . .
Lösungsgraph zur Übung 18 . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
72
72
73
74
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
7.10
7.11
7.12
7.13
7.14
7.15
c Google Maps) . . . . . . . . . . .
Stadtplan von Jülich City (
Übergang vom ungerichteten zum gerichteten Graphen . . . . .
Adjazenzmatrix eines Digraphen . . . . . . . . . . . . . . . . .
Isomorphie bei Digraphen . . . . . . . . . . . . . . . . . . . . .
Brücken und Einbahnstraßen . . . . . . . . . . . . . . . . . . .
eulerscher Digraph (links) und hamiltonscher Digraph (rechts)
Beispiele für Turniergraphen: Turniergraphen mit drei Knoten .
Turniergraph mit eindeutigem Sieger . . . . . . . . . . . . . . .
transitiver Turniergraph . . . . . . . . . . . . . . . . . . . . . .
K ist ein König, k ein Vizekönig . . . . . . . . . . . . . . . . .
Turniergraphen mit vier Knoten . . . . . . . . . . . . . . . . .
Turniergraphen mit drei, fünf und sechs Knoten . . . . . . . . .
Turniergraphen mit n Knoten . . . . . . . . . . . . . . . . . . .
Fahrstrecke vom Start zum Ziel als gewichteter Digraph . . . .
Teilergraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
75
76
76
77
78
78
80
80
81
82
82
83
83
83
84
8.1
8.2
8.3
Räumliche Graphen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Körper mit Löchern werden nicht untersucht. . . . . . . . . . . . . . . . . . .
Schrägbilder von Graphen, in denen sich die Kanten schneiden
(rote Markierungen). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schaltplan, in dem sich Leitungen kreuzen. . . . . . . . . . . . . . . . . . . .
Vorlage für die Beschichtung einer Leiterplatte nach dem Schaltplan aus Abbilung 8.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dehnen eines Würfels - Abschließend liegen alle Ecken und Kanten auf einer
Ebene. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dehnen einer vierseitigen Pyramide. . . . . . . . . . . . . . . . . . . . . . . .
Vierseitige Pyramide mit geradlinigen Kanten. . . . . . . . . . . . . . . . . .
Darstellung eines Würfels als platter Graph mittels einer sich ausdehnenden
Kugel - hier mit einem Luftballon. . . . . . . . . . . . . . . . . . . . . . . . .
Ebene Graphen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zwei isomorphe Graphen - einmal eben und einmal nicht. . . . . . . . . . . .
Beweis, dass ein follständiges Fünfeck nicht plättbar ist. . . . . . . . . . . . .
Bipartiter Graph - In zwei disjunkten Mengen der Ecken befinden sich keine
vollständigen Kanten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Auftrag zur Versorung von drei Häusern mit Gas, Wasser und Strom. . . . .
Beweis, dass ein K3,3 -Graph nicht plättbar ist. . . . . . . . . . . . . . . . . .
Unterilte Graphen des K5 und des K3,3 . . . . . . . . . . . . . . . . . . . . . .
Algorithmus zur Bestimmung der Plättbarkeit eines Graphen. . . . . . . . . .
Demontage eines Graphen bis ein K3,3 -Graph entstanden ist. . . . . . . . . .
Der linke Graph besitzt zwei Flächen - der rechte eine. . . . . . . . . . . . . .
Schrittweises Entfernen von Kanten eines beliebigen Graphen. . . . . . . . . .
85
85
8.4
8.5
8.6
8.7
8.8
8.9
8.10
8.11
8.12
8.13
8.14
8.15
8.16
8.17
8.18
8.19
8.20
189
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
86
87
87
87
88
88
89
90
91
91
92
93
93
94
94
95
95
96
8.21
8.22
8.23
8.24
8.25
Ebene Graphen, die keine Körper sind. . . . . . . . . . . . . . .
Beispiel für platonsiche Körper. . . . . . . . . . . . . . . . . . .
Die platonsichen Graphen zu den Körpern aus Abbildung 8.22.
Würfel und schiefer Körper - gleiche platonische Graphen. . . .
Drei verschiedene Arten von Parkettierung. . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 97
. 99
. 99
. 101
. 102
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
9.11
9.12
9.13
9.14
9.15
9.16
9.17
Beispiel Färbung einer Landkarte . . . . . . . . . . . .
Anwendung des Vierfarbensatzes . . . . . . . . . . . .
Anwendung auf einen bipartiten Graphen . . . . . . .
Chromatisches Polynom einer Kette . . . . . . . . . .
Erster Schritt des Algorithmus . . . . . . . . . . . . .
Zweiter Schritt des Algorithmus . . . . . . . . . . . . .
Erneuter Aufruf des Algorithmus . . . . . . . . . . . .
Darstellung des Algorithmus als Struktogramm . . . .
Beispiel Ampelschaltung . . . . . . . . . . . . . . . . .
Konfliktgraph zur Ampelschaltung . . . . . . . . . . .
Nachbarschaften ESC 2008 . . . . . . . . . . . . . . .
Einfache Beispiele für Museen . . . . . . . . . . . . . .
Polygonstruktur eines Museums . . . . . . . . . . . . .
Triangulierung der Struktur . . . . . . . . . . . . . . .
Kantenfärbung eines vollständigen bipartiten Graphen
Beispiele für lateinische Quadrate . . . . . . . . . . . .
Sonderfall eines lateinischen Quadrates (Sudoku) . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
105
105
109
110
112
112
113
114
115
115
117
118
118
118
121
122
123
124
127
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10.1 Sichere Komminikation? . . . . . . . . . . . . . . . . . . . . . . .
10.2 Symmetrische Verschlüsselung . . . . . . . . . . . . . . . . . . . .
10.3 Dabei sind die oberen Buchstaben die des Klartextes, die unteren
heimtextes. Quelle:http://www.it.fht-esslingen.de . . . . . . . . .
10.4 Schematische Darstellung der symmetrischen Verschlüsselung . .
10.5 Blockchiffre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.6 Schematische Darstellung von One-time-pad . . . . . . . . . . . .
10.7 Asymmetrische Verschlüsselung . . . . . . . . . . . . . . . . . . .
10.8 Schematische Darstellung der asymmetrischen Verschlüsselung .
10.9 Eine Einwegfunktion im Strassenverkehr . . . . . . . . . . . . . .
10.10Scheck. Quelle: www.freewebs.com/mugumania/material/ . . . .
10.11Schematische Darstellung der digitalen Signatur . . . . . . . . . .
10.12Hashfunktion bei Signieren einer Nachricht . . . . . . . . . . . .
. .
. .
die
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. . . . .
. . . . .
des Ge. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
127
128
129
129
130
131
132
135
136
137
11.1
11.2
11.3
11.4
11.5
11.6
11.7
11.8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
146
148
150
151
152
153
156
158
Challenge and Response . . . . . . . . . . .
Graph zu y = 7x mod 229 . . . . . . . . . .
Diffie-Hellman-Schlüsselvereinbarung . . . .
“Man in the middle“-Angriff . . . . . . . . .
ElGamal-Verschlüsselung . . . . . . . . . .
ElGamal-Signatur . . . . . . . . . . . . . .
Shamirs No-Key-Protokoll . . . . . . . . . .
3 Beispielgraphen für Knobeln über Telefon
190
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12.1
12.2
12.3
12.4
12.5
Niccolo Tartaglia“ Fontana (1499-1557) . . . . . . . . .
”
Kommunikation von Merlin und Arthur . . . . . . . . .
Grundriss des Gebäudes mit der magischen Türe . . . .
Ablauf beim Verfahren der isomorphen Graphen (12.2.2)
Kommuniktion beim Fiat-Shamir-Algorithmus (12.2.3) .
.
.
.
.
.
.
.
.
.
.
13.1 Färbung mit vier Farben ist notwendig . . . . . . . . . . . .
13.2 Four colors suffice . . . . . . . . . . . . . . . . . . . . . . . .
13.3 Landkarte als Graph dargestellt . . . . . . . . . . . . . . . .
13.4 5-färbbare Graphen . . . . . . . . . . . . . . . . . . . . . . .
13.5 Knoten v mit Grad 5 . . . . . . . . . . . . . . . . . . . . . .
13.6 v hat nur 4 Nachbarknoten . . . . . . . . . . . . . . . . . .
13.7 Es gibt noch keine freie Farbe für v . . . . . . . . . . . . . .
13.8 Eine Umfärbung führt zum Erfolg . . . . . . . . . . . . . .
13.9 Ein rot-blau-Weg führt von v1 zu v2 - Umfärben ist so nicht
13.10Das Umfärben des gelb-orange-Weges führt zum Erfolg . . .
191
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
160
162
165
166
167
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
möglich
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
175
176
177
179
180
180
181
181
182
182
Tabellenverzeichnis
2.1
2.2
Mit n wird der Monat, mit Fn die Anzahl der Kaninchenpaare im Monat n
bezeichnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die ersten 13 Fibonacci Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . .
12.1
12.2
12.3
12.4
Definitionen von Durchführbarkeit und Korrektheit . . . . . . . . . . . . . . . 161
Merlins mögliche Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Die möglichen Antworten von Ã, falls τ bekannt ist und H aus G0 erzeugt wurde166
Die möglichen Antworten von à beim Fiat-Shamir-Algorithmus . . . . . . . . 169
192
8
9
Herunterladen