Diese Vorlesung gibt eine Einführung in Verfahren zur effizienten Implementierung kryptographischer Algorithmen. Im ersten Teil werden Methoden zum effizienten Potenzieren ausführlich behandelt, da diese für viele 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- und dem Toom-Cook-Algorithmus wird die Montgomery-Multiplikation behandelt. Im dritten Teil werden effiziente Implementierungen für post-quantum kryptographische Verfahren besprochen. Es erfolgt eine Einführung in die Polynomarithmetik und Number Theoretic Transform (NTT). Weiterhin werden verschiedene Verfahren zum ziehen nicht-gleichverteilter Zufallszahlen behandelt.
Die Endnote ergibt sich zu 70% aus einer Klausur und zu 30% aus studienbegleitenden Programmierprojekten (+10% Bonus).
- Kursleiter/in: Pascal Sasdrich