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
- Mondays 1pm-2pm in Peter Hall room 166
- Tuesdays 2pm-3pm in Peter Hall room 166
- Fridays 12pm-1pm in Peter Hall room 166
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: 12 August @ 2pm)
- Discrete logarithms
- Elliptic curves over finite fields
- Lattices
- Further topics (if time permits)
Exercises
These are organised in the same manner as the lecture notes:
- Elementary number theory (updated: 3 August @ 1pm)
- Discrete logarithms
- Elliptic curves over finite fields
- Lattices
- Further topics (if time permits)
Tutorials
Tutorial classes start in week 2 of the semester. The tutorial sheets appear here during the corresponding week, followed by the 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 private key for Assignment Question 1.3 is 613741728013616690147699038703457766174721061233103055423658683990710518710554288157091
Errata for the first assignment
Special consideration
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.