TECHNISCHE UNIVERSITÄT DARMSTADT FACHGEBIET THEORETISCHE INFORMATIK PROF. JOHANNES BUCHMANN DR. JULIANE KRÄMER Einführung in die Kryptographie WS 2015/ 2016 12. Lösungsblatt — 21.01.2016 Ankündigung Die korrigierten Ferienübungen können während der Klausureinsicht ebenfalls eingesehen werden. P1 Digitale Signaturen 1. Wofür braucht man Signaturen? (Nennen Sie ein Beispiel, wo in der Praxis digitale Signaturen nötig sind.) Lösung. Zum Beispiel braucht man Signaturen für Softwareupdates: Wenn beispielsweise ein moderner SmartTV ein Update bekommt, möchte der Fernsehzuschauer sicher sein, dass dieses Update zum einen tatsächlich vom Hersteller kommt und zum anderen so ist, wie es der Hersteller programmiert hat. Anderenfalls könnten böswillige Angreifer sehr einfach Programme einschleusen, die beispielsweise über die Kamera des Fernsehers das Wohnzimmer filmen. 2. Welche der vier Hauptziele der Kryptographie werden durch Signaturen erreicht? Lösung. Integrität, Authentizität und Nicht-Abstreitbarkeit. 3. Angriffsziele: Beschreiben Sie die Begriffe existentielle Fälschung, selektive Fälschung und Total Break. Lösung. Eine existentielle Fälschung liegt vor, wenn ein Angreifer es schafft, ein Paar (m, s) zu erzeugen, so dass s eine gültige Signatur von m ist, ohne dass der Angreifer den geheimen Signaturschlüssel kennt. Eine selektive Fälschung liegt vor, wenn ein Angreifer gültige Signaturen zu Nachrichten, die er sich vorher ausgesucht hat, berechnen kann, ohne den geheimen Signaturschlüssel zu kennen. Schafft es ein Angreifer, den Signaturschlüssel zu berechnen, ist das Verfahren vollständig gebrochen (engl. Total Break). 4. Angriffstypen: Beschreiben Sie No-Message-Angriffe, Known-Message-Angriffe und Chosen-Message-Angriffe. Lösung. Bei einem No-Message-Angriff kennt der Angreifer nur den öffentlichen Verfifikationsschlüssel und sonst nichts. Insbesondere kennt er also keine Nachrichten mit dazugehörigen Signaturen. In einem Known-Message-Angriff kennt der Angreifer den öffentlichen Verfifikationsschlüssel und zusätzlich verschiedene Nachrichten und ihre Signaturen. Diese erhält er zum Beispiel dadurch, dass er Kommunikationsverbindungen abhört. Der stärkste Angriff ist ein Chosen-Message-Angriff. Hierbei kennt der Angreifer den öffentlichen Verfifikationsschlüssel und darf sich beliebige Nachrichten wählen, zu denen er die passende Signatur erhält. (Wenn der Eingreifer eine Signatur zu einer bestimmten Nachricht m fälschen will, darf er bei einem Chosen-Message-Angriff natürlich nicht die Signatur zu m einfordern.) 5. Angenommen, man möchte ein Signatur-Verfahren aus einem Verschlüsselungsverfahren ableiten. Nimmt man hierzu ein symmetrisches oder ein asymmetrisches Verschlüsselungsverfahren? Lösung. Man nimmt ein asymmetrisches Verfahren, zum Beispiel RSA. P2 Hashfunktionen Es stehen zwei Kandidaten für Hashfunktionen zur Verfügung, die beide Zahlen aus N von beliebiger Größe als Eingabe haben. h1 (n) = b2n sin( 1n )c und h2 (n) = nn mod ϕ(99) (mod 99) 1 (1) • Werte die Kandidaten für n = 10, 11, 12 aus. Lösung. h1 (10) = 102 h1 (11) = 185 h1 (12) = 340 h2 (10) = 1 h2 (11) = 77 h2 (12) = 45 • Bewerten Sie die beiden Kandidaten bzgl. folgender Aspekte ist: – Kompression – Umkehrresistenz/ Einwegfunktion – Kollisionsresistenz Sind die Kandidaten als kryptographische Hashfunktionen nutzbar? Lösung. – Kandidat 1 ist nicht komprimierend. Sie ist darüber hinaus leicht umkehrbar, da die Funktion streng monoton steigend ist für n ≥ 2. Deshalb ist sie auch für n ≥ 2 injektiv und daher kollisionsresistent (es gibt aber die Kollision h1 (1) = h1 (2)). Da sie leicht umkehrbar und nicht komprimierd ist, sollte diese Funktion nicht als kryptographische Hashfunktion genutzt werden. – Kandidat 2 ist komprimierend. Die Funktion ist nicht einfach umkehrbar. Da es nur 99 Funktionswerte gibt, findet sich unter den Funktionswerten für n ∈ {1, . . . , 100} aber sicher eine Kollision. Daher sollte Kandidat 2 nicht als kryptographische Hashfunktion genutzt werden. P3 Wiederholung: Identifikation von Polynomen mit Zahlen Ein endlicher Körper mit 4 Elementen ist F := Z2 [X ]/(X 2 + X + 1). Jede Polynom-Restklasse aus diesem Körper hat einen eindeutigen Repräsentanten vom Grad < 2 mit Koeffizienten in {0, 1}. Diesen Repräsentanten können wir wiederum mit einer natürlichen Zahl zwischen 0 und 3 identifizieren, indem wir die Koeffizienten des Polynoms als Ziffern einer binären Zahl ansehen (der Binärdarstellung ab2 entspricht das Polynom a x + b). Rechne bei den folgenden Aufgaben mit Polynomen, aber schreibe das Ergebnis als binäre Zahl auf. Berechne mit der Addition und Multiplikation von F die folgenden Werte: 1. 2 · 3 2. 2 + 3 3. 23 Hinweis: Die Potenz 3 in 3. ist als natürliche Zahl zu verstehen, das heißt es ist 2 · 2 · 2 zu berechnen. Lösung. 1. 2 · 3 = 102 · 112 = X · (X + 1) = X 2 + X = 1 = 012 2. 2 + 3 = 102 + 112 = X + (X + 1) = 1 = 012 3. 23 = 102 · 102 · 102 = X · X · X = X · X 2 = X · (X + 1) = X 2 + X = 1 = 012 P4 Wiederholung - Multiple Choice Beantworten Sie die folgenden Fragen jeweils mit „Richtig“ oder „Falsch“. (a) Aus Sicherheitsgründen müssen RSA-Module mindestens 1024, besser aber noch 2048 Bit lang sein. Lösung. Richtig. (b) Es wird bei einer RSA Verschlüsselung das RSA-Modul n = 35 verwendet. Die Zahl 15 könnte als geheimer Entschlüsselungexponent d gewählt werden. Lösung. Falsch. (c) Es gibt keinen Angriff, der mit weniger als 260 Hashauswertungen, eine beliebige 80-bit Hashfunktion bricht. Lösung. Falsch. (d) Man kann Hashfunktionen auf der Basis von sicheren Blockchiffren bauen. Lösung. Richtig. 2 (e) AES ist eine affin lineare Blockchiffre. Lösung. Falsch. (f) Das Vernam OTP ist perfekt geheim. Lösung. Richtig. (g) Die Gleichung 32x − 23 y = 1 hat mehrere ganzzahligen Lösungen x, y . Lösung. Richtig. (h) Eine Matrix M ∈ (Z/mZ)n×n ist invertierbar, wenn det(M ) invertierbar in (Z/mZ) ist. Lösung. Richtig. (i) Die multiplikative Gruppe (Z/15Z)∗ hat die Ordnung 14. Lösung. Falsch. H1 Replay-Angriff Eine Bank möchte in einem Online-Banking-Verfahren digitale Signaturen einsetzen, fürchtet jedoch, daß ein Angreifer eine mitgehörte Nachricht zeitversetzt ein zweites Mal an die Bank weiterleitet (z.B. für eine zweimalige Kreditierung eines Überweisungsbetrages, wenn der Empfänger mit dem Angreifer in Verbindung steht). Dies ist ein sogenannter Replay Angriff. Um sich zu schützen, könnte die Bank alle eingegangenen Nachrichten bzw. deren Hashwerte speichern, und neue Nachrichten mit den schon empfangenen vergleichen. Dies ist jedoch für die Praxis viel zu aufwendig. Finden Sie ein alternatives Verfahren. Lösung. Es gibt verschiedene Möglichkeiten, das Problem der Bank zu lösen: • Die Bank kann verlangen, dass die Kunden in die zu signierende Transaktion eine laufende Nummer einfügen. Im Zuge der Erzeugung der Signatur ist der Hashwert von dem Text der Transaktion unter Einschluß der Seriennummer zu berechnen. Die Bank merkt sich die zuletzt eingegangene Seriennummer des Kunden und weist Nachrichten mit einer geringeren oder gleichen Seriennummer als der gespeicherten zurück. Der Angreifer kann also die abgehörte Nachricht kein zweites Mal in Umlauf bringen. Da das Fälschen von Signaturen zu schwer ist, ist es ihm auch nicht möglich, eine signierte Nachricht zu produzieren, die eine höhere Seriennummer enthält. Nachteil: Der Kunde muß darauf achten, daß seine Nachrichten in der Reihenfolge, in der sie nummeriert wurden, bei der Bank eingehen. • Die Bank kann verlangen, daß die Nachricht einen Zeitstempel enthält. Wieder wird der Hash unter Einschluß dieses Stempels berechnet. Die Bank weist dann Nachrichten mit zu weit zurückliegendem Zeitstempel zurück. Zusätzlich kann sie für die Dauer eines bestimmten Zeitfensters die eingegangenen Nachrichten (bzw. ihre Hashwerte) speichern und neu eingegangene Nachrichten mit der Liste vergleichen. Die Speicheranforderungen und der Zeitaufwand für den Abgleich verringert sich erheblich im Vergleich zur Abspeicherung aller Nachrichten. Nachteil: die Uhren von Bank und Kundinnen müssen synchronisiert sein (zumindest nahezu). • Die Bank kann schließlich an jeden Kunden, der eine Transaktion durchführen will, eine Zufallszahl senden. Die Signatur muß diese Zufallszahl enthalten, um angenommen zu werden. Hier muß die Bank eine Liste aller versendeten, aber noch nicht verwendeten Zufallszahlen führen. Um die Liste kurz zu halten, können vor längerer Zeit versandte Zufallszahlen gestrichen werden. Nachteil: zusätzlicher (geringer) Kommunikationsaufwand für Bank und Kunden. 3