Kryptographische Algorithmen sind der „Motor“ hinter fast jeder praktischen Sicherheitslösung, von Internetsicherheit und Mobilfunksicherheit bis zur Geldkarte und PayTV. Gleichzeitig sind viele Krypto-Algorithmen extrem rechenintensiv, sodass effiziente Methoden für die Realisierung in Software gefunden werden müssen. Der andere wichtige Aspekt bei der Realisierung kryptographischer Verfahren ist die sichere Implementierung.
Diese Veranstaltung gibt eine Einführung in Methoden zur effizienten und sicheren Implementierung kryptographischer Algorithmen.
Lerninhalte
1. Teil:
- Methoden zur effizienten Potenzieren
- Spezielle Beschleunigungsverfahren für den RSA‑Algorithmus
2. Teil:
- Entwicklung von Algorithmen für effiziente Langzahlarithmetik
- Grundlegenden Methoden zur Darstellung von Langzahlen in Rechnern und Verfahren zur Addition
- Algorithmen zur effizienten modularen Multiplikation
- Karatsuba-Algorithmus
- Montgomery-Multiplikation
3. Teil:
- Sichere Implementierungen
- Einführung in aktive und passive Seitenkanalattacken
- Aktive Attacken gegen Blockchiffren und RSA
- Passive Attacken wie SPA (simple power analysis) und DPA (differential power analysis)
Lernziele
Im Rahmen des Moduls „Implementierung kryptografischer Verfahren“ erlernen Sie die grundlegenden Algorithmen für die effiziente Implementierung rechenintensiver Kryptoverfahren. Insbesondere den Umgang von Algorithmen mit sehr langen Operanden haben Sie nach Abschluss des Moduls verstanden werden. Zudem erfassen Sie das Zusammenspiel von Implementierungsmethoden und kryptographischer Sicherheit.
Empfehlenswerte Vorkenntnisse
- Modul 1: Einführung in die Kryptographie und Datensicherheit
- Grundkenntnisse der Programmiersprache C++ (bzw. Bereitschaft zum Einarbeiten in die Grundlagen von C++)