I’m working on a Python script which automatically generates a year’s worth of M-209 keying materials, with daily key changes. I hope that this script and its output will be useful for future M-209 activities, and add a more realistic flair to them.
Now, the big problem is that I’ve never seen actual M-209 key lists. I’ve come up with a plain text format for individual key tables, which I think I picked up from one of the M-209 technical manuals. I know that individual keys were identified by two-letter sequences called “key list indicators”. I know that keys were intended to be changed periodically, possibly daily (or possibly more or less often depending on activity level, but I’m sticking with daily for my purposes). I’ve seen a training film in which an M-209 key list is consulted, but the video transfer of the film is too blurry to make out useful details.
From these details, I’ve inferred what I think a key list might have looked like. I’m hoping to get some input from other crypto enthusiasts about the formatting, wording, etc.
I started working on this in preparation for a future announcement of an M-209 operator’s group similar to the Enigma World Code Group. I’ve previously published a collection of 676 M-209 key tables that I generated, but upon further consideration I found a few issues with using that for my envisioned M-209 collector’s group:
- Operators may wish to use their own key lists in addition to the published ones.
- A daily key change schedule would be more realistic than a simple pile of key tables to be chosen at will.
- Once new keys are in use, particularly ones which are published openly, there could easily be confusion about what key to use for a given cipher message since I’ve already published keys with all 676 possible key list indicators.
To address these issues, I’ve taken some creative license and added an additional indicator to the normal M-209 message format, which I call the “Net Indicator”. Just for good measure, I also added a group count. The new format would look like this example with a net indicator of “SAMPLE”:
SAMPLE GR 33 RRRAF BLKYD TSZQQ IXWKA WBVFC VBYWN BHNCL FNDUL RCOPB DNQGB BDLWU JHGJN RHAXQ FQWIT AJODV VCMRU VSFZT HNAVV XICAH WAMHU QRJIQ TAHZU DICKT XINSF JYBMV TJYSL NWOEU UTCWN BMWKY KQNKC CVUTX RRRAF BLKYD
With the added net indicator, anybody could publish their own M-209 key lists without ambiguity in the key list indicators, by simply choosing unique net indicators. The net indicators may be of any length, and consist of upper case letters and/or numbers. “GR” stands for “GROUPS”, and indicates that a group count follows. The remaining groups follow the normal WW2-era M-209 message format. I’ve updated my M-209 simulator to add the net indicator line when asked to, and to automatically ignore it when deciphering.
The current draft of my key list generator script creates a directory tree named after a specified net indicator and year. The directory tree then contains a subdirectory for each month, which will in turn contain:
- A directory named “keys” containing all key tables for the month as separate plain ASCII text files.
- A key list for the month in plain ASCII text format, with formfeeds between the individual key tables.
- A PDF key list formatted for on-screen viewing.
- A PDF key list formatted for double-sided printing followed by binding into a booklet.
- The same print-optimized PDF list burst out into a few separate files for easier printing on a single-sided printer.
The print-optimized PDF currently generates two copies of a 4.25″ x 5.5″ booklet like this one:
I like the pocket-sized form factor of the booklet, but the text is awfully small for older eyes to read easily. I’ll probably modify my script to also generate print-optimized PDFs for larger 5.5″ x 8.5″ booklets.
The final version of the printable PDFs probably won’t include the lines outlining each page, but I’ve included them in the above sample to make it easier to see what’s going on.
I would welcome some comments about my work so far, particularly from anybody who has ever seen WW2-era cipher keying materials. What do y’all think about the overall format? How about the wording I chose for things? What would be a good color of card stock to use for the booklet covers (I’m leaning towards light blue)?
Thanks in advance for any commentary on this.