Names                                                                            :
Group number                    :
Math 390, Cryptology Group HW 4
  1. 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.

  2. short cipher:
     
     
     
     
     
  3. 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.

  4. long cipher:
     
     
     
     
     
     
     
     
     
     
     
  5. Submit your ciphers to the class leaders (via email, bennettl@central.edu). Be sure to include your group number with your ciphers.
  6. 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):
    1. Use Kasiski to guess at the length of the key.
    2. Use offsets and IC estimations to guess at the length of the key.
    3. Predict the length of the key and use the Kasiski applet to cut the cipher into columns.
    4. 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.
    5. 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.
    6. 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.

    7.  

       
       
       
       

  7. 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.

  8.  
  9. 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

  10. 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.).