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.

- We will have synchronous class meetings via Zoom at 9am on Mondays and Fridays. See the Zoom link on the course moodle page for access.
- Several pre-recorded videos will be posted on Tuesdays and Wednesdays. You may access these from the Dropbox link sent out by email (also linked from the Moodle page).
- Office hours: during my scheduled office hours (below), I will be actively monitoring the class's Slack channel, answering questions, and opening Zoom discussions as needed. Please set a message to the channel or to me privately if you would like to start a Zoom meeting.
- The remaining exams will be open-book take-home exams (see below for details).
- We will almost certainly cover less material this semester than was originally planned on the syllabus, due to the extraordinary circumstances. My primary concern as the instructor right now is to prioritize the main learning goals of Math 252: developing your reasoning about code, developing your general mathematical problems solving skills, and introducing you to some representative cryptographic algorithms. So I will be trying to think of the best way to give you that preparation within the constraints we are now under.

- My office hours
~~in SMUD 401~~on Slack and Zoom:- Visit Slack to ask questions, either as private messages to me or on the group channel.
- Just ask if you want to start a Zoom meeting to discuss anything.
- I will check Slack periodically throughout the day, but am guaranteed to be actively monitoring, and available to meet on Zoom, at the times below.
- Monday 1:00-2:00
- Tuesday 1:45-3:15
- Wednesday 1:45-3:15
- Friday 1:00-2:00

- 1/28: Syllabus

- 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 $25 paperback copy.
- Starter code and testing notebooks for programming assignments.
- CS Circles python tutorial (most relevant sections for our purposes: 0 through 10 and 13, except 2X, 7A, and 8)

Problem sets will be posted here. All problem sets are due at 10pm, via Gradescope.

- Course survey and Gradescope instructions (due 1/31)
- Problem Set 1 (written due 2/5; code due 2/7)
- Problem Set 2 (due 2/12)
- Problem Set 3 (due 2/19)
- Problem Set 4 (due 2/26)
- Problem Set 5 (due 3/4)
- Problem Set 6 (due
~~3/25~~3/30) - Problem Set 7 (due 4/3)
- Problem Set 8 (due 4/8)
- Problem Set 9 (due 4/15)
- Problem Set 10 (due 4/22)
- Not to hand in: Problem Set 11 (for review and practice only) / Solutions

- Midterm 1: Monday 3/9, in class.
- Remember to make a one-page note-sheet (front and back)!
- Coverage: up to the section 2.8 (Chinese Remainder Theorem), i.e. anything covered on Problem Sets 1 through 5.
- Some old exams. 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.
- 2015 Midterm 1 / Solutions
- 2016 Midterm 1 / Solutions
- 2019 Midterm 1 / Solutions (Note: four-function calculators were permitted on this exam.)
- Solutions will be posted later this week.

- Exam / Solutions

- Midterm 2:
~~Monday 4/27, in class~~distributed Monday 4/27 10pm, due Wednesday 4/29 10pm (Eastern time).- The exam will be untimed, open-book and open-notes. You may also use a computer, e.g. to write Python code for computations. You will be expected not to discuss problems with any other students, or to look for solutions online.
- You will have 48 hours to complete the exam.
- The exam will be similar in length to a 50-minute in-class exam.
- Some old exams. 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.
- 2015 Midterm 2 (skip problem 5, which uses terminology we haven't discussed) / Solutions
- 2016 Midterm 2 / Solutions
- 2019 Midterm 2 / Solutions (Note: you may want to skip problem 4, which concerns ECDSA; this will not be covered on midterm 2 this year.)

- Exam / Solutions

- Final Exam: distributed Monday 5/11 at 9am (when our originally scheduled exam would have begun), due Thursday 5/14 at 9am (Eastern time).
- The exam will be untimed, open-book and open-notes. You may also use a computer, e.g. to write Python code for computations. You will be expected not to discuss problems with any other students, or to look for solutions online.
- You will have 72 hours to complete the exam.
- The exam will be similar in length to a regular three-hour final exam.
- Some old exams. 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.