Consider an encryption algorithm that works as follows
1- An initial key is exchanged based on a mono-alphabetic initial substitution
table or configuration that is shared between the two communicating parties
in addition to a number that represents the location of the shift-key SK in the
cipher text.
2- Encryption is done by substituting the first (SK-1) plain text letters with
cipher text letters according to the initial configuration.
3- The letter number SK is added to the plaintext to represent the number of
shifts of letters in the initial configuration in a cyclic manner, i.e. mod 26.
The added letter is also encrypted using the initial configuration.
4- The second set of (SK-1) plain text letters should be mapped to cipher letters
according to the new configuration of the mono-alphabetic substitution. A
new letter is added to represent the number of shifts of the letters to produce
the third configuration or table. Again this added letter is encrypted using the
second configuration.
5- This process repeats for the rest of the characters. The selection of the shift
letters that are added to the text should be based on a static set of letters
chosen by the party that encrypts the plain text. The use of these letter can be
repeated for more than one round in case the plain text is longer than what
can be supported by one round.
Example:
Assume the following initial configuration (red table) that represents the key along
with the SK=9 which mean the 9th character is the shiftkey.
abcdefghijklmnopqrstuvwxyz
hilwmkbdpcvazusjgrynqxofte
Now consider the following plain text and its corresponding cipher text.
Since we have SK=9 then the first 8 letters have been encrypted using the
first table (in red). Assume that the sender has chosen {e, b, d} as the set of
shift letters. Letter e represents a shift of 4 and results with the second table
(in blue). Accordingly, the second part of 8 letters are encrypted based on
the second table. The next SK letter is b=1 and results in the third table (in
green) which is used in encrypting the third part of 8 letters according to the
substitution specified in that table. The last SK is d=3 that produces the
fourth table according to which the last 7 letters are encrypted.
Plain text: green car has been detected on campus
Plain text-with shift letters: green care has been dbetected odn campus
Cipher text: brmmu lhrm wos fhhc ef esefset ctk qymdzv
abcdefghijklmnopqrstuvwxyz
oftehilwmkbdpcvazusjgrynqx
abcdefghijklmnopqrstuvwxyz
xoftehilwmkbdpcvazusjgrynq
abcdefghijklmnopqrstuvwxyz
ynqxoftehilwmkbdpcvazusjgr
Implement an automated frequency analysis technique using frequency analysis
that allow you to
1. Decide on the frequency of single letters.
2. Decide on the frequency of diagrams.
3. Decide on the frequency of trigrams.
4. Decide on the length of the SK.
5. check for the validity of discovered words according to an English word list
or dictionary.
6. The technique can be interactive. This means that it can interact with the
user to get his input related to the discovered frequency and in case there is a
potentially similar frequency then the use can help in deciding on how the
software should move forward.