**
**

** Instructor: ** Daniel Dugger

** Office:** 215 Fenton

**E-Mail: ** ddugger@math.uoregon.edu

**Phone: ** (541)-346-8402

** Office Hours: ** M 12-1, Tu 2-3, F 3-4.

** Textbook: **
An Introduction to Mathematical Cryptography, second edition, by
Hoffstein,
Pipher, and Silverman.

30% Homework

20% Midterm 1

20% Midterm 2

30% Final.

Here is a review sheet for midterm 1. On the exam you are allowed to use a calculator and to have a 3 x 5 notecard.

Here are solutions to Midterm #1.

Here is a review sheet for midterm 2. On the exam you are allowed to use a calculator and to have a 3 x 5 notecard.

Here are solutions to Midterm #2.

Here is a final review sheet. On the exam you are allowed to use a calculator and to have a 3 x 5 notecard. I will hold office hours on Sunday, June 9, 2-4pm.

Readings will typically be assigned before every class meeting.

Reading for Wednesday, April 3: Read up through Section 1.3.1 in the textbook. The output from the Sage demo we did in class is here.

Reading for Friday, April 5: If you have never seen the Binomial Theorem (or need a refresher), go read it about it at Wikipedia.

Reading for Friday, April 12: Sections 2.1-2.3 (pages 61-69).

Reading for Monday, April 14: Sections 2.4-2.5 (this is mostly just a rehash of what we did on Friday).

Reading for Friday, April 19: Sections 2.6-2.8.

Reading for Wednesday, April 21: Section 2.9. Also, here is the example of the Pohlig-Hellmann algorithm that I didn't get a chance to do in class today.

Reading for Wednesday, May 1: Sections 3.1-3.2.

Reading for Friday, May 8: Here is the printout for the Sage work we did in Wednesday's lecture (skip over the initial commands until you find the break in the text). Also, here is a good article to read about primes and the Riemann Hypothesis. It is from 1971 and the typeface is horrible, but it is a very good article by a leading number theorist. If you ignore the incomprehensible stuff in the second column of page 1, it's not so bad until about page 12 or 13. Take a look!

Reading for Wednesday, May 29: You should have read Sections 6.1 and 6.2 by now; continue on with 6.3 and 6.4, which we have basically already talked about in class. Also, here are some extra notes on the classification of finite abelian groups.

Reading for Monday, June 3: Read these notes on quantum cryptography.

Reading for Friday, June 7: Here is the class demo on Fourier analysis that we talked through in class on Wednesday. Sorry about things being a bit out of order. If you want to play around with the Sage notebook yourself, here it is.

Homework due Wednesday, April 10: Do the following problems from the textbook

- 1.17a-d, 1.18, 1.20, 1.22, 1.24a-b, 1.26b, 1.32b, 1.34a-b,d, 1.38, 1.41, 1.43, 1.47.

Homework due Wednesday, April 17:

- If you are new to Sage, read this Introduction to Sage and actually try the things it suggests. Don't hand this in, though.
- Do all the problems on this worksheet.

For those of you who have done some Python coding before, much of this assignment will be very easy. For those of you who have not done Python coding, it will be more of a challenge (and one or two problems will be a big jump for you). Come talk to me if you get stuck and I will help get you up to speed.

Finally, if you want to download Sage and install it on your own computer you can find it at the main Sage site.

Homework due Wednesday, April 24: Do all the problems on this worksheet. For an example of the Pohlig-Hellmann algorithm, see the notes for our 4/22 class linked in the "Reading assignments" section above.

Homework due Wednesday, May 1: None. Rest up after the exam. BUT: Here is a Sage workbook called "dlp_collision3.ipynb" that has functions for finding primitive generators, performing Shanks's algorithm, finding large primes, and solving the DLP by brute force. Figure out how to get this file onto whatever version of Sage you are using and play with the functions a bit. Try to compare the time for solving DLP by brute force to the time with Shank's algorith, say for a 7-digit prime. In future homeworks you will need to use more and more Sage code that I provide, so take the time this week to figure out how to get this running on your system. Let me know if you need help.

Homework due Wednesday, May 8: Do all the problems on this worksheet. Some of the problems require Sage, and here is an accompanying notebook. If you some reason you can't get this loaded on your version of Sage, here is an html version which you could copy by hand.

Homework due Wednesday, May 15: Do all the problems on this worksheet. Most of the problems require Sage, and here is an accompanying notebook. If you some reason you can't get this loaded on your version of Sage, here is an html version which you could copy by hand.

Homework due Wednesday, May 22: Do all the problems on this worksheet. WARNING: I think this homework looks longer than it really is, but I still suggest not waiting until the last minute.

Homework due Wednesday, May 29: Do all the problems on this worksheet. Most of the problems require Sage, and here is an accompanying notebook. If you some reason you can't get this loaded on your version of Sage, here is an html version which you could copy by hand.

Homework due Wednesday, June 5: Do all the problems on this worksheet. Some of these require Sage functions, provided in this notebook. If you some reason you can't get this loaded on your version of Sage, here is an html version which you could copy by hand. Also, for more background on the ``quantum'' problems on this HW see the reading assignment for June 3 linked above.