[Fall 2020]

This is an online course.

Please refer to the course homepage http://hyperelliptic.org/tanja/teaching/crypto20/ for all relevant information. This page is only an excerpt and will not be updated.

This version of the course runs as a semester-long course based on the video lectures of 2MMC10, a course offered at TU/e. The homework submission dates are adjusted accordingly.

Please note, mathematics students at TU/e cannot take this course as a Mastermath course.

Algebra (knowledge of groups, rings, fields, finite fields). These will not be presented as part of the course. Please check that your knowledge includes the following "Number Theory and Algebra" script https://hyperelliptic.org/tanja/teaching/cryptoI13/nt.pdf


  • The general structure of block ciphers, Feistel ciphers like DES, AES, the most suitable modes-of-use, e.g. CBC or OFB.
  • The principle of public key cryptography
  • Diffie-Hellman key exchange, El Gamal, several methods to compute discrete logarithms (baby-step giant-step method, the Pohlig-Hellman method, Pollard-rho and the index calculus method).
  • Elliptic curves in different representations, cryptosystems and signature schemes based on elliptiic cures.
  • The RSA system for encryption and signing, generating prime numbers by means of probabilistic primality tests, primality proof, several factorisation algorithms (Pollard-(p-1), Pollard-rho, the random square method, the quadratic sieve method) lattice methods for breaking special keys.
  • Hash functions, Message Authentication Codes.
  • Code-based cryptography.

The course homepage will link to the video lectures and homework sheets.

Tanja Lange