Tool to crypt/decrypt the bifid cipher. The bifid cipher uses coordinates of letters and mixes them in order to get new coordinates.

Bifid 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*!

The bifid cipher is an encryption that combine a substitution with a Polybius square and a transposition, it is described in *Traité Élémentaire de Cryptographie* by Felix Delastelle.

Bifid encryption requires a square grid (or a keyword to generate the grid, generally 5x5 or 6x6) and (optional) a number `N` which will serve as a period/block length (otherwise take N=1).

__Example:__ Encrypt the plain message `DCODE` with the grid (generated with the word `SECRET`):

\ | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|

1 | S | E | C | R | T |

2 | A | B | D | F | G |

3 | H | I | K | L | M |

4 | N | O | P | Q | U |

5 | V | W | X | Y | Z |

— Choose a block size N and group the letters into blocks of size N.

__Example:__ A period of length N=3 for `DCODE` gives `DCO,DE`(no need to complete the block if the last one is not of length N)

This text-splitting is not mandatory, but simplifies encryption/decryption for long texts. For a non split encryption, imagine a period size of N=1 (or a period size equal to or greater than the number of letters in the plain message)

— For each letter of the block, write the coordinates of the letters (row, column) in a table.

__Example:__ Take the first block `DCO`. `D=(2,3)`, `C=(1,3)`, `O=(4,2)` and write it in a table:

D | 2 | 3 |

C | 1 | 3 |

O | 4 | 2 |

— To get new coordinates, read the numbers of the table vertically by columns.

__Example:__ The vertical reading gives `2,1,4,3,3,2` or the coordinates `(2,1),(4,3),(3,2)`.

— Replace the coordinates with the corresponding letters in the grid.

__Example:__ `(2,1)` for `A`, `(4,3)` for `P` and `(3,2)` for `I`.

These steps are repeated for each block.

__Example:__ The final encrypted message is `APIAI`

Bifid decryption begins identically to encryption.

__Example:__ The message `DBAKS` has been encrypted with a period N=3 and the grid (generated with the word `MESSAGE`):

\ | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|

1 | M | E | S | A | G |

2 | B | C | D | F | H |

3 | I | K | L | N | O |

4 | P | Q | R | T | U |

5 | V | W | X | Y | Z |

The message is split into period/block of size `N`

__Example:__ The message is decomposed in block of 3: `DBA,KS`

Each letter is associated with its position in the grid as coordinates (row, column)

__Example:__ The letters of the block `D,B,A` have the respective coordinates `(2,3),(2,1),(1,4)`.

Write the coordinates on 2 rows (and thus N columns, eventually except the last block)

__Example:__

2 | 3 | 2 |

1 | 1 | 4 |

Then, read vertically by columns

__Example:__ You get `2,1,3,1,2,4` or `(2,1),(3,1),(2,4)`.

The new coordinates are then associated with the corresponding letters in the grid.

__Example:__ You find the plain letters `(2,1)=B`, `(3,1)=I` and `(2,4)=F`

These steps are repeated for each block.

__Example:__ The plaintext message is `BIFID`.

The message has a low coincidence index around 0.04 to 0.05.

If the grid is 5x5 then it can have at most 25 distinct characters.

Bifid means 'that is cut in half lengthwise', which applies to the Delastelle cipher: the coordinates are cut in 2 during the encryption and decryption steps.

With a period of 1, the encryption or decryption algorithm has no effect (because the principle of column writing and row reading does not produce a shuffling effect)

Felix-Marie Delastelle, civil engineer, described this process in 1902.

dCode retains ownership of the "Bifid Cipher" source code. Except explicit open source licence (indicated Creative Commons / free), the "Bifid Cipher" algorithm, the applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or the "Bifid 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 "Bifid Cipher" are not public, same for offline use on PC, mobile, tablet, iPhone or Android app!

Reminder : dCode is free to use.

The copy-paste of the page "Bifid 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):

*Bifid Cipher* on dCode.fr [online website], retrieved on 2024-06-18,

bifid,delastelle,cipher,felix,marie,coordinates,grid

https://www.dcode.fr/bifid-cipher

© 2024 dCode — El 'kit de herramientas' definitivo para resolver todos los juegos/acertijos/geocaching/CTF.

Feedback