- Blockverschlüsselungsalgorithmus
-
Die Blockverschlüsselung, auch Blockchiffre, ist ein Algorithmus, der einen Datenblock von gewöhnlich 64 oder 128 Bit mittels eines Schlüsselwerts verschlüsselt. Der resultierende, verschlüsselte Block hat dabei dieselbe Länge. Typische Werte für die Schlüssellänge moderner Verfahren sind 128, 168, 192 oder 256 Bit. Bekannte Blockchiffren sind DES, AES, IDEA, Camellia und Twofish. Die Alternative zum Einsatz von Blockverschlüsselung ist eine Stromverschlüsselung.
Verarbeitung längerer Nachrichten
Zur Verarbeitung längerer Nachrichten gibt es verschiedene Vorgehensweisen. Meistens werden die Daten zunächst in Blöcke unterteilt, deren Größe durch den Algorithmus vorgegeben ist. Die Betriebsarten Electronic Code Book Mode (ECB) und Cipher Block Chaining Mode (CBC) setzen ganze Blöcke voraus. Daher muss der letzte Block mit Fülldaten aufgefüllt werden (Padding). Im letzten Block kann auch die Länge der eigentlichen Nachricht kodiert werden. Meist wird jedoch nur die Bitfolge 10000… an die Nachricht angefügt. Damit die Füllbits nach der Entschlüsselung wieder eindeutig entfernt werden können, ist bei einer Nachricht mit bereits vollständig gefülltem letzten Block ein weiterer mit der Bitfolge 100000… anzufügen.
Die Blöcke werden anschließend nacheinander verschlüsselt. Beim häufig eingesetzten CBC-Verfahren wird das Ergebnis der Verschlüsselung eines Blocks, Chiffre (engl. Cipher) des zuvor verschlüsselten Blocks mit dem folgenden Nachrichtenblock verknüpft bzw. verkettet. Daraus erklärt sich der Name Cipher Block Chaining.
Etwas Mathematik
Eine Blockchiffre En mit einer Blockgröße von n Bits ist eine bijektive Abbildung.
Eine bijektive Abbildung der Menge der Blöcke der Länge n auf die Menge der Blöcke der Länge n ist eine Permutation von 2n Elementen. Es gibt folglich eine extrem große Zahl (2n!) verschiedener Abbildungen.
Durch den Schlüssel einer Blockchiffre wird von den 2n! möglichen bijektiven Abbildungen genau eine ausgewählt. Da die Schlüssellänge typischer Blockchiffren weit geringer als log2(2n!) Bits ist, wird durch die Gesamtheit aller Schlüssel nur ein kleiner Teil aller möglichen Abbildungen erfasst.
Schon bei einer Blockgröße von 8 Bit wäre ein 1684-Bit-Schlüssel nötig, um alle Permutationen realisieren zu können.
Weblinks
- Klaus Pommerening: Bitblock-Verschlüsselung, Fachbereich Mathematik der Johannes-Gutenberg-Universität
Wikimedia Foundation.