Blockverschlüsselungsmodi

In diesem Kapitel werden die verschiedenen Betriebsarten einer Blockverschlüsselung erläutert. Dies sind Verfahrensregeln für eine generische Blockverschlüsselung. Interessanterweise führen die verschiedenen Modi dazu, dass unterschiedliche Eigenschaften erzielt werden, die die Sicherheit der zugrunde liegenden Blockverschlüsselung erhöhen.

Eine Blockverschlüsselung verarbeitet die Datenblöcke fester Größe. Normalerweise ist die Größe einer Nachricht größer als die Blockgröße. Daher wird die lange Nachricht in eine Reihe von aufeinanderfolgenden Nachrichtenblöcken unterteilt, und die Verschlüsselung bearbeitet diese Blöcke einzeln.

EZB-Modus (Electronic Code Book)

Dieser Modus ist eine sehr einfache Möglichkeit, eine Reihe von nacheinander aufgelisteten Nachrichtenblöcken zu verarbeiten.

Operation

  • Der Benutzer nimmt den ersten Klartextblock und verschlüsselt ihn mit dem Schlüssel, um den ersten Chiffretextblock zu erzeugen.

  • Dann nimmt er den zweiten Klartextblock und folgt demselben Vorgang mit demselben Schlüssel und so weiter.

Der EZB-Modus ist deterministicDas heißt, wenn die Klartextblöcke P1, P2, ..., Pm zweimal unter demselben Schlüssel verschlüsselt werden, sind die ausgegebenen Chiffretextblöcke dieselben.

Tatsächlich können wir für einen bestimmten Schlüssel technisch ein Codebuch mit Chiffretexten für alle möglichen Klartextblöcke erstellen. Die Verschlüsselung würde dann bedeuten, nur nach dem erforderlichen Klartext zu suchen und den entsprechenden Chiffretext auszuwählen. Somit ist die Operation analog zur Zuweisung von Codewörtern in einem Codebuch und erhält daher einen offiziellen Namen - Electronic Codebook Mode of Operation (ECB). Es ist wie folgt dargestellt -

Analyse des EZB-Modus

In der Realität enthalten Anwendungsdaten normalerweise Teilinformationen, die erraten werden können. Zum Beispiel kann die Gehaltsspanne erraten werden. Ein Chiffretext der EZB kann es einem Angreifer ermöglichen, den Klartext durch Ausprobieren zu erraten, wenn die Klartextnachricht vorhersehbar ist.

Wenn beispielsweise bekannt ist, dass ein Chiffretext aus dem EZB-Modus eine Gehaltszahl verschlüsselt, kann ein Angreifer mit einer kleinen Anzahl von Versuchen die Zahl wiederherstellen. Im Allgemeinen möchten wir keine deterministische Verschlüsselung verwenden, und daher sollte der EZB-Modus in den meisten Anwendungen nicht verwendet werden.

CBC-Modus (Cipher Block Chaining)

Der CBC-Betriebsmodus bietet eine Nachrichtenabhängigkeit zum Erzeugen von Chiffretext und macht das System nicht deterministisch.

Operation

Der Betrieb des CBC-Modus ist in der folgenden Abbildung dargestellt. Die Schritte sind wie folgt:

  • Laden Sie den n-Bit-Initialisierungsvektor (IV) in das oberste Register.

  • XOR der n-Bit-Klartextblock mit Datenwert im obersten Register.

  • Verschlüsseln Sie das Ergebnis der XOR-Operation mit der zugrunde liegenden Blockverschlüsselung mit Schlüssel K.

  • Führen Sie den Chiffretextblock in das oberste Register ein und setzen Sie den Vorgang fort, bis alle Klartextblöcke verarbeitet sind.

  • Zur Entschlüsselung werden IV-Daten mit dem ersten entschlüsselten Chiffretextblock XOR-verknüpft. Der erste Chiffretextblock wird auch in das Register eingespeist, das IV ersetzt, um den nächsten Chiffretextblock zu entschlüsseln.

Analyse des CBC-Modus

Im CBC-Modus wird der aktuelle Klartextblock zum vorherigen Chiffretextblock hinzugefügt und das Ergebnis mit dem Schlüssel verschlüsselt. Die Entschlüsselung ist somit der umgekehrte Vorgang, bei dem der aktuelle Chiffretext entschlüsselt und anschließend der vorherige Chiffretextblock zum Ergebnis hinzugefügt wird.

Der Vorteil von CBC gegenüber der EZB besteht darin, dass eine Änderung der IV zu einem unterschiedlichen Chiffretext für eine identische Nachricht führt. Auf der Nachteilsseite wird der Übertragungsfehler während der Entschlüsselung aufgrund des Verkettungseffekts auf wenige weitere Blöcke übertragen.

Erwähnenswert ist, dass der CBC-Modus die Grundlage für einen bekannten Authentifizierungsmechanismus für den Datenursprung bildet. Dies hat einen Vorteil für Anwendungen, die sowohl eine symmetrische Verschlüsselung als auch eine Datenursprungsauthentifizierung erfordern.

CFB-Modus (Cipher Feedback)

In diesem Modus wird jeder Chiffretextblock in den Verschlüsselungsprozess zurückgeführt, um den nächsten Klartextblock zu verschlüsseln.

Operation

Der Betrieb des CFB-Modus ist in der folgenden Abbildung dargestellt. Beispielsweise hat in dem vorliegenden System ein Nachrichtenblock eine Größenbits, wobei 1 <s <n ist. Der CFB-Modus erfordert einen Initialisierungsvektor (IV) als den anfänglichen zufälligen n-Bit-Eingabeblock. Die IV muss nicht geheim sein. Arbeitsschritte sind -

  • Laden Sie die IV in das oberste Register.

  • Verschlüsseln Sie den Datenwert im obersten Register mit der zugrunde liegenden Blockverschlüsselung mit Schlüssel K.

  • Nehmen Sie nur die Anzahl der höchstwertigen Bits (linke Bits) der Ausgabe des Verschlüsselungsprozesses und XOR sie mit dem Klartext-Nachrichtenblock 's', um einen Chiffretextblock zu erzeugen.

  • Führen Sie den Chiffretextblock in das oberste Register ein, indem Sie bereits vorhandene Daten nach links verschieben, und setzen Sie den Vorgang fort, bis alle Klartextblöcke verarbeitet sind.

  • Im Wesentlichen wird der vorherige Chiffretextblock mit dem Schlüssel verschlüsselt, und dann wird das Ergebnis in den aktuellen Klartextblock XOR-verknüpft.

  • Ähnliche Schritte werden zur Entschlüsselung ausgeführt. Die vorab festgelegte IV wird zunächst zu Beginn der Entschlüsselung geladen.

Analyse des CFB-Modus

Der CFB-Modus unterscheidet sich erheblich vom EZB-Modus. Der einem bestimmten Klartextblock entsprechende Chiffretext hängt nicht nur von diesem Klartextblock und dem Schlüssel ab, sondern auch vom vorherigen Chiffretextblock. Mit anderen Worten ist der Chiffretextblock von der Nachricht abhängig.

CFB hat eine sehr seltsame Eigenschaft. In diesem Modus entschlüsselt der Benutzer den Chiffretext nur mit dem Verschlüsselungsprozess der Blockverschlüsselung. Der Entschlüsselungsalgorithmus der zugrunde liegenden Blockverschlüsselung wird niemals verwendet.

Anscheinend wandelt der CFB-Modus eine Blockverschlüsselung in eine Art Stream-Verschlüsselung um. Der Verschlüsselungsalgorithmus wird als Schlüsselstromgenerator verwendet, um einen Schlüsselstrom zu erzeugen, der in das untere Register gestellt wird. Dieser Schlüsselstrom wird dann wie bei der Stromverschlüsselung mit dem Klartext XOR-verknüpft.

Durch Konvertieren einer Blockverschlüsselung in eine Stream-Verschlüsselung bietet der CFB-Modus einige der vorteilhaften Eigenschaften einer Stream-Verschlüsselung, während die vorteilhaften Eigenschaften einer Blockverschlüsselung beibehalten werden.

Auf der anderen Seite wird der Übertragungsfehler aufgrund des Wechsels von Blöcken weitergegeben.

Ausgangsrückkopplungsmodus (OFB)

Dabei werden die aufeinanderfolgenden Ausgabeblöcke von der zugrunde liegenden Blockverschlüsselung zurückgeführt. Diese Rückkopplungsblöcke stellen eine Bitfolge bereit, um den Verschlüsselungsalgorithmus zu speisen, der wie im Fall des CFB-Modus als Schlüsselstromgenerator fungiert.

Der generierte Schlüsselstrom wird mit den Klartextblöcken XOR-bearbeitet. Der OFB-Modus erfordert eine IV als anfänglichen zufälligen n-Bit-Eingabeblock. Die IV muss nicht geheim sein.

Die Operation ist in der folgenden Abbildung dargestellt -

Zähler (CTR) -Modus

Es kann als zählerbasierte Version des CFB-Modus ohne Rückmeldung betrachtet werden. In diesem Modus müssen sowohl der Sender als auch der Empfänger auf einen zuverlässigen Zähler zugreifen, der jedes Mal, wenn ein Chiffretextblock ausgetauscht wird, einen neuen gemeinsamen Wert berechnet. Dieser gemeinsame Zähler ist nicht unbedingt ein geheimer Wert, aber die Herausforderung besteht darin, dass beide Seiten den Zähler synchronisieren müssen.

Operation

In der folgenden Abbildung sind sowohl die Verschlüsselung als auch die Entschlüsselung im CTR-Modus dargestellt. Schritte in Betrieb sind -

  • Das Laden des anfänglichen Zählerwerts in das oberste Register ist für Sender und Empfänger gleich. Es spielt die gleiche Rolle wie das IV im CFB- (und CBC-) Modus.

  • Verschlüsseln Sie den Inhalt des Zählers mit dem Schlüssel und legen Sie das Ergebnis in das untere Register.

  • Nehmen Sie den ersten Klartextblock P1 und XOR zum Inhalt des unteren Registers. Das Ergebnis ist C1. Senden Sie C1 an den Empfänger und aktualisieren Sie den Zähler. Die Zähleraktualisierung ersetzt die Chiffretext-Rückmeldung im CFB-Modus.

  • Fahren Sie auf diese Weise fort, bis der letzte Klartextblock verschlüsselt wurde.

  • Die Entschlüsselung erfolgt in umgekehrter Reihenfolge. Der Chiffretextblock wird mit der Ausgabe von verschlüsselten Inhalten mit Zählerwert XOR-verknüpft. Nach der Entschlüsselung jedes Chiffretextes wird der Blockzähler wie bei der Verschlüsselung aktualisiert.

Analyse des Zählermodus

Es hat keine Nachrichtenabhängigkeit und daher hängt ein Chiffretextblock nicht von den vorherigen Klartextblöcken ab.

Wie der CFB-Modus beinhaltet der CTR-Modus nicht den Entschlüsselungsprozess der Blockverschlüsselung. Dies liegt daran, dass der CTR-Modus tatsächlich die Blockverschlüsselung verwendet, um einen Schlüsselstrom zu generieren, der mit der XOR-Funktion verschlüsselt wird. Mit anderen Worten, der CTR-Modus konvertiert auch eine Blockverschlüsselung in eine Stream-Verschlüsselung.

Der schwerwiegende Nachteil des CTR-Modus besteht darin, dass ein synchroner Zähler bei Sender und Empfänger erforderlich ist. Der Verlust der Synchronisation führt zu einer fehlerhaften Wiederherstellung von Klartext.

Der CTR-Modus bietet jedoch fast alle Vorteile des CFB-Modus. Außerdem verbreitet es überhaupt keinen Übertragungsfehler.