🔲
Lesson 11
NIHILIST SUBSTITUTION
Polybius square + keyword addition
Overview
Used by Russian Nihilist revolutionaries in the 1800s
Two-step cipher:
Polybius square
(letter → two digits) +
keyword addition
At Invitationals/Regionals: Decrypt (D) — key given
At State/Nationals: Decrypt or Cryptanalysis (DC)
Step 1 — The Polybius Square
A 5×5 grid of letters, labeled 1–5 on rows and columns
I and J share one cell (25 letters fit in 5×5)
Each letter → a two-digit number (row, column)
Standard Polybius Square
1
2
3
4
5
1
A
B
C
D
E
2
F
G
H
I/J
K
3
L
M
N
O
P
4
Q
R
S
T
U
5
V
W
X
Y
Z
A=11, B=12, C=13, … Z=55
Keyword Square
The keyword is written into the Polybius square first (no duplicate letters)
Remaining letters fill in alphabetical order
This creates a non-standard Polybius square — the key
Keyword: CODE (no duplicates)
C O D E → then A B F G H I/J K L M N P Q R S T U V W X Y Z
Step 2 — Keyword Addition
Convert each plaintext letter to its two-digit Polybius number
Write the keyword above the message, repeating
Convert each keyword letter to its Polybius number
Add
the plaintext number and keyword number (no carrying)
Plain: HI Key: DO
H =
23
I =
24
D =
13
O =
34
Sum:
36
58
Decryption
Repeat keyword above ciphertext numbers
Convert keyword letters to Polybius numbers
Subtract
keyword numbers from ciphertext numbers
Look up the resulting number in the Polybius square → plaintext letter
If subtraction would give a negative digit, add 10 to the ones place (borrow across columns independently).
Cryptanalysis (State level)
Find keyword length using repeated patterns in the ciphertext
Group ciphertext numbers by keyword position
Use frequency analysis on each group's last digits (column info)
The most common Polybius value in English ≈ 23 (H), 15 (E), 44 (T)
Key Takeaways
Nihilist = Polybius square coordinates + keyword number addition
The keyword sets the Polybius square filling order
Decrypt by subtracting keyword numbers from ciphertext numbers
D at Invitationals; DC at State
Next class:
Checkerboard (5×5)
Homework: encrypt "CODE" with keyword "KEY" using a standard Polybius square.
← Admin
←
→