Lecture Notes
Number Theory, Elliptic Curves and Cryptography
"Beauty is the first test: there is no permanent place in the world for ugly mathematics."
- G. H. Hardy
Software Tools for Computation
Study of number theory is often accompanied by heavy computations for which computers can be effectively used. From time to time, I will be using Maxima, an open source computer algebra system (abbreviated as CAS, a software package for symbolic computation) and Python. Sage (CoCalc) is also a good and powerful open source CAS but I will not be using it here. Main reason is that I find it restrictive as it requires a web-based interface (a browser) and an internet connection. Unless you run your own CoCalc server (if you are going to use it just for yourself, why would you run such a server?), you need to have an access to a CoCalc server that is run by someone else. I personally prefer a crude and low tech computing environment that does not require a particular interface and a lot of resources. Maxima and Python fit into such preference of mine. Maxima and Python do have interfaces but they also can be run interface-free in a command shell.
Maxima
Python
Lecture Notes
Number Theory and Cryptography
Elliptic Curves and Modular Forms
Analytic Number Theory
Computing for Number Theory
Problem Sets
Elementary Number Theory
Elliptic Curves and Modular Forms
Analytic Number Theory
References and Further Reading
Elementary Number Theory
Cryptography
Analytic Number Theory
Elliptic Curves
Random Matrices
What is Maxima?: MIT has developed a computer algebra system, called Macsyma, from 1968 to 1982 as part of Project MAC. They turned over a copy of the Macsyma source code to the Department of Energy (DOE). That version is known as DOE Macsyma. It had been maintained by William Schelter at the University of Texas from 1982 until his death in 2001. In 1998, Schelter obtained permission from the DOE to release the DOE Macsyma source code under the GNU Public License, and in 2000 he initiated the Maxima project at SourceForge to maintain and continue developing DOE Macsyma, now called Maxima.
Download and Install Maxima:
1. For those who are using Windows, an instruction can be found here and also here.
2. For those who are using MacOS, Maxima can be download from here and an installtion instruction can be found here.
3. If you are using Ubuntu Linux OS, simply run the following command in command shell:
sudo apt install maxima && sudo apt install wxmaxima
You also need to install Gnuplot by runnig the command:sudo apt install gnuplot
4. If you are using FreeBSD Unix, as root run:# pkg install maxima && pkg install wxmaxima
and also install Gnuplot by running# pkg install gnuplot
5. For all other operating systems, refer to the instruction at Maxima Downloads page here.Maxima documentation page is an important source on how to use Maxima for your computational needs and purposes. Another important source on using Maxima, especially for doing mathematics is The MaximaList. The html version of Maxima 5.29.0 manual on Number Theory is available online here.
You can find download/installtion instruction for your OS at Python.org. Make sure that you install Python 3.
1. For Windows system, select and download Python Windows installer, for example python-3.3.0.msi and run it.
2. For MacOS, select and download .dmg Mac Installer Disk Image and run it.
3. For Ubuntu Linux OS, run in command shell, for example
sudo apt install python3.3 && sudo apt install idle3
IDLE is a covenient interface for Python. I love iPython (Interactive Python Shell). It allows you to run .py files in command shell. To install ipython runsudo apt install ipython3
4. For FreeBSD Unix, as root run:# pkg install python
This command will install Python 3 and IDLE 3 as well. To install ipython, as root run:# pkg install py37-ipython
Click on linked topics to view lecture notes.
Divisibility
The Division Algorithm
Linear Combination
Congruences 1
Congruences 2
Basic Ideas of Cryptography and Some Simple Cryptosystems
Enciphering Matrices
RSA Protocol, A Public Key Cryptosystem
Primality Test
Factoring by the Monte Carlo Method
Fermat Factorization
Computing for Number Theory 1: GCD, LCD, Linear Diophantine Equations
Click on the following links for problems.
Problem Set 1. The Division Algorithm
Problem Set 2. Linear Combination
Problem Set 3. Congruences
Problem Set 4. Simple Cryptosystems
Problem Set 5. Enciphering Matrices
Problem Set 6. RSA Protocol, A Public Key Cryptosystem
Problem Set 7. Primality Test
Problem Set 8. Factoring
G. H. Hardy and E. M. Wright, An Introduction to the Theory of Numbers, Fourth Edition, Oxford at the Clarendon Press, 1975
Neal Koblitz, A Course in Number Theory and Cryptogtraphy, Graduate Texts in Mathematics 114, Springer-Verlag, 1994
Franz Lemmermeyer, Numbers and Curves, Springer-Verlag, 2001
Manfred Schroeder, Number Theory in Science and Communication with Applications in Cryptography, Physics, Digital Information, Computing, and Self-Similarity, Fifth Edition, Springer-Verlag, 2009
Simon Singh, Fermat's Last Theorem, The Story of a Riddle that Confounded the World's Greatest Minds for 358 Years, Fourth Estate
André Weil, Number Theory for Beginners, Springer-Verlag, 1979
Neal Koblitz, A Course in Number Theory and Cryptogtraphy, Graduate Texts in Mathematics 114, Springer-Verlag, 1994
Bruce Schneier, Applied Cryptography, Protocols, Algorithms, and Source Code in C, Second Edition, John Wiley & Sons, Inc., 1996
Tom M. Apostol, Introduction to Analytic Number Theory, Undergraduate Texts in Mathematics, Springer-Verlag, 1976
Tom M. Apostol, Modular Functions and Dirichlet Series in Number Theory, Graduate Texts in Mathematics 41, Springer-Verlag, 1976
This is the second volume of a 2-volume textbook along with the preceding book.
Peter Borwein, Stephen Choi, Brendan Rooney, and Andrea Weirathmueller, The Riemann Hypothesis, A Resource for the Afficionado and Virtuoso Alike, Springer-Verlag, 2007Igor Dolgachev, Lectures on Modular Forms, Lecture Notes, Fall 1997/98
Neal Koblitz, Introduction to Elliptic Curves and Modular Forms, Graduate Texts in Mathematics 97, Springer-Verlag, 1984
Neal Koblitz, p-adic Numbers, p-adic Analysis, and Zeta-Functions, Graduate Texts in Mathematics 58, Second Edition, Spriner-Verlag, 1984
Donald J. Newman, Analytic Number Theory, Graduate Texts in Mathematics 177, Springer-Verlag, 1997
S.J. Patterson, An introduction to the theory of the Riemann Zeta-Function, Cambridge University Press, 1987
Dan Rockmore, Stalking the Riemann Hypothesis, The Quest to Find the Hidden Law of Prime Numbers, Pantheon Books, 2005
E. C. Titchmarsh, The Theory of the Riemann Zeta-Function, Oxford University Press, 1986
Don Zagier, Modular Forms of One Variable, Lecture Notes, 1991
J.W.S. Cassels, Lectures on Elliptic Curves, Cambridge University Press, 1991
Dale Husemöller, Elliptic Curves, Graduate Texts in Mathematics 111, Springer, 2002
Neal Koblitz, Introduction to Elliptic Curves and Modular Forms, Graduate Texts in Mathematics 97, Springer-Verlag, 1984
J.S. Milne, Elliptic curves, 1996
Bjorn Poonen, Elliptic Curves, 2001
Joseph H. Silverman, The Arithmetic of Elliptic Curves, Springer-Verlag, 1985
Pavel Bleher and Alexander Its (eds.), Random Matrix Models and Their Applications, Cambridge University University Press, 2001
Madan Lal Mehta, Random Matrices, Elsevier Academic Press, 2004
M. L. Mehta, Random Matrices and the Statistical Theory of Energy Levels, Academic Press, 1967
Leonid Pastur and Mariya Shcherbina, Eigenvalue Distribution of Large Random Matrices, Mathematical Surveys and Monographs Volume 171, American Mathematical Society, 2010