Posts Tagged ‘Substitution cipher’

Cracking substitution ciphers 2.01 [English]

Thursday, September 23rd, 2010

I have previously published my CodeBreaker tool. Now I’ve updated it to version 2.01 (Download English version, Download German version), which features automatic cracking of English and German texts. Only one condition: The text has to contain spaces to show the words.

Everything else is done automatically. Hope it helps finding your cache. 😉

Solving substitution ciphers [English]

Sunday, September 21st, 2008

[UPDATE] This version is outdated. For the current version, please check this posting.[/UPDATE]

Version 1.00 of my CodeBreaker software is out. With this software you can decode texts where the letters have been substituted with other letters. In the easiest case, it’s just ROT13, but this can go up to random assignments (A=R, B=X, C=A, etc), which is called “Substitution cipher”.

And that’s how it’s done:

Everything is based on the frequency of letters. If a (coded) letter occurs very often in the text, then it will probably represent a (not coded) letter that used very frequently in normal texts.

To us the program, simply enter the encrypted text into the upper edit box. The program will count which letter is used how often and show a “ranking”: In form of one word with 26 letters. The most frequent letter (usually E or R in not coded text) will be the first letter of the word, followed by the second most frequent, etc.

Analyze letter frequencies and substitute characters

Analyze letter frequencies and substitute characters

The line below contains a “reference word”. Here you can simply enter what you think might be the key or use one of the predefined rankings (for German and English texts and numbers written as text).

Both lines form the “translation table”. Any letter in the upper line is replace by the corresponding letter in the lower line. This way the encoded text will be translated into the (hopefully) not encrypted text. Smaller corrections for letters that are used less frequently are always necessary, however.


  • Usually it makes sense to concentrate on the first words. Due to the coordinates you can often guess them.
  • Furthermore parts are interesting where the same letter occurs twice in a row or with little distance (Example: The word “seven” contains the letter “e” twice). The human eye is good at recognizing such things and it helps you make an educated guess.
  • If you have a suspicion or an unencrypted reference text, you can write that in the upper edit box, then copy the resulting ranking word from the upper into the lower line and finally enter the encrypted text in the upper edit box. If the encrypted and the reference text are similar, you should get a good result.

You can get the download here: CodeBreaker.exe