Maths Algebra Crypto and Number Theory Labs

Here are some labs and lecture notes run by Dr Nicolas Courtois at UCL in 2010-2020 as part of various modules UCL GA18 Cryptanalysis:, COMP 0058 AppliedCryptogrpahy, F2F SAGE Maths Refesher etc. The most recent teaching materials appear first.

  1. Most recent labs from 2020:
    • LabF0 on installing SAGE, modular arithmetic and groups.
  2. Some lecture notes for UCL GA18 Cryptanalysis:
  3. More recent 2019 UCL COMP0058 Applied Crypto and Cryptanalysis SAGE labs by Nicolas Courtois et al:
    • Lab00 on installing SAGE modular arithmetic and Finite Fields.
    • Lab01 and more Finite Fields and arithmetic.
    • Lab02 on polynomials, extension fields, and polynomial rings.
    • Lab03 on Bézout, modular inverses and Fermat factoring.
    • Lab04 on PK crypto, SCA on RSA, Rabin.
    • Lab05 on Elliptic Curves intro.
    • Lab06 on Elliptic Curves and Isogenies.
    • Lab07 on  Lagrange Interpolation, EC Diffie-Hellman and Elliptic Curve Factoring algorithm.
    • Old Lab3 on DL Attacks.
    • Old Lab4 on Lab 4 – LLL and Knapsacks.
    • Old Lab5 on Lab 5 – Index Calculus.
    • Old Lab7 on Coppersmith DL Attack.
    • Old Lab8 on Hidden Field Equations (HFE).
  4. Old 2017 or so GA18 Number Theory tutorials done UCL in Jan-March 2018 by Nicolas Courtois Jonathan  Bootle and Peter Spacek:
    • Lab0 on installing sage and basic modular arithmetic.
    • Lab1 on Introduction to SAGE Euclid and primality.
    • Lab2 on Algorithmic Number Theory and Fermat.
    • Lab3 on DL Attacks.
    • Lab4 on Lab 4 – LLL and Knapsacks.
    • Lab5 on Lab 5 – Index Calculus and SCA Attacks on RSA.
    • Lab6 on Elliptic Curves and Factoring.
    • Here is our tutorial on SNSF from 2017.
    • Lab7 on Coppersmith DL Attack.
    • Lab8 on Hidden Field Equations (HFE).
    • Our tutorial on TwoFace public key cryptosystems.
    • All in one file 2018 versions can be found here.
  5. Even older 2017 versions are here.
  6. Old 2016 tutorial on Index Calculus by Mary Maller questions/ answers.