• Keine Ergebnisse gefunden

3.2 Symmetrische Kryptosysteme

3.2.2 Blockchiffren

Die allgemeine Funktionsweise von Blockchiffren sehen Sie in Abbildung 3.4. Blockchiffren unter-teilen den Klartext intBl¨ockem1bismtjeweils gleicher L¨ange. Die L¨ange eines Blocks bezeichnen wir mitn, sie wird in Bits gez¨ahlt (weil das Alphabet{0,1}ist). Eine heute typische Blockl¨ange ist n= 128, ¨altere Verfahren nutzen nochn= 64. Die Verschl¨usselungsfunktion erwartet als Eingabe einen Klartextblock der L¨angen, verschl¨usselt diesen mit Hilfe des Verschl¨usselungsschl¨ussels und gibt einen Chiffretextblock der L¨angenaus. Es gilt als

P =C={0,1}n.

Typischerweise ist die L¨ange des gesamten Klartextes kein Vielfaches der Blockl¨ange, d.h. der letzte Klartextblock besteht aus weniger alsnBits. Dann muss dieser Block aufnBits aufgef¨ullt werden. Ein solches Auff¨ullverfahren heißtPadding.

Abbildung 3.4: Allgemeine Funktionsweise von Blockchiffren

Beispiel 10 (Padding). Sie nutzen eine symmetrische Blockchiffre mit Blockl¨ange 128 Bit. Ihr Klartext (z.B. ein jpg-Bild) hat die L¨ange5.005Byte. Weil ein Byte aus 8 Bit besteht, gilt

t=5005·8

128 = 40040

128 = 39936 + 104

128 = 312 +104 128 .

Also gibt es 312 volle n-Bit Klartextbl¨ocke, der letzte Klartextblock muss per Padding mit den fehlenden24 Bit aufgef¨ullt werden.

Claude Shannon formulierte zudem zwei wichtige Eigenschaften moderner Blockchiffren, ge-nanntKonfusion undDiffusion. Diese Eigenschaften sind in Definition 24 beschrieben.

Definition 24 (Konfusion und Diffusion). • Konfusion: Diese Eigenschaft beschreibt das Verbergen der Beziehung zwischen Geheimtext auf der einen Seite sowie Schl¨ussel und Klar-text auf der anderen Seite. Der Zusammenhang zwischen diesen Objekten ist zu komplex.

Ein Angreifer hat nicht die M¨oglichkeit, bei Betrachtung des Geheimtextes Informationen

¨uber den verwendeten Schl¨ussel oder den zugrundeliegenden Klartext zu erhalten.

• Diffusion: Jedes Zeichen bzw. Bit des Geheimtextes soll von m¨oglichst vielen Zeichen/Bits des Klartextes sowie des Schl¨ussels abh¨angen.

Die Basistechnik Permutation dient zur Erh¨ohung der Diffusion. Eine Permutation ist eine Umordnung der Bits in einem Block, sie ¨andert aber nicht die Anzahl der Nullen bzw. Einsen in einem Block. Eine Permutation von Bits in einem Block finden Sie in Abbildung 3.5 dargestellt. In diesem Beispiel wird das Nullbit an erster Stelle im oberen Block an die zweite Stelle im unteren Block umgeordnet, das Einsbit von der zweiten Stelle an die vierte Stelle, und so weiter.

0 0 0 1 . . . 1 0 0

Abbildung 3.5: Permutation von Bits in einem Block

3.2. SYMMETRISCHE KRYPTOSYSTEME 47 Eine zweite wichtige Basistechnik erh¨oht die Konfusion. Sie heißtSubstitution. Eine Substitu-tion ist eine Ersetzung eines Blocks bzw. Teilblocks von Bits gem¨aß der Substitutionsvorschrift.

Typischerweise ersetzt eine Substitution einen Block der L¨ange 8 Bit, da solche Substitutionsvor-schriften einfach als Tabellen gespeichert und damit effizient implementiert werden k¨onnen. Bei Bl¨ocken der L¨ange 8 Bit enth¨alt die Tabelle z.B. 28= 256 Eintr¨age, die angeben, wie das jeweilige Byte (also 8 Bit) zu ersetzen sind. Eine Substitution von Bits stellen wir in Abbildung 3.6 dar. In diesem Beispiel werden Bl¨ocke der L¨ange 8 Bit mittels einer Substitution ersetzt, wobei wir die Substitutionsfunktion wie ¨ublich alsS-Box bezeichnen.

0 0 0 1 1 0 0 0 . . . 0 0 1 1 0 0 0 1

0 0 0 1 1 0 0 0 . . . 0 0 1 1 0 0 0 1

S-Box . . . S-Box

Abbildung 3.6: Substitution von Bits mittels S-Boxen

Den gew¨unschten Effekt von Permutation und Diffusion sieht man erst nach mehreren Runden.

Daher werden geeignete Substitutionen (S) sowie Permutationen (P) hinreichend oft hintereinander ausgef¨uhrt – so entsteht aus relativ einfachen Basisfunktionen S und P eine sehr komplexe Block-chiffre. Zum Beispiel realisieren SP-Netzwerke diesen Ansatz. Ein Beispiel f¨ur ein SP-Netzwerk ist die Blockchiffre AES (Advanced Encryption Standard), die Sie in Abschnitt 3.2.4 kennenlernen.

Werden Konfusion und Diffusion durch Substitution und Diffusion nach mehreren Runden hin-reichend gut in einem Verschl¨usselungsverfahren implementiert, resultiert das ¨Andern eines Bits des Klartextes oder des Schl¨ussels in einem neuen und zuf¨alligen (=unvorhersehbaren) Geheim-text, in dem sich jedes Bit mit einer Wahrscheinlichkeit von 50% gegen¨uber dem urspr¨unglichen Chiffretext ¨andert. Dies wird als sogenannterLawineneffekt bezeichnet (im EnglischenAvalanche Effect).

Kontrollaufgabe 10 (Lawineneffekt). Erkl¨aren Sie, was unter dem Lawineneffekt zu verstehen ist.

Kontrollaufgabe 11 (Konfusion, Diffusion). Erl¨autern Sie kurz Konfusion und Diffusion sowie mit welcher Basistechnik man sie erreicht.

Betriebsmodi symmetrischer Blockchiffren

Eine Blockchiffre wird in einem Betriebsmodus genutzt, wie wir es schon in Abbildung 3.4 in der Verschl¨usselungsfunktion dargestellt haben. Im Folgenden werden wir Ihnen drei wichte Betriebs-modi n¨aher erl¨autern: denElectronic Code Book Modus (ECB), denCipher Block ChainingModus (CBC) sowie denCounter Modus (Ctr). Sie werden sehen, dass der ECB zentrale Schw¨achen hat, w¨ahrend der CBC sowie der Ctr sichere Modi sind.

Electronic Code Book Mode Die naheliegendste Art der Verschl¨usselung eines beliebig langen Textes mittels einer Blockchiffre ist ihre Verwendung imElectronic Code Book Mode (ECB Mo-de). Ein beliebig langer Klartext wird in Bl¨ocke der L¨ange n Bit geteilt (Padding beachten).

Anschließend verschl¨usselt man jeden Klartextblock der L¨angenBit unter Verwendung des Ver-schl¨usselungsschl¨usselsesowie der Verschl¨usselungsfunktionE unabh¨angig voneinander. F¨ur den Klartexblockmi gilt dann einfach

E(mi, e) =ci f¨ur alle 1≤i≤t.

Der Chiffretext ist einfach die Folge der Chiffretextbl¨ocke c1 bis ct. Die Verschl¨usselung im ECB Mode ist in Abbildung 3.7 dargestellt.

Abbildung 3.7: Verschl¨usselung im Electronic Code Book Mode nach?]

Die Entschl¨usselungsfunktion D mit dem zu e korrespondierenden Entschl¨usselungsschl¨ussel d wird unabh¨angig auf jeden Chiffretexblock ci der L¨ange n Bit angewendet. Die Ent-schl¨usselungsvorschrift lautet also

D(ci, d) =mi f¨ur alle 1≤i≤t.

Der Klartext ist dann die Folge der Klartextbl¨ockem1 bismt, im letzten Blockmtm¨ussen gege-benfalls die Paddingbits wieder entfernt werden. Die Entschl¨usselung im ECB Mode ist in Abbil-dung 3.8 dargestellt.

Abbildung 3.8: Entschl¨usselung im Electronic Code Book Mode nach?] Der ECB ist ein schwacher Blockmodus, er besitzt zentrale Nachteile:

1. Strukturerhaltung: Bei der Verwendung des ECB Mode werden gleiche Klartextbl¨ocke je-weils zu gleichen Chiffretextbl¨ocken verschl¨usselt. Regelm¨aßigkeiten des Klartextes f¨uhren zu Regelm¨aßigkeiten des Schl¨usseltextes. Deshalb k¨onnen Informationen ¨uber den Klartext aus dem Schl¨usseltext gezogen werden, auch wenn dieser nicht entschl¨usselt werden kann.

Solche Informationen k¨onnen die Kryptoanalyse erleichtern.

2. Manipulation: Ein Angreifer kann Nachrichten ¨andern, ohne dass dies dem Empf¨anger auf-fallen muss. Der Angreifer kann zum Beispiel einen Chiffretextblock einf¨ugen, der mit dem gleichen Verschl¨usselungsschl¨ussel e verschl¨usselt worden ist. Genauso kann ein Angreifer unbemerkt die Reihenfolge der Schl¨usseltextbl¨ocke ver¨andern.

Aus diesen Gr¨unden ist der ECB Mode zur Verschl¨usselung langer Nachrichten ungeeignet. Die angesprochenen Regelm¨aßigkeiten lassen sich in Abbildung 3.9 erkennen. Bei der Verschl¨usselung der Pixelinformationen des Originalbildes f¨uhren die großfl¨achigen geometrischen Formen einer Farbe zu einem entsprechenden Muster (3.9b).

Die Sicherheit des ECB Mode l¨asst sich zwar dadurch steigern, indem die Bl¨ocke nur teilweise aus dem Klartext und teilweise durch zuf¨allige Zeichen gebildet werden. Dadurch werden aber

3.2. SYMMETRISCHE KRYPTOSYSTEME 49

(a) Originalbild (b) ECB Mode (c) CBC Mode

Abbildung 3.9: Verschl¨usselung mittels AES und unterschiedlicher Blockmodi.

viele nicht ben¨otigte Daten ¨ubertragen. Als L¨osungsoption w¨ahlt man daher den Ansatz, dass ein Chiffretextblock nicht nur von Schl¨ussel und Klartextblock abh¨angt, sondern von einem weiteren Parameter. Sie lernen zwei solcher Betriebsarten in den folgenden Abschnitten n¨aher kennen:

• Cipher Block Chaining Mode (CBC): als zus¨atzlicher Parameter wird der Kontext verwen-det, indem der vorhergehende Chiffretextblock in die Verschl¨usselung des aktuellen Klar-textblocks eingeht.

• Counter Mode (Ctr): ein Z¨ahler dient als zus¨atzlicher Parameter.

Weitere bekannte Betriebsarten sind derCipher Feedback Mode (CFB) sowie derOutput Feedback Mode (OFB). Auf diese gehen wir aber nicht weiter ein.

Cipher Block Chaining Mode Der Cipher Block Chaining Mode (CBC Mode) behebt die eben genannten Nachteile des ECB Mode. Die Idee des CBC Mode ist es, dass die Verschl¨usselung des Klartextblocks mi auch von dem vorhergehenden Chiffretextblock ci−1 neben dem Ver-schl¨usselungsschl¨ussele als zus¨atzlichem Parameter abh¨angt. Der CBC Mode verschl¨usselt Klar-textbl¨ocke alsokontextabh¨angig. Die Verschl¨usselungsfunktion sieht im CBC Mode wie folgt aus:

E(mi⊕ci−1, e) =ci f¨ur alle 1≤i≤t.

Da es keinen Chiffretextblock c0 gibt, ben¨otigen wir f¨ur die Verschl¨usselung des Klartext-blocks m1 einen zus¨atzlichen Block. Dieser heißt Initialisierungsvektor (IV), und man setzt c0 := IV. Der IV ist kein Chiffretextblock im eigentlichen Sinn, er dient nur dazu, dass m1

im CBC Mode verschl¨usselt werden kann. Der IV sollte f¨ur jede Verbindung neu gew¨ahlt wer-den (also Session abh¨angig sein). Der Chiffretext ist dann die Folge der Chiffretextbl¨ocke c0

bis ct. Die Verschl¨usselung im CBC Mode ist in Abbildung 3.10 dargestellt. Sie sollen die Ent-schl¨usselungsfunktion im CBC Mode in Kontrollaufgabe 12 bestimmen.

Abbildung 3.10: Verschl¨usselung im Cipher Block Chaining Mode nach?]

Die Verschl¨usselung ist somit kontextabh¨angig, d.h. gleiche Muster in unterschiedlichem Kon-text werden verschieden verschl¨usselt. Nachtr¨agliche Ver¨anderungen des Schl¨usseltextes (z.B.

Einf¨ugen von Chiffretextbl¨ocken oder Vertauschung der Reihenfolge) k¨onnen daran erkannt wer-den, dass die Entschl¨usselung nicht mehr funktioniert. Gleiche Texte werden im CBC Mode ver-schieden verschl¨usselt, wenn der Initialisierungsvektor ver¨andert wird. Dies sind wichtige Vorteile des CBC Mode gegen¨uber dem ECB Mode.

Der CBC Mode ist zum Verschl¨usseln langer Nachrichten gut geeignet. Im Vergleich zum ECB Mode ben¨otigt der CBC Mode lediglich eine zus¨atzliche XOR-Operation pro Klartextblock.

Diese zus¨atzliche Laufzeit ist aber vernachl¨assigbar, so dass die Laufzeiten des ECB und des CBC Mode praktisch identisch sind.

Kontrollaufgabe 12 (Entschl¨usselung im CBC Mode). Geben Sie die Entschl¨usselungsfunktion im CBC Mode f¨ur die Chiffretextbl¨ocke c0 bisctan.

Kontrollaufgabe 13 (ECB vs. CBC). Erl¨autern Sie die Verschl¨usselungsmodi ECB und CBC.

Begr¨unden Sie, welchen der beiden Modi Sie bevorzugen w¨urden. Beziehen Sie sich dabei auf die Sicherheit sowie Effizienz der Betriebsmodi.

Counter Mode Der Counter Mode (Ctr Mode) begegnet den oben genannten Nachtei-len des ECB Mode, indem in die Verschl¨usselung des Klartextblocks mi neben dem Ver-schl¨usselungsschl¨usseleauch eine Zufallszahl sowie ein Z¨ahler eingehen. Die Zufallszahl wird auch alsNonce (Number Only Used Once) bezeichnet. Die Nonce wird wie auch der Initialisierungs-vektor im CBC Mode nur f¨ur eine Kommunikation (also eine Session) pseudozuf¨allig ausgew¨ahlt.

Der Z¨ahler wird mit 1 initialisiert und f¨ur jeden weiteren Klartextblock um 1 hochgez¨ahlt. Der Ctr Mode verschl¨usselt Klartextbl¨ocke, indem die Nonce und der aktuelle Wert des Z¨ahlers mittels der Verschl¨usselungsfunktion verschl¨usselt werden und diese Ausgabe per XOR auf den akutellen Klartextblockmiaddiert wird. Die Verschl¨usselungsfunktion sieht im Ctr Mode also wie folgt aus:

E(nonceki, e)⊕mi=ci f¨ur alle 1≤i≤t.

Die Blockchiffre wird also als Pseudozufallszahlengenerator genutzt, sie verschl¨usselt nicht den Klartextblock. Die Verschl¨usselung im Ctr Mode ist in Abbildung 3.11 dargestellt. Die Nonce wird ebenfalls ¨ubermittelt.

Abbildung 3.11: Verschl¨usselung im Counter Mode

Wie bei Stromchiffren ¨ublich, erhalten wir den Klartextblockmi zur¨uck, indem wir per XOR den Schl¨usselstrom auf den Chiffretextblock ci addieren (Schl¨usselstrom ⊕ Schl¨usselstrom = (0,0,0, . . .)). Sie sollen in Kontrollaufgabe 14 die Entschl¨usselung im Ctr Mode angeben.

Wichtig bei der Sicherheitsbetrachtung im Counter Mode sind folgende zwei Aspekte:

1. Im Rahmen der Betrachtung von Stromchiffren in Abschnitt 3.2.1 haben wir als Sicher-heitsbedingungen f¨ur den Schl¨usselstrom formuliert, dass Schl¨usselbits gleichverteilt sein m¨ussen und aus Teilen des Schl¨usselstroms weder Nachfolger noch Vorg¨anger bestimmt wer-den k¨onnen. Wenn die Blockchiffre sicher ist (aus bekanntem Chiffretext kann der Schl¨ussel nicht berechnet werden), dann sind diese Bedingungen erf¨ullt.

3.2. SYMMETRISCHE KRYPTOSYSTEME 51 2. Die Nonce darf bei gleichem Schl¨ussel nicht mehrfach verwendet werden. Ansonsten wird der selbe Schl¨usselstrom generiert und der Angreifer kann erkennen, ob die selben Klartexte verschl¨usselt wurden. Bitte beachten Sie aber, dass die Nonce nicht geheim gehalten werden muss. Die Sicherheit liegt allein an der Geheimhaltung des Schl¨ussels.

Kontrollaufgabe 14 (Entschl¨usselung im Counter Mode). Geben Sie die Ent-schl¨usselungsfunktion im Ctr Mode f¨ur die Chiffretextbl¨ocke c1 bis ct sowie gegebene Nonce an.