Course: Cryptography, math 390.
Professor: Tom Linton, 312 B Central Hall, campus phone (641) 628-5264, email: lintont@central.edu.
Office Hours: 10 AM, Mon, Tues, 11 AM Fri, 2 PM Thurs, or by appointment.
Class Meets: 2:00 to 2:50 PM MWF in Central Hall 309.
Text: Making, Breaking Codes: An Introduction to Cryptology, by Paul Garrett.
Technology: We will utilize Mathematica, Java (or other languages) and calculators on a regular basis. The class web page can be reached from Tom's homepage, http://www.central.edu/homepages/lintont/ and information relevant to this course may come via email. You should check your email and the class web page on occasion.
Final Exam: Wednesday May 16, 1 PM 309 Central Hall. Review sheet for final.

Overview

Cryptography refers to writing, using various methods to keep the message a secret, as well as more modern applications (like web security, user authentication, etc.) of these methods. Cryptanalysis is the science of attacking secret messages or decrypting ciphers. The term cryptology encompasses both directions (making the codes and breaking the codes). We will study various aspects of cryptology in this class, focussing on the mathematical aspects. We will start with chapter 1 of the text (Making and Breaking Codes by Paul Garrett) and proceed through most of the first 12 chapters (time permitting).

Grades

We will have two midterm exams worth 100 points each and a cumulative 150 point final exam given Wednesday, May 16, at 1 PM. The midterm exams will occur roughly February 19, and March 19.

We will have 1 or 2 group projects in this class, worth 50 points each. These are challenging group assignments, similar to tough take-home exam problems, which require word processed write ups and emphasize writing mathematics in a clear and concise manner. You will be given approximately 2 weeks to complete each project.

I will attempt to assign roughly 300 points in homework assignments, quizzes (normally announced), activities (things we do in class instead of lecture) and other forms of class participation (attendance, coding, explaining your solutions to homework problems, discussions, etc.). Homework is probably the most important component of this course. Problems will be assigned from each section of the text and you will have a few days to complete these assignments. One portion of your homework score will involve writing programs (applets, c++, or Mathematica) for one or more chapters of the text. The coding assignments will be done in groups (so no coding experience is required).

Grades (based on the letter, or A, A-, B+, B, B-, . . . system) will be based on a curve (no stricter than the traditional 90%, 80%, ... scheme) of the (approximately) 700 total points in the class (350 exams, 50 projects, 300 other). You are encouraged to work together on group assignments (including homework), but copying answers of others is not allowed and will result in no credit.

If any student has a physical, learning or psychiatric disability that restricts the development or expression of your gifts, please feel free to let me know so that we can, when possible, make accommodations that will enhance your classroom experience.

Late assignments and academic dishonesty

Late homework, activities, and projects will be penalized by 10% each lecture they are late, up to the date I return the graded assignments. Once I have returned an assignment (normally this will occur one or two class periods after I collect it), you will no longer receive credit for handing in that assignment. I am fairly flexible about giving exams at alternate times, BUT you should definitely warn me before the exam is missed, and plan on taking it early rather than late. Quizzes missed due to absences can NOT be made up. You are responsible for all of the material covered in class each day, even if you are not present.

Plagiarism, or copying answers from other people or books without citing the source is a serious offense and will result in no credit for the work. It is OK to discuss your answers with other groups on group assignments, but the work you turn in must be your own.

Class Materials

There is a dropfolder for this class (G:\Lintont\math390\ on local machines) that contains most of the materials below. It may be easiest to access the Mathematica files directly via the dropfolder, since Internet Explorer does strange things to them by default (or use Netscape).

Mathematica Notebooks

The Mathematica notebooks below are designed to help with the tedious and or time consuming calculations involved with each chapter of the text.

Shift cipher applications notebook.
Affine cipher applications notebook and the pallete notebook (download both and save in the same folder).
Keyword substitution ciphers, affine attacks, and letter-digram-trigram analyzer for "no space" ciphers, and cipher with spaces intact. There is a HELP file for these two letter frequency analyzer notebooks.

Java Applets

The links below point to HTML pages with applets to help automate the calculations needed for each chapter of the text. The source code for each applet is available from its HTML page, and on the class dropfolder. Many of these applets utilize the BreezyGUI package.
Local
Shift cipher applet. Performs calculations related to ciphers e(x) = x + b.
Affine cipher applet. Performs calculations related to ciphers e(x) = a*x + b.
Modular multiplier applet. Produces values k*x mod n, for k = start to end.
Letter frequency (as well as digram and trigram frequencies) analyzer applet.
Cryptogram applet, Internet Explorer or appletViewer only version, and the BreezyGUI version. Encrypt and decrypt monoalphabetic substitution ciphers (cryptograms).
Automatic keyword substitution encryption applet.
Word shuffler, or anagram analyzer.
Digram frequency calculator.
Vigenere encryption and decryption applet.
Index of Coincidence estimator.
Index of coincidence calculator and estimator.
Kasiski attack and text slicer applet.
Greatest common divisor and least common multiple applet.
Elsewhere
Cryptogram decoder applet (useful but requires some reading to figure it out).
Another cryptogram cracker that is fairly easy to figure out without reading.

Windows Executables

Other

Author's errata page.
Day one information sheet.
Group assignment one, modular cube roots and square roots, and exact versus estimated probabilities using random floats.
Tables of letter frequencies and digram-trigram information (from a local source).
Digram frequency chart, shows the frequency (high, medium, low, rare, or does not occur) for all digrams.
Group assignment number 2, using letter frequencies and digrams to attack substitution and affine ciphers.
Group ciphers for analysis and attack.
Useful statistical information on the English language from an outside source.
Anagram solver site 1, or site 2. Type in a scrambled word and see the list of possible anagrams.
Vigenere encryption table.
Group activity number 3, index of coincidence and the Vigenere encryption scheme.
Group part of exam 1.
Group HW number 4, decrypting Vigenere ciphers.
Exam number 2. To be done in groups, with your text and notes.
Final exam review sheet.

Schedule

Relevant information will be added to this schedule as we progress through the semester. An up to date version is available on line at http://www.central.edu/homepages/lintont/classes/spring01/crytography/cryptography.htm#schedule.
 
Week
Dates
Sections
Assignment
1
1-22 to 26
1.1 to 1.2
1.1#01,02,08,09,10,14,15,16
1.2#03 to 09,17,18,19,22
2 1-29 to 2-2 1.3, 1.4, 2.1
1.3#01,02,07
1.4#04 to 07,10 to 13,19,20
2.1#2 TO 6, 9,10,12
3 2-5 to 9 2.2 Group HW 1,
2.2#2,3,4,6,7,8,11,12
4 2-12 to 16 2.3, 2.4 Group HW 2,
2.4#2,3 (just for fun)
5 2-19 to 23 3.1, 3.2  3.1#1,2,4
3.2#3,5,6,9
6 2-26 to 3-2 3.3,3.4 3.3#1,4,5,6,9,10,12
3.4#1,2,5,9
3.5#1,4,5
7 3-5 to 9 4.1 Group activity 3 Vigenere
exam 1 group part
  Spring Break!    
8 3-19 to 23 4.1 4.1#3,4,5,6,7,8,9
4.2#4,8,9,10
9 3-26 to 30 4.2 to 4.5 4.3#1,2,3,6,8
4.4#2,5,9,10,11
4.5#1,2,3
10 4-2 to 6 4.4 and 4.5 Group HW 4
11 4-9 to 13 4.5  
12 4-16 to 20 6.1  
13 4-23 to 27 7.1 to 7.2 7.1#3,7,8,9,11,13,16
7.2#1,5,6
14 4-30 to 5-4 7.3 to 7.6 7.3#2,3,5,7,8
7.4#1,2,5,7,10
7.5#1,2,4,8
exam 2
15 5-7 to 11 review Final exam practice-review.
16
May 16
1 PM
Final Exam