Tool to decrypt/encrypt with Hill cipher, a ciphering system similar to affine cipher but using a coefficient matrix instead of 2 affine coefficients (gradient).

Hill Cipher - dCode

Tag(s) : Poly-Alphabetic 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*!

Tool to decrypt/encrypt with Hill cipher, a ciphering system similar to affine cipher but using a coefficient matrix instead of 2 affine coefficients (gradient).

**Hill** cipher encryption uses an alphabet and a square matrix $ M $ of size $ n $ made up of integers numbers and called encryption matrix.

__Example:__ Encrypt the plain text DCODE with the latin alphabet ABCDEFGHIJKLMNOPQRSTUVWXYZ and the matrix $ M $ (size $ 2 $): $$ M = \begin{pmatrix} 2 & 3 \\ 5 & 7 \end{pmatrix} $$

Split the text into $ n $-grams. Complete any final incomplete ngrams with random letters if necessary.

__Example:__ The matrix $ M $ is a 2x2 matrix, DCODE, split in 2-grams, becomes DC,OD,EZ (Z letter has been added to complete the last bigram)

Substitute the letters of the plain message by a value: their rank in the alphabet starting from $ 0 $.

__Example:__ The alphabet ABCDEFGHIJKLMNOPQRSTUVWXYZ leads to A=0,B=1,...,Z=25.

Groups of letters DC, OD, EZ become the groups of values (3,2), (14,3), (4,25)

It is possible (but not recommended) to use ZABCDEFGHIJKLMNOPQRSTUVWXY in order to get A=1,B=2,...Y=25,Z=0.

For each group of values $ P $ of the plain text (mathematically equivalent to a vector of size $ n $), compute the multiplication">matrix product: $$ M.P \equiv C \mod 26 $$ where $ C $ is the calculated vector (a group) of ciphered values and $ 26 $ the alphabet length.

__Example:__ $$ \begin{pmatrix} 2 & 3 \\ 5 & 7 \end{pmatrix} \begin{pmatrix} 3 \\ 2 \end{pmatrix} \equiv \begin{pmatrix} 12 \\ 3 \end{pmatrix} \mod 26 $$

From cipher values $ C $, retrieve cipher letters of the same rank in the alphabet.

__Example:__ $ 12 $ is equal to M and $ 3 $ is equal to D.

And so on, DCODEZ is encrypted MDLNFN.

**Hill** cipher decryption needs the matrix and the alphabet used. Decryption involves matrix computations such as matrix inversion, and arithmetic calculations such as modular inverse.

To decrypt **hill** ciphertext, compute the matrix inverse modulo 26 (where 26 is the alphabet length), requiring the matrix to be invertible.

__Example:__ Using the example matrix, compute the inverse matrix (modulo 26) : $$ \begin{pmatrix} 2 & 3 \\ 5 & 7 \end{pmatrix}^{-1} \equiv \begin{pmatrix} -7 & 3 \\ 5 & -2 \end{pmatrix} \equiv \begin{pmatrix} 19 & 3 \\ 5 & 24 \end{pmatrix} \mod 26 $$

Decryption consists in encrypting the ciphertext with the inverse matrix.

Note that not all matrices can be adapted to **hill** cipher. The determinant of the matrix has to be coprime with 26. For a 2x2 matrix, the 4 numbers $ \{ a,b,c,d \} $ must satisfy the condition that $ ad-bc $ is coprime with 26.

The ciphered message has a small index of coincidence and similar ngrams can be coded using the same letters.

Any reference to an actual **hill** or mountain is a clue.

dCode proposes to bruteforce test around 6000 combinations of 2x2 matrices (with digits between 1 and 9) and alphabets.

**Hill** is already a variant of Affine cipher. Few variants, except the use of large size matrices.

In 1929 by Lester S. **Hill**

dCode retains ownership of the online 'Hill Cipher' 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 Hill Cipher download for offline use on PC, tablet, iPhone or Android !

Please, check our community Discord for help requests!

hill,cipher,affine,modulo,matrix,lester,inverse,determinant

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

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

Feedback

▲