Sécurité des implémentations pour la cryptographie
Homepage Research Teaching francais
Class introduction

Cryptography is the cornerstone of digital security. Its use allows us to build complex systems which security relies on well-known difficult problems.

However those proofs, obtained in theoretic models, can be undermined by actual implementations. Bad configurations, coding errors or side-channel information can threaten the security of systems even if they are cryptographically proven secure.

This class aims at underlining the complexity of correctly using cryptography in real life. Different cryptographic implementation vulnerabilities are presented together with good practices that can limit them. To this goal, all aspects of a secure system design are addressed. It starts from the system level and goes down to the tricky details of cryptographic primitive implementations.

Some introductive slides.

Printable version of the class slides.

Evaluation

The final grade will be based on

Lab

In order to be able to enjoy the lab please ensure that you have access to a desktop/laptop that fulfills the following requirements.

CM 1 (29.09.2022)
System requirements and architecture (slides).
CM 2 (29.09.2022)
Product interface and architecture (slides).
CM 3 (06.10.2022)
Non-cryptographic security (slides).
CM 4 (06.10.2022)
Remote security (slides).
CM 5 (13.10.2022)
Local (noninvasive) security (slides).
CM 6 (10.11.2022)
Local (invasive) security (slides).
TP 0 (13.10.2022)
Test and verification of target devices
Lab sessions will be based on two target devices that will be plugged via USB. This lab session aims at checking that everything works correctly and start to get used to the interface.
TP 1 (G1: 10.11.2022 , G2: 20.10.2022)
API: black box analysis
TP 2 (G1: 17.11.2022 , G2: 27.10.2022)
API: black box attacks
TP 3 (G1: 17.11.2022 , G2: 27.10.2022)
API: white box attacks
TP 4 (G1: 24.11.2022 , G2: 10.11.2022)
PIN: timing attack
TP 5 (G1: 24.11.2022 , G2: 17.11.2022)
PIN: side-channel timing attack and constant time
TP 6 (G1: 01.12.2022 , G2: 24.11.2022)
DPA: preliminary observations
TP 7 (G1: 01.12.2022 , G2: 01.12.2022)
DPA: attacking STM32F3
TP 8 (G1: 08.12.2022 , G2: 08.12.2022)
CPA: preliminary observations
TP 9 (G1: 08.12.2022 , G2: 15.12.2022)
CPA: attacking STM32F3