As late as the World War I era, cryptology depended on highly trained people at both ends of a communication to cipher and decipher a message. Codes were often kept in books that were vulnerable to enemy capture. The capturing of German code books by British military intelligence in World War I gave the Allies a significant tactical advantage. Soon after the war, technological advances in communication were applied to the sending and receiving of complexly coded text. Skilled cipherers and and codebooks were replaced by cipher machines. Modern cryptographers, therefore, not only had to break enemy codes, but also determine how foreign cipher machines operated and generated codes. Cipher machines produced more mathematically intricate and random codes that were difficult to break. Because many cipher machine codes were dependent upon both the sender and the receiver machines, the caputre of coded teleprinters did not dictate that a code could be broken.
In the 1930s, the German government comissioned the Seimans Company to create a cipher machine teleprinter that could produce, send, and receive plain and coded text. The idea behind the teleprinter was to randomize codes to make them more difficult to break, and to increase code information security. Seimans developed their first cipher teleprinter, the Geheimschreiber , with two encription features, overlaying of code and transposition of pulses. Long pre-dating digital technology, both the basic encription functions and the receipt of transpositioned pulses depended on mechanical circuts, namely various code wheels for text and charged capacators and their corresponding relays for the pulse. The machine's ten code wheels had periods corresponding with prime numbers between 47 and 73. Thus, the wheels combined to form 893,622,318,929,520,960 permutations, or steps. Eight basic patterns with over two billion variations were possible in regards to pulse transposition. These combined encryption mechanisms led the German government to assume that the Geheimschreiber was nearly random and unbreakable; however, the mathematical patterns used by the machines proved to be more systematic than they perceived.
Teleprinters utilized the 32-character Baudot code. The code output consisted of five channels, represented as holes or no holes in varying orders, to produce each character. The German cipher machines relied on the Vernam cipher system, a mathematical code based on the principle of binary addition. That is, two coded characters were added together to produce the ciphered text. Code breakers knew of both the Baudot code and Vernam system, but the obscuring factors of the German Geheimschreiber made deciphering the code difficult.
The German cipher machines were supposed to change starting positions with every message, notifying the receiving end of a given transmission in plain text of the starting steps on the code wheels. Thus, the obscuring sequence of each code was supposedly unique. Code breakers in Sweden worked to break the Geheimschreiber code mathematically, and did so with measurable success in 1942. However, the work was tedious and by the time they had produced several decoding machines, the highest levels of the German command had begun to use the newer Lorenz cipher machine. Swedish cryptologists were unable to decipher any wire traffic after February, 1944.
British intelligence cryptologists at Bletchley Park thought the best hope of readily deciphering German teleprinters was to intercept a depth, or two messages that utilized the same starting position. While codebreakers had some success mathmatically decoding Fish ciphered German transmissions, on August 30, 1941, British intelligence intercepted a 4,000-character-long depth. The Lorenz code was broken soon afterward by John Tiltman and Bill Tutte. Working out long code sequences by hand, the two uncovered the logical structure of the German cipher. With this knowledge, several "Tunny," now the code name for Lorenz transmissions, machines were constructed to facilitate decoding of intercepts. However, the start position settings of each message still had to be discovered by hand.
In 1943, British mathematician Max Newman and British engineer Tommy Flowers designed and built Colossus, a machine that not only simplified the process of deciphering German teleprinter intercepts, but that could be used with Geheimschreiber , Lorenz, and radio transmissions. Colossus' greatest contribution to codebreaking however was its ability to electronically decode the start position of each ciphered intercept, eliminating the need for painstaking hand calculations. The system was instrumental in the planning and execution of the allied D-Day invasion.
Goldreich, Oded. Foundations of Cryptography: Basic Tools. Cambridge: Cambridge University Press, 2001.
Stinson, Douglas. Cryptography: Theory and Practice , second edition. Chapman and Hall, 2002.