Secret warfare; the battle of codes and ciphers