Math 252: Mathematics of Public-Key Cryptography (Fall 2024)
This course concerns the mathematical problems underlying public-key ciphers and digital signatures, as well as algorithms to solve them. Topics may include discrete logarithms, integer factorization, elliptic curves, and lattices. These topics provide an appealing introduction to several topics in number theory, abstract algebra, and algorithms.
The course is designed for students with no prior experience in abstract algebra or programming. It serves as an introduction to those topics, meant to prepare students for more advanced courses. Students with prior experience are welcome, however.
You can find materials from previous offerings of this course here: 2023, 2022, 2020, 2019, 2016, 2015. The 2015 and 2016 courses, taught at Brown, were slightly different in style and emphasis.
Time and location
- Monday, Wednesday, and Friday, 1:00-1:50am in SMUD 207.
Help hours
- My office hours in SMUD 401 are:
- Tuesday 9:15-10:45
- Wednesday 9:15-10:45
- Friday 10:30-11:30
- Our math fellow (TA), Nathan Thomas, will have office hours at the following times.
- Monday 7:30-9:00 in SMUD 208
- Wednesday 6:00-7:30 in SMUD 208
Handouts
- Syllabus
- Desmos demo on elliptic curve addition
- Desmos demo on associativity of EC addition
Textbook and other links
- The course text is An Introduction to Mathematical Cryptography, 2nd edition.
- CS Circles python tutorial (most relevant sections for our purposes: 0 through 10 and 13, except 2X, 7A, and 8)
- Starter code and testing notebooks
- Jupyter/Gradescope tutorial video
- Boardwork from days I teach from a tablet
- Zoom link for any online office hours, classes, etc.
Homework
- Problem sets will be posted here. All problem sets are due at 10pm, on Gradescope.
- Gradescope instructions. Our course code is R7RZ4Z.
- Problem Set 1 (due F 9/13)
- Problem Set 2 (due F 9/20)
- Problem Set 3 (due W 9/25)
- Problem Set 4 (due W 10/2)
- Problem Set 5 (due W 10/9)
- (Problem Set 6 will not be due until after the Midterm exam)
- Problem Set 6 (due W 10/23)
- Problem Set 7 (due W 10/30)
- Problem Set 8 (due W 11/6)
- Problem Set 9 (due W 11/13)
- Problem Set 10 (due W 11/20)
- Problem Set 11 (due F 12/6)
- Problem Set 12 (due W 12/11)
Exams
- Midterm 1 will be on Friday 10/18, in class.
- Remember to make a one-page note-sheet (front and back)! Tables 2.2 and 2.3 from the textbook (summary of Diffie-Hellman and Elgamal) will be included in the exam packet, so you do not need to copy any of that information to your note sheet.
-
Coverage: Anything discussed by Friday 10/11, and included on PSets 1 through 5. This includes the following textbook sections: 1.2, 1.3, 1.4, 1.5, 2.1, 2.2, 2.3, 2.4, 2.6, 2.7, and 2.8 (but not 2.5).
-
Some sample exams: 2023, 2020, 2019, 2016, 2015. Solutions (you must log in with your college account to view solutions)
- Exam / Solutions
- Midterm 2 will be on Friday 11/22, in class.
- Remember to make a one-page note-sheet (front and back)! Summary tables for all cryptosystems we’ve studied will be included in the exam packet, so you do not need to copy any of that information to your note sheet.
- Coverage: Anything discussed by Friday 11/15, and included on PSets 6 through 10. This includes textbook sections 2.9, 3.1-4, 4.1-3.
- Some sample exams: 2023, 2020, 2019, 2016, 2015. Solutions (you must log in with your college account to view solutions)
- Exam / Solutions
- The final exam will be on Tuesday 12/17 from 9am to noon, in SMUD 207.
- Remember to make a one-page note-sheet (front and back)! Summary tables for all cryptosystems we’ve studied will be included in the exam packet, so you do not need to copy any of that information to your note sheet.
- Coverage: cumulative, including all course material. The material after Midterm 2 will have slightly higher weight, since it has not yet been covered on an exam.