This is a semester course which will teach the basics of cryptology. Students will gain an understanding of classic and contemporary encryption algorithms. Cryptanalysis techniques of classic ciphers will be studied and implemented. Some of the weaknesses of contemporary ciphers will be discussed. Students will also write simple visual basic (VB) programs to encrypt and decrypt text (other computer languages will be used where appropriate). The course will also introduce and use many mathematics topics that are not typically covered in High School. Technical paper will be used to expose students to the most current topics.

Day Class
Day 1 Introduction to cryptology
Day 2
  • Monoalphabetic ciphers (shift, affine, keyword, multilateral)
    • Congruence modulo n
Day 3
  • Decryption assignment (keyword)
Day 4
  • Extended Euclidean algorithm
Day 5
  • Programming assignment (Affine, using VB)
Day 6
  • Programming assignment (Affine, using VB)
Day 7
  • Programming assignment (Affine, using VB)
Day 8
  • Polyalphabetic ciphers (Vigenere, Autokey, Nihilist, Cylinder, Rotor)
Day 9
  • Decryption (Vigenere)
Day 10
  • Index of Coincidence - programming
Day 11
  • Index of Coincidence - programming
Day 12
  • Polygraphic ciphers (Playfair, Hill, Beale Cipher)
Day 13
  • Matrix multiplication, inverse matrices, reduced row echelon form, inverse matrices in Zm
Day 14
  • Classical transposition ciphers (Permutation, Column permutation, double-transposition)
Day 15
Day 16
  • Tools for decryption (VB) - Column permutation
  • The following things you need to have completed for class on Tuesday.
    • …all possible rectangles calculated
    • …vowel differences calculated
    • …and once dimension is selected the ciphertext is placed into a grid of those dimensions.
Day 17
Day 18
Day 19
Day 20
Day 21
Day 22