Tools for frequency analysis, a cryptanalysis method studying the frequency of letters or groups of characters in a ciphered message.
Frequency analysis is the study of the distribution of the letters in a text. Analysis of frequencies help decrypting substitution-based ciphers using the fact that some letters apparitions are varying in a given language : in english, letters E, T or A are common while Z or Q are rare.
Frequency analysis allows decrypting a text by comparing letters frequencies in a plain text message with letters frequences in a ciphered message.
For some ngrams analyzes, use the sliding window mode:
Example: ABCD has bigrams AB, CD '(blocks mode)
Example: ABCD has bigrams AB, BC, CD '(sliding window mode)
For simple substitution, it can be useful to try replacing the most common letter in the ciphertext by the letter E, the most common letter in English, and so on. This principle is applicable only if the message is relatively long for the frequencies to be statistically significant.
Frequency analysis is less relevant when the message has been encrypted with polyalphabetic encryption (which tends to randomize the frequency of the letters), or when the encryption is homophonic (several different encrypted characters for the same plain letter) or polygrammic (groups of characters replace each letter). In these cases, the analysis does not allow a decoding but allows to filter or find the type of encryption used.
Letters by frequency of appearance in English:
| E | 12.7 % | T | 9.1 % | A | 8.2 % | O | 7.5 % |
|---|---|---|---|---|---|---|---|
| I | 7.0 % | N | 6.7 % | S | 6.3 % | H | 6.1 % |
| R | 6.0 % | L | 4.0 % | D | 4.3 % | C | 2.8 % |
| U | 2.8 % | M | 2.4 % | W | 2.4 % | F | 2.2 % |
| G | 2.0 % | Y | 2.0 % | P | 1.9 % | B | 1.5 % |
| V | 1.0 % | K | 0.8 % | J | 0.2 % | X | 0.2 % |
| Q | 0.1 % | Z | 0.1 % |
dCode retains ownership of the online 'Frequency Analysis' tool source code. Except explicit open source licence (indicated CC / Creative Commons / free), any algorithm, applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, translator), or any function (convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (PHP, Java, C#, Python, Javascript, Matlab, etc.) no data, script or API access will be for free, same for Frequency Analysis download for offline use on PC, tablet, iPhone or Android !
Please, check our community Discord for help requests!
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!