Computer Science 321.01
Professor Tom Valente
Office Hours: MTuWR 2:30PM-4:00 PM
MWF 1:30PM – 2:20PM in Bagby 020
Cryptpology Unlocked by David Wayne Bishop
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.
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
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
This site is for quick encoding of letters with 2-digit replacements.
Modular exponentiation in the small.