DRAFT:I will finish up the instructions ASAP, but this should get you started.

For the following problems:

 

1.      [4 points]This problem investigates the Hill cipher.

a.       Using the big-Oh notation, how fast is encoding in a Hill cipher, as a function of the length n of the ciphertext and the dimension m of the key? How about decoding?

b.      Create software that can encode and decode using a Hill cipher.

2.      [4 points]Create software that can perform a fast known plaintext attack on a Hill cipher, given the dimension m. How fast are your algorithms, as a function of �?

3.      [1 point, after doing the previous problem]
Same as previous, but without knowing m.

4.      [4 points] This problem investigates the question:

How hard is it to break a Vigenere cipher by brute-force search?

Recall that a Vigenere cipher is �

Recall that brute-force search is �

a.       How many keys are possible in a Vigenere cipher whose key is length m and whose alphabet has 26 letters?

b.      Given a key, how can you tell whether that key is the �right� key?[Hint:many answers are possible here.]

c.       Write software that meets the following specification:

                                                   i.      Input:a string of characters (the ciphertext) and a key length m.

                                                 ii.      Output:All possible plaintexts �

5.      [8 points] Improve your software from the previous problem to produce the possible plaintexts in order of likelihood.It would be good if your user interface allowed the user to specify �give me the top 10 possible plaintexts� � It would be good if your software for this part worked for any cipher.

6.      [12 points] Write software to break Vigenere using index of coincidence �

7.      [8 points] Show that a Hill cipher is not susceptible to a single-letter frequency attack.

8.      [1 point]Students in class suggested two ways to decode a 3x + 2 affine cipher:table lookup and subtract 2 and divide by 3 (mod 26).Which is better?Why?(Give advantages and disadvantages of each).Extend your answer to a general ax + b affine cipher.