Skip to content
November 2, 2007 / dranaxum

Cryptography and Linguistics. A research on Linguistic cryptosystems.

This minor research paper details the algorithm of encoding a text using linguistic knowledge.

Let’s take a function f:A → B , where A is the collection of plain text words, and B is the collection of the encrypted words. We will take for each word in A, a word y from another language. This way “this” is “atunci”, where “atunci” means “then” in Romanian language. The words in the Romanian language corresponding to words in A collection, form the cipher’s key.

The problem of this algorithm is that it is vulnerable to frequency attack (we can make a statistics of frequent used words in a “big” plain text and confront them with the statistics of the frequent used words in English).

We will make a change: instead of encoding each word with another word, let’s encode each letter with a precise word. This is still vulnerable to frequency attack (we can make a statistics of frequent used words and confront them with the statistics of the frequent used letters in English).

After the last step, A is the collection of plain text letters, and B is the collection of encrypted letters, using words.

The last idea is to choose specific words in the key, so we can permute them after a certain rule, this way to form a text with a certain topic in the key’s language.

For example we have the text: “ab cd”

We choose z language, and choose

“a” to be “z1z2

“b” to be “z3z4z5

“c” to be “z3z1

“d” to be “z2z5

z1,z2,z3,z4,z5 are letters in z language.

The encrypted text after this step will look like this: “z1z2 z3z4z5 z3z1 z2z5”.

Let’s permute them after a u rule and we will have:

“z2z5 z3z1 z1z2 z3z4z5”, where this text can be read, and has a topic and meaning in z language.

Practical Usage:

To write this algorithm is pretty challenging and it will work very slow because you need to try every single language, and for each language to verify a set of words for the key and to find a u rule so that the encrypted text following the algorithm above will have a meaning in z language. For the algorithm to check the meaning implies that you have a strong basis of AI knowledge.

Though, this algorithm can prove to be a secure one because of one important thing: when the cryptanalyst sniffs the encrypted text he will have in front of him a text with a “real” meaning, so this will make him think that the “line” from where he got it is insecure. Which is false, but he will not bother to decrypt it.



Leave a Comment
  1. zapakitul / Nov 2 2007 9:49 pm

    you never seas to amaze me with cryptography dude! Nice article btw

  2. Filip / Nov 4 2007 8:01 pm

    In felul asta nu creste foarte mult dimensiunea textului criptat? Nu mi se pare eficient din punctul de vedere al spatiului.

  3. dranaxum / Nov 4 2007 8:08 pm

    Da, stiu ca dimensiune va creste, dar aceasta criptare este in primul rand teoretica, deoarece sunt putine cazuri in care obtinem un inteles in limba z

    In momentul cand se va scrie un prog cu acest algoritm implementat, sunt sigur ca va fi folosit in principal pt securizarea documentelor imp si nu a fisierelor de cativa GB/sute de MB.

  4. theo / Dec 3 2007 4:06 pm

    Si totusi… timpul conteaza. Dupa parerea mea, e oarecum Ok sa sacrifi spatiu in foavoarea timpului (pana la o anumita limita), dar algoritmul asta sacrifica si timp si spatiu ceea ce scade mult eficienta lui din punct de vedere al portabilitatii. Din acest motiv nu cred ca o sa vedem pe nimeni facand chipuri precum The Clipper (vezi wikipedia) folosind acest algoritm.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: