Cryptography on Hardware Platforms (WS 2024/25)
Table of Content
Content
This course teaches how to implement cryptographic algorithms efficiently on hardware platforms. It covers hardware implementation aspects of symmetric-key and asymmetric-key cryptographic primitives, true and pseudo-random number generation, physically unclonable functions, as well as the basics of homomorphic encryption. In the practical assignments, you will be given reference proof-of-concept software implementations and you will build hardware-software codesign architectures for them.Material
Previous course information: WS 2023/24.Questions and discussions with other students are possible in the #cryptoengineering channel in Discord.
All materials will be pushed to this Git repository and linked here:
Lecture materials:
- 00_Crypto_HW2024_general_information
- 01_Modular_Arithmetic
- 02_Integer_Arithmetic
- 03_Post-quantum public-key crypto basics
- 04_Polynomial arithmetic part-I
- 05_Polynomial arithmetic part-II
- Magazin article presenting an overall view
- CHES paper on two-coefficient butterfly optimization (see Alg1 to Alg2 transition, pipelining)
- 06_Random number generation
- 07_Post processing of TRNG bits
- 08_Statistical tests for TRNG bits
- 09_Fully Homomorphic Encryption
- 10_In-Memory Computing and Hardware Trojans
Practical materials:
- 01_verilog_review
- 02_vivado-tutorial (Vivado Tutorial Project)
- 02 Vivado tutorial continued and Carry Save Adders (Vivado Project)
- 03_Intro_to_FPGAs (Vivado Project for DSP and BRAM instantiation)
- 04_CryptoCoreTutorial (Video)
- 05_Pipelining Example
- 06_Assignment 2 Presentation (Video)
- Assignment 1 - Task 1 Description
- Wrapper Module for Implementation Runs
- CryptoCore Template Project - Assignment 1
- Python Code for Barrett reduction
- Python Code for NTT
- Assignment 1 - Complete Description
- Assignment 2 Description
- CryptoCore Template Project - Assignment 2
- Homomorphic encryption accelerator
- Optimization methods for integer multiplication
- Toom-Cook based polynomial multiplication
- Systolic finite field multiplier
- For assignments and practical sessions, we will use Xilinx Vitis/Vivado 2022.2 (Vitis installation includes Vivado by default). Here you can find the installation guide for Xilinx Vitis 2022.2 for Ubuntu Linux.
Administrative Information
Previous Knowledge
Cryptography, Digital design (e.g., DSD course).Prerequisites Curriculum
See position in the curriculumObjective
Students will learn how to design cryptographic algorithms on hardware and hardware-software co-design platforms.Learning goals:
- FPGA-based design flow, prototyping in real FPGA, and performance benchmarking.
- Problem-oriented hardware development for cryptography.
- Standard and performance-optimized implementation techniques.
- Secure implementation techniques.
Language
EnglishTeaching Method
Lectures and practicals will be in-person (2 hours lecture + 1 hour practical session).How to get a grade
The grading is based on two practical assignments. Students will work on them in a team of two.Registration
https://online.tugraz.at/tug_online/ee/rest/pages/slc.tm.cp/course-registration/542619Lecture Dates
Date | Begin | End | Location | Event | Type | Comment |
---|---|---|---|---|---|---|
2025/01/07 | 09:00 | 11:00 | Seminarraum | Abhaltung | VU | fix/Practical |
2025/01/13 | 10:00 | 11:00 | Seminarraum | Abhaltung | VU | fix/Lecture |
2025/01/14 | 09:00 | 11:00 | Seminarraum | Abhaltung | VU | fix/Practical |
2025/01/20 | 10:00 | 11:00 | Seminarraum | Abhaltung | VU | fix/Lecture |
2025/01/21 | 09:00 | 11:00 | Seminarraum | Abhaltung | VU | fix/Practical |
2025/01/27 | 10:00 | 11:00 | Seminarraum | Abhaltung | VU | fix/Lecture |
2025/01/28 | 09:00 | 11:00 | Seminarraum | Abhaltung | VU | fix/Practical |