Mittwoch, 6. Juni 2012


Topthema

Donnerstag, 14. September 2006 | Topthema

About Security #72: Kryptographie — Betriebsarten für Blockchiffren

(Link zum Artikel: http://www.entwickler.de/php/kolumnen/031276)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Wie die Sicherheit von DES erhöht werden kann und welche Betriebsarten es für Blockchiffren wie DES gibt, erfahren Sie in dieser Folge.

Aus DES wird 3DES

Um die Sicherheit des in About Security #71 vorgestellten DES-Algorithmus zu erhöhen, wurde er zu 3DES (auch Triple-DES genannt) erweitert: Jeder Datenblock B wird zuerst mit DES mit dem Schlüssel K_1chiffriert, dann mit K_2 dechiffriert und abschließend mit K_3erneut chiffriert. Ist DES(K, B) die Verschlüsselung des Klartextblocks B durch DES mit dem Schlüssel K und DES^-1(K, B) die Entschlüsselung, dann ergibt sich für die Verschlüsselung:
3DES(K, B) = DES(K_3, DES^-1(K_2 ( DES(K_1, B) ) ).
Die Entschlüsselung läuft analog in umgekehrter Reihenfolge ab:
3DES^-1(K, B) = DES^-1(K_1, DES(K_2 ( DES^-1(K_3, B) ) ).

N E U ! Security aktuell
Täglich aktuelle Security-Infos!

Für die Bildung der Teilschlüssel K_1, K_2 und K_3 wurden folgende Möglichkeiten spezifiziert:

  1. K_1, K_2 und K_3 sind unabhängige Schlüssel
  2. K_1 und K_2 sind unabhängige Schlüssel und K_3 = K_1
  3. K_1 = K_2 = K_3

Das Verfahren wird in den USA in ANSI X9.52 und FIPS PUB 46-3 (PDF) genormt und in der NIST Special Publication 800-67 (PDF) beschrieben. Im Oktober 2000 wurden DES und 3DES durch ihren Nachfolger, den Advanced Encryption Standard (AES), offiziell abgelöst.

Die Anwendung von DES und Blockchiffren allgemein

DES verschlüsselt 64 Bit lange Klartextblöcke. Da die zu verschlüsselnden Daten i.d.R. deutlich länger sind und nicht zwingend blockweise vorliegen, wurden verschiedene Betriebsarten für Blockchiffren entwickelt und teilweise genormt.

About Security: Die komplette Serie
Elektronisches Codebuch (ECB)

Die einfachste Betriebsart einer Blockchiffre besteht darin, die zu verschlüsselnde Nachricht in Blöcke passender Größe aufzuspalten und diese unabhängig voneinander zu ver- und entschlüsseln. Dieses Verfahren wird als Elektronisches Codebuch (electronic codebook, ECB) bezeichnet.

Elektronisches Codebuch (ECB)

Ein Fehler bzw. eine Manipulation eines Schlüsseltextblocks betrifft immer nur den zugehörigen Klartextblock.

Der Nachteil dieser Betriebsart ist, dass bei deterministischen Blockchiffren gleiche Klartextblöcke zu gleichen Schlüsseltextblöcken führen, was die Kryptanalyse erleichtert.

Blockchiffre mit Blockverkettung

Bei einer Blockchiffre mit Blockverkettung (cipher-block chaining, CBC) wird vor dem Verschlüsseln jedes außer des ersten Blocks der Schlüsseltext des vorhergehenden Blocks zum Klartext modular addiert und beim Entschlüsseln entsprechend subtrahiert.

Blockchiffre mit Blockverkettung (CBC)

Ein Fehler bzw. eine Manipulation eines Schlüsseltextblocks betrifft nur den zugehörigen Klartextblock und seinen Nachfolger (aufgrund der Speicherung und erneuten Verwendung des betroffenen Schlüsseltextblocks). Danach hat sich die Entschlüsselung durch ihre geringe Speichertiefe wieder mit der Verschlüsselung synchronisiert und die folgenden Blöcke werden korrekt entschlüsselt.

Ein Angreifer kann erkennen, ob zwei Klartexte mit den gleichen Blöcken beginnen, da dann auch die Schlüsseltexte gleich beginnen. Um dies zu verhindern, kann der Zwischenspeicher mit einem zufälligen Wert initialisiert werden. Dieser muss dann ebenso wie der Schlüssel beim Entschlüsseln bekannt sein.

Schlüsseltextrückführung (CFB)

Bei der Schlüsseltextrückführung (cipher feedback, CFB) wird statt des Klartexts der Inhalt eines Schieberegisters mit der Blockchiffre verschlüsselt und ein Teil des Ergebnisses beim Verschlüsseln modular zum Klartext addiert bzw. beim Entschlüsseln subtrahiert. Das Verfahren wird Schlüsseltextrückführung genannt, da der Schlüsseltext in die Schieberegister geschoben, also rückgeführt wird.

Der Initialisierungswert des Schieberegisters muss ebenso wie der Schlüssel bei der Entschlüsselung bekannt sein.

Schlüsseltextrückführung (CFB)

Das Bild zeigt den allgemeinen Fall, bei dem der Schlüsseltext nicht direkt in das Schieberegister übernommen, sondern zuvor durch eine Auswahleinheit angepasst wird.

Ein Fehler bzw. eine Manipulation des Schlüsseltextstroms wirkt sich so lange auf den entschlüsselten Klartext aus, bis alle falschen Schlüsseltextzeichen das Schieberegister passiert haben.

Ergebnisrückführung (OFB)

Bei der Ergebnisrückführung (output feedback, OFB) wird im Gegensatz zur Schlüsseltextrückführung nicht der Schlüsseltext, sondern das Ergebnis (output) der Blockverschlüsselung in das Schieberegister rückgeführt.

Ergebnisrückführung (OFB)

Das Bild zeigt wieder den allgemeinen Fall, bei dem das Ergebnis der Blockverschlüsselung nicht direkt in das Schieberegister übernommen, sondern zuvor durch eine Auswahleinheit angepasst wird.

Ein Fehler bzw. eine Manipulation des Schlüsseltextstroms betrifft immer nur die jeweils zugehörigen Klartextzeichen. Es ergibt sich also keine Fehlererweiterung.

Aus jeder symmetrischen oder asymmetrischen deterministischen Blockchiffre kann mit ECB, CBC und CFB eine selbstsynchronisierende und mit OFB eine synchrone Stromchiffre konstruiert werden.

Die Betriebsarten wurden u.a. in FIPS PUB 81 und ISO/IEC 10116 genormt. In der NIST Special Publication 800-38A (PDF) "Recommendations for Block Cipher Modes of Operation, Methods and Techniques" werden sie für alle von FIPS zugelassenen Blockchiffren erneut spezifiziert und um den Counter-Mode (CTR) erweitert. Auf diesen wird hier aber nicht weiter eingegangen.

In der nächsten Folge geht es um die praktische Anwendung des DES-Verfahrens.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security – Übersicht zum aktuellen Thema "Kryptographie – DES"

Kommentare

Folgende Links könnten Sie auch interessieren