Cryptography Reference
In-Depth Information
um der Forderung nach einem 128-Bit-Schlüssel nachzukommen. Nachdem Kol-
legen Masseys nachgewiesen hatten, dass die Schlüsselaufbereitung des Verfah-
rens einige Schwächen aufwies, besserte der SAFER-Erfinder nach und veröffent-
lichte
SAFER SK-64
sowie
SAFER SK-128
. Zusätzlich veröffentlichte er dann
noch
SAFER SK-40
, um den damaligen Exportrestriktionen der USA zu genügen.
Die drei SK-Varianten unterscheiden sich vom Original nur durch die unter-
schiedliche Schlüsselaufbereitung. SK steht für »Secure Key Schedule«.
1998 erschien mit
SAFER+
die nächste SAFER-Version [KhKuMa]. An der
Entwicklung waren neben Massey die beiden armenischen Kryptografen Gurgen
Khachatrian und Melsik Kuregian beteiligt. SAFER+ nahm am AES-Wettbewerb
teil, kam allerdings nicht in die engere Auswahl. Im Jahr 2000 erblickte schließ-
lich
SAFER++
als NESSIE-Kandidat (siehe Abschnitt 18.5.4) das Licht der Krypto-
Welt. Sowohl SAFER+ als auch SAFER++ weisen im Vergleich zum Ursprungs-
verfahren einige Änderungen auf, die über die Schlüsselaufbereitung hinausge-
hen. Im Folgenden will ich mich auf die Variante SAFER+ beschränken. Diese ist
besonders wichtig, weil sie im weit verbreiteten Bluetooth-Standard zur Anwen-
dung kommt (siehe Abschnitt 33.3).
9.5.1
Funktionsweise von SAFER+
SAFER+ bietet die im AES-Wettbewerb geforderten Schlüssellängen von 128,
192 und 256 Bit. Die Rundenzahl ist von der Schlüssellänge abhängig. Die Länge
eines Klartextblocks beträgt 128 Bit. Das Verfahren zählt zu den SP-Chiffren.
Eine SAFER+-Runde hat folgenden Ablauf (siehe auch Abbildung 9-5):
1.
Jedes der 16 Bytes eines Blocks wird mit jeweils einem Byte aus dem ersten
Subschlüssel verknüpft (ein Subschlüssel besteht ebenfalls aus 16 Bytes). Die
Verknüpfung ist in acht von 16 Fällen eine Exklusiv-oder-Verknüpfung, an-
sonsten eine Addition.
2.
Acht der 16 resultierenden Bytes werden der Funktion
EXP
zugeführt, die
anderen der Funktion
LOG
.
EXP
und
LOG
sind S-Boxen, die jeweils 8 Bit
auf nichtlineare Weise auf 8 Bit abbilden. Beide S-Boxen lassen sich mit einer
mathematischen Formel beschreiben. Für
EXP
gilt:
y
=45
x
mod 257. Für
LOG
gilt:
y
=log
45
x
mod 257.
x
und
y
sind Byte-Variablen. In beiden For-
meln wird für den Spezialfall
x
=0 als Ergebnis
y
=0 festgelegt.
EXP
und
LOG
verwenden Modulo-Rechnungen, wie sie in Abschnitt 10.1.1 beschrieben
werden. Wie man leicht nachrechnet, ist
LOG
die Umkehrung von
EXP
(und umgekehrt). In der Praxis werden die beiden Formeln fast immer vorbe-
rechnet und als Ersetzungstabellen implementiert.