Was bisher geschah Kryptographische Systeme (M, C, K, E, D) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln): Substitutions-Chiffren (Permutationschiffren): Ersetzung jedes Klartextsymbols durch ein Geheimtextsymbol monoalphabetisch: Verschiebechiffren (Caesar), multiplikative Chiffren polyalphabetisch: Vigenère-Chiffre Transpositionschiffren: Tausch der Positionen der Symbole im Klartext Würfel ( ohne / mit Geheimwort) One-Time-Pad Zahlentheoretische Grundlagen: Teilerrelation Kongruenz modulo Pseudozufallszahlen
Wörterbuch-Angriffe (Dictionary Attack) Suche in einer Teilmenge des gesamten Schlüsselraumes nutzt Informationen über Struktur des Klartextes, die im Chiffretext enthalten bleiben (zb Reihenfolge von Buchstaben in Wörtern, Wörtern in Texten) Suche in Listen verschlüsselter Wörter (oder Teilwörter) effektiver als Brute-Force-Methoden Wörterbuchangriffe werden häufig erfolgreich zum Brechen von Passwörtern eingesetzt
Prinzipien der Verschlüsselung Konfusion: Verschleierung des Zusammenhanges zwischen Klartext und Chiffretext zb Substitution von Klartextsymbolen Diffusion: Verteilung der einzelnen im Klartext enthaltenen Informationen über den gesamten Chiffretext zb Transposition der Klartextsymbole Moderne Verschlüsselungsverfahren kombinieren beide Prinzipien
Block- und Stromchiffren Stromchiffre Erzeugung eines Schüsselstroms (x n ) n N (Bitfolge) aus dem Schlüssel Verschlüsselung jedes Klartextzeichens m i mit x i jedes Zeichen wird sofort verschlüsselt Blockchiffre Verschlüsselung von Klartextblöcken gleicher Länge Verschlüsselung beginnt, sobald Block gefüllt ist
Blockchiffren Idee: Verschlüsseln von Klartextblöcken (Wörter fester Länge) statt einzelner Klartextsymbole (Vergrößerung der Klartext- und Geheimtext-Alphabete) größerer Schlüsselraum (m n bei Blocklänge n und Alphabetgröße m) erschwert Brute-Force-Angriffe (Ciphertext-Only) bei bekannter Blocklänge Wörterbuch-Angriffe möglich Blocklänge bei großer verschlüsselter Datenmenge durch Untersuchung von Wiederholungen bestimmbar
Betriebsmodi von Blockchiffren Padding: Auffüllen des Klartextes bis auf ein Vielfaches der Blocklänge (mit zufälligen Bits) ECB-Modus electronic codebook CBC-Modus cipher block chaining CFB-Modus cipher feedback OFB-Modus output feedback
ECB-Modus (electronic codebook) voneinander unabhängige Verschlüsselung aufeinanderfolgender Klartextblöcke Verschlüsselung: C 1 = e(k, M 1 ), C 2 = e(k, M 2 ),, C n = e(k, M n ) Entschlüsselung: M 1 = d(k, C 1 ), M 2 = d(k, C 2 ),, M n = d(k, C n ) einfach, schnell monoalphabetische Chiffre (Alphabet = Blöcke) keine Ausbreitung von Fehlern Änderung einzelner Blöcke wird nicht bemerkt
CBC-Modus (cipher block chaining) Verschlüsselung der XOR-Verknüpfung des Klartext-Blockes mit dem verschlüsselten Vorgänger-Block (erster Block mit Initialisierungsvektor v, zb Zeitstempel oder zufällig) Verschlüsselung: C 1 = e(k, M 1 XOR v) C 2 = e(k, M 2 XOR C 1 ) C n = e(k, M n XOR C n 1 ) Entschlüsselung: M 1 = d(k, C 1 ) XOR v M 2 = d(k, C 2 ) XOR C 1 M n = d(k, C n ) XOR C n 1 polyalphabetische Chiffre geringe Fehlerausbreitung
CFB-Modus (cipher feedback) XOR-Verknüpfung der Klartext-Blöcke mit der Verschlüsselung des verschlüsselten Vorgänger-Blockes Verschlüsselung: C 1 = M 1 XOR e(k, v) C 2 = M 2 XOR e(k, C 1 ) C n = M n XOR e(k, C n 1 ) Entschlüsselung: M 1 = d(k, v) XOR C 1 M 2 = d(k, C 1 ) XOR C 2 M n = d(k, C n 1 ) XOR C n gleiche Ver- und Entschlüsselungsfunktion erzeugt Stromchiffre aus Blockchiffre Fehlerausbreitung
OFB-Modus (output feedback) Bitweise XOR-Verknüpfung der Klartext-Blöcke mit einem aus Schlüssel und Initialvektor erzeugtem Bitstrom Bitstrom z 0 = v,, z i = e(k, z i 1 ), (mit Initialisierungsvektor v) Verschlüsselung: C 1 = M 1 XOR z 1 C 2 = M 2 XOR z 2 C n = M n XOR z n Entschlüsselung: M 1 = z 1 XOR C 1 M 2 = z 2 XOR C 2 M n = z n XOR C n gleiche Ver- und Entschlüsselungsfunktion keine Fehlerausbreitung erzeugt Stromchiffre aus Blockchiffre