NUMMER: | 212020 |
KÜRZEL: | ImKrVe |
MODULBEAUFTRAGTE:R: | DR.-ING. Pascal Sasdrich |
DOZENT:IN: | Prof. Dr. Tim Güneysu |
FAKULTÄT: | Fakultät für Informatik |
SPRACHE: | Deutsch |
SWS: | 4 SWS |
CREDITS: | 5 CP |
ANGEBOTEN IM: | jedes Wintersemester |
LINK ZUM VORLESUNGSVERZEICHNIS
Hier entlang.
VERANSTALTUNGSART
Moodle, Tafelanschrieb
AKTUELLE TERMINE
Siehe Vorlesungsverzeichnis
PRÜFUNGEN
FORM: | schriftlich + studienbegleitend |
TERMIN: | Siehe Prüfungsamt. |
LERNFORM
Vorlesung und Übungen
LERNZIELE
Studierende erlernen die grundlegenden Algorithmen für die effiziente Implementierung rechen¬intensiver Kryptoverfahren. Insbesondere den Umgang von Algorithmen mit sehr langen Operanden haben sie nach Abschluss des Moduls verstanden, ebenso wie das Zusammen¬spiel von Implementierungsmethoden und kryptographischer Sicherheit.
INHALT
Diese Vorlesung gibt eine Einführung in Verfahren zur schnellen und sicheren Implementierung kryptographischer Algorithmen. Im ersten Teil werden Methoden zum effizienten Potenzieren ausführlich behandelt, da diese für alle verbreiteten asymmetrischen Verfahren von großer Bedeutung sind. Für den weit verbreiteten RSA Algorithmus werden zudem spezielle Beschleunigungsverfahren vorgestellt. Im zweiten Teil werden Algorithmen für effiziente Langzahlarithmetik entwickelt. Zunächst werden grundlegende Methoden zur Darstellung von Langzahlen in Rechnern und Verfahren zur Addition vorgestellt. Der Schwerpunkt dieses Teils liegt auf Algorithmen zur effizienten modularen Multiplikation. Neben dem Karatsuba-Algorithmus wird die Montgomery-Multiplikation behandelt. Im dritten Teil werden sichere Implementierungen besprochen. Es erfolgt eine Einführung in aktive und passive Seitenkanalattacken. Es werden aktive Attacken gegen Blockchiffren und RSA vorgestellt. Als wichtige Vertreter der passiven Attacken werden die Grundlagen von SPA (simple power analysis) und DPA (differential power analysis) eingeführt.Die Endnote ergibt sich zu 70% aus einer Klausur und zu 30% aus studienbegleitenden Programmierprojekten (auch zum Nachschreibetermin im Sommersemester).
Studierende die in einem Sommersemester die Projekte anfertigen möchten müssen sich innerhalb der ersten beiden Vorlesungswochen per Mail an falk.schellenberg@rub.de melden (SoSe22: Deadline 15.04.22).
VORAUSSETZUNGEN CREDITS
Bestandene Modulabschlussprüfung
EMPFOHLENE VORKENNTNISSE
- Grundkenntnisse Kryptographie- Grundkenntnisse der Programmiersprache C bzw. C++
NUMMER: | 141024 |
KÜRZEL: | ImKrVe |
MODULBEAUFTRAGTE:R: | Prof. Dr.-Ing. Christof Paar |
DOZENT:IN: | Dr.-Ing. Falk Schellenberg |
FAKULTÄT: | Fakultät für Informatik |
SPRACHE: | Deutsch |
SWS: | 4 SWS |
CREDITS: | 5 CP |
ANGEBOTEN IM: | each winter semester |
LINK ZUM MOODLE-KURS
Hier entlang.
VERANSTALTUNGSART
Moodle, black board and chalk
AKTUELLE TERMINE
start: Wednesday the 13.10.2021lecture Wednesdays: from 08:15 to 09.45 o'clock in HID
tutorial Wednesdays: from 10:15 to 11.45 o'clock in HID
PRÜFUNGEN
FORM: | schriftlich + studienbegleitend |
TERMIN: | Siehe Prüfungsamt. |
LERNFORM
lecture with tutorials
LERNZIELE
The students have an understanding of methods for fast and secure implementation of symmetric and asymmetric cryptography.
INHALT
The first two topics are algorithms for efficient implementation of asymmetric cryptography. These include algorithms for fast exponentiation as well as data structures and algorithms for multiple precision arithmetic. The third topic of the lecture covers implementation attacks with focus on fault injection and differential power analysis (DPA). As a part of the lecture there will be projects in which the learned algorithms have to be implemented.The final grade is made up of a written exam (70%) and programming projects (30%) (also for the additional exam in the summer term).
Students willing to work on the projects in the summer term are required to contact falk.schellenberg@rub.de per mail within the first two weeks of the lecture period (summer term 2022: deadline 15.04.22).
VORAUSSETZUNGEN CREDITS
Bestandene Modulabschlussprüfung
EMPFOHLENE VORKENNTNISSE
- Basic knowledge in cryptography- Basic knowledge in the programming languages C or C++