cypher breaking and genetic algorithms