TTM4205¶
This is the official course website for TTM4205 Secure Cryptographic Implementations during Fall of 2023.
Course Description¶
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.
Course Staff¶
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
Reference Group¶
The reference group consist of the following members:
- Nimer Amol Singh from MSSECCLO
- Espen Sund from MSMNFMA
- Diderik Kramer from MSTCNNS
- Simen Urnes from MTKOM
Reference group meetings:
Piazza Forum¶
We will use Piazza as a forum in this course.
Go to piazza.com/ntnu.no/fallgttm4205.
The sign-up code is: 3dnp6nmmz59
Course materials¶
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:
- Serious Cryptography by Jean-Philippe Aumasson at akademika.no
- Real-World Cryptography by David Wong at akademika.no
- The Hardware Hacking Handbook by Jasper van Woudenberg and Colin O'Flynn at akademika.no
Additional great resources in applied cryptography are:
- A Graduate Course in Applied Cryptography by Dan Boneh and Victor Shoup at toc.cryptobook.us (freely available)
- Introduction to Modern Cryptography by Jonathan Katz and Yehud Lindell at akademika.no or NTNU University Library
Portfolio Assignment¶
The evaluation in this course will consist of two assignments of 100 points total.
Weekly problems (40 points)¶
This assignment will contain the following kind of problems:
- Pen & paper problems
- Coding problems
- CryptoHack problems
- ChipWhisperer labs
The submission deadline is December 10th at 23:59.
The problems are available here: PDF (updated 23/11)
Special Topic Project (60 points)¶
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:
- Groups of 1-3 members
- Papers of 10-20 pages
- Papers written in LaTeX
- Short oral presentations
Deadlines:
- Topic/scope/roup approval: November 1st
- Short oral presentations: November 23rd
- Draft submission for feedback: November 23rd
- Receive feedback on draft: December 1st
- Final submission: December 22nd at 23:59.
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)
Grading¶
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.
Lecture Plan¶
We have the following sessions this semester:
- Tuesdays at 12:15-14:00 in R92: Lectures
- Tuesdays at 14:15-16:00 in R92: Lab Session/Exercises
- Thursdays at 10:15-12:00 in B3: Lecture OR Lab/Exercises
Guest Lectures in November:
- Tuesday 14/11: Håkon Jacobsen (Thales Norway) on "FPGAs and Cryptography"
- Thursday 16/11: Oskar Goldhahn (IMF, NTNU) on "Formal Verification"
- Tuesday 21/11 at 15-16 in G1: Vadim Lyubashevsky (IBM Zurich) on "Post-Quantum Crypto"
(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 | |
| 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 |