Cryptography Reference
In-Depth Information
Der zweite wichtige Kritikpunkt ist die Blocklänge. Auf einem 32-Bit-Prozessor
(dies ist die derzeit häufigste Variante) erreicht RC5 die maximale Verschlüsse-
lungsgeschwindigkeit bei einer Blocklänge von 64 Bit. Heutzutage gelten jedoch
128 Bit Blocklänge als wünschenswert.
7.4.4
Blowfish
Von Bruce Schneier, einem amerikanischen Kryptografen und Buchautor, ist in
diesem Buch mehrfach die Rede. Neben seinen äußerst erfolgreichen Veröffent-
lichungen ist er durch einige Krypto-Verfahren bekannt geworden, die er (mit-
)entwickelt hat. Blowfish ist ein Algorithmus, den Schneier 1993 entwarf und ein
Jahr später veröffentlichte [Schn07/1]. Der Name bedeutet auf Deutsch »Kugel-
fisch« (dies ist eine Fischart) und bezieht sich auf das Maskottchen des Unix-
Betriebssystems Open BSD. Schneier wollte mit Blowfish eine Alternative für den
damals bereits in die Jahre gekommenen DES schaffen. Im Gegensatz zu vielen
anderen frühen DES-Alternativen bietet Blowfish eine Schlüssellänge, die weit
über 128 Bit hinausgeht. Dies war offensichtlich ein wichtiges Designziel von
Schneier, denn dieser war damals wie heute ein Freund besonders langer Schlüssel
(in [FeScKo] empfiehlt er, generell eine Schlüssellänge von 256 Bit zu verwenden).
Funktionsweise von Blowfish
Blowfish verwendet hauptsächlich Designtechniken, die bereits 1993 nicht mehr
neu waren. Das Verfahren ist eine Feistel-Chiffre, die wie der DES 64-Bit-Blöcke
in 16 Runden bearbeitet. Die Schlüssellänge ist variabel und liegt zwischen 32
und 448 Bit. Im Gegensatz zum DES gibt es keine Permutationen vor und nach
den 16 Runden. Stattdessen sieht Blowfish zwei zusätzliche Subschlüssel vor, die
nach den 16 Runden mit je einer Blockhälfte exklusiv-oder-verknüpft werden.
Dies ist eine Form von Whitening. Die Rundenfunktion von Blowfish bildet einen
32-Bit-Eingabewert auf einen 32-Bit-Ausgabewert ab (bei einer Feistel-Chiffre
mit 64 Bit Blocklänge ist dies der Normalfall). Der Eingabewert wird in vier Bytes
zerlegt, die jeweils einer S-Box zugeführt werden. Jede S-Box gibt 32 Bit aus. Die
vier resultierenden 32-Bit-Blöcke werden in der Form ((( B 1 + B 2 )
B 3 )+ B 4 ) mitein-
ander verknüpft. Das Resultat ist der Ausgabewert der Rundenfunktion. Die
Rundenschlüssel, die ebenfalls 32 Bit lang sind, werden jeweils am Ende einer
Runde per Exklusiv-oder-Verknüpfung eingebracht.
Das Besondere an den S-Boxen von Blowfish ist, dass ihr Inhalt nicht fest vor-
gegeben ist. Stattdessen werden sie im Rahmen der Schlüsselaufbereitung mit
einem aus dem Schlüssel abgeleiteten Zufallsmuster gefüllt. Solche zufällig gene-
rierten S-Boxen haben einerseits den Vorteil, dass Mallory sie nicht analysieren
kann, was unter anderem die differenzielle und lineare Kryptoanalyse erschwert.
Andererseits besteht vor allem bei kleineren S-Boxen die Gefahr, dass durch eine
zufällige Festlegung ungünstige Eigenschaften entstehen. Zudem ist es bei Hard-
Search WWH ::




Custom Search