Modulbeschreibung - Lehrstuhl für Netz- und Datensicherheit
Transcription
Modulbeschreibung - Lehrstuhl für Netz- und Datensicherheit
Seite 1 Modulbeschreibung Modulbezeichnung: Kryptographie 2 Studiengang: Bachelor IT-Sicherheit Verwendbarkeit: Dieses Modul ist verwendbar für • Studierende der IT-Sicherheit • Studierende der Informatik • Studierende der Wirtschaftsinformatik • Studierende der Mathematik und Informatik auf Bachelorniveau. Dieses Modul kann nicht als Wahlpflichtmodul gewählt werden, sondern ist ein Pflichtmodul. Lehrveranstaltungen und Lehrformen: Kryptographie 2 Modulverantwortliche(r): Prof. Dr. Christof Paar Lehrende: Prof. Dr. Christof Paar Dauer: 1 Semester Credits: 5 ECTS Studien- und Prüfungsleistungen: Schriftliche Prüfung: 120 min. Berechnung der Modulnote: Schriftliche Prüfung Notwendige Voraussetzungen: Empfohlene Voraussetzungen: Unterrichts- und Prüfungssprache: Deutsch, Englisch Zuordnung des Moduls zu den Fachgebieten des Curriculums: Einordnung ins Fachsemester: Ab Studiensemester 5 Generelle Zielsetzung des Moduls: Modul zur Förderung und Verstärkung der Fachkompetenz Arbeitsaufwand bzw. Gesamtworkload: Summe: 150 h Präsenzzeit: 2 h • Prüfung: 2h Eigenstudium: 148 h • Durcharbeiten der Studienbriefe: 85 h • Durcharbeiten des Online-Lernmaterials: 15 h • Wahrnehmen der Online Betreuung und Beratung: 10 h • Ausarbeiten von Aufgaben: 30 h • Individuelle Prüfungsvorbereitung der Studierenden: 8 h Seite 2 Lerninhalt und Niveau: In diesem Modul werden asymmetrische kryptographische Verfahren behandelt. Die Schwerpunkte dieses Moduls liegen auf der Besprechung von praktisch wichtigen Verfahren und deren Einsatz für asymmetrische Basisdienste. Es werden sowohl diskrete Logarithmusverfahren (Diffie-Hellman, Elgamal, elliptische Kurven), als auch das RSA-Verfahren behandelt. Außerdem werden digitale Signaturen eingeführt. Es werden die Grundlagen der symmetrischen und asymmetrischen Schlüsselverteilung behandelt. Das Niveau der Lerninhalte liegt gemessen am DQR-Niveau bei 6 (Bachelor) Angestrebte Lernergebnisse: Fachkompetenz: Die Studierenden kennen die Bedeutung von asymmetrischen kryptographischen Verfahren und verstehen die Strukturen der prominentesten asymmetrischen Primitiven. Darüber hinaus verstehen die Studenten die Sicherheitskonzepte und diverse Angriffsziele in der asymmetrischen Kryptographie. Die Studenten können ihr Wissen über die Kryptographie anwenden und Sicherheitslösungen finden. Methodenkompetenz: Die Studierenden beherrschen die Denkweisen, die in der modernen Kryptographie eingesetzt werden und können diese anhand von asymmetrischen Verfahren nachvollziehen. Sozialkompetenz: Die Studenten tauschen sich über Probleme beim Verstehen von symmetrischen kryptographischen Verfahren aus und diskutieren Lösungswege von Problemen. Selbstkompetenz: Die Studenten erlangen die Fähigkeit aktuelle asymmetrische kryptographische Verfahren zu verstehen und eine fundierte Meinung über die Sicherheit dieser Verfahren zu vertreten. Darüber hinaus besitzen die Studierenden alle Voraussetzungen neue asymmetrische Verfahren aus der aktuellen Fachliteratur zu verstehen und ihre Bedeutungen einzuschätzen. Das umfangreiche Wissen der Studenten befähigt sie Sicherheitslösungen zu finden und einzusetzen. Häufigkeit des Angebots: Jedes Semester Anerkannte Module: Anerkannte anderweitige Lernergebnisse / Lernleistungen: Medienformen: Literatur: Studienbriefe in schriflicher und elektronischer Form, Onlinematerial in Lernplattform, Übungen über Lernplattform, OnlineKonferenzen, Chat und Forum • Understanding Cryptography, Christof Paar, Jan Pelzl, 2010 • Handbook of Applied Cryptography, Alfred J. Menezes, Paul C van Oorschot, Scott A Vanstone, 1996 Weitere Literatur wird in der Lehrveranstaltung bekannt gegeben. Bachelorstudiengang Informatik/IT-Sicherheit Kryptographie 2 [Krypto2] Autoren: Christof Paar Jan Pelzl Ruhr - Universität Bochum Kryptographie 2 [Krypto2] Studienbrief 1: Einführung Public Key Kryptographie Studienbrief 2: Einführung RSA Studienbrief 3: Kryptographie mit dem diskreten Logarithmus Studienbrief 4: Kryptographie mit Elliptischen Kurven Studienbrief 5: Digitale Signaturen Autoren: Christof Paar Jan Pelzl 1. Auflage Ruhr - Universität Bochum © 2015 Christof Paar Ruhr - Universität Bochum Universitätsstraße 150 44801 Bochum 1. Auflage (11. Dezember 2015) Didaktische und redaktionelle Bearbeitung: Florian Giesen Das Werk einschließlich seiner Teile ist urheberrechtlich geschützt. Jede Verwendung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung der Verfasser unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Um die Lesbarkeit zu vereinfachen, wird auf die zusätzliche Formulierung der weiblichen Form bei Personenbezeichnungen verzichtet. Wir weisen deshalb darauf hin, dass die Verwendung der männlichen Form explizit als geschlechtsunabhängig verstanden werden soll. Das diesem Bericht zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung, und Forschung unter dem Förderkennzeichen 16OH12026 gefördert. Die Verantwortung für den Inhalt dieser Veröffentlichung liegt beim Autor. Inhaltsverzeichnis Seite 3 Inhaltsverzeichnis Einleitung zu den Studienbriefen I. Abkürzungen der Randsymbole und Farbkodierungen . . . . . . . . . II. Zu den Autoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III. Modullehrziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Studienbrief 1 Einführung Public Key 1.1 Lernziele . . . . . . . . . . . . . . 1.2 Advanced Organizer . . . . . . . 1.3 Der Euklidische Algorithmus . . . Kryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Studienbrief 2 Einführung RSA 2.1 Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Advanced Organizer . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 RSA berechnen und brechen . . . . . . . . . . . . . . . . . . . . . . . 9 Studienbrief 3 Kryptographie mit dem 3.1 Lernziele . . . . . . . . . . . . . . . 3.2 Advanced Organizer . . . . . . . . 3.3 Zyklische Gruppen . . . . . . . . . 3.4 Diffie-Hellman Schlüsseltausch . . 3.5 ElGamal . . . . . . . . . . . . . . . diskreten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Logarithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 6 7 7 7 9 9 9 11 . . . . . 11 11 11 13 14 Studienbrief 4 Kryptographie mit Elliptischen Kurven 4.1 Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Advanced Organizer . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Studienbrief 5 Digitale Signaturen 5.1 Lernziele . . . . . . . . . . . . . 5.2 Advanced Organizer . . . . . . 5.3 RSA Signaturen . . . . . . . . . 5.4 ElGamal Signaturen . . . . . . 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 17 21 21 21 23 Verzeichnisse 25 I. Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Seite 4 Einleitung zu den Studienbriefen Einleitung zu den Studienbriefen I. Abkürzungen der Randsymbole und Farbkodierungen Übung Ü Zu den Autoren Seite 5 II. Zu den Autoren Christof Paar ist Inhaber des Lehrstuhls Embedded Security an der RuhrUniversität Bochum und ist außerplanmäßiger Professor an der University of Massachusetts at Amherst, USA. Er arbeitet seit 1995 im Bereich der angewandten Kryptographie. Dr. Paar lehrt seit über 15 Jahren an Universitäten, sowohl in Europa, als auch in den USA, zu Themen der Kryptographie und Datensicherheit. Darüber hinaus gibt er Kurse für Teilnehmer aus der Industrie, u.a. für Motorola Research, die NASA und Philips Research. Dr. Paar hat mehr als 150 Publikationen im Bereich der angewandten Kryptographie und ist Mitgründer des Workshop on Cryptographic Hardware and Embedded Systems (CHES). Jan Pelzl hat in angewandter Kryptologie promoviert und ist Hauptgeschäftsführer der ESCRYPT - Embedded Sedurity, einer führenden Firma im Bereich der Sicherheitsbereatung. Er hat erfolgreich zahlreiche nationale und internationale Industrieprojekte geleitet und tiefgehende Kenntnisse über Sicherheitsbedürfnisse in echten Systemen. Dr. Pelzl hat praktische Aspekte der Kryptographie und Kryptanalyses von elliptischen Kurven erforscht. Seine theoretischen und praktischen Ergebnisse hat er auf/ in international führenden Konferenzen/ Zeitschriften veröffentlicht. Dr. Pelzl hat viele Jahre Kurse über Kryptographie und IT-Sicherheit in Industriekreisen gehalten. Seite 6 Einleitung zu den Studienbriefen III. Modullehrziele Kryptographie ist heutzutage allgegenwärtig - während sie lange Zeit nur von Regierungen, Geheimdiensten und Banken verwendet wurde, werden kryptografische Techniken mittlerweile u.a. in Web-Browsern, EMail Programmen, Handys, industriellen Produktionssystemen, eingebetteter Software, Autos und sogar in medizinischen Implantaten verwendet. Daher benötigen EntwicklerInnen heutzutage umfassendes Wissen im Bereich der angewandten Kryptographie. Ziel dieses Moduls ist es, der Leserin ein solches Wissen zu vermitteln. Nach einer Einführung in das Thema der Kryptographie und Datensicherheit, werden die wichtigsten Techniken der modernen symmetrischen Kryptographie behandelt. Diese umfassen insbesondere Stromchiffren, den Data Encryption Standard (DES), sowie den Advanced Encryption Standard (AES) und Message Authentication Codes (MACs). Nach erfolgreichem Abschluss dieses Moduls hat die Leserin grundlegende theoretische Kenntnisse in obigen Bereichen erlangt. Darüber hinaus werden Probleme erörtert, die sich im Zusammenhang der praktischen Implementierung der Verfahren ergeben, etwa die Wahl der Sicherheitsparameter. Das Modul ist physisch in zwei Teile geteilt. Der Inhalt des Moduls ist im Buch “Understanding Cryptography” von Paar und Pelzl nachzulesen, während Sie die Übungsaufgaben in diesen Studienbriefen finden. Es gibt sowohl theoretische, als auch praktische Übungsaufgaben. Für die Bearbeitung vieler praktischen 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 entsprechend gekennzeichnet. Studienbrief 1 Einführung Public Key Kryptographie Seite 7 Studienbrief 1 Einführung Public Key Kryptographie Die Grundlage dieses Studienbriefes ist der Inhalt des sechsten Kapitels „Introduction to Public-Key Cryptography“ aus dem Buch Understanding Cryptography von Christof Paar und Jan Pelzel Paar and Pelzl (2010). Auf der Website zum Buch www.crypto-textbook.com finden Sie einen englischsprachigen Foliensatz zum Buchkapitel sowie nützliche Hinweise und Links zu weiterführender Literatur. Videomitschnitte von den Vorlesungen zu den hier behandelten Themen werden an den jeweils relevanten Stellen im Studienbrief verlinkt. 1.1 Lernziele Sie haben den Unterschied zwischen symmetrischer- und asymmetrischer Kryptographie verstanden. Ihnen ist klar, wo die Vor- und Nachteile hierbei liegen. Sie können den Euklidischen Algorithmus anwenden. Sie können eigenständig den größten gemeinsamen Teiler zweier großer Zahlen berechnen. Sie haben das Konzept von modularer Arithmetik wiederholt und können Inversen berechnen. 1.2 Advanced Organizer Mit diesem Studienbrief erfahren Sie die grundlegenden Unterschiede von symmetrischer und asymmetrischer Kryptographie. Wir lernen den Euklidischenund erweiterten Euklidischen Algorithmus kennen. An Beispielen üben wir den Umgang und das Berechnen von GGT und modularen Inversen. 1.3 Der Euklidische Algorithmus Lesen Sie das 6. Kapitels aus dem Buch Understanding Cryptography Paar and Pelzl (2010). Ergänzend können Sie den Videomitschnitt der Vorlesung online unter folgenden Links anschauen. http://www3.crypto.rub.de/Vorlesung/Kry_10.html http://www3.crypto.rub.de/VL2010/Kry_11.html Übung 1.1: Einführung Lesen Sie Kapitel 6.1 und 6.2 im Buch und beantworten Sie folgende Fragen kurz in Stichworten: 1. Was ist der entscheidende Vorteil von Public-key Kryptographie gegenüber Secret-key Kryptographie? 2. Welche Eigenschaft muss bei der Schlüsselübertragung eines Publickey Verfahrens gegeben sein? Wie wird dies in der Praxis gelöst? 3. Was sind die Vorteile von Elliptischen Kurven in der Public-Key Kryptographie? 4. Warum sind die empfohlenen Schlüssellängen bei Public-key Verfahren größer als bei Secret-key Verfahren? de en Ü Seite 8 Ü Studienbrief 1 Einführung Public Key Kryptographie Übung 1.2: Euklidischer Algorithmus: Berechnung des gcd Benutzen Sie Euklidschen Algorithmus, um den größten gemeinsamen Teiler folgender Zahlen zu berechnen: 1. n = 3827 und m = 3311, 2. n = 286875 und m = 333200. Versuchen Sie diese Aufgaben unter Prüfungsbedingung zu lösen, d.h. benutzen Sie für diese Aufgabe nur Ihren Taschenrechner. Führen Sie in Ihrer Antwort jeden Schritt des Euklidschen Algorithmus auf, d.h. schreiben Sie nicht nur eine Zahl als Ergebnis. Außerdem sollten Sie für jeden ggT die folgende Gleichung aufstellen: gcd(r0 , r1 ) = gcd(r1 , r2 ) = · · · . Ü Übung 1.3: Euklidischer Algorithmus: Berechnung der multiplikativen Inversen Mit dem erweiterten Euklidschen Algorithmus verfügen wir über einen effektiven Algorithmus zur Berechnung der multiplikativen Inversen in Zm . 1. Berechnen Sie das Inverse in Zm für die folgenden Elemente a modulo m: a) a = 1215, m = 3094 b) a = 91, m = 7590 2. Welches Kriterium muss aber gelten, damit eine eindeutige Inverse a−1 existiert? Benutzen Sie nur den Taschenrechner und zeigen Sie im Lösungsweg jeden Schritt an. Studienbrief 2 Einführung RSA Seite 9 Studienbrief 2 Einführung RSA Die Grundlage dieses Studienbriefes ist der Inhalt des siebten Kapitels „The RSA Cryptosystem“ aus dem Buch Understanding Cryptography von Christof Paar und Jan Pelzel Paar and Pelzl (2010). Auf der Website zum Buch www.crypto-textbook.com finden Sie einen englischsprachigen Foliensatz zum Buchkapitel sowie nützliche Hinweise und Links zu weiterführender Literatur. Videomitschnitte von den Vorlesungen zu den hier behandelten Themen werden an den jeweils relevanten Stellen im Studienbrief verlinkt. 2.1 Lernziele Sie haben das wichtigste asymmetrische Verschlüsselungsverfahren kennengelernt. Sie haben die Mathematik hinter dem Verfahren verstanden. Sie können „per Hand“ ver- und entschlüsseln. 2.2 Advanced Organizer In diesem Studienbrief stellen wir das asymmetrische Verschlüsselungsverfahren RSA kennen. In Übungen und Beispielen lernen Sie das Berechnen von Chiffretexten und das Entschlüsseln von Ciphertexten. 2.3 RSA berechnen und brechen Lesen Sie das 7. Kapitel aus dem Buch Understanding Cryptography Paar and Pelzl (2010). Ergänzend können Sie den Videomitschnitt der Vorlesung online unter folgenden Links anschauen. http://www3.crypto.rub.de/Vorlesung/Kry_11.html http://www3.crypto.rub.de/VL2010/Kry_12.html Übung 2.1: Square and Multiply Berechnen Sie die folgenden Exponentiationen xe mod m mit Hilfe des square-and-multiply Algorithmus. de en Ü 1. x = 3, e = 68, m = 101 2. x = 5, e = 45, m = 101 Nach jedem Schritt des square-and-multiply Algorithmus soll der Exponent in binärer Darstellung angegeben werden. Übung 2.2: RSA Ver- und Entschlüsselung Berechnen Sie zunächst den öffentlichen bzw. privaten Schlüssel und führen Sie dann eine RSA Ver- bzw. Entschlüsselung mit den folgenden Systemparametern durch: 1. p = 19, q = 13, d = 137, x = 17 2. p = 23, q = 7, d = 53, x = 6 Ü Seite 10 Studienbrief 2 Einführung RSA 3. p = 11, q = 17, e = 61, y = 176 Anmerkung: Versuchen Sie diese Aufgabe unter Prüfungsbedigungen zu lösen und benutzen Sie nur einen Taschenrechner. Ü Übung 2.3: RSA brechen Sie haben über einen Ihrer Informanten erfahren, dass einige Kommilitionen eine Party am Kemnader See planen und Sie sind nicht eingeladen! Um trotzdem zum richtigen Zeitpunkt dabei zu sein, wollen Sie die Kommunikation abhören und konnten schon erfolgreich einige verschlüsselte E-Mails abfangen. Diese sind allerdings 256 Bit AES verschlüsselt. Nach einigen Nächten Arbeit, schaffen Sie es aber, einen neuen Schlüsselaustausch abzuhören. Dabei erhalten Sie die folgenden Informationen: • RSA-PubKey: (n,e)=(1219,5) • Cipher-Text: [93, 597, 211, 254, 1190, 934, 793, 880, 894] Ihr fleißiger Informant konnte außerdem in Erfahrung bringen, dass der Cipher-Text das Password für die AES-Verschlüsselung in ASCII-Darstellung enthält, dieses nur aus alphanummerischen Zeichen besteht [A..Za..z0..9] und zur Verschlüsselung der ASCII-Wert der einzelnen Buchstaben verwendet wurde. Brechen Sie die Verschlüsselung, damit die folgenden Planungsdetails nicht mehr vor Ihnen verborgen bleiben! Hinweis: Verwenden Sie als Klausurvorbereitung nur einen Taschenrechner! Studienbrief 3 Kryptographie mit dem diskreten Logarithmus Seite 11 Studienbrief 3 Kryptographie mit dem diskreten Logarithmus Die Grundlage dieses Studienbriefes ist der Inhalt des achten Kapitels „PublicKey Cryptosystems Based on the Discrete Logarithm Problem“ aus dem Buch Understanding Cryptography von Christof Paar und Jan Pelzel Paar and Pelzl (2010). Auf der Website zum Buch www.crypto-textbook.com finden Sie einen englischsprachigen Foliensatz zum Buchkapitel sowie nützliche Hinweise und Links zu weiterführender Literatur. Videomitschnitte von den Vorlesungen zu den hier behandelten Themen werden an den jeweils relevanten Stellen im Studienbrief verlinkt. 3.1 Lernziele Sie haben die Grundlagen des Diskreten Logarithmus Problems verstanden. Sie haben einen Überblick über fortgeschrittene Anwendungen des Problems für die Kryptographie. Sie können die Konstruktionen vom Anfang bis zum Limit an Sicherheit überblicken. 3.2 Advanced Organizer In diesem Studienbrief geben wir in einem ersten Schritt eine Einführung in die Problematik mit diskreten Logarithmen. Die erste Anwendung ist das Diffie-Hellman (DH) Schlüsseltausch Protokoll. Hierzu gibt es Beispiele und Übungen, welche die Thematik fassbar machen. Der Studienbrief schließt mit dem ElGamal Verschlüsselungsverfahren, welches die Technik des DH Protokolls nutzt um ein Verschlüsselungsverfahren zu konstruieren. Mögliche Schwachstellen werden hier ebenfalls thematisiert. 3.3 Zyklische Gruppen Lesen Sie die Abschnitte 8.2 und 8.3 des 8. Kapitels aus dem Buch Understanding Cryptography Paar and Pelzl (2010). Ergänzend können Sie den Videomitschnitt der Vorlesung online unter folgenden Links anschauen. http://www3.crypto.rub.de/Vorlesung2/KVL01.html http://www3.crypto.rub.de/SoSe_2011/Kry_13.html Ü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 Zeile ein Element a und die Ordnung ord(a) enthält. (Tipp: Damit Sie die zyklischen Gruppen und ihre Eigenschaften näher kennenlernen, wäre es gut, wenn Sie alle Ordnungen “per Hand” berechnen, d.h. verwenden Sie nur einen Taschenrechner. Wenn Sie Ihr Kopfrechnen de en Ü Seite 12 Studienbrief 3 Kryptographie mit dem diskreten Logarithmus auffrischen wollen, versuchen Sie bei der Berechnung möglichst keinen Taschenrechner zu verwenden.) Ü Übung 3.2: Eigenschaften von zyklischen Gruppen Wir betrachten nun die Gruppen von 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 Elemente 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 Theorem” or “Fermat’s Theorem” bekannt.) Ü Übung 3.3: Ordnung von Elementen II Schreiben Sie ein Programm in der Programmiersprache Ihrer Wahl, das die Ordnung eines Elementes in Z?p berechnet und ausgibt. Das Programm soll zusätzlich die Ausgabe “Primitiv“ erzeugen, wenn das Element primitiv ist. Als Eingabe soll der Benutzer sowohl a als auch eine Primzahl p eingeben. Beachten Sie, dass Sie nach jedem Schritt eine Moduloreduktion durchführen. Ermitteln Sie die Ordnung der folgenden Elemente a in Z p : 1. p = 5431, a = 2, 51, 5430 (10 Pkt.) 2. p = 19751, a = 2, 7, 11111 (10 Pkt.) Welche der Elemente sind primitiv? (5 Pkt.) Ü Übung 3.4: Primitive Elemente Für Kryptoverfahren, die auf dem diskreten Logarithmusproblem beruhen ist es oft notwendig, ein primitives Element zu finden. In dieser Aufgabe werden wir die Rechenkomplexität für das Testen eines primitiven Elementes betrachten. 1. Wie viele Elemente müssen durchschnittlich getestet werden, um ein primitives Element zu finden? 2. Was ist die Komplexität (d.h. die durchschnittliche Anzahl von Schritten, die benötigt wird) des Programms zum Testen von Primitivitäten, das Sie für die Aufgabe 3 geschrieben haben? Ist diese Vorgehensweise für in der Praxis verwendete Schlüssellängen geeignet? 3. Haben Sie Vorschläge, wie der Test dramatisch beschleunigt werden könnte? Sie müssen nicht den ganzen Algorithmus beschreiben, sondern nur kurz Ihre Idee aufführen, die dem verbesserten Verfahren zu Grunde liegt. Hinweis: Benutzen Sie eine der Eigenschaften von zyklischen Gruppen, die in der Vorlesung besprochen worden sind. 3.4 Diffie-Hellman Schlüsseltausch Seite 13 4. Wie groß ist die Gesamtkomplexität zum Auffinden eines primitiven Elementes? 3.4 Diffie-Hellman Schlüsseltausch Lesen Sie die Abschnitte 8.1, 8.3 und 8.4 des 8. Kapitels aus dem Buch Understanding Cryptography Paar and Pelzl (2010). Ergänzend können Sie den Videomitschnitt der Vorlesung online unter folgenden Links anschauen. http://www3.crypto.rub.de/Vorlesung2/KVL02.html http://www3.crypto.rub.de/SoSe_2011/Kry_01.html Übung 3.5: Diskreter Logarithmus und generalisiertes diskretes Logarithmusproblem de en Ü Bestimmen Sie den folgenden diskreten Logarithmus: a) dlog4 (6) in (Z∗23 , ·) b) Ist die Lösung für a) eindeutig (warum)? Wir betrachten nun das generalisierte diskrete Logarithmusproblem. Sei G = (Z p , +) eine Gruppe und p prim. c) Beschreiben Sie die Vorgehensweise, um das generalisierte diskrete Logarithmusproblem für G effizient zu lösen. Übung 3.6: Diffie-Hellman Schlüsselaustausch I Berechnen Sie die zwei öffentlichen Schlüssel und den gemeinsamen Schlüssel des Diffie-Hellman Schlüsselaustausches mit den Parametern p = 1153, α = 202 und: Ü a) k pr,A = 80, k pr,B = 101 b) k pr,A = 565, k pr,B = 203 Übung 3.7: Diffie-Hellman Schlüsselaustausch II Beim DHKE werden sowohl der Generator α als auch die privaten Schlüssel k pr,A , k pr,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? Ü Seite 14 Studienbrief 3 Kryptographie mit dem diskreten Logarithmus 3.5 ElGamal Lesen Sie die Abschnitte 8.5 und 8.6 des 8. Kapitels aus dem Buch Understanding Cryptography Paar and Pelzl (2010). Ergänzend können Sie den Videomitschnitt der Vorlesung online unter folgenden Links anschauen. de en Ü http://www3.crypto.rub.de/Vorlesung2/Kry_03.html http://www3.crypto.rub.de/SoSe_2011/Kry_02.html Übung 3.8 Wir betrachten eine alternative Version des Diffie-Hellman Schlüsselaustauschs auf Basis der Primzahl p = 467 über Z∗467 . Gegeben sei das Element α = 4 als Basiselement für den Schlüsselaustausch. Das Element 4 hat die Ordnung 233 und generiert deshalb eine Untergruppe mit 233 Elementen. Berechnen Sie KAB mit: 1. aA = 300, aB = 134 2. aA = 67, aB = 134 Warum sind die Sitzungsschlüssel identisch? Worauf ist dies zurückzuführen? Ü Übung 3.9: ElGamal Verschlüsselungsprinzip 1. Warum ist ElGamal nicht-deterministisch? Was ist der Vorteil eines nicht-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 sich das 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 K pr = 301, zufälliger Parameter i = 23, Nachricht m = 59 2. Privater Schlüssel K pr = 301, zufälliger Parameter i = 135, Nachricht m = 59 Entschlüsseln Sie ebenfalls wieder jedes Chiffrat. Zeigen Sie dabei jeden Rechenschritt des ElGamal Protokolls. Ü Übung 3.11: Angriff auf ElGamal bei schlecht gewähltem Zufall Der zufällige Exponent i in der ElGamal-Verschlüsselung muss bei jeder Verschlüsselung zufällig gewählt werden. Zeigen Sie, dass die ElGamalVerschlüsselung unsicher ist, wenn der Sender den Exponenten i1 fuer die erste Verschlüsselung zufällig wählt, und dann für jede weitere Verschlüsselung um eins erhöht, also ik+1 = ik + 1. Nehmen Sie dabei an, dass der 3.5 ElGamal Seite 15 Angreifer ein Nachricht/Chiffrat-Paar kennt (sowie weitere Chiffrate, die er brechen möchte). Übung 3.12: name Übung Ü Studienbrief 4 Kryptographie mit Elliptischen Kurven Seite 17 Studienbrief 4 Kryptographie mit Elliptischen Kurven Die Grundlage dieses Studienbriefes ist der Inhalt des neunten Kapitels „Elliptic Curve Cryptosystems“ aus dem Buch Understanding Cryptography von Christof Paar und Jan Pelzel Paar and Pelzl (2010). Auf der Website zum Buch www.crypto-textbook.com finden Sie einen englischsprachigen Foliensatz zum Buchkapitel sowie nützliche Hinweise und Links zu weiterführender Literatur. Videomitschnitte von den Vorlesungen zu den hier behandelten Themen werden an den jeweils relevanten Stellen im Studienbrief verlinkt. 4.1 Lernziele Sie haben die Grundlagen von elliptischen Kurven (EC) verstanden. Sie sind mit den Pro- und Kontra-Argumenten in der Diskussion ECC vs. RSA vertraut. Sie können die Stärken der EC Kryptographie einschätzen. 4.2 Advanced Organizer In diesem Studienbrief behandeln wir das Gebiet der elliptischen Kurven Kryptographie (ECC). Wir besprechen Argumente für und gegen den Einsatz von elliptischen Kurven im Vergleich zu RSA. Wir besprechen an Beispielen und Übungen die Mathematik von elliptischen Kurven. 4.3 Übungen Lesen Sie das 9. Kapitel aus dem Buch Understanding Cryptography Paar and Pelzl (2010). Ergänzend können Sie den Videomitschnitt der Vorlesung online unter folgenden Links anschauen. http://www3.crypto.rub.de/Vorlesung2/Kry_05.html http://www3.crypto.rub.de/SoSe_2011/Kry_03.html Übung 4.1: Grundlagen a) Gegeben seien E1 : y2 = x3 + 5 · x + 3 mod 11 E2 : y2 = x3 + 2 · x + 3 mod 11 Welche der beiden elliptischen Kurven ist für kryptografische Zwecke geeignet und wieso? Beachten Sie in diesem Fall keine sicherheitsrelevanten Attribute wie Primzahlgröße, o.ä. Verwenden Sie für die folgenden Teilaufgaben nur die geeignete Kurve. b) Berechnen Sie alle Punkte der Kurve! Zeigen Sie hierbei, wie Sie die Punkte bestimmt haben. c) Was ist die Gruppenordnung? d) Gegeben sei der Punkt α = (0, 6). Bestimmen Sie die Ordnung von α mit nur einer Punktmultiplikation. Ist α ein Generator? de en Ü Seite 18 Ü Studienbrief 4 Kryptographie mit Elliptischen Kurven Übung 4.2: Schnelle Punktmultiplikation Gegeben sei eine elliptische Kurve E über Z71 und der Punkt P = (23, 68): E : y2 ≡ x3 + 49x + 63 mod 71. Es ist bekannt, dass die Ordnung der Kurve ord(E ) = 66 ist. Weiterhin sei ein zusätzlicher Punkt Q = 15 · P = (33, 49) auf der Kurve gegeben. Bestimmen Sie nun mit möglichst wenigen Gruppenoperationen (d.h. Punktadditionen) das Ergebnis der folgenden Punktmultiplikationen, z.B. durch die geschickte Verwendung des bekannten Punktes Q. Geben Sie jeweils an, wie Sie die Berechnung vereinfachen konnten. Die einzelnen Rechenoperationen müssen nicht angegeben werden. a) 14 · P b) 67 · P c) 4 · P + 4 · Q Ü Übung 4.3: Programmieraufgabe An einem verregneten Apriltag stehen Sie vor ihrem Wohnungsfenster und starren in die Ferne. Während die Regentropfen langsam an der Scheibe nach unten kriechen, bildet sich in ihrem Kopf ein genialer Plan. Die letzte Krypto-Vorlesung noch lebhaft vor dem inneren Auge, nehmen Sie sich vor, die Gruppenoperationen für Elliptische Kurven zu implementieren, um so die graue Eintönigkeit dieses Tages endlich abzuschütteln! a) Implementieren Sie eine Funktion, die je nach Eingabe eine Punktaddition oder eine Punktdopplung auf der elliptischen Kurve E realisiert. b) Berechnen Sie mit ihrem Programm folgende Werte auf der Kurve E : y2 ≡ x3 + 213 · x + 560 mod 947: i) (374, 627) + (374, 627) ii) (771, 633) + (217, 551) Hinweis: Sie können die Aufgabe in einer beliebigen Programmiersprache umsetzen (mit Außnahme von esotherischen Sprachen wie z.B. Brainfuck). Geben Sie ihren sinnvoll kommentierten Quellcode in gedruckter Form ab. Bei Gruppenabgaben reicht eine gedruckte Version. Nebem dem Quellcode geben Sie bitte auch die Ausgabe ihres Programms für die jeweiligen Aufrufe an! Ü Übung 4.4: Elliptische-Kurven Diffie-Hellman Schlüsselaustausch Gegeben sei eine elliptische Kurve E über Z11 : E : y2 = x3 + x + 6 mod 11. Gegeben ist ihr private Schlüssel a = 6 und der öffentliche Schlüssel von Bob B = (5, 9). Berechnen Sie den Session-Key. Verwenden Sie den DoubleAnd-Add Algorithmus und geben Sie alle Zwischenwerte an. 4.3 Übungen Übung 4.5: Laufzeit des Double-And-Add Algorithmus Wir betrachten eine 160 bit Primzahl p ≈ 2160 und wollen k · P mit Hilfe des Double-And-Add Algorithmus berechnen. Seite 19 Ü a) Wie viele Punktadditionen und wie viele Punktverdopplungen müssen (i) im Durchschnitt, (ii) im besten Fall, und (iii) im schlechtesten Fall berechnet werden? b) Welche Werte von k sind der “beste Fall” und der “schlechteste Fall”? c) Angenommen eine Gruppenoperation (also Punktaddition oder Punktverdopplung) benötigt 20µsec, wie lange dauert die Punktaddition (i) im Durchschnitt, (ii) im besten Fall, und (iii) im schlechtesten Fall? Übung 4.6: Programmieraufgabe II Leider hat sich das Wetter seit der ersten Übung zu diesem Brief nicht wesentlich verbessert, deshalb beschliessen Sie nun, Ihr Programm vom letzten Blatt um den Double-And-Add Algorithmus für Elliptische Kurven zu erweitern. a) Implementieren Sie eine Funktion, die nach Eingabe eines Punktes P auf einer elliptischen Kurve und einer ganzen Zahl k den Wert k · P mit Hilfe des Double-And-Add Algorithmus berechnet. b) Berechnen Sie mit ihrem Programm folgende Werte auf der Kurve E : y2 ≡ x3 + 213 · x + 560 mod 947: i) 42 · (468, 779) ii) 7 · (468, 779) Hinweis: Wie gehabt können Sie die Aufgabe in einer beliebigen (aber nicht esoterischen) Programmiersprache umsetzen; abzugeben sind der sinnvoll kommentierte Quellcode und die jeweiligen Lösungen. Ü Studienbrief 5 Digitale Signaturen Seite 21 Studienbrief 5 Digitale Signaturen Die Grundlage dieses Studienbriefes ist der Inhalt des zehnten Kapitels „Digital Signatures“ aus dem Buch Understanding Cryptography von Christof Paar und Jan Pelzel Paar and Pelzl (2010). Auf der Website zum Buch www.crypto-textbook.com finden Sie einen englischsprachigen Foliensatz zum Buchkapitel sowie nützliche Hinweise und Links zu weiterführender Literatur. Videomitschnitte von den Vorlesungen zu den hier behandelten Themen werden an den jeweils relevanten Stellen im Studienbrief verlinkt. 5.1 Lernziele Sie Verstehen die Grundlagen und das Einsatzgebiet von digitalen Signaturen. Sie können Signaturen unter Verwendung des RSA Verfahrens erzeugen. Sie können die Schwächen von RSA Signaturen einschätzen. 5.2 Advanced Organizer Wir beschäftigen uns in diesem Studienbrief mit den Grundlagen von digitalen Signaturen. Wir besprechen die konkreten Signaturverfahren RSA und ElGamal. Diese untersuchen wir in Übungen und Beispielen genauer. 5.3 RSA Signaturen Lesen Sie die Abschnitte 10.1 und 10.2 des 1. Kapitels aus dem Buch Understanding Cryptography Paar and Pelzl (2010). Ergänzend können Sie den Videomitschnitt der Vorlesung online unter folgenden Links anschauen. http://www3.crypto.rub.de/Vorlesung2/Kry_06.html http://www3.crypto.rub.de/SoSe_2011/Kry_05.html Übung 5.1: Grundlagen zu digitalen Signaturen Erklären Sie in jeweils maximal ein bis zwei Sätzen folgende Begriffe mit Ihren eigenen Worten: de en Ü a) Authentisierung (authentication) b) Integrität (integrity) c) Nicht-Zurückweisbarkeit (non-repudiation) Übung 5.2: RSA-Signaturen Berechnen Sie die RSA-Signaturen zu den gegebenen Nachrichten x mit dem öffentlichen Schlüssel (n, e) = (1177, 17) und dem privaten Schlüssel (d) = (873). Überprüfen Sie ebenfalls Ihre Ergebnisse, indem Sie die Signaturen anschließend verifizieren. a) x = 873 b) x = 73 Ü Seite 22 Studienbrief 5 Digitale Signaturen 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) Ü Übung 5.3: Fälschen von RSA-Signaturen a) Zeigen Sie anhand einer Beispielrechnung, wie ein Angreifer eine gültige RSA-Signatur zu einer von ihm beliebig wählbaren Nachricht erzeugen kann, ohne im Besitz des geheimen Schlüssels d zu sein. Rechnen Sie in ihrem Beispiel mit den öffentlichen RSA-Parametern (n, e) = (1177, 17). Dieser Angriff soll ohne die Faktorisierung von n und die Berechnung des diskreten Logarithmus auskommen! b) Kann ein solcher Angreifer damit gezielt Unterschriften zu bestimmten Dokumenten (z.B. Kaufverträgen, E-Mails) fälschen? Begründen Sie Ihre Antwort! Ü Übung 5.4: RSA-Signaturen mit Padding Erschöpft von einer guten Maiwanderung liegen Sie am nächsten Tag auf dem Sofa und grübeln über die Schwachstellen des „Schulbuch“-RSA nach. Da der heutige Tag bestens für eine entspannte Programmieraufgabe geeignet ist, nehmen Sie sich vor, eines dieser Probleme zu beheben. Nach einer kurzen Kaffee-Pause schwebt Ihnen folgendes RSA-Padding Format vor Augen: +--------+--------+---------+-----------+ | Header | Laenge | Padding | Nachricht | +--------+--------+---------+-----------+ Dabei soll der Header die Zeichenkette CRYPTO12 in 8-Bit ASCII Kodierung enthalten. Das Längenfeld beinhaltet die (genaue) Anzahl der tatsächlich verwendeteten Bits für die Nachricht und ist selber 16 Bit lang. Das Padding füllt die Nachricht mit Nullen auf die benötigte Länge (Bitlänge des Modulus) auf. a) Wie lang kann die signierte Nachricht höchstens sein, wenn RSA mit einem 1024 Bit Modulus und die Nachricht unverändert verwendet werden? b) Kann diese Länge im Header korrekt kodiert werden (wieso)? c) Wie kann die Längenbeschränkung in der Praxis umgangen werden? Im Übungsordner finden Sie eine Datei RSA-Parameter.txt mit den Parametern n, e und d, die Sie für die restliche Aufgabe verwenden sollen. Weiterhin befindet sich eine generierte digitale Signatur im Dezimalformat im Übungsordner (Signatur.txt), zu der allerdings die Nachricht fehlt. d) Ist die Signatur gültig? 5.4 ElGamal Signaturen Seite 23 e) Geben Sie den Inhalt des Header-Feldes in hexadezimaler Schreibweise an. f) Geben Sie den Inhalt des Längen-Feldes in hexadezimaler Schreibweise an. Wie lang ist die signierte Nachricht? g) Geben Sie die Nachricht in hexadezimaler Schreibweise an. Die Nachricht ist 8-Bit ASCII kodiert. Geben Sie den Inhalt der Nachricht an. h) Implementieren Sie nun eine Signaturfunktion, die dieses Padding umsetzt und signieren Sie die Nachricht EIN SACK ZEMENT Geben Sie die gepaddedete Nachricht und die dazugehörige Signatur in hexadezimaler Schreibweise an. Ihren Quellcode müssen Sie nicht mit abgeben! Hinweise: i) Sie sollten eine Langzahlarithmetik-Bibliothek (für C bspw. gmp, für Java BigInteger) verwenden und die Funktionen der Bibliothek überprüfen um sich unnötige Arbeit zu ersparen (bei gmp etwa mpz_powm). ii) Geben Sie alle hexadezimalen Werte in 4-Byte-Blöcken an (es sei denn, der Wert ist kürzer)! 5.4 ElGamal Signaturen Lesen Sie die Abschnitte 10.3, 10.6 und 10.7 des 10. Kapitels aus dem Buch Understanding Cryptography Paar and Pelzl (2010). Ergänzend können Sie den Videomitschnitt der Vorlesung online unter folgenden Links anschauen. http://www3.crypto.rub.de/Vorlesung2/Kry_07.html http://www3.crypto.rub.de/SoSe_2011/Kry_06.html Übung 5.5: ElGamal-Signatur Da Bob dem RSA-Signaturschema nicht traut, ist er mit Alice auf ein neues Verfahren umgestiegen: ElGamal. Trudy versucht Alice und Bob auseinander zu bringen, muss sich aber nun auf die neue Situation einstellen. Alice und Bob wollen sich, nach wie vor, signierte E-Mails schicken und beherrschen auch beide das ElGamal-Signaturverfahren. Da Bob aber gerade sehr viel Arbeit hat, hat er Sie gebeten, ihm die Signaturen zu seinen Nachrichten an Alice zu berechnen. Er hat Ihnen folgende Parameter gegeben: • Seinen privaten Schlüssel K pr = d = (67) • Den dazugehörigen öffentlichen Schlüssel K pub = (p, α, β ) = (97, 23, 15) 1. Um Ihnen die Arbeit nicht zu schwer zu machen, hat er seine Nachrichten mittels einer Hashfunktion H(m) reduziert. Signieren Sie folgende Nachrichten: a) H(m) = x = 17 und kE = 31 b) H(m) = x = 85 und kE = 48 c) H(m) = x = 17 und kE = 49 de en Ü Seite 24 Studienbrief 5 Digitale Signaturen Geben Sie hierbei alle Zwischenschritte mit an, d.h. die Überprüfung der einzelnen Parameter, die Ergebnisse von r und s, sowie die Ergebnisse der Überprüfung, t und α x . (Sie brauchen keinen Squareand-Multiply zu verwenden.) 2. Vergleichen Sie das RSA- und das ElGamal-Signaturschema und geben Sie zu jedem Schema mindestens einen Vor- und einen Nachteil an. Ü Übung 5.6: ElGamal-Signatur - Verifikation Bob hat zweimal die gleiche Nachricht mit unterschiedlichen Signaturen erhalten und möchte wissen, ob Trudy ihre Finger im Spiel hat. Die Nachricht lautet in beiden Fällen x = 10. 1. Verifizieren Sie die Signaturen mit dem öffentlichen Schlüssel von Alice K pub = (p, α, β ) = (31, 3, 6): a) (r, s) = (17, 5) b) (r, s) = (13, 15) 2. Wie viele gültige Signaturen kann man mit den Parametern von Alice zu jeder Nachricht x berechnen (inkl. Begründung)? Ü Übung 5.7: ElGamal-Signatur – Ephemeral Key Bob hat keine Lust, sich für jede Signatur einen neuen Ephemeral Key zufällig 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 aufeinanderfolgenden Signaturen berechnen kann. Ü Übung 5.8: ElGamal-Signatur – Existential Forgery Attack Gegeben sei Bobs öffentlicher Schlüssel: K pub = (p, α, β ) = (97, 23, 15). Zeigen Sie, wie Trudy eine gültige Signatur einer zufälligen Nachricht erzeugen kann, ohne den privaten Schlüssel zu besitzen (Stichwort: Existential Forgery Attack). Verwenden Sie hierzu die zufälligen Werte i = 18 und j = 11. Verzeichnisse Seite 25 Verzeichnisse I. Literatur Christof Paar and Jan Pelzl. Understanding Cryptography - A Textbook for Students and Practitioners. Springer, 2010. ISBN 978-3-642-04100-6.