ZUSAMMENFASSUNG - DISKRETE MATHEMATIK 1 Inhaltsverzeichnis 1. Logik 1 Logik 1.1 Aussagenlogik . . . . . . . . . . . . . . . . . . 1.2 Prädikatenlogik . . . . . . . . . . . . . . . . . 1 1 2 2 Relationen 2.1 Eigenschaften von Relationen auf 2.2 Operationen auf Relationen . . . 2.3 Äquivalenzrelationen . . . . . . . 2.4 Ordnungsrelationen . . . . . . . . 2.5 Relationen als Funktionen . . . . A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 3 3 4 3 Kombinatorik 3.1 Kombinatorische Regeln . . . . . 3.2 Inklusion-Exklusion . . . . . . . . 3.3 Euler’sche ϕ-Funktion . . . . . . 3.4 Schubfachprinzip . . . . . . . . . 3.5 Binomialkoeffizienten . . . . . . . 3.6 Wichtige spezielle Zählprobleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 4 4 5 5 5 4 Rekursionsgleichungen 4.1 Lösen von Rekursionsgleichungen . . . . . . . 4.2 Fraktale . . . . . . . . . . . . . . . . . . . . . 6 6 6 5 Graphentheorie 5.1 Spezielle Graphen . . . . . . . . 5.2 Bäume . . . . . . . . . . . . . . . 5.3 Eulertouren und Hamiltonkreise . 5.4 Planare Graphen . . . . . . . . . 5.5 Färben von Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 7 7 8 8 6 Zahlentheorie 6.1 Teilbarkeit . . . . . . . . . . . . 6.2 Primzahlen . . . . . . . . . . . 6.3 ggT und kgV . . . . . . . . . . 6.4 Erweiterter Euklid-Algorithmus 6.5 Modulare Arithmetik . . . . . . 6.6 Chinesischer Restsatz . . . . . 6.7 Gruppen . . . . . . . . . . . . . 6.8 Körper . . . . . . . . . . . . . . 6.9 Polynome über einen Körper K 6.10 Lagrange-Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 8 9 9 9 10 10 11 11 12 . . . . 12 12 13 13 13 . . . . . . . . . . 7 Anwendungen 7.1 RSA (Rivest, Shamir, Adlemann) 7.2 Diffie Hellman-Protokoll . . . . . 7.3 Secret Sharing . . . . . . . . . . 7.4 Codierung . . . . . . . . . . . . . A Fixpunktfreie Permutation LOGIK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1. Aussagenlogik Aussage: Eine Aussage ist ein sprachlicher Ausdruck, der entweder wahr oder falsch ist. Zusammengesetzte Formel: Eine zusammengesetzte Formel, wie z.B. A ∧ (B ∨ C), besteht aus Atomformeln (A, B, C) und Junktoren (∧, ∨). A 0 0 1 1 B 0 1 0 1 ¬A 1 0 - A∧B 0 0 0 1 A∨B 0 1 1 1 A⊕B 0 1 1 0 A→B 1 1 0 1 A↔B 1 0 0 1 Tab. 1: Wahrheitstabelle für die Junktoren Negation (¬), Konjunktion (∧), Disjunktion (∨), XOR (⊕), Implikation (→) und Äquivalenz (↔). Tautologie: Eine Formel F ≡ 1 heisst Tautologie. Unerfüllbarkeit: Eine Formel F ≡ 0 heisst unerfüllbar. Beispiel: Die Formel F ≡ ((A∧B)∨(¬C))∧(A∨B) nimmt für die Belegung A = 1 und B = C = 0 den Wahrheitswert 1 an. ∧ ∨ ¬ ∧ A ∨ B C A B Abb. 1: Syntaxbaum der Formel. 13 Semantische Äquivalenz: Zwei Formeln F und G sind semantisch äquivalent, falls sie für jede Belegung den gleichen Wahrheitswert haben. F ≡G oder F ⇔G Dies gilt genau dann, wenn F ↔ G eine Tautologie ist. SEITE 1 JEROME DOHRAU ZUSAMMENFASSUNG - DISKRETE MATHEMATIK 1.1.1. Logische Gesetze 1 LOGIK Hinweis: F ≡ G hat die gleiche Bedeutung, wie F |= G und G |= F zusammen. F ∧F ≡F und F ∧G≡G∧F und F ∨F ≡F F ∨G≡G∨F 1.1.4. Resolution (F ∧ G) ∧ H ≡ F ∧ (G ∧ H) (F ∨ G) ∨ H ≡ F ∨ (G ∨ H) F ∧ (G ∨ H) ≡ (F ∧ G) ∨ (F ∧ H) Gegeben ist eine Formel F in konjunktiver Normalform und wir wollen herausfinden, ob sie erfüllbar ist. F ∨ (G ∧ H) ¬(F ∧ G) ≡ ≡ (F ∨ G) ∧ (F ∨ H) ¬F ∨ ¬G F = (L1 ∨ . . . ∨ Lm1 ) ∧ . . . ∧ (Lk ∨ . . . ∨ Lmk ) ¬(F ∨ G) ≡ ¬F ∧ ¬G Wir nehmen an, F ist erfüllbar. Vorbereitung: Wir schreiben die Formel F folgendermassen als Menge: 1.1.2. Normalformen Literal: Ist A eine Atomformel, so sind A und ¬A Literale. F = {{L1 , . . . , Lm1 }, . . . , {Lk , . . . , Lmk }} Konjunktive Normalform: Eine Formel F ist in konjunktiver Normalform, wenn sie eine Konjunktion von Disjunktionstermen ist: mi k ^ _ F = Lij Resolutionsschritt: Wenn ein Literal L in einer und die Verneinung ¬L in einer anderen Klausel vorkommt i=1 j=1 {L1 , . . . , Lk , L} {L01 , . . . , L0l , ¬L} dann ist L oder ¬L nicht wahr. Da wir angenommen haben, dass F wahr ist, muss auch die Disjunktion der restlichen Literale wahr sein. Wir fügen also den Resolventen Beispiel: (A ∨ B ∨ C) ∧ (¬A ∨ B) {L1 , . . . , Lk , L01 , . . . , L0l } der Klauselmenge von F hinzu. Disjunktive Normalform: Eine Formel F ist in disjunktiver Normalform, wenn sie eine Disjunktion von Konjunktionstermen ist: mi k _ ^ F = Lij Abbruchbedingung: Wir wiederholen den Resolutionsschritt, bis wir entweder die Leere menge {} resolviert haben oder keine neue Klausel resolvieren können. Beispiel: Für jede Tautologie ist F ≡ A ∨ ¬A sowohl KNF wie auch DNF. Ähnlich ist F ≡ A ∧ ¬A KNF und DNF jeder unerfüllbaren Formel. Wir können die leere Menge nur dann resolvieren, wenn {Lij } und {¬Lij } in der Klauselmenge vorkommen, welche offensichtlich nicht beide gleichzeitig wahr sein können. In diesem Fall liegt ein Widerspruch vor und die Annahme, F sei erfüllbar, folglich falsch. Hinweis: Mit der Wahrheitstabelle einer Formel lässt sich oft einfach eine KNF oder DNF finden. 1.2. Prädikatenlogik 1.1.3. Modelle und semantische Folgerungen Prädikat: Ein Prädikat ist eine Aneinanderreihung von Wörtern einer natürlichen Sprache, die mehrere oder keine Leerstellen enthält. Setzt man Eigennamen in alle Leerstellen erhält man einen Aussagesatz der natürlichen Sprache. i=1 j=1 Modell: Eine Belegung A, für die eine Formel F wahr ist, heisst Modell von F : A |= F Semantische Folgerung: Eine Formel G heisst semantische Folgerung von F1 , . . . , Fn , falls für alle Belegungen A mit A |= F1 , . . . , A |= Fn auch A |= G gilt: F1 , . . . , Fn |= G SEITE 2 oder F1 , . . . , Fn ⇒ G Beispiel: Das Prädikat „h i ist eine Primzahl.“ wird wahr, wenn man beispielsweise 7 in die Leerstelle einsetzt. 1.2.1. Quantoren Existenzquantor: Die Aussage ∃x (P (x)) ist wahr, wenn es mindestens ein x gibt für das P (x) wahr ist. JEROME DOHRAU ZUSAMMENFASSUNG - DISKRETE MATHEMATIK Allquantor: Die Aussage ∀x (P (x)) ist wahr, wenn P (x) für alle x wahr ist. ∀x (P (x)) 2 Transitiver Abschluss: Der transitive Abschluss einer Relation R ist definiert als: R0 = R ∪ (R ◦ R) ∪ (R ◦ R ◦ R) ∪ . . . → P (c) P (c) → RELATIONEN ∃x (P (x)) ¬∀x (P (x)) ≡ ∃x (¬P (x)) ¬∃x (P (x)) ≡ ∀x (¬P (x)) ∀x (P (x) ∧ Q(x)) ≡ ∀x (P (x)) ∧ ∀x (Q(x)) ∃x (P (x) ∨ Q(x)) ≡ ∃x (P (x)) ∨ ∃x (Q(x)) Beispiel: Es gibt unendlich viele Primzahlen: 2.3. Äquivalenzrelationen Äquivalenzrelation: Eine Relation ∼ auf A heisst Äquivalenzrelation, falls sie symmetrisch, transitiv und reflexiv ist. ∀n ∃p ∀a ∀b (p > n ∧ (p = a · b → a = 1 ⊕ b = 1)) Partition: Eine Partition einer Menge A ist eine MengenS familie (Ai )i∈I mit i∈I Ai = A und ∀i = 6 j : Ai ∩ Aj = ∅. 2. Relationen Äquivalenzklassen: Eine Äquivalenzrelation partitioniert eine Menge A in Äquivalenzklassen [a] = {b ∈ A | b ∼ a}. Relation: Eine binäre Relation R von A nach B ist eine Teilmenge des kartesischen Produkts der Mengen A und B: Beispiel: Die Relation ≡m unterteilt die ganzen Zahlen Z in m Äquivalenzklassen [a] = {b ∈ Z | ∃n ∈ Z : b = m·n+a} wobei 0 ≤ a ≤ m − 1. R⊆A×B Wir schreiben oft a R b für (a, b) ∈ R. Relationen können auch als |A| × |B|-Matrix oder als gerichteter Graph dargestellt werden. 2.1. Eigenschaften von Relationen auf A Reflexiv: Eine Relation auf A heisst reflexiv, falls für alle a ∈ A gilt: (a, a) ∈ R Symmetrisch: Eine Relation auf A heisst symmetrisch, falls für alle a, b ∈ A gilt: (a, b) ∈ R ⇔ (b, a) ∈ R Antisymmetrisch: Eine Relation auf A heisst antisymmetrisch, falls für alle a, b ∈ A gilt: 2.4. Ordnungsrelationen Ordnungsrelation: Eine Relation ≤ auf A heisst Partialordnung, falls sie reflexiv, antisymmetrisch und transitiv ist. Dabei ist es möglich, dass manche Paare nicht vergleichbar sind. Eine Partialordnung, durch die alle Paare paarweise vergleichbar sind, heisst Totalordnung oder lineare Ordnung auf A. Maximales Element: Ein Element x heisst maximales Element, falls gilt: ¬∃y : x ≤ y Grösstes Element: Ein Element x heisst grösstes Element, falls gilt: ∀y 6= x : y ≤ x (a, b) ∈ R ∧ (b, a) ∈ R ⇒ a = b {1, 2, 3} 30 Beispiel: a ≤ b ∧ b ≤ a ⇒ a = b Transitiv: Eine Relation auf A heisst transitiv, falls für alle a, b, c ∈ A gilt: •3 b +/ •a •c (a, b) ∈ R ∧ (b, c) ∈ R ⇒ (a, c) ∈ R 2.2. Operationen auf Relationen Komposition: Seien R ⊆ A×B und Q ⊆ B×C Relationen, dann heisst die Relation R ◦ Q ⊆ A × C Komposition von R und Q, falls gilt: (a, c) ∈ R ◦ Q :⇔ ∃b ∈ B : (a, b) ∈ R ∧ (b, c) ∈ Q SEITE 3 6 10 15 {1, 2} {1, 3} {2, 3} 2 3 5 {1} {2} {3} 1 ∅ Abb. 2: Links das Hasse-Diagramm der Teiler von 30. Rechts das HasseDiagramm der Potenzmenge von {x, y, z}, geordnet durch die TeilmengenRelation ⊆. Hasse-Diagramm: Ein Hasse-Diagramm ist eine graphische Darstellung endlicher Partialordnungen. Zwei Knoten a und b werden durch eine Kante verbunden, wenn a ≤ b gilt und es kein c gibt mit a ≤ c ≤ c. Es werden also nur JEROME DOHRAU ZUSAMMENFASSUNG - DISKRETE MATHEMATIK direkte Nachbarn verbunden. Die Richtung einer Kante gibt an, welches der beiden verbundenen Elementen grösser ist. Schleifen bei Reflexivität werden weggelassen. 3 KOMBINATORIK geordnet n mit Zurücklegen ohne Zurücklegen ungeordnet n+k−1 k n k n! (n−k)! k 2.5. Relationen als Funktionen Tab. 2: Anzahl der Möglichkeiten für k Ziehungen aus einer Urne mit n Elementen. Funktion: Eine Relation f ⊆ A × B heisst funktional, falls: der Summe der Kardinalitäten |Ai | der Mengen: ∀a∃!b : (a, b) ∈ f n n [ X Ai = |Ai | Man spricht von einer Funktion und schreibt f : A → B oder f : a 7→ b. Komposition: Die Komposition zweier Funktionen f und g ist definiert als: i=1 Produktregel: Die Anzahl der Möglicheiten aus verschiedenen Mengen Ai je ein Element zu ziehen, entspricht dem Produkt der Kardinalitäten |Ai | der Mengen: (g ◦ f )(a) = g(f (a)) Hinweis: Bei der Komposition von Funktionen wird die erste Funktion nach der zweiten ausgeführt. n × A = i=1 3.2. Inklusion-Exklusion Für zwei Mengen A1 und A2 gilt offensichtlich: 0 |A1 ∪ A2 | = |A1 | + |A2 | − |A1 ∩ A2 | Surjektivität: Eine Funktion f heisst surjektiv, falls jedes Element der Zielmenge mindestens einmal als Funktionswert angenommen wird: ∀b∃a : f (a) = b Bijektivität: Eine Funktion f heisst bijektiv, falls sie injektiv und surjetiv ist. An diesem Beispiel erkennt man gut das InkusionExklusion-Prinzip: Will man die Elemente von A1 ∪ A2 zählen addiert man zuerst |A1 | und |A2 |. Jetzt hat man aber alle Elemente in A1 ∩ A2 doppelt gezählt. Man subtrahiert also |A1 ∩ A2 |. Im allgemeinen Fall mit n Mengen gilt: n n [ X Ai = (−1)r−1 A • • • • B • • A • • • • B • • • • Abb. 3: Veranschaulichung der Injektivität (Links), Surjektivität (Mitte) und Bijektivität (Rechts). r \ Ai j X 1≤i1 <i2 <...<ir ≤n j=1 r=1 i=1 • • • |Ai | i=1 Gleichmächtigkeit: Gibt es eine bijektive Abbildung f : A → B zwischen zwei Mengen A und B, dann gilt: a 6= a → f (a) 6= f (a ) B • • • • n Y |A| = |B| Injektivität: Eine Funktion f heisst injektiv, falls jedes Element der Zielmenge höchstens einmal als Funktionswert angenommen wird: A i 2.5.1. Eigenschaften von Funktionen 0 i=1 3.3. Euler’sche ϕ-Funktion Die Euler’sche ϕ-Funktion ist definiert als: ϕ(n) := k ∈ {0, . . . , n − 1} | ggT(k, n) = 1 Für zwei verschiedene Primzahlen p und q gilt: 3. Kombinatorik 3.1. Kombinatorische Regeln Summenregel: Die Anzahl der Möglichkeiten ein Element aus paarweise disjunkten Mengen Ai auszuwählen, ist gleich SEITE 4 ϕ(p) = p−1 ϕ(p · q) = ϕ(p) · ϕ(q) = (p − 1)(q − 1) Für Q eine beliebige ganze Zahl mit der Primfaktorzerlegung r n = i=1 plii gilt: ϕ(n) = r Y (pi − 1) · plii −1 i=1 JEROME DOHRAU ZUSAMMENFASSUNG - DISKRETE MATHEMATIK 3 KOMBINATORIK 3.4. Schubfachprinzip 3.6. Wichtige spezielle Zählprobleme Wenn n Objekte auf k < n Schubfächer verteilt werden, dann enthält mindestens ein Schubfach mindestens 2 Objekte. 3.6.1. Stirling-Dreieck erster Art 3.5. Binomialkoeffizienten Der Binomialkoeffizient nk lässt sich als Anzahl der Möglichkeiten, k aus n Elementen auszuwählen, auffassen. n k n k n k m+n r (x + y)n = = = = = k=0 S0,0 = 1 Sn,0 = 0 Sn,n = 1 Sn,k = 0 falls k > n Die nachfolende Rekursionsgleichung bildet das StirlingDreieck erster Art. Sn,k = Sn−1,k−1 + (n − 1) · Sn−1,k n! k!(n − k)! n n−k n−1 n−1 + k−1 k r X m n k=0 n X Für Anzahl der Möglichkeiten Sn,k einer Permutationen von n Elementen mit genau k Zyklen gilt: k=0 0 n=2 0 n=4 0 n=5 1 1 2 6 24 k=2 1 0 n=3 k=1 0 n=1 (Vandermonde-Identität) k r−k n n−k k x y k 1 n=0 k=3 3 1 11 k=4 6 1 k=5 50 35 10 1 Abb. 5: Stirling-Dreieck erster Art. k 3.6.2. Stirling-Dreieck zweiter Art m n r−k Für die Anzahl der Möglichkeiten, eine Menge mit n Elementen in k Partitionen aufzuteilen gilt: Abb. 4: Die Vandermonde-Identität lässt sich als kombinatorisches Problem auffassen: Unterteilt man eine (m + n)-Menge in zwei Teilmengen mit m und n Elementen, wie viele Möglichkeiten gibt es dann k Elemente aus der einen Teilmenge und r − k Elemente aus der anderen Teilmenge auszuwählen. Addiert man alle Möglichkeiten von k = 0 bis k = r, erhält man die Anzahl der Möglichkiten, r Elemente aus m + n auszuwählen. S0,0 = 1 Sn,0 = 0 Sn,n = 1 Sn,k = 0 falls k > n Die nachfolende Rekursionsgleichung bildet das StirlingDreieck zweiter Art. Sn,k = Sn−1,k−1 + k · Sn−1,k 3.5.1. Abschätzung des Binomialkoeffizienten n k k ≤ k=0 n n · e k ≤ k k 1 n=0 0 n=1 0 n=2 3.5.2. Stirling-Approximation √ n n e Mit der Stirling-Approximation n! ≈ 2πn erhält man durch Einsetzen und Vereinfachen folgende Approximation des Binomialkoeffizienten: √ n 2πn ne n ≈ √ ≈ 2n·h(x) p k k n−k n−k k 2πk e 2π(n − k e Wobei h(x) = −x log2 x − (1 − x) log2 (1 − x) die binäre Entropiefunktion ist. SEITE 5 0 n=5 0 1 1 1 1 1 0 n=3 n=4 k=1 k=2 1 3 7 k=3 1 6 k=4 1 15 25 10 k=5 1 Abb. 6: Stirling-Dreieck zweiter Art. Für die Anzahl Äquivalenzrelationen auf einer n-Menge gilt: Bn = n X Sn,k k=0 JEROME DOHRAU ZUSAMMENFASSUNG - DISKRETE MATHEMATIK 5 GRAPHENTHEORIE 4. Rekursionsgleichungen 5. Graphentheorie 4.1. Lösen von Rekursionsgleichungen Graph: Ein Graph G ist ein Tupel (V, E), wobei V eine Menge von Knoten und E ⊆ V 2 eine Menge von Kanten ist. Zu einer Rekursionsgleichung der Form Fn = a1 Fn1 + a2 Fn2 + . . . + ar Fnr erhält man das charakteristische Polynom, indem man alle Fni durch λni ersetzt: Ungerichteter Graph: Ein Graph G = (V, E) heisst ungerichtet, falls (u, v) ∈ E ⇔ (v, u) ∈ E gilt. •d χ(x) = a1 λn1 + a2 λn2 + . . . + ar λnr − λn • • Man bestimmt nun alle Nullstellen λi dieses Polynoms und erhält die allgemeine Lösung: •B • • Fn = c1 λn1 + c2 λn2 + . . . + ck λnk • • Abb. 8: Links ein gerichteter und rechts ein ungerichteter Graph. Hinweis: Kommte eine Nullstelle λi k-fach vor, verwendet man in der allgemeinen Lösung statt ci λn : ci1 λni + ci2 nλni + ... + cik nk−1 λni Durch Einsetzen der Anfangswerte in die allgemeine Lösung erhält man die spezielle Lösung. Beispiel (Fibonacci): Für die Fibonacci-Folge gilt folgende Rekursionsvorschrift: F0 = 0, F1 = 1, Fn = Fn−1 + Fn−2 Damit erhält man das charakteristische Polynom λ2 − λ − 1 √ 1± 5 mit den Nullstellen λ1,2 = 2 und somit die allgemeine Lösung Fn = c1 λn1 + c2 λn2 . Setzt man die gegebenen Anfangswerte ein erhält man c1 = √15 und c2 = − √15 . Die explizite Darstellung der Fibonacci-Folge ist somit: √ !n √ !n 1 1 1+ 5 1− 5 −√ Fn = √ 2 2 5 5 4.2. Fraktale Grad: Der Grad deg(v) eines Knotens v ist gleich der Anzahl der Kanten, mit denen er verbunden ist. Manchmal unterscheidet man noch den Grad deg− (v) eingehender Kanten und den Grad deg+ (v) ausgehender Kanten. Für einen gerichteten Graphen gilt X X deg− (v) = deg+ (v) = |E| v∈V v∈V In einem ungerichteten Graphen gilt X deg(v) = 2|E| v∈V Einfacher Graph: Ein Graph G heisst einfach, falls er kei•]] und keine Mehrfachkanten • • enthält. ne Loops Weg: Ein Weg W = (v0 , v1 , . . . , vl ) ist eine Folge von Knoten, für die (v1 , vi+1 ) ∈ E für alle i = 0, . . . , l − 1 gilt. Pfad: Ein Pfad ist ein Weg, bei dem alle Knoten paarweise Verschieden sind. Kreis: Ein Kreis C = (v0 , v1 , . . . , vl ) ist eine Folge von paarweise verschiedenen Knoten, für die (v1 , vi+1 ) ∈ E für alle i = 0, . . . , l − 1 und (vl , v0 ) ∈ E gilt. Abb. 7: Cantormenge. • Dimension: Eine Streckung um Faktor f erzeugt k Kopien. Für die Dimension d gilt dann: k = fd ⇒ d = logf k = log k log f Beispiel: Wird die Cantormenge (siehe Abbildung 7) um Faktor 3 gestreckt, erhält man 2 exakte Kopien; sie hat also log 2 die Dimension d = log 3 ≈ 0.6309. SEITE 6 • • • • • • • • • Abb. 9: Dieser Graph enthält einen Weg (grün), einen Pfad (rot) und einen Kreis (blau). Teilgraph: Ein Graph H = (V 0 , E 0 ) heisst Teilgraph von G = (V, E), falls V 0 ⊆ V und E 0 ⊆ V 0 × V 0 und E 0 ⊂ E. JEROME DOHRAU ZUSAMMENFASSUNG - DISKRETE MATHEMATIK 5 GRAPHENTHEORIE Induzierter Teilgraph: Ein Graph H = (V 0 , E 0 ) heisst ein von V 0 induzierter Teilgraph, falls H ein Teilgraph von G = (V, E) ist und für alle u, v ∈ V 0 gilt (u, v) ∈ E ⇒ (u, v) ∈ E 0 . Wir schreiben: Baum z • Brücke: Eine Kante e ∈ E heisst Brücke, falls der Graph G0 = (V, E \ {e}) eine Zusammenhangskomponente mehr hat als G = (V, E). 5.1. Spezielle Graphen K1 K2 • • • K3 K4 K5 • • • • • • • • • • • • C3 C4 C5 • • • • • • • • • • • • • • • • • •} • • • {z Wald Abb. 13: Vier verschiedene Bäume. Zusammen bilden sie einen Wald. G ist ein Baum. G ist zusammenhängend und |V | = |E| + 1. G ist kreislos und |V | = |E| + 1. G ist zusammenhängend und jede Kante ist eine Brücke. v) G ist kreislos und falls eine zusätzliche Kante eingeführt wird, erhält G einen Kreis. vi) Zu allen u, v ∈ V gibt es genau einen u-v-Pfad. i) ii) iii) iv) Spannbaum: Man nennt H = (V, E 0 ) einen Spannbaum von G = (V, E), falls H ein Baum ist und E 0 ⊆ E. 5.3. Eulertouren und Hamiltonkreise Eulertour: Eine Eulertour ist ein geschlossener Kantenzug, der jede Kante genau einmal enthält. Abb. 10: Vollständige Graphen Kn mit n Knoten. • { • • • • • • | H = G[V 0 ] Partition, Zusammenhangskomponente: Eine Menge von Knoten Vi ⊆ V heisst Partition von V , falls für alle u, v ∈ Vi ein u-v-Pfad existiert. Der von Vi induzierte Teilgraph G[Vi ] heisst dann Zusammenhangskomponente von G = (V, E). }| • C6 • • • • • Ein zusammenhängender Graph hat genau dann eine Eulertour, wenn alle Knotengrade gerade sind. • A Abb. 11: Kreise Cn der Länge n (n ≥ 3). C • • m • |• • • • • • • • • • • •{z• n • • • •} • • • m • • • • n • • • • • • • • • • • • • • D B • • • Abb. 12: Das m×n-Gitter Mm,n (Links), der vollständige bipartite Graph Km,n (Mitte) und der vierdimensionale Hyperkubus Q4 (Rechts). Abb. 14: Ist es möglich alle Brücken nacheinander zu passieren, ohne eine auszulassen oder mehr als einmal zu überschreiten? Mit anderen Worten: Gibt es eine Eulertour? Die Antwort ist Nein, denn alle Knotengrade sind ungerade. Hamiltonkreis: Ein Hamiltonkreis ist ein Kreis, der jeden Knoten genau einmal besucht. Ein Graph, der einen Hamiltonkreis enthält heisst hamiltonsch. • • 5.2. Bäume Baum: Ein ungerichteter, einfacher Graph ohne Kreise heisst Wald. Ein zusammenhängender Wald heisst Baum. • • • • • Blatt: Ein Knoten v ∈ V mit deg(v) = 1 heisst Blatt. Jeder Baum mit |V | ≥ 2 hat mindestens zwei Blätter. Folgende Aussagen über einen einfachen Graphen G = (V, E) sind äquivalent: SEITE 7 • • • • • • • • • • • • • Abb. 15: Das Pentagondodekaeder ist, wie alle platonischen Körper, hamiltonsch. JEROME DOHRAU ZUSAMMENFASSUNG - DISKRETE MATHEMATIK 6 ZAHLENTHEORIE Das Hamiltonkreisproblems gehört zu den NP-vollständigen Problemen. Jedoch ist jeder Graph G = (V, E) mit Minimalgrad |V2 | hamiltonsch. 6. Zahlentheorie 5.4. Planare Graphen Teilbarkeit: Eine Zahl a ∈ Z teilt eine andere Zahl b ∈ Z, falls gilt: a | b :⇔ ∃c ∈ Z : a · c = b Planarität: Ein Graph G = (V, E) heisst planar, wenn er so gezeichnet werden kann (in die Ebene eingebettet), dass sich keine Kanten überkreuzen. Dabei müssen die Kanten nicht unbedingt gerade Linien sein. 6.1. Teilbarkeit Falls ein entsprechendes c existiert, ist es eindeutig und man schreibt c = ab . Für die Teilbarkeit gelten folgende Eigenschaften: • • • • a|b ∧ b|c ⇒ a|c • • • • a|b ∧ b|a ⇒ a = b ∨ a = −b a | b ∧ a | c ⇒ a | (ub + vc) a | b ∨ a | c ⇒ a | bc Abb. 16: Der Graph K4 ist planar, auch wenn man es ihm je nach Darstellung nicht direkt ansieht. Ein Graph ist genau dann planar, wenn er keinen Teilgraphen enthält, der durch Unterteilung von K5 oder K3,3 entstanden ist. Ein planarer Graph G = (V, E) teilt die Ebene in f Gebiete. Dabeil gilt: |V | + f − |E| = 2 Für alle Zahlen a, d ∈ Z mit d 6= 0 gibt es eindeutige q, r ∈ Z, so dass a = qd+r mit 0 ≤ r < |d|. Wir schreiben Rd (a) := r. 6.2. Primzahlen Primzahl: Eine Zahl p ∈ N mit p > 1 heisst prim, falls 1 und p die einzigen positiven Teiler sind: Für einen planaren Graphen G = (V, E) mit |V | ≥ 3 gilt: ∀a > 0 : a | p → a = 1 ∨ a = p |E| ≤ 3|V | − 6 ⇒ deg(v) < 6 Ist der Graph zudem Dreiecksfrei, dann gilt: |E| ≤ 2|V | − 4 ⇒ deg(v) < 4 5.5. Färben von Graphen Ist p eine Primzahl, dann gilt für alle a, b ∈ Z: p|a·b → p|a ∨ p|b Jede positive ganze Zahl besitzt eine eindeutige Primfaktorzerlegung: Y a= pri i i Färbung: Eine Funktion c : V → {1, 2, . . . , k}, so dass (u, v) ∈ E ⇒ c(u) 6= c(v), heisst Färbung (Knotenfärbung) von G. Mann nennt dann den Graphen G k-färbbar. Zudem gibt es unendlich viele Primzahlen und beliebig grosse Lücken zwischen zwei aufeinander folgenden Primzahlen. Die Dichte π(n) = |{1 < k ≤ n | k prim}| beträgt: Chromatische Zahl: Die chromatische Zahl χ(G) eines Graphen ist die minimale Anzahl Farben k, so dass eine k-Färbung existiert. χ(Kn ) χ(Km,n ) = n = 2 2 (falls m · n ≥ 1) 2 n gerade χ(Cn ) = 3 n ungerade χ(Mm,n ) = Ein zusammenhängender Graph G ist genau dann bipartit (zweifärbbar), wenn er keine Kreise ungerader Länge enthält. Das heisst, dass auch alle Bäume bipartit sind. Jeder planare Graph hat χ(G) ≤ 4. SEITE 8 π(n) ∼ n log n 6.2.1. Primzahltests Für alle Primzahlen gilt (kleine fermatsche Satz): p prim ⇒ ap−1 ≡p 1 Daraus ergibt sich eine probabilistische Methode, um herauszufinden, ob eine Zahl prim ist: ap−1 6≡p 1 ⇒ p nicht prim JEROME DOHRAU ZUSAMMENFASSUNG - DISKRETE MATHEMATIK 6 ZAHLENTHEORIE 6.3. ggT und kgV 6.5. Modulare Arithmetik Grösster gemeinsamer Teiler (ggT): Eine Zahl d ∈ Z heisst grösster gemeinsamer Teiler von a ∈ Z und b ∈ Z, falls: Kongruenz modulo m: Zwei Zahlen a, b ∈ Z heissen kongruent modulo m > 1, genau dann, wenn m ihre Differenz teilt: a ≡m b :⇔ m | (a − b) d|a d|b Es gilt: c|a ∧ c|b ⇒ c|d a ≡m b Hinweis: Die ggT von 4 und 6 sind 2 und −2. Für den positiven Teiler schreiben wir ggT(a, b). Teilerfremd: Zwei Zahlen a, b ∈ Z heissen teilerfremd, falls ggT(a, b) = 1. Kleinstes gemeinsames Vielfaches (kgV): Eine Zahl m ∈ Z heisst kleinstes gemeinsames Vielfaches von a ∈ Z und b ∈ Z, falls: Rm (a + b) = Rm (a · b) = a + b ∈ [a + b] a · b ∈ [a · b] a + b ≡m a0 + b0 a · b ≡m a0 · b0 m|c Folgende Addition + und Multiplikation · auf den Restklsasen sind wohldefiniert: Für zwei beliebige ganze Zahlen a und b gilt: ⇔ a · b = ggT · kgV Für zweiQ Zahlen mit den Primfaktorzerlegungen a = und b = i psi i gilt: ggT(a, b) = Y = Y Q i pri i min(ri ,si ) pi i kgV(a, b) Für alle a, a0 , b, b0 ∈ Z mit a ≡m a0 und b ≡m b0 gilt dann: b|m kgV a = ggT b Rm Rm (a) + Rm (b) Rm Rm (a) · Rm (b) Die Relation ≡m ist eine Äquivalenzrelation; d.h. sie ist reflexiv, symmetrisch und transitiv. Die Partitionierung in Restklassen modulo m bildet Zm : Zm := [0], [1], . . . , [m − 1] a|m a|c ∧ b|c ⇒ ⇔ Rm (a) = Rm (b) max(ri ,si ) pi i 6.4. Erweiterter Euklid-Algorithmus Der erweiterte Euklid-Algorithmus berechnet neben dem grössten gemeinsamen Teiler ggT(a, b) zweier ganzen Zahlen a und b noch zwei ganze Zahlen s und t, die die folgende Gleichung erfüllen: ggT(a, b) = s · a + t · b + 0 1 2 3 4 0 0 1 2 3 4 1 1 2 3 4 0 2 2 3 4 0 1 [a] + [b] := [a + b] [a] · [b] := [a · b] 3 3 4 0 1 2 4 4 0 1 2 3 · 0 1 2 3 4 0 0 0 0 0 0 1 0 1 2 3 4 2 0 2 4 1 3 3 0 3 1 4 2 4 0 4 3 2 1 Tab. 4: Wertetabellen für die Addition (Links) und Multiplikation (Rechts) auf Z5 . Jede Restklasse von Zm besitzt ein additives Inverses: ∀[a] ∃[b] : [a] + [b] = [0] Für eine Restklasse [a] gibt es genau dann ein multiplikatives Inverses, falls a und m Teilerfremd sind: ggT(a, m) = 1 ⇔ ∃x : [a] · [x] = [1] 24 9 6 3 0 1 0 1 -1 0 1 -2 3 Tab. 3: Beispiel des erweiterten Euklid-Algorithmus mit den Zahlen 24 und 9. Der ggT(24, 9) = 3 = −1 · 24 + 3 · 9 lässt als linearkombination von 24 und 9 darstellen. SEITE 9 Das multiplikative Inverse lässt sich effizient mit dem erweiterten Euklyd-Algorithmus berechnen: ggT(a, m) = 1 = ua + vm ⇒ u ≡m a−1 Auf der folgendermassen definierten Menge Z∗m haben alle Elemente ein multiplikatives Inverses: Z∗m := {a ∈ Zm | ggT(a, m) = 1} JEROME DOHRAU ZUSAMMENFASSUNG - DISKRETE MATHEMATIK 6 ZAHLENTHEORIE 6.6. Chinesischer Restsatz Beispiel: (Z, +), (Z∗m , ·), (Q \ {0}, ·), (Rn , Vektoraddition) Seien m1 , m2 , . . . , mr paarweise teilerfremd: Abelsche Gruppe: Eine Gruppe heisst abelsch, falls sie kommutativ ist. ggT(mi , mj ) = 1 für i 6= j Dann lässt sich ein System von linearen Kongruenzen zu einer einzigen Kongruenz vereinfachen: x ≡m1 a1 x ≡m2 a2 ⇔ x ≡M a .. . x ≡mr ar Wobei sich M und a folgendermassen berechnen lassen: Qr M = i=1 mi −1 ! r X M M a = RM ai mi mi i=1 | {z } mod mi 6.6.1. Folgerungen aus dem chinesischen Restsatz Untergruppe: Eine Struktur (H, ◦) heisst Untergruppe von (G, ◦), falls H ⊆ G und H bezüglich der Operation ◦ auch eine Gruppe bildet. Es gilt |H| | |G|. Produkt: Das Produkt GX ×GY zweier Gruppen (GX , ◦X ) und (GY , ◦Y ) ist definiert als: (GX × GY , ◦) : (x1 , y1 ) ◦ (x2 , y2 ) := (x1 ◦X x2 , y1 ◦Y y2 ) 6.7.1. Homomorphismen und Isomorphismen Homomorphismus: Ein Homomorphisumus zwischen (GX , ◦X ) und (GY , ◦Y ) ist eine Abbildung ϕ : GX → GY mit: ∀a, b ∈ GX : ϕ(a ◦X b) = ϕ(a) ◦Y ϕ(b) Für zwei Primzahlen p, q und m = pq gilt aufgrund des chinesischen Restsatzes: x ≡p a1 x ≡m a ⇔ x ≡q a2 Isomorphismus: Ein Homomorphismus heisst Isomorphismus, falls ϕ bijektiv ist. Existiert eine solche Abbildung, dann heissen die beiden Gruppen isomorph und man schreibt GX ≡ GY . Daraus folgt: Beispiel: (Z2 , +) ≡ ({0, 1}, xor) a ∈ Zm ↔ a1 a2 ∈ Zp ∈ Zq d.h. Zm ≡ Zp × Zq 6.7.2. Ordnungen Für eine Zahl mit der Primfaktorzerlegung n = allgemein: Zm Z∗m ≡ Zpl1 × Zpl2 × . . . × Zplrr ≡ Z∗pl1 1 1 Qr i=1 plii gilt ord(a) := min{i > 0 | ai = e} 2 × Z∗pl2 2 × ... × Z∗plr r |Zm | = |Zpl1 | × |Zpl2 | × . . . × |Zplrr | 1 Hinweis: ar ◦ as = aRord(a) (r+s) und (ar )−1 = aord(a)−r . 2 |Z∗m | = |Z∗pl1 | × |Z∗pl2 | × . . . × |Z∗plr | = ϕ(m) 1 Ordnung: Die kleinste positive Zahl i mit ai = e, heisst Ordnung von a: 2 r Hinweis: Z4 6≡ Z2 × Z2 und Z∗4 6≡ Z∗2 × Z∗2 , weil der Primfaktor 2 zweimal vorkommt. Für eine beliebige Gruppe G und ein beliebiges a ∈ G gilt: a|G| = e und ord(a) | |G| Hinweis (Fermat): Für p prim und ein a mit p 6 | a gilt: ap−1 ≡p 1 6.7. Gruppen Hinweis (Euler): Für ein a und n mit ggT(a, n) = 1 gilt: Gruppe: Eine Gruppe (G, ◦) ist eine Menge G und eine binäre Operation ◦ : G × G → G mit den folgenden Eigenschaften: • ∀a, b, c ∈ G : (a ◦ b) ◦ c = a ◦ (b ◦ c) (Assoziativität) aϕ(n) ≡n 1 6.7.3. Zyklische Gruppen • ∃e ∈ G ∀a ∈ G : a ◦ e = e ◦ a = a (Neutrales Element) • ∀a ∈ G ∃a−1 ∈ G : a ◦ a−1 = a−1 ◦ a = e (Inversese) SEITE 10 Zyklische Gruppe: Eine Gruppe heisst zyklisch, falls ein g ∈ G existiert mit ord(g) = |G|. JEROME DOHRAU ZUSAMMENFASSUNG - DISKRETE MATHEMATIK Für eine beliebige Gruppe G und ein beliebiges a ∈ G ist hai := {e, a, a2 , a3 , . . . , aord(a)−1 } eine abelsche und zyklische Untergruppe von G. Ist ord(a) = |hai| = |G|, heisst a Generator von G. Hinweis: Eine zyklische Gruppe ist immer auch abelsch: r s a◦b=g ◦g =g r+s =g s+r 6 ZAHLENTHEORIE Für Körper gilt: 0·a = 0 a·b=0 ⇒ a=0 ∨ b=0 (a + b)2 = a2 + (1 + 1) · a · b + b2 Charakteristik χ(K) = ord(K,+) (1) =b◦a Die Umkehrung gilt jedoch nicht immer. Für jede Primzahl p und jedes n gibt es (bis auf Isomorphien) genau einen Körper GF (pn ) mit pn Elementen. Ein Körper, dessen Multiplikation keine Inverse besitzt, heisst Ring. 6.7.4. Diskrete Logarithmen Gegeben ist ein Generator g, der die Gruppe G = hgi erzeugt. Die Umkehrfunktion der diskreten Exponentialfunktion expg : N → G, n 7→ g n ist der diskrete Logarithmus: logb : G → N, b 7→ n, sodass g n = b Beispiel: Der Generator 2 erzeugt die Gruppe Z∗13 und log2 (5) = 9, da 29 ≡13 5. 6.9. Polynome über einen Körper K Polynomring: Die Menge K[x] aller Polynome über einen Körper K = GF (pn ) bilden einen Ring. K[x] := n nX o ai xi | ai ∈ K, an 6= 0 ∪ {0} i=0 Pr Es gilt deg(0) = −∞ und deg( i=0 aix ) = r, falls ar 6= 0. 6.7.5. Baby-Step, Giant-Step Algorithmus Die Berechnung des diskreten Logarithmus einer Zahl g i ist ein schwieriges Problem und wird daher auch in der Kryptographie angewendet. Ein naiver Ansatz wäre, alle g n zu berechnen, bis man g i erhält. Mit dem Baby-Step, GiantStep Algorithmus kann der diskrete Logarithmus jedoch ein wenig effizienter berechnet werden: 1. Speichere M Gruppenelemente folgendermassen als Tupel und sortiere diese nach ihrem zweiten Wert: (0, g i ), (1, g i+1 ), (2, g i+2 ), . . . , (M − 1, g i+M −1 ) 2. Berechne g 0 , g M , g 2M , . . . , g jM , bis man im Intervall der gespeicherten Werte landet. 3. Nun gilt: g jM = g i+k ⇒ jM = i + k ⇒ i = jM − k. Der Algorithmus benötigt M + |G| M Schritte (Anzahl Gruppenelemente, die im Worst Case ausgerechnet werden müssen). p Das heisst, man erhält eine optimale Laufzeit für M ≈ |G|. 6.8. Körper Körper: Ein Körper (K, +, ·) ist eine Menge K mit zwei Operationen ∗ und ◦, für die gilt: • (K, +) ist eine abelsche Gruppe (mit e = 0). 6.9.1. Modulare Arithmetik mit Polynomen Analog zur gewöhnlichen Modulararithmetik gilt für Polynome: • Für zwei beliebige Polynome a(x), b(x) ∈ K[x] existieren Polynome q(x) und r(x), so dass: a(x) = q(x) · b(x) + r(x) • Ein Polynom a(x) teilt ein anderes Polynom b(x), falls gilt: a(x) | b(x) ⇔ ∃c(x) : a(x) · c(x) = b(x) Irreduzibles Polynom: Ein Polynom p(x) heisst irreduzibel, falls gilt: p(x) = a(x) · b(x) ⇒ deg(a) = 0 ∨ deg(b) = 0 Falls ein c ∈ K existiert, so dass p(c) = 0, dann ist p(x) nicht irreduzibel und es gilt (x − c) | p(x). Zudem gibt es irreduzible Polynome beliebigen Grades über GF (p). Wie bei den ganzen Zahlen, lassen sich der ggT und das Inverse zweier Polynome mit dem EEA berechnen. Hinweis: Der grösste gemeinsamer Teiler zweier Polynome ist nicht immer eindeutig. • (K \ {0}, ·) ist eine abelsche Gruppe (mit e = 1 6= 0). • Distributivität: a · (b + c) = a · b + a · c. SEITE 11 Ist q(z) ∈ GF (pn )[z] ein irreduzibles Polynom, dann bilden die Polynome GF (pn )[z] modulo q(z) einen Körper. JEROME DOHRAU ZUSAMMENFASSUNG - DISKRETE MATHEMATIK · 0 1 z z+1 z2 z2 + 1 z2 + z z2 + z + 1 0 0 0 0 0 0 0 0 0 1 0 1 z z+1 z2 z2 + 1 z2 + z z2 + z + 1 z 0 z z2 z2 + z z2 + 1 z2 + z + 1 1 z+1 7 z+1 0 z+1 z2 + z z2 + 1 1 z z2 + z + 1 z2 z2 0 z2 z2 + 1 1 z2 + z + 1 z+1 z z2 + z z2 + 1 0 z2 + 1 z2 + z + 1 z z+1 z2 + z z2 1 ANWENDUNGEN z2 + z 0 z2 + z 1 z2 + z + 1 z z2 z+1 z2 + 1 z2 + z + 1 0 z2 + z + 1 z+1 z2 z2 + z 1 z2 + 1 z Tab. 5: Multiplikationstabelle des GF (8) unter der Verwendung des (irreduziblen) Reduktionspolynom z 3 + z 2 + 1. · 0 1 z z+1 z2 z2 + 1 z2 + z z2 + z + 1 0 0 0 0 0 0 0 0 0 1 0 1 z z+1 z2 z2 + 1 z2 + z z2 + z + 1 z 0 z z2 z2 + z z+1 1 z2 + z + 1 z2 + 1 z+1 0 z+1 z2 + z z2 + 1 z2 + z + 1 z2 1 z z2 0 z2 z+1 z2 + z + 1 z2 + z z z2 + 1 1 z2 + 1 0 z2 + 1 1 z2 z z2 + z + 1 z+1 z2 + z z2 + z 0 z2 + z z2 + z + 1 1 z2 + 1 z+1 z z2 z2 + z + 1 0 z2 + z + 1 z2 + 1 z 1 z2 + z z2 z+1 Tab. 6: Multiplikationstabelle des GF (8) unter der Verwendung des (irreduziblen) Reduktionspolynom z 3 + z + 1. Um GF (pd ) aus GF (p) zu konstruieren schreibt man alle Polynome ai (z) mit deg(ai ) < d in die Additions und Multiplikationstabelle. Dann wählt man ein irreduzibles Polynom q(z) mit deg(q) = d und füllt die Tabellen modulo q(z) aus. Für die Additionstabelle ist das irreduzible Polynom nicht von grosser Bedeutung, da der Grad der Summen immer kleiner als d ist. Die Tabellen 5 und 6 sind Beispiele für Multiplikationstabellen des GF (8) = GF (23 ). Diese sehen zwar unterschiedlich aus, sind jedoch isomorph. GF (3) 3 x + 2x + 1 2x2 + x + 2 2x 2 1 x3 + 2x + 1 1 0 1 2x + 1 x+2 2x2 + x + 2 0 1 x+1 2x2 + 2 x2 + 1 Tab. 7: Der ggT(x3 + 2x + 1, 2x2 + x + 2) = 1 in GF (3) lässt sich als Linearkombination 1 = (x3 + 2x + 1)(x + 2) + (2x2 + x + 2)(x2 + 1) darstellen. 6.10. Lagrange-Interpolation Ein Polynom p(x) mit deg(p) = n ist durch n+1 Stützstellen (αi , βi ) eindeutig bestimmt. Berechnung des Polynoms: Bestimme für jede Stützstelle ein Polynom ui (x) für das ui (αi ) = 1 und ui (αj ) = 0, i 6= j gilt: ui (x) = (x − α0 ) · · · (x − αi−1 )(x − αi+1 ) · · · (x − αn ) (αi − α0 ) · · · (αi − αi−1 )(αi − αi+1 ) · · · (αi − αn ) SEITE 12 Das Polynom p(x) erhält man nun durch: p(x) = n X βi · ui (x) i=0 7. Anwendungen 7.1. RSA (Rivest, Shamir, Adlemann) 1. Bob wählt zwei grosse Primzahlen p, q und berechnet n = p · q und ϕ(n) = (p − 1)(q − 1). Danach wählt er ein zufälliges e mit ggT(e, ϕ(n)) = 1 und berechnet d ≡ϕ(n) e−1 . 2. Bob merkt sich sk = (n, d) und sendet pk = (n, e) an Alice. 3. Alice verschlüsselt eine Nachricht M < n mit dem öffentlichen Schlüssel pk und sendet den Chiffretext C zurück an Bob: ENC : C = Rn (M e ) 4. Bob kann nun den Chiffretext mit seinem privaten Schlüssel wieder entschlüsseln: DEC : M = Rn (C d ) 7.1.1. Digitale Signaturen RSA kann auch für das Signieren eines Vertrages v ∈ Z∗n verwendet werden: JEROME DOHRAU ZUSAMMENFASSUNG - DISKRETE MATHEMATIK 1. Alice berechnet pk und sk, wie oben beschrieben und sendet den Vertrag v und s = Rn (v e ) an Bob. 2. Für die Verifikation muss Rn (sd ) = v gelten. A FIXPUNKTFREIE PERMUTATION Minimaldistanz: dmin = min{dH (u, v) | u, v ∈ C} In einem beliebigen Code kann man höchstens b dmin2 −1 c Fehler korrigieren und dmin − 1 fehler detektieren. 7.2. Diffie Hellman-Protokoll 7.4.1. Codierung mit Lagrange-Interpolation 1. Alice wählt eine zyklische Gruppe G = hgi und eine zufällige Zahl x ∈ N. 2. Alice schickt (G, g, g x ) an Bob. 3. Bob wählt ein zufälliges y ∈ N und schickt g y zurück an Alice. 4. Nun können Alice und Bob g xy = (g x )y = (g y )x berechnen, ein dritter jedoch nicht, da er weder x noch y kennt. Alice Bob G,g,G=hgi x gx o gy / / y Aus dem k-Bit-String a0 , a1 , . . . , ak−1 wird ein Polynom p(x) = a0 + a1 x + . . . + ak−1 xk−1 konstruiert. Die Codierung besteht darin, dieses Polynom in n verschiedenen Stellen auszuwerten, wodurch man einen n-Bit-String p(x0 ), p(x1 ), . . . , p(xn−1 ) erhält. A. Fixpunktfreie Permutation Sei Ai die Menge der Permutationen mit einem Fixpunkt an i-ter Stelle (auch weitere Fixpunkte sind möglich). Zuerst zählen wir mit dem Inklusion-Exklusion-Prinzip die Anzahl Xn der Permutationen mit Fixpunkten: Anzahl Permutationen mit mindestens r Fixpunkten Abb. 17: Schema des Diffie Hellman-Protokolls. Xn Das Protokoll funktioniert für alle zyklischen Gruppen, aber für Z∗p sind keine effizienten Algorithmen zur Berechnung des diskreten Logarithmus bekannt. 7.3. Secret Sharing Bedingung: Ein Geheimnis soll unter n Personen so verteilt werden, dass sich mindestens k Personen zusammentun müssen, um das Geheimnis zu entziffern. k−1 Personen dürfen es nicht kennen. Vorgehen: Erstelle ein Polynom p(x) vom Grad k − 1, dessen Auswertung an der Stelle x = 0 das Geheimnis s ist. Jede der n Person erhält einen sog. Share (αi , p(αi )). Nun können k beliebige Personen das Polynom, und somit auch das Geheimnis, rekonstruieren. p(x) = b0 +b1 x + b2 x2 + . . . + bk−1 xk−1 |{z} s 7.4. Codierung z X }| \ { n n [ X Ai = Ai = (−1)r−1 r=1 i=1 I⊆{1,...,n} |I|=r i∈I Die Anzahl der Permutationen mit mindestens r Fixpunkten ist das Produkt der Möglichkeiten r Elemente (die Fixpunkte) aus n Elementen auszuwählen und der Anzahl Permutationen der n − r restlichlichen Elementen: n n! n! (n − r)! = (n − r)! = r r!(n − r)! r! Damit erhalten wir: Xn = n X (−1)r−1 r=1 n! r! Für die Anzahl Yn fixpunktfreier Permutationen gilt nun: Yn = n! − Xn n! n! n! n! + − + + . . . + (−1)n = n! − 1! 2! 3! 4! n X (−1)r = n! r! r=1 Für grosse n gilt: Ziel: Ein k-Bit-String soll über einen verrauschten Kanal verschickt werden, so dass der Empfänger die Nachricht trotz fehlerhaft übertragenen Bits lesen kann. Yn ≈ n! ∞ X (−1)r r=1 r! = n! · e−1 = n! e Vorgehen: Die zu übertragenden k-Bit-Strings werden auf n-Bit-Strings abgebildet, wobei n > k. Diese bilden die Menge der Codewörter C. Die Codewörter sollten möglichst weit auseinanderliegen. SEITE 13 JEROME DOHRAU