Wiederholung: Verschlüsselungsverfahren Private-Key-Verfahren (symmetrische Verfahren) gleicher Schlüssel zum Ver- und Entschlüsseln Schlüsselverteilungsproblem schnell z.B. klassische Chiffren, DES, AES, IDEA Public-Key-Verfahren (asymmetrische Verfahren) verschiedene Schlüssel zum I Verschlüsseln (öffentlicher Schlüssel) I Entschlüsseln (geheimer Schlüssel) keine geheime Schlüsselvereinbarung vor Kommunikation notwendig Chosen-Plaintext-Angriffe immer möglich Merkles Rätsel Schlüsselvereinbarung nach Diffie-Hellman Wiederholung: Mathematische Grundlagen I Rechnen mit Restklassen: Addition / additive Inverse Multiplikation / multiplikative Inverse Potenzieren / diskreter Logarithmus I primitive Elemente I Einweg-Funktionen,Einweg-Falltürfunktionen I Berechnung der multiplikativen Inversen: kleiner Fermat Erweiterung für Produkte zweier Primzahlen erweiterter Euklidischer Algorithmus Algebraische Strukturen Eine algebraische Struktur (A, Ω) besteht aus einer Menge A 6= ∅ (Trägermenge) Operationen f ∈ Ω mit f : An → A I Relationen R ∈ Ω mit R ⊆ An I I Beispiele (bekannt aus Mathematik und vorangegangenen Vorlesungen): ( , +, ·, 0, 1), ( , +, ·, 12, 27), ( , ggT, 0), ( , ≤), ( , +, ·, 0, 1, ≤), (3 , ·, 0), wobei n = {nz | z ∈ }, ( n , −, ·, −7), (2X , ∪, ∩, ∅, X ), (2X , ⊆) Algebraische Strukturen werden charakterisiert durch Axiome (Eigenschaften und Zusammenhänge zwischen Operationen und Relationen) Bedeutung in der Informatik, z.B. für N Z N Z N Z Z N N Boolesche Algebra I Datentypen, Datenstrukturen I Schnittstellen (Interfaces) I Modellierung sequentieller und nebenläufiger Prozesse I Halbgruppen Definition 4.6 Eine algebraische Struktur (A, ◦) heißt genau dann Halbgruppe, falls ◦ : A × A → A eine totale zweistellige assoziative Funktion ist, d.h. für alle x, y , z ∈ A gilt (x ◦ y ) ◦ z = x ◦ (y ◦ z) N N N N N Z Beispiele: ( , +), ( , ·), ( , max), ( , min), ( , ggT), ( , +), ( , ·), ( , ·), (2X , ∪), (2X , ∩), ({0, 1}, min), ({0, 1}, max) (n , +), (n , ·), ( n , +), ( n , ·) Z Q Z Z Z Z Eine Halbgruppe (A, ◦) heißt genau dann kommutative Halbgruppe, wenn ◦ kommutativ ist, d.h. für alle x, y ∈ A gilt x ◦y =y ◦x Monoide und Gruppen Definition 4.7 Eine algebraische Struktur (A, ◦, e) heißt genau dann Monoid, falls (A, ◦) eine Halbgruppe ist und für jedes x ∈ A gilt x ◦ e = e ◦ x = x. e heißt neutrales Element in (A, ◦). N Z Z N Q Z N N Beispiele: ( , +, 0), ( , ·, 1), ( , max, 0), ( , ggT, 0), (n , +, 0), ( , ·, 1), ( , ·, 1), (2X , ∪, ∅), (2X , ∩, X ), ({0, 1}, min, 1), ({0, 1}, max, 0) (n , +, 0), ( n , +, 0), ( n , ·, 1) Z Z Ein Monoid (A, ◦, e) heißt genau dann kommutativ, wenn ◦ kommutativ ist. Gruppen Definition 4.8 Eine algebraische Struktur (A, ◦, e) heißt genau dann Gruppe, falls (A, ◦, e) ein Monoid ist und für jedes x ∈ A ein y ∈ A existiert, so dass gilt x ◦ y = y ◦ x = e. x −1 = y heißt invers zu x. Z Z Zn , +, 0), (Q, ·, 1), Beispiele: ( , +, 0), (n , +, 0), ( ( n , ·, 1) für Primzahlen n Z Eine Gruppe (A, ◦, e) heißt genau dann kommutativ, wenn ◦ kommutativ ist. Ringe Definition 4.9 Eine algebraische Struktur (A, +, ·, 0) heißt genau dann Ring, wenn sie die folgenden Axiome erfüllt: (A, +, 0) ist eine kommutative Gruppe, (A, ·) ist eine Halbgruppe, I für alle x, y , z ∈ A gilt x(y + z) = xy + xz, (x + y )z = xz + yz (Distributivgesetze) I I Ist außerdem (A, ·, 1) ein Monoid, dann heißt (A, +, ·, 0, 1) Ring mit Eins. Ist außerdem (A \ {0}, ·, 1) eine Gruppe, dann heißt (A, +, ·, 0, 1) Körper. Beispiele: Z Z Q ( , +, ·, 0, 1) ist Ring mit Eins, (2 , +, ·, 0) ist Ring, I ( , +, ·, 0, 1) ist Körper, I ({0, 1}, XOR, ·, 0, 1) ist Ring mit Eins, I Restklassenring ( n , +n , ·n , 0, 1) (mit Eins), für Primzahlen n ist ( n , +n , ·n , 0, 1) Restklassenkörper I I Z Z Boolesche Algebren Definition 4.10 Eine algebraische Struktur (A, +, ·, ¬, 0, 1) heißt genau dann Boolesche Algebra, wenn sie die folgenden Axiome erfüllt: (A, +, 0) ist ein kommutatives Monoid, (A, ·, 1) ist ein kommutatives Monoid, I für alle x, y , z ∈ A gilt x · (y + z) = (x · y ) + (x · z), x + (y · z) = (x + y ) · (x + z) (Distributivgesetze) I für alle x, y ∈ A gilt x + (x · y ) = x, x · (x + y ) = x (Absorptionsgesetze) I für alle x, y ∈ A gilt x + ¬x = 1, x · ¬x = 0, (Komplementgesetze) I I Beispiele: ({0, 1}, max, min, ¬, 0, 1), (2X , ∪, ∩, , ∅, X ) Vektorrräume mehrsortige algebraische Strukturen (S, V , +S , ·S , +V , ·, 0S , 1S , 0V ) I Trägermengen: I I I Menge V von Vektoren Menge S von Skalaren Operationen, z.B. I I I I I Skalarsumme +S : S × S → S Vektorsumme +V : V × V → V skalares Produkt ·S : S × S → S skalare Multiplikation · : S × V → V Skalarprodukt h·, ·i : V × V → S Vektorraum-Axiome: (S, +S , ·S , 0S , 1S ) ist ein Körper und für alle a, b ∈ S und alle u, v ∈ V gilt: (a ·S b) · v (a +S b) · v = a · (b · v ) = a · v +V b · v a · (u +V v ) = a · u +V a · v 1S · v = v ElGamal-Verschlüsselungsverfahren (Taher ElGamal 1985) asymmetrisches Verfahren zur Verschlüsselung Modifikation des Diffie-Hellman-Verfahrens Verschlüsselung nach ElGamal: 1. Schlüsselerzeugung (durch B): I B wählt (n, p) mit Primzahl n und p ∈ n gB I B wählt g ∈ mod n n und berechnet b = p B erzeugte Schlüssel: (n, p, b) (öffentlich) und gB (geheim) 2. B sendet b an A 3. Verschlüsselung (durch A): I A wählt große Zufallszahl z (geheimer Sitzungsschlüssel) I A berechnet a = p z mod n und c = mb z mod n 4. A sendet (a, c) an B 5. Entschlüsselung (durch B): B entschlüsselt m = ca−gB mod n Z Z Beispiel: n = 11, p = 7, gB = 3, z = 6, m = 8 Verfahren ist korrekt, weil ca−gB ≡n mbz (pz )−gB ≡n mpgB z p−gB z ≡n mpgB z (pgB z ) −1 ≡n m