Genetic algorithms were used in an attempt to generally solve two classes of simple substitution ciphers. First, the full key space of all possible substitution ciphers was searched. When this approach was met with limited success, the simpler approach of searching the more likely used keyword generated key space was implemented. This yielded somewhat more results. 1 Background and Motivation The simple substitution cipher has not been a secure form of communication for hundreds of years, yet a great deal about statistical analysis of cipher-text can be learned from investigating these insecure ciphers. Though certainly solvable, an attack on the general substitution cipher, with spaces and punctuation removed, is much more difficult than the cryptograms many people solve on the crossword page of the Sunday paper. A generic substitution cipher takes as a key a mapping from each cipher-text character to a plain-text character. This is most easily described as twenty-six pairs of characters. There exist 26! or 403291461126605635584000000 such keys. This is a huge search space. Simply trying all possible keys in a brute force attack is not a viable option. Using first order statistics however and pattern matching deciphering these ciphers is almost trivial for a person with some time to work on it. [3] Particularly interesting is breaking with these ciphers in an automated manner or through unusual means. A novel approach to the problem may reveal something interesting about cryptography in general or if successful might be applicable to other more secure ciphers. 2 Genetic Algorithms A genetic algorithm is general method of solving problems to which no satisfactory, obvious, solution exists. It is based on the idea of emulating the evolution
[1]
Anthony J. Bagnall,et al.
The Applications of Genetic Algorithms in Cryptanalysis
,
1996
.
[2]
John R. Koza,et al.
Genetically breeding populations of computer programs to solve problems in artificial intelligence
,
1990,
[1990] Proceedings of the 2nd International IEEE Conference on Tools for Artificial Intelligence.
[3]
Simon Singh,et al.
The Code Book
,
1999
.
[4]
John R. Koza,et al.
Automatic Creation of Human-Competitive Programs and Controllers by Means of Genetic Programming
,
2000,
Genetic Programming and Evolvable Machines.
[5]
John A. Biles,et al.
GenJam: A Genetic Algorithm for Generating Jazz Solos
,
1994,
ICMC.
[6]
Thomas P. Jakobsen,et al.
A Fast Method for the Cryptanalysis of Substitution Ciphers
,
1995
.