Instructor Contact and General Information

Instructor: Luís Finotti
Office: Ayres Hall 251
Phone: 974-1321 (don't leave messages! -- e-mail me if I don't answer!)
Office Hours: By appointment only. Mask required for in-person. Otherwise, we can meet with Zoom.
Textbook: J. Hoffstein, J. Pipher, J. H. Silverman. An Introduction to Mathematical Cryptography, 2nd edition, Springer, 2014.
Prerequisites: Math 251/257 or Math 200. (Math 300/307 or COCS 311 recommended, but not required.)
Class Meeting Time: MWF 11:45-12:35 at Ayres 111.
Exams: No exams.
Grade: Simply your HW (computer projects) grade.
See here for letter grade ranges.

Back to the TOP.

Course Information

Course Content

This course is a one-semester introduction to applied and computational number theory and cryptography. We will study many algorithms used in number theory and applications to, mainly, computer security.

Although number theory started as primarily abstract subject, today it has quite important applications. Although we will often discuss the theoretical aspects of it, our main focus will be in the computational problems and applications of the subject.

Chapters and Topics

We should cover:

Here is a likely list of sections from the textbook:

If a significant number of students have taken (or intend to take) COCS 483 (Applied Cryptography), or if students interests lie outside cryptography, we might deemphasize it (although we will surely see some) and concentrate more on number theoretical algorithms, or even choose other topics to replace it.

Additional Bibliography

Here are some other books, besides out text, that you might find helpful:

Back to the TOP.

Course Tools


Sage is a (free) open-source math software. It was started by William Stein and was built on top of many other open-source software, such as GP/Pari, Maxima, GAP, R, and many more. It’s intent is to offer an open-source alternative to Mathematica, Maple, Matlab and Magma.

Since Stein is a number theorist, Sage is particular strong in number theory, and it’s the most suitable to our course. Moreover, it’s free and it can be used directly in Cocalc, which we will use for HW. So, students don’t even have to download it (although it might be a good idea). In fact, Cocalc was originally named “SageMathCloud”, i.e., it was built to run Sage on the cloud. Also, Sage is built on top of Python, and so it has the same syntax and can load the numerous Python libraries.


Cocalc, originally called “SageMathCloud”, is an online computing environment. It was first created to use Sage (and its components) online, without the need of installation, and allowing users to share and collaborate. It has expanded considerably since then, and today it can be even used for course management, as we will use here.

It is also quite useful for producing text documents, especially in math with LaTeX, although it also allows you to create (and collaborate in) HTML and Markdown documents.

It has many features and it is quite powerful, but we will need only the basics. As mentioned above, it will be used to assign and collect HW sets. You can do all your work directly on Cocalc (using Sage), or you can install Sage in your personal computer and do the coding/testing there, and then just copy and paste in Cocalc.

You can use Cocalc for free, although it might be a bit slow. It should not be a problem as your work should not be very resource intensive. But, if you feel it is too slow, you can either install Sage in your personal computer (it’s free and open-source) or pay for a subscription.

I truly don’t expect that it will be necessary for anyone to pay for the subscription, but if it comes to that, we can discuss what would work better. Either students can buy their own personal subscriptions or I can try to set up a Small Course Package.

Ed (Discussion Board)

We will use Ed for online discussions. The advantage of Ed (over other discussion boards) is that it allows us (or simply me) to use math symbols efficiently and with good looking results (unlike Canvas) and to post (and run!) formatted code. It also allows anonymous posts (also unlike Canvas).

To enter math, you can use LaTeX code. (See the section on LaTeX below.) Even if you don’t take advantage of this, I can use it making it easier for you to read the answers.

It also allows us to enter code in Code Blocks and Snippets Snippets. (See the Quick Start Guide.) With Snippets we can even run the code, using both Sage and (pure) Python. Please use code blocks whenever entering code!

You can access Ed through here: (There is also a link at the “Navigation” section on the top of this page and on the Links section.)

To keep things organized, I’ve set up a few different categories for our discussions:

I urge you to use Ed often for discussions! (This is specially true for Feedback!) If you are ever thinking of sending me an e-mail, think first if it could be posted there. That way my answer might help others that have the same questions as you and will be always available to all. (Of course, if it is something personal (such as your grades), you should e-mail me instead.)

Note that you can post anonymously. (Just be careful to check the proper box!) But please don’t post anonymously if you don’t feel compelled to, as it would help me to know you, individually, much better.

Students can (and should!) reply to and comment on posts on Ed. Discussion is encouraged here!

Also, please don’t forget to choose the appropriate category for your question. And make sure to choose between Question and Post.

When replying/commenting/contributing to a discussion, please do so in the appropriate place. If it is an answer to the question, use the Answer area. If you have a comment, question, or suggestion, you can use the Comment area.

You can also use Ed for Private Posts, by checking the corresponding box. Posts marked as private will be only viewed by the student who posted and me. Only use this what you have to ask cannot be shared with all, e.g., if you are sharing something from your HW. Otherwise, don’t make it private, as other students might have the same questions as you.

You should receive an invitation to join our class in Ed via your “” e-mail address before classes start. If you don’t, you can sign up here: If you’ve register with a different e-mail (e.g., you do not need to register again, but you can consolidate your different e-mails (like and in Ed, so that it knows it is the same person. (Only if you want to! It is recommended but not required as long as you have access to our course there!) Just click on the Account icon on the top right of Ed, select Emails, and then Add email address.

Back to the TOP.

Course Policies


I would like to ask you to wear masks in all our classes, even if not required by the university. If not required by UT, this will not be enforced in any way and there will be no penalty for not wearing masks.

Keep in mind that others in the class might be or have people close to them that have higher risk of being affected by COVID, such as the elderly, people with compromised immune systems, or people that due to allergies cannot take the vaccine. Even if you don’t believe that masks make a difference (even if they really do, see: CDC, Mayo Clinic, Johns Hopkins Medicine to just cite a few), I’d ask you to still do it as a sign of respect and consideration.

What I can (and will) do is to require masks for in-person office hours. If you are not willing to wear a mask, I still can help you over Zoom. Just write me an email and make an appointment.

Homework Policy

Homework assigned, graded, and collected using Cocalc. The due dates will be posted there and on Canvas’s calendar.

Before the first real assignment is due, we will practice it with a “dummy assignment”. I will likely show you in class how we will do it, or maybe post a video.

The HW will consist mostly of computations. You will likely code some routines to perform some task, and then run some tests. The official language for the course will be Sage.

Most HW problems will contain some code to test the routines you wrote. Successfully running this tests will, in most cases, give you full score, unless you are breaking some rules, like using a built in function you are not allowed to use, for instance. I will also look for any other errors that might escape the tests, but in most cases, you should get full credit (usually 4 points per problem).

If your code fails to pass the test, but I cannot spot the error, you will lose only 0.5 out of 4 (unless I have any other reason to deduce points). If you do care to know what is actually wrong with it, let me know and I can spend some more time figuring it out.

In the other cases your grade will depend on how far you were from the correct solution.

Your course grade will be simply your HW grade.

I will also post extra problems, some theoretical, for those interested. These will not be collected or graded, but I strongly recommend you work on them for a deeper understanding. These will be posted on the section Extra HW Problems below. (Arrangements can be made for those to count as extra-credit also.)

Assignments are individual! You can work with someone else and ask for help, but you should be able to understand the ideas and write your own code!

Also, it should go without saying, that you cannot copy code you find in the internet. It is usually easy to spot these and you will be penalized for doing it! If you are having a hard time, ask me (or a colleague) for help instead.

Communications and E-Mail Policy

You are required to set up notifications for Ed and for Canvas to be sent to you immediately.

On Ed, click on the Account icon on the top left, then Settings. In the new page click on Notifications. Under New Thread Digest, set the drop down box to Instant. I will consider a post in Ed official communication in this course, I will assume all have read every single post there!

For Canvas, check this page and/or this video on how to set your notifications. Set notifications for Announcements to “right away”! (Basically: click on the the profile button on left, under UT’s “T”, then click “Notifications”. Click on the check mark ("notify me right away") for Announcements.)

Moreover, I may send e-mails with important information directly to you. I will use the e-mail given to me by the registrar and set up automatically in Canvas. (If that is not your preferred address, please make sure to forward your university e-mail to it!)

All three (notifications from Ed, notifications from Canvas, and e-mails) are official communications for this course and it’s your responsibility to check them often!


Please, post all comments and suggestions regarding the course using Ed. Usually these should be posted as Post and put in the Feedback category. These can be posted anonymously (or not), just make sure to check the appropriate option. Other students and myself will be able to respond and comment. If you prefer to keep the conversation private (between us), you can send me an e-mail (not anonymous), or a private message in Ed (possibly anonymous).

Back to the TOP.


All students should be familiar with HilltopicsStudents Code of Conduct and maintain their Academic Integrity: from Hilltopics Academics:


Study, preparation, and presentation should involve at all times the student’s own work, unless it has been clearly specified that work is to be a team effort. Academic honesty requires that the student present their own work in all academic projects, including tests, papers, homework, and class presentation. When incorporating the work of other scholars and writers into a project, the student must accurately cite the source of that work. For additional information see the applicable catalog or the UT Libraries site. See also the Student Code of Conduct and Honor Statement (below).

All students should follow the Honor Statement (also from Hilltopics Academics):

Honor Statement

"An essential feature of the University of Tennessee, Knoxville, is a commitment to maintaining an atmosphere of intellectual integrity and academic honesty. As a student of the university, I pledge that I will neither knowingly give nor receive any inappropriate assistance in academic work, thus affirming my own personal commitment to honor and integrity."

You should also be familiar with the Classroom Behavior Expectations.

We are in a honor system in this course!



Students with disabilities that need special accommodations should contact the Student Disability Services and bring me the appropriate letter/forms.


Discrimination and Harassment

For Discrimination and Harassment, please visit the Office of Equity and Diversity.


Campus Syllabus

Please, see also the Campus Syllabus.


Back to the TOP.


This is not necessary to our class! I leave it here in case someone wants to learn how type math, for instance to type their HW. But again, you can ignore this section if you want to.

LaTeX is the most used software to produce mathematics texts. It is quite powerful and the final result is, when properly used, outstanding! Virtually all professional math text you will ever see is done with LaTeX, or one of its variants.

LaTeX is freely available for all platforms.

The problem is that it has a steep learning curve at first, but after the first difficulties are overcome, it is not bad at all.

One of the first difficulties one encounters is that it is not WYSIWYG ("what you see is what you get"). It resembles a programming language: you first type some code and then this code is processed to produce a nice document (a non-editable PDF file, for example). Thus, one has to learn how to “code” in LaTeX, but this brings many benefits.

I recommend that anyone with any serious interest in producing math texts to learn it! On the other hand, I don’t expect all of you to do so. But note that there are processors that can make it “easier” to create LaTeX documents, by making it “point-and-click” and (somewhat) WYSIWYG.

Here are some that you can use online (no need to install anything and files are available online, but need to register):

The first one, Cocalc, is more than just for LaTeX, as you can also run Sage, which can do computations with the objects we will study in this course.

If you want to install LaTeX in your computer (so that you don’t need an Internet connection), check here.

A few resources:

Back to the TOP.
Back to the TOP.


Back to the TOP.

Extra Homework Problems

These are not to be turned in! But they should be interesting and help you better understand the mathematical tools we use in the course.

Problems will be added as we progress.


  1. Let $N$ be a (possibly very large) positive integer. Prove that there are $N$ consecutive integers $m$, $m+1$, ..., $m+(N-1)$ such that none of them is prime. (In other words, two consecutive primes can be very far apart!)\ Hint: Use the following simple lemma. Let $a$, $b$ and $d$ be positive integers, with $d \mid a$. Then, $d \mid (a+b)$ if and only if $d \mid b$.
  2. Prove that the Goldbach’s Conjecture (every even integer greater than or equal to 4 is a sum of two primes) implies the Goldbach’s WeakConjecture (every odd integer greater than or equal to 7 is the sum of three primes). (This is a very simple one.)

Section 1.2: 1.11, 1.13.

Section 1.3: 1.19, 1.20, 1.23, 1.24.

Section 1.4: 1.29, 1.31.

Section 1.5: 1.33, 1.35, 1.38.

Section 2.2: 2.3, 2.5.

Section 2.4: 2.9, 2.10.

Section 2.5: 2.12, 2.15.

Section 2.8: 2.20, 2.21(a), 2.25.

Section 2.9: 2.26, 2.27.

Section 3.1: 3.1(a), (b), 3.2, 3.5, 3.6(a).

Section 3.4: 3.14(a), (c), (d), 3.21.

Section 3.5: 3.23(c), (d), (e).

Section 6.1: 6.3.

Section 6.3: 6.9.

Section 6.4: 6.16(a).

Section 6.5: 6.9, 6.18.

Section 6.7: 6.25, 6.26, 6.27.

Section 3.9: 3.37, 3.38, 3.41.


Back to the TOP.