Prerequisites:  Calculus, linear algebra, and not much else. 
Instructor:  Victor Reiner (You can call me "Vic"). 
Office: Vincent Hall 256 Telephone (with voice mail): 6256682 Email: reiner@math.umn.edu 

Classes: 
Monday, Wednesday 3:355:00pm in Mechanical Engineering 102 (a UNITEequipped 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
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 wellexplained 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 4credit 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 wellspent 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. 
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 Onetime 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 MillerRabin 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 p1 method: 03 
Final exam  Wed. Dec. 13  The exam is here, in PDF, PostScript 