How to Cipher Like a Soviet

See if you can figure out how the American code-breakers unraveled the complexities of the Russian codebook

To get a hint of the monstrously difficult task undertaken by the Venona code breakers, consider all the elaborate steps that Soviet agents took to encrypt a secret message. Here’s how it worked, as explained by John Earl Haynes and Harvey Klehr in their book Venona: Decoding Soviet Espionage in America. The message—“Pilot delivered report about rockets”—is hypothetical, but it makes reference to an actual American spy, William Ullmann, an Army officer assigned to the Pentagon, whom the Soviets code-named “Pilot.” A U.S.-based Soviet agent might send this message to Moscow alerting superiors to check the diplomatic pouch for a dispatch from Pilot.

1. An agent hands the text to a cipher clerk, who uses a code book to convert the words to four-digit numbers:

2. The clerk shifts one digit to the first group from the second, two digits to the second group from the third, and so on, yielding:

3. Now the clerk consults a unique “one-time pad.” Each page bears 60 five-digit numbers and is supposed to be used just once. At the upper-left corner is a number—26473, in this case—which is inserted before the first group in the series:

That first number will alert the recipient, who has the same one-time pad, which page of the pad to consult.

4. Then the clerk takes the next four five-digit groups from the one-time pad...

...and adds them to the four groups that make up the message, using non-carrying arithmetic. (For instance, 8 + 6 = 4, not 14, because nothing is carried):

Now the entire message looks like this:

5. Next the clerk converts the numerical groups to letter groups, using the formula: