Straddle Checkerboard Cipher

Introduction §

The straddling checkerboard is a substitution cipher, except that the substitutions are of variable length. It has formed a component of several impotant field ciphers, the most notable being the VIC cipher used by russian spies during the cold war.

When combined with other methods of encryption, as shown in the example, the straddling checkerboard can be quite strong.

The Algorithm §

The key for a straddling checkerboard is a permutation of the alphabet e.g. 'fkmcpdyehbigqrosazlutjnwvx', along with 2 numbers e.g. 3 and 7. A straddling checkerboard is set up something like this (using the key information above):

   0 1 2 3 4 5 6 7 8 9
   f k m   c p d   y e
3: h b i g q r o s a z
7: l u t j n w v x    

The first row is set up with the first eight key letters, leaving two blank spots. It has no row label. The second and third rows are labelled with whichever two digits didn't get a letter in the top row, and then filled out with the rest of the key letters. Since there are 30 slots in our grid, and we missed two letters in the first row, there will end up being two spare in the other rows. It doesn't matter where these spares go, so long as sender and receiver use the same system.

To encipher, a letter on the top row is simply replaced by the number labelling its column. Letters on the other rows are replaced by their row number, then column number:

D E F E N  D T  H  E E A  S  T  W  A  L  L  O  F T  H  E C A  S  T  L  E
6 9 0 9 74 6 72 30 9 9 38 37 72 75 38 70 70 36 0 72 30 9 4 38 37 72 70 9

So, DEFEND THE EAST WALL OF THE CASTLE becomes 690975672309938377275387070360723094383772709. This may be sent directly, but usually is first input into a second cipher stage, such as a substitution or transposition step. As a simple example, we will add a secret key number (say, 83729) using non-carrying addition:

+ 690974672309938377275387070360723094383772709
= 427162944282657104463659953089550282655655428

Then use the same straddling checkerboard to turn it back into letters:


The final ciphertext is then CMUDMECCMYMDPUFCCDOPEEPHYEPPFMYMDPPDPPCMY. Note that it is a different length compared to the original plaintext. Deciphering is simply the reverse of this process. Although the size of groups can vary, deciphering is unambiguous because whenever the next element to be deciphered starts with a 3 or a 7, it is a pair; otherwise, it is a single letter.

Javascript Example of the Straddling Checkerboard Cipher §

The following javascript example implements only the first step of the straddle checkerboard algorithm, i.e. the second stage (shown in the example) is not implemented.


key =
Spare positions:


References §

  • [1] Wikipedia has a good description of the encryption/decryption process, history and cryptanalysis of this algorithm
  • [2] Kahn, D (1973) The CodeBreakers. Macmillan: New York
comments powered by Disqus

Further reading

We recommend these books if you're interested in finding out more.

Cover of Elementary Number Theory and Its Applications (4th Edition) Elementary Number Theory and Its Applications (4th Edition) Buy from
Cover of The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography ASIN/ISBN: 978-1857028799 Simon Singh's 'The Code Book' is an excellent introduction to ciphers and codes Buy from
Cover of The Codebreakers - The Story of Secret Writing The Codebreakers - The Story of Secret Writing ASIN/ISBN: 0-684-83130-9 Buy from