UNIVERSITY OF MINNESOTA 
SCHOOL OF MATHEMATICS

Math 5248: Cryptology and number theory

Fall 2006

Prerequisites: Calculus, linear algebra, and not much else.
Instructor: Victor Reiner (You can call me "Vic"). 
Office: Vincent Hall 256
Telephone (with voice mail): 625-6682
E-mail: reiner@math.umn.edu 
Classes: Monday, Wednesday 3:35-5:00pm
in Mechanical Engineering 102 (a UNITE-equipped classroom)
Office hours: Mon, Tues, Fri at 1:25pm, or by appointment.  
Course content: This is an introductory course in cryptology, that is, the subject of how to make ciphers (cryptography) and break them (cryptanalysis). The math used is heavy on modular arithmetic, which will be covered in some depth. It also makes some use of elementary counting and probability, plus a tiny bit of linear algebra and matrices. It is not intended as a substitute for a serious abstract algebra or number theory course.
The topics covered will be similar to when the course has been taught in the past by Prof. Paul Garrett, the author of our text, and similar to last Fall when I was one of two people teaching it (see my old syllabus ). There are a lot of useful things on Garrett's crypto page, including his transparencies from his own lectures. In particular, here is a direct link to Garrett's handy fast modular exponentiation calculator.
Text: We will be working from a specially photocopied and recently revised version of the previous text for the course:
Making, breaking codes: An introduction to cryptology by Paul Garrett, Prentice Hall.
These notes will eventually be available at the bookstore, in the usual area for math course texts. If you insist on buying one of the previous editions of the book, you may be annoyed that the chapter/section orders have changed a bit, and that you'll be missing a tiny amount of the material we use.
For historical background on cryptology:  The code book by Simon Singh
The code breakers by David Kahn
Homework and exams: There will be homework assignments due every other week, except for
  • 2 weeks where there will be a week-long take-home midterm exam,
  • a week at the end with a week-long take-home final exam.
Tentative dates for the assignments and exams are in the schedule below. The take-home midterms and final exam are open-book, open-library, open-web, but no collaboration or consultation of human sources is allowed.

Late homework will not be accepted. Early homework is fine, and can be left in my mailbox in the School of Math mailroom near Vincent Hall 105. Collaboration is encouraged as long as everyone collaborating understands thoroughly the solution, and you write up the solution in your own words, along with a note at the top of the homework indicating with whom you've collaborated.

Homework solutions should be well-explained-- the grader has been told not to give credit for an unsupported answer.

Grading:  Homework = 50% of grade
Each of 2 midterms = 15% of grade
Final exam 20% of grade.

Complaints about the grading should be brought to me.

Some software:  Some Mathematica code for doing Vigenere encryption and the Friedman attack on it.
The example of this that was shown in lecture on Sept. 26, 2005.
Policy on incompletes:  Incompletes will be given only in exceptional circumstances, where the student has completed almost the entire course with a passing grade, but something unexpected happens to prevent completion of the course. Incompletes will never be made up by taking the course again later. You must talk to me before the final exam if you think an incomplete may be warranted.  
Other expectations  This is a 4-credit course, so I would guess that the average student should spend about 8 hours per week outside of class to get a decent grade. Part of this time each week would be well-spent making a first pass through the material in the book that we anticipate to cover in class that week, so that you can bring your questions/confusions to class and ask about them.
Homework/exam schedule and assignments (tentative)
Assignment or Exam Due date Problems
Homework 1 Wed Sept. 20 1.1 Shift cipher: 04, 12, 15
1.2 Reduction/division algorithm: 04, 13, 15
1.3 One-time pad: 04
1.5 Multiplicative inverses: 06, 09
1.6 The integers mod m: 10, 18, 20, 22
6.2 Euclidean algorithm: 03, 04, 09
6.3 Computing inverses: 04
Homework 2 Wed Oct. 4 1.7 The affine cipher: 11, 18, 21
3.1 Cryptograms- substitutions: 04
3.2 Anagrams- transposition: 09
4.2 LCM's and GCD's: 03, 07
4.1 The Vigenere cipher: 03, 05, 07, 09
4.4 Expected values: 01
4.5 Friedman attack: 02
5.3 Advanced encryption standard: 01 (not to be graded, but to think about)
Midterm exam 1 Wed. Oct. 11 The exam is here, in PDF, PostScript,
Homework 3 Wed Oct. 25 7.2 RSA cipher: 03, 06
7.3 Primitive roots, discrete logs: 03, 07, 13
7.5 ElGamal cipher: 01, 02, 03
9.1 Fermat's little theorem: 01, 07
9.5 Exponentiation algorithm: 01, 07
23.1 Groups: 02, 04
23.2 Subgroups: 06, 07
23.3 Lagrange's Theorem: 03
23.6 Finite cyclic groups: 02
Homework 4 Wed Nov. 8 15.5 Primitive roots mod p: 04
10.1 Sun Ze's theorem: 01, 02
10.2 Special systems: 03
10.3 Composite moduli: 02, 03
9.6 Square roots mod p: 08
10.8 Euler's criterion: 02, 03, 04
(Removed, for inclusion on Exam 2 -- 10.4 Hensel's lemma)
Midterm exam 2 Wed. Nov. 15 The exam is here, in PDF, PostScript
Homework 5 Wed Dec. 6 13.1 Fermat pseudoprimes: 04, 08
13.6 Miller-Rabin test: 02, 08
12.5 Fast computation of quadratic symbols: 01, 03, 06, 08, 11, 12
18.1 Pollard's rho method: 02
18.2 Pollard's p-1 method: 03
Final exam Wed. Dec. 13 The exam is here, in PDF, PostScript

Back to Reiner's Homepage.