# Math 252: Mathematics of Public-Key Cryptography (Spring 2023)

This course concerns the mathematical problems underlying public-key ciphers and digital signatures, as well as algorithms to solve them. Topics 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: 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, 10:00-10:50am in SMUD 014.

### Help hours

- My office hours in
**SMUD 401**:- Tuesday 2:00-3:30
- Wednesday 2:30-4:00
- Friday 1:30-2:30

- Our math fellow (TA), Cailin Plunkett, will have office hours at the following times.
- Monday 6:00-7:30pm in SMUD 007
- Wednesday 6:00-7:30pm in SMUD 007

### Handouts

### Textbook and other links

- The course text is An Introduction to Mathematical Cryptography, 2nd edition. Use this link to download the book in pdf for free or order a $40 paperback copy. If you are off the campus network, try this link, or look up “springerlink” (one word) in the Amherst College library catalog.
- 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 my tablet (updated periodically)
- In-class notebooks (code written on screen will be kept here)
- 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
- Problem Set 1 (written part due W 2/8; coding part due F 2/10)
- Problem Set 2 (due W 2/15; both parts)
- Problem Set 3 (due W 2/22)
- Problem Set 4 (due W 3/1)
- Problem Set 5 (due W 3/8) Note: there are no programming problems this week.
- Problem Set 6 (due
**F 3/24**) **Note:**Problem Set 7 will be due on Wednesday 3/29.

### Exams

- Midterm 1 will be on Friday 3/10, in class.
- Exam / Solutions
- 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 3/3, 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.7 (but
**not**2.5 or 2.6). - Some old exams, for review. Note that coverage and emphasis differs on these exams, and in particular the 2015 and 2016 exams are somewhat more difficult that ours is likely to be. Solutions will be posted in the week before the midterm.

- Midterm 2 will be on Friday 4/28, 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:
**TBA**, but will**probably**include the following textbook sections: 2.8-9, 3.1-4, 4.1-3, 6.1-4. - Some old exams, for review. Note that coverage and emphasis differs on these exams, and in particular the 2015 and 2016 exams are somewhat more difficult that ours is likely to be.
**The 2015 and 2016 exams were earlier in the semester than our midterm 2, so they do not include content on elliptic curves.**Solutions will be posted in the week before the midterm. - Some old final exams. You may wish to consult these for problems about elliptic curves.
- 2015 final exam (problems 1, 4, 6, 9, 11 concern elliptic curves)
- 2016 final exam (problems 3, 6, 10 concern elliptic curves)
- 2019 final exam (problem 2 concerns elliptic curves)

- The final exam will be on Thursday 5/18, 2-5pm, in SMUD 206.
- 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.
- Some old final exams are linked above, under Midterm 2 materials.