next up previous contents
Nächste Seite: IDEA Verschlüsselung Aufwärts: Verschlüsselungsverfahren und andere Algorithmen Vorherige Seite: Verschlüsselungsverfahren und andere Algorithmen   Inhalt

DES - Data Encyption Standard

Der Data Encryption Standard wurde 1974 von IBM entwickelt und 1977 zum Standard ernannt. Grob gesagt ist DES ein Blockchiffre der mit symmetrischer Verschlüsselung Blöcke zu je 64 Bit mit einem 56 Bit Schlüssel verarbeitet. Jeder 64 Bit Block wird in 16 Stufen verschlüsselt und in umgekehrter Reihenfolge wieder entschlüsselt.

Ein Vorteil von DES liegt in der Performence. Hier wird ein recht guter Datendurchsatz erreicht. Weiterhin ist dieser Algorithmus sehr alt und standardisiert. Die besten und schnellsten Ergebnisse werden allerdings erst erzielt, wenn er direkt in der Hardware implementiert worden ist.

Kommen wir aber jetzt zum eigentlichen Aufbau:

Vor dem eigentlichen Verschlüsseln wird der Klartext als erstes in 64 Bit Blöcke unterteilt. Jeder dieser Blöcke wird einer Eingangspermutation unterzogen. Permutation heißt, daß die Bits um bestimmt Stellen, also nach einem bestimmten Schlüssel, verschoben werden. Ihre Anordnung wird also verändert. Danach wird der 64 Bit Block in einen rechten und einen linken Block geteilt. Im rechten befinden sich alle ungerade und im linken alle geraden Bit-Positionen. Zunächst wird nur mit dem rechten Block gearbeitet. Dieser wird zunächst in einer Expansion von 32 auf 48 Bit erweitert. Dazu wird hinter jedem 4. Bit 2 Bit eingeschoben die aus dem letzten Bit des Vorblocks und aus dem ersten Bit des Nachblocks kopiert werden.

Als Nächstes muß erst der richtige Schlüssel generiert werden. Dazu wird als erstes der Schlüssel permutiert. Anschließend wird der Schlüssel in 2 Blöcke geteilt. Als nächstes wird der eigentliche Rundenschlüssel in einer Schlüsselauswahl aus den beiden Schlüsselblöcken berechnet. Der Ausgewählte Schlüssel besteht aus 48 Bit. Jetzt wird der 48Bit Datenblock mit dem 48Bit Schlüsselblock per XOR verknüpft. Nachdem das geschehen ist kommt der Datenblock in die 8 S-Boxen. Dazu werden werden die 48 Bit in 8 x 6Bit Folgen geteilt. Das erste und das letzte der 6 Bits dienen zur Auswahl der Reihe (0-3). die restlichen 4 Bit zur Auswahl der Spalte. Die S-Boxen kann man sich wie eine Tabelle mit 4 Zeilen und 16 Spalten vorstellen, gefüllt mit Hexadezimalen Werten. Hat man die entsprechende Zelle ausgewählt erhält man einen hex-Wert. Dieser umgerechnet in einen Binärwert ergibt wieder 4 Bit. Das mal die 8 S-Boxen erhält man als Ausgangsdatenblock wieder 32 Bit. Dieser Block wird wieder einer Permutation unterzogen. Danach wird dieser per XOR mit dem am Anfang linken Datenblock verknüpft. Das Ergebnis dieser Verknüpfung wird in den rechten Block kopiert, nachdem dessen ursprünglicher Inhalt in den linken Block verschoben wurde. Das Ganze wird dann 16 mal wiederholt. Nach der 16ten Runde wird der rechte und der linke Datenblock durch eine Ausgangspermutation wieder zusammengeführt und ausgegeben. Die Ausgangspermutation ist invers zur Eingangspermutation. Das trägt zwar nichts zur Sicherheit bei, ist aber notwendig, das dies der Standard verlangt.

Eins ist allerdings noch wichtig: damit in jeder einzelnen der 16 Runden ein anderer Schlüssel verwendet wird, wird der Schlüssel rotiert. Dazu werden die Bits der 2 Schlüsselböcke jeweils um ein bis 2 Bit nach links verschoben. Dies geschieht so, daß nach der 16 Runde die Ausgangsposition wieder hergestellt ist. Hiermit ist gewährleistet, daß ohne weitere Schritte gleich der nächste 64 Bit Datenblock geladen und weiter verschlüsselt werden kann.

Die Entschlüsselung läuft analog wie die Verschlüsselung ab, nur daß hier die Schlüsselrotation nach rechts verläuft.


next up previous contents
Nächste Seite: IDEA Verschlüsselung Aufwärts: Verschlüsselungsverfahren und andere Algorithmen Vorherige Seite: Verschlüsselungsverfahren und andere Algorithmen   Inhalt
Philipp Hügelmeyer 2001-05-14