Creating a Cryptography Lecture

Most of my major classes followed the same format, weekly problem sets or programming assignments with some number of midterms and a final exam. However, MATH 187B: The Math of Modern Cryptography, took a different approach with its final, requiring us to research the final lecture topics and create our own 45-minute lectures and accompanying practice problems. The class was taught using Jupyter Notebooks and the SageMath library, so this project would also serve as a demonstration of what we learned and could create through the software. Being such a unique experience compared to the other classes I have taken so far, I wanted to take the time to document my workflow and highlight the ups and downs I went through along the way.

Given the choice of four topics; Shor’s Algorithm, Babai’s Algorithm, NTRU Digital Signatures, and Elliptic Curves over Non-prime Finite Fields, I opted for the latter. With algebra courses fresh in my memory and a strong interest in the number theory that’s repeatedly popped up across this and the previous class, I figured this would be a good opportunity to take a deeper dive into the subject in preparation for future number theory courses that I’m planning to take next year.

Though I had some background knowledge, the initial project topic was very broad with no clear structure beyond the lecture title. So, along with some conversation with the professor and other students on ideas for their respective projects, I started at the best place to truly begin any research journey turned rabbit hole, Wikipedia. An initial search didn’t get me much further than the page on Finite Fields, but further digging around some forums discussing the benefits of elliptic curve cryptography over binary fields over current prime fields began to stir ideas in my head and give direction to my project. So I sought out textbooks, publications, and blog articles to serve as the backbone of my lecture; a recap of fields and modular arithmetic, followed by an introduction of binary fields and their benefits and drawbacks compared to the prime fields we became familiar with throughout this class.

Since I could not assume any mathematical background beyond the course prerequisites and what we had learned in class so far, I decided to err on the side of caution, dedicating most of my lecture to summarizing the back half of my algebra class and connecting them to previous lectures and assignments. The review was not limited to the content of the lecture, as I also studied the documentation and integrated sections into my lecture which detailed how to create rings and fields, perform arithmetic, and create polynomial rings used to generate finite fields, all within SageMath. Striking a balance of speed and detail in the review section proved difficult however, since I wanted to establish a reasonable baseline for more the interesting, complex topics, without going into unnecessary detail that would only waste time. Regardless, with the groundwork established, I could build on the foundation to introduce non-prime fields, discuss their similar properties to prime fields, demonstrate how to create and use them in SageMath, and transition into the final section of the lecture on elliptic curve cryptography over binary fields.

However, more than the length of my lecture, another challenge that prevented me from further exploring elliptic curves and cryptography over binary fields was simply the lack of quality, reliable sources that I could learn from and synthesize into my own lecture, resulting in a somewhat abrupt end to the lecture. The applications and benefits of binary fields are relatively slim compared to current elliptic curve encryption systems, even from an optimist’s perspective. Both are similarly secure, they share many of the same vulnerabilities to quantum attacks, and there is an additional risk of human error when implementing a new system for small gains in efficiency. I wanted to end with a flashy demonstration that highlighted distinct benefits of binary fields over prime fields in cryptography, but what I found in my research simply did not support that.

After finishing the lecture, I moved to creating the exercises for this project. I still had zero clue as to what I was doing or what was required, so I referred back to previous assignments for inspiration, as well as my knowledge from tutoring to construct a segmented, yet comprehensive coding problem with an approachable difficulty curve. Wanting to tie back to the content of my lecture, I created a multipart problem, with the first two parts testing students’ knowledge with sage and ability to generate non-prime fields and extract properties of those fields. Both parts served as a base for the third, implementing the Diffie-Hellman encryption scheme with elliptic curves over a non-prime finite field.

For the presentation of our lectures, we were split into groups of three people all with different topics. During finals week, the three of us met to present our lectures to each other, exchange the practice problems we created, and give feedback on each presentation. While I respect the novel intention and outlook of this project, across all three of our projects, I found that we lacked proper direction both from the initial assignment specification and after seeking clarification. Reflecting on my own experience, I always struggled to nail down what exactly I wanted my project to become, or even what it should be. With most of the time spent researching and preparing my lecture, along with commitments from other classes, finding time to practice and time a 45-minute lecture was also a tall order. Overall, I can safely say that this lecture is a complete product that I am more than willing to put my name on and share with the world, but I will always wish for more time to further research and polish the presentation before calling it the best it could be. Of course, that is not the way the world works, so this project stands as a testament to my abilities to research, work, and compromise my ambitions with what is reasonable under time pressure.

To avoid the possibility of plagiarism, project files are only available to potential employers upon request.