In Spring 2020, the COVID semester, I was taking MATH 601: Cryptography that was at the time taught by Emily Witt. Probably one of the hardest undergraduate courses I ever had to take! And definitely the one I enjoyed the most. We basically covered a big chunk of Group and Ring theory as background material during our first week. I just learned the material for my separate Group Theory class from Professor Witt in a week. Fun!

Essential part of the course was us writing code to run some basic algorithms (greatest common divisor, extended euclidean algorithm, chinese remainder theorem) and not-so-basic (William’s p+1 algorithm, Pollard’s p-1 algorithm, Lenstra elliptic-curve factorization, etc.). After we were done with the course during the 2020 pandemic, I decided to release some code snippets I wrote during the course. The files are heavily commented but not properly documented (I should probably find some time for that)