A substitution cipher is a method used in cryptography to encrypt the meaning of a text. In the most common form, a substitution cipher changes every letter in the target text with another, making it impossible to read without first decrypting it.

For example, this sentence in bold is encrypted with a substitution cipher that replaces every letter with the following on my keyboard:

gpt rcszqar, yjod drmyrmvr om npaf od rmvtuqyrf

As you can see this is not a great way to generate secret text ... nor secret languages or alternative languages, since the words generated this way are mostly impossible to pronounce in any given tongue.

Yet, some forms of substitution ciphers can be interesting. One such examples acquired internet fame - 1337, or leet. Leet utilizies a lot of numbers and special characters:

f0r 3x4mpl3, 7h15 53n73nc3 1n b0ld 15 3ncryp73d

|=0|2 3><4/\/\|D|3, 7|-|!5 53|\|73|\|(3 !|\| |30||) !5 3|\|(|2`/|D73|)

|#0|2 3%4|\/||>13, +|-|!5 53|\|+3|\|(3 !|\| 801|) !5 3|\|(|2`/|>+3|)

Now, coming to my question: would it be advisable to use such a cipher to represent old, encrypted text in a story? I'm focusing on sci-fi stories since they would be the most suited for this kind of substitution. With advisable I mean:

  • an interesting idea;
  • not something that would annoy the audience.

This kind of substitution would be intended as an easter egg of sorts, just for small sections of text or small words.

  • 1
    Are you going to keep modern script (Latin?) while representing ancient alphabet?
    – Alexander
    Mar 22 '19 at 17:18
  • @Alexander Yep. Mar 22 '19 at 18:01
  • So this is not really a new alphabet, but rather a cypher for an existing one? And the base language would be intact?
    – Alexander
    Mar 22 '19 at 18:06
  • 1
    @Alexander Yes. I didn't state it out clearly enough in the question, but substitution can't give you a new grammar. The base language would be the same. While this is some form of constructed language, I realize pretty well out crude it would be. Mar 22 '19 at 18:20

For most people this would be either annoying or far too simple to be interesting.

Many people will know a little bit about substitution ciphers and leet speak. Those are quite often taught in school or used to exchange "secret" messages that teachers / parents / ... aren't supposed to read when paper is an easier medium than using your smartphone. So people will know what to do but many won't be interested in putting their book aside, get some paper out and try to decipher your text just to understand what is going on. They want the characters to solve such riddles. That makes it more of an annoyance than a nice feature.

In the case of leet speak it can even be easy to read this, for example if you are a programmer you will likely have read something about leet speak at one point or another. We talked about it in one of our courses at the university for example. That makes it quite easy to read, at least the first version you presented. But if you used this in your book and said it's some kind of secret code I'd hope your character is one of those that don't like this whole "internet" thing and still prefer their physical newspaper because it reminds them of the good ol' times. And then someone should tell them what leet speak is and "translate" the message. Granted, the second and third leet speak version aren't that easy to read and normally when I am reading books I don't want to half-translate the text I am reading to know what's going on.

If instead you use it to represent some kind of old encrypted text then I wouldn't be able to suspend my disbelief anymore - something that readable is hardly an encrypted message, no matter the time you are in. Better to mention that "the text was encrpyted with an archaic algorithm that our quantum computers could crack in a couple seconds" and be done with it.

A little remark about your premise:

As you can see this is not a great way to generate secret text ... nor secret languages or alternative languages, since the words generated this way are mostly impossible to pronounce in any given tongue

That makes it perfect to show an ancient encrypted text or just a different language from a different planet. The reader can't read it, the reader can't pronounce it - but most people on this site likely can't read or properly pronounce Japanese text, too. It's just completely foreign. In such a case this could be a nice gimmick for the handful of hard-core sci-fi crypto fans that really do put their books aside to encrypt the message. As it's easy to produce you could indeed hide for example some unimportant but funny messages in such texts. You should still just have someone "translate" the message for the average reader and your characters that are supposed to understand the message.


If the purpose of the cipher is encryption, use the substitution cipher. Have some character study it, know it is encrypted and that E is the most commonly used letter in English. Ah, E has been replaced with R.

If the message was sent by a spy, it should be hard to understand but it should also be inconspicuous. What might be more interesting is something I use in my piece. Rather than something that has obviously been encrypted, I have spam emails and texts that, when you subtract 90% of the text, you have the real message. This is something that anyone can look at and think nothing of - insignificant spam. Nothing suspicious. Someone with training and aware would see the potential of the other message but perhaps remove the wrong words.

Ask yourself why it is encrypted and who sent it. Perhaps the first substitution method would be best except it screams code. Anything that screams code risks being intercepted and decoded.

A simple paragraph that has the first or, better, second or third letter be of importance, is more likely to seem innocent. It might seem slightly gibberish as an attempt I made to encrypt a message by hiding it in plain sight in a longer text devolved into. It can be done.

  • 3
    For completeness' sake, your "hiding in spam" example isn't really encryption; it's steganography. Both are useful, the latter especially in specialized circumstances, but they are two different things. If you have a character who is supposed to be in the know about these things, please make really sure that they get the terminology right. (Calling a cryptographic hash an "encryption" algorithm, or a hash digest an "encrypted" message, is another of those things that rub me the wrong way.)
    – user
    Mar 22 '19 at 18:32
  • It seems I used null cipher.
    – Rasdashan
    Mar 22 '19 at 20:01

If you wish to depict encrypted text, use an actual encryption. Something that could be decrypted by hand, but would require some effort. That would be a fun for a puzzle-minded reader to figure out, an easter-egg if you wish. For the reader who is not a puzzle lover, you should (eventually) provide the translation, if it is of any story importance. As an example consider the runic cryptogram in Jules Verne's Journey to the Centre of the Earth:

enter image description here

Pretending that in the future leet could be used as a form of encryption is an insult to your readers' intelligence, since readers, at least younger readers, would easily read it and find it annoying (not or as Secespitus suggests). Since there's no challenge for the reader, it breaks our suspension of disbelief that there's challenge for the characters.

The only situation under which leet could work is if your intention is to use it for humorous effect. If, for example, your post-literate characters assume an ancient piece of text is some sort of secret code, but your reader realises it's a note between students in class, suggesting rude things about the teacher, you play the mismatch between what the characters comprehend and what the reader comprehends to your advantage.

  • Canticle for Leibowitz had a similar misconstrued document. A set of blueprints became sacred text.
    – Rasdashan
    Mar 23 '19 at 4:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.