- This lab introduces some technical tools that are available when doing security by design, such as: Cryptographic implementation; protocols for authentication and secure communications; formal modelling and proofs of security in the computational setting.
- It aims to teach adversarial thinking: Be skeptical about everything you are told about how a system works, analyse the system components individually and in concert, find the hidden dependencies between the components, and find non-obvious crucial system components.
- Module 1: Implementation of eliptic curve cryptography (ECC) primitives, and cryptanalysis of ECDSA with fully and partially leaked nonces
- Module 2: Implementation of SIGMA protocol, implementation of TLS 1.3 protocol with PSKs and session resumption
- Module 3: Cryptographic reductions
- Module 4: Exploitation of Trusted Execution Environments
- Module 5: Runtime attacks
Detailed explanations of each task can be found in the PDFs inside the module folders.