Вторая мировая война не была просто еще одной войной в истории человечества. В ней сражались и солдаты, и гражданские лица, и даже ученые. Соединенное Королевство подвергалось жесточайшим атакам нацистской Германии по морю и с воздуха. Британцы смогли победить врага, но для этого им пришлось привлечь к работе величайшие умы своей страны, среди которых был и Алан Тьюринг. Война способствовала появлению научных открытий, таких как ядерная энергия, и удивительных изобретений, таких как компьютер.
Битва за Атлантику, продлившаяся практически до последних дней Второй мировой войны, началась 3 сентября 1939 года. За этот период на театре военных действий были реализованы самые масштабные военные операции. На протяжении всего конфликта немецкие подлодки систематически атаковали британский торговый флот, затрудняя снабжение Британских островов. Во время Первой мировой войны также происходили неоднократные столкновения немецкого и британского флотов, но во Второй мировой войне сценарий операций кардинально изменился. Появился новый класс судов — субмарины, ставшие смертельным оружием против британцев, так что те вынуждены были формировать военное сопровождение для защиты торговых кораблей. Эта стратегия дала временный результат: немецкие подлодки тогда были очень медлительными, для осуществления выстрела им необходимо было подняться на поверхность, и в это время они становились легкой добычей. К концу войны Германия потеряла около 75 % своих подлодок. Однако действия немецкого подводного флота вызвали серьезные проблемы со снабжением Соединенного Королевства. Также с 1940 по 1941 год страна подвергалась серьезным бомбардировкам. Хотя их основной целью был Лондон, пострадали и другие города: погибло большое количество мирного населения и было разрушено более миллиона жилых домов.
Тьюринг и его современники вряд ли могли предположить, что одним из основных способов применения компьютеров станет развлекательная индустрия. Моделирование, симуляции или имитация действий реальной системы, такой как движение подлодки, сегодня стало важнейшей сферой использования компьютеров, позволяющей моделировать ситуации, которые иначе большинство людей никогда не могли бы пережить. Видеоигры-симуляторы позволяют изучить работу системы (например, навигацию), управлять ресурсами (персонал, топливо и так далее) или решать трудные задачи (допустим, возникающие во время сражения). Симуляторы субмарин представляют собой тип видеоигр, позволяющих управлять подводной лодкой. Как правило, игра состоит в выполнении серии миссий, в которых нужно потопить один или несколько кораблей и выдержать атаку противника, используя карты, радар, перископ и торпеды.
Стратегия Action in the North Atlantic, классическая игра-симулятор.
После окончания Первой мировой войны, 23 февраля 1918 года, немецкий инженер Артур Шербиус (1878-1929) запатентовал «Энигму», машину для шифрования сообщений. Фирма «Шербиус & Риттер», основанная изобретателем и его партнером, сразу же начала торговать устройством, однако позже права на его использование были проданы немецкому предприятию Chiffriermaschinen Aktien-Gesellschaft. В начале 1920-х годов «Энигма» была представлена публике в двух городах Европы, с тех пор начались продажи целого ряда моделей для гражданского использования. В своем названии они имели одну из букв: А, В, С, D. Изначально машина создавалась для шифрования информации о сделках, но пик ее использования пришелся на период войны. В Испании продавалась модель D, применявшаяся во время Гражданской войны. Самым важным клиентом производителей стала Германия. Для нее была разработана модель G; модель Funkschlussel, или М, стала использоваться на флоте, модель «Вермахт», или I, — в армии. Последняя разработка стала самой популярной, поэтому мы остановимся на пояснении принципа ее функционирования. В 1942 году свою модель стал использовать и немецкий подводный флот. Любопытно, что 40 % всех машин «Энигма» было изготовлено в годы Второй мировой войны. Для немцев эта машина стала жизненно необходимой, и Гитлер отдал приказ о включении ее в программу вооружения Третьего рейха.
Хотя с виду машина очень напоминала пишущую, внутри нее скрывался беспрецедентно сложный механизм. В основе его действия лежала комбинация механических и электрических компонентов. Механическая часть включала клавиатуру и систему дисков, или барабанов, называемых роторами. Контакты роторов соответствовали 26 буквам алфавита, от А до Z. Когда оператор нажимал на клавишу, начиналось вращение одного из роторов, затем следующего, потом, одного за другим, соседних — шаг за шагом справа налево. Такой ритм поворотов обепечивался за счет выемок в роторах и позволял, например, шифровать букву А даже в одном и том же тексте разными символами. Ротор был изготовлен так, что на каждой из двух сторон его диска располагались контакты, которые при соприкосновении с соседним ротором замыкали электрическую цепь.
Внутри каждого ротора находилось 26 проводов, соединявших все контакты на одной из его сторон с контактами на другой стороне. Если добавить к этому, что в каждом роторе было собственное переплетение проводов, соединявших контакты, получится поистине дьявольская машина. Обычно на «Энигме» было три или четыре ротора, которые при нажатии клавиши задействовали электрическую цепь, каждый раз разную. А поскольку роторы в каждый момент использовали разные электрические цепи, одной и той же букве всегда соответствовал новый символ.
Управление «Энигмой» требовало выполнения следующих операций. В первую очередь, перед шифрованием или дешифровкой сообщения оператор должен был перевести все роторы справа налево в определенное положение. Далее роторы вращались до достижения начального положения, обозначенного одной из 26 букв алфавита — это была единственная буква, видимая через специальное отверстие. Начальный порядок и положение роторов задавали код для шифрования и дешифровки сообщений. К этим двум характеристикам добавилась и третья — возможность изменить сеть проводов, соединяющих контакты между двумя сторонами ротора.
Оригинальная модель «Энигмы» была серьезно усовершенствована за годы войны. Например, если войсковая модель «Вермахт» и модель ВВС Германии включали пять роторов, то модель для флота была оснащена уже восемью роторами. Более того, после последнего ротора добавлялся элемент, названный рефлектором, для шифрования в обратном порядке. То есть результат последнего ротора вновь менялся путем возвращения роторов от последнего слева к первому справа. В этой машине процесс шифрования совпадал с процессом дешифровки, и ни одна буква не могла быть зашифрована самой собой.
Немецкие солдаты во время Второй мировой войны передают сообщения с помощью «Энигмы·.
Алан Тьюринг, фотография сделана в 1951 году.
Разные модели «Энигмы·.
Очевидно, что эти особенности успешно использовали британские криптографы в Блетчли-парке, где был построен большой комплекс для дешифровки перехваченных немецких радиосообщений. Кроме рефлектора, расположенного слева от роторов, справа от них находилось колесико входа, или стартер, соединявший клавиатуру, с помощью которой вводилось сообщение, с лампами, подсвечивавшими соответствующие буквы в исходящем зашифрованном сообщении. На фронтальной части «Энигмы» имелась коммутационная панель, позволявшая превращать одну букву в другую, помимо шифрования с помощью роторов. Если учесть все устройства, участвовавшие в трансформации одной буквы (коммутационная панель, роторы и рефлектор), количество возможных конфигураций определялось количеством перестановок разных устройств и достигало невероятной цифры 10114. Это впечатляет, принимая во внимание, что человеческий мозг содержит 1011 нейронов, а количество атомов во Вселенной оценивается как 1080. Обладая такой чудовищной машиной, Германия чувствовала себя уверенно, и передача радиосообщений с военными приказами представлялась ей полностью безопасной. Однако обстоятельства сложились не в пользу неприступной «Энигмы», так как на захваченных немецких субмаринах были обнаружены несколько шифровальных машин и книг с кодами.
Польша, довольно сильно пострадавшая от нацистов, получила «Энигму» невероятным способом: машина была отправлена в Варшаву по почте из Германии. Благодаря этому группа математиков из кабинета криптографии бюро шифров (BS 4) Генштаба Польши под руководством Мариана Режевского (1905- 1980) смогла расшифровать сообщения, кодированные с помощью «Энигмы», а саму машину затем вернули отправителю. Поляки, а позже и представители других стран-союзниц обнаружили одну особенность шифровок: немцы в сообщениях в закодированном виде передавали начальное положение роторов, то есть указывали одну из 26 букв, которую можно было увидеть в специальном окошке. Например, если начальным положением ротора была буква В, в сообщении эта информация отображалась как ВВ. С 1932 года Режевский и его команда успешно расшифровывали перехваченные немецкие сообщения.
Польские математики создали машину, эмулирующую работу двух синхронизованных «Энигм», — циклометр. Позже они изобрели криптоаналитическую машину — «бомбу», с помощью которой можно было обнаружить закономерности повторения в сообщении букв. В «бомбе» использовалась серия роторов, и она эмулировала работу трех синхронизированных «Энигм», что соответствовало одной машине с тремя роторами. Анализ цикличности букв в сообщениях, так называемый анализ следов, или матриц, позволил автоматизировать дешифровку перехваченных сообщений.
Но этот метод работал недолго. В 1938 году немцы добавили к машине еще три ротора, так что их общее количество достигло шести. Теперь полякам для успешной дешифровки сообщений требовалось около 60 «бомб». Экономических ресурсов для дальнейшей работы не хватало, и Польша приняла решение передать в 1939 году накопленные данные британской и французской разведкам. Британцы приняли вызов и создали GC&CCS (Правительственную школу кодирования и шифрования), расположенную в Блетчли-парке, рядом с Милтон- Кинс, городке вблизи Лондона. Группа польских криптографов отправилась во Францию, где они работали совместно с секретной французской службой до конца 1942 года, занимаясь дешифровкой немецких сообщений и переправляя данные в Блетчли-парк. После того как немцы захватили юг Франции, польские криптографы и сами через Испанию отправились в Соединенное Королевство. Польские историки считают, что британцы не оценили должным образом талант польских математиков.
В конце Второй мировой войны в Блетчли-парке насчитывалось 10 тысяч человек личного состава. Это был гигантский шпионский комплекс, работавший против нацистской Германии. Деятельность велась в разных отделах, размещенных в отдельных домиках-ангарах. В одном отделе технические специалисты и аналитики занимались перехватом сообщений немецкого правительства или армии, в другом шла дешифровка радиограмм, в третьем на основании дешифрованных сообщений пытались реконструировать сценарии военных операций или намерения немцев. Принимая во внимание, что немцы использовали разные сети связи, отделы также имели соответствующие подразделения, которые работали с разными конфигурациями «Энигмы» для каждой сети. С этой целью персонал Блетчли-парка присвоил каждой сети кодовые имена: Red (красный), Shark (акула), Chaffinch (зяблик).
В домике номер 8 (Hut 8) работал Алан Тьюринг, приглашенный в Блетчли-парк 4 сентября 1939 года, то есть на следующий день после объявления Британией войны Германии. Миссия ученого предполагала дешифровку кодов «Энигмы» немецкого подводного флота, активно участвовавшего в морской блокаде Британских островов. Как рассказывает британский историк Аса Бриггс (р. 1921), также работавший в Блетчли-парке с 1942 по 1945 год в домике б, среди сотрудников комплекса было много талантливых людей, но гением считался Алан Тьюринг. В этот период ученый ездил в США, чтобы организовать сотрудничество двух стран-союзниц. Существует мнение, что Тьюринг разрабатывал систему шифровки телефонных сообщений высшего руководства США и Соединенного Королевства, Рузвельта и Черчилля. При выполнении этого задания он сотрудничал с Дилли Ноксом (1884-1943), криптографом, получившим образование в Королевском колледже Кембриджского университета. Также они совместно занимались вопросом ускоренной автоматической расшифровки сообщений, кодированных с помощью «Энигмы». Предложенный метод оказался более эффективным, чем метод поляков, чьи знания о шифровальной машине были собраны в «Трактате об «Энигме» ( Treatise on Enigma).
В этот период Тьюринг, которого коллеги называли Проф (сокращение от английского слова professor), привлекал всеобщее внимание довольно эксцентричными выходками. Например, он привязывал свою чашку к батарее отопления, чтобы ее не украли. Также в некоторых биографиях отмечается, что он несколько раз отказывался от транспорта и бежал из Блетчли в Лондон (а это примерно 64 километра) для участия в рабочих совещаниях.
В ходе войны в Британии была создана новая машина, в которой использовались идеи польской «бомбы», и она получила название Bombe[1 По одной из версий, оно происходит от названия десерта из мороженого Bombe glacee в виде шара или цилиндра. — Примеч. ред.]. Эта электромеханическая система воспроизводила работу группы машин «Энигма». Ее оригинальная версия была разработана Аланом Тьюрингом в 1939 году в Блетчли-парке, а построена Гарольдом Кином (1894-1973) из British Tabulating Machine Company (BTM) — предприятия, связанного с другим гигантом США, со временем получившим название IBM. В тот момент обе компании по разные стороны Атлантики занимались продажами табуляторов и машин для переписи населения. С помощью устройства, придуманного Германом Холлеритом (1860-1929), стало возможным чтение перфокарт, используемых для переписи: перфорация той или иной ячейки кодировала ответы. Существует версия, высказанная Эдвином Блэком в его книге «IBM и Холокост» (2001), что Адольф Гитлер закупил у IBM партию табуляторов, с помощью которых в 1933 году была сделана перепись еврейского населения Германии, и за это президент IBM Томас Уотсон (1874-1956) получил в 1937 году Орден Заслуг германского орла из рук самого фюрера.
Впоследствии Гордон Уэлчман (1906-1985) усовершенствовал оригинальную модель Bombe, поэтому окончательный вариант устройства известен как Bombe Тьюринга — Уэлчмана, в то время как польская машина-предшественница называлась криптологической бомбой (Bomba kryptologiczna). Окончательный вариант Bombe весил около тонны и включал 108 роторов, соединенных по три, что соответствовало трем роторам «Энигмы». В свою очередь, группы по три ротора соединялись в дюжины. Таким образом, машина состояла из трех отделов по 12 групп из трех роторов. Все эти роторы выполняли ту же работу, что и «Энигма», только в обратном направлении — для расшифровки сообщений. С механической точки зрения роторы имели ту же внутреннюю систему проводов, что и «Энигма»; рефлектор воспроизводился в довольно простом виде: контакты и провода были дублированы.
С конца 1942 года до весны 1943-го Тьюринг находился в США. Во время посещения лабораторий Белла он познакомился со знаменитым Клодом Шенноном (1916-2001), считающимся отцом современной теории информации. Хотя Тьюринг и мечтал поговорить с этим великим ученым о возможности создания искусственного интеллекта, в его задачу входил сбор идей для разработки системы шифровки голоса для защиты телефонных переговоров высших руководителей обеих стран, Рузвельта и Черчилля. Этот проект был назван SIGSALLY. Система шифровала голос с помощью так называемого случайного шума и часто использовалась союзниками во время войны. Любопытно, что SIGSALLY упоминается в научно-популярном романе «Криптомикон» (1999) Нила Стивенсона (р. 1959) в вымышленном разговоре двух персонажей: Лоуренса Ватерхауса и Алана Тьюринга. По окончании войны Тьюринг оставил Блетчли-парк и начал работать в Правительственном центре коммуникаций Ее Величества, где участвовал в создании переносного устройства для шифровки голоса Delilah. Для доказательства корректного функционирования системы во время шифровки и дешифровки использовалась запись голоса Уинстона Черчилля.
Процесс шифровки голоса состоит из нескольких этапов. Во-первых, необходимо собрать образцы звуков. Для получения образцов голоса нужно записать небольшие фрагменты в разное время, то есть определить частоту повторяемости образцов. В современных телефонных системах разговор передается на частотах ниже 4000 Гц, и это следует учитывать при настройке частоты образцов в телефонном разговоре. Во-вторых, полученный звук обрабатывается с помощью процесса нормализации.
Машины системы шифрования голоса Delilah.
Этот процесс нужен для того, чтобы удостовериться, что разница полученных звуков связана с их частотой, а не с шумами или другими артефактами, вызванными, к примеру, самой телефонной связью.
Кроме того, люди в зависимости от артикуляции по-разному произносят гласные, а в ходе нормализации эти различия устраняются. Затем нормализованный голос, наконец, шифруется. В процессе, разработанном Тьюрингом, фрагменты голоса нормализовались по шкале от 0 до 1. После нормализации фрагменты трансформировались с помощью арифметического оператора, модуля (мод). Этот оператор дает разницу от деления на целые числа: например, 5 мод 2 равно 1. В конце концов трансформированная таким образом волна голоса реконструировалась в обратной последовательности. Несмотря на высокий уровень разработки, эта система не нашла применения. Также интересно, что участие Тьюринга в обоих проектах осталось на втором плане, невзирая на его успехи во многих других исследовательских начинаниях.
Зашифрованное радиосообщение после перехвата превращалось во входные данные, Тьюринг принимал решение, каким должно быть соединение между группами по три ротора, по которым проходило сообщение до расшифровки, или выходных данных.
В Соединенных Штатах для армии также были созданы машины, выполнявшие сходные задачи, однако их конструкция была другой. Сами американцы считают, что их машины были более быстрыми, а crib-последовательности — более короткими по сравнению с английскими. Стандартная английская машина была эквивалентна 36 «Энигмам» и могла расшифровывать два или три сообщения одновременно. Для расшифровки она требовала выбора меню, где использовалось то, что англичане называли crib. Под этим понимался пример незашифрованного текста или сообщения, для которого имелось зашифрованное соответствие, например фрагмент перехваченного зашифрованного и расшифрованного текста. Для превращения crib в действенный инструмент нужно было хорошо знать немецкий военный жаргон, а также процедуру отправки сообщений. Очень важной стала информация о том, что «Энигма» никогда не шифровала букву, например А, самой собой. После выбора crib оператор Bombe разрабатывал меню, как показано в таблице ниже. Представим, что crib TURINGHABLAINGLES (ТЬЮРИНГГОВОРИТПОАНГЛИЙСКИ), а зашифрованный текст выглядит так (строка ЗТ): AIYLLVWPANNOZPOPE. Для того чтобы пример был более репрезентативным, мы использовали для шифровки текста модель «Энигмы» (http://www. bletchlypark.org.uk). На основании этих двух сообщений разработаем таблицу, в которой каждой букве зашифрованного текста будет соответствовать буква в оригинальном сообщении, или crib.
CRIB | т | и | R | 1 | N | G | Н | А | В | L | А | 1 | N | G | L | Е | S |
ЗТ | А | 1 | Y | L | L | V | W | Р | А | N | N | O | Z | Р | O | Р | Е |
П | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
ВБ | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
СБ | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
НБ | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
Также запишем в таблице положение каждой буквы сообщения (обозначим эту строку П). Далее представлена диаграмма, на которой показаны связи между буквами и тем, в каком положении они находятся.
С помощью такой структуры оператор мог разработать меню для настройки конфигурации Bombe, а также начальные положения барабанов в верхней (ВБ), средней (СБ) и нижней части (НБ). После настройки конфигурации машина выполняла свою работу, останавливаясь каждый раз, когда обнаруживалось возможное решение, то есть расшифрованное сообщение. На схеме выше видны циклы, например ILO. Интересно, что Тьюринг заметил: чем больше циклов, тем меньше количество остановок и тем меньше неправильно расшифрованных сообщений. Общий внешний вид Bombe был достаточно привлекательным, барабаны были окрашены в разные цвета, представлявшие ротор «Энигмы», эмуляцией которого они являлись. Каждый барабан мог находиться в одном из 26 возможных положений, таким образом общее количество конфигураций было: 26x26x26 = 17576. Каждый раз, когда Bombe находила возможное решение, она останавливалась. Как правило, происходило это несколько раз, и машина выдавала
в качестве результата неправильно расшифрованные сообщения до тех пор, пока не удавалось получить правильный текст. Фундаментальным шагом криптоанализа стала задача проверки правильности решения, предложенного машиной для расшифровки. Для этого расшифрованное сообщение заново шифровалось с помощью ТуреХ, британского эмулятора «Энигмы», и полученный результат тщательно изучался.
Первая модель Bombe была построена 18 марта 1940 года. В конце Второй мировой войны у британцев в Блетчли-парке было 211 Bombe, обслуживанием и эксплуатацией которых занималось около двух тысяч человек. Благодаря безоговорочному успеху, достигнутому с помощью этих машин, зажглась звезда Алана Тьюринга. Его работа как криптографа, а также весь комплекс Блетчли-парка сыграли значительную роль в военных событиях. Благодаря вкладу ученого стали известны даты авианалетов на Англию, маршруты немецких субмарин и кораблей; также Тьюринг сыграл важную роль в победе в Африке над корпусом маршала Роммеля и способствовал развертыванию операций союзников на западе Европы.
Несомненно, разработка Bombe стала одной из самых значительных работ Тьюринга как криптографа в ходе войны, но не единственной. Также ему принадлежат статистические процедуры для более эффективного использования Bombe, ставшие чрезвычайно актуальными при расшифровке немецких сообщений, кодированных «Энигмой». Эта техника получила название Banburismus. Кроме того, Тьюринг ввел новую процедуру, Turingery (шутливо Тьюрингизмус, или метод Тьюринга), которая облегчала расшифровку сообщений, кодированных другой адской машиной, Lorenz SZ 40/42. К концу войны Тьюринг, уже работая в Правительственном центре коммуникаций Ее Величества, создал переносную систему для шифрования телефонных сообщений, названную Delilah.
После окончания войны британский премьер-министр Уинстон Черчилль отдал приказ об уничтожении всех машин Bombe и соответствующих документов. На этом этапе жизни Тьюринг был связующим звеном между США и Соединенным Королевством. Именно тогда он начал думать о возможности создания разумной машины, что позже привело его к передовым находкам в области искусственного интеллекта. Также в эту эпоху ученый занимался электроникой и, вероятно, именно в Блетчли-парке осознал ее важность для будущего развития компьютеров.
В 1945 году, после окончания войны, Алан Тьюринг был награжден орденом Британской империи. Его гениальность признали, а также оценили его заслуги и вклад в качестве криптографа в победу.
Один из домиков Блетчли-парка, в котором персонал занимается расшифровкой кода «Энигмы».
Машина Bomba, разработанная Аланом Тьюрингом и построенная в Блетчли-парке Гарольдом Кином.
В начале Второй мировой войны британцы перехватили из немецкого лагеря сигналы, которые, к их удивлению, не использовали код Морзе и не были зашифрованы «Энигмой». Речь шла о сигналах машины Лоренца, соединенной с телетайпом, которой немцы также успешно пользовались.
В Блетчли-парке все немецкие сигналы телетайпа называли ключевым словом Fish («рыба»), а сигналы, кодированные машиной Lorenz SZ40/42, получили кодовое название Tunny («тунец»). Так же как это было в случае с «Энигмой», британцы смогли выяснить подробности работы машины Лоренца благодаря счастливой случайности и ошибкам немцев, хотя на этот раз сама машина в их руки не попадала. В Блетчли-парке была создана электромеханическая машина, использующая аналогичный принцип и способная расшифровывать сигналы машины Лоренца. Ее называли Tunny Machine («Машина-тунец»). Как же функционировал Lorenz SZ40/42? Когда записывался один знак, он трансформировался в другом коде — коде Бодо, придуманном в 1874 году и используемом с тех пор на телеграфе: в его основе лежит запись одного символа в виде последовательности пяти нулей и единиц, то есть пятибитный код. В ту эпоху 1 и 0 обозначались на ленте как «отверстие» и «интервал без отверстия». Машина Лоренца была оснащена особой механической системой, в ней несколько колесиков играли роль генератора случайных чисел, который используется при проведении любых розыгрышей, видеоигр, симуляций, шифровании и так далее.
Машина Lorenz SZ42.
Метод, используемый машиной Лоренца для шифровки сообщения, состоял в генерировании случайной пятибитной последовательности с помощью серии из 12 зубчатых колесиков (по-английски pinwheels), каждое из которых имело определенное количество контактов. Эти контакты могли быть в положении on(1) или off(0). Таким образом, при вращении получалась последовательность нулей и единиц, или бит. Если контакт был в активном состоянии, on, значение бита, соответствующего кодируемой букве, менялось: с 0 на 1, с 1 на 0. Когда контакт был в неактивном состоянии, off, значение сохранялось. Далее применялся булев оператор XOR («исключающее или») между каждым из битов знака и измененного знака. Таблица данного оператора может быть представлена в следующем виде.
А | в | A XOR B |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Эта процедура повторялась несколько раз последовательно до трансформации исходного знака в другой в кодировке Бодо. Например, если мы хотим зашифровать фамилию TURING, сначала мы должны записать ее в виде кода Бодо. Получим последовательность 10000-00111-01010- -00110-01100-11010. Представим, что мы уже зашифровали последовательность знаков TURIN, а сейчас должны приступить к шифрованию последней буквы фамилии. Следующим шагом, если оператор машины настроил конфигурацию контактов диска, который мы назовем R1, как on-on-off-off-on, последовательность 11010, представляющая букву G, трансформируется в 00011, но такая последовательность соответствует букве А. Повторим эти шаги еще раз. Представим, что оператор машины настроил второй диск, который мы назовем R2, расположив контакты как on-off-on-off-on. В этом случае последний диск трансформирует последовательность 00011 и превратит ее в 10110, которая, согласно коду Бодо, соответствует Р. Таким образом, с помощью машины Лоренца мы зашифровали букву G как Р.
Часто оказывается так, что достижения науки и техники относятся к позитивным результатам военных конфликтов. Именно так произошло и с Colossus. В Блетчли-парке была создана первая электронная программируемая машина, которая с некоторыми ограничениями может называться компьютером. Если Bombe была ответом на «Энигму», Colossus стал ответом на Lorenz SZ 40/42. Машина Лоренца шифровала сообщения, используя последовательность случайных чисел. Эти числа получались с помощью электромеханического метода, в котором использовались шестеренки (pinwheels). К счастью, полученные таким способом числа имели псевдослучайный характер по сравнению с числами, которые вытаскивают из лотерейного барабана, поскольку существовали правила получения их последовательности. Этот факт обеспечил успешную расшифровку перехваченных сообщений.
Начинка Colossus была позаимствована у машин Робинсона, которые представляли собой семейство аппаратов, разработанных для расшифровки сообщений, кодированных машиной Лоренца. В машине Робинсона использовались две ленты: одна с зашифрованным сообщением, другая с последовательностью случайных чисел, полученных на дисковой системе, подобной машине Лоренца. Усовершенствование Colossus состояло в замене второй ленты — последовательности случайных чисел — электронными ламповыми комбинациями. Серьезным недостатком машин Робинсона было то, что вторая лента довольно часто и неожиданно рвалась, так как для чтения случайных чисел требовалась высокая скорость. Colossus не имел такого недостатка и мог считывать до пяти тысяч знаков в секунду, что было важным достижением той эпохи. Хотя лично Алан Тьюринг не участвовал в разработке Colossus, этой машиной занимались его учителя, среди которых Макс Ньюман, и коллеги из Блетчли-парка.
Первый вариант этого «компьютера» был создан Томми Флауэрсом (1905-1998), инженером Исследовательской станции Центрального почтамта. Он предложил новую идею, состоящую в использовании электронных ламп, тех же, что и в схемах первых радиоприемников. Так появился первый в истории электронный компьютер. Схема Colossus состояла из невероятного количества в 1500 ламп — именно они использовались в компьютерах, созданных до 1959 года.
Компьютер — это универсальная машина Тьюринга. При определенном его состоянии и передаче на вход определенных данных будут выполнены некоторые операции, что приведет к полностью предсказуемому результату. Например, если на листке для расчета бюджета мы запишем определенные числовые данные, input, то результат, output, будет всегда один и тот же. Одной из самых интересных задач науки со времен Джона фон Неймана, который одним из первых поднял этот вопрос, стало получение алгоритмов, генерирующих последовательность чисел случайно, как если бы мы доставали номера из лотерейного барабана. Если числа, получаемые путем доставания из барабана, называются случайными, то числа, выдаваемые компьютером, называются псевдослучайными. Компьютерная программа, с помощью которой мы можем получить такие числа, называется генератором случайных чисел. Псевдослучайные числа находятся в интервале [0,1]. Например, последовательность двенадцати чисел 0,092833; 0,472751; 0,542341; 0,022788; 0,069853; 0,317325; 0,808213; 0,225401; 0,633599; 0,133044; 0,530186,0,477541 получена в следующей программе на BASIC-256:
п=0
do
u=rand
print u
n=n+l
until n=12
Приведем другой пример: как можно с помощью данной программы сделать симуляцию игрального кубика? Мы просто заменим u=rand на и= =int (rand*6) + 1. Числа, получаемые с помощью программы, имеют определенные характеристики. В частности, они должны находиться в интервале между 0 и 1, должны быть независимы друг от друга, то есть если мы получаем число 0,808213, оно не должно влиять на следующее число последовательности, 0,225401. Также обязательным для таких чисел является условие равной возможности их получения. Любопытно, что эти числа по отдельности не являются случайными, их случайный характер проявляется только в последовательности, частью которой они являются и статистические характеристики которой подобны последовательности чисел, полученных с помощью механической системы лотерей. Сегодня существует возможность получить в интернете настоящие случайные числа, взятые из физических явлений, что заменяет алгоритм, подобный которому использовался в функции rand BASIC-256.
Электронная лампа представляет собой вакуумную трубку, в которой имеются нить накаливания, испускающая электроны, — катод (отрицательный заряд), и металлическая пластинка, принимающая электроны, — анод (положительный заряд). В результате мы получаем ток электронов от катода при его накаливании к аноду. Так как ток проходит только в одном направлении, такая лампа реализует функцию важнейшего электронного компонента — диода. Впоследствии в диод добавили дополнительную нить — сетку между катодом, испускающим электроны, и анодом, получающим их. При приложении тока к сетке можно контролировать ток электронов от катода к аноду, увеличивая напряжение. Эта дополнительная нить лежала в основе нового изобретения — триода, электронного компонента, выполнявшего функцию современного транзистора. С помощью этих электронных компонентов можно создавать схемы, выполняющие арифметические операции, например суммирование, или логические операции, например сравнение чисел.
Два вида ламп: диод (слева) и триод (справа).
В компьютерах, в том числе в Colossus, арифметические и логические операции осуществляются на основании булевой алгебры, оперирующей битами, то есть числами 0 и 1, с применением к ним операторов, называемых на языке электроники вентилями. Предположим, ток в 0 В представляет число 0, а ток 3 В представляет 1. Следовательно, факт, проходит или не проходит электрический ток, определяет величина 0 или 1, а это один бит, то есть наименьшее количество информации, которую может обработать компьютер. Вентиль — электронная схема с диодами или транзисторами, в которой О или 1 на входе трансформируются на выходе также в 0 и 1 в результате применения одного из операторов булевой алгебры. Из всех возможных операторов самыми используемыми в цифровой электронике являются И и ИЛИ. Вентиль И, эквивалентный на логическом уровне союзу «и», на выходе дает 1, если на всех входах одновременно получено 1. С другой стороны, на выходе будет 0, если на одном или двух входах получен 0. Ниже приводится таблица и символ для этого вентиля.
А | B | А И В |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Вентиль ИЛИ эквивалентен союзу «или», в этом случае на выходе будет 1, если на одном из двух либо на обоих входах было получено 1. Ниже приводится таблица и символ для этого вентиля.
А | B | А ИЛИ В |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Ламповыми были первая версия Colossus, Mark 1, и следующая усовершенствованная версия, Mark 2, запущенная в 1944 году. Можно сказать, что если Алан Тьюринг занимался логическим обоснованием компьютеров, то Томми Флауэрс разработал hardware и, соответственно, электронные схемы, воплощающие в жизнь эти логические построения.
Одна из наиболее интересных цепей Colossus включала два класса электронных ламп: тиратроны и фотоэлектронные умножители, с помощью которых машина могла считывать знаки с бумажной ленты. Используя тиратрон, можно было записать 1 бит; соединив между собой несколько ламп, инженеры Блетчли-парка создали компьютерную память. Фотоэлектронный умножитель представлял собой лампу, работа которой была подобна фотоэлементу: сигнал в цепи анода значительно увеличивался под действием пучка света. Мощность Colossus благодаря использованию этих электронных компонентов во время Второй мировой войны была эквивалентна компьютеру с микропроцессором Pentium 2004 года выпуска. Удивительно, что Colossus в своих схемах использовал только два булевых оператора — И и ИЛИ.
Несмотря на то что Colossus, несомненно, являлся передовым инженерным достижением своей эпохи, его программирование было весьма примитивным по сравнению с современными компьютерами, так как для написания программы нужно было настроить множество клавиш и переключателей. При этом, хотя Colossus был программируемой машиной в строгом понимании этого слова, он не был компьютером, так как не был универсальной машиной Тьюринга. Colossus мог быть запрограммирован только для того, чтобы разрушать шифр, записанный на машине Lorenz SZ 40/42, то есть это не была машина для общих целей. В отличие от него, сейчас компьютер — это универсальная машина Тьюринга, для которой можно программировать на разных языках (С, Java, Virtual Basic и др.). Мы можем сделать вывод, что Colossus был частично программируемым квазикомпьютером, так как он выполнял только цели, для которых был разработан, а значит, не был универсальным. То, что в одном месте и в одно время оказались Алан Тьюринг и Colossus, подтолкнуло британскую науку к изучению электроники для оценки возможности создания настоящего компьютера. Именно в Блетчли-парке родилась мечта о создании универсальной машины Тьюринга. Со временем, когда был разработан и построен компьютер Pilot АСЕ, эта мечта нашла воплощение.
После окончания мировой войны из соображений безопасности Уинстон Черчилль отдал приказ уничтожить все машины Colossus, а также сжечь все описания их чертежей и схем. Эту неблагодарную работу выполнил Томми Флауэрс, помиловавший, однако, две машины, использовавшиеся во времена холодной войны и окончательно уничтоженные в 1960-е годы. Успех, достигнутый в Блетчли-парке с созданием Colossus, не был известен до 1976 года, когда специальным законом об официальной секретности были сняты ограничения на распространение данной информации. В течение долгих лет ENIAC, созданный в 1946 году в США, считался первым электронным компьютером в истории. Сегодня, после пересмотра исторических событий, это почетное место занимает Colossus, созданный в 1944 году. В Национальном музее вычислительной техники в Блетчли-парке публике представлены две реплики Colossus, построенные в 1996 и 2004 годах под руководством Тони Сейла (1931-2011), инженера-электронщика и историка информатики. Благодаря сообщениям, расшифрованным Colossus, стало известно, что Гитлер был введен в заблуждение относительно планируемых военных операций. Он думал, будто высадка союзников произойдет в Па-де-Кале, и отправил туда танковые дивизии. Военный кошмар закончился весной 1945 года самоубийством Гитлера. Однако летом того же года с нанесением ядерных ударов по Хиросиме и Нагасаки была открыта новая страшная страница в истории человечества. Затем началась новая эра — холодная война, и мир разделился на два больших лагеря: западный капиталистический и восточный коммунистический, которые находились в противостоянии с 1945 до 1989 года, когда пала Берлинская стена.