For Friday, Dec 2nd, 2022:

For Fri:

  1. Don’t forget FCQs are open!  I really appreciate your feedback and read them very carefully.
  2. There were a lot of administrative announcements in yesterday’s daily, you might want to review them.
  3. Compare your last daily to the solutions.
  4. I have intentionally NEVER done this all semester, but I had ten more minutes of riveting information to share about lattice-based cryptography, so I made a bonus 10-minute video.  (I’ve allowed myself this luxury because I really don’t want to delay coding theory.)  Watch it here.  The lecture notes include this material.
  5. A Ring-LWE ciphertext chain!  You may want to review the course video on canvas and I’ve made careful overleaf notes.  Here’s what you’ll need:
      • Our general setup with be the prime p = 100003 and n=8.  We will use l=10.  This will allow us enough room for each coefficient to hold one letter from the text-to-integer-to-text tools.  Because there are 8 coefficients, you can store 8 letters.
      • Answer the question “what’s the best part of crypto?” in 8 letters or less, and store it as an element of the ring $R_p$ using one letter per coefficient (coefficient of $x^7$ is the first letter, coefficient of $x^6$ is the second letter, etc.).  This will be your message.
      • At the Ring-LWE Tools page you’ll see how to initialize the polynomial ring, and you’ll have two functions that generate short and random elements.  In our case, “short” means coefficients from {-1,0,1}.
      • First, generate your own private/public key pair and post the public key (g,B) on the discord #ciphertexts channel.  Keep your secret key for later (e.g. in a text file).  Important note:  discord normally interprets asterisks and stuff in special ways; to make it easier on everyone, surround your polynomials with backticks ` when pasting into discord, and it will post it verbatim.  This will make cutting-and-pasting to/from Sage easier.
      • Now, encrypt your message to the most recent unused public key on the #ciphertexts channel.  Post your message (K,C) on the #ciphertexts channel and mention the appropriate person.
      • Wait until someone sends you a message.  When this happens, decrypt it using your secret key, and announce their favourite part of crypto on #ciphertexts, mentioning them so they can confirm.
      • Post your record of the events/computations to the canvas dropbox.