Cryptography Reference
In-Depth Information
Status verwendet. Die Fortschaltung des Statusteils ist in Abbildung 16-8 darge-
stellt. Im Mittelpunkt des Ablaufs steht die Funktion g , in die auch der Zählerteil
eingeht. Dabei wird vorausgesetzt, dass die Fortschaltung des Zählerteils schon
erfolgt ist. Für n =0, 1, ..., 7 gilt (>> steht für eine bitweise Verschiebung nach
rechts):
g :=( s n + z n ) 2
(( s n + z n ) 2 >>32) mod 2 32
Statusteil (8×32 Bit)
s 0
s 1
s 2
s 3
s 4
s 5
s 6
s 7
g0
g8
g16
g0
g16
g0
g8
g16
g0
g16
g0
g8
g16
g0
g16
g0
g8
g16
g0
g16
+
+
+
+
+
+
+
+
s 0
s 1
s 2
s 3
s 4
s 5
s 6
s 7
Statusteil (8×32 Bit)
Abb. 16-8
Die Fortschaltung des Statusteils von Rabbit erfolgt mit nichtlinearen Funktionen.
Bei den beiden Quadrierungen in dieser Formel entsteht jeweils ein 64-Bit-Wert.
Da jedoch am Ende der Formel ein »mod 2 32 « steht, werden nur die letzten
32 Bit als Ergebnis verwendet. Der Zusatz g 0, g 8 bzw. g 16 bedeutet, dass das
Resultat der obigen Formel zusätzlich um 0, 8 bzw. 16 Bit nach links rotiert wird.
Nach der Fortschaltung werden aus dem Statusteil 128 Bit Keystream extra-
hiert. Wie dies funktioniert, ist in folgender Tabelle dargestellt. e 0 , ..., e 7 sind
hierbei 16-Bit-Wörter und bilden den Keystream. Mit s 0,0 , s 1,0 , ..., s 7,0 ist jeweils
die linke Hälfte einer Statusvariablen gemeint, mit s 0,1 , s 1,1 , ..., s 7,1 entsprechend
die jeweils rechte Hälfte.
e 0
e 1
e 2
e 3
e 4
e 5
e 6
e 7
s 0,0
s 5,1
s 0,1
s 3,0
s 2,0
s 7,1
s 2,1
s 5,0
s 4,0
s 1,1
s 4,1
s 7,0
s 6,0
s 3,1
s 6,1
s 1,0
Zur vollständigen Beschreibung des Verfahrens fehlt nun noch die Initialisierung
des Status. Das Übertrags-Bit wird mit 0 initialisiert. Für den Status- und den
Zählerteil gilt ein etwas komplexeres Vorgehen. Um dieses zu erklären, gehen wir
Search WWH ::




Custom Search