Sécurité des implémentations pour la cryptographie
Homepage
Research
Teaching
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
- 1/2 open questions regarding the course topics (on Moodle)
- 1/2 on lab sessions (at least one report)
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.
- You are allowed to open serial port to communicate with USB devices.
- Python 3 is installed with its package serial, numpy and matplotlib.
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