Betriebsarten von Blockchiffren. ECB Electronic Code Book Mode. Padding. ECB Electronic Code Book Mode

Größe: px
Ab Seite anzeigen:

Download "Betriebsarten von Blockchiffren. ECB Electronic Code Book Mode. Padding. ECB Electronic Code Book Mode"

Transkript

1 Betriebsarten von Blockchiffren Blocklänge ist fest und klein. Wie große Mengen an Daten verschlüsseln? Blockchiffre geeignet verwenden: ECB Mode (Electronic Code Book) CBC Mode (Cipher Block Chaining) CFB Mode (Cipher Feedback) OFB Mode (Output Feedback) CTR Mode (Counter Mode) Diese Betriebsarten (ohne CTR) wurden ursprünglich für DES entwickelt, können aber mit jedem Blockchiffre verwendet werden. Sind standardisiert. 1 ECB Electronic Code Book Mode m i = m j dann c i = c j, also Regelmäßigkeiten und Wiederholungen übertragen sich. Unabhängige c i, Übertragungsfehler auf Block beschränkt. Beispiel: Bei Bildern bleiben häufig Konturen erkennbar! Probleme: Chiffretext zu Klartext am Anfang/Ende von Nachrichten extrahierbar. Block replay: Mischen/Einfügen von bekanntem Chiffretext möglich. Anwendung: Besser nicht (u.u. Verschlüsselung von Schlüsseln). 3 ECB Electronic Code Book Mode Einfachste Herangehensweise. Letzten Block durch (zufällige) Bits ergänzen, falls nötig (Padding). c i =E(k,m i ). m i =D(k,c i ). Padding Padding = Letzten Block durch (zufällige) Bits ergänzen. Vom Standpunkt der Kryptographie ist egal, wie man ergänzt (da jeder Klartext sicher verschlüsselt werden soll). Warum nicht nur Nullen anhängen? Ansätze: Eine Eins und soviele Nullen anhängen, wie nötig. Zufällige Bytes und Anzahl zu entfernender Bytes hinten anhängen. 2 4

2 CBC Cipher Block Chaining Mode Bild unverschlu sselt Klartext m in Blo cke der passenden Gro ße aufteilen m = m1m2 mt. Letzten Block durch (zufa llige) Bits erga nzen, falls no tig. Verschlu sselung durch c = (c0)c1c2 ct mit c0 = IV und ci = E (k, mi ci 1) fu r i 1. Entschlu sseln durch mi = D (k, ci) ci 1 fu r i 1. IV ist zufa llig gewa hlt, oder wird aus m erzeugt (so daß es nur (!) fu r m vorkommt, z.b. die Verschlu sselung einer eindeutigen Nachrichtennummer). Braucht nicht geheim gehalten zu werden. (ausgeliehen von N. Smart, F. Vercauteren) 5 CBC Cipher Block Chaining Mode 7 Bild verschlu sselt im ECB Mode Kontextabha ngig: ci ha ngt von c j mit j < i ab. Regelma ßigkeiten und Wiederholungen werden (durch unterschiedliche IV) verwischt. Fehler in ci betrifft nur mi und lokal mi+1. Block replay nicht mo glich. Anwendung: Ist der Standardmodus. Verschlu sseln langer Nachrichten. 6 8

3 Bild verschlüsselt im CBC Mode OFB Output Feedback Mode Entschlüsseln = Verschlüsseln, nur E benutzt. Fehler in c i bleiben lokal. c i hängt nicht von c j für j < i ab. Vergleichbar zum One-Time Pad. Probleme: Gefahr: Gleiches IV, gleiche k i (!). k i periodisch. Anwendung: Satellitenkommunikation (wegen der Fehler). Filesysteme/Datenbanken wegen wahlfreiem Zugriff OFB Output Feedback Mode k 0 = IV und k i =E(k,k i 1 ) für 1 i t, k 0 = IV und k i =E(k,k i 1 ) für 1 i t, CFB Cipher Feedback Mode c 0 = IV und k i =E(k,c i 1 ) für 1 i t, c 0 = IV und k i =E(k,c i 1 ) für 1 i t, IV wird wie bei CBC benutzt. Beim Ver- und Entschlüsseln von m i bzw. c i kann man auch nur einen Teil von k i verwenden, wenn die Blocklänge kleiner als die Schlüssellänge ist. IV wird wie bei CBC benutzt. Beim Ver- und Entschlüsseln von m i bzw. c i kann man auch in geeigneter Weise nur einen Teil von k i verwenden

4 CFB Cipher Feedback Mode Entschlüsseln = Verschlüsseln, nur E benutzt. c i hängt von c j für j < i ab. Fehler in c i erzeugt Fehler lokal in m i und in m i+1. Anwendung: Stückweise anfallende kleinere Datenmengen (Ströme). CTR Counter Mode CTR hat nach Ferguson-Schneier im wesentlichen nur Vorteile gegenüber den anderen Modes. Nur E erforderlich. Parallelisierbar. Wahlfreier Zugriff. Fehler in c i bleiben lokal. Vergleichbar zum One-Time Pad. Robustheit: Die Nonce muß pro verschlüsselter Nachricht m eindeutig sein. Diesbezüglich ist CBC robuster als CTR. Ist standardisiert für AES CTR Counter Mode k i =E(k,Nonce i) für 1 i t, k i =E(k,Nonce i) für 1 i t, Nonce ist eine Number to be used once (!) und wird ähnlich wie IV verwendet. Bemerkungen Bit twiddling Angriffe: Ändert man Bits in c i, so ändern sich auch die entsprechenden Bits in m i. Bei CBC und CFB wird darüberhinaus m i+1 zum Großteil gestört. In den Modes daher nach Möglichkeit chiffrierte Prüfsummen (MAC) verwenden. Informationleakage: CBC: c i = c j m i c i 1 = m j c j 1 m i m j = c i 1 c j 1. CTR: nur m i m j c i c j zu erfahren. Birthday Angriff bei kleiner Blocklänge: Ist die Blocklänge 2 n, so kann man nach ca. 2 n/2 verschlüsselten Blöcken erwarten, daß zwei Chiffretexte gleich sind. Daher Anzahl mit gleichem Schlüssel verschlüsselter Blöcke auf z.b. 2 n/4 beschränken

5 Mehrfachverschlüsselung Doppelte Verschlüsselung: c =E(k 2,E (k 1,m)). m =D(k 1,D (k 2,c)). Es gelte #K = 2 n. Sicherheit bezüglich exhaustive search 2 2n statt vorher 2 n (?). Problem, wenne (k 2,E (k 1, )) =E(k 3, ) für ein k 3. ( Die Permutationen DES(k, ) erzeugen eine Untergruppe von S({0,1} 56 ) der Ordnung ). Unter Known-Plaintext Angriff Sicherheit nur 2 n+1 statt 2 2n : Meet-in-the-middle Angriff. Daher wird doppelte Verschlüsselung im allgemeinen nicht verwendet. Mehrfachverschlüsselung Dreifache Verschlüsselung (EDE): c =E(k 3,D (k 2,E (k 1,m))). m =D(k 1,E (k 2,D (k 3,c))). k 1 = k 3, k 2 unabhängig und zufällig: CPA-MITM Angriff in Laufzeit O(#K) und Speicher O(#K). Vermutlich trotzdem nützlich, wenn Anzahl Verschlüsselungen beschränkt. k 1,k 2,k 3 unabhängig und zufällig: Known Plaintext MITM Angriff in Laufzeit O(#K 2 ) und Speicher O(#K). Modus erlaubt Rückwärtskompatibilität, wenn k 1 = k Meet-in-the-middle Angriff Es gelte #K = #M = #C. Gegeben/bekannt: c 1,c 2,m 1,m 2 mit c 1 =E(k 2,E (k 1,m 1 )), c 2 =E(k 2,E (k 1,m 2 )). 1. Berechne und speicheree (k 1,m 1) für alle k 1 K. 2. BerechneD (k 2,c 1) für alle k 2 K. 3. FürD (k 2,c 1) =E(k 1,m 1) teste c 2 =E(k 2,E (k 1,m 2)). 4. Liefert eine kleine Menge Z von (k 1,k 2 ) mit (k 1,k 2 ) Z. ( Größe von Z idealerweise erwartungsgemäß gleich 1. ) Benötigt Speicher der Größe O(#K), Laufzeit ebenfalls O(#K). Abkürzung: MITM Whitening c = k 3 E (k 2,m k 1 ). Sicherheit maximal O(#K 2 ) unter Known-Plaintext Angriff: 1. Seien c i = k 3 E (k 2,m i k 1 ), c j = k 3 E (k 2,m j k 1 ). 2. Dann gilt c i c j =E(k 2,m i k 1 ) E (k 2,m j k 1 ). 3. Definiere dc = c i c j, dm = m i m j, m = m i k Betrachte Gleichung dc =E(x,y) E (x,y dm). 5. Nach #K 2 Tests ca. #K Lösungen x,y gefunden, darunter x = k 2 und y = m i k 1 oder y = m j k Dann k 1 = y m i und k 3 = c i E (x,y) oder k 1 = y m j und k 3 = c j E (x,y). Möglichkeiten an weiteren c i,m i testen. Schlüssellänge auf r log 2 (#K) vergrößern mit Sicherheitszuwachs auf #K r im allgemeinen schwierig (sonst mit n = 1 anwenden, liefert...) 18 20