TTM4205

This was 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:

Reference group meetings:

Piazza Forum

We will use Piazza as a forum in this course.
Go to piazza.com/ntnu.no/fall2023/ttm4205.
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:

  1. Serious Cryptography by Jean-Philippe Aumasson at akademika.no
  2. Real-World Cryptography by David Wong at akademika.no
  3. The Hardware Hacking Handbook by Jasper van Woudenberg and Colin O’Flynn at akademika.no

Additional great resources in applied cryptography are:

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:

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:

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)

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:

Guest Lectures in November:

  1. Tuesday 14/11: Håkon Jacobsen (Thales Norway) on “FPGAs and Cryptography”
  2. Thursday 16/11: Oskar Goldhahn (IMF, NTNU) on “Formal Verification”
  3. 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 10/10 Lecture Tjerand Protocol APIs  
41 10/10 Lab/Ex Tjerand Protocol Exercises  
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