Evolving S-boxes based on cellular automata with genetic programming