Artificial life techniques for cryptology