[Перевод] Электронные компьютеры, часть 2: Колосс
Предыдущая часть
В 1938 году глава Британской секретной разведки без лишнего шума приобрёл имение площадью в 24 гектара в 80 милях от Лондона. Оно было расположено на пересечении железных дорог, идущих из Лондона на север, и из Оксфорда на западе в Кембридж на востоке, и было идеальным местом для организации, которой никто не должен был видеть, однако же расположенной в быстрой доступности для большей части важных центров знаний и власти Британии. Имение, известное, как Блетчли-парк, стало британским центром взлома шифров во время Второй Мировой. Это, возможно, единственное место в мире, известное причастностью к криптографии.
Танни
Летом 1941 года в Блетчли уже вовсю велись работы по взломы знаменитой шифровальной машины Энигма, использовавшейся немецкими армией и флотом. Если вы смотрели фильм про британских взломщиков шифров, то там рассказывали про Энигму, но мы не будем тут о ней распространяться — поскольку вскоре после вторжения в Советский союз в Блетчли обнаружили передачу сообщений с новым типом шифрования.
Криптоаналитики довольно скоро разгадали общую природу использованной для передачи сообщений машины, которую они прозвали «Танни».
В отличие от Энигмы, сообщения которой нужно было расшифровывать вручную, Танни напрямую подключалась к телетайпу. Телетайп преобразовывал каждый введённый оператором символ в поток точек и крестиков (похожий на точки и тире азбуки Морзе) в стандартном коде Бодо с пятью символами на букву. Это был незашифрованный текст. Танни одновременно использовала двенадцать колёсиков для создания собственного параллельного потока точек и крестиков: ключа. Зачем она добавляла ключ к соощению, выдавая зашифрованный текст, передаваемый по воздуху. Сложение производилось в двоичной арифметике, где точки соответствовали нулям, а крестики — единичкам:
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0
Другая Танни на стороне получателя с теми же настройками выдавала тот же ключ и добавляла его к зашифрованному сообщению, чтобы выдать изначальное, которое печаталось на бумаге телетайпом получателя. Допустим, у нас есть сообщение: «точка плюс точка точка плюс». В цифрах это будет 01001. Добавим случайный ключ: 11010. 1 + 0 = 1, 1 + 1 = 0, 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, так что мы получим зашифрованный текст 10011. Вновь добавляя ключ, можно восстановить изначальное сообщение. Проверим: 1 + 1 = 0, 1 + 0 = 1, 0 + 0 = 0, 1 + 1 = 0, 0 + 1 = 1, получаем 01001.
Разбор работы Танни облегчался тем фактом, что в ранние месяцы её использования отправители передавали настройки колёс, которые надо использовать перед отправкой сообщения. Позже немцы выпустили кодовые книги с предварительно заданными настройками колёс, и отправителю нужно было только отправить код, по которому получатель мог найти нужную настройку колеса в книжке. В итоге они стали менять кодовые книги ежедневно, из-за чего Блетчли приходилось взламывать настройки кодовых колёс каждое утро.
Интересно, что криптоаналитики разгадали функцию Танни на основе расположения отправляющих и принимающих станций. Она соединяла нервные центры высшего немецкого командования с армией и командирами армейских групп на различных европейских военных фронтах, от оккупированной Франции до русских степей. Это была соблазнительная задача: взлом Танни обещал прямой доступ к намерениям и возможностям врага на высшем уровне.
Затем, благодаря сочетанию ошибок немецких операторов, хитрости и упорной решительности, молодой математик Уильям Тат продвинулся гораздо дальше простых выводов о работе Танни. Не видев саму машину, он полностью определил её внутреннюю структуру. Он логически вывел возможные позиции каждого колеса (у каждого из которых было своё простое число), и то, как именно расположение колёс генерировало ключ. Вооружившись этой информацией, в Блетчли построили копии Танни, которые можно было использовать для расшифровки сообщений — сразу после правильной настройки колёс.
12 колёс ключа машины, использующей шифр Лоренца, известной, как Танни
Хит Робинсон
К концу 1942 года Тат продолжал атаковать Танни, разработав для этого специальную стратегию. Она была основана на концепции дельты: сумма по модулю 2 одного сигнала в сообщении (точки или крестика, 0 или 1) со следующим. Он понял, что из-за прерывистого движения колёс Танни существовала связь между дельтой зашифрованного текста и дельтой текста ключа: они должны были меняться совместно. Так что если сравнить шифрованный текст с ключевым текстом, созданным на разных настройках колёс, можно вычислить дельту для каждого и подсчитать количество совпадений. Сильно превышающее 50% количество совпадений должно отметить потенциального кандидата на реальный ключ сообщения. В теории идея была хорошей, но её невозможно было воплотить на практике, поскольку это требовало сделать 2400 проходов для каждого сообщения, чтобы проверить все возможные настройки.
Тат принёс эту задачу другому математику, Максу Ньюману, руководившему отделом в Блетчли, который все называли «ньюманией». Ньюман, на первый взгляд, был маловероятной кандидатурой на руководство чувствительной британской разведывательной организацией, поскольку его отец был родом из Германии. Однако казалось маловероятным, что он будет шпионить в пользу Гитлера, поскольку его семья была еврейской. Он так сильно был обеспокоен прогрессом доминирования Гитлера в Европе, что перевёз свою семью в безопасное место, в Нью-Йорк, вскоре после коллапса Франции в 1940-м, и какое-то время сам думал о переезде в Принстон.
Макс Ньюман
Так получилось, что у Ньюмана была идея о работе над расчётами, требовавшимися методу Тата — посредством создания машины. В Блетчли уже привыкли использовать машины для криптоанализа. Именно так была взломана Энигма. Но Ньюман задумал определённое электронное устройство для работы над шифром Танни. До войны он преподавал в Кембридже (одним из его студентов был Алан Тьюринг), и знал об электронных счётчиках, построенных Уинном-Уильямсом для подсчёта частиц в Кавендише. Идея была в следующем: если синхронизировать две замкнутые в петлю плёнки, прокручивающиеся с большой скоростью, на одной из которых будет ключ, а на другой — зашифрованное сообщение, и считать каждый элемент обработчиком, который подсчитывает дельты, то электронный счётчик мог бы суммировать результаты. Прочитав итоговый счёт в конце каждого пробега можно было решать, потенциальный ли этот ключ, или нет.
Случилось так, что группа инженеров с подходящим опытом как раз существовала. Среди них был и сам Уинн-Уиьлямс. Тьюринг завербовал Уинна-Уильямса из радарной лаборатории в Мэлверне, чтобы тот помог создать новый ротор для машины, расшифровывающей Энигму, использующий электронику для подсчёта поворотов. Ему с этим и другим проектом, относившемся к Энигме, помогали три инженера из Почтовой исследовательской станции в Доллис-Хилл: Уильям Чандлер, Сидни Бродхерст и Томми Флауэрс (напомню, что Британская почта была высокотехнологичной организацией, и отвечала не только за бумажную почту, но и за телеграфию и телефонию). Оба проекта провалились и мужчины остались без дела. Ньюман собрал их. Он назначил Флауэрса ведущим команды, создававшей «комбинирующее устройство», которое должно было подсчитывать дельты и передавать результат на счётчик, над которым работал Уинн-Уильямс.
Ньюман занял инженеров постройкой машин, а Женский отдел королевского флота — управлением его машинами для обработки сообщений. Правительство доверяло высокие руководящие посты только мужчинам, а женщины хорошо справлялись, работая операционистками в Блетчли — они занимались как транскрипцией сообщений, так и декодирующими настройками. У них очень органично получилось перейти от канцелярской работы к заботе о машинах, автоматизировавших их работу. Свою подопечную машину они легкомысленно назвали «Хитом Робинсоном», британским эквивалентом Руба Голдберга [оба были иллюстраторами-карикатуристами, изображавшими чрезвычайно сложные, громоздкие и запутанные устройства, выполнявшие очень простые функции / прим. перев.].
Машина «Старый Робинсон», очень похожая на своего предшественника, машину «Хит Робинсон»
И действительно, «Хит Робинсон», в теории достаточно надёжный, на практике страдал от серьёзных проблем. Основной была необходимость идеальной синхронизации двух плёнок — шифрованного текста и текста ключа. Любое растяжение или соскальзывание любой из плёнок приводило в негодность весь проход. Чтобы минимизировать риск ошибок, машина обрабатывала не более 2000 символов в секунду, хотя ремни могли работать и быстрее. Флауэрс, нехотя соглашавшийся с работой проекта «Хит Робинсон», считал, что есть способ лучше: машина, почти полностью построенная из электронных компонентов.
Колосс
Томас Флауэрс работал инженером в исследовательском отделении британской почты с 1930, где он изначально трудился над исследованием неправильных и несостоявшихся соединений в новых автоматических телефонных станциях. Это привело его к размышлениям на тему того, как создать улучшенную версию телефонной системы, и к 1935 году он стал проповедовать замену электромеханических компонентов системы, таких, как реле, на электронные. Эта цель определила всю его дальнейшую карьеру.
Томми Флауэрс, в районе 1940
Большая часть инженеров критиковала электронные компоненты за их капризность и ненадёжность при использовании в больших масштабах, но Флауэрс показал, что если использовать их беспрерывно и на мощностях гораздо ниже расчётных, электронные лампы на самом деле демонстрируют поразительно долгое время службы. Он доказал свои идеи, заменив все терминалы, устанавливавшие тональный сигнал связи на коммутаторе, обслуживавшем 1000 линий, лампами; всего их там было 3–4 тысячи. Эта инсталляция была запущена в реальную работу в 1939-м. В тот же период он экспериментировал над заменой релейных регистров, хранящих телефонные номера, электронными реле.
Флауэрс считал, что «Хит Робинсон», для создания которого его наняли, обладал серьёзными недостатками, и что он сможет гораздо лучше решить эту задачу, используя больше ламп и меньше механических частей. В феврале 1943 года он принёс альтернативную схему машины Ньюману. Флауэрс хитроумно избавился от плёнки с ключом, устранив проблему синхронизации. Его машина должна была генерировать текст ключа на лету. Она должна была симулировать Танни электронным образом, проходя через все настройки колёс и сравнивая каждое из них с зашифрованным текстом, записывая вероятные совпадения. Он рассчитывал, что такой подход потребует использования около 1500 электронных ламп.
Ньюман и остальное руководство Блетчли скептически отнеслись к этому предложению. Как большинство современников Флауэрса, они сомневались, можно ли заставить электронику работать на таких масштабах. Кроме того, даже если её можно заставить работать, они сомневались, что такую машину можно будет построить вовремя, чтобы она пригодилась в войне.
Начальник Флауэрса в Доллис-Хилл всё же дал ему добро на сбор команды для создания этого электронного монстра — Флауэрс, возможно, не совсем искренне описал ему, насколько его идея понравилась в Блетчли (Если верить Эндрю Ходжесу, Флауэрс сказал своему боссу, Гордону Рэдли, что проект был критической для Блетчли работой, а Рэдли уже слышал от Черчилля, что работа Блетчли была абсолютно приоритетной). Кроме Флауэрса, в разработке системы большую роль сыграли Сидни Броадхерст и Уильям Чандлер, а вся затея заняла работой почти 50 человек, половину ресурсов Доллис-Хилл. Команда вдохновлялась прецедентами, использовавшимися в телефонии: счётчиками, ветвящейся логикой, оборудованием для роутинга и перевода сигналов, и аппаратурой для периодических измерений состояния оборудования. Броатхерст был мастером таких электромеханических схем, а Флауэрс и Чандлер были экспертами в электронике, понимавшими, как перенести концепции из мира реле в мир клапанов. К началу 1944 команда представила работающую модель в Блетчли. Гигантская машина получила наименование «Колосс», и быстро доказала, что может затмить «Хита Робинсона», надёжным образом обрабатывая по 5000 символов в секунду.
Ньюман и остальное руководство в Блетчли быстро поняли, что ошиблись, отказав Флауэрсу. В феврале 1944-го они заказали ещё 12 «Колоссов», которые должны были встать в строй к 1 июня — на эту дату планировалось вторжение во Францию, хотя, конечно, Флауэрсу это было неизвестно. Флауэрс прямо сказал, что это невозможно, но приложив героические усилия, его команде удалось поставить вторую машину к 31 мая, в которую новый член команды, Алан Кумбс, вносил множество усовершенствований.
Переработанная схема, известная, как Mark II, продолжила успех первой машины. Кроме системы подачи плёнки, она состояла из 2400 ламп, 12 поворотных выключателей, 800 реле и электрической пишущей машинки.
Colossus Mark II
Она была настраиваемой и достаточно гибкой для того, чтобы выполнять различные задачи. После установки каждая из женских команд настроили своего «Колосса» для решения определённых проблем. Коммутационная панель, похожая на панель для работы телефонного оператора, была нужна для настройки электронных колец, симулировавших колёса Танни. Набор переключателей позволял операторам настраивать любое количество функциональных аппаратов, обрабатывавших два потока данных: внешнюю плёнку и внутренний сигнал, генерировавшийся кольцами. Комбинируя набор из разных логических элементов, «Колосс» мог заниматься расчётами произвольных булевых функций на основе данных, то есть, таких функций, которые выдавали бы 0 или 1. Каждая единица увеличивала счётчик «Колосса». Отдельный управляющий аппарат делал ветвящиеся решения на основе состояния счётчика — например, остановиться, и распечатать вывод, если значение счётчика превысило 1000.
Панель переключателей для настройки «Колосса»
Допустим, что «Колосс» был бы программируемым компьютером общего назначения в современном смысле. Он мог логически комбинировать два потока данных — один на плёнке, и один, сгенерированный кольцевыми счётчиками — и подсчитывать количество встреченных единичек, и всё. Большая часть «программирования» «Колосса» проходила на бумаге, и операторы выполняли дерево решений, подготовленное аналитиками: допустим, «если вывод системы меньше X, настроить конфигурацию B и выполнить Y, а иначе выполнить Z».
Блок-схема высокого уровня для «Колосса»
Тем не менее, «Колосс» был вполне в состоянии решать поставленную перед ним задачу. В отличие от компьютера Атанасова-Берри, «Колосс» был чрезвычайно быстрым — он мог обрабатывать 25000 символов в секунду, каждый из которых мог потребовать выполнения нескольких булевых операций. Mark II пятикратно увеличил скорость по сравнению с Mark I, одновременно считывая и обрабатывая пять различных участков плёнки. В нём отказались связывать всю систему с медленными электромеханическими устройствами ввода-вывода, использовав фотоэлементы (взятые с противовоздушных радиовзрывателей) для чтения входящих плёнок и реестр для буферизации вывода на пишущую машинку. Лидер команды, восстанавливавшей «Колосса» в 1990-х, показал, что в своём деле он всё ещё легко мог обогнать по производительности компьютер на базе процессора Pentium 1995 года.
Эта мощная машина для обработки текста стала центром проекта по взлому кода Танни. До конца войны было построено ещё десять Mark II, панели для которых штамповали по одной штуке в месяц работники почтовой фабрики в Бирмингеме, не имевшие понятия, что именно они производят, а затем их собирали в Блетчли. Один раздражённый чиновник из Министерства снабжения, получив очередной запрос на тысячу особых клапанов, поинтересовался, не «стреляют ли работники почты ими в немцев». Таким индустриальным способом, а не ручной сборкой индивидуального проекта, следующий компьютер будет производится не ранее 1950-х. По инструкции Флауэрса для предохранения клапанов каждый «Колосс» работал днём и ночью до самого конца войны. Они стояли, тихо светясь в темноте, разогревая влажную британскую зиму и терпеливо ожидая инструкций, пока не пришёл тот день, когда в них больше не было нужды.
Завеса молчания
Естественный энтузиазм по поводу интригующей драмы, разворачивавшейся в Блетчли, привёл к чрезмерному преувеличению военных достижений этой организации. Ужасно абсурдно намекать, как это делает фильм «Игра в имитацию» [The Imitation Game], что британская цивилизация перестала бы существовать, если бы не Алан Тьюринг. «Колосс», судя по всему, не оказал никакого влияния на ход войны в Европе. Его самое разрекламированное достижение состояло в доказательстве того, что обманный план по поводу высадки в Нормандии в 1944 году сработал. Полученные через Танни сообщения говорили о том, что союзники удачно убедили Гитлера и его командование в том, что настоящий удар придётся дальше к востоку, у Па-де-Кале. Обнадёживающая информация, но вряд ли уменьшение уровня кортизола в крови союзного командования помогло выиграть войну.
С другой стороны, технологические достижения, которые представил «Колосс», были неоспоримы. Но мир ещё не скоро это узнает. Черчилль приказал, чтобы всех существовавших на момент окончания игры «Колоссов» разобрали, и отправили секрет их устройства вместе с ними на свалку. Две машины каким-то образом пережили этот смертный приговор, и оставались в строю британской разведки до 1960-х. Но и тогда британское правительство не приподняло завесу молчания по поводу работы в Блетчли. Только в 1970-х его существование стало достоянием общественности.
Решение навсегда запретить всякое обсуждение проводимых в Блетчли-парк работ можно было назвать чрезмерной осторожностью британского правительства. Но для Флауэрса это было личной трагедией. Лишённый всех заслуг и престижа изобретателя «Колосса», он страдал от неудовлетворённости и разочарования, когда его постоянные попытки заменить реле электроникой в британской телефонной системе постоянно блокировались. Если бы он мог продемонстрировать своё достижение на примере «Колосса», у него было бы влияние, необходимое для реализации его мечты. Но к тому времени, когда его достижения стали известны, Флауэрс уже давно ушёл на пенсию и не мог ни на что повлиять.
Несколько разбросанных по миру энтузиастов электронных вычислений страдали от похожих проблем, связанных с секретностью, окружавшей «Колосса», и недостатка доказательств жизнеспособности этого подхода. Электромеханические вычисления могли оставаться главными ещё какое-то время. Но существовал ещё один проект, который проложит путь к приходу на главенствующую позицию электронных вычислений. Хотя это также был результат секретных военных разработок, его не стали утаивать после войны, а наоборот, открыли миру с величайшим апломбом, под именем ENIAC.
Что почитать:
• Jack Copeland, ed. Colossus: The Secrets of Bletchley Park«s Codebreaking Computers (2006)
• Thomas H. Flowers, «The Design of Colossus,» Annals of the History of Computing, July 1983
• Andrew Hodges, Alan Turing: The Enigma (1983)