Computer Science 321.01
Cryptography
Spring 2018
Instructor:
Professor Tom Valente
x6210
Bagby 123
Office Hours: MTuWR 2:30PM-4:00 PM
Meeting Times:
MWF 1:30PM – 2:20PM in Bagby 020
Textbook:
Cryptpology Unlocked by David Wayne Bishop
Course Description:
Cryptography is the study of the design and implementation of systems for enciphering secret messages. A message is encrypted or “enciphered” using a “cipher”, which is a scheme for replacing “plain text” with “cipher text”. Naturally, a means must exist for the intended recipient to decipher or “decrypt” the cipher text. It should be that the algorithms for encryption and decryption must both be fast in the presence of a so-called “key”. It should also be the case that decryption without the so-called key is computationally difficult, if not unfeasible.
A great deal of mathematics is required for the design of cryptographic systems, much of it from the field known as number theory, though fields such as abstract algebra and linear algebra often play a role as well. Thus, we will hope to learn a fair amount of mathematics in order to appreciate both the design of cryptographic systems and also whether or not such systems are vulnerable to attack by “cryptanalysis”.
Our tour of cryptographic systems will be, in part, historical. We’ll want to know about a system used by Julius Caesar roughly 2000 years ago, and the kinds of systems that were used throughout the centuries leading up to the 20th Century. We’ll want to know about the more sophisticated systems used during World War II, when, for the first time, computers were involved in code breaking. Finally, we’ll want to know about how classical number theory results by Fermat and Euler from the 18th century have contributed, only since the 1970’s, to schemes for both “private key” and “public key cryptography”, and how these schemes play a role in today’s secure communications.
Objectives:
The Plan:
Weeks Of Topic Textbook
Chapter
1/15, 1/22 A
History of Cryptography
1
through World War I
1/29 Code breaking during World
War II (various media)
2/5 The complexity of some
simple “big integer” algorithms,
motivated by
the author’s “big integer” class, and an 2
introduction
to Java’s BigInteger
class.
Properties of Integers 3
2/12 LDEs
and Linear Congruences 4
2/19 Linear
Ciphers 5
2/26 The
Chinese Remainder Theorem 8
3/12 Quadratic
Congruences 9
3/19 Quadratic
Ciphers (introduce Mca) 10
Exam (March 23rd)
3/26 Primality
Testing 11
4/2 Factorization
Techniques 12
4/9 Exponential
Congruences 13
Exponential
Ciphers,
4/16, 4/23 RSA and its Weaknesses; 14
Key
Exchanging and Digital Signatures
Homework (textbook exercises and programming) 45%
Quizzes (probably 3 or 4, all prior to March 23rd) 10%
One semester exam (March 23rd) 15%
Take-home Final Exam 30%
Home Grown Web Pages
A general monoalphabetic substitution cipher
Experiment
with Linear Ciphers
Vigenere Cipher and le Tableau
This site is
for quick encoding of letters with 2-digit replacements.
Modular
exponentiation in the small.
Other Links
Videos
about the German ENIGMA machine
Tony Sale's Codes and Ciphers Page