Name: Autokey
Type: Substitution Cipher Addon
Ease of use: Easy / Intermediate / Difficult
Breaking the code: Easy / Intermediate / Difficult N/A
Autokey is not a cipher, but rather an enhancement for any cipher that uses a keyword to perform substitution. The Vigenère cipher is the best known cipher to use as an example for this. If you use Autokey with a cipher then you take the keyword and append the plaintext or the ciphertext to it. This results in the use of a keyword that is not constantly repeated and thus eliminating some repeating patterns in the ciphertext. The method was invented by Girolamo Cardano, and later perfected by Blaise de Vigenère.
To incorporate Autokey into your cipher, you take the keyword and append the plaintext you are encoding to it. You can also choose to append the ciphertext to it while you are encoding. The rest of the encoding is done by the cipher you choose to use it with.
To decode again, the entire keyword will not be known, unless the method of appending the ciphertext was used. In that case you use the keyword appended with the ciphertext to decode the message. If the plaintext was appended during encoding, you start decoding with the keyword and then you will have to append to the keyword every plaintext letter you decode, thus reversing the process.
Cryptanalysis is depending on the cipher used together with Autokey. The analysis is made significantly more difficult though by the use of a non-repeating keyword.
Let's use the Vigenère cipher to encode the message 'Autokey is more secure' using the keyword 'VIGENERE'. The first method of Autokey would first combine the keyword and plaintext into 'VIGENEREAUTOKEYISMORESECURE'. The second method would start by using the keyword as is, and after a ciphertext letter is produced is is appended to it. You can try for yourself by using the tool for Autokey and the tool for Vigenère to encode the same message with the same keyword and see that the result will be different.
Continue to the tool for this cipher or go back to the list of ciphers.