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