A null cipher is text where most of the letters are filler and a rule picks out the real ones. The first letter of each word. The third letter after every comma. Every fifth word. The reader who has the rule finds the message; everyone else reads a letter about the weather. It is the oldest form of steganography that uses nothing but writing, and it is the only one on this page you can produce with a pen in a hotel room.
Hiding is not encrypting. The security of a null cipher is the secrecy of the rule, and there are not many rules. Anyone who suspects the letter tries the common ones in a minute. Put a passphrase on the wallet and keep it somewhere the letter isn't.
Three that worked, and one that didn't
In the First World War a German message passed the censors as a complaint about trade policy:
PRESIDENT'S EMBARGO RULING SHOULD HAVE IMMEDIATE NOTICE. GRAVE SITUATION AFFECTING INTERNATIONAL LAW. STATEMENT FORESHADOWS RUIN OF MANY NEUTRALS. YELLOW JOURNALS UNIFYING NATIONAL EXCITEMENT IMMENSELY.
The first letter of each word: Pershing sails from N.Y. June I.
In the 1640s, during the English Civil War, the Royalist Sir John Trevanion was held at Colchester Castle awaiting execution. A letter reached him that began "Worthie Sir John, Hope, that is ye beste comfort of ye afflicted…". The third letter after each punctuation mark spelled Panel at east end of chapel slides. He asked to pray in the chapel and was not seen again.
In January 1944 a German agent in London wrote a Spanish love letter, misspellings and all. The message was in the spacing: a plus in his code table meant two spaces, a minus meant one, and sixteen code groups covered the alphabet. The letter carried a convoy's departure for Naples with troops trained for mountain warfare. The agent was caught, interrogated, and the method went into a file at the British National Archives (KV 2/2424), which is how we know it.
In 2018 an inmate in an Atlanta jail wrote a letter home in which every fifth word made a second message about a fellow prisoner's drug test. The FBI read it. The rule was ordinary and the letter was from a jail, which is a place where every letter gets read by someone looking for exactly this.
The pattern across all four: the cipher held against a reader who wasn't looking, and broke the moment someone was.
Why it fits a seed phrase badly, and how to fix that
A seed is twelve words from a public list, in order. A first-letter null cipher yields letters, so you'd spell each word out: pizza needs five words whose first letters are p, i, z, z, a. Twelve seed words average about six letters, so the letter needs about seventy-two carrier words placed by initial, and z and x are hard to open a word with twice in a row. It can be done. It reads like a ransom note.
Two changes make it workable.
Hide numbers, not letters. Run the seed through a cipher from this site first. Each word becomes a four-digit number between 5432 and 7479, and digits are easy to carry: the number of words in each sentence, the number of letters in the first word of each line, the house numbers and times and prices that any letter naturally contains. "We left at 6:19, which is early for us" carries 6190 or 619 depending on your rule. Twelve numbers across a two-page letter is comfortable.
Hide the word itself, in order. The seed words are English. A rule that picks whole words, such as the first word of each sentence, the word after each comma, or every ninth word, lets you place pizza, educate, fat and the rest where they fall. The letter then has to be about something that makes those words natural. Food, school, weight, a wedding (kiss, venue), a website (domain). Harder words like abandon or zoo need a sentence built around them.
Writing one that reads naturally
The censor's test is the only test: would a bored person reading a hundred letters a day stop on yours? The historical null ciphers that were caught read stiffly. Rules for writing one that doesn't:
- Choose the rule before the subject, and the subject to fit the words. If
venueanddomainare in the seed, write about planning a party and setting up a website for it. Don't write a fishing letter and forcevenueinto it. - Write the whole letter first as a letter. Then go back and place the seed words at the rule's positions, rewriting the sentences around them. The filler has to be good filler: specific, dated, a little dull.
- Keep the rule simple enough to remember in five years and odd enough not to be the first guess. "First word of each sentence" is the first guess. "The word after the second comma in each paragraph" is not, and you will remember it if you write it into the rule of a game you play.
- One rule, applied once. Layering rules makes the letter stiff and makes recovery fragile.
- Check it cold. Put the letter away for a week, then recover the seed from it using only the rule. If you need to squint, rewrite.
- Put it where letters go. A letter in a drawer of letters. A diary entry in a diary with other entries. A null cipher in a frame on the wall is a frame on the wall.
We will never ask for a seed word or a passphrase, and you should never type one into this site or any tool it links to. Practise with the public example (pizza educate fat kiss domain venue …), never with your own words.
Order and checksum
The rule must preserve order; a seed in the wrong order is no seed. Sentence-based and position-based rules do this on their own. If you use a rule like "all the four-digit numbers in the letter", the numbers appear in the order you wrote them, so write them in seed order and never revise the letter afterwards without re-checking.
The BIP-39 checksum cuts both ways here. It lets you confirm a recovered phrase is right (a wallet accepts it). It also lets an attacker confirm a guessed rule is right, which is why the rule is not the security. The passphrase is.
Sources
- Null cipher, Wikipedia, with the Pershing message, the Trevanion letter and the 2018 Atlanta jail case.
- Klaus Schmeh, How a German World War II spy hid a message in a love letter, 2017, from the British National Archives file KV 2/2424.
- BIP-39.