This allows you to take a file encrypted with the XOR cipher and, with only some assumed knowledge about its format, deduce both the plain text and the key.

Key Length: This is so you can specify the key length manually. The algorithm is perfectly capable of finding this value on its own, but its choice is based on the most probable length. If it chooses an incorrect value for the key length you will not get the correct solution. This gives the user the option of specifying the length, in the case where the algorithm chooses the wrong one. You can find the possible key lengths in the data output.

Set KAPPA_P: The KAPPA_P value is described below. One would use this option if the target plain text is something other than standard ASCII. To get the KAPPA_P for your target plain text use the option for getting KAPPA_P below. (Default is: .06721)

Only IOC: This means the program will only print the IOC (Index of Coincidence) information about the ciphertext. One would use this option to get an idea of the possible key lengths and if the KAPPA_P value needs to be adjusted. A better KAPPA_P value will lead to more accurate key length predictions.

ALPHA Threshold: The algorithm depends on a PHI test to determine its probable key lengths. In this test there is a PHI_R (PHI random) and a PHI_P (PHI plain text) and an observed PHI. To choose a key length that looks good we want our observed PHI to fall between PHI_R and PHI_P: the closer to PHI_P the better. The problem is, there are many observed PHI values that meet this criteria. So we are using ALPHA to represent a requirement for marking candidate key intervals. We expect the candidate keys to be at least ALPHA percent of PHI_P. The default is 85%. If the key interval is a rhythmic, then it is best to adjust this percent to a value that yields a fairly standard interval, and thus a base key length with multiples.

DELTA Threshold: Once the key length is deduced the algorithm moves on to a basic monoalphabetic analysis of the ciphertext at intervals of the key length. This means that if the first character of the key is an 'H' that a decryption based on 'H' should, for all 256 bytes, yield something that looks like our target plain text. The target plain text here is referred to as DELTA data, and the DELTA Threshold is how close we would like our decryption based on 'H' (or some key character) to be to our DELTA data. The default DELTA Threshold is 45%, because it works empirically. There is a 20% scalar thrown in behind the scenes for the calculation of the best looking key, but 45% works well for standard ASCII English text. One may want to change this value if working with anything else.

DELTA Data: This is a file that looks and smells like the original plain text, but is NOT the same. For all intents and purposes this is the same data file use for the alternate KAPPA_P test. It will allow for an empirical frequency table based on something OTHER than standard ASCII English text. The data here will be used in conjunction with the DELTA Threshold above; however, you may not need to change the Threshold from its default value. So again, use this option when you are trying to solve a cipher for for anything other than standard ASCII English text.

Key Length:
Only IOC:
ALPHA Threshold:
DELTA Threshold:
Crack This File: