Introduction
Cryptology is concerned with realising the impossible, namely securing information in open networks. This includes ensuring
- confidentiality of messages,
- integrity of messages,
- authenticity of principals.
The course gives an introduction to cryptology, from its history to its use in modern computer systems. While the lectures are self-contained, some familiarity with basic algebra (Z/NZ, finite fields, cf. MAT552), networking (cf. INF557) and information theory (cf. INF558) is highly recommended.
To each lecture corresponds a TD, in which you apply the learnt concepts by implementing them on your laptop, e.g. in Python, C/C++, or Java.
Be sure to have a version of Python 2.7* (not 3.*) installed on your laptop, starting the very first lab on 2014/01/10.
The course is validated by an oral examination. Bonus points can be added if some reading of an article or a programming project is carried out and presented. Moreover, many topics can be at the heart of INF581 (module d'approfondissement en laboratoire).