From October 2008 to December 2008 I competed in the National Cipher Challenge by Southampton University and it was at this time that I became interested in simple cryptographic methods. In order to help me solve the puzzles of the challenge, and out of my own interest, I created a number of Linux command line programs in C to solve individual ciphers. Eventually, I pulled all of the programs together into a single cross platform GUI program, written in C++ and using wxWidgets, so that it was easier to use and maintain, and it enabled others to use it with very little difficulty.
The final program supports numerous valuable functions for cryptanalysis of simple ciphers, such as letter frequency, contact frequency (how often certain letters follow other letters) and asymmetric contact analysis (opposite orders of two letters subtract from each other, which is useful for finding ‘THE’). It can also calculate how much a certain block of text matches English by letter frequency and contact frequency, which is useful for more advanced functionality. The program can calculate the probable keys of ciphers encrypted with the Vigenere cipher and use these to decrypt it. Furthermore it can break Affine ciphers and Caesar shifts very easily, and it provides a very useful tool to enable fast decryption of substitution ciphers.
Code is available at the repository.