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

    • 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.

    • Python

    • 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 run

      sudo 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

  • Lecture Notes

  • Click on linked topics to view lecture notes.

  • Problem Sets

  • Click on the following links for problems.

  • References and Further Reading

    • Elementary Number Theory

    • 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

    • Cryptography

    • 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

    • Analytic Number Theory

    • 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, 2007
      Igor 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

    • Elliptic Curves

    • 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

    • Random Matrices

    • 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