TTM4205¶
This is the official course website for TTM4205 Secure Cryptographic Implementations during Fall of 2026.
This course was taught for the first time during the fall semester of 2023. You can find the course material, assignments,
and student evaluations from earlier semesters in the menu, and the grade distribution at karakterer.net/course/TTM4205.
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
Teaching Assistant: Jo Remvik
Contact: jo.v.remvik@ntnu.no
Teaching Assistant: Thomas Houillier
Contact: tbhouill@stud.ntnu.no
Forum¶
We use the discussion forum on Canvas in this course. Enrolled students automatically have access to the pages.
Please ask all questions regarding practicalities, the course content, and the assignments to the course staff there.
Reference Group¶
The reference group consist of the following members (to be updated):
- Shreyansh Swami (shreyans), mscybsure
Dates for meetings will be announced later, and minutes will be shared.
Course Materials¶
The course materials are the lecture slides, references therein, and the assignments.
We do not require that you buy any books, but recommend the following literature:
- Serious Cryptography by Jean-Philippe Aumasson at akademika.no
- Real-World Cryptography by David Wong 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
- Introduction to Modern Cryptography by Jonathan Katz and Yehuda Lindell at akademika.no
- The Hardware Hacking Handbook by Jasper van Woudenberg and Colin O'Flynn at akademika.no
Some of these books, and more, are available in the CRYPTO-LAB located in Electro A175.
Portfolio Assignment¶
The evaluation in this course consists of three assignments of 100 points total and must be submitted via Canvas.
Weekly Problems (40 points)¶
This assignment is individual and contains the following kinds of problems:
- Mathematical problems
- Coding problems
- CryptoHack problems
The assignment is available here: TTM4205 Weekly Problems.
The submission deadline is December 4th at 23:59.
ChipWhisperer Lab (30 points)¶
This is a group assignment and contains side-channel attack lab work using the ChipWhisperer Husky equipment, which
we will provide to all students who signed up for the course. You have access to the CRYPTO-LAB located in Electro A175
to work on the assignment. Each group has to consist of 2 or 3 students and the report must be written in LaTeX.
The assignment is available here: TTM4205 ChipWhisperer Lab.
The submission deadline is December 4th at 23:59.
Technical Essay (30 points)¶
This is a group assignment to write a technical essay about a topic not covered by the lectures or to cover a topic from the
lectures in more depth. It is mandatory for each group to present their work, but it does not count towards the final grade.
Most important guidelines:
- Groups of 2 or 3 students each
- Should be of roughly 8 to 10 pages
- Must be written in LaTeX
- Short oral presentations
The assignment is available here: TTM4205 Technical Essay.
Deadlines:
- Topic/scope/group approval on October 30th at 23:59.
- Short oral presentations on November 10th, 13th, or 20th
- Final submission deadline on December 18th at 23:59.
Grading¶
We will use the official NTNU grading scale to assign combined grades.
Lecture Plan¶
We have the following sessions this semester, starting Tuesday August 18th:
- Tuesdays at 12:15-14:00 in H2: Lecture OR Lab
- Tuesdays at 14:15-16:00 in H2: Exercises OR Lab
- Fridays at 12:15-14:00 in R10: Lecture
SCA ChipWhisperer Lab Tutorial on September 15th: Caroline Sandsbråten (PhD student at NTNU).
Guest lecture on October 27th: Diego F. Aranha (Aarhus University). Title: "Running a Systems Security course for fun, not profit".
(the schedule is a draft and subject to changes)
| Week | Date | Format | Responsible | Topic | Resources |
|---|---|---|---|---|---|
| 34 | 18/8 | Lecture x2 | Tjerand | Intro + From Enigma to Crypto Wars | Lecture 1 and Lecture 2 |
| 34 | 21/8 | Lecture | Tjerand | Randomness 1: Entropy | Lecture 3 |
| 35 | 25/8 | Lecture | Tjerand | Randomness 2: Breaking ECDSA | |
| 35 | 25/8 | Exercises | Jo/Thomas | Exercise Class | |
| 35 | 28/8 | Lecture | Tjerand | Randomness 3: Randomization | |
| 36 | 1/9 | Lecture | Tjerand | Legacy Crypto and Attacks on TLS | |
| 36 | 1/9 | Exercises | Jo/Thomas | Exercise Class | |
| 36 | 4/9 | Lecture | Tjerand | Padding Oracles 1: CBC and SHA | |
| 37 | 8/9 | Lecture | Tjerand | Padding Oracles 2: RSA Encryption | |
| 37 | 8/9 | Exercises | Jo/Thomas | Exercise Class | |
| 37 | 11/9 | Lecture | Tjerand | Side-Channel Attack (SCA): Intro | |
| 38 | 15/9 | Lab Lecture | Caroline | SCA ChipWhisperer Lab Tutorial | |
| 38 | 15/9 | Lab | Jo/Thomas | SCA Lab | |
| 38 | 18/9 | Lecture | Tjerand | SCA on Symmetric Key Crypto | |
| 39 | 22/9 | Lab x2 | Jo/Thomas | SCA Lab (4 hours) | |
| 39 | 25/9 | Lecture | Tjerand | SCA on Public Key Crypto | |
| 40 | 29/9 | Lab x2 | Jo/Thomas | SCA Lab (4 hours) | |
| 40 | 2/10 | Lecture | Tjerand | Quantum-Safe Encryption | |
| 41 | 6/10 | Lab x2 | Jo/Thomas | SCA Lab (4 hours) | |
| 41 | 9/10 | Lecture | Tjerand | Quantum-Safe Signatures | |
| 42 | 13/10 | Lab x2 | Jo/Thomas | SCA Lab (4 hours) | |
| 42 | 16/10 | Lecture | Tjerand | SCA on Quantum-Safe Crypto | |
| 43 | 20/10 | Lecture | Tjerand | Crypto API Failures | |
| 43 | 20/10 | Exercises | Jo/Thomas | Exercise Class | |
| 43 | 23/10 | No Lecture | |||
| 44 | 27/10 | Guest Lecture | Guest Lecture: Diego F. Aranha | ||
| 44 | 27/10 | Exercises | Jo/Thomas | Exercise Class | |
| 44 | 30/10 | Lecture | Tjerand | Commitments and Zero-Knowledge | |
| 45 | 3/11 | Lecture | Tjerand | Protocol Composition | |
| 45 | 3/11 | Exercises | Jo/Thomas | Exercise Class | |
| 45 | 6/11 | Lecture | Tjerand | Course Summary | |
| 46 | 10/11 | Presentations | Project Presentations | ||
| 46 | 10/11 | Exercises | Jo/Thomas | Exercise Class | |
| 46 | 13/11 | Presentations | Project Presentations | ||
| 47 | 17/11 | Exercises x2 | Jo/Thomas | Exercise Class (4 hours) | |
| 47 | 20/11 | Presentations | Project Presentations |