## Lecture Notes

### Number Theory, Algebraic Geometry 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

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

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