We introduce the core concepts of modern cryptography, with a specific focus on the mathematical and algorithmic aspects. Historical problems and constructions will be discussed and serve as a basis for the introduction of the core security notions and cryptographic mechanisms that are in use to day, as well as for the development of methods for justifying the security of these mechanisms. The contents may include:
- Information theoretic cryptography, perfect encryption.
- Probabilistic algorithms, computational security, attacker models, elaboration of security proofs in cryptography.
- Symmetric encryption: security definitions, basis constructions, block ciphers (AES, DES), cryptanalysis, operation modes.
- Authentication codes, hash functions.
- Asymmetric cryptography: Diffie-Hellman protocol, public key encryption (ElGamal, RSA, ...), signature (Schnorr, DSA/DSS, RSA hash-and-sign, ...), public key infrastructures.
- Basic algorithmic number theory (modular arithmetic, primality testing, elliptic curves)
- Protocols: challenge-response, identification, authentication, zero-knowledge
- Standards and norms: discussion, practical concerns,
The balance between the various parts can vary from one year to another.
The class is organised around lectures and exercise sessions.
A specific attention is placed on the links between the theoretical concepts introduced in the class and the practical applications of cryptography.
The evaluation is based on a written examination.
Answers can be provided in English or in French.
J. Katz et Y. Lindell, Introduction to Modern Cryptography, (Chapman and Hall/CRC Press).
More references are available on Moodle.