24.11.2013 Aufrufe

Grundlagen der Informationssicherheit

Grundlagen der Informationssicherheit

Grundlagen der Informationssicherheit

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!