Sichere Implementierung kryptographischer Verfahren

Vortragende/r (Mitwirkende/r)
  • Berndt Gammel
  • Wieland Fischer
Nummer0000004154
ArtVorlesung
SemesterWintersemester 2024/25
UnterrichtsspracheDeutsch
Stellung in StudienplänenSiehe TUMonline
TermineSiehe TUMonline

Teilnahmekriterien

Lernziele

Nach erfolgreichem Abschluß des Moduls sind die Teilnehmer in der Lage kryptographische Verfahren in eingebetteten Systemen zu implementieren. Des Weiteren sind den Studierenden die Grundlagen der Angriffe bekannt, die auf solche Implementierungen in der Praxis typischerweise durchgeführt werden. Außerdem lernen sie die Prinzipen von zahlreichen Schutzmaßnahmen gegen diese Angriffe kennen. Das Wissen der Studierenden beschränkt sich nicht auf die Theorie, sondern wurde durch mehrere praktische Übungen an eigenen Programmbeispielen vertieft.

Beschreibung

Kryptographische Verfahren und die Geheimhaltung der darin verwendeten privaten Schlüssel stellen die Grundlage der Sicherheit sämtlicher digitaler Systeme dar. Gerade deshalb sind diese Elemente das klassische Ziel von Angriffen in der Praxis. Inhalte dieser Modulveranstaltung sind die Grundlagen der Implementierung von kryptographischen Verfahren in eingebetteten Systemen, die typischen Angriffe auf diese Verfahren sowie entsprechende Schutzmaßnahmen. Die Veranstaltung gliedert sich in folgende Themenblöcke: 1. Einführung: Implementierung kryptographischer Verfahren in eingebetteten Systemen, Angriffsszenarien, Überblick über physikalische Angriffe, Bewertung der Relevanz 2. Angriffe und Schutzmaßnahmen für symmetrische kryptographische Verfahren: Laufzeitangriffe (Timing Attacks), Stromangriffe (Power Analysis Attacks), Fehlerangriffe (Fault Attacks), Schutzmaßnahmen gegen Angriffe 3. Angriffe und Schutzmaßnahmen für asymmetrische kryptographische Verfahren: Laufzeitangriffe (Timing Attacks), Stromangriffe (Power Analysis Attacks), Fehlerangriffe (Fault Attacks), Schutzmaßnahmen gegen die Angriffe 4. Spezialthemen: Diskussion aktueller Forschungsergebnisse Zu jedem der Themenblöcke sind Hausaufgaben bzw. praktische Übungen im Labor durchzuführen.

Inhaltliche Voraussetzungen

Folgende Module sollten vor der Teilnahme bereits erfolgreich absolviert sein: Kryptologie oder gleichwertige Grundlagenvorlesung

Lehr- und Lernmethoden

Die im Rahmen der Vorlesung vermittelten Kenntnisse werden durch Hausübungen und praktische Übungen im Labor vertieft. Die praktischen Übungen im Labor werden zusätzlich von einem Tutor betreut.

Studien-, Prüfungsleistung

Die Prüfungsleistung setzt sich aus an die Lernziele angepasste Teilleistungen zusammen: - Das Verständnis des in der Vorlesung vermittelten Wissens wird mit einer 60-minütigen schriftlichen Prüfung nachgewiesen. - Zusätzlich werden begleitend zur Vorlesung vier freiwillige praktische Übungen angeboten, die zur Notenverbesserung herangezogen werden können. Die Endnote ergibt sich zu 100% aus der schriftliche Klausur. Das erfolgreiche Absolvieren aller freiwilligen praktischen Übungen wird mit einem Bonus von 0,3 auf die Note für das bestandene Modul angerechnet.

Empfohlene Literatur

Folgende Literatur wird empfohlen: 1. Cetin Kaya Koc, Cryptographic Engineering, Springer Verlag, 2009 2. Stefan Mangard, Elisabeth Oswald, Thomas Popp: Power Analysis Attacks Revealing the Secrets of Smart Cards, Springer Verlag, 2007 3. Alfred J. Menezes, Paul C. Van Oorschot, Scott A. Vanstone: Handbook of Applied Cryptography, CRC Press, 1996

Links

Weitere Informationen

Wird nur im Wintersemester angeboten.

Übungen

Es sind vier Übungen zu implementieren. Für die Implementierung jeder Aufgabe steht ca. ein Monat zur Verfügung. Die Übungsaufgaben werden jeweils in einer Übungseinheit vorgestellt.

  1. Übung: Implementierung des AES-Algorithmus auf einem Mikrokontroller
  2. Übung: Implementierung eines Timing-Angriff gegen RSA
  3. Übung: Implementierung eines DPA-Angriff gegen AES
  4. Übung: Implementierung eines DFA-Angriff gegen AES

Termine der Übungen siehe oben. Übungen und ergänzendes Material werden über Moodle zur Verfügung gestellt.