IT-Sicherheit WS 2017/2018 Jun.-Prof. Dr. Gábor Erdélyi Lehrstuhl für Entscheidungs- und Organisationstheorie, Universität Siegen Siegen, 22. November 2017
Kerckhoffssches Prinzip Die Sicherheit eines Kryptosystems darf nicht von der Geheimhaltung des verwendeten Systems abhängen, sondern nur von der Geheimhaltung der verwendeten Schlüssel abhängen.
Notation Σ - Alphabet Σ - Menge der Wörter über Σ Σ n - Wörter der Länge n
Blockchiffre und Substitutionschiffre Definition Eine Blockchiffre ist ein Kryptosystem, in dem der Klartextraum und der Schlüsseltextraum jeweils Σ n ist. Die Zahl n heißt die Blocklänge (oder Periode) des Systems. Eine Substitutionschiffre ist eine Blockchiffre mit Blocklänge eins. Die Verschlüsselungsfunktionen einer Blockchiffre sind Permutationen.
Blockchiffre und Substitutionschiffre Fixiere Alphabet Σ und Blocklänge n M = C = Σ n K ist die Menge aller Permutationen von Σ n Für jeden Schlüssel π K, definiere E π, D π : Σ n Σ n wie folgt: E π (x) = π(x); D π (y) = π 1 (y).
Permutationschiffre Gegeben Alphabet Σ und Blocklänge n N M = C = Σ n K = S n, die Permutationsgruppe mit n Elementen Für jeden Schlüssel π S n, definiere E π, D π : Σ n Σ n wie folgt: E π (x 1, x 2,..., x n ) = x π(1), x π(2),..., x π(n) ; D π (y 1, y 2,..., y n ) = y π 1 (1), y π 1 (2),..., y π 1 (n).
Unser Alphabet Σ = {A, B,..., Z} Identifiziere Σ mit Z 26 = {0, 1,..., 25} 0 repräsentiert A, 1 repräsentiert B, usw.
Verschiebungschiffre K = M = C = Z 26 Für jeden Schlüssel k Z 26, definiere E k, D k : Z 26 Z 26 wie folgt: E k (x) = (x + k) mod 26; D k (y) = (y k) mod 26. Cäsar-Chiffre: k = 3.
Affine Chiffre K = {(a, b) a, b Z 26, ggt (a, 26) = 1} M = C = Z 26 Für jeden Schlüssel (a, b) Z 26 Z 26 mit ggt (a, 26) = 1, definiere E (a,b), D (a 1,b) : Z 26 Z 26 wie folgt: E (a,b) (x) = ax + b mod 26; D (a 1,b)(y) = a 1 (y b) mod 26.
Kryptoanalyse der affinen Chiffre Ciphertext-only-Angriff Anzahl der möglichen Schlüssel: 26 ϕ(26) = 26 12 = 312 Brute force Angriff im Schlüsselraum
Kryptoanalyse der affinen Chiffre Known-Plaintext-Angriff I Codierung des Alphabets über Z 11 : A D E I M N O P R S T 0 1 2 3 4 5 6 7 8 9 10
Kryptoanalyse der affinen Chiffre Known-Plaintext-Angriff I Codierung des Alphabets über Z 11 : A D E I M N O P R S T 0 1 2 3 4 5 6 7 8 9 10 Gegeben: Schlüsseltext c = DMSDEMNI Die ersten beiden Klartextzeichen I N
Kryptoanalyse der affinen Chiffre Known-Plaintext-Angriff I Codierung des Alphabets über Z 11 : Gegeben: A D E I M N O P R S T 0 1 2 3 4 5 6 7 8 9 10 Schlüsseltext c = DMSDEMNI Die ersten beiden Klartextzeichen I N Berechne das verwendete Schlüsselpaar (a, b) Z 11 Z 11 mittels eines Known-Plaintext-Angriffs.
Kryptoanalyse der affinen Chiffre Known-Plaintext-Angriff II Aus E (a,b) (I) = D und E (a,b) (N) = M folgt: 3a + b 1 mod 11 und 5a + b 4 mod 11
Kryptoanalyse der affinen Chiffre Known-Plaintext-Angriff II Aus E (a,b) (I) = D und E (a,b) (N) = M folgt: 3a + b 1 mod 11 und 5a + b 4 mod 11 Gleichungssystem lösen, a 7 mod 11 und b 2 mod 11.
Kryptoanalyse der affinen Chiffre Known-Plaintext-Angriff II Aus E (a,b) (I) = D und E (a,b) (N) = M folgt: 3a + b 1 mod 11 und 5a + b 4 mod 11 Gleichungssystem lösen, a 7 mod 11 und b 2 mod 11. Klartext mit dem Schlüssel (7, 2) aus c = DMSDEMNI = 1 4 9 1 2 4 5 3 berechnen: m = 3 5 1 3 0 5 2 8 = INDIANER.
Perfekte Geheimhaltung - Notation Pr(m) - Wahrscheinlichkeit, dass Nachricht m verschlüsselt wird Pr(k) - Wahrscheinlichkeit, dass der Schlüssel k verwendet wird Pr(m c) - bedingte Wahrscheinlichkeit, dass m verschlüsselt wurde, unter der Bedingung, dass der Schlüsseltext c empfangen wurde
Perfekte Geheimhaltung Definition Ein Kryptosystem S = (M, C, K, E, D) garantiert genau dann perfekte Geheimhaltung, wenn gilt: ( m M)( c C)[Pr(m c) = Pr(m)]
Der Satz von Shannon Theorem Sei S = (M, C, K, E, D) ein Kryptosystem mit M = C = K < und Pr(m) > 0 für jedes m M. S garantiert genau dann perfekte Geheimhaltung, wenn 1. für jedes m M und für jedes c C ein eindeutiger Schlüssel k K mit E k (m) = c existiert und 2. die Schlüssel in K gleichverteilt sind.
Vernams One-Time Pad Σ = {0, 1} M = C = K = {0, 1} n, Blocklänge n N Die Schlüssel sind auf {0, 1} n gleichverteilt. Für jeden Schlüssel k {0, 1} n, definiere E k, D k : {0, 1} n {0, 1} n wie folgt: E k (x) = x k D k (y) = y k ist die bitweise Addition modulo 2.