What is the Hill Cipher?
The Hill Cipher, invented by Lester S. Hill in 1929, is a polygraphic substitution cipher that uses linear algebra to encrypt/decrypt text. Unlike simpler ciphers (e.g., Caesar), it processes letters in blocks using a numeric key matrix.
Note: This tool is for educational purposes only. The Hill Cipher is vulnerable to known-plaintext attacks and is not secure for modern use.
Hill Cipher Encoder Online
Result:
Steps:
Hill Cipher Decoder Online
Result:
Steps:
How to Use Hill Cipher
- Assign Numbers to Letters: First, we convert each letter of our message into a number. The common way is A=0, B=1, C=2, …, Z=25.
- Choose a Key Matrix: You need a square matrix (like 2×2 or 3×3) as your “key”. It’s very important that this matrix can be “undone” (its determinant must have a modular inverse modulo 26). Don’t worry, our tool checks this for you!
- Group Your Message: Divide your plaintext (the message you want to encrypt) into blocks. The size of each block should match the size of your key matrix. For a 2×2 key, you’ll use pairs of letters (e.g., “HE”, “LP”). If your last block isn’t full, just add filler letters (like ‘X’ or ‘Z’) to complete it.
- Encryption (Encoding):
To encrypt, you take each block of plaintext numbers and multiply it by your key matrix. All calculations are done “modulo 26” (which means you divide by 26 and take the remainder).
$C = K P \pmod{26}$
Here, C is your encrypted (ciphertext) numbers, K is your Key Matrix, and P is your plaintext numbers. - Decryption (Decoding):
To decrypt, you need the “inverse” of your key matrix ($K^{-1}$). You multiply your ciphertext numbers by this inverse key matrix, again modulo 26.
$P = K^{-1} C \pmod{26}$
Here, P is your original plaintext numbers, K-1 is the inverse Key Matrix, and C is your ciphertext numbers. - Convert Back to Letters: Finally, convert the resulting numbers back into letters to get your encrypted or decrypted message!
How Hill Cipher Matrix Encryption Works
Example for 2×2 key matrix [[3, 3], [2, 5]] encrypting “HELLO”:
1. Split into pairs: HE | LL | O (pad ‘X’ if odd)
2. Convert to numbers: H(7) E(4) → [7, 4]
3. Multiply by key matrix: (3*7 + 3*4) mod 26 = 7 → H
4. Encrypted pair: [7, 22] → “HW”
2. Convert to numbers: H(7) E(4) → [7, 4]
3. Multiply by key matrix: (3*7 + 3*4) mod 26 = 7 → H
4. Encrypted pair: [7, 22] → “HW”
Solved Example: Hill Cipher (2×2 Matrix)
Let’s walk through an example. We’ll use a common key and encrypt the word “HELP”.
Key Matrix and Plaintext
Our Key Matrix (K) is:
K = [[11, 8], [3, 7]]
Step-by-Step Encryption (Encoding)
- Convert Plaintext to Numbers:
- H = 7
- E = 4
- L = 11
- P = 15
Block 1: HE -> [7, 4]
Block 2: LP -> [11, 15]
- Encrypt Block 1 (HE -> [7, 4]):
We multiply our key matrix by the first block’s numbers:
[11 8] * [7] = [(11*7) + (8*4)] = [77 + 32] = [109] [ 3 7] [4] [(3*7) + (7*4)] [21 + 28] [ 49]
109 mod 26 = 5 (because 109 = 4 * 26 + 5) 49 mod 26 = 23 (because 49 = 1 * 26 + 23)
Result for Block 1: FX
- Encrypt Block 2 (LP -> [11, 15]):
Repeat the process for the second block:
[11 8] * [11] = [(11*11) + (8*15)] = [121 + 120] = [241] [ 3 7] [15] [(3*11) + (7*15)] [33 + 105] [138]
241 mod 26 = 7 (because 241 = 9 * 26 + 7) 138 mod 26 = 8 (because 138 = 5 * 26 + 8)
Result for Block 2: HI
- Final Ciphertext: Combine the encrypted blocks: “FXHI”
Step-by-Step Decryption (Decoding)
Now, let’s decrypt “FXHI” back to “HELP” using the same key.
- Ciphertext to Numbers:
- F = 5
- X = 23
- H = 7
- I = 8
Block 1: FX -> [5, 23]
Block 2: HI -> [7, 8]
- Find the Inverse of the Key Matrix (K-1):
This is the trickiest part, but our tool does it automatically!
First, calculate the determinant of K:det(K) = (11 * 7) - (8 * 3) = 77 - 24 = 53
53 mod 26 = 1
1^-1 mod 26 = 1
Adjugate(K) = [[7, -8], [-3, 11]] (swapped diagonal, negated off-diagonal) Convert negative numbers to positive modulo 26: -8 mod 26 = 18 -3 mod 26 = 23 So, Adjugate(K) mod 26 = [[7, 18], [23, 11]] Now, K^-1 = det(K)^-1 * Adjugate(K) mod 26 K^-1 = 1 * [[7, 18], [23, 11]] mod 26 K^-1 = [[7, 18], [23, 11]]
- Decrypt Block 1 (FX -> [5, 23]):
Multiply the inverse key matrix by the first ciphertext block:
[ 7 18] * [5] = [(7*5) + (18*23)] = [35 + 414] = [449] [23 11] [23] [(23*5) + (11*23)] [115 + 253] [368]
449 mod 26 = 7 (because 449 = 17 * 26 + 7) 368 mod 26 = 4 (because 368 = 14 * 26 + 4)
Result for Block 1: HE
- Decrypt Block 2 (HI -> [7, 8]):
Repeat for the second block:
[ 7 18] * [7] = [(7*7) + (18*8)] = [49 + 144] = [193] [23 11] [8] [(23*7) + (11*8)] [161 + 88] [249]
193 mod 26 = 11 (because 193 = 7 * 26 + 11) 249 mod 26 = 15 (because 249 = 9 * 26 + 15)
Result for Block 2: LP
- Final Plaintext: Combine the decrypted blocks: “HELP”
Features of Hill Cipher Tool
- Supports 2×2 and 3×3 key matrices for both encoding and decoding.
- Clearly displays the encryption/decryption steps, including matrix operations.
- Automatic padding of plaintext/ciphertext for incomplete blocks (using ‘X’).
- Input validation for key matrix (ensures numerical values) and text (removes non-alphabetic characters).
- Automatic calculation of modular inverse of the key matrix for decryption, including checks for invertibility.
- User-friendly and intuitive interface with clear sections.
- Provides error messages for invalid inputs or non-invertible keys.
Applications of Hill Cipher
- Educational Tool: Excellent for demonstrating principles of linear algebra in cryptography and understanding polyalphabetic substitution.
- Historical Significance: Helps in understanding the evolution of classical ciphers and their strengths/weaknesses.
- Basic Data Obfuscation: Can be used for very simple, non-sensitive data hiding, though not recommended for secure communication.
- Cryptographic Training: Ideal for teaching environments to illustrate matrix-based ciphers and the importance of key invertibility.
- Component in Hybrid Ciphers: While not secure enough alone for modern use, it conceptually can be a part of more complex, hybrid cryptographic systems (e.g., combined with transposition ciphers).
- Puzzle Solving: Often used in cryptographic puzzles and challenges due to its mathematical nature.
Security Limitations
- ⚠️ Broken by known-plaintext attacks: If attackers know part of your plaintext, they can recover the key matrix.
- Requires invertible key matrix: Keys must have a modular inverse (determinant coprime to 26).
- Not for sensitive data: Use only for learning/puzzles.
Modern Alternatives
- AES (Advanced Encryption Standard) for symmetric encryption.
- RSA for public-key cryptography.
Hill Cipher FAQ
- Why does my key fail?
Your key’s determinant must have a modular inverse mod 26 (gcd(det(K),26)=1). - How to choose a good key?
Use random numbers and check invertibility with our tool. - Is my data stored?
No—all processing happens in your browser. - Can I use lowercase/special chars?
No—the tool auto-converts to uppercase and removes non-alphabetic chars. - How do I choose a valid matrix?
The matrix must be invertible mod 26 (determinant ≠ 0 and coprime with 26). - Why does decryption fail sometimes?
If the matrix determinant is 0 or shares factors with 26, it’s non-invertible. - Is the Hill Cipher secure?
No. It’s vulnerable to known-plaintext attacks. Modern ciphers (AES) are safer.
⚠️ Warning: For real security, use AES/RSA. Hill Cipher is for educational purposes only.
Leave a Reply