Tool to decript/encrypt the Twosquare cipher automatically, from 2 grids/keywords and a principle similar to Playfair.
Twosquare Cipher  dCode
Tag(s) : Polygrammic Cipher, GRID_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!
TwoSquare cipher (or double square cipher) encryption uses two squared grid/checkboard placed side to side (default horizontal variant), or one above the other (vertical variant), sometimes generated with a key word (deranged alphabet)
Example: Crypt DCODE with two grids (horizontal) generated with the words KEY and WORD respectively


The first step consists in splitting the plain text into bigrams (couples of two letters). If the last bigram is incomplete (odd message length), add a random letter from the grid to complete the bigram.
Example: DC, OD, EZ (letter Z added)
Second step, for each bigram, find the first letter in the first grid and the second letter in the second grid and apply the following rules:
— if the letters are on the same line (or columns in vertical version), reverse them
— else, replace them by the letters one the same rows but on the opposite corner of an imaginary rectangle, with the two first letters as opposite vertices. In practice, locate the two original letters and find the two other letters that create an imaginary rectangle. Encrypted letters are written beginning with the one on the same row (horizontal variant) as the first letter of the plain bigram (use same column with vertical variant)
Example: D (grid 1) and C (grid 2) are on the same row, switch them: CD
O (grid 1, row 3, column 5) and D (grid 2, row 1, column 4) are not on the same row, opposite corners are L (grid 2, row 3, column 4) and B (grid 1, row 1, column 5)
E (grid 1, row 1, column 2) and Z (grid 2, row 5, column 5) are not on the same row, opposite corners are A (grid 2, row 1, column 5) and V (grid 1, row 5, column 2)
Final encrypted text is then CDLBAV
TwoSquare cipher Decryption requires two grids/checkboards generated with two keys. The cipher text is split into bigrams (couples of 2 letters).
Example: The cipher text is CDLBAV (split in CD, LB, AV) and the grids are in horizontal position


For each bigram, locate the first letter in grid 2 and the second letter in grid 1.
If the two letters are on the same row (or column in vertical version), swap them.
Else, find the 2 original letters by locating the two letters that complete the imaginary rectangle (see encryption). As for the encryption process, write the letters by starting with the same row (or column depending on the variant used) as the first letter of the encrypted bigram.
Example: C (grid 2) and D (grid 1) are on the same row, switch them: DC
L (grid 2, row 3, column 4) and B (grid 1, row 1, column 5) are not on the same row, opposite corners are O (grid 1, row 3, column 5) and D (grid 2, row 1, column 4)
A (grid 2, row 1, column 5) and V (grid 1, row 5, column 2) are not on the same row, opposite corners are E (grid 1, row 1, column 2) and Z (grid 2, row 5, column 5)
The original plain text is DCODEZ.
The ciphered message needs 2 keys, and generally has a maximum of 25 distinct characters.
The presence of 2 grids or 2 squares is a clue.
All references to pairs of words or famous duos (used as keys for generating the grids) are clues.
TwoSquare can be cracked by a frequency analysis of bigrams if the text is long enough.
dCode offers a brute force grid attack.
Excepting variations due to creating a deranged alphabet out of the keys, it is possible to modify:
— the position of the grids, for example, by setting them vertically rather than horizontally. In this case, encryption and decryption processes should take into account bigram letters on the same column rather than on the same row
— the order of the letters of the bigrams (by default, the first letter comes from grid 2 then grid 1)
— the order of the grid (swap grid 1 and 2)
Probably near of the invention of the PlayFair algorithm (towards 1850)
dCode retains ownership of the "Twosquare Cipher" source code. Except explicit open source licence (indicated Creative Commons / free), the "Twosquare Cipher" algorithm, the applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or the "Twosquare Cipher" functions (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) and all data download, script, or API access for "Twosquare Cipher" are not public, same for offline use on PC, mobile, tablet, iPhone or Android app!
Reminder : dCode is free to use.
The copypaste of the page "Twosquare Cipher" or any of its results, is allowed (even for commercial purposes) as long as you credit dCode!
Exporting results as a .csv or .txt file is free by clicking on the export icon
Cite as source (bibliography):
Twosquare Cipher on dCode.fr [online website], retrieved on 20241105,