Cryptography Reference
In-Depth Information
Softwareverfahren
Hardwareverfahren
1
Rabbit
2,80
Tr i v i u m
4,35
2
Salsa20
2,80
Grain
3,50
3
Sosemanuk
1,20
F-FCSR-H
0,52
4
HC-128
0,60
MICKEY
0,17
Weitere Angaben zum Ablauf des Wettbewerbs finden sich in der Veröffentli-
chung The eSTREAM Portfolio [eSTREA], die den Charakter eines Abschlussbe-
richts hat .
16.6.1
HC-128
HC-128 ist eine Stromchiffre, die von Hongjun Wu von der Universität Leuven
entwickelt wurde [Wu]. Es handelt sich um eine für den eSTREAM-Wettbewerb
angepasste Version der (in diesem Buch nicht behandelten) Stromchiffre HC-256.
Das Verfahren ist für eine Implementierung in Software gedacht. Es nutzt einen
128-Bit-Schlüssel sowie einen 128-Bit-Startvektor, um pro Iteration 32 Key-
stream-Bits zu generieren.
Funktionsweise von HC-128
HC-128 arbeitet mit einem Status der Größe 4.096 Byte. Dies ist mit Abstand der
größte Status unter den sieben Verfahren im eSTREAM-Portfolio, wodurch HC-
128 für Umgebungen mit knappem Speicher ungeeignet ist. Der Status ist in die bei-
den Teile P und Q aufgeteilt, die aus jeweils 512 Variablen zu je 32 Bit bestehen.
Diese Variablen werden als P [0], P [1], ..., P [511] sowie Q [0], Q [1], ..., Q [511]
bezeichnet. Für die Fortschaltung und die Initialisierung des Status spielen die sechs
Funktionen f 1 , f 2 , g 1 , g 2 , h 1 und h 2 eine Rolle. Die Funktionsweisen von f 1 , f 2 , g 1
und g 2 sind in Abbildung 16-5 dargestellt ( rot steht hierbei für eine Rechtsrotation
um die genannte Zahl; ist diese Zahl negativ, dann handelt es sich um eine Linksro-
tation). Für die Funktionen h 1 und h 2 gilt folgende Formel ( x ist hierbei eine 32-Bit-
Variable, die sich aus den vier Bytes x 0 , x 1 , x 2 und x 3 zusammensetzt):
h 1 ( x )= Q [ x 0 ]+ Q [256+ x 2 ]
h 2 ( x )= P [ x 0 ]+ P [256+ x 2 ]
Die Fortschaltung des Status (nach erfolgter Initialisierung) hängt davon ab, um
die wievielte Iteration es sich handelt. Für die Iterationen 0 bis 511, 1.024 bis
1.536, 2.048 bis 2.559, 3.072 bis 3.584 usw. gilt die folgende Formel ( i steht für
die Nummer der Iteration modulo 512, die Subtraktionen erfolgen ebenfalls
modulo 512):
P [ i ]= P [ i ]+ g 1 ( P [ i -3], P [ i -10], P [ i -511])
Search WWH ::




Custom Search