Daily Telegraph. Отдел тогда переехал в унылый городок Блетчли, главным преимуществом которого было то, что он находился на пересечении железной дороги, связывающей Оксфорд с Кембриджем, и дороги из Лондона в Бирмингем. Команда из Британской службы внешней разведки (МИ-6), выдавая себя за «Стрелковый клуб капитана Ридли[138]», посетила усадьбу Блетчли-Парк — чудище, построенное в стиле викторианской готики, которое его владелец давно хотел снести, и незаметно купила его. Взломщики кодов помещались в коттеджах, конюшнях и нескольких сборных домиках-хижинах, возведенных в прилегающем к дому парке[139].
Тьюринг был приписан к команде, работающей в хижине № 8 и пытавшейся разгадать немецкий код Enigma («Загадка»), который генерировался с помощью одноименной портативной машины, включавшей механические роторы и электрические цепи[140]. Она кодировала секретные сообщения с помощью шифра, который после каждого удара по клавише изменял правило для замены буквы. Процесс дешифровки был таким сложным, что англичане в какой-то момент отчаялись когда-либо сделать это. Прорыв произошел, когда польские офицеры разведки создали машину на основе трофейной немецкой шифровальной машины, с помощью которой удалось взломать некоторые коды «Энигмы»[141]. Однако к тому времени, когда поляки показали британцам свою машину, она была уже более-менее бесполезной, поскольку к своей машине немцы добавили еще два ротора и подсоединили еще две коммутационные панели.
Тьюринг и его команда начали работать над созданием более сложной машины, получившей название «Бомба», которая могла бы расшифровать сообщения с обновленной «Энигмы», в частности приказы по военно-морскому флоту, позволяющие следить за перегруппировкой подводных лодок, истреблявших британские конвои. «Бомба» использовала разнообразные слабые места в кодировании, в том числе то, что никакие буквы не могли быть зашифрованы по отдельности, и то, что некоторые фразы немцы в своих сообщениях неоднократно повторяли. К августу 1940 года команда Тьюринга имела две работающие «Бомбы», которые смогли расшифровать 178 закодированных сообщений; к концу войны их было построено около двухсот машин.
«Бомба», сконструированная Тьюрингом, не стала крупным шагом вперед в развитии компьютерной технологии. Это было электромеханическое устройство с реле в качестве переключателей и роторами, а не электронное устройство на лампах и электронных схемах. Но следующая машина, сконструированная в Блетчли-Парке, — Colossus стала такой важной вехой.
Необходимость в Colossus возникла тогда, когда немцы начали кодировать важные сообщения, например приказы Гитлера и его верховного командования, с помощью электронной цифровой машины, которая использовала двоичную систему и двенадцать кодирующих дисков (роторов) неодинакового размера. Электромеханические «Бомбы», разработанные Тьюрингом, были бессильны расшифровать такие сообщения. Для них требовались устройства, использующие молниеносно работающие электронные схемы.
Ответственная за эту проблему команда расположилась в хижине її, она называлась «Ньюманри» в честь ее руководителя — Макса Ньюмана, преподавателя математики, который почти за десять лет до того познакомил Тьюринга с проблемами Гильберта. Техническим руководителем работ был назначен партнер Ньюмана, ас в электронике и специалист по электронным лампам Томми Флауэрс, который до того работал на исследовательской станции почтамта в Доллис-Хилл, пригороде Лондона.
Тьюринг не был частью команды Ньюмана, но придумал статистический подход, получивший название «Тьюрингери», с помощью которого обнаруживались любые отклонения от равномерного распределения символов в потоке зашифрованного текста. В результате была построена машина, которая с помощью фотоэлектрических головок могла сканировать два рулона перфорированной бумажной ленты и сравнивать все возможные изменения в двух последовательностях. Машина получила название «Хит Робинсон» в честь британского художника-карикатуриста, который, как и Руби Голдберг в Америке, любил изображать сложные, но бессмысленные механические устройства.
В течение почти десятилетия Флауэрс был увлечен конструированием электронных схем на лампах, которые он и другие британцы называли valves («вентили»). В 1934 году, когда он работал инженером телефонного подразделения почтамта, Флауэрс создал экспериментальную систему, в которой использовалось больше трех тысяч ламп для контроля соединений тысячи телефонных линий. Он первым предложил использовать электронные лампы для хранения данных. Тьюринг предложил пригласить Флауэрса для помощи в изготовлении «Бомб», а затем представил его Ньюману.
Флауэрс понял, что единственный способ достаточно быстро дешифровать закодированные сообщения немцев — попытаться сохранить по крайней мере одно из них во внутренней электронной памяти машины, а не сравнивать два рулона перфорированной бумажной ленты. Такая память потребовала бы использования 1500 электронных ламп. Сначала руководители из Блетчли-Парка были настроены скептически, но Флауэрс настоял на своем, и в декабре 1943 года, всего через одиннадцать месяцев, он закончил первый вариант Colossus. А к 1 июня 1944 года была готова еще более громоздкая версия, использующая 2400 электронных ламп. В первом декодированном перехваченном сообщении говорилось, что Гитлер не посылает дополнительные войска в Нормандию, и оно подтвердило информацию из других источников, уже поступившую к генералу Дуайту Эйзенхауэру, готовому вот-вот начать вторжение в Нормандию. В течение года было произведено еще восемь Colossus.
Это означало, что задолго до ENIAC, который так и не заработал до ноября 1945 года, британские взломщики кодов построили полностью электронный и цифровой (в действительности двоичный) компьютер. Вторая версия, построенная в июне 1944 года, была способна даже производить некоторое условное ветвление. Но в отличие от ENIAC, который включал в себя в десять раз больше ламп, Colossus был специализированной машиной, предназначенной для взлома кодов, а не компьютером общего назначения. Из-за ограниченной программируемости он не мог решать все вычислительные задачи, которые мог (в теории) ENIAC.
Так кто же изобрел компьютер?
В вопросе о том, кому отдать пальму первенства в создании компьютера, полезно начать с определения сущности компьютера. В самом общем виде под определение компьютера могут попасть всевозможные устройства — от арифмометра до айфона. Но при составлении хроники цифровой революции имеет смысл следовать принятым современным определениям компьютера. Вот некоторые из них:
«Программируемое, обычно электронное устройство, которое может хранить, извлекать и обрабатывать данные» (словарь Merriam-Webster).
«Электронное устройство, которое может получать информацию (данные) в определенной форме и выполнять последовательность операций в соответствии с предварительно заданным, но изменяемым набором процедурных инструкций (программой) для получения результата» (Оксфордский английский словарь).
«Устройство общего назначения, которое может быть запрограммировано для автоматического выполнения набора арифметических или логических операций» («Википедия», 2014).
Таким образом, идеальный компьютер — это машина, которая является электронным и программируемым устройством общего назначения. Какой же компьютер правильнее считать первым?
Модель K Джорджа Роберта Стибица, которую тот начал строить на своем кухонном столе в ноябре 1937 года, в январе 1940 года в Bell Labs трансформировалась в полнофункциональную модель и стала двоичным компьютером и первым устройством с удаленным доступом. Но в ней использовались электромеханические реле, и, таким образом, она не была полностью электронной. Она не была также ни программируемой, ни универсальной, а предназначалась для решения определенной задачи.
Строительство машины Z3 Германа Цузе было завершено в мае 1941 года, и она стала первым автоматически контролируемым, программируемым электрическим двоичным устройством. Она была разработана для решения инженерных проблем, а не для решения общих задач. Тем не менее позже было показано, что теоретически ее можно было бы использовать в качестве тьюринг-полной машины. Ее главное отличие от современных компьютеров состояло в том, что она была электромеханической, а не электронной. Скорость ее работы определялась медленно срабатывающими переключателями — щелкающими реле. Другим недостатком являлось то, что она никогда не пошла в серию, поскольку была разрушена в результате бомбардировок союзниками Берлина в 1943 году.
Создание компьютера, сконструированного Джоном Винсентом Атанасовым, было остановлено в тот момент, когда Атанасов перестал им заниматься, уйдя служить в ВМФ в сентябре 1942 года, и его компьютер так и не стал полноценно работающим. Он был первым электронным цифровым компьютером в мире, но все-таки не полностью электронным. В его устройствах сложения и вычитания действительно использовались электронные лампы, но блоки памяти и извлечения данных содержали механические вращающиеся барабаны. Другим его основным недостатком, не позволяющим считать его первым современным компьютером, было то, что он не был ни программируемым, ни универсальным, а, напротив, был жестко ориентирован на специальную задачу решения линейных уравнений. Кроме того, Атанасов никогда не смог заставить его работать полноценно, и он был похоронен в подвале Университета Айовы.
Colossus I, завершенный в декабре 1943 года Максом Ньюманом и Томми Флауэрсом (с участием Алана Тьюринга) в Блетчли-Парке, был первым цифровым полностью электронным компьютером, который был и программируемым, и работающим. Он не был, однако, компьютером общего назначения или тьюринг-полной машиной, поскольку предназначался для решения определ