Get Cracking

I found an interesting puzzle posted by the FBI recently. It is a challenge to decipher some code. The code is a bunch of symbols. Heopfully each symbol is just a reference to a certain letter or character. The FBI was nice enough to show us where the spaces are in the words.

My interest is to see if I could maybe write a program to do the cracking for me. The symbols look like they each have nine positions. Those positions are sometimes occupied by a circle. When the circle is present, it is filled in with one of a few different colors.

Well I could scan in the picture with my software. Divide up the words by the spaces between them. Then identify where the circles are and what colors they contain. I could definitely represent this as something better that symbology with circles. In fact, assuming this is a simple substitution cipher, I would just want to represent each distinct symbol with a number.

Then I could perhaps do some sort of brute force deciphering. The software should know which letters occur most frequently in normal text. Then it could choose a mapping based on how often the letters show up in the encoded message. Then it could take each word using the current mapping, and see whether the words are in a dictionary.

The software, if fast enough, could iterate through all possible combinations of mappings. Then it could generate a score for each mapping based on how many words are spelled correctly accoring to a dictionary. The software would then present the translation for the highest scoring mappings to the user, who could make the final determination as to what makes sense.