Traditional ciphers: examples and code