Cryptography Reference
In-Depth Information
Funktionsweise von Trivium
Trivium arbeitet mit einer Statusvariablen der Länge 288 Bit. Die Bits sind von
1 bis 288 durchnummeriert. Die Schlüssellänge beträgt 80 Bit, zudem gibt es
einen 80-Bit-Initialisierungsvektor. Die Ausgabe des Keystream erfolgt mit einem
Bit pro Iteration. Die Fortschaltung folgt dem folgenden einfachen Ablauf (siehe
Abbildung 16-12). Von den 288 Bits des Status gehen 15 in logische Operationen
ein, aus denen die drei Werte t 1 , t 2 und t 3 berechnet werden. t 3 wird im Rahmen
der Fortschaltung an Position 1 des Registers geschrieben, t 1 an Position 94 und
t 2 an Position 178. Zudem wandern die Inhalte der 288 Bits jeweils um eine Posi-
tion nach rechts (dies ist in der Abbildung nicht dargestellt). Ausnahmen sind die
Positionen 93, 177 und 288, die nicht verschoben werden. Für die Positionen 1,
94 und 178 gelten bei dieser Verschiebung die Werte vor dem Überschreiben mit
t 1 , t 2 und t 3 .
Schlüssel (128 Bit)
32 Bit
32 Bit
32 Bit
32 Bit
Serpent-Schlüsselaufbereitung
I i i i r t r ( 8 )
R1
R2
32 Bit
32 Bit
32 Bit
32 Bit
1
2
3
4
5
6
7
8
9
10
6 Serpent-
Runden
6 Serpent-
Runden
12 Serpent-Runden
Abb. 16-11
So werden die 12 Statusvariablen von Sosemanuk initialisiert.
Das Keystream-Bit wird extrahiert, indem die Status-Bits Nummer 66, 93, 162,
177, 243 und 288 miteinander exklusiv-oder-verknüpft werden. Mit anderen
Worten heißt dies: Wenn die Zahl der Einsen in diesen sechs Bits ungerade ist,
dann wird eine Eins ausgegeben, ansonsten eine Null. Die Initialisierung läuft wie
folgt ab:
1.
Der Schlüssel (80 Bit) wird in die Bits 1 bis 80 des Status geschrieben.
2.
Der Initialisierungsvektor (80 Bit) wird in die Bits 94 bis 173 des Status ge-
schrieben.
3.
Die Bits 286, 287 und 288 werden auf Eins gesetzt.
Search WWH ::




Custom Search