Tool to decrypt / encrypt by homophonic substitution. The homophonic number consists of replacing each letter of the alphabet by several substitutes in order to prevent cryptanalysis by frequency analysis.
Homophonic Cipher - dCode
Tag(s) : Homophonic Substitution Cipher
dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!
A suggestion ? a feedback ? a bug ? an idea ? Write to dCode!
The homophonic substitution cipher uses a correspondence table between the letters / characters of the plain message and one or more letters / numbers / groups of characters. Consequently, the same letter may have several possible encryption and the same message will possibly have several possible encrypted versions.
The objective aimed at by the use of several correspondences for the letters of the plain message is to prevent an attack by frequency analysis, possible on mono-alphabetic (and also polyalphabetic) substitutions. Consequently, it is clever to use a number of correspondence per letter proportional to the frequency of the letter in the language of the plain message.
Example: ABC is coded with multiple matches: A(45,96,17), B(37,60), C(05,88) as 45,60,88 or 96,60,05 or 96,37,05 etc.
In order to simplify the work of the message receiver, use groups of numbers / letters of fixed length (here 2 digits).
To maximize the security of the encryption, take a replacement at random.
Use the correspondence table to transform each character / group of characters in the plain message.
Example: '34,25,10 'has been coded with these multiple correspondances: A(87,34,11), B(25,80), C(10,55), the plain message is ABC
By taking 100 numbers, the ideal match is approximately equal to the frequency of each letter in the English language (expressed as a percentage rounded to the nearest unit)
E | 12 | T | 9 | A | 8 | O | 7 |
---|---|---|---|---|---|---|---|
I | 7 | N | 7 | S | 6 | H | 6 |
R | 6 | L | 4 | D | 4 | C | 2 |
U | 2 | M | 2 | W | 2 | F | 2 |
G | 2 | Y | 2 | P | 2 | B | 2 |
V | 1 | K | 1 | J | 1 | X | 1 |
Q | 1 | Z | 1 |
Using the pieces of a Scrabble game is a good idea.
Well done, the frequency of characters in a homophonically encrypted message is close to that of a perfectly random text, its index of coincidence too.
If the correspondances are proportional to the frequency of characters in the language of the plain message, then it is impossible to use frequency analysis or coincidence index techniques.
From a portion of known or assumed text, it is possible to guess a few correspondences of some characters but it is often insufficient to decipher the whole message.
dCode retains ownership of the online 'Homophonic Cipher' tool source code. Except explicit open source licence (indicated CC / Creative Commons / free), any 'Homophonic Cipher' algorithm, applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, translator), or any 'Homophonic Cipher' function (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) and no data download, script, copy-paste, or API access for 'Homophonic Cipher' will be for free, same for offline use on PC, tablet, iPhone or Android ! dCode is free and online.
Please, check our dCode Discord community for help requests!
NB: for encrypted messages, test our automatic cipher identifier!
Thanks to your feedback and relevant comments, dCode has developed the best 'Homophonic Cipher' tool, so feel free to write! Thank you!