TTM4205

This will be 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 1st at 23:59.

The problems are available here: PDF (updated 27/9)

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:

Special Topics Lectures in November:

  1. Tuesday 14/11: Speaker(s) and title(s) to be announced…
  2. Thursday 16/11: Oskar Goldhahn & Morten Solberg (NTNU). Titles TBA.
  3. Tuesday 21/11: Håkon Jacobsen (Thales Norway). Title TBA.

(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  
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 1  
41 10/10 Lab/Ex Tjerand Protocol API Exercises  
41 12/10 Lecture Tjerand Protocols APIs 2  
42 17/10 Lecture Tjerand Padding Oracles 1  
42 17/10 Lab/Ex Jonathan Padding Exercises  
42 19/10 Lecture Tjerand Padding Oracles 2  
43 24/10 Lecture Tjerand Commitments and Zero-Knowledge  
43 24/10 Lab/Ex Jonathan Com + ZK Exercises  
43 26/10 Lecture Jonathan Protocol Composition 1  
44 31/10 Lecture Tjerand Protocol Composition 2  
44 31/10 Lab/Ex Jonathan Composition Exercises 1  
44 2/11 Lecture Tjerand Protocol Composition 3  
45 7/11 Lecture Tjerand Protocol Composition 4  
45 7/11 Lab/Ex Jonathan Assignments  
45 9/11 Lecture Tjerand Course Summary  
46 14/11 Lecture Tjerand Special Topics Lecture 1  
46 14/11 Lab/Ex Jonathan Assignments  
46 16/11 Lecture Tjerand Special Topics Lecture 2  
47 21/11 Lecture Jonathan Special Topics Lecture 3  
47 21/11 Lab/Ex Jonathan Assigments  
47 23/11 Lecture Tjerand Project Presentations