The following calendar will be populated with links to worksheets, videos, and activities, so you can catch up on anything you’ve missed and revisit important material.

Daily post solutions:  Aug 29, Aug 31Sept 2,  Sept 7, Sept 9, Sep 12, Sep 21, Sept 23.

Monday, August 22nd, 2022:

  • We did an overview of the course today, including briefly Caesar cipher, Vigenere cipher, ADFGVX cipher, enigma, notions of keyspace, cryptanalysis, notions of public-key cryptography, Diffie-Hellman Key Exchange, hard cryptographic problems and quantum aspects.  All these topics will be revisited in detail.
  • Presentation slides here.
  • Course videos can be viewed on canvas (give time for uploading).  Today’s video is also available here.

Wednesday, August 24th, 2022:

  • We defined modular arithmetic and used it to formalize Caesar and affine cipher.
  • Lecture notes are here.
  • I forgot to record the lecture after all that (duh! sorry…)

Friday, August 26th, 2022:

  • We discussed the multiplicative inverse in modular arithmetic, used it to find the decryption key to an affine cipher, and proved that there’s at most one multiplicative inverse.  We discussed the intuition and conjecture that the inverse of $a \pmod n$ exists if and only if $\gcd(a,n)=1$.  (We’ll prove that next class.)
  • Lecture notes are here.
  • The lecture recording is on canvas.

Monday, August 29th, 2022:

  • We proved that the inverse of $a \pmod n$ exists if and only if $\gcd(a,n)=1$.   We discussed how to compute the set of invertible elements and its cardinality, and talked about Hill cipher.
  • Lecture notes are here.
  • The lecture recording is on canvas.

Wednesday, August 31st, 2022:

  • We defined the multiplicative order of an element, showed that it exists if and only if the element is invertible, and then proved Euler’s theorem and Fermat’s Little Theorem.  At the end of class, our TA Joe Macula did some example problems.
  • Lecture notes are here (not including Joe’s part).
  • The lecture recording is on canvas.

Friday, September 2nd, 2022:

Wednesday, September 7th, 2022:

  • We reviewed Diffie-Hellman Key Exchange in practice, and discussed Big-Oh notation and the beginning of runtimes.
  • Computer demo from class: Big Oh Notation.
  • Lecture notes are here.
  • The lecture recording is on canvas.

Friday, September 9th, 2022:

  • We discussed homework.  We finished talking about runtimes (polynomial, subexponential and exponential).  We analysed the runtime of modular exponentiation.  We introduced notation for the discrete logarithm and covered the Baby-Step Giant Step algorithm.
  • Lecture notes from class.
  • Runtimes computer demo.
  • Video is up on canvas.

Monday, September 12th, 2022:

  • We discussed an example of Baby-Step-Giant-Step and discussed its runtime, then introduced the index calculus.  We did an ill-fated example of index calculus, and then discussed the Logjam attack.  I reminded students they can ask for extra help on proofs and that we have a test on Friday.
  • Nice video example of index calculus (to replace the one from class that was messy).
  • Lecture notes from class consist of two lecture screenshots  and the replacement example.
  • Video on canvas.

Wednesday, September 14th, 2022:

  • We discussed the runtime of the index calculus, and the ElGamal encryption system.
  • Lecture notes here.
  • Video on canvas.

Friday, September 16th, 2022:

  • Module 2 Assesment

Monday, September 19th, 2022:

  • We covered the Euclidean algorithm and extended euclidean algorithm.
  • Lecture notes are here.
  • Video on canvas soon.

Wednesday, September 21st, 2022:

  • This was a Sage workshop day in class.
  • No notes or video.
  • The Sage workshop can be accessed on with your identikey, and can also be downloaded as a worksheet from the Notes/Resources page (top bar of this site).

Friday, September 23rd, 2022:

  • We covered the Chinese Remainder Theorem, including proof and an example, as well as intuition.
  • Notes are here.
  • Video will be on canvas (I forgot the first few minutes)