Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2...

24
Modul Kryptographie 2 Studienbrief 1: Einführung in die Public-Key Kryptographie Studienbrief 2: Das RSA-Kryptosystem Studienbrief 3: Public-Key Kryptosysteme, die auf dem diskre- ten Logarithmus Problem basieren Studienbrief 4: Digitale Signaturen Studienbrief 5: Hashfunktionen Autoren: Christof Paar Jan Pelzl 1. Auflage Ruhr - Universität Bochum

Transcript of Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2...

Page 1: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Modul

Kryptographie 2

Studienbrief 1: Einführung in die Public-Key KryptographieStudienbrief 2: Das RSA-KryptosystemStudienbrief 3: Public-Key Kryptosysteme, die auf dem diskre-ten Logarithmus Problem basierenStudienbrief 4: Digitale SignaturenStudienbrief 5: Hashfunktionen

Autoren:Christof PaarJan Pelzl

1. Auflage

Ruhr - Universität Bochum

Page 2: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

© 2014 Christof PaarRuhr - Universität BochumUniversitätsstraße 15044801 Bochum

1. Auflage (25. März 2014)

Didaktische und redaktionelle Bearbeitung:Christoph Bader

Das Werk einschließlich seiner Teile ist urheberrechtlich geschützt. Jede Ver-wendung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohneZustimmung der Verfasser unzulässig und strafbar. Das gilt insbesonderefür Vervielfältigungen, Übersetzungen,Mikroverfilmungen und die Einspei-cherung und Verarbeitung in elektronischen Systemen.

Page 3: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Inhaltsverzeichnis Seite 3

Inhaltsverzeichnis

Einleitung zu den Studienbriefen 4I. Abkürzungen der Randsymbole und Farbkodierungen . . . . . . . . . . . . . . . . . . . . . . 4II. Zu den Autoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5III. Modullehrziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Studienbrief 1 Einführung in die Public-Key Kryptographie 71.1 Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Studienbrief 2 Das RSA-Kryptosystem 92.1 Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Studienbrief 3 Public-Key Kryptosysteme, die auf dem diskreten Logarithmus Problem basieren 113.1 Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Studienbrief 4 Digitale Signaturen 164.1 Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.2 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Studienbrief 5 Hashfunktionen 215.1 Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.2 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Page 4: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Seite 4 Einleitung zu den Studienbriefen

Einleitung zu den Studienbriefen

I. Abkürzungen der Randsymbole und Farbkodierungen

Axiom A

Beispiel B

Definition D

Exkurs E

Kontrollaufgabe K

Merksatz M

Quelle Q

Satz S

Übung Ü

Page 5: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Zu den Autoren Seite 5

II. Zu den Autoren

Christof Paar ist Inhaber des Lehrstuhls Embedded Security an der Ruhr-Universität Bochum und ist außerplanmäßiger Professor an der University ofMassachusetts at Amherst, USA. Er arbeitet seit 1995 im Bereich der angewandtenKryptographie.Dr. Paar lehrt seit über 15 Jahren an Universitäten, sowohl in Europa, als auchin den USA, zu Themen der Kryptographie und Datensicherheit. Darüber hinausgibt er Kurse für Teilnehmer aus der Industrie, u.a. für Motorola Research, dieNASA und Philips Research. Dr. Paar hat mehr als 150 Publikationen im Bereichder angewandten Kryptographie und ist Mitgründer des Workshop on Crypto-graphic Hardware and Embedded Systems (CHES).

Jan Pelzl hat in angewandter Kryptologie promoviert und ist Hauptgeschäftsfüh-rer der ESCRYPT - Embedded Sedurity, einer führenden Firma im Bereich derSicherheitsbereatung. Er hat erfolgreich zahlreiche nationale und internationaleIndustrieprojekte geleitet und tiefgehende Kenntnisse über Sicherheitsbedürfnis-se in echten Systemen.Dr. Pelzl hat praktische Aspekte der Kryptographie und Kryptanalyses von el-liptischen Kurven erforscht. Seine theoretischen und praktischen Ergebnisse hater auf/ in international führenden Konferenzen/ Zeitschriften veröffentlicht. Dr.Pelzl hat viele Jahre Kurse über Kryptographie und IT-Sicherheit in Industriekrei-sen gehalten.

Page 6: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Seite 6 Einleitung zu den Studienbriefen

III. Modullehrziele

Kryptographie ist heutzutage allgegenwärtig - während sie lange Zeit nur von Regierungen, Geheimdiens-ten und Banken verwendet wurde, werden kryptografische Techniken mittlerweile u.a. in Web-Browsern,E-Mail Programmen, Handys, industriellen Produktionssystemen, eingebetteter Software, Autos und so-gar in medizinischen Implantaten verwendet. Daher benötigen EntwicklerInnen heutzutage umfassendesWissen im Bereich der angewandten Kryptographie.

Ziel dieses Moduls ist es, der Leserin ein solches Wissen zu vermitteln. Es werden die grundlegende Tech-niken der modernen public-Key Kryptographie behandelt. Diese umfassen insbesondere modulare Arith-metik, das RSA-Kryptosystem, Verfahren, die auf dem diskreten Logarithmus basieren, sowie Hashfunktio-nen und digitale Signaturen. Nach erfolgreichem Abschluss dieses Moduls hat die Leserin grundlegendetheoretische Kenntnisse in obigen Bereichen erlangt. Darüber hinaus werden Probleme erörtert, die sich imZusammenhang der praktischen Implementierung der Verfahren ergeben, etwa dieWahl der Sicherheitspa-rameter.

Das Modul ist physisch in zwei Teile geteilt. Der Inhalt des Moduls ist im Buch “Understanding Crypto-graphy” von Paar und Pelzl nachzulesen, während Sie die Übungsaufgaben in diesen Studienbriefen fin-den. Es gibt sowohl theoretische, als auch praktische Übungsaufgaben. Für die Bearbeitung vieler prak-tischen Aufgaben empfiehlt sich die Verwendung der Lernsoftware Cryptool, die sie über http://www.cryptool-online.org/ kostenlos erhalten können. Aufgabe, die mit Cryptool zu lösen sind, sind entspre-chend gekennzeichnet.

Page 7: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Studienbrief 1 Einführung in die Public-Key Kryptographie Seite 7

Studienbrief 1 Einführung in die Public-Key Kryptographie

Lesen Sie die Seiten 149 bis 169 (Kapitel 6) des Buchs “Understanding Cryptogra-phy” vonPaar undPelzl. Videos in deutscher und englischer Sprache, in denenderInhalt zusätzlich erklärt wird, finden Sie auf http://www.crypto-textbook.com/unter “online courses/videos”.

1.1 Lernziele

Nach dem Durcharbeiten des Studienbriefs beherrschen Sie die für die modernepublic-Key Kryptographie grundlegende modulare Arithmetik beherrschen.

1.2 Übungsaufgaben

ÜbungÜ

1.1: Euklidischer Algorithmus: Berechnung des gcd

Benutzen Sie Euklidschen Algorithmus, um den größten gemeinsamen Tei-ler folgender Zahlen zu berechnen:

1. n = 3827 undm = 3311,

2. n = 286875 undm = 333200.

Versuchen Sie diese Aufgaben unter Prüfungsbedingung zu lösen, d.h. be-nutzen Sie für diese Aufgabe nur Ihren Taschenrechner. Führen Sie in IhrerAntwort jeden Schritt des Euklidschen Algorithmus auf, d.h. schreiben Sienicht nur eine Zahl als Ergebnis. Ausserdem sollten Sie für jeden ggT diefolgende Gleichung aufstellen: gcd(r0, r1) = gcd(r1, r2) = · · · .

ÜbungÜ

1.2: Euklidischer Algorithmus: Berechnung der multiplikativen In-versenMit dem erweiterten Euklidschen Algorithmus verfügen wir über einen ef-fektiven Algorithmus zur Berechnung der multiplikativen Inversen in Zm.Schreiben Sie ein Programm, welches effizient das Multilikative Inverse x−1von x in Zm berechnet.

1. Berechnen Sie das Inverse in Zm für die folgenden Elemente amodulom:

a) a = 1215,m = 3094

b) a = 91,m = 7590

2. Welches Kriteriummuss aber gelten, damit eine eindeutige Inverse a−1existiert?

Benutzen Sie nur den Taschenrechner und zeigen Sie im Lösungsweg jedenSchritt an.

Page 8: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Seite 8 Studienbrief 1 Einführung in die Public-Key Kryptographie

ÜbungÜ

1.3: Reading assignment

Lesen Sie Kapitel 6.1 und 6.2 im Buch und beantworten Sie folgende Fragenkurz in Stichworten:

1. Was ist der entscheidendeVorteil von Public-keyKryptographie gegen-über Secret-key Kryptographie?

2. Welche Eigenschaft muss bei der Schlüsselübertragung eines Public-key Verfahrens gegeben sein? Wie wird dies in der Praxis gelöst?

3. Was sind die Vorteile von Elliptischen Kurven in der Public-Key Kryp-tographie?

4. Warum sind die empfohlenen Schlüssellängen bei Public-key Verfah-ren größer als bei Secret-key Verfahren?

Page 9: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Studienbrief 2 Das RSA-Kryptosystem Seite 9

Studienbrief 2 Das RSA-Kryptosystem

Lesen Sie die Seiten 173 bis 188 (Kapitel 7) des Buchs “Understanding Cryptogra-phy” vonPaar undPelzl. Videos in deutscher und englischer Sprache, in denenderInhalt zusätzlich erklärt wird, finden Sie auf http://www.crypto-textbook.com/unter “online courses/videos”.

2.1 Lernziele

Wenn Sie diesen Studienbrief durchgearbeitet haben, ist Ihnen das RSA-Kryptosystem vertraut. Sie können RSA Ver-und Entschlüsselungsoperationenerläutern und die Korrektheit des Systems zeigen. Ihnen sind die zugrundelie-genden komplexitätstheoretischen Annahmen bekannt.

2.2 Übungsaufgaben

ÜbungÜ

2.1: Square and Multiply

Berechnen Sie die folgenden Exponentiationen xe mod m mit Hilfe dessquare-and-multiply Algorithmus.

1. x = 3, e = 68,m = 101

2. x = 5, e = 45,m = 101

Nach jedem Schritt des square-and-multiply Algorithmus soll der Exponentin binärer Darstellung angegeben werden.

Cryptool: RSA Ver- und Entschlüsselung

Berechnen Sie zunächst den öffentlichen bzw. privaten Schlüssel und führenSie dann eine RSA Ver- bzw. Entschlüsselung mit den folgenden Systempa-rametern durch:

1. p = 19, q = 13, d = 137, x = 17

2. p = 23, q = 7, d = 53, x = 6

3. p = 11, q = 17, e = 61, y = 176

• Versuchen Sie diese Aufgabe unter Prüfungsbedigungen zu lösen undbenutzen Sie nur einen Taschenrechner.

• Verifizieren Sie ihre Ergebnisse mit Crpytool (Einzelverfahren... RSA-Kryptosystem... RSA-Demo...). Geben Sie die entsprechenden Prim-zahlen ein und passen Sie das Alphabet an. Es sollen Zahlen (keinText) verschlüsselt werden.

Page 10: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Seite 10 Studienbrief 2 Das RSA-Kryptosystem

ÜbungÜ

2.2: Cryptool: RSA brechen

Ein Informant hat ihnen ein Datenpaket zugespielt, das die Prüfungsfragenfür das Modul Kryptologie 2 enthält. Die Daten sind allerdings 256 Bit AESverschlüsselt. Ihr Informant hat allerdings auch den Schlüsseltausch abge-hört. Die folgenden Informationen gibt er ihnen zusätzlich.

• RSA-PubKey: (n,e)=(1219,5)

• Cipher-Text: [93, 597, 211, 254, 1190, 934, 793, 880, 894]

Weiterhin kontte er in Erfahrung bringen, dass der Cipher-Text das Passwordfür die AES-Verschlüsselung in ASCII-Darstellung enthält, dieses nur ausalphanummerischen Zeichen besteht [A..Za..z0..9] und zur Verschlüsselungder ASCII-Wert der einzelnen Buchstaben verwendet wurde.

Brechen Sie die Verschlüsselung, damit die folgenden Planungsdetails nichtmehr vor Ihnen verborgen bleiben!

Page 11: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Studienbrief 3 Public-KeyKryptosysteme, die auf demdiskretenLogarithmusProblembasieren Seite 11

Studienbrief 3 Public-Key Kryptosysteme, die auf dem diskretenLogarithmus Problem basieren

Lesen Sie die Seiten 205 bis 233 (Kapitel 8) des Buchs “Understanding Cryptogra-phy” vonPaar undPelzl. Videos in deutscher und englischer Sprache, in denenderInhalt zusätzlich erklärt wird, finden Sie auf http://www.crypto-textbook.com/unter “online courses/videos”.

3.1 Lernziele

Nach dem Bearbeiten dieses Studienbriefs, ist Ihnen das “DLOG”-Problem geläu-fig. Sie sind in der Lage weitere, DLOG-basierte Probleme zu erläutern und kön-nen Kryptosysteme erklären, deren Sicherheit auf der Schwierigkeit dieser Proble-me beruht.

3.2 Übungsaufgaben

ÜbungÜ

3.1: Ordnung von Elementen

Untersuchen Sie die Ordnung aller Elemente der multiplikativen Gruppen:

1. Z?5

2. Z?11

Erstellen Sie eine Tabelle mit zwei Spalten für jede Gruppe, wobei jede Zeileein Element a und die Ordnung ord(a) enthält.

(Tipp: Damit Sie die zyklischen Gruppen und ihre Eigenschaften näher ken-nenlernen, wäre es gut, wenn Sie alle Ordnungen “per Hand” berechnen,d.h. verwenden Sie nur einen Taschenrechner. Wenn Sie Ihr Kopfrechnenauffrischen wollen, versuchen Sie bei der Berechnung möglichst keinen Ta-schenrechner zu verwenden.)

ÜbungÜ

3.2: Eigenschaften von zyklischen Gruppen

Wir betrachten nun die Gruppen der vorherigen Aufgabe.

1. Wie viele Elemente hat jede dieser multiplikativen Gruppen?

2. Welche der Elemente von Aufgabe 1 sind primitive Elemente?

3. Überprüfen Sie für beide Gruppen, ob die Anzahl der primitiven Ele-mente durch φ(|Z?p|) gegeben ist.

4. Überprüfen Sie für alle Elemente a von Z?p, dass a|Z?p| ≡ 1 mod p, mit

p = 5. (Diese Eigenschaft ist unter dem Namen“Fermat’s Little Theo-rem” oder “Fermat’s Theorem” bekannt.)

Page 12: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Seite 12 Studienbrief 3 Public-Key Kryptosysteme, die auf dem diskreten Logarithmus Problem basieren

ÜbungÜ

3.3: Ordnung von Elementen II

Schreiben Sie ein Programm in der Programmiersprache Ihrer Wahl, das dieOrdnung eines Elementes in Z?p berechnet und ausgibt. Das Programm sollzusätzlich die Ausgabe “Primitiv“ erzeugen, wenn das Element primitiv ist.Als Eingabe soll der Benutzer sowohl a als auch eine Primzahl p eingeben. Be-achten Sie, dass Sie nach jedem Schritt eine Moduloreduktion durchführen.Ermitteln Sie die Ordnung der folgenden Elemente a in Zp:

1. p = 5431, a = 2, 51, 5430

2. p = 19751, a = 2, 7, 11111

Welche der Elemente sind primitiv?

Page 13: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

3.2 Übungsaufgaben Seite 13

ÜbungÜ

3.4: Primitive Elemente

Für Kryptoverfahren, die auf dem diskreten Logarithmusproblem beruhenist es oft notwendig, ein primitives Element zu finden. In dieser Aufgabewerden wir die Rechenkomplexität für das Testen eines primitiven Elemen-tes betrachten.

1. Wie viele Elemente müssen durchschnittlich getestet werden, um einprimitives Element zu finden? Testen Sie empirisch, indem Sie ihr Pro-gramm aus der vorigen Aufgabe nutzen. Finden Sie für p = 2011 undq = 2017 jeweils beliebige primitve Wurzeln. Wie lange benötigen Siedurchschnittlich?

2. Wie viele Elemente müssen durchschnittlich getestet werden, um einprimitives Element zu finden? Geben Sie eine exakte Formel an.

3. Was ist die Komplexität (d.h. die durchschnittliche Anzahl von Schrit-ten, die benötigtwird) eines Programms zumTesten vonPrimitivitäten,das, auf Eingabe p, awie folgt vorgeht:

primitiv = 0while primitiv == 0for i in 1 : (p− 1) do:

if ai ≡ 1 mod p do:primitiv = 1

endifendforreturn primitiv

Ist diese Vorgehensweise für in der Praxis verwendete Schlüssellängengeeignet, um primitive Wurzeln zu finden?

4. Haben Sie Vorschläge, wie der Test dramatisch beschleunigt werdenkönnte? Sie müssen nicht den ganzen Algorithmus beschreiben, son-dern nur kurz Ihre Idee aufführen, die dem verbesserten Verfahren zuGrunde liegt.Hinweis: Benutzen Sie eine der Eigenschaften von zyklischenGruppen,die im Buch besprochen werden.

Page 14: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Seite 14 Studienbrief 3 Public-Key Kryptosysteme, die auf dem diskreten Logarithmus Problem basieren

ÜbungÜ

3.5: Diskreter Logarithmus und generalisiertes diskretes Logarith-musproblem

Bestimmen Sie den folgenden diskreten Logarithmus:

a) dlog4(6) in (Z∗23, ·)

b) Ist die Lösung für a) eindeutig (warum)?

Wir betrachten nundas generalisierte diskrete Logarithmusproblem. SeiG =(Zp,+) eine Gruppe und p prim.

c) Beschreiben Sie die Vorgehensweise, um das generalisierte diskrete Lo-garithmusproblem für G effizient zu lösen.

ÜbungÜ

3.6: CrypTool: Diffie-Hellman Schlüsselaustausch I

Berechnen Sie die zwei öffentlichen Schlüssel und den gemeinsamenSchlüssel des Diffie-Hellman Schlüsselaustausches mit den Parameternp = 1153, α = 202 und:

a) kpr,A = 80, kpr,B = 101

b) kpr,A = 565, kpr,B = 203

Verifizieren Sie ihre Rechnung mit CrypTool.

ÜbungÜ

3.7: Diffie-Hellman Schlüsselaustausch II

Beim DHKE werden sowohl der Generator α als auch die privaten Schlüsselkpr,A, kpr,B aus {2, 3, ..., p− 2} gewählt.

a) Wieso wird p− 1 nicht als privater Schlüssel verwendet?

b) Berechnen Sie αp−1 mod p für beliebige DHKE-Parameter α, p.

c) Welche Ordnung hat der Generator α = p− 1?

d) Welche Untergruppe Hα wird von α = p− 1 erzeugt?

Page 15: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

3.2 Übungsaufgaben Seite 15

ÜbungÜ

3.8: DLOG-Berechnung

Schreiben Sie ein Programm, welches den diskreten Logarithmus in G =(Z∗p, ·) per Brute-Force berechnet. Verwenden Sie als Eingabe-Parameterp, α, β. Die Ausgabe des Programms soll xmit β = αx mod p sein.

a) Wieviele Schritte sind für die erfolgreiche Berechnung imDurchschnittnötig?

b) Geben Sie den Brute-Force Algorithmus in Pseudo-Code an.

c) Wir betrachten nun die Gruppe G = (Z∗34583, ·).Berechnen Sie dlog2332(21814). G

ÜbungÜ

3.9: Cryptool: Alternativer DHKE

Wir betrachten eine alternative Version des Diffie-Hellman Schlüsselaus-tauschs auf Basis der Primzahl p = 467 über Z∗467. Gegeben sei das Ele-ment α = 4 als Basiselement für den Schlüsselaustausch. Das Element 4 hatdie Ordnung 233 und generiert deshalb eine Untergruppe mit 233 Elemen-ten. Berechnen Sie mit Hilfe von Cryptool (Einzelverfahren→ Protokolle→Diffie-Hellman Demo)KAB mit:

1. aA = 300, aB = 134

2. aA = 67, aB = 134

Was fällt auf? Wieso?

ElGamal Verschlüsselungsprinzip

1. Warum ist ElGamal nicht-deterministisch? Was ist der Vorteil einesnicht-deterministischen Systems?

2. Was ist der Nachteil von der ElGamal verschlüsselten Klartextblöcken,wenn man es mit der RSA-Verschlüsselung vergleicht? Wie wirkt sichdas auf die benötigte IT-Infrastruktur aus?

ÜbungÜ

3.10: ElGamal Verschlüsselung

Verschlüsseln Sie die folgenden Nachrichten mit dem ElGamal Schema (p =409 und α = 19):

1. Privater Schlüssel Kpr = 301, zufälliger Parameter i = 23, Nachrichtm = 59

2. Privater Schlüssel Kpr = 301, zufälliger Parameter i = 135, Nachrichtm = 59

Entschlüsseln Sie ebenfalls wieder jedes Chiffrat. Zeigen Sie dabei jeden Re-chenschritt des ElGamal Protokolls.

Page 16: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Seite 16 Studienbrief 4 Digitale Signaturen

Studienbrief 4 Digitale Signaturen

Lesen Sie die Seiten 259 bis 288 (Kapitel 10) des Buchs “Understanding Cryptogra-phy” vonPaar undPelzl. Videos in deutscher und englischer Sprache, in denenderInhalt zusätzlich erklärt wird, finden Sie auf http://www.crypto-textbook.com/unter “online courses/videos”.

4.1 Lernziele

Wenn Sie diesen Studienbrief durchgearbeitet haben, ist Ihnen die Notwendigkeitdigitalter Signaturen bekannt. Sie können verschiedene Sicherheitskriterien fürdigitale Signaturen angeben und Signaturschemata benennen und erläutern, diediese Kriterien erfüllen.

4.2 Übungsaufgaben

ÜbungÜ

4.1: Grundlagen zu digitalen Signaturen

Erklären Sie in jeweils maximal ein bis zwei Sätzen folgende Begriffe mitIhren eigenen Worten:

a) Authentisierung (authentication)

b) Integrität (integrity)

c) Nicht-Zurückweisbarkeit (non-repudiation)

ÜbungÜ

4.2: MACs vs. Digitale Signaturen

Beantworten Sie kurz folgende Fragen (maximal zwei Sätze pro Frage):

1. Welchen Vorteil bieten MACs gegenüber digitalen Signaturen?

2. Welchen Sicherheitsdienst können MACs im Vergleich zu digitalen Si-gnaturen nicht erfüllen (warum)?

Page 17: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

4.2 Übungsaufgaben Seite 17

ÜbungÜ

4.3: Cryptool: RSA-Signaturen

Berechnen Sie die RSA-Signaturen zu den gegebenen Nachrichten x mitdem öffentlichen Schlüssel (n, e) = (1177, 17) und dem privaten Schlüssel(d) = (873). überprüfen Sie ebenfalls Ihre Ergebnisse, indem Sie die Signatu-ren anschließend verifizieren.

a) x = 873

b) x = 73

Gegeben ist ein RSA Signatur-Protokoll, sowie der öffentliche Schlüssel(n = 1821971, e = 401). Welche der folgenden Signaturen sind korrekt?

c) (x = 2015, sig(x) = 481114)

d) (x = 124214, sig(x) = 532532)

Page 18: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Seite 18 Studienbrief 4 Digitale Signaturen

ÜbungÜ

4.4: Fälschen von RSA-Signaturen

a) Zeigen Sie anhand einer Beispielrechnung, wie ein Angreifer eine gül-tige RSA-Signatur zu einer von ihm beliebig wählbaren Nachricht er-zeugen kann, ohne im Besitz des geheimen Schlüssels d zu sein. Rech-nen Sie in hrem Beispiel mit den öffentlichen RSA-Parametern (n, e) =(1177, 17). Dieser Angriff soll ohne die Faktorisierung von n und dieBerechnung des diskreten Logarithmus auskommen!

b) Kann ein solcherAngreifer damit gezielt Unterschriften zu bestimmtenDokumenten (z.B. Kaufverträgen, E-Mails) fälschen? Begründen Sie Ih-re Antwort!

RSA-Signaturen mit Padding

Erschöpft von einer guten Wanderung liegen Sie am nächsten Tag auf demSofa und grübeln über die Schwachstellen des „Schulbuch“-RSA nach. Dader heutige Tag bestens für eine entspannte Programmieraufgabe geeignetist, nehmen Sie sich vor, eines dieser Probleme zu beheben.

Nach einer kurzen Kaffee-Pause schwebt Ihnen folgendes RSA-Padding For-mat vor Augen:

+--------+--------+---------+-----------+| Header | Laenge | Padding | Nachricht |+--------+--------+---------+-----------+

Dabei soll der Header die Zeichenkette CRYPTO12 in 8-Bit ASCII Kodierungenthalten. Das Längenfeld beinhaltet die (genaue)Anzahl der tatsächlich ver-wendeteten Bits für die Nachricht und ist selber 16 Bit lang. Das Paddingfüllt die Nachricht mit Nullen auf die benötigte Länge (Bitlänge des Modu-lus) auf.

a) Wie lang kann die signierte Nachricht höchstens sein, wenn RSAmit ei-nem 1024 Bit Modulus und die Nachricht unverändert verwendet wer-den?

b) Kann diese Länge im Header korrekt kodiert werden (wieso)?

c) Wie kann die Längenbeschränkung in der Praxis umgangen werden?

Page 19: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

4.2 Übungsaufgaben Seite 19

ÜbungÜ

4.5: ElGamal-Signatur

Da Bob dem RSA-Signaturschema nicht traut, ist er mit Alice auf ein neuesVerfahren umgestiegen: ElGamal. Trudy versucht Alice und Bob auseinan-der zu bringen, muss sich aber nun auf die neue Situation einstellen. Aliceund Bob wollen sich, nach wie vor, signierte E-Mails schicken und beherr-schen auch beide das ElGamal-Signaturverfahren. Da Bob aber gerade sehrviel Arbeit hat, hat er Sie gebeten, ihm die Signaturen zu seinen Nachrichtenan Alice zu berechnen. Er hat Ihnen folgende Parameter gegeben:

• Seinen privaten SchlüsselKpr = d = (67)

• Den dazugehörigen öffentlichen Schlüssel Kpub = (p, α, β) =(97, 23, 15)

1. Um Ihnen die Arbeit nicht zu schwer zumachen, hat er seine Nachrich-ten mittels einer Hashfunktion H(m) reduziert. Signieren Sie folgendeNachrichten:

a) H(m) = x = 17 und kE = 31

b) H(m) = x = 85 und kE = 48

c) H(m) = x = 17 und kE = 49

Geben Sie hierbei alle Zwischenschritte mit an, d.h. die Überprüfungder einzelnen Parameter, die Ergebnisse von r und s, sowie die Ergeb-nisse der Überprüfung, t und αx. (Sie brauchen keinen Square-and-Multiply zu verwenden.)

2. Vergleichen Sie das RSA- und das ElGamal-Signaturschema und gebenSie zu jedem Schema mindestens einen Vor- und einen Nachteil an.

ÜbungÜ

4.6: ElGamal-Signatur - Verifikation

Bob hat zweimal die gleiche Nachricht mit unterschiedlichen Signaturen er-halten und möchte wissen, ob Trudy ihre Finger im Spiel hat. Die Nachrichtlautet in beiden Fällen x = 10.

1. Verifizieren Sie die Signaturen mit dem öffentlichen Schlüssel von Ali-ceKpub = (p, α, β) = (31, 3, 6):

a) (r, s) = (17, 5) (5 Pkt.)

b) (r, s) = (13, 15) (5 Pkt.)

2. Wie viele gültige Signaturen kann man mit den Parametern von Alicezu jeder Nachricht x berechnen (inkl. Begründung)?

Page 20: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Seite 20 Studienbrief 4 Digitale Signaturen

ÜbungÜ

4.7: ElGamal-Signatur – Ephemeral Key

Bob hat keine Lust, sich für jede Signatur einen neuen Ephemeral Key zufäl-lig zu generieren. Daher hat er beschlossen, kE einfach zu inkrementieren:

kEi+1= kEi

+ 1.

Beschreiben Sie, wie ein Angreifer den privaten Schlüssel aus zwei aufeinan-derfolgenden Signaturen berechnen kann.

ÜbungÜ

4.8: ElGamal-Signatur – Existential Forgery Attack

Gegeben sei Bobs öffentlicher Schlüssel: Kpub = (p, α, β) = (97, 23, 15). Zei-gen Sie, wie Trudy eine gültige Signatur einer zufälligen Nachricht erzeugenkann, ohne den privaten Schlüssel zu besitzen (Stichwort: Existential ForgeryAttack). Verwenden Sie hierzu die zufälligen Werte i = 18 und j = 11.

Page 21: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Studienbrief 5 Hashfunktionen Seite 21

Studienbrief 5 Hashfunktionen

Lesen Sie die Seiten 293 bis 314 (Kapitel 11) des Buchs “Understanding Cryptogra-phy” vonPaar undPelzl. Videos in deutscher und englischer Sprache, in denenderInhalt zusätzlich erklärt wird, finden Sie auf http://www.crypto-textbook.com/unter “online courses/videos”.

5.1 Lernziele

Nach dem Durcharbeiten des Studienbriefs erläutern Sie die Notwendigkeit vonHashfunktionen für die public-Key Kryptographie. Sie legen dar, wo Hashfunk-tionen eingesetzt werden und geben gängige Konstruktionen an.

5.2 Übungsaufgaben

ÜbungÜ

5.1: Grundlagen Hash-Funktionen

Erklären Sie kurz mit eigenen Worten die Begriffe:

1. Preimage Resistance

2. Second Preimage Resistance

3. Collision Resistance

ÜbungÜ

5.2: Kollisionsangriff auf Hashfunktionen

Wir betrachten die (vier) Hashfunktionen der SHA-2 Familie. Nach wie vie-len zufälligen Eingaben ist die Wahrscheinlichkeit einer Kollision zwischenzwei beliebigen Ausgangswerten ε = 0.5? Nach wievielen zufälligen Einga-ben ist die Wahrscheinlichkeit einer Kollision ε = 0.2?Berechnen Sie beide Werte für alle SHA-2 Funktionen.

ÜbungÜ

5.3: Cryptool:MD5 Hashwerte

Verwenden Sie Cryptool zur Berechnung des MD5-Hashwertes. BestimmenSie die MD5-Hashwerte für die folgenden Nachrichten und geben Sie dieWerte an.

m1 = THE CAKE IS A LIE!

m2 = THE CAKE IS A LIE.

Was fällt ihnen beimMD5-Hashwert imHinblick auf die sich sehr ähnelndenNachrichtenm1,m2 auf?

Page 22: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Seite 22 Studienbrief 5 Hashfunktionen

ÜbungÜ

5.4: Eine schwache Hash-Funktion

In gewisser Weise stellt ein Hash-WertH(x) einen “Fingerabdruck” für denWert x dar, ähnlich wie fehlererkennende oder fehlerkorrigierende Codes.Für kryptographische Anwendungen sind fehlerkorrigierende Codes jedochin keiner Weise geeignet, wie wir im Folgenden sehen werden.

Als Beispiel betrachten wir einen einfachen Parity-Code: Für die Einga-be x1, . . . , xn, wobei jedes xi ein ganzes Byte darstellt mit den Bits xi =

x(1)i , . . . , x

(8)i , berechnen wir die Ausgabe H(x1, . . . , xn) = y1, . . . , y8 als

yi =⊕n

k=1 x(i)k , also als XOR über die entsprechende Position in allen By-

tes der Eingabe.

1. Berechnen Sie H(MOERTEL) (auf Basis der 8 Bit ASCII-Darstellung).

2. Beschreiben Sie, wie Sie effizient eineweitereNachricht finden können,welche den selben “Hash”-Wert besitzt. Geben Sie ein Beispiel (nichtnotwendigerweise ein sinnvolles Wort).

3. Welche der drei Eigenschaften für Hashfunktionen wird hier verletzt?

Page 23: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

5.2 Übungsaufgaben Seite 23

ÜbungÜ

5.5: Angriffe auf mit Hashcodes verschlüsselte Passwörter

Der Betreiber eines Online-Shops speichert die Daten seiner Kunden in einerDatenbank. Ein Kunde der den Shop erneut besucht kann so seine alten Be-stellungen abrufen und braucht bei weiteren Bestellungen seine Kundenda-ten nicht erneut eingeben. Der Login in den Shop erfolgt durch die Eingabevon Benutzername und Passwort. In der Datenbankwird nicht das Passwort,sondern dessen MD5 Hash abgelegt.

1. Warum wird in der Praxis meistens ein Hashwert eines Passwortes inder Datenbank hinterlegt? Welche Eigenschaft von Hash-Funktionenwird hier ausgenutzt?

Passwörter haben in der Regel eine relativ überschaubare Länge. Hierdurchwird es möglich Brute-Force Angriffe über alle in Frage kommenden Klar-texte durchzuführen.

2. Wieviele Klartexte müssen bei einem Passwort, das 7 Zeichen langist und aus den Zeichen [abcdefghijklmnopqrstuvwxyzABCDEFGHI-JKLMNOPQRSTUVWXYZ0123456789] undden 33 Sonderzeichen [!@#$%ˆ&*()-_+=~‘[]{}|\:;“’<>,.?/ ] bestehenkann maximal gehasht werden, bis ein Treffer erzielt wurde? WievieleKlartextemüssen durchschnittlich getestet werden um einen Treffer zuerzielen? (Gerundeter Wert) (5 Pkt.)

3. Ein von ’hashgpu’ genutztes Beispielsystem zumBruteforcen vonMD5Hashes kann mit einer Radeon HD 5870 GPU (ca. 250 EUR Standard-grafikkarte) ca. 2,1 Mrd. MD5 Hashes pro Sekunde testen. Wie langebenötigt sie im schlechtesten Fall zum finden eines passenden Plaintex-tes? (Gerundet)

4. Der oben genannten Brute-Force-Angriff kann durch pre-computationbeschleunigt werden: Die errechneten Passwort/Hash-Paare werdenhierbei in einer Lookup-Tabelle (LUT) hinterlegt und können so beispäteren Tests wiederverwendet werden. Nehmen wir an, jeder Ein-trag belegt hierbei 25 Byte (7 Byte Klartext + 16 Byte Hash + 2 ByteOverhead). Wie groß wird die LUT für alle oben errechneten Einträge?

5. Eine handelsübliche SSD Festplatte bietet zur Zeit übertragungsratenvon ca. 200 MB/s. Für jeden Vergleich mit der LUT müssen aus dieser16 Byte gelesenwerden. Angenommen unsere Festplatte hätte die obenerrechnete Kapazität und könnte die gesamte Datenmenge speichern.Wie lange würde es im schlechtesten Fall mit der obigen Look-up Ta-belle dauern das RichtigeHash/Passwort Paar zu finden? (Nehmen Siehierbei an, dass die übertragungsrate voll ausgenutzt wird.)

Page 24: Modul Kryptographie 2 - Ruhr University Bochum · 2014. 3. 25. · Modul Kryptographie 2 Studienbrief1:EinführungindiePublic-KeyKryptographie Studienbrief2:DasRSA-Kryptosystem Studienbrief3:Public-KeyKryptosysteme,dieaufdemdiskre-tenLogarithmusProblembasieren

Seite 24 Studienbrief 5 Hashfunktionen

ÜbungÜ

5.6: Gruppenhashfunktionen

1. Es sei p ∈ N prim.WeiterhinG eine Untergruppe von Zp. Die Ordnungvon G sei q, wobei q prim. Es seien h0, h1, . . . , hl zufällige Generatorenvon G. Einen l Bit langen Stringm schreiben wir alsm = m1m2 . . .ml.Betrachten Sie die Hash-Funktioen

Hh0,h1,...,hl: {0, 1}l →Zp

m 7→h0 ·l∏i=1

hmii mod p

Schreiben Sie ein Programm, das auf Eingabe p, h0, h1, . . . , hl, x dieHashfunktion Hh0,h1,...,hl

an der Stelle x auswertet.

2. Es sei nun l = 2. Finden Sie für die unten stehenden Werte von p undq jeweils l+1 = 3Generatoren einer Untergruppe der Ordnung q. D.h.wir haben nun H : {0, 1}2 → Zp, m 7→ h0 · hm1

1 · hm22 . Finden Sie

mit ihrem Programm aus 1. ein Paar (x, x′), sodass H(x) = H(x′) undx 6= x′. Ermitteln Sie die Laufzeit ihres Programms empirisch für

• p=1283, q=641

• p=1073741827, q=3033169

• p=1152921504606847009, q=48912491

und zufällige Werte für x. Wie verhält sich die Laufzeit ihres Pro-gramms?