Colossus, the first large-scale electronic computer, was used against the German system of teleprinter encryption known at Bletchley Park as ‘Tunny’. Technologically more sophisticated than Enigma, Tunny carried the highest grade of intelligence. From 1941 Hitler and the German High Command relied increasingly on Tunny to protect their communications with Army Group commanders across Europe.
The prototype Colossus was brought to Bletchley Park in lorries and reassembled by Flowers’ engineers.56 It had approximately 1600 electronic valves and operated at 5000 characters per second. Later models, containing approximately 2400 valves, processed five streams of dot-and-cross simultaneously, in parallel. This boosted the speed to 25,000 characters per second. Colossus generated the chi-stream electronically. Only one tape was required, containing the ciphertext—the synchronisation problem vanished. (Flowers’ original plan was to dispense with the message tape as well and set up the ciphertext, as well as the wheels, on valves; but he abandoned this idea when it became clear that messages of 5000 or more characters would have to be processed.57)
Colossus and the modern computer
As everyone who can operate a personal computer knows, the way to make the machine perform the task you want—word-processing, say—is to open the appropriate program stored in the computer’s memory. Life was not always so simple. Colossus did not store programs in its memory. To set up Colossus for a different job, it was necessary to modify some of the machine’s wiring by hand, using switches and plugs. The larger ENIAC was also programmed by re-routing cables and setting switches. The process was a nightmare: it could take the ENIAC’s operators up to three weeks to set up and debug a program.114 Colossus, ENIAC, and their like are called ‘program-controlled’ computers, in order to distinguish them from the modern ‘stored-program’ computer.
This basic principle of the modern computer, that is, controlling the machine’s operations by means of a program of coded instructions stored in the computer’s memory, was thought of by Turing in 1936. At the time, Turing was a shy, eccentric student at Cambridge University. His ‘universal computing machine’, as he called it—it would soon be known simply as the universal Turing machine—emerged from research that no-one would have guessed could have any practical application. Turing was working on a problem in mathematical logic, the so-called ‘decision problem’, which he learned of from lectures given by Newman. (For a description of the decision problem and Turing’s approach to it, see ‘Computable Numbers: A Guide’ in The Essential Turing.115) In the course of his attack on this problem, Turing thought up an abstract digital computing machine which, as he said, could compute ‘all numbers which could naturally be regarded as computable’.116 The universal Turing machine consists of a limitless memory in which both data and instructions are stored, in symbolically encoded form, and a scanner that moves back and forth through the memory, symbol by symbol, reading what it finds and writing further symbols. By inserting different programs into the memory, the machine can be made to carry out any algorithmic task. That is why Turing called the machine universal.