Data Encryption Standard (DES)

Der Data Encryption Standard (DES) wurde von IBM entwickelt und 1976 als US-Standard anerkannt. Dies geschah jedoch in keinem anderen Land, da Originalversion durch die NSA (National Security Agency) überarbeitet wurde, bevor sie zum Standard gemacht wurde. (Dies lässt vermuten, dass die NSA bereits zu diesem Zeitpunkt in der Lage war, den Code zu knacken.)

Beim DES handelt es sich um eine Blockchiffre, die auf Blöcken mit 64 Bits arbeitet. Aus den 64 Bit großen Blöcken des Klartextes erzeugt der symmetrische Algorithmus 64 Bit große Chiffriertexte. Der dazu verwendete Schlüssel ist ebenfalls 64 Bit lang, allerdings ist jedes achte Bit ein Paritätsbit, so dass nur 56 Bit zur Ver- und Entschlüsselung benutzt werden.

Die Sicherheit des Verfahrens beruht auf einer Kombination von Permutationen und Substitutionen. Die Ver- bzw. Entschlüsselung eines 64-Bit-Blocks kann grob in die folgenden drei Schritte zerlegt werden:

-Der Eingabeblock wird der Eingangspermutation unterworfen. Hierdurch wird die Reihenfolge der Bits verändert Das Ergebnis wird in zwei 32-Bit-Register geschrieben. Mit den 64 Bit des Schlüssels wird ebenso verfahren, nachdem die 56 relevanten Bits bestimmt worden sind, werden diese ebenfalls transponiert und in zwei 28-Bit-Register geschrieben.

-Im zweiten Schritt werden 16 Mal die gleichen Rechenschritte wiederholt (Runden), wobei in jeder Runde der Schlüssel neu festgelegt wird:

-Zunächst werden die Bits der "Schlüsselregister" zyklisch um ein bzw. zwei Bit verschoben und 48 der 56 Bit als Rundenschlüssel bestimmt.

-Das rechte Datenregister (R-Block) wird mittels einer Expansion von 32 auf 48 Bit vergrößert. -Daten- und Schlüsselblock werden durch logisches XOR miteinander kombiniert.

-Das Resultat wird in 6 Bit große Abschnitte aufgeteilt und durch acht S-Boxen (Substitutionsboxen) gesandt, die hieraus wiederum 32 neue Bits erzeugen.

-Zum Schluss wird der Block nochmals einer Ausgangspermutation unterzogen.

Der so erzeugte 32-Bit-Datenblock wird mittels XOR mit den Daten des linken Datenregisters verknüpft. Das Ergebnis dieser Operationen bildet den neuen Inhalt des rechten Registers, wobei der alte R-Block zuvor ins linke Register geschoben wurde.

Nach der 16. Runde werden das linke und rechte Register wieder zu einem 64-Bit-Block zusammengefügt, bevor die zur Ausgangspermutation angewendet wird. (Da Eingangs- und Ausgangspermutation zu einander invers sind und nur zu Beginn und am Ende durchgeführt werden, haben sie auf die kryptografische Sicherheit des Verfahrens keinen Einfluss.) Beim DES unterscheidet sich die Entschlüsselung nur geringfügig von der Verschlüsselung. Lediglich die Teilschlüssel der 16 Runden müssen in umgekehrter Reihenfolge verwendet werden, der Rest des Algorithmus bleibt unverändert.

Auch wenn Zweifel angebracht sind (durch Aktivitäten der NSA), so galt der DES lange Zeit als sehr sicher. Durch immer bessere Computertechnik kann das Verfahren heute jedoch nicht mehr als sicher betrachtet werden:

 -Es existieren schwache Schlüssel, bei denen durch die Schlüsselpermutation die Bits so gesetzt werden, 
  dass die 16 generierten Teilschlüssel nahezu identisch werden. 
 -Der gravierendste Schwachpunkt ist die geringe Mächtigkeit des Schlüsselraumes von 256, welcher heutzutage einem 
  Brute-Force-Angriff nicht mehr standhalten kann. 
Mit Triple-DES wurde nochmal der Versuch unternommen, die Sicherheit des Verfahrens weit genug zu erhöhen, um den Zeitraum bis zur Verfügbarkeit eines besseren Verfahrens zu überbrücken. Triple-DES ist nichts weiter als eine dreimalige Verschlüsselung mit DES.

Trotz der Schlüssellänge von 156 Bit ist die erreichte Sicherheit nur knapp mit der einer Verwendung eines 128-Bit-Schlüssels vergleichbar. Zusammenfassend ist festzustellen, dass die Mängel von DES mittlerweile so schwerwiegend sind, dass das Verfahren heute nicht mehr als sicher einzustufen ist. Auch Triple-DES stellt allenfalls eine Notlösung dar.