-
Select a short message (about 500 characters, you can use the textanalyzer
applet to check the length), a key (no repeated letters allowed and keep
it short, less than 10 characters or so), and then use the Vigenere
applet to encrypt your short message. Record the encrypted short message
below.
short cipher:
-
Select a long message (about 3000 characters, you can use the textanalyzer
applet to check the length), a key (repeated letters are allowed
this time, but not too many, and keep it short, less than 10 characters
or so), and then use the Vigenere applet
to encrypt your long message. Record the encrypted long message below.
long cipher:
-
Submit your ciphers to the class leaders (via email, bennettl@central.edu).
Be sure to include your group number with your ciphers.
-
The class leaders will designate two groups' ciphers for your group to
decrypt. For each decryption proceed as follows (and write up these steps
in a fairly detailed manner):
-
Use Kasiski to guess at the length of
the key.
-
Use offsets and IC estimations to guess
at the length of the key.
-
Predict the length of the key and use the Kasiski
applet to cut the cipher into columns.
-
Find the possible "shift differences" between columns. You should estimate
enough of these differences so that if someone told you the first character
of the key, you would instantly be able to write down the rest of the letters
in the key. In your write up, include some details for this part. The IC
calculator applet should be helpful here.
-
Analyze column 0 with the text analyzer
applet and try to find the first character of the key (note that column
zero is "English + k1", so try to find a number k1 with "col 0 - k1" having
frequencies of plain English.
-
Try another route to finding k1 = the first character of the key, by selecting
some English (any English will do, but you'll need about as many characters
as the length of your cipher's column 0) and calculating
the IC of your English and "column 0 - k" (i.e. Ceasar shift column
0 by -k) for k = 0 to 25. The values of k that yield high IC's are likely
candidates for k1 = the first character of the key.
-
For up to 15 points extra credit, write a program that takes as input a
String (that has been Vigenere encrypted) and outputs one or more (accurate
or good) guesses at the length of the key.
-
For up to 15 extra credit points, write a program that takes as input a
String (that has been Vigenere encrypted) and an integer (the number of
letters in the key) and outputs either accurate guesses at the key, or
accurate guesses at the differences between the characters in the key.
For example, if the the key is aedi, your code might output
something like k1 possibles: 0,19
k2 possibles: k1 + 4, 11
k3 possibles: k1 + 3, 12 or k2 + 25
k4 possibles: k1 + 8 or k2 + 4, 8 or k3 + 5, 17
For the extra credit questions, you might want to use the code inside
of the applets for this class (Kasiski, IC, Shift, textanalyzer etc.).