Bacon Cipher (Baconian)
A steganographic-style cipher that encodes letters as patterns of A and B (often hidden in text styling).
History & context
Bacon’s cipher is historically famous because it’s as much about hiding a message as encrypting it. The classic idea is to encode letters using two symbols (A/B), often disguised as two text styles (uppercase/lowercase, bold/normal, serif/sans). In modern puzzles, the hardest part isn’t the substitution—it’s noticing the two-channel signal and extracting it cleanly.
How Bacon Cipher (Baconian) works
1) Decide which visible feature means A vs B (e.g., lowercase=A, uppercase=B). 2) Read the cover text and convert each character into A or B. 3) Group A/B into chunks of 5. 4) Convert each chunk into a letter using the Baconian table. Classic tables often merge I/J and U/V, but modern variants may not.
Core rules
- Two distinct symbols/styles represent A and B.
- Group into 5s (classic) to map to letters.
- Variant tables differ (I/J merge, U/V merge, or full 26 mapping).
- Extraction is the hard part: formatting can be lost in copy/paste.
Worked example
How to encode / decode
Step-by-step
- Pick a Bacon table variant (classic vs full 26).
- Convert plaintext letters into A/B 5-tuples.
- Choose a carrier: text where you can encode A/B via styling (case/bold/font).
- Apply styling for each carrier letter to represent the next A/B symbol.
- Verify extraction survives the medium (screenshots/HTML preserve better than plain copy).
How to break a Bacon Cipher (Baconian)
Breaking Baconian is mostly: 1) detect the two-channel signal, 2) extract A/B reliably, 3) pick the correct table. Once extracted, try both A/B polarity assignments (swap A↔B) and try classic vs full-26 tables.
Practical checklist
- Identify the two encodings (case, font weight, punctuation type, spacing, etc.).
- Map one style to A and the other to B (try both ways if unsure).
- Extract a continuous A/B stream and group into 5s.
- Decode with the Bacon table; if gibberish, swap polarity or switch table variant.
- If output is close-but-wrong, check grouping offset (start 1–4 symbols later).
What frequency looks like
Frequency analysis on letters isn’t the main tool—Bacon hides a binary stream. The tell is often *visual*: two styles appear with roughly balanced counts. After extraction, you’re effectively decoding 5-bit symbols, not cracking natural-language frequencies.
- Look for two visual/textual states that alternate (case, boldness, font).
- A/B distribution often near-balanced over long text (not always).
- If copy/paste normalizes everything, the cipher ‘disappears’.
- Try shifting grouping alignment if the decode looks off by one.
Mini example
Common mistakes
- Formatting destroyed by copy/paste (turns everything into one style).
- Wrong table variant (classic merges letters).
- Wrong A/B polarity assignment.
- Wrong grouping offset (start position).
Variants
- Classic Bacon (I/J and U/V merged).
- Full 26 Bacon table (distinct I/J, U/V).
- Carrier variations: punctuation, whitespace width, emoji types, etc.
Practice
Practice by hiding a short secret in case (upper/lower) inside an innocent sentence, then try extracting it from different mediums.
Try these prompts
- Hide 'HELLO' as A/B using uppercase/lowercase in a paragraph.
- Try extracting from rendered HTML vs copied text and note differences.
- Decode with both Bacon tables and compare outputs.
- Encode a longer message and see how easy it is to lose alignment.