Blockchiffren / Block-Cipher

Eine Blockchiffre ist ein Verschlüsselungsverfahren und zählt zur symmetrischen Kryptografie. Bei Blockchiffren bzw. Block-Cipher werden die Daten blockweise zu einer festgelegten Größe einzeln und hintereinander verschlüsselt. Wenn die Daten keinen ganzen Block füllen, dann wird der Block am Ende mit dem so genannten "Padding" auffüllen.

Blocklänge

Bei Blockchiffren sollte die Blocklänge, also die Länge der Bitfolge, die jeweils verschlüsselt wird, mindestens 128 Bit betragen. Eine Blocklänge von nur 64 Bit entspräche 8 Buchstaben im Zeichensatz UTF-8, die sich in der jeweiligen Folge durchaus mal wiederholen können.

Betriebsarten

Für die blockweise Verschlüsselung gibt es verschiedene Möglichkeiten. Die Vorgehensweise ist in den sogenannte Betriebsarten oder Betriebsmodi festgelegt.

ECB - Electronic Codebook

Beim Electronic Codebook (ECB) wird jeder Block mit dem selben Schlüssel verschlüsselt. Hierbei besteht das Problem, dass wenn man zweimal das gleiche verschlüsselt auch zwei mal das gleiche Ergebnis bekommt. Das ist schlecht, weil ein Angreifer per Mustererkennung auf den Inhalt schließen kann.
Man kann das Problem dadurch lösen, dass man mit einer ausreichend großen Blocklänge arbeitet. Nehmen wir beispielsweise eine Blocklänge von 32 Bit. Wenn man immer 4 Byte am Stück verschlüsselt, dann sind das gerade mal 4 Zeichen nach Unicode (8 Bit).
Zeichnet der Angreifer genug Daten auf, ist es sehr wahrscheinlich, dass sich verschlüsselte Blöcke wiederholen. Das ist nicht gut, denn wenn der Angreifer einen Teil des Geheimtextes einem Klartext zuordnen kann, dann kann er vielleicht auch andere Teile des Geheimtextes herausbekommen.

CBC - Cipherblock Chaining

Cipherblock Chaining (CBC) ist eine weitere Möglichkeit der blockweisen Verschlüsselung. Dabei wird der vorangegangene verschlüsselte Block in den nächsten Block mit hineingerechnet. So ändert sich der Block von Block zu Block, auch wenn immer das gleiche drin steht. Doch auch das ist nicht optimal.

CTR - Counter Modus

CTR arbeitet so ähnlich wie CBC. Bei CTR wird mit einer sogenannten Nonce (number used only once) der Startwert initialisiert. Hierbei besteht die Gefahr, dass wenn eine Nonce ein zweites Mal verwendet wird, dann lässt sich die Verschlüsselung dadurch aufheben, dass beide Nachrichten XOR verknüpft werden.

Übersicht: Bekannte Blockchiffren