Cryptography Reference
In-Depth Information
Die Teilschlüssel
Die Teil-Schlüssel k
1
, k
2
, … k
16
werden aus dem DES-Schlüssel k abgeleitet. Dazu wird die
Position der Binärstellen des DES-Schlüssels k zunächst vertauscht (Permutation). Die 56
wesentlichen Stellen werden in 2 mal 28 Bit aufgeteilt. Von Runde zu Runde erfolgt ein Links-
Shift zyklisch um eine oder zwei Stellen. Die Kästchen C
i
und D
i
bezeichnen nur Werte und
haben keine Funktion. In der „Bit-Selektion“ werden 48 von 56 Bit nach einem rundenspezifi-
schen Schema ausgewählt.
Verschlüsselung in 16 Runden
Die Verschlüsselung erfolgt mit den 16 Teilschlüsseln k
1
, k
2
, … k
16
. Der zu verschlüsselnde
Klartextblock wird nach einer Eingangs-Permutation P in einen linken Block L
0
und einen
rechten Block R
0
mit je 32 Bit aufgeteilt.
Der linke Block L
r
der nächsten Runde ist je gleich dem rechten Block R
r1
seiner vorangehen-
den Runde.
L
R
r
1, 2, ...16
(2.2-4)
r
r
1
Die Kästchen L
r
und R
r
bezeichnen nur Werte und haben keine Funktion. Der rechte Block R
r
der nächsten Runde ergibt sich aus dem linken Block L
r1
und dem rechten Block R
r1
seiner
vorangehenden Runde sowie dem Teil-Schlüssel k
r
.
RL
(R, k)
r
, , ... 6
(2.2-5)
r
r
1
r
1
r
Das Symbol
bezeichnet eine stellenweise (bitweise) Addition modulo 2 (ist identisch dem
Boole'schen Operator XOR). Die Funktion F bildet die 32 Binärstellen von R
r1
und die 48
Binärstellen von k
r
auf 32 Binärstellen am Ausgang von F ab. Diese 32 Binärstellen am Aus-
gang F und die 32 Binärstellen von L
r1
werden dann stellenweise modulo 2 addiert. Ein
Schema entsprechend (2.2-4) und (2.2-5) wird als „Feistel-Netzwerk“ [Fe73] bezeichnet. Die
Sicherheit des Verfahrens hängt jedoch hauptsächlich von den Nicht-Linearitäten in den S-
Boxen ab (siehe unten).
Nach der 16. Runde liefert eine Ausgangs-Permutation P
i1
(invers zu P) den Chiffreblock. Er
umfasst, ebenso wie der Klartext-Block, 64 Binärstellen.
Entschlüsselung
Die Entschlüsselung (mit bekanntem DES-Schlüssel k) könnte in umgekehrter Reihenfolge,
d.h. in Abb. 2-4 vom Chiffre-Text unten zum Klartext oben durchgeführt werden. Die Aus-
gangs-Permutation wird dabei invers durchlaufen und ergibt die Blöcke L
16
und R
16
. Der Block
R
15
ist gleich L
16
. Damit sind die Eingänge und folglich der Ausgang der Funktion F der Run-
de 16 bekannt. R
16
entstand beim Verschlüsseln aus L
15
, indem der Ausgang von F modulo 2
addiert wurde. Wenn wir auf R
16
wiederum den Ausgang von F modulo 2 addieren, dann er-
halten wir wieder L
15
, (für Addition modulo 2 gilt a
a=0, (2.1-12) in Kap. 2.1). Formal erhal-
ten wir aus (2.2-5) für den Fall i=16:
R
F(R,k) L
F(R,k) F(R,k) L
(2.2-6)
16
15
16
15
15
16
15
16
15
Damit haben wir L
15
und R
15
aus L
16
und R
16
gewonnen. Für die weiteren Runden verfahren
wir entsprechend bis zu den Werten L
0
und R
0
. Wenn wir noch die Eingangs-Permutation