The M-138 (also known as CSP-845) is a strip cipher system used by the US Armed Forces in the first half of the 20th century. See here for a description.
The purpose of the M-138 was to provide reasonable cipher security at low costs. It was not a high security system. It was used when a cipher machine (for instance the M-209 or the SIGABA) was not available. This happened quite often, as cipher machines were by orders of magnitude more expensive than strip ciphers and harder to transport. Before and at the beginning of WW2 a great deal of reliance was placed on the M-138 because of the shortage of cipher machines. Later it remained in use as a backup system.
In my view the M-138 served its purpose extremely well. It was a very cheap tool (consisting only of paper strips and a simple frame), it was easy to carry, it was easy to operate, and it provided high security given the circumstances. To my knowledge not much has been published about cryptanalysis of the M-138. Therefore, it is not known how much effort it takes to break an M-138 message and if this effort was realistic for a codebreaking unit in World War 2. In addition, it would be interesting to know whether the M-138 could have been improved without major effort (for instance by putting 30 strips into the frame instead of 25). To stimulate research I have created the M-138 challenge introduced on this page.
How the M-138 worked
For explaning how the M-138 works I use a fictive model, which is not compatible with an original M-138 device. An M-138 consists of 100 paper strips (the strips of my fictive model are given at the end of this page in an easy-to-read format). On each strip the alphabet is printed twice in a random order. For encryption the cipher clerk had to take a maiximum of 25 strips from the strip set and put them into the frame. In the following example the strips 66, 11, 52, 55, 04 and 90 of my fictive M-138 version are taken to encrypt the word CRYPTO.
The key of this encryption procedure is (66, 11, 52, 55, 04, 90 / 11). It consists of the strip numbers used followed by the offset between the cleartext column and the ciphertext column. In this example the ciphertext is UKLAGW. The number of strips used may not exceed 25 (only 25 strips fit into the frame). No strip may be put into the frame twice. This means that a key like (20, 12, 20, …) is not allowed.
If the cleartext is longer than 25 letters, it must be devided into 25 letter blocks. In the following example the cleartext THIS TEST MESSAGE CONTAINS NO CONFIDENTIAL INFORMATION is encrypted. It consists of 48 letters. We start with the first 25 letters as the first block. The key is (42, 19, 26, 28, 02, 17, 49, 38, 87, 08, 94, 64, 92, 88, 37, 63, 39, 35, 30, 31, 05, 27, 34, 78, 60 / 6).
Now the remaining 23 letters are encrypted (the key stays the same).
The ciphertext is BYKWH CXGTX DXFBV HHSEC JMAHT LRLUB FCCNJ WKAPJ LVVXO JQQ.
The Challenge
In the following, three ciphertexts generated with my fictive M-138 model are given. The task of the reader is to break the encryption and find the cleartext. All cleartexts are in English. Part 1 is the easiest, as the cleartext is the longest. It contains 75 letters, which means that each strip in the frame is used three times. The complexity rises considerably with part 2 and 3 because the ciphertexts become shorter (50 and 25 letters). In my view parts 1 and 2 can be solved while part 3 is extremely difficult, if not unbreakable. The key is different for each part, but there is no key change within a part.
Part 1 (75 letters)
PTIJJ HDJPK YTMTK UVEPD HYKLH DEYMG LIJLN WKXVG ZILQN CJRHW JNBJF UAQHN BJGXW ZBESX NXPZH
Part 2 (50 letters)
BEYXX ZRFWO WMJCA QIUZY KYLID NBYEC UBCDC UBQHZ AVJES UNECV
Part 3 (25 letters)
PJVYN PYIXG RPJRW YBMBA FQQPE
The Strips
The 100 strips used by the fictive M-138 are as follows (each strip contains the alphabet twice in the same order, to save space each alphabet permutation is only listed once):
00 DTYLUKCNOIVSEPFQJWRGMBZAXH
01 LOGKWPRMDUVSYFJNTQIHEAZCBX
02 YGSKCJETRMUWNHQXIZFAOVBLDP
03 BERHJYKWCSLNPDZIGFUAOXVQTM
04 JLSGAOPZEMBVQCUIYDTHXRWFKN
05 IPWSURJTOQGEVDBMYKLNHAXZFC
06 CGLXSIBTJHOKNDMQPVRZAYEFUW
07 YGHKDVLQEXUOASZWPJFBCNRITM
08 ACZLSOGEDPYWFXHBVIMUKNTJQR
09 XTHNIBAFEUQSGLJDWOZKMPVCYR
10 MFKGNURPJZTBQWLCASIHVYOXDE
11 NHTEPCFDXRYZBAIMSGVJKUOQWL
12 AHFPGVUKLMNCTSRDEIWZXYQBOJ
13 SAHIKWDQJNPVUTZCBYLOGFMREX
14 GPNWMTOSQHJVYKFEALXCIRDBZU
15 GPCWQOSVZKINJHERUABDTMXLFY
16 NKAELXYVRDOGZIMTFUBSPJQHWC
17 EFTXLBCAWHUJGVOMYRSNKDQIZP
18 ZLNRQBAVYMJUDOTSHXCWGPKIEF
19 YAGDUTFIXMBWLOJQVNERHKSZPC
20 THRAWJEMNFKYZCIGOBXVSULDQP
21 INESDOMTPBQGHYFUZCRVWLKJXA
22 YIRAELHQOSXGCWTPJVZUNFMDKB
23 ITLFAXYCMOPVGZHURDBWNSJQKE
24 QRJGEFWVLKSUHPCXYBMOITNZAD
25 VYGNODPUJEMFCZIXASKBWHRTLQ
26 ANZIFPCLOKMHSJDEWVBYQXTURG
27 NEBZCRMKDPATGLSOWHFIJQVUYX
28 EQJTZFYSINAUBWCVDXRKHPLGMO
29 KDOTRBZWIAUYPLNHEGFQSJMCXV
30 XVSRDIUZFCQTMPLHYEGJAKNWOB
31 MVELIBQAFGJNPCKWXUSTZRDYHO
32 BMOITNEWDAUVPHZJXYSLRQCFGK
33 UYWVFPNHDCRSMZQGXOBTEKLAIJ
34 LBTNMCYODQIKHSFUJEVARPXWGZ
35 NFGUQPSTMCKOXJVWELIABRHYZD
36 CWMFKHPLOVIQXDARBUTEGZJSNY
37 ITOPAJWHEDZKMCVUXBYQSNLRGF
38 EODXLUVTSYHMFGAJNWPZQBCIKR
39 HZACTFNPIXMQRDUBYKVJOGWLES
40 KYFAZHCLPNQGXWDTVBORUJIMSE
41 NSWZTGXHKVBPCORLYQEAIJDFUM
42 XSYLMPKQIZWEANTOVHRDBFUCGJ
43 XYISKJVQMTRCAUNGZEOHFWLBDP
44 KDMEPYHGQZTSUVJFXOILRANBWC
45 GEVKJRNFBXWQPHDOAMTLIZYUCS
46 MZEKBDFIGQTLJPOWUXSHCRNYVA
47 AZLETRUFIPJHBXKOSYQMNGDCVW
48 KNEOJVXFQWCHTDGUMZLYSRAIPB
49 UIROVSWAGEQXTHZCFYLBDJPKMN
50 XBDQIFRUVENLHOAZPWGMKJTCSY
51 BPJZGEVCNTMAOIKHDWSRFUXQLY
52 CXEDARNFZGLSPWKQHTVIUBMOJY
53 IZMLCRNWAKTBUHJSPFOEGYQXDV
54 JOBCRSIAHGZKNYQLDFEPVXWMUT
55 WPCKJMQTZIELARUBSOXFVYHDNG
56 KHVUDGMOJWPYRFSQBLZACITNXE
57 VFIZLTQPMKRACDSOGJXEUNBWYH
58 GFYVTDQLHWJPKMBAZNIUOSCXER
59 QKMSFAZBVPHGWIODEXUCNYJLTR
60 IAPDHNYVFCMOERLUJTQBWSZXKG
61 ARZOWSMPBKJLVDGUIYNXFHCETQ
62 DHOXKZWVTCPBRMGIQALYJFUNES
63 TJFPRHKUWQOMXNIBLYVDZEAGSC
64 ACBZGTPNSJYDVLXRHOWKUEFMQI
65 FPHEOKUXNQMZWIVRTCSGBDLJAY
66 DJABIUXEYQOKRZNSLMPGCTVHFW
67 AIHDGCNLPQOVTKMJFSRZEBUYXW
68 JKULTOCZYWNDBIXHQMPSFGEARV
69 BZJTGQCFKWRPODNLYMSEVHIUAX
70 CQDBVGIZRNJKFLUXAWYTESPMOH
71 TADSIQMURKNHYVXCELWOPZGFJB
72 VSYUFWHJKOBNTIEDRXMLACZPGQ
73 ILCBVHDKSURWXJNFAEYOPQMGZT
74 WHVQOLDZPURMGEXTSFYBAICJKN
75 EZKTAMWIYJQXPLOVBCHNGUDFRS
76 VCLSBQWEDKGTYIFXHARMZUNPJO
77 FYAJDGSOVPRCHQWUNITEBKZLMX
78 BXQWVTCEURIZKAGPNLODFJHMYS
79 MJPKITCUYZSXBOGLADEWVFQNHR
80 IZEXRFDHAGSQNPTVBMLWKOUJCY
81 CTPONKGRMUJWQEYXZVALHIDBFS
82 HVFBTXSJLNAYPZUQOMRGWICKED
83 UCSBJDZOTEIQHARVYNWLPMGKFX
84 LUJHAXCWIRPMVDQNTGBZEFYOKS
85 AHUKMVEPFNBXYCTORQDSIWZGJL
86 XWLNYZGIAKJSURDHMQCETFVPBO
87 VSIJNAXHZLPOQYGRDKMUWFBETC
88 EMWOFAKYTNQZGXJPLVBRCIUDSH
89 RSLIHTMPNJXGOCKDUQFAZYWVBE
90 XCJIGNOKFEHMTADBYWPLSZRUQV
91 AJCKXTMLDWHEZBNYORUIVGPSQF
92 RZEWMCBXITNQLYADSOVGFUPHKJ
93 JMSOVGIPCLYUNDRTFEWQBHXKZA
94 FYCRPOJNHLSKVUBIDMXAEQZTGW
95 UXZRBFIQNYLWDKCHSJTPAVEGMO
96 SRJTMXUZBWGFYDKEVOPAHILQCN
97 QOHEWVDSTAKJIBNXPGCLRYMZFU
98 OKSGRZYCDEWVJPAHXFLIMUNBTQ
99 ULDOMNSRCYGVBPXQWAZJFKEITH
Kommentare (18)