UNIVERSITY OF MINNESOTA 
SCHOOL OF MATHEMATICS

Math 5248: Cryptology and number theory

Fall 2005


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 Vincent Hall 6
Office hours: Monday 2:30pm and Tuesday 10:10am, 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; see his crypto page ) and last Fall when I was one of three people teaching it (see my old syllabus ).
However, there will be some significant differences in the approach taken this time around, regarding the
  • nature and the frequency of the homework
    (less frequent this time, but some less mechanical and more conceptual questions asked),
  • the amount of algebra and number theory included in the lectures (slightly more of it)
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 are 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. But it won't be fatal. At least try to get the 2nd printing, which corrected some minor errors.
Errata found after 1st printing
Errata found after 2nd printing
For historical background:  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. 21 1.1 Shift cipher: 05, 13, 15
1.2 Reduction/division algorithm: 05, 10, 12, 15
1.3 One-time pad: 03
1.5 Multiplicative inverses: 07, 10
1.6 The integers mod m: 11, 16, 20, 21
6.2 Euclidean algorithm: 01, 06, 08
6.3 Computing inverses: 08
Homework 2 Wed Oct. 5 1.7 The affine cipher: 07, 11, 14
3.2 Anagrams- transposition: 07, 09
4.2 LCM's and GCD's: 04, 05
4.1 The Vigenere cipher: 01, 06, 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. 12 Take-home exam in PDF, PostScript,
Homework 3 Wed Oct. 26 7.2 RSA cipher: 01, 04
7.3 Primitive roots, discrete logs: 04, 09, 13
7.5 ElGamal cipher: 01, 02, 03
9.1 Fermat's little theorem: 03, 05, 07
9.5 Exponentiation algorithm: 03, 05
23.1 Groups: 04, 07
23.2 Subgroups: 02, 05, 07
23.3 Lagrange's Theorem: 02
23.6 Finite cyclic groups: 04
Homework 4 Wed Nov. 9 10.7 Facts about primitive roots: 01, 02
15.5 Primitive roots mod p: 04
10.1 Sun Ze's theorem: 01, 02
10.2 Special systems: 01, 07
10.3 Composite moduli: 02, 03
9.6 Square roots mod p: 03, 05
10.8 Euler's criterion: 01, 02, 03
(Removed, for inclusion on Exam 2 -- 10.4 Hensel's lemma)
Midterm exam 2 Wed. Nov. 16 Take-home exam in PDF, PostScript,
Homework 5 Wed Dec. 7 13.1 Fermat pseudoprimes: 01, 08
13.6 Miller-Rabin test: 01, 08
12.5 Fast computation of quadratic symbols: 01, 03, 05, 07, 08, 11, 12
18.1 Pollard's rho method: 01
18.2 Pollard's p-1 method: 02
Final exam Wed. Dec. 14 Take-home final exam in PDF, PostScript.

Back to Reiner's Homepage.