Scytale Cipher

Ancient Greek transposition cipher — wrap text around a rod of a chosen diameter.

Ad placeholder (leaderboard)

The scytale (pronounced skit-uh-lee) is one of the oldest known cryptographic devices, used by the Spartans around the 5th century BC. A leather or parchment strip was wrapped in a spiral around a rod of a specific diameter, and the message was written across the wrapped turns. When the strip was unwound, the letters appeared scrambled; the recipient simply re-wound the strip on a rod of the same diameter to read it. It is a classic transposition cipher — the letters stay the same, only their order changes.

How it works

Wrapping text around a rod is mathematically identical to writing it into a grid. The rod’s circumference, measured in letters, is the number of columns. You fill the grid row by row with the plaintext, then read it back column by column to produce the ciphertext.

For a message of length L and a width of w columns, the grid has ceil(L / w) rows. Encryption reads down each column in turn; decryption reverses this by reconstructing the same grid shape and reading across the rows. Because the last row may be partially filled, careful bookkeeping of column heights is needed — this tool handles ragged grids correctly so messages of any length round-trip exactly.

Worked example

Take the message HELP ME (7 characters) with a rod width of 3. Writing row by row gives the grid:

H E L
P   M
E

Reading column by column yields HPE + E + LM, so the ciphertext is HPEE LM. To decrypt, the receiver knows the width is 3, rebuilds the same grid by columns, and reads across to recover HELP ME.

Notes and tips

The rod width is the entire key — keep it secret and identical on both ends. Because the cipher preserves letter frequencies, it offers almost no security against analysis: an attacker can simply try every width. Use it as a hands-on introduction to transposition ciphers. Spaces and punctuation are treated as ordinary grid characters so encryption and decryption are perfectly reversible. All processing happens locally in your browser.

Ad placeholder (rectangle)