Cryptography Reference
In-Depth Information
Als Keystream wird ausgegeben: h 1 ( P [ i -12])
P [ i ]). Für alle anderen Iterationen
gilt folgende Fortschaltung:
Q [ i ]= Q [ i ]+ g 2 ( Q [ i -3], Q [ i -10], Q [ i -511])
f 1
f 2
g 1
g 2
32 Bit
32 Bit
32 Bit
32 Bit
32 Bit
32 Bit
32 Bit
32 Bit
rot 7
rot 18
rot 3
rot 17
rot 19
rot 10
rot 10
rot 23
rot 8
rot -10
rot-23
rot -8
32 Bit
32 Bit
32 Bit
32 Bit
Abb. 16-5
Für die Funktionsweise von HC-128 spielen die Funktionen f 1 , f 2 , g 1 , und g 2 eine Rolle.
Als Keystream wird ausgegeben: h 2 ( Q [ i -12])
Q [ i ]. Die Initialisierung beginnt
mit dem in Abbildung 16-6 beschriebenen Schema. Hierbei wird eine Variable W
verwendet, die aus 1.280 Blöcken zu je 32 Bit besteht. Die ersten 16 Blöcke wer-
den mit dem Schlüssel und dem Initialisierungsvektor (beide werden jeweils dop-
pelt verwendet) aufgefüllt. Die restlichen Blöcke ergeben sich mithilfe der Funk-
tion u , wobei gilt ( i ist die Nummer des Blocks, also am Anfang 16, dann 17,
dann 18 usw.):
u=W i-16 + f 1 ( W i-15 )+ W i-7 + f 2 ( W i-2 )+ i
Die Inhalte von W werden anschließend wie folgt in P und Q übertragen:
Für i von 0 bis 511: P [ i ]= W i+256 und Q [ i ]= W i+768
Anschließend folgen insgesamt 1.024 Iterationen ohne Keystream-Generierung
mit leicht geänderter Fortschaltung. Die ersten 512 Iterationen haben folgenden
Ablauf ( i läuft von 0 bis 512, die Subtraktionen erfolgen modulo 512):
h 1 ( P [ i -12])
Die verbleibenden 512 Leeriterationen haben folgenden Ablauf ( i läuft wieder
von 0 bis 512, die Subtraktionen erfolgen modulo 512):
P [ i ]= P [ i ]+ g 1 ( P [ i ]-3], P [ i -10], P [ i -511])
h 2 ( Q [ i -12])
Damit ist die Initialisierung abgeschlossen, und die Generierung des Keystreams
kann beginnen.
Q [ i ]= Q [ i ]+ g 2 ( Q [ i ]-3], Q [ i -10], Q [ i -511])
Search WWH ::




Custom Search