Assignments are listed here chronologically by due date. New assignments will tend to be at the bottom of the page.

Jump directly to Week 1 | Week 2 | Week 3 | Week 4 | Week 5 | Week 6 | Week 7 | Week 8 | Week 9 | Week 10

The author of the textbook maintains a list of errata.

Week 1: Wednesday

• Reading Assignment for Wednesday of First Week:
• Read the Handout - Section 1.1 from Mollin's An Introduction to Cryptography. (On Moodle.)

• Discussion Questions for Wednesday of First Week:
I will ask students to present/describe the following historical ciphers:
• Spartan skytale
• Caesar substitution
• Alberti cipher disk
• Porta digraphic cipher
• Cardano grille
• Vigenere autokey cipher

I will ask students to present solutions to the following exercises from the reading in Mollin:
• Exercise 1.1
• Exercise 1.3
• Exercise 1.5

• New material for Wednesday of First Week:
TBA

Week 1: Friday

• Reading Assignment for Friday of First Week:
• Read Chapter 2 of Stallings.
• Read Chapter 1 of Sweigart.
• Download Anaconda (Anaconda download) and open Spyder if you want to learn some Python this quarter. You may follow this tutorial to get started: Intro to Python.

I am assigning students to lead particular discussion questions. As a general rule of thumb, you should be prepared for your question, as well as the questions immediately before and after yours, in case someone is absent. If you are not assigned to lead any discussion questions on a particular day, I expect you will still work on them to be able to contribute to the discussions.

• Discussion Questions for Friday of First Week:
• (Skylar & Aidan) By giving an example, discuss how to encrypt with the Vigenere cipher.
• (Owen & Liam) Discuss the crytanalysis techniques used in breaking the Vigenere cipher.
• (Colleen & Joo Young) Discuss how the Vernam cipher works.
• (Dahwi & Raoul) Describe how the one-time pad works. Discuss why it is not commonly used, even though it offers complete security.
• (Raphael & Edward) Discuss transposition ciphers and how they can be made to be difficult to cryptanalyze.
• (Marlisa & Elaine) Discuss how rotor machines work and why they are significant.
• (Zaza & Charles) What is steganography, and why would anyone ever use it?

• New material for Friday of First Week:
• Homework 1 is now available and is due Wednesday of 2nd Week.
• Project 1 is now avaiable and is due Friday of 2nd Week.

Week 2: Monday

• Homework Problems for Monday of Second Week:
TBA

• Reading Assignment for Monday of Second Week:
• Read Chapter 2 of Alfred Beutelspacher's Cryptology, available on Moodle.
• Read Section 4.1 and pp. 108-112 of Section 4.3 of Stallings.

• Discussion Questions for Monday of Second Week:
• (All) Work on decrypting the example in Figure 2.2 of Beutelspacher's book. Come prepared to discuss difficulties or questions regarding it.
• Problem 4.6 (All)
• Problem 4.7 (All)
• (All) Problem 4.9.
• Problem 4.11. (All)

Week 2: Wednesday

• Homework Problems for Wednesday of Second Week:
HW 1 is due.

• Reading Assignment for Wednesday of Second Week:
• Read Appendix G: Simplified DES. (Available on Moodle.)

• Discussion Questions for Wednesday of Second Week:
• (All) Watch as much of this video by Steven Gordon walking through an example of SDES as you need to get the idea of how it works: Simplified DES (It's over an hour long, but does have some good information!)
• (All) Attempt to work through SDES with the plaintext input of 10100101 and the key of 0010010111.

Week 2: Friday

• Homework Problems for Friday of Second Week:
Project 1 is due, but you may have an extension until Wednesday of Week 3 if needed.

• Reading Assignment for Friday of Second Week:
• Read Sections 3.1 - 3.4 of Stallings.
• Begin reading Chapters 1 and 2 of Crypto by Levy.

• Discussion Questions & New Material for Friday of Second Week:
• (ALL) Test the Avalanche Effect on SDES with the same key as in Wednesday's discusssion, but with plaintext input of 11100101 (plaintext from Wednesday, except 2nd bit is flipped).
• (Chris) Explain what an ideal block cipher is.
• (YanYan) Define what diffusion is.
• (Sarah) Define what confusion is.
• (Alex & Colleen) Describe the Feistel cipher structure.
• (Erik & Lionel) Explain how the first round of decryption works in a Feistel cipher.
• (Younsuk & Raphael) Discuss the overall scheme for DES encryption.
• (Charles & Eli) Discuss the initial permutation of DES.
• (Skylar & Jacob) Discuss how a single round in DES works.
• (Raoul) Discuss key generation in DES.
• (Liam & Aidan) Discuss the Avalanche Effect in DES.
• (Owen & Dawhi) Discuss the strength of DES.

Week 3: Monday

MLK Day - No class

Week 3: Wednesday

• Reading Assignment for Wednesday of Third Week:
• Read Sections 3.5 and 3.6 of Stallings.
• Read Sections 4.1 - 4.3 of Stallings.

• Discussion Questions for Wednesday of Third Week:
• Last two DQs from Monday of Third Week.
• (Chris M and Dan) Discuss a differential cryptanalysis attack on DES.
• (Clare and Carlton) Discuss linear cryptanalysis of DES.
• (Alex) Discuss the DES design criteria.
• (Keaton) Discuss how the number of rounds is determined in a block cipher design.
• (Trung) Discuss the design of a function F in a block cipher.
• (Chris C) Discuss the key schedule algorithm in a block cipher design. What are the strict avalanche criterion and the bit independence criterion?

Week 3: Friday

• Reading Assignment for Friday of Third Week:
• Read Chapters 1 and 2 of Levy's Crypto.

• Discussion Questions for Friday of Third Week:
• Post at least 2 questions/comments on the forum for this reading on Moodle

• New material for Friday of Third Week:
Homework 2 is now available and is due Friday of 4th week:
• Problem 3.8.
• Problem 3.10.
• Problem 3.13.
• Problem 3.18.

Week 4: Monday

• Reading Assignment for Monday of Fourth Week:
• Read sections 4.4 and 4.5 of Stallings.
• Read sections 8.1 and 8.2 of Stallings.

• Discussion Questions and New Material for Monday of Fourth Week:
• Euclidean Algorithm & Examples
• Assuming a > b, and gcd (a, b) = 1, explain (or write some code to show how) how the extended euclidean algorithm will allow us to calculate the inverse of b mod a.
• 4.19(c).
• 4.15(a).
• 4.16.
• 4.17.

Week 4: Wednesday

• Reading Assignment for Wednesday of Fourth Week:
• Read sections 8.3-8.5 of Stallings.

• Discussion Questions for Wednesday of Fourth Week:
• Hints for HW
• Fundamental Theorem of Arithmetic (FTA)
• Gcd, Lcm with FTA
• Discuss and prove Fermat's Little Theorem.

Week 4: Friday

• Homework Problems for Friday of Fourth Week:
Homework 2 is due. See Friday of Week 3 for the problems.

• Reading Assignment for Friday of Fourth Week:
• Chapters 3 and 4 of Crypto by Levy.

• Discussion Questions for Friday of Fourth Week
• Post two comments or discussion questions on the Moodle forum for Chapters 3 and 4.
• Problem 8.4.
• Prove that the two forms of Fermat's Little Theorem are equivalent.
• Define Euler's totient function.
• Explain Euler's Theorem.
• Problem 8.8.
• Problem 8.9.
• Problem 8.10.
• Problem 8.11.
• Problem 8.12.
• Give an example to illustrate the second property of prime numbers from p. 252.
• Describe the Miller-Rabin Test.
• Problem 8.15.
• Problem 8.16.

• New Material for Friday of Fourth Week:
Homework 3 is now available and is due Wednesday of 5th Week:
• Problems 4.15(b), 4.19(a).
• Suppose a and b are integers with gcd(a, b) = d. Show that gcd(a/d, b/d) = 1.
• Problems 8.6.

Week 5: Monday

• Reading Assignment for Monday of Fifth Week:
• Section 8.5 of Stallings.
• Sections 9.1, 9.2.

• Discussion Questions for Monday of Fifth Week:

Week 5: Wednesday

• Homework Problems for Wednesday of Fifth Week:
The Take-home Midterm will be available today. It will be due Monday of Sixth Week.

• Reading Assignment for Wednesday of Fifth Week:
• Sections 9.1, 9.2.

• Discussion Questions for Wednesday of Fifth Week:
Continue questions from Monday, starting with Dan's DQ.

Week 6: Monday

• Reading Assignment for Monday of Sixth Week:
• Read Sections 9.1 and 9.2.

• Discussion questions & new material for Monday of Sixth Week:
• What are the important characteristics of asymmetric algorithms?
• What are the 6 ingredients of a public-key encryption scheme?
• Discuss Figure 9.2.
• Discuss Figure 9.3.
• Discuss Figure 9.4.
• Discuss the conditions that Diffie and Hellman laid out that a public-key system must fulfill.
• Discuss one-way functions and trap-door one-way functions.
• Discuss public-key cryptanalysis.
• Describe the RSA algorithm.
• Show an example of RSA.
Week 6: Wednesday

• Reading Assignment for Wednesday of Sixth Week:
• Read the rest of Chapter 9.

• Discussion Questions and New Material for Wednesday of Sixth Week:
• Group discussions of Crypto chapters 3 and 4.
• Discussion of Diffie and Hellman's requirements that any public-key cryptosystem should fulfill.
• Discussion of one-way and trap-door one-way functions.
• Group discussions on security of RSA: the factoring problem, timing attacks, chosen ciphertext attacks.
• Rabin public key cryptosystem.(This is not in your book; see the Wikipedia page for Rabin cryptosystem or look it up in another source.)

• New Material for Wednesday of Sixth Week:
Homework 4 is now available and is due Wednesday of Seventh Week:
• Problems 8.19, 9.1, 9.7, 9.10, 9.13, and 9.18 of Stallings.
Week 6: Friday
• Reading Assignment for Friday of Sixth Week:
• Be sure to have read chapters 5 and 6 of Crypto.
• Read Sections 10.1 and 10.2 of Stallings.

• Discussion Questions and New Material for Friday of Sixth Week:
• Submit at least two comments or questions for discussion regarding chapters 5 and 6 of Crypto via the discussion forum on Moodle.
• This exercise has you encrypt and decrypt using the Elgamal cryptosystem. Let p = 1777, and choose a generator alpha = 6 of F1777*. Alice chooses a private key of a = 1009. Her public key is then (1777, 6, 1729).
1. Show how Alice got 1729 as the third component of her public key.
2. Bob wants to encrypt 1483, and chooses a private number b = 701. Compute the ciphertext Bob sends to Alice.
3. Show how Alice obtains the plaintext.
• Suppose n = pq, where p and q are distinct odd primes, and suppose that the congruence x2 = a (mod n), 0 < a < n, has a solution x = x0. Show that there are exactly four incongruent solutions mod n.

Week 7: Monday

• Reading Assignment for Monday of Seventh Week:
• Make sure you have read Sections 10.1 and 10.2 of Stallings.

• Discussion Questions for Monday of Seventh Week:
• Be sure you have posted questions from Chapters 5 and 6 of Crypto
• Be prepared to discuss the Elgamal encryption example from Friday Week 6.

Week 7: Wednesday

• Reading Assignment for Wednesday of Seventh Week:
• Read Sections 11.2, 11.3, 11.5 (pp. 342-349).

• Discussion Questions and New Material for Tuesday of Seventh Week:
• Bring in HW 4 questions.
• Discuss the XOR hash function.
• Discuss the rotated XOR hash function.
• Define the preimage of a hash value and discuss how many preimages each hash value has.
• Define a collision.
• Discuss the security requirements for cryptographic hash functions.
• Discuss brute force attacks on hash functions.
• Discuss preimage and second preimage attacks.
• Discuss collision resistant attacks.
• Discuss cryptanalysis attacks on hash functions.

Week 7: Friday

• Reading Assignment for Thursday of Seventh Week:
• Be sure to finish reading Sections 8.5, 11.3, 11.5

• Discussion Questions and New Material for Thursday of Seventh Week:
• Discuss brute force attacks on hash functions.
• Discuss collision resistant attacks.
• Discuss cryptanalysis attacks on hash functions.
• Work through the SHA-512 algorithm and round function.

Week 8: Monday

• Reading Assignment for Monday of Eighth Week:
• Read Sections 12.1 - 12.4 of Stallings.

• Discussion Questions and New Material for Monday of Eighth Week:

Week 8: Wednesday

• Reading Assignment for Wednesday of Eighth Week:
• Read Chapter 13 of Stallings.

• Discussion Questions and New Material for Wednesday of Eighth Week:

Week 8: Friday

• Reading Assignment for Friday of Eighth Week:

• Discussion Questions for Friday of Eighth Week: EVERYONE must post two comments or questions for discussion on Moddle, related to the last few chapters of Crypto, or about the book as a whole.

Week 9: Monday

Week 9: Wednesday

• Reading Assignment for Wednesday of Ninth Week:

• Discussion Questions for Wednesday of Ninth Week:
• Work on Projects and or HW 5.
HW #5 is: Problems 11.2, 13.1, 13.2, 13.7, 14.1.

Week 9: Friday

• Reading Assignment for Friday of Ninth Week:
• Read Section 18.1 in Stallings.

• Discussion Questions for Friday of Ninth Week:

Week 10: Monday

• Final discussion of Crypto. Everyone should post 2 thoughts/comments for discussion on the Wiki on Moodle.

Week 10: Wednesday

• HW #5 is due
• Discussion of current topics in Cryptography
• Everyone should post an article or link to some current issue related to cryptography on the Wiki on Moodle.

Week 10: Friday

• Wrap up