Computer Science 321

Cryptography

Spring 2010

 

Instructor:

            Professor Tom Valente

            x6210

            Bagby 123

            Office Hours:  MWR 2:30-4:00 PM

 

Meeting Times:         

MWF 1:30PM-2:20PM in Bagby 120

 

Textbook:

Introduction to Cryptography with Java Applets, 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 in the past 25 years to schemes for both “private key” and  “public key cryptography”, and how these schemes play a role in today’s secure communications.

 

 

 

Objectives:

  1. Gain an appreciation of classical cryptography and the (discrete) mathematics that is involved.
  2. Learn enough Number Theory to understand modern cryptographic systems and why they are secure.
  3. Gain exposure to Java programming and especially its BigInteger class.
  4. Have lots of fun doing homework and other things (see below).

              

Our Plan:

            Weeks Of                               Topic                                      Textbook Chapter    

1/13, 1/18, 1/25, 2/1    A History of Cryptography                            1

                                    Also, some discussion of Java programming,

including with the BigInteger class.               2

 

2/8    Viewing of PBS Nova video “Decoding Nazi Secrets” (MW)

          and a field trip to National Cryptologic Museum in Maryland (tentatively Thurs Feb 11th).

           

            2/15                             Properties of The Integers                               3

            2/22                             LDEs and Linear Congruences                       4

            3/1                               Linear Ciphers                                                 5

            3/15                             The Chinese Remainder Theorem                   8

            3/22                             Quadratic Congruences                                  9

                                                MidTerm Exam                                   Friday Mar 26

            3/29                             Quadratic Ciphers                                           10

                                                Primality Testing                                             11

            4/5                               Factorization Techniques                                12

            4/12, 4/19                    Exponential Congruences                               13

                                                Exponential Ciphers,                                      

            4/19, 4/26                    RSA and its Weaknesses; The DES               14

                                   

Grading

            Homework (textbook exercises and programming)    45%

            Quizzes (probably 3, all during October)                    15%

            One in-class exam (March 26th)                                  15%

            Take-home Final Exam                                               25%

 

Home Grown Web Pages

            Notes for Friday Jan 29

            Caesar Cipher (random shift)

            Caesar Cipher (blocks)

            Experiment with Linear Ciphers

            A general monoalphabetic substitution cipher

            Vigenere Cipher and le Tableau

            The naive way to do GCD

            This site is for quick encoding of letters with 2-digit replacements.

            Modular exponentiation in the small.

           

Other Links  

            The Java API

            Crack this!

            Navajo Code

            The Enigma and the Bombe

            Tony Sale's Codes and Ciphers Page

            Classical Crytography

            Crypto Corner

            A nice ENIGMA simulator