|
|
|
|
In the box below please input a file that you would like to
encrypt using the XOR cipher. This file will be uploaded
to the server, encrypted, and presented to you for download.
You can then use this file as the input to the break below.
|
|
|
|
|
|
In the box below please input a file that you would like to
decrypt using the XOR cipher. This file will be uploaded
to the server, decrypted, and presented to you for download.
You can then use this file to verify the results of a break.
|
|
|
Find Solution To XOR Cipher
|
|
|
|
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.
|
|
|
Find Target KAPPA_P Value
|
|
|
|
This option is used to find the KAPPA_P value for a given
target plain text. The algorithm uses a target KAPPA_P of
.06721 based on standard ASCII plain text. Aside from the
XOR encryption algorithm, this is the only assumption one
must make about the plain text. If the text is a Word
document, image file, or binary executable file, the default
target KAPPA_P value will not be suitable. The process of
making a KAPPA_P value is to run through the target file
counting the number of times some byte occurs. The
algorithm then sums the ratio of that frequency count of those
bytes to the total number of bytes in the file, all squared
to get a target KAPPA_P value for that plain text. (i.e.
(F_i/N)^2, 0 < i < 256) NOTE: the KAPPA_P value will later
be used by the PHI test to compare the observed KAPPA_R with
the target KAPPA_P. Also, do not use the same plain text
you will be trying to break as the target. The intention is
not to have any knowledge about the exact format of the
original plain text.
|
|
| | | |