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.
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.