Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
122<br />
A. Pfitzmann: Datensicherheit <strong>und</strong> Kryptographie; TU Dresden, WS2000/2001, 15.10.2000, 15:52 Uhr<br />
121<br />
A. Pfitzmann: Datensicherheit <strong>und</strong> Kryptographie; TU Dresden, WS2000/2001, 15.10.2000, 15:52 Uhr<br />
Alle L<strong>in</strong>ien führen der Blocklänge entsprechend viele Alphabetzeichen<br />
Klartextblöcke haben die Länge des Schlüssels der Blockchiffre<br />
Addition mod 2<br />
Liegt die Blockchiffre direkt im Transformationsweg vom Klartext über den Schlüsseltext zum<br />
Klartext, ist ke<strong>in</strong>e Vorausberechnung der Blockchiffre möglich. Andernfalls kann zum<strong>in</strong>dest jeweils<br />
e<strong>in</strong> Block vorausberechnet werden.<br />
Insgesamt ergeben sich die E<strong>in</strong>träge der unteren 3 Zeilen von Bild 3-51.<br />
Speicher für<br />
Zwischenergebnisblock<br />
n-1<br />
3.8.3 Kollisionsresistente Hashfunktion aus Blockchiffre<br />
Klartextblock<br />
n<br />
Letzter<br />
Block<br />
Verschlüsselung<br />
Aus <strong>Sicherheit</strong>sgründen sollte gelten:<br />
Schlüssellänge der Blockchiffre nicht wesentlich länger als ihre Blocklänge.<br />
Bild 3-52: Konstruktion e<strong>in</strong>er kollisionsresistenten Hashfunktion aus e<strong>in</strong>er determ<strong>in</strong>istischen<br />
Blockchiffre<br />
Bild 3-52 ist <strong>in</strong> der gleichen Anordnung wie Bild 3-42 gezeichnet. Deshalb fällt auf, daß die Klartextblöcke<br />
an e<strong>in</strong>er unüblichen Stelle <strong>in</strong> die Blockchiffre e<strong>in</strong>gespeist werden – nämlich als Schlüssel.<br />
In diesem Abschnitt wird beschrieben, wie aus determ<strong>in</strong>istischen Blockchiffren, deren Schlüssel nicht<br />
(wesentlich) länger als die Blocklänge ist, kollisionsresistente Hashfunktionen konstruiert werden<br />
können.<br />
Wie <strong>in</strong> §3.5.1 für kollisionsresistente Permutationenpaare bereits erklärt wurde, kann das F<strong>in</strong>den<br />
von Kollisionen allenfalls komplexitätstheoretisch schwer se<strong>in</strong> – <strong>in</strong>formationstheoretisch ist es leicht,<br />
denn e<strong>in</strong> Angreifer könnte immer alle Möglichkeiten durchprobieren. Entsprechendes gilt für kollisionsresistente<br />
Hashfunktionen: Da sie beliebig lange Argumente auf Werte fester Länge abbilden,<br />
gibt es beliebig viele Kollisionen, d.h. verschiedene Argumente, die auf denselben Wert abgebildet<br />
werden. E<strong>in</strong> Angreifer muß also nur genügend ausdauernd suchen (können), um Kollisionen zu<br />
f<strong>in</strong>den.<br />
Das Beste, was man sich wünschen kann, wäre e<strong>in</strong>e effiziente Konstruktion, die aus beliebigen<br />
Blockchiffren kollisionsresistente Hashfunktionen gew<strong>in</strong>nt, die bewiesenermaßen so sicher wie die<br />
verwendete Blockchiffre s<strong>in</strong>d. Leider ist e<strong>in</strong>e solche Konstruktion nicht bekannt – unter den zahlreichen<br />
Vorschlägen gibt es nicht e<strong>in</strong>mal solche, die zwei der drei kursiv hervorgehobenen<br />
Eigenschaften haben. Da <strong>in</strong> §3.6.4 bereits (unter der Faktorisierungsannahme) bewiesenermaßen<br />
sichere kollisionsresistente Hashfunktionen angegeben wurden, geht es hier vor allem um größere<br />
Effizienz. Deshalb wird e<strong>in</strong>e gemäß Bild 3-12 „wohluntersuchte“ Konstruktion angegeben, wie aus<br />
determ<strong>in</strong>istischen Blockchiffren, deren Schlüssel aus <strong>Sicherheit</strong>sgründen hier nicht (wesentlich)<br />
länger als die Blocklänge se<strong>in</strong> dürfen [LuRa_89], sehr effizient kollisionsresistente Hashfunktionen<br />
konstruiert werden können.<br />
Wichtig ist – ganz egal wie die Hashfunktion konstruiert wird –, daß der Initialisierungswert<br />
festgelegt oder die Nachricht postfixfrei90 codiert ist. Sonst gibt es folgende trivialen<br />
Kollisionen: Bei der r<strong>und</strong>enweisen Berechnung des Hashwertes e<strong>in</strong>er Nachricht entstehen mit den<br />
Zwischenergebnisblöcken jeweils passende Initialisierungswerte für die um die bisher abgearbeiteten<br />
Klartextblöcke verkürzte Nachricht.<br />
Um diese mögliche Schwäche zu vermeiden <strong>und</strong> auch um beim Auffüllen der Nachricht auf e<strong>in</strong><br />
Vielfaches der Schlüssellänge der Blockchiffre zu wissen, wie viele Bits aufgefüllt wurden, sollte der<br />
letzte Klartextblock die Länge der Nachricht <strong>in</strong> Bit enthalten [LaMa_92 Seite 57].<br />
Außerdem wird für jede Hashfunktion, die Ergebnisse der Länge b liefert (also z.B. auch die<br />
angegebene Konstruktion bei Verwendung e<strong>in</strong>er Blockchiffre der Blocklänge b), durch Durchprobieren<br />
des Nachrichtenraumes im Mittel nach etwa 2b/2 Versuchen e<strong>in</strong>e Kollision gef<strong>und</strong>en. Dies<br />
liegt am sogenannten Geburtstagsparadox: Damit mit Wahrsche<strong>in</strong>lichkeit 1/2 m<strong>in</strong>destens zwei<br />
Menschen am gleichen Tag Geburtstag haben, werden nicht etwa 365/2, sondern nur etwa √⎺⎺⎺ 365<br />
Menschen benötigt [DaPr_89 Seite 279-281].<br />
Für viele Anwendungen wird bei der angegebenen Konstruktion der E<strong>in</strong>satz von DES als Blockchiffre<br />
also nicht ausreichen, da 232 Versuche von vielen möglichen Angreifern durchaus durchführbar<br />
s<strong>in</strong>d. Selbst e<strong>in</strong>e Blocklänge von 128 Bit dürfte für die überschaubare Zukunft nicht genügen, da<br />
demnächst auch 264 Versuche fähigen Angreifern möglich se<strong>in</strong> werden. Deshalb sollten kollisionsresistente<br />
Hashfunktionen Ergebnisse von wenigstens 160 Bit Länge liefern.<br />
In [DaPr_84, DaPr_89 Seite 265] wird folgende Konstruktion e<strong>in</strong>er kollisionsresistenten Hashfunktion<br />
aus e<strong>in</strong>er determ<strong>in</strong>istischen Blockchiffre (z.B. DES) vorgeschlagen:<br />
Der zu hashende Klartext wird <strong>in</strong> Blöcke der Schlüssellänge der Blockchiffre unterteilt. In jeder<br />
R<strong>und</strong>e wird e<strong>in</strong>er der Klartextblöcke als Schlüssel der Blockchiffre verwendet.<br />
Die E<strong>in</strong>gabe der Blockchiffre ist für die erste R<strong>und</strong>e e<strong>in</strong> Initialisierungswert, für die zweite <strong>und</strong><br />
alle folgenden R<strong>und</strong>en das Ergebnis der vorherigen R<strong>und</strong>e. (In Bild 3-52 wird der Initialisierungswert<br />
s<strong>in</strong>nvollerweise als Zwischenergebnisblock Nummer 0 aufgefaßt.)<br />
In jeder R<strong>und</strong>e wird nicht nur verschlüsselt, sondern auch die E<strong>in</strong>gabe der Blockchiffre modulo 2<br />
zur Ausgabe addiert. Dies verh<strong>in</strong>dert, daß e<strong>in</strong> Angreifer rückwärts rechnen kann, <strong>in</strong>dem er e<strong>in</strong>en<br />
Schlüssel (sprich: Klartextblock) wählt, dann bezüglich des gewählten Schlüssels die Blockchiffre<br />
<strong>in</strong>vertiert (sprich: entschlüsselt) <strong>und</strong> so die E<strong>in</strong>gabe dieser R<strong>und</strong>e erhält. Auf diese Art könnte er,<br />
wenn der Initialisierungswert frei wählbar ist, Kollisionen berechnen, <strong>in</strong>dem er das Beschriebene mit<br />
zwei unterschiedlichen Schlüsseln ausführt.<br />
Das Ergebnis der letzten R<strong>und</strong>e ist die Ausgabe der Hashfunktion. (Damit dieser Hashwert von<br />
anderen überprüft werden kann, muß ihnen auch der Initialisierungswert bekannt se<strong>in</strong>. Ist der<br />
Initialisierungwert nicht global festgelegt, so muß er ihnen ggf. mitgeteilt werden.)<br />
90 Ke<strong>in</strong> Postfix, d.h. Endstück, e<strong>in</strong>er postfixfrei abgebildeten Nachricht darf gleichzeitig postfixfreie Abbildung e<strong>in</strong>er<br />
anderen Nachricht se<strong>in</strong>.