In order to use file save it as as "vigenere.hel" in the directory that Vig2.class is in. Vigenere Cipher Decryption Tool OVERVIEW -------- This tool provides a relatively intervention-free method of solving Vigenere ciphers. The tool relies heavily on the Incidence of Coincidence and Mutual Incidence of Coincidence for determining valid keylengths and providing relative offsets between individual key characters. As such, sensitivity controls are added for these two threshholds. Also, the Text Sniffer, which determines which shift of the suspected key reveals English text, relies solely on the relative frequencies of the e, a, t, and z characters. Again, some sensitivity controls are added to this test to provide some flexibility. The instructions for this tool are relatively simple. They are broken up below in the following sub-categories: -->Loading -->Saving Options -->Sensitivity controls Many ciphers can be solved completely just by adjusting the sensitivities and hitting the AUTOMATIC button. However, some may require more manual intervention, as described in the last section of the help. LOADING Ciphertext ------------------ Load by either typing the cipher text into the Ciphertext area (in all lower case) or by pulling an external file in via the File menu command. When the text to be decrypted is in view in the Ciphertext area, hit the INIT button. This will perform a character count on the text as well as a rudimentory Kasiski test. Both results show up in the Computations area. The Kasiski test studies the distances between repeating tri-graphs in the ciphertext to provide a best-guess estimate on the keylength. The actual keylength usually appears as a spike in the kasinski values. To start over on a new Cipher, simply initiate the NEW option in the File menu. SAVING Options -------------- This tool offers two separate saving options: saving the solved plaintext to a file (an obvious choice) or saving the current log of activity to a file. Both options are available from the file menu. Saving the current log of acitivity saves whatever information is available in the Computations text box to an external file. It will not save any information that has been cleared with the Clear Computations button. This option is handy when trying to solve particularly difficult ciphers that prove immune to the automatic processing. SENSITIVITY Options ------------------- The code provided does its best in decrypting the ciphers, but certain parameters may require intervention. IC SENSITIVITY: This parameter identifies the minimum IC for each column of text to validate the keylength that generates the column. If the keylength is not validated, the program will go no further in trying to decrypt using that keylength. The sensitivity can be increased (to weed out needless calculations) or decreased (to attempt to decrypt on keylengths that are marginally below the IC threshhold). MIC SENSITIVITY: This parameter is used to determine the offsets between individual characters of the key. If the threshhold is set to low, the offsets are likely to be incorrect. If the threshhold is set to high, some of the offsets may be missed and those characters unavailable for solving the key. In general, if the SUSPECTED KEY presented at the bottom has several A's in it, the threshhold is probably to high. Conversely, if no meaningful text is found from a key, the MIC threshhold may be set to low. TEXT MATCHING: The program uses a very simple algorithm for determining the validity of English text in a shifted environment. By testing 4 carefully selected letter frequencies (a,e,t,z) against their anticipated frequencies, it can be determined with relative certainty whether the text is valid. Text matching can be used to relax the threshholds at which the a,e,t, and z frequencies are considered valid. MANUAL Intervention ------------------- Many ciphers can be solved by loading, initializing, and hitting the automatic button. But for those that need more attention, some additional controls are added. TRY KASISKI To try a specific keylength, type the keylength in the KASISKI field and hit this button. If the Kasinski method that runs with the initialization points to a specific keylength, this can speed the process up considerably. TRY K1 If the program has determined an offset sequence for a specific keylength, and you wish to view the text generated by shifting the key N places, place the letter corresponding to this shift in the K1 field and hit this button. This can resolve texts which may have too few or too many a's, e's, t's or z's to be solved automatically. TRY KEY The most manual of the bunch, use this key to try a specific keyword. Used most often to finish up a key that has been mostly solved automatically.