a cipher to encode messages