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:
Shreyansh Swami (shreyans), mscybsure
Dóra Békei (dorabe), exchange student
Elise Hetlesæther (elisehet), bdigsec
Akshit Dutta (akshitd), mstcnns
Reference group meetings:
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 .
The lectures are not recorded, but each lecture in the lecture plan below links to selected talks, podcasts, and blog posts
that cover the same topics, often presented by the researchers behind the results discussed in the slides.
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".
Week
Date
Format
Responsible
Topic
Resources
34
18/8
Lecture x2
Tjerand
Intro + From Enigma to Crypto Wars
Slides: Lecture 1 (PDF) Slides: Lecture 2 (PDF) Talk: Crypto War II (Blaze, HOPE 2016) Talk: Keys Under Doormats (Rivest, Enigma) Video: Inside an Enigma Machine (Grime) Podcast: Crypto Wars (Darknet Diaries) Blog: A History of Backdoors (Green) Blog: Remarks on "Chat Control" (Green)
34
21/8
Lecture
Tjerand
Randomness 1: Entropy
Slides: Lecture 3 (PDF) Video: Random Numbers (Numberphile) Talk: Linux Kernel RNG (Donenfeld, LPC) Talk: Reality of Entropy (Valsorda, 32C3) Talk: PCG PRNGs (O'Neill, Stanford) Blog: The Random Oracle Model (Green) Blog: Is Your RNG Working? (Green)
35
25/8
Lecture
Tjerand
Randomness 2: Breaking ECDSA
Slides: Lecture 4 (PDF) Talk: ECCHacks (Bernstein, Lange, 31C3) Talk: Biased Nonce Sense (Heninger, WAC) Talk: LadderLeak (Aranha, Takahashi, WAC) Talk: HNP Lattice Barrier (Heninger, NTT) Blog: ECDSA: Handle with Care (ToB)
35
25/8
Exercises
Jo/Thomas
Exercise Class
35
28/8
Lecture
Tjerand
Randomness 3: Randomization
Slides: Lecture 5 (PDF) Talk: Mining Your Ps and Qs (USENIX 2012) Podcast: Roll Your Own Crypto? (SCW) Blog: Attack of the Week: FREAK (Green) Blog: Attack of the Week: DUHK (Green)
36
1/9
Lecture
Tjerand
Legacy Crypto and Attacks on TLS
Slides: Lecture 6 (PDF) Talk: Logjam (Halderman, Heninger, 32C3) Talk: Micali-Schnorr Backdoor (RWC 2023) Podcast: Dual EC with Matt Green (SCW) Blog: The Many Flaws of Dual EC (Green) Blog: Attack of the Week: Logjam (Green)
36
1/9
Exercises
Jo/Thomas
Exercise Class
36
4/9
Lecture
Tjerand
Padding Oracles 1: CBC and SHA
Slides: Lecture 7 (PDF) Video: CBC Padding Oracle (Cryptopals) Talk: SHA-3 vs The World (Wong, DEF CON) Blog: Lucky 13 Timing Oracles (Green) Blog: Attack of the Week: POODLE (Green)
37
8/9
Lecture
Tjerand
Padding Oracles 2: RSA Encryption
Slides: Lecture 8 (PDF) Video: Bleichenbacher Attack (Wong) Talk: ROBOT (Böck et al., USENIX 2018) Blog: Padding Oracles on Tokens (Green) Blog: CCA Security in PKE (Green)
37
8/9
Exercises
Jo/Thomas
Exercise Class
37
11/9
Lecture
Tjerand
Side-Channel Attack (SCA): Intro
Slides: Lecture 9 (PDF) Talk: Keynote (Paul Kocher, USENIX 2018) Talk: Cheapskate Revolution (O'Flynn) Video: Timing Attack Demo (Joe Grand) Podcast: Side Channels, Nate Lawson (SCW)
38
15/9
Lab Lecture
Caroline
SCA ChipWhisperer Lab Tutorial
Slides: Lecture 10 (PDF) Talk: Cheapskate Power Analysis (O'Flynn) Video: ChipWhisperer Attacks (O'Flynn)
38
15/9
Lab
Jo/Thomas
SCA Lab
38
18/9
Lecture
Tjerand
SCA on Symmetric Key Crypto
Slides: Lecture 11 (PDF) Lecture: Intro to Power Analysis (O'Flynn) Talk: Flush+Reload (Yarom, USENIX 2014) Video: Power Analysis in 120s (CHES 2013)
39
22/9
Lab x2
Thomas
SCA Lab (4 hours)
39
25/9
Lecture
Tjerand
SCA on Public Key Crypto
Slides: Lecture 12 (PDF) Talk: Big Numbers, Big Troubles (USENIX) Talk: TPM-FAIL (Moghimi, WAC 2020) Talk: CacheBleed on RSA (Yarom, CHES 2016)
40
29/9
Lab x2
Jo/Thomas
SCA Lab (4 hours)
40
2/10
Lecture
Tjerand
Quantum-Safe Encryption
Slides: Lecture 13 (PDF) Talk: Kyber (Schwabe, RWPQC 2023) Talk: Kyber and PQC (rC3 2021) Talk: Quantum Computing (Jaques, PQCrypto) Talk: PQ Security (Aumasson, NoNameCon) Blog: Chen's Quantum Algorithm (Green)
41
6/10
Lab x2
Jo/Thomas
SCA Lab (4 hours)
41
9/10
Lecture
Tjerand
Quantum-Safe Signatures
Slides: Lecture 14 (PDF) Talk: Dilithium (Lyubashevsky, RWPQC) Talk: Falcon (Prest, RWPQC 2023) Talk: SPHINCS+ (Hülsing, RWPQC 2023) Talk: Additional Signatures (NIST Seminar) Blog: Hash-Based Signatures Primer (Green)
42
13/10
Lab x2
Jo/Thomas
SCA Lab (4 hours)
42
16/10
Lecture
Tjerand
SCA on Quantum-Safe Crypto
Slides: Lecture 15 (PDF) Panel: PQC Side Channels (RWPQC 2023) Talk: Hedged Fiat-Shamir (Eurocrypt 2020) Talk: Raccoon (Prest, Oxford PQC Summit) Podcast: High-Assurance PQ Crypto (SCW)
43
20/10
Lecture
Tjerand
Crypto API Failures
Slides: Lecture 16 (PDF) Talk: Threshold Schnorr (Komlo) Talk: Bugs in MPC Wallets (Black Hat 2020) Talk: Small Subgroup Attacks (NDSS 2017) Podcast: Tink with Sophie Schmieg (SCW) Blog: To Schnorr and Beyond (Green)
43
20/10
Exercises
Jo/Thomas
Exercise Class
43
23/10
No Lecture
44
27/10
Guest Lecture
Guest Lecture: Diego F. Aranha
Slides: Guest Lecture (PDF)
44
27/10
Exercises
Jo/Thomas
Exercise Class
44
30/10
Lecture
Tjerand
Commitments and Zero-Knowledge
Slides: Lecture 17 (PDF) Video: What is Zero Knowledge? (Wong) Video: What is a SNARK? (Boneh) Talk: Weak Fiat-Shamir (IEEE S&P 2023) Talk: ZKP Security (Aumasson) Blog: ZK Proofs Illustrated (Green) Blog: Proving False Statements (Green)
45
3/11
Lecture
Tjerand
Protocol Composition
Slides: Lecture 18 (PDF) Talk: Attacks on Telegram (S&P 2022) Talk: Lessons From Threema (USENIX 2023) Talk: Breaking MEGA (Haller, RWC 2023) Podcast: E2EE Storage Done Right (SCW) Blog: Is Telegram Encrypted? (Green) Blog: What's the Matter with PGP? (Green)
45
3/11
Exercises
Jo/Thomas
Exercise Class
45
6/11
Lecture
Tjerand
Course Summary
Slides: Lecture 19 (PDF)
46
10/11
Presentations
Project Presentations
46
10/11
Exercises
Jo/Thomas
Exercise Class (3 hours)
46
13/11
Presentations
Project Presentations
47
17/11
Exercises x2
Jo/Thomas
Exercise Class (4 hours)
47
20/11
Presentations
Project Presentations