5 DES

DES wurde 1975 von IBM entwickelt. Aus Lucifer hervorgegangen, ist es das weltweit am weitesten verbreitete Kryprosystem.

DES verschlüsselt einen Klartext-Bitstring x der Länge 64 mit einem Schlüssel der Länge 56. Der erhaltene Chiffretext hat wieder Länge 64 Bit.
Die Berechnung der 16 einzelnen Schlüssel für Punkt (2) ist sehr aufwendig und wird in 5.1 DES-Schlüssel beschrieben.

Der Algorithmus hat drei Stufen:
  1. Gegeben ein Klartext x, wird ein Bitstring x0 konstruiert, indem die Bits von x entsprechend einer festen initialen Permutation IP umgeordnet werden. Wir schreiben x0 = IP(x) = L0 R0 , wobei L0 die ersten 32 Bits von x0 enthält und R0 die letzten.
  2. Jetzt werden 16 Wiederholungen einer bestimmten Funktion durchgeführt. Wir berechnen LiRi, i = 1,...,16, nach der folgenden Regel: wobei [+] das Exklusiv-Oder zweier Bitstrings darstellt. f wird weiter unten beschrieben, und K1, K2 , ... , K16 sind Bitstrings der Länge 48, die als Funktion des Schlüssels K berechnet werden.
  3. Wende die inverse Permutation IP-1 auf den Bitstring R16 L16 an; das liefert den Chiffretext y, also y = IP-1(R16 L16). (Beachte die umgedrehte Reihenfolge von L16 und R16).

Die Funktion f nimmt als Eingabe als erstes Argument A (Bitstring der Länge 32) und als zweites J (Bitstring der Länge 48), und gibt einen Bitstring der Länge 32 zurück:
  1. Das erste Argument A wird zu einem Bitstring der Länge 48 "ausgedehnt" mittels einer festen expansion function E. E(A) besteht aus 32 Bits aus A, auf gewisse Weise permutiert, wobei 16 der Bits zweimal vorkommen.
  2. Berechne E(A) [+] J und schreibe das Ergebnis als Konkatenation von acht Strings zu je sechs Bit,
    B = B1B2 B3 B4 B5 B6 B7 B8.
  3. Jedes Bi wird jetzt in den sogenannten S-Boxen Sj zu Cj permutiert, also Cj = Sj (Bj ), j = 1,...,8.
    Die S-Boxen sind 4x16-Matrizen mit Einträgen von 0 bis 15. Sei Bj = b1b2 b3 b4 b5 b6. Dann entsprechen die beiden Bits b1b6 der Binärdarstellung einer Zeile r von Sj (0 <= r <= 3), und die vier Bits b2 b3 b4 b5 legen die Nummer der Spalte c von Sj fest (0 <= c <= 15).
    Sj (Bj) ist dann der so gefundene Eintrag Sj (r,c), geschrieben als Bitstring der Länge 4.
  4. Der Bitstring C = C1C2 C3 C4 C5 C6 C7 C8 der Länge 32 wird nun gemäß der festen Permutation P umgeordnet. Der erhaltene Bitstring P(C) ist f(A,J).


Applet in neuem Fenster starten


Initiale Permutation IP:
58504231261810 2
60524436282012 4
62544638302214 6
64564840322416 8
5749413325179 1
59514335271911 3
61534537292113 5
63554739312325 7

Finale Permutation IP-1:
40 8481656246432
39 7471555236331
38 6461454226230
37 5451353216129
36 4441252206028
35 3431151195927
34 2421050185826
33 141949175725

Bit-Auswahltafel  E:
3212345
456789
8910111213
121314151617
161718192021
202122232425
242526272829
28293031321

Permutation P:
1672021
29122817
1152326
5183110
282414
322739
1913306
2211425


5.1 DES-Schlüssel