18
$\begingroup$

1350 AD. A secret society is recruiting adepts in Rome, Florence, Paris, Wien, Prague and London; well-educated people in high ranks of nobility, catholic church, engineers, professors and knights. Given at that time Latin was used as formal/common language and cryptography was still relegated to military tasks and often required the burden of mechanical apparatus, even if encryption was limited to plain symbol rearrangement; how could a secret language be developed to let people talk each other, or exchange messages, while resembling a different but unknown language to other listeners/readers?

My requirements are: use of Latin letters; both cyphertext and plain-text are "readable", in a sense they would seem like natural language even if not understood (ie: Voynich manuscript); and people should be able to speak that language, not just reading/writing; no device should be needed for reading/listening, possibly the same also for writing/speaking.

This question could go to a more technical site, but I am open to fantasy answers, ie like using magic.

Voynich Manuscript

$\endgroup$
4
  • 1
    $\begingroup$ are you wanting a whole new language like creating Klingon? $\endgroup$
    – bowlturner
    Commented Dec 2, 2014 at 17:58
  • $\begingroup$ @bowlturner not necessarily; the vocabulary could be pretty much restricted too. Sentence construction should look (not actually be) realistic. $\endgroup$
    – guido
    Commented Dec 2, 2014 at 18:20
  • 1
    $\begingroup$ Nobility and knights were commonly illiterate before invention of print press. Their business was battle, reading/writing was for monks. $\endgroup$ Commented Dec 3, 2014 at 23:21
  • $\begingroup$ @PeterMasiar maybe in early middle ages, but by 1300 most monks bought their books in shops. en.wikipedia.org/wiki/Middle_Ages en.wikipedia.org/wiki/High_Middle_Ages $\endgroup$
    – guido
    Commented Dec 3, 2014 at 23:59

14 Answers 14

8
$\begingroup$

Since you want the language to be observable, but not decipherable, it seems like steganography would be the ideal method (using actual cryptography would either be easily broken, or too complex for real-time human to human communication).

As an alternative to having it appear as an unknown language, what about using a sufficiently robust method of encoding a hidden conversation into a normal conversation in an actual common language (probably latin)? So, a bad example would be that the first letter of each sentence was all that actually mattered. This would allow enough flexibility to compose meaningful responses (in the cover language). Unfortunately, this would be a very inefficient encoding and wouldn't be easy to keep track of for speakers.

So instead of that, what about using higher level language concepts like tone, theme and subject matter as an encoding scheme. Suppose you have 4 tones, 4 themes and 12 subject matters. One of each is chosen for each sentence. An appropriate and meaningful (with respect to the rest of the cover conversation) sentence is chosen that contains the tone, theme, and subject matter, and is spoken/written. The listener decodes the message by identifying the tone, theme and subject matter, and doing a mental lookup (among 4*4*12 possibilities) of the encoded message. Then they repeat the process for their response. Adding gestures as modifier keys would allow increasing the set of possible messages further.

Since you don't want to use pre-defined messages (though with a large enough number that could be pretty powerful), instead of encoding messages, you could encode elements from the vocabulary. So each word in the hidden language corresponds to a set of sentences (tone, theme, and subject matter) in the cover language. The downside with this is that you need roughly a paragraph in the cover language per sentence in the hidden language.

$\endgroup$
1
  • $\begingroup$ Hopefully that's a little more readable. And I'm glad you liked it guido. Assuming this is for a work of fiction, I think it could have some cool literary aspects too. Things like the cover conversation mirroring or contrasting the hidden conversation, or jokes at multiple levels of the conversation. $\endgroup$ Commented Dec 3, 2014 at 15:08
19
$\begingroup$

I think you overestimate the complexity of medieval cryptography -- a Vigenère cipher, for instance, was still rather "high-grade" at the time yet for someone well-versed in its use would require nothing more than a single piece of parchment, if even that much1 -- but no matter. We'll run with your list of requirements, because there's a very interesting answer: steganography.

In our modern digital age, you may think of steganography as the black art of hiding a secret message within the "noise" of a digital photo, for instance, but it's far older than that. One of the oldest forms of steganography, and perhaps most useful to your requirements, is using a predetermined method of encoding to embed a secret message within a paragraph (or more) of innocuous text. For instance, your message might be comprised of every 10th word, while the rest is literally just filler intended to mask its very presence. More complex examples rely on using a cover with windows cut into it in random places, concealing the innocuous text and revealing only the text relevant to the secret message. This gives you the ability to send your secret messages without even revealing that you're sending a secret message at all, giving you absolute deniability should you be caught. You could even employ an encoding scheme such that rather than individual words, you hide particular letters (3rd letter of each 5th word), which could themselves form a Vigenere cipher of your actual message. While quite difficult, this could even be used in spoken language, though the encoding would necessarily have to be relatively simplistic to be able to be deciphered that quickly.

This doesn't (necessarily) give you the appearance of being a new language, however. (Not unless your innocuous text is itself something else.) For that, what you want is either an obscure, real language (see e.g. code-talkers) that your secret society could use for their purposes, or else they need to devise their own constructed language (which is often offered as one possible explanation for the mysterious Voynich manuscript, for instance). You could even go one better and encode the written form in its own alphabet, for that extra little bit of mysteriousness, though someone who can see and hear both forms of the same message would likely be able to quickly decipher the alphabet (unless you deliberate obfuscate the sounds somehow).

This is really your best bet for meeting all your requirements: A constructed or obscure language used solely for the purpose of communicating esoterically with other members of your secret society. Most likely you wouldn't need to devise as rich a language as e.g. English, just come up with the syntax and vocabulary for the most basic forms of communication, and revert to another common tongue in the few instances where it actually becomes necessary.

There is one more very interesting option: A substitution cipher specifically designed to encode a well-known language (e.g. English) into something that merely looks like another language, crafted in such a way as to remain readable. A lot of online "language generators" employ a scheme like this, and it's frankly amazing how easily the results could actually be read aloud if one wanted to. At its most basic, this involves enciphering one vowel as another, and one consonant as another; it could be made more complex by using a different key (a la Vigenere) on a per-word basis (rather than per-letter as in Vigenere), though this risks destroying the ability to effectively speak it.


1 I used to be super gung-ho into secret messages, and -- albeit with effort -- I could read even complex substitution ciphers like Vigenere (though I didn't know the term at the time) almost as if they were their plain-text equivalents. This required, however, being not only familiar with the method, but having used the same key repeatedly -- which may in fact be the case for a secret society, even though each re-use of the same dramatically increases the likelihood that it will be deciphered by your enemies.

$\endgroup$
4
  • $\begingroup$ thanks; steganography would certainly help to send written messages; not feasible for speech tough. Think of two undercover agents needed to exchange some words without being understood. $\endgroup$
    – guido
    Commented Dec 2, 2014 at 18:23
  • $\begingroup$ @guido With work a steganographic scheme could be used in spoken speech, but yes it probably wouldn't really work in practice. I just added another interesting paragraph about "random language generators"; it's surprising, really, how readable they often are! $\endgroup$
    – Kromey
    Commented Dec 2, 2014 at 18:28
  • 5
    $\begingroup$ Two people could participate in verbal steganography if they shared a gesture-based mask such as "only count the words I speak when my fingers are straight". It would probably take a lot of practice for both the speaker and listener to communicate without being obvious. $\endgroup$ Commented Dec 2, 2014 at 20:29
  • 3
    $\begingroup$ @guido: You remind me of a Simpson's episode, where Krusty the Klown had just handed a check over to charity, and comments to the camera "And if my bank is watching, let nothing STOP you from making PAYMENT on this check." $\endgroup$
    – user2781
    Commented Dec 3, 2014 at 5:17
14
$\begingroup$

I just realized that I missed a perfect example of what you want - Cockney Rhyming Slang.

http://en.wikipedia.org/wiki/Rhyming_slang

You can see it in action in the film "Lock Stock and Two Smoking Barrels" (the bit in the pub where they start subtitling it) and there are other examples around. Unless you speak it you've got no chance of following it though...even if you know the base language (in this case English).

$\endgroup$
11
$\begingroup$

There were real life secret languages used in medieval times described as a Thieves' Cant. The fun part about such a language was that it could be spoken openly and an observer would believe they understood every word and it all made sense. But those who spoke this secret language would get the second, hidden meaning as well. Though this link lists the languages as being dead long ago, I understand that carnival workers speak in a similar fashion even today.

$\endgroup$
3
  • 3
    $\begingroup$ Japanese history is full of this sort of thing too. Was used extensively for military and political use. Spying on rivaling Lords was very popular so they needed to keep communication well-guarded. $\endgroup$
    – Tonny
    Commented Dec 2, 2014 at 22:44
  • 1
    $\begingroup$ There's also codewords used by healthcare professionals to describe patients and situations (sometimes in non-flattering ways) without offending anyone or causing panic (for example using "code black" to announce bomb threats over the PA system) $\endgroup$
    – slebetman
    Commented Dec 3, 2014 at 4:41
  • 1
    $\begingroup$ @slebetman or, IT professionals sometimes refer to "PEBKAC errors" (Problem Exists Between Keyboard And Chair). $\endgroup$ Commented Oct 31, 2018 at 11:00
3
$\begingroup$

It won't help you with speaking, but for written you can use steganography.

For example agree that every 7th letter of a document is important, and then write an innocuous message - however by reading only every 7th letter you get a completely different message (the real one).

Real systems tend to be more sophisticated, choosing letters in a certain sequence or even varying the sequence of letters based on various rules. The important thing is that both ends of the communication agree on the rules and are able to write a long enough message that the coded message can be embedded into it.

For speech your options are limited, essentially you need to learn (or invent) an entirely new language that no-one else around you knows or have extremely smart conspirators able to embed messages into normal speech and perform the steganography in real time.

$\endgroup$
1
  • $\begingroup$ thanks. I did think about steganography, but indeed (as you say) it does not help with verbal dialogues. Remember the secret language does not need the same level of expressiveness of a natural language (but still more than a bunch of pre-contructed known sentences). $\endgroup$
    – guido
    Commented Dec 2, 2014 at 18:25
3
$\begingroup$

One approach was employed in a Sherlock Holmes novel (I can't recall which one). The key was that the real message was only every third word. So the message:

We are discovered. Run for your life.

Could be encoded as

We found they are wealthy and discovered their gold.
Run tested them for value and your future wealthy life.

The message looks like a cryptic report of something completely different, and hopefully will send any spy who intercepts the message off on a wild goose chase trying to find out who "Run" is and figure out where all this gold is hidden.

$\endgroup$
2
$\begingroup$

Make up one

If you want a language that is both spoken and written and general purpose and without apparatus and ununderstandable by others - then that's not an encryption, that's a new language. So people make a new language. It's something can definitely be done, especially if the authors are well educated in many existing languages and their concepts and if there's sufficient motivation to keep it alive.

http://en.wikipedia.org/wiki/List_of_constructed_languages lists many examples, including Esperanto, Klingon, etc. They generally start at 1800ies, but there's really nothing that would prevent similar languages from being created in 1350. The very first example, http://en.wikipedia.org/wiki/Solresol is very interesting concept.

The main problem is the lack of vocabulary - if you can't piggyback on existing common languages (like Esperanto did) since those words would be recognizable, then it's hard to define words for new concepts when building the language and communicate those words throughout the community; also this doesn't "encrypt" proper names of people, locations, etc - and just those names alone may give up too much of a conversation's secrecy.

$\endgroup$
1
$\begingroup$

Your context makes it sound to me that you're asking about a secret cipher, not an actual language. (A secret language could actually be do-able with not much fuss; just use an existing language, unrelated to most widely used ones, with a relatively isolated speaker base, like Catalan or Estonian. This would be most practical if most/all of your recruits come from that ethnic grouping.)

As others have mentioned, though, ciphers are totally workable. You could also introduce jargon and code-words to refer to significant things or people, like 'squid' for the King of England. Hand signals for in-person communication would be another way to use ciphers, though the learning curve would be longer for more complex codes. If your society is trade-based (i.e., masons or soldiers), there might even be existing codes and jargon you can appropriate from that profession.

$\endgroup$
1
  • $\begingroup$ Thanks; as i stated in the question, people come from different backgrounds, ethnicity and profession (all equally well educated tough). So using an existing language or dialect is out of question (if you don't consider dead-languages, actually). $\endgroup$
    – guido
    Commented Dec 2, 2014 at 19:41
1
$\begingroup$

Since you are open to using magic, use it. A simple magical item used in initiations that imprints in the mind an obscure dead language, possibly found from some ruin or given by a mysterious figure or suggesting that society actually unusually has a history much longer than it claims... As a bonus an imprinted language might be more difficult to teach to outsiders (if for example no related languages are known) and the item might imprint vaguely defined "other stuff".

Seriously, a code that looks like a real language would be more complex to learn and use than an actual language. Constructing artificial languages is actually more complex than you'd think and generally requires linguistics far beyond medieval level. Using an actual language is just so much more practical.

$\endgroup$
1
$\begingroup$

I remember a book I read several years ago now, involving the Voynich manuscript. The basis was it was not decodable in any way - until a university student who happens to know symbols of another ancient language reads it, and finds two of these symbols. The passage between the two is the secret message, also written in this language.

Now, while that doesn't quite meet your requirements, it can be modified: instead of symbols you can just use standard letters but organise a start code (think DNA and start/stop codons). So, whenever a member of this organisation reads the letter sequence ABCDE, they would know that the message is between that and the next instance of it (or a different stop string, for example WXYZ).

Obviously, to increase the security you can use a basic cipher. Consider that at this time, basic ciphers of today were considered advanced, and while a basic Caesar cipher might be a little too basic, a Vigenére might meet the needs. If you want even more security, you can combine ideas from every answer: the start/stop strings, encipherment, and steganography (every $n + 2$ word).

In this way, messages can be distributed as text without fear of being read because you have to know several things before you can decode them. Let's try an example:

OJENF EIRYF WIRHUWBWUD WRIHWGWWD 
UEHYDYWBW **ABCDE** IFMMP ISRBWUR IPX 
WRIHGDIYWD BSF SUDB ZPV **WXYZ** HOEFF 
ISHFGIWOWDB IHSFWWODBD

Applying the techniques described, try to decode that. It's easy if you know, hard if you don't.

- ABCDE is the start sequence, WXYZ is stop
- Every second word within the block (starting with the first) is part of the message
- The cipher is a simple Caesar +1 cipher
- Encoded message: IFMMP IPX BSF ZPV
- Decoded message: HELLO HOW ARE YOU

$\endgroup$
1
$\begingroup$

The ancient founders of your society spoke Etruscan, which has survived as the language of the secret society.

Coptic represents a real world version sort of thing I am thinking of https://en.wikipedia.org/wiki/Coptic_alphabet

coptic

The Coptic alphabet has a long history, going back to the Hellenistic period, of using the Greek alphabet to transcribe Demotic texts, with the aim of recording the correct pronunciation of Demotic. During the first two centuries of the Common Era, an entire series of magical texts were written in what scholars term Old Coptic, Egyptian language texts written in the Greek alphabet... With the spread of Christianity in Egypt, by the late 3rd century, knowledge of hieroglyphic writing was lost, as well as Demotic slightly later, making way for a writing system more closely associated with the Christian church...Coptic is not generally used today except by the members of the Coptic Orthodox Church of Alexandria to write their religious texts.

One could also refer to this sort of thing (and Coptic particularly) as a liturgical language. https://en.wikipedia.org/wiki/Sacred_language

A sacred language is often the language which was spoken and written in the society in which a religion's sacred texts were first set down; however, these texts thereafter become fixed and holy, remaining frozen and immune to later linguistic developments. Once a language becomes associated with religious worship, its believers may ascribe virtues to the language of worship that they would not give to their native tongues

Your language can be that of the original magicians who founded the secret society. Yours is a European group; you could use a Celtic language like Manx or Cornish. Better, though, is to have it be the language of people who were superseded by those who spoke Indo-European languages. The Basque language is the sole survivor of these ancient European languages. But there were others. I propose you use Etruscan. https://en.wikipedia.org/wiki/Etruscan_language

Etruscan was traditionally considered to be a language isolate. In the first century BC, the Greek historian Dionysius of Halicarnassus stated that the Etruscan language was unlike any other. Giuliano Bonfante, a leading scholar in the field, argued in 1990 that "it resembles no other language in Europe or elsewhere".

The Etruscan sorcerers who founded your ancient society kept their language for communication among themselves and for their writings. The ordinary Etruscans and their culture and language were absorbed and supplanted by the Romans. You can attribute or build all sorts of things around the Etruscans. In fact there is already a lot out there! http://www.mysteriousetruscans.com/history.html

.

$\endgroup$
0
$\begingroup$

There is a much simpler approach then creating a whole new language (which would instantly identify its user as a foreigner and not to be trused!) which is to do exactly people have always done when they want to talk to each other about stuff they know about but still keep their secrets secure. And that is to use jargon.

Note that your list of candidates would not include engineers or professors, but would include craftsmen and guildsmen who would be familiar with jargon from their own spheres of influence.

$\endgroup$
0
$\begingroup$

I read an old and somewhat crank-oriented book on this exact topic some years ago that suggested that the watermarks used by early paper makers contained their own hidden symbolic language that then infuses myth, story and of course secret societies down the ages.

Now I wouldn't like to make any claims for the veracity of this, but as an idea concealing information in a symbolic language of watermarks would be a great way of conveying hidden messages right under the noses of whoever was reading the text on the paper. If the language itself is too simple, then perhaps the symbols could offer a key to a knowledgeable viewer - if the symbol is a hand in the bottom left corner, then every fourth letter reveals the hidden message and so on. This is a halfway point between hidden language and steganography.

You might also consider different types of communication - a sign language maybe ( see David Edding's Belgariad series for a good example of a secret -except all the main characters seem to know it - sign language ) or something based on rhythm like morse code. This is intriguing because it can be conveyed in writing, through light flashes or through tapping a pattern on a surface. You could actually use regular language with a pattern of emphasis that reflects a rhythmic cipher, or write poetry and songs that do so meaning that a competent bard or pamphleteer could be conveying hidden information to many people without the vast majority of their audience being aware of it.

$\endgroup$
-1
$\begingroup$

I don't believe this MS-408 to be a Medieval document. So bare with me as I provide the evidence and code for you would be Voynich decoders in Python. First of all Rich SantoColoma's presentation to the NSA is very convincing for Wilfrid as the Author.

enter image description here

https://youtu.be/qDTVEz6rXMQ

Here is my method for decoding the Voynich Manuscript:

Process I use to obtain Italian words

I'm working very hard right now to translate f1r from VMS vords to Morse to Italian no easy feat, yet it is producing a narrative.

I have made a few mistakes for the f2v and the eva is from Renz's site as it just represents the glyphs. I was using word and the formatting changed sorry about that. My cipher should expect erroneous errors in the beginning stages. I sort of rushed this out. But I will refine it.

You can find an update of my cipher at Voynichman:

http://voynichman.freeforums.net/thread/39/voynich-morse-code-stenography-cipher

Helllo

The process for “Voynich Morse code Steganography Cipher” goes like this:

1) The glyphs from a vord which are summed up to the associated Morse code in my cipher I produced as dots and dashes. For instance VMS vord (oe = 3 dots and 2 dashes so the Italian word is equal to, "ce -.-. ." which translates to "there, here or us" in English

2) Take the sum of the Morse code and look for meanings from Italian words. This is tricky, but you will only find a small amount of Italian words per vord unless their size is longer, but it’s better than a substitution cipher which I no longer believe it to be. Here is the code in python for translating Morse to any language. Yes the code has a built in anagram solver. Yes you need to cherry pick Italian words to the narrative albeit if a 1000 programmers and would decoders used this process some of the output would find the same, but I don't know the stats. As it stands it’s all about the input from the totals of dots and dashes. I don't know how many runs humans could do to get similar sentences. This is better suited for hard coded computers to run grammar checks in Italian for computations from Morse code arrangements using my python code along some enhanced upgraded code.

3) I envision the VMS to have for vords like "9" to be set like this in some code ( .- or - .) for the VMS to analysed, along with all the other vord from the full corpus of possibilities. That is equal to (a, or te). Then let the computer process the document and see if it outputs a high quality transcription to the Italian language.

Here is the code:

print("Author Thomas O'Neil, copyright ver 0.1,VMS Italian Steganography Morse Code to Anagrams, August 8, 2019")

Python program to implement Morse Code Translator

''' VARIABLE KEY 'cipher' -> 'stores the morse translated form of the english string' 'decipher' -> 'stores the english translated form of the morse string' 'citext' -> 'stores morse code of a single character' 'i' -> 'keeps count of the spaces between morse characters' 'message' -> 'stores the string to be encoded or decoded' '''

Dictionary representing the morse code chart

MORSE_CODE_DICT = { 'A':'.-', 'B':'-...', 'C':'-.-.', 'D':'-..', 'E':'.', 'F':'..-.', 'G':'--.', 'H':'....', 'I':'..', 'J':'.---', 'K':'-.-', 'L':'.-..', 'M':'--', 'N':'-.', 'O':'---', 'P':'.--.', 'Q':'--.-', 'R':'.-.', 'S':'...', 'T':'-', 'U':'..-', 'V':'...-', 'W':'.--', 'X':'-..-', 'Y':'-.--', 'Z':'--..', '1':'.----', '2':'..---', '3':'...--', '4':'....-', '5':'.....', '6':'-....', '7':'--...', '8':'---..', '9':'----.', '0':'-----', ', ':'--..--', '.':'.-.-.-', '?':'..--..', '/':'-..-.', '-':'-....-', '(':'-.--.', ')':'-.--.-',}

Function to encrypt the string

according to the morse code chart

def encrypt(message): cipher = '' for letter in message: if letter != ' ':

        # Looks up the dictionary and adds the 
        # correspponding morse code 
        # along with a space to separate 
        # morse codes for different characters 
        cipher += MORSE_CODE_DICT[letter] + ' '
    else: 
        # 1 space indicates different characters 
        # and 2 indicates different words 
        cipher += ' '

return cipher 

Function to decrypt the string

from morse to english

def decrypt(message):

# extra space added at the end to access the 
# last morse code 
message += ' '

decipher = '' 
citext = '' 
for letter in message: 

    # checks for space 
    if (letter != ' '): 

        # counter to keep track of space 
        i = 0

        # storing morse code of a single character 
        citext += letter 

    # in case of space 
    else: 
        # if i = 1 that indicates a new character 
        i += 1

        # if i = 2 that indicates a new word 
        if i == 2 : 

            # adding space to separate words 
            decipher += ' '
        else: 

            # accessing the keys using their values (reverse of encryption) 
            decipher += list(MORSE_CODE_DICT.keys())[list(MORSE_CODE_DICT 
            .values()).index(citext)] 
            citext = '' 

return decipher 

def anagrams(word): """ Generate all of the anagrams of a word. """ if len(word) < 2: yield word else: for z, letter in enumerate(word): if not letter in word[:z]: #avoid duplicating earlier words for j in anagrams(word[:z]+word[z+1:]): yield j+letter

Hard-coded driver function to run the program

while True: def main():

        message = input ("Type in Morse Code to output anagrams!: ")
        result = decrypt(message) 
        print (result)
        return result # return result
    for i in anagrams(main()):
        print (i)

Executes the main function

if name == 'main': main()

$\endgroup$
2
  • $\begingroup$ Welcome to Worldbuilding.SE Tom, glad you found us. We have a tour and help center you might wish to check out. $\endgroup$
    – Cyn
    Commented Sep 14, 2019 at 20:12
  • $\begingroup$ Welcome to WorldBuilding.SE! Is this an answer to the question, or a response to ArtOfCode's answer? To me, it looks more like the latter. This isn't like a traditional discussion forum; answers need to stand in their own right. I'd recommend editing this to focus less on the Voynich manuscript that ArtOfCode mentioned, and more on the actual question posed by the OP. $\endgroup$
    – F1Krazy
    Commented Sep 14, 2019 at 20:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .