Selected Topics of Information Security - Cryptography on Hardware Platforms (WS 2023/24)
Table of Content
Content
Modular_ArithmeticThis course teaches how to implement cryptographic algorithms efficiently on hardware platforms. It covers hardware implementation aspects of symmetric-key, asymmetric-key cryptographic primitives, true and pseudo random number generation, physically unclonable functions, as well as basics of homomorphic encryption. The content offered in the lectures is accompanied by practical assignments. In the practical assignments, you will be given reference proof-of-concept software implementations and you will build hardware-software codesign architectures for them.
Learning goals:
- Problem-oriented hardware development for cryptography.
- Standard and performance-optimized implementation techniques.
- Secure implementation techniques.
- Prototyping in real FPGA and performance benchmarking of crypto.
Besides learning how to implement cryptographic algorithms securely and efficiently, you learn design methods for FPGA. In the semiconductor industry, FPGAs are used for prototyping as well as product developments.
Discussions with other students are possible in the #cryptoengineering channel in Discord.Material
Lecture Slides 00 Introduction and Motivation 01 Introduction to FPGAs 02 Modular Arithmetic-I, Modular Arithmetic-II 03 Design_of_PublicKey_Crypto 04 Random number generation Statistical tests for random numbers Postprocessing of raw TRNG bits 04 Physically Unclonable Function (PUF) 05 AES and its Implementation Aspects 06 FHE Acceleration Practical session/Tutorial slides 00 Introduction 01 Verilog HDL Review 02 Vivado Tutorial, ModelSim Tutorial 03 Vitis Tutorial (Updated) 04 Assignment 2 (Explanation lecture) Example codes: Wrapper for 64-bit multiplier Assignments 01 Assignment 1 - Part 1 (PDF), Assignment 1 - All parts (PDF)- Python model of Montgomery reduction (for Task-1)
- Python model of NTT-INTT
- Vivado project for the cryptoprocessor, Vitis_code (Updated)