Cryptography Reference
In-Depth Information
Funktionsweise von S
osemanuk
Sosemanuk verwendet einen Status der Länge 384 Bit. Davon sind zehnmal 32 Bit
ähnlich wie ein LFSR angeordnet und werden als Register bezeichnet. Die ver-
bleibenden zwei 32-Bit-Variablen werden
R1
und
R2
genannt. Die Funktions-
weise von Sosemanuk ist in Abbildung 16-10 zu sehen. Die einzelnen Bestand-
teile haben folgende Bedeutung:
■
Die Zahl
a
ist eine Konstante, deren Wert in der Spezifikation gegeben ist. Bei
der Fortschaltung wird eine der zehn Registervariablen mit
a
und eine weitere
mit dem Kehrwert von
a
multipliziert.
■
MUX
ist eine Funktion, in die zwei 32-Bit-Werte sowie ein weiteres Bit (es ist
das niederwertigste Bit von
R1
) eingehen. Ist dieses einzelne Bit Null, dann
wird der erste 32-Bit-Wert als Ergebnis ausgegeben, ansonsten der zweite.
■
TRANS
ist eine Funktion, die einen 32-Bit-Wert entgegennimmt, diesen mit
der Konstante 54655307 (in Hexadezimalschreibweise) multipliziert (modulo
2
32
) und anschließend eine Linksrotation um sieben Bit vornimmt.
■
Serpent1
nimmt 128 Bit (in vier 32-Bit-Blöcken) entgegen und gibt ein Ergeb-
nis im gleichen Format aus. Die 128 eingegebenen Bits werden mit der S-Box
S
2
des Verschlüsselungsverfahrens Serpent bearbeitet. Es werden 32 parallele
S-Boxen benötigt, um die 128 Bit verarbeiten zu können (eine S-Box nimmt
vier Bits entgegen). Vor der S-Box-Anwendung wird die Eingangspermutation
von Serpent durchgeführt, danach die Ausgangspermutation.
Eine Besonderheit von Sosemanuk ist, dass stets vier Iterationen durchgeführt
werden müssen, bevor anschließend vier Keystream-Blöcke (zu je 32 Bit) auf ein-
mal ausgegeben werden. Dies liegt daran, dass die Funktion
Serpent1
vier 32-Bit-
Blöcke als Input benötigt und deshalb jeweils drei Blöcke gepuffert werden müs-
sen. Die Initialisierung von Sosemanuk ist in Abbildung 16-11 dargestellt. Auch
hier haben die Entwickler des Verfahrens einige Funktionsblöcke von Serpent
übernommen.
Bewertung von Sosemanuk
In der SASC-Bewertung belegte Sosemanuk bei den Softwareverfahren den drit-
ten Platz. Damit lag das Verfahren deutlich hinter Rabbit und Salsa20, aber auch
deutlich vor allen anderen. Wesentliche Schwachstellen sind bisher nicht bekannt.
16.6.5
Trivium
Triv iu m
ist eine Stromchiffre, die von dem bekannten belgischen Kryptologen
Bart Preneel zusammen mit seinem Landsmann Christophe De Cannière entwi-
ckelt wurde [PreCan]. Die beiden beschreiben das Design als einen »Vorgang zum
Herausfinden, wie weit eine Stromchiffre vereinfacht werden kann, ohne die
Sicherheit, die Geschwindigkeit oder die Flexibilität zu opfern«.