DES Chiffre

Kategorisierung:Moderne binär-basierte Blockchiffre
Herkunft / Verwendung: Der Data Encryption Standard (DES) ist eine Blockchiffre mit 8 Byte Blocklänge und weit verbreiteter symmetrischer Verschlüsselungsalgorithmus und wurde als offizieller Standard für die US-Regierung im Jahr 1977 bestätigt und wird seither international vielfach eingesetzt. Seine Entstehungsgeschichte hat wegen der Beteiligung der NSA am Design des Algorithmus immer wieder Anlass zu Spekulationen über seine Sicherheit gegeben. Heute wird DES aufgrund der verwendeten Schlüssellänge von nur 56 Bits für viele Anwendungen als nicht ausreichend sicher erachtet.

Ursprünglich hieß der bei IBM unter der Leitung von Horst Feistel entwickelte Algorithmus Lucifer und bot eine Schlüssellänge von 16 Byte / 128 Bit. Die NSA soll dafür verantwortlich gewesen sein, dass die Schlüssellänge für DES auf 56 Bit gekürzt wurde, weil dies die Schlüssellänge ist, die man mit den Supercomputern bei der NSA in den 1970er-Jahren gerade noch so per Brute Force hätte knacken können.1

Die Schlüssellänge kann durch Mehrfachanwendung des DES jedoch auf einfache Weise vergrößert werden. Als Triple-DES, auch als TDES, 3DES oder DESede bezeichnet, wird der DES weiterhin am häufigsten, zum Beispiel von Banken in Chipkartenanwendungen, eingesetzt, obwohl der TDES als offizieller Standard für die USA durch den Advanced Encryption Standard (AES) abgelöst wurde.

Weil die Schlüssellänge nur 56 Bit beträgt, konnte DES bereits durch Brute-Force-Angriffe gebrochen werden, indem systematisch alle möglichen Schlüssel (256 = ca. 72 Billiarden) getestet wurden. Die EFF baute 1998 eine etwa 250.000 Dollar teure Maschine mit dem Namen Deep Crack. Dieser Superrechner enthielt 1536 spezielle Krypto-Chips und konnte pro Sekunde etwa 88 Milliarden Schlüssel testen. Im Juli 1998 gelang es mit dieser Maschine, einen DES-Code in 56 Stunden zu knacken.

Die einzige andere öffentlich bekannte Maschine zum Brechen von DES ist COPACOBANA. Sie wurde 2006 an den Universitäten Bochum und Kiel gebaut. Im Gegensatz zu Deep Crack besteht eine COPACOBANA aus rekonfigurierbaren Hardware-Bausteinen, sog. FPGAs. COPACOBANA kann 65 Milliarden DES-Schlüssel pro Sekunde testen, woraus sich eine durchschnittliche Suchzeit von 6,4 Tagen für eine DES-Attacke ergibt. Durch den Einsatz rekonfigurierbarer Hardware kann COPACOBANA auch zum Brechen anderer Chiffren wie A5 eingesetzt werden. Die Material- und Herstellungskosten von COPACOBANA belaufen sich auf "nur" etwa 10.000 Dollar.

Beschreibung des Algorithmus

Bei DES handelt es sich um einen symmetrischen Algorithmus, das heißt zur Ver- und Entschlüsselung wird derselbe Schlüssel verwendet. DES funktioniert als Blockchiffre, jeder Block wird also unter Verwendung des Schlüssels einzeln chiffriert, wobei die Daten in 16 Runden von Substitutionen und Transpositionen (Permutation) nach dem Schema von Feistel verwürfelt werden.

Die Blockgröße beträgt 64 Bits, das heißt ein 64-Bit-Block Klartext wird in einen 64-Bit-Block Chiffretext transformiert. Auch der Schlüssel, der diese Transformation kontrolliert, besitzt 64 Bits. Jedoch stehen dem Benutzer von diesen 64 Bits nur 56 Bits zur Verfügung; die übrigen 8 Bits (jeweils ein Bit aus jedem Byte) werden zum Paritäts-Check benötigt. Die effektive Schlüssellänge beträgt daher nur 56 Bits. Die Entschlüsselung wird mit dem gleichen Algorithmus durchgeführt, wobei die einzelnen Rundenschlüssel in umgekehrter Reihenfolge verwendet werden.

Auf den 64 Bit Block wird eine initiale Permutation angewandt. Danach wird der Block in zwei Teile aufgeteilt und jeder Teil in ein 32 Bit Register gespeichert, auf die das Prinzip eines Feistel-Netzwerkes angewandt wird.

Der DES-Algorithmus beschreibt zunächst nur, wie ein Datenblock mit 64 Bits verarbeitet wird. Zur Verarbeitung einer Nachricht beliebiger Länge lässt sich der DES wie auch jede andere Blockchiffre in verschiedenen Betriebsmodi verwenden. Für bestimmte Betriebsmodi, wie zum Beispiel ECB oder CBC, ist ein Auffüllen des Klartextes auf ein Vielfaches der vollen Blocklänge notwendig (Padding). Dies geschieht indem die Bitfolge 1000… angehängt wird.

Die genaue Spezifikation findet sich als FIPS 46-3 beim NIST.

Beispiel

Klartext:Beispielklartext (Länge durch 8 teilbar, kürzere werden mit Nullbytes aufgefüllt)
Schlüssel:Passwort (8 Byte) (Kürzere werden wiederholt, längere gekürzt)
Modus:CBC
IV:NULL, da nicht angegeben (8 Byte: 00 00 00 00 00 00 00 00)
Chiffrat:704DC44D5328EFD2D1FAE6897174436A

Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (DeCoder / Encoder / Solver-Tool)

Die Länge des Textes sollte durch 8 teilbar sein. Kürze Texte werden mit Nullbytes aufgefüllt. Die Länge des Ergebnisses ist immer durch 8 teilbar und damit ggf. bis zu 7 Byte länger als der Klartext.
Der Schlüssel sollte min. 8 Zeichen lang sein, besser noch ein binärer Hash mit min. 64 Bit. Längere Schlüssel werden auf 8 Bytes gekürzt, kürzere wiederholt. Den optionalen Initialisierungsvektor (IV) mit 8 Byte Länge geben Sie durch Komma getrennt als 2. Angabe im Schlüsselfeld an. Kürzere IV werden mit Nullen rechts aufgefüllt, längere auf richtige Länge gekürzt.

Quellen, Literaturverweise und weiterführende Links

1Schmeh, Klaus: Die Welt der geheimen Zeichen, W3L 2004, S. 197
Singh, Simon: Geheime Botschaften, Hanser Verlag 2000, S. 301
Bauer, Friedrich L.: Entzifferte Geheimnisse, Springer Verlag 1995, S. 130
Franke, Herbert W.: Die geheime Nachricht, Umschau Verlag 1982, S. 178
Beutelspacher, Albrecht: Geheimsprachen - Geschichte und Techniken, C. H. Beck Verlag, 2002, S. 41