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.