Skip to content

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:

  1. Serious Cryptography by Jean-Philippe Aumasson at akademika.no
  2. 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