This was the official course website for TTM4205 Secure Cryptographic Implementations during Fall of 2023.
The course covers how to implement, analyse, attack, protect and securely compose cryptographic algorithms in practice.
It goes in depth on how to implement computer arithmetic, attacking implementations using side-channel attacks and fault
injection, exploit padding oracles and low-entropy randomness, utilise techniques to defend against these attacks, and how
to securely design misuse-resistant APIs.
See the full course description at ntnu.edu/studies/courses/TTM4205.
Lecturer: Tjerand Silde
Contact: tjerand.silde@ntnu.no
Office: Electro B225
Webpage: tjerandsilde.no
Lab/Teaching Assistant: Jonathan Komada Eriksen
Contact: jonathan.k.eriksen@ntnu.no
Office: Electro B216
Webpage: jonathke.github.io
Substitute Lecturer: Caroline Sandsbråten
Contact: caroline.sandsbraten@ntnu.no
Office: Electro B211
Webpage: ntnu.edu/employees/caroline.sandsbraten
The reference group consist of the following members:
Reference group meetings:
We will use Piazza as a forum in this course.
Go to piazza.com/ntnu.no/fall2023/ttm4205.
The sign-up code is: 3dnp6nmmz59
The course materials are the lecture slides, references therein, and the assignments.
We do not require that you buy any books, but can recommend the following literature:
Additional great resources in applied cryptography are:
The evaluation in this course will consist of two assignments of 100 points total.
This assignment will contain the following kind of problems:
The submission deadline is December 10th at 23:59.
The problems are available here: PDF (updated 23/11)
This assignment is to write a paper about either a topic not covered
by the lectures, or to cover a topic from the lectures more in-depth.
Most important guidelines:
Deadlines:
Latex-template for the paper: overleaf.com/read/nhcnrbnwzmcw.
Latex-template for the presentation: overleaf.com/read/zjqxggmjnzqp.
The project description is available here: PDF (published 18/8)
You must pass both assignments to pass the course; at least 40% on each.
We will use the official NTNU grading scale to assign combined grades.
We have the following sessions this semester:
Guest Lectures in November:
(the schedule will be subject to small changes)
Week | Date | Format | Responsible | Topic | Resources |
---|---|---|---|---|---|
34 | 22/8 | Lecture | Tjerand | Course Introduction | Slides |
34 | 22/8 | Lab/Ex | Tjerand | Assignments & Setup | Installation Guide |
34 | 24/8 | Lecture | Tjerand | Randomness 1 | Slides |
35 | 29/8 | Lecture | Caroline | Randomness 2 | Slides |
35 | 29/8 | Lab/Ex | Caroline | Randomness Exercises | |
35 | 31/8 | Lecture | Tjerand | Randomness 3 | Slides |
36 | 5/9 | Lecture | Tjerand | Legacy Crypto 1 | Slides |
36 | 5/9 | Lab/Ex | Jonathan | Legacy Crypto Exercises | |
36 | 7/9 | Lecture | Tjerand | Legacy Crypto 2 | Slides |
37 | 12/9 | Lecture | Tjerand | Side-Channel Attacks 1 | Slides |
37 | 12/9 | Lab/Ex | Jonathan | SCA Lab 1 | |
37 | 14/9 | Lab/Ex | Jonathan | SCA Lab 2 | |
38 | 19/9 | Lecture | Tjerand | Side-Channel Attacks 2 | Slides |
38 | 19/9 | Lab/Ex | Jonathan | SCA Lab 3 | |
38 | 21/9 | Lab/Ex | Jonathan | SCA Lab 4 | |
39 | 26/9 | Lecture | Tjerand | Side-Channel Attacks 3 | Slides |
39 | 26/9 | Lab/Ex | Jonathan | SCA Lab 5 | |
39 | 28/9 | Lab/Ex | Jonathan | SCA Lab 6 | |
40 | 3/10 | Lecture | Jonathan | Side-Channel Attacks 4 | Slides |
40 | 3/10 | Lab/Ex | Jonathan | SCA Lab 7 | |
40 | 5/10 | Lab/Ex | Jonathan | SCA Lab 8 | |
41 | |||||
41 | |||||
41 | 12/10 | Lecture | Tjerand | Protocols APIs | Slides |
42 | 17/10 | Lecture | Tjerand | Padding Oracles 1 | Slides |
42 | 17/10 | Lab/Ex | Jonathan | API and Padding Exercises | |
42 | 19/10 | Lecture | Tjerand | Padding Oracles 2 | Slides |
43 | 24/10 | Lecture | Tjerand | Commitments and Zero-Knowledge | Slides |
43 | 24/10 | Lab/Ex | Jonathan | Com + ZK Exercises | |
43 | 26/10 | Lecture | Jonathan | Protocol Composition 1 | Slides |
44 | 31/10 | Lecture | Tjerand | Protocol Composition 2 | Slides |
44 | 31/10 | Lab/Ex | Jonathan | Composition Exercises 1 | |
44 | 2/11 | Lab/Ex | Jonathan | Composition Exercises 2 | |
45 | 7/11 | Lecture | Tjerand | Protocol Composition 3 | Slides |
45 | 7/11 | Lab/Ex | Jonathan | Assignments | Slides |
45 | 9/11 | Lecture | Tjerand | Course Summary | Slides |
46 | 14/11 | Lecture | Tjerand | Guest Lecture: Håkon Jacobsen | Slides |
46 | 14/11 | Lab/Ex | Tjerand | Assignments | |
46 | 16/11 | Lecture | Tjerand | Guest Lecture: Oskar Goldhahn | Slides |
47 | 21/11 | Projects | Tjerand | Presentations + Assigments | |
47 | 21/11 | Lecture | Tjerand | Guest Lecture: Vadim Lyubashevsky | Slides |
47 | 23/11 | Projects | Tjerand | Project Presentations | |
47 | 23/11 | Office | Tjerand | Office Hours in B225 from 16-18 | B225 in Mazemap |
48 | 28/11 | Office | Jonathan | Office Hours on Zoom from 12-16 | |
48 | 30/11 | Office | Jonathan | Office Hours on Zoom from 10-12 |