Tool to decrypt/encrypt unsing the Nihilist cipher. The Nihilist Cipher is a variant of Polybius square, since it is a super-encryption of it.

Nihilist Cipher - dCode

Tag(s) : Poly-Alphabetic 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 Nihilist cipher is an over-encryption of the Polybius square. It is first a transposition cipher into numbers over which is added an addition which transforms the cipher into a fractionated polyalphabetic cipher, in a certain way, similar to the Vigenere cipher, but with numbers.

The nihilist's cipher uses a grid (usually 5x5 = 25 cells) that is filled with letters of the alphabet (often a deranged alphabet). For a 5x5 grid and the 26-letter latin alphabet, choose a letter to omit, often the `J`, `V` or `W` are omitted. The grid has digit headers for its rows and columns (typically 1 to 5).

__Example:__

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

1 | A | B | C | D | E |

2 | F | G | H | I | J |

3 | K | L | M | N | O |

4 | P | Q | R | S | T |

5 | U | V | X | Y | Z |

To encrypt a text, it is necessary to replace each letter of the initial text, by its coordinates in the grid. Generally, the coordinates [row, column] (and more rarely [column, line]) are used. A numerical code consisting of pairs of digits is obtained.

__Example:__ `A` is therefore coded `11` (because in row `1`, column `1`), `E` becomes `15` (row `1`, column `5`).

__Example:__ The message to be encrypted: `KREMLIN`, which is therefore encoded `31,43,15,33,32,24,34`

The particularity of the Nihilist cipher in relation to the Polybius cipher is its over-encryption. The nihilists use a key that is added for each couple of digits previously created.

The result of the addition is theoretically between 22 and 110. There are 2 ways of writing the result, either by separating the numbers (a space or a comma), or by concatenating them, in this way, for the 3-digits numbers keep only the last 2 digits (subtract 100 from sums that would be greater than 100).

__Example:__ The key `VODKA`, which is coded `52,35,14,31,11`, is added (value after value) to the encrypted text.

__Example:__

Plain Message | K | R | E | M | L | I | N |

Coded (Message) Letters | 31 | 43 | 15 | 33 | 32 | 24 | 34 |

Key (repeated) | V | O | D | K | A | V | O |

Coded (Key) Letters | 52 | 35 | 14 | 31 | 11 | 52 | 35 |

Final Message (Addition) | 83 | 78 | 29 | 64 | 43 | 76 | 69 |

__Example:__ The final encrypted message is `83782964437669`

Decryption requires to know the grid and the over-encryption key.

The message can have the form of a list of numbers (2 or 3 digits) or of a large series of digits, in the second case, separate them into pairs of 2 digits.

__Example:__ The encrypted message `577066392880`, the key `CODE` and the grid

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

1 | A | B | C | D | E |

2 | F | G | H | I | J |

3 | K | L | M | N | O |

4 | P | Q | R | S | T |

5 | U | V | X | Y | Z |

To decrypt, the coded key is subtracted from each pair of 2 digits and each number obtained is replaced by the corresponding letter with these coordinates in the grid.

__Example:__ The key `CODE` is coded with the grid `13,35,14,15`, it is then subtracted from the message:

Coded Message | 57 | 70 | 66 | 39 | 28 | 80 |

Coded Key (repeated) | 13 | 35 | 14 | 15 | 13 | 35 |

Subtraction | 44 | 35 | 52 | 24 | 15 | 45 |

Letter in the Grid | S | O | V | I | E | T |

__Example:__ The plain message is `SOVIET`.

In the general case of using a 5x5 grid with coordinates from 1 to 5, the message is composed of numbers with the following properties:

— If the encryption is without a separator, the numbers are between 00 and 99 and the message is composed of an even number of digits.

— If the encryption is with separating spaces, the numbers are between 22 and 110

— In all cases, the numbers 11,12,13,14,15,16,17,18,19,20,21,31,41,51,61,71,81,91 can never appear by addition because they contain only one ten or only one unit.

Any reference to Russia (USSR), tsars or Russians traditions is a clue.

The word nihilist is generally associated with a philisophic doctrine, but in Russian the word *нигилизм* has a Latin root meaning *nothing*.

dCode analyzes the pairs of digits of the message to extract the potential additions that formed them. It is then possible to find all the possible combinations and to deduce the potential keys with the grid.

Assuming that the over-encryption key is known, it is possible to decode normally with a basic / random grid. The result will then be a mono-alphabetic substitution of the original message. Use dCode's monoalphabetic substitution tool to decrypt the message almost automatically.

It is possible to make several variants:

— **Inversion of coordinates**: rather than using [row, column], it is possible to use [column,row].

— **Change of coordinates names**: the digits from 1 to 5 can very well be mixed or replaced by other digits.

— **Multiple keys**, it is possible to use several keys, summed successively, but this only extends the process time and does not complicate a brute-force attack.

The Russian nihilist movement is described in the history textbooks as between 1855 and 1885.

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

The copy-paste of the page "Nihilist Cipher" or any of its results, is allowed as long as you cite the online source

Reminder : dCode is free to use.

Please, check our dCode Discord community for help requests!

NB: for encrypted messages, test our automatic cipher identifier!

- Nihilist Cipher Decoder
- Nihilists Encoder
- What is the Nihilist cipher? (Definition)
- How to encrypt using Nihilist cipher?
- How to decrypt a Nihilist ciphertext?
- How to recognize a Nihilist ciphertext?
- How to decipher a nihilist text without key?
- How to decipher a nihilist text without grid?
- What are the variants of the nihilist cipher?
- When the Nihilists cipher was invented?

nihilist,russia,polybius,tsar,ussr

Source : https://www.dcode.fr/nihilist-cipher

© 2022 dCode — The ultimate 'toolkit' to solve every games / riddles / geocaching / CTF.

Feedback

▲
Thanks to your feedback and relevant comments, dCode has developed the best 'Nihilist Cipher' tool, so feel free to write! Thank you!