2026 MAST30035 Number Theory and Cryptography
Many administrative details about the organisation of the subject can (as always) be found in the subject handbook entry.
Consultation hours
See below under Exam preparation for the pre-exam consultation hours.
Lecture notes
General comment: the subject is brand new and is being actively developed as we go. I aim to have reasonably-polished notes available within a couple of days of each lecture.
Chapters:
- Elementary number theory (updated: 24 October @ 6pm)
- Discrete logarithms (updated: 24 October @ 6pm)
- Elliptic curves (updated: 24 October @ 6pm)
- Lattices (updated: 24 October @ 6pm)
Exercises
These are organised in the same manner as the lecture notes:
- Elementary number theory (updated: 28 August @ 2pm)
- Discrete logarithms (updated: 30 August @ 6pm)
- Elliptic curves
- Lattices
Tutorials
Tutorial classes start in week 2 of the semester. The tutorial sheets appear here during the corresponding week, followed by the solutions.
- Week 2: tut02 and solutions (revised 13 August @ 10am)
- Week 3: tut03 and solutions
- Week 4: tut04 and solutions
- Week 5: tut05 and solutions
- Week 6: tut06 and solutions
- Week 7: tut07 and solutions
- Week 8: tut08 and solutions
- Week 9: tut09 and solutions
- Week 10: tut10 and solutions
- Week 11: tut11 and solutions
- Week 12: tut12 and solutions
Assignments
The three assignments will be posted both here and on the subject's Canvas page. Your solutions should be submitted via Canvas and Gradescope.
Assignment 1 (worth 10% of final mark)
Here is the pdf file for the first assignment, due Friday 21 August at 23:59. Please read the cover page carefully.
To make copy-and-paste easier: the N in the RSA public key for Assignment Question 1.3 is 613741728013616690147699038703457766174721061233103055423658683990710518710554288157091
Errata for the first assignment
Solutions for the first assignment.
Assignment 2 (worth 10% of final mark)
Here is the pdf file for the second assignment, due Friday 18 September at 23:59.
Solutions for the second assignment.
Assignment 3 (worth 10% of final mark)
Here is the pdf file for the third assignment, due Friday 16 October at 23:59.
Solutions for the third assignment.
Special consideration
Exam preparation
Some routine questions on various topics (updated 16 October at 3pm).
Here is the exam coversheet.
Here is the formula sheet that will be available in the exam.
Pre-exam consultation hours
- Tuesday 27 October 11:30am-1pm in Peter Hall room G39 (Thomas Cherry)
- Friday 30 October 10am-11:30am in Peter Hall room 107
- Wednesday 4 November 12:30pm-2pm in Peter Hall room 107
- Friday 6 November 10am-11:30am in Peter Hall room 107
- Wednesday 11 November 1pm-2pm in Peter Hall room 107
- Friday 13 November 10am-11:30am in Peter Hall room 107
- Friday 13 November 1pm-2pm in Peter Hall room 107
Ed discussion board
Please see the subject's Canvas page for access to the discussion board.
Lecture recordings
Please see the subject's Canvas page for access to the lecture recordings.
Prerequisite knowledge
The main prerequisites for the subject are one of the University of Melbourne's subjects:
- MAST10009 Accelerated Mathematics 2
- MAST20026 Real Analysis
- MAST20033 Real Analysis: Advanced
- MAST20036 Introduction to Discrete Mathematics
For those of you arriving with a different background, this means familiarity with proofs, as well as a solid understanding of linear algebra (which is a prerequisite for all of the above).
Some references
This list is of course not exhaustive.
- An introduction to mathematical cryptography by Hoffstein, Pipher, and Silverman
- Cryptography by Rubinstein-Salzedo
- Mathematics of public key cryptography by Galbraith
- Computational mathematics with SageMath by Zimmermann et al
Note: Many of these references may be accessible via the library system either as electronic resources or physical tomes.
Software
This list is also not exhaustive.
You will want a system that, at the very least, allows you to work easily with arbitrary-sized integers. For later topics, built-in functionality for elliptic curves and lattices may be useful.
- My main recommendation is SageMath. You can install it on your own computer (fairly easily if you're running Linux or MacOS) or you can get yourself a free CoCalc account, which should be okay for the type of use we're making in this subject.
- A little old-school but probably has most of what we need: Pari/GP.
- Python + libraries for the things we are using, e.g. sympy, flint, etc.
- Julia + OSCAR.
- Mathematica (link to information about the uni's license) + libraries for the things we are using.