• Keine Ergebnisse gefunden

Hashfunktionen spielen eine sehr wichtige Rolle in der modernen Kryptographie. Ihr zentrales Schutzziel ist derIntegrit¨atsschutz, d.h. zu erkennen, ob Daten ver¨andert wurden. Daraus ergeben sich dann weitere Anwendungsgebiete, zum Beispiel im Kontext von Message Authentication Co-des (MAC), elektronischen Signaturverfahren wie RSA oder Pseudozufallszahlengeneratoren (d.h.

Funktionen, die eine zuf¨allig und gleichverteilt ’aussehende’ Folge von Bits ausgibt).

Eine Hashfunktion bezeichnet eine mathematische Funktion, die eine Bitfolge beliebiger L¨ange auf eine Bitfolge mit fester L¨ange abbildet (siehe Definition 20). Die Menge der Bitstrings belie-biger L¨ange bezeichnen wir mit{0,1}(das ist also der Definitionsbereich der Hashfunktion), die Menge der Bitstrings der L¨ange N ∈N bezeichnen wir mit {0,1}N (das ist der Bildbereich der Hashfunktion).

Definition 20 (Hashfunktion). Es sei N eine nat¨urliche Zahl. Eine Funktion H : {0,1} → {0,1}N heißt Hashfunktion der L¨angeN.

Der Funktionswert einer Hashfunktion wird auch alsHashwertoderFingerabdruck bezeichnet.

Denn der im Vergleich zur Eingabe typischerweise sehr kurze Hashwert dient als Identifikator dieser Eingabe – quasi wie ein Fingerabdruck den zugeh¨origen Menschen identifizieren soll. In Abbildung 2.8 stellen wir Ein- und Ausgabe einer Hashfunktion bildlich dar. Weil die Ausgaben Bitstrings der L¨angeN sind, gibt es insgesamt 2N m¨ogliche Hashwerte.

Wie bei Verschl¨usselungsverfahren verarbeitet eine Hashfunktion h¨aufig große Datenmengen.

Die Berechnung von Hashwerten muss daher effizient sein, d.h. f¨ur gegebenes m∈ {0,1} muss

2.4. HASHFUNKTIONEN 41

{0,1} Unendliche Menge

{0,1}N 2N Elemente HashfunktionH

Abbildung 2.8: Eingabe- und Ausgabemenge einer Hashfunktion.

H(m) schnell berechnet werden k¨onnen. Zum Beispiel werden Hashfunktionen in der Krypto-graphie bei der Erzeugung und ¨Uberpr¨ufung elektronischer Signaturen verwendet. Da oft große elektronische Dateien signiert werden und Public-Key-Verfahren im Allgemeinen langsam sind, wird nicht die gesamte Datei signiert, sondern lediglich der Hashwert der Datei – also ihr kleiner Fingerabdruck.

Hashfunktionen werden in vielen Bereichen der Informatik verwendet. F¨ur kryptographische Zwecke m¨ussen jedoch einige Sicherheitsanforderungen an die Hashfunktion gestellt werden. Doch welche Aspekte machen die Sicherheit einer kryptographischen Hashfunktion aus?

Damit das Erstellen einer elektronischen Signatur sicher ist, muss zun¨achst Folgendes gew¨ahrleistet sein: zu einem gegebenen Hashwert darf in der Praxis kein Dokument gefunden werden, welches den gegebenen Hashwert besitzt. Da eine Hashfunktion gem¨aß Definition 20 nicht injektiv ist, existieren aber stets solche Dokumente (sogar unendlich viele Eingaben f¨ur einen gegebenen Hashwert). Man verlangt nun, dass das Auffinden eines dieser Eingaben zeitlich zu lange dauert. Umgekehrt soll der Hashwert zu einer gegebenen Eingabe effizient berechnet werden k¨onnen. Daher heißt diese Eigenschaft Einwegeigenschaft, wir formulieren diese Anforderung in Defintion 21.

Definition 21 (Einwegfunktion). Es sei H : {0,1} → {0,1}N eine Hashfunktion. H heißt Einwegfunktion, falls es praktisch unm¨oglichist, zu einem gegebenen Hashwert h∈ {0,1}N eine Eingabem∈ {0,1} zu finden mit H(m) =h.

Bei dieser Definition stellt sich die Frage, was genau unter praktisch unm¨oglich zu verstehen ist. Einfach ausgedr¨uckt bedeutetpraktisch unm¨oglich, dass ein Algorithmus in der Praxis im All-gemeinen nicht erfolgreich terminiert: er ben¨otigt entweder zu viel Zeit oder zu viel Speicher, um ein korrektes Ergebnis zu liefern. In der Community legt man dazu eine Sicherheits-schwelle fest, ab der es praktisch unm¨oglich ist, ein Sicherheitsverfahren zu brechen. Aktuell liegt diese Schwelle bei 100 Bit: das ist so zu verstehen, dass dereffizientesteAngriff mindestens 2100 elementare Operationen ben¨otigt. Was unter einerelementaren Operation zu verstehen ist, h¨angt vom betrachteten Sicherheitsverfahren ab. F¨ur Hashfunktionen werden wir das unten kl¨aren.

In der folgenden Definition 22 f¨uhren wir den BegriffKollisionein.

Definition 22 (Kollision). Es sei H :{0,1} → {0,1}N eine Hashfunktion. Ein Tupel(m, m0)∈ {0,1}× {0,1},m6=m0 heißt Kollision, fallsH(m) =H(m0)gilt.

Eine Kollision liegt also vor, wenn wir zwei unterschiedliche Eingaben finden, die denselben Hashwert besitzen. Mit dem Begriff der Kollision sind wir nun in der Lage, eine kryptographisch sichere Hashfunktion zu definieren.

Definition 23(Kryptographisch sichere Hashfunktion). Es seiH :{0,1}→ {0,1}N eine Hash-funktion. Die Hashfunktion heißt kryptographisch sicher, falls sie folgende Anforderungen erf¨ullt:

1. Es sei ein Hashwert h ∈ {0,1}N gegeben. Die Hashfunktion H heißt Preimage resistant, falls es praktisch unm¨oglich ist, einen Bitstringm∈ {0,1} zu finden mit H(m) =h.H ist also eine Einwegfunktion.

2. Es sei eine Eingabe m ∈ {0,1} gegeben. Die Hashfunktion H heißt Second preimage resistant oder schwach kollisionsresistent, falls es praktisch unm¨oglich ist, einen Bitstring m0 ∈ {0,1} zu finden mitm6=m0 undH(m) =H(m0).

3. Die HashfunktionH heißt Collision resistantoder stark kollisionsresistent, falls es praktisch nicht m¨oglich ist, irgendwelchezwei Eingaben m, m0 ∈ {0,1} so zu finden, dassm6=m0 und H(m) =H(m0)gilt.

Wir nennen eine Hashfunktion H : {0,1} −→ {0,1}N kryptographisch stark oder kryptogra-phisch sicher, wenn sie die genannten drei Bedingungen erf¨ullt.

Oben haben Sie die Sicherheitsschwelle von 2100elementaren Operationen kennengelernt, damit ein Verfahren als praktisch sicher eingestuft wird. Bei Hashfunktionen bedeutet dies folgendes:

1. Preimage resistance: eine kryptographisch sichere Hashfunktion erzeugt zuf¨allig und gleich-verteilte Ausgaben. Damit ein Angreifer also zu gegebenem Hashwert h ∈ {0,1}N einen Bitstringm∈ {0,1} findet mitH(m) =h, muss er ca. 12·2100= 299 Eingaben testen. Also mussN ≥100 gelten, damit die Hashfunktion eine Einwegfunktion ist.

2. Second preimage resistance: eine analoge ¨Uberlegung wie eben bei der Einwegeigenschaft zeigt, dass auch hierN≥100 gelten muss, damit die Hashfunktion schwach kollisionsresistent ist.

3. Collision resistant: ein m¨oglicher Angriff ist Brute Force. W¨ahle dazu n zuf¨allige Werte m1, . . . , mn∈ {0,1}und pr¨ufe, ob darunter zwei Werte sind, die eine Kollision vonHbilden.

Bei einem Sicherheitsniveau≥100 Bit bedeutet dies, ein Angreifer ben¨otigt≥2100Versuche, bis er eine Kollision gefunden hat (mit hoher Wahrscheinlichkeit). Er muss mindestens 2100 Werte m1, . . . , m2100 w¨ahlen. Um diesen Angriff auszuschließen, muss der Bildbereich von H mindestens 2200 Elemente enthalten, also N ≥ 200 gelten (es gilt der Zusammenhang

2N ≥2100, siehe Geburtstagsangriff, Beweis in der Vorlesung Kryptologie).

Die dritte Forderung ist die st¨arkste, wir m¨ussen alsoN ≥ 200 verlangen, damitH die Chance hat, kryptographisch sicher zu sein. Diese sehr wichtige Erkenntnis formulieren wir als Merksatz 4.

Merksatz 4(Sicherheitsanforderung an kryptographisch sichere Hashfunktion). Eine notwendige Bedingung an eine kryptographisch sichere Hashfunktion ist, dass die Hashwerte mindestens 200 Bit lang sind.

Kontrollaufgabe 8 (Hashfunktionen). 1. Geben Sie zwei Beispiele an, wof¨ur Hashfunktionen verwendet werden.

2. Erkl¨aren Sie den Unterschied der Eigenschaften schwach kollisionsresistent (second preimage resistant) und kollisionsresistent (collision resistant) von Hashfunktionen.

Kapitel 3

Moderne kryptographische Verfahren

3.1 Einf¨ uhrung

Im letzten Studienbrief haben Sie grundlegende Konzepte f¨ur kryptographische Verfahren ken-nengelernt. Dieser Abschnitt konkretisiert diese Konzepte nun dadurch, dass Sie f¨ur moderne (d.h. heutige, IT-basierte) Kryptoverfahren konkrete Umsetzungsparadigmen dieser Konzepte so-wie konkrete Beispiele kennenlernen. Als Literaturgrundlage dienen die B¨ucher von? ], ? ], ? ] und?].

MitArbeiten mit Bits dem Einzug der Computer entstanden Ende der 1960er Jah-re moderne Verschl¨usselungsverfahren. Ein bedeutender Unterschied zu traditionellen Ver-schl¨usselungsverfahren ist hierbei das verwendete Alphabet. W¨ahrend klassische Kryptosysteme bis Mitte des 20. Jahrhunderts noch auf Basis von Klartextbuchstaben arbeiteten (beispielsweise Rotor-Maschinen wie die deutsche Enigma), arbeiten moderne Verfahren auf Bits. Das Alphabet – also die verwendeten Zeichen – besteht dabei lediglich aus der Menge{0,1}.

Heutige Kryptoverfahren sollen ein Sicherheitsniveau von ≥ 100 Bit haben. Das bedeutet, dass dereffizientesteAlgorithmus zum Angriff auf das Kryptoverfahren mindestens 2n Versuche ben¨otigt, um das Verfahren zu brechen. Weil 2100 Versuche nicht praktisch durchf¨uhrbar sind, gelten solche Verfahren damit alspraktisch sicher.

Zur Erinnerung: nach dem Prinzip von Kerckhoffs ist eine Durchsuchung des Schl¨usselraums (Brute-Force-Angriff oder auch Schl¨usselexhaustion) ein Angriff, der immer m¨oglich ist. F¨ur ein gutes Kryptosystem ist der Brute-Force-Angriff auch der beste Angriff. Dann folgt aus einem Si-cherheitsniveau≥100 Bit, dass es mindestens 2100Schl¨ussel geben muss. F¨ur einen Schl¨usselraum der Form{0,1}n gilt alson≥100. Weil in der Informatik gerne Zweierpotenzen genutzt werden, ist eine typische Schl¨ussell¨ange f¨ur ein symmetrisches Verfahren 128 Bit.