Bacon cipher
Encode each letter as five A/B symbols, then hide the symbols where nobody looks.
Five symbols per letter
Two symbols in five positions give thirty-two combinations. The classic alphabet spends twenty-four of them and leaves eight that decode to nothing. A is AAAAA, B is AAAAB, C is AAABA, and the count runs on in binary from there.
Francis Bacon set the principle out in The Advancement of Learning in 1605, calling the highest form of ciphering the ability to write omnia per omnia. The alphabet table was printed in the expanded Latin edition of 1623. That is a general-purpose binary encoding, two and a half centuries before Baudot put one on a telegraph wire.
The line loaded above is the English of Bacon’s own ipsa scientia potestas est, from the Meditationes Sacrae of 1597.
The hiding place
Bacon’s demonstration set an innocuous cover text in two subtly different typefaces, one standing for A and one for B, so the stream reached its reader without ever appearing as ciphertext. Five characters of cover carried one character of message, which is the quintuple proportion Bacon specified.
Bacon wanted three things from a cipher: that it be quick to write, safe against deciphering, and free of suspicion. This scheme exists for the third. A reader sees a letter about the weather and has no ciphertext in front of them to attack.
Typefaces are only the cheapest carrier. Any binary distinction a reader will not consciously register carries the stream: upright against italic, capital against lowercase, two shades of ink close enough that nobody looks twice.
No secret except the carrier
There is no key, so there is nothing to guess. All that is concealed is the presence of a message, and a reader who notices the alternation has the plaintext straight away. What protection exists lives in the cover text and lasts exactly as long as the cover goes unremarked.
The two alphabets
The classic alphabet has twenty-four letters, with I and J sharing a code and U and V sharing a code. That is what Bacon printed, and it makes decoding lossy on those four: encode Julius and it comes back as iulius. The 26-letter option is a modern convenience that gives every letter its own code and round-trips unchanged.
Encoding ignores case, drops everything outside the alphabet, and writes the result in five-symbol groups, so spaces, digits and punctuation do not survive. Decoding reads the A and B symbols, ignores everything between them, and refuses when what remains is not a whole number of groups.
Related
Invisible characters are where the same instinct went once text stopped being printed. Baudot is the five-bit code that actually carried traffic.