Cryptography Reference
In-Depth Information
diese gehen neben
R
zwei zusätzliche Bits ein, die als
R
-Input-Bit und
R
-Steuer-Bit
bezeichnet werden. Jede Bit-Variable von
R
erhält bei einer Fortschaltung einen
neuen Wert, der unter anderem von der links davon stehenden Bit-Variable
abhängt. Die Funktion
f
R
, die hierbei eine Rolle spielt, reicht den Eingangswert
unverändert durch, wenn die rechts darunter stehende Variable eine der folgen-
den Nummern hat: 0, 1, 3, 4, 5, 6, 9, 12, 13, 16, 19, 20, 21, 22, 25, 8, 37, 38, 41,
42, 45, 46, 50, 52, 54, 56, 58, 60, 61, 63, 64, 65, 66, 67, 71, 72, 79, 80, 81, 82,
87, 88, 89, 90, 91, 92, 94, 95, 96, 97. In allen anderen Fällen liefert
f
R
den Wert 0.
Die Funktion
g
R
ist ebenfalls recht einfach. Sie liefert den Eingabewert als Aus-
gabe, wenn das
R
-Steuer-Bit 1 ist, ansonsten ist das Ergebnis 0.
Bei
S
erfolgt die Fortschaltung mithilfe der hochgradig nichtlinearen Funk-
tion
CLOCK_S
. Auch in diese gehen zwei zusätzliche Bits ein (
S
-Input-Bit und
S
-Steuer-Bit).
CLOCK_S
läuft nach dem in Abbildung 16-14 unten ersichtlichen
Schema ab. Auch hier erhält jede der 100 Bit-Variablen im Rahmen der Fort-
schaltung einen neuen Wert, der unter anderem von der Bit-Variable links davon
abhängig ist. Die Funktion
f
S
hat folgenden Aufbau (
x
steht für den oberen,
y
für
den unteren Wert):
f
S
(
x,y
)=(
x
⊕
comp0
)·(
y
⊕
comp1
)
comp0
und
comp1
sind Variablen, die bei jedem Aufruf einen anderen Wert
annehmen. Die jeweiligen Werte sind in einer Tabelle festgelegt, die ich aus Platz-
gründen an dieser Stelle nicht aufführen will. Die Funktion
g
S
hat folgende For-
mel:
g
(
x
)=
x
·
y.
Mithilfe von
CLOCK_R
und
CLOCK_S
wird nun die Funktion
CLOCK_KG
definiert, die neben
R
und
S
die beiden Ein-Bit-Variablen
Mixing-
Bit
und
Input-Bit
entgegennimmt.
CLOCK_KG
hat folgenden Ablauf:
1.
R-Steuer-Bit
=
s
34
⊕
r
67
2.
S-Steuer-Bit
=
s
67
⊕
r
33
3.
Falls
Mixing-Bit
=1
dann:
R-Input-Bit
=
Input-Bit
⊕
s
50
sonst:
R-Input-Bit
=
Input-Bit
4.
S-Input-Bit
=
Input-Bit
5.
CLOCK_R
6.
CLOCK_S
Die Fortschaltung des Status erfolgt durch den Aufruf von
CLOCK_KG
mit den
Argumenten
R
,
S
,
Mixing-Bit
=0 und
Input-Bit
=0. Vor jeder Fortschaltung wird
das Bit
z
=
r
0
s
0
als nächstes Bit des Keystreams ausgegeben. Zur Initialisierung
werden zunächst alle 200 Bits von
R
und
S
auf Null gesetzt. Anschließend erfol-
gen drei weitere Initialisierungsschritte:
⊕