Seats Available: n/a
Overview
This course first presents the main concepts of modern cryptography, such as authentication, confidentiality and symmetric/asymmetric cryptography. Then it details the most essential cryptographic primitives.
Who Should Attend
Anyone interested in cryptography and wanting to learn its core principle is welcome. The course is designed as an introduction to cryptology and is mainly addressed to novices in that field.
Key Learning Objectives
Prerequisite Knowledge
Know how to use a command-line shell on a GNU/Linux distribution. Attendees should also have basic knowledge in a programming language.
Hardware / Software Requirements
Some practical work needs a computer: exercises are given initially in Python, but attendees may use any coding language to their convenience. It is advised to install the program SageMath, but not mandatory as there is an online version that can be used.
Agenda
Day 1
* intro, historical crypto
* main notions: confidentiality and authentication, symmetric and asymmetric crypto
* symmetric crypto: stream and block ciphers, detailed algorithms, modes => exercises on different modes of aes (detection of ecb mode for example), different modes of aes with a null IV
* asymmetric crypto: RSA, El Gamal => exercise: detail a public key certificate, practical work with sage to understand RSA
Day 2
* authentication of messages
* hash functions: modes, algorithms
* MAC => exercises: different modes (ECB, CBC, …) used as MAC
* signatures: RSA, DSS => exercises: DSA with constant alea
* practical work with sage: elliptic curves