Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:
Изучив реплику «Энигмы», Тьюринг и его коллега Гордон Уэлчман, работавшие в Блетчли-парке, заметили, что машина никогда не будет кодировать букву как саму себя. Опираясь на предположения о часто повторяющихся словах и словосочетаниях, которые немцы должны были бы использовать в сообщениях, Тьюринг разработал переборную схему, позволяющую ограничить количество рассматриваемых комбинаций роторов «Энигмы». Однако даже с учётом этого проверка всех вариантов была слишком медленной. Очевидным ответом было устройство, подобное «Бомбе» Реевского. Оригинальная «Бомба» основывалась на повторяющемся дважды зашифрованном ключе в начале каждого сообщения, однако Тьюринг опасался, что немцы скоро обнаружат эту уязвимость и изменят процедуру шифрования. Кроме того, он хотел увеличить скорость перебора. «Бомбы» Реевского могли взломать за пару часов код трёхроторной версии «Энигмы», но теперь роторов было пять, и перебор занимал почти целый день. Хотя у Тьюринга и был некоторый опыт в создании электрического умножителя, он всё же был математиком, а не инженером. К счастью, недалеко от Летчуэрта находилась Британская компания по производству табуляторов (British Tabulating Machine Company, BTM), и её главный инженер Гарольд Кин смог превратить эскизы Тьюринга в работающую машину.
10 марта 1940 г., незадолго до того, как немецкая армия вошла в Голландию, Бельгию и Люксембург, произошло то, чего опасался Тьюринг: немцы прекратили посылать удвоенный текст ключа в начале сообщения, поэтому польский метод взлома перестал работать. Первая «Бомба» Тьюринга, получившая название Victory, прибыла в Блетчли-парк спустя восемь дней. Её изготовление обошлось в 6300 фунтов стерлингов (примерно 100 000 современных фунтов стерлингов), что составляло примерно одну десятую стоимости бомбардировщика Lancaster. Victory была примерно в 300 000 раз быстрее машины Реевского, весила более тонны и включала в себя 36 «скремблеров», каждый из которых эмулировал машину Enigma, и 108 барабанов, выбирающих возможные значения ключей [405] .
405
Cawthorne N. (2014). Alan Turing: The Enigma Man. Arcturus Publishing // https://books.google.ru/books?id=6qmJBAAAQBAJ
Существует несколько забавных версий относительно выбора названия «Бомба». Если по-польски bomba означает «бомба», то слово bombe, выбранное в Блетчли, отличается от слова bomb (бомба) и намекает скорее на название популярного десерта bombe glacee, или просто bombe, — мороженого, имеющего округлую форму и напоминающего внешне пушечное ядро.
C 1930 г. армейская версия «Энигмы» в качестве дополнительной защиты при шифровании использовала коммутационную панель (Steckerbrett), которая заменяла буквы попарно: если A преобразуется в B, то B преобразуется в A. Причём схема замен, выполняемых панелью, оставалась неизменной в процессе шифрования, в отличие от преобразований, выполняемых ротором. Используя эту закономерность, Уэлчман смог усовершенствовать «Бомбу», оснастив её так называемой «диагональной доской», что значительно повысило эффективность работы машины. Вторая версия машины, Agnus Dei или Agnes, содержавшая усовершенствования Уэлчмана, начала работать в августе 1940 г. [406]
406
Budiansky S. (2000). Battle of Wits: The Complete Story of Codebreaking in World War II. Free Press // https://books.google.ru/books?id=uccLlgJDk4gC
В течение 1940 г. на двух машинах выполнялся взлом 178 сообщений, почти все из них были успешно дешифрованы. Из-за угрозы потери машин в случае бомбардировки было создано несколько дополнительных станций дешифровки. В июне — августе 1941 г. в Блетчли-парке было от четырёх до шести «Бомб», а после завершения работ по созданию станции в Уэйвендоне (Wavendon) суммарное количество работающих машин в Блетчли, Адстоке (Adstock) и Уэйвендоне составляло уже не менее 24 штук. Это количество возросло примерно вдвое после запуска станции в Гайхорсте (Gayhurst), и ожидалось, что общее количество «Бомб» вскоре увеличится примерно до 70, а их обслуживанием будут заниматься около 700 «ренов» [407] , то есть сотрудниц Женской вспомогательной службы ВМС (Women’s Royal Naval Service, WRNS; слово wrens в английском языке означает птичек семейства крапивниковых, так что из-за созвучия этому слову «птичье» прозвище накрепко приклеилось к названию службы, женщины из которой работали офисными служащими, кладовщицами, связистками, шифровальщицами, операторами радиолокационных станций, электриками, авиамеханиками и т. д.).
407
Toms S. (2005). Enigma and the Eastcote connection // https://web.archive.org/web/20081204105055/http://www.ruislip.co.uk/eastcotemod/enigma.htm
В 1942 г. с появлением военно-морской версии «Энигмы» с четырьмя роторами стало ясно, что дешифровщикам потребуется куда более 70 «Бомб», в итоге к маю 1945 г. было построено 155 трёхроторных и 180 четырёхроторных машин [408] .
Однако «Энигма» не была единственной шифровальной машиной, которую использовали немцы. В конце 1930-х гг. верховное командование немецкой армии обратилось к компании C. Lorenz AG с просьбой изготовить для них аппарат шифрования с высокой степенью защиты, совмещённый с телетайпом, позволяющий передавать сообщения по радио в условиях полной секретности. С. Lorenz AG разработала шифровальные машины SZ40 и SZ42, основанные на аддитивном методе шифрования сообщений телетайпа. С 1940 г. «Энигма» обычно применялась полевыми подразделениями, а машина Лоренца использовалась для связи на самом высоком уровне (в том числе для передачи приказов Гитлера). В основе работы SZ40 и SZ42 лежала схема, запатентованная в 1918 г. американским инженером Гилбертом Вернамом, сотрудником Bell Laboratories. Идея Вернама заключалась в том, чтобы взять случайную ключевую последовательность символов и наложить её на шифруемое сообщение при помощи операции, сегодня известной под названием XOR, или «исключающее или». Наложение той же самой последовательности чисел на зашифрованное сообщение приводило к его расшифровке. Вернам предложил наносить символы ключевой последовательности на бумажную ленту при помощи перфораций, чтобы затем символ за символом использовать их синхронно с символами входного сообщения.
408
Alexander C. H. O'D. (c. 1945). Cryptographic History of Work on the German Naval Enigma / The National Archives, Kew, Reference HW 25/1 // http://www.ellsbury.com/gne/gne-000.htm
Основная трудность применения этого подхода заключалась в том, что в военное время нужно было обеспечить наличие одинаковых лент со случайными символами на каждом конце линии связи и добиться того, чтобы они были установлены в одну и ту же начальную позицию. Компания Lorenz решила, что с точки зрения удобства эксплуатации будет проще сконструировать машину для генерации последовательности символов ключей. Однако из-за технической сложности генерации истинно случайных последовательностей был использован генератор псевдослучайных чисел, то есть алгоритм, порождающий последовательность чисел, элементы которой почти независимы друг от друга и подчиняются заданному распределению. К сожалению немецкой армии, эти числа были в большей мере псевдо, чем случайными, что и сделало возможной атаку на используемый алгоритм шифрования. Удивительно, что британским специалистам удалось взломать код, несмотря на то что они так и не увидели вживую ни одного из экземпляров машин SZ до самого конца войны.
Джон Тилтман, один из лучших криптоаналитиков Блетчли-парка, заинтересовался зашифрованными сообщениями телетайпа [409] . По донесениям разведки, немцы называли свои беспроводные системы передачи Sagefisch (рыба-пила). Это побудило британцев назвать зашифрованный трафик немецкого телетайпа fish (рыба), а неизвестный аппарат и перехваченные сообщения — tunny (тунец) [410] . Тилтман знал о системе Вернама и вскоре определил, что сообщения зашифрованы именно таким способом. Тилтман рассуждал так: поскольку система Вернама зависит от набора ключевых символов, то, если операторы допустят ошибку и используют одну и ту же ключевую последовательность для двух сообщений, при наложении двух зашифрованных текстов друг на друга наложенная ключевая последовательность будет удалена. И действительно, в августе 1941-го немецкие операторы совершили ошибку, отправив два последовательных сообщения с одним и тем же ключом (что было строго запрещено инструкциями). Британцы сумели перехватить оба сообщения, и Тилтман смог восстановить оба текста. Это был прорыв [411] .
409
Dalakov G. Colossus computer of Max Newman and Tommy Flowers / History of Computers: hardware, software, internet… // https://history-computer.com/ModernComputer/Electronic/Colossus.html
410
Hinsley F. H., Stripp A. (2001). Codebreakers: The Inside Story of Bletchley Park. Oxford University Press // https://books.google.ru/books?id=j1MC2d2LPAcC
411
Dalakov G. Colossus computer of Max Newman and Tommy Flowers / History of Computers: hardware, software, internet… // https://history-computer.com/ModernComputer/Electronic/Colossus.html
Благодаря расшифровке текста сообщений специалисты Блетчли-парка смогли восстановить и часть ключа, использованную при их шифровании, получив около 4000 последовательно идущих символов ключевой последовательности. Дальнейшие надежды были связаны с возможностью нахождения в ней каких-либо закономерностей, чтобы понять процесс генерации ключа.
Удача улыбнулась Уильяму Татту, присоединившемуся к проекту в октябре 1941 г. До поступления в Блетчли-парк Татт изучал химию, а затем математику в кембриджском Тринити-колледже. В программу обучения входил так называемый метод Касиски — метод криптоанализа полиалфавитных шифров, таких как шифр Виженера, изобретённый независимо Фридрихом Касиски и Чарльзом Бэббиджем. При использовании этого метода зашифрованное сообщение разбивают на фрагменты одинаковой длины, а затем записывают их в столбик друг под другом. Увеличение частоты появления некоторых символов в столбцах полученной матрицы свидетельствует о том, что её ширина равна длине использовавшегося при шифровании ключа. Это происходит потому, что в естественном языке существуют часто встречающиеся символы, например пробелы, и при совмещении их с одними и теми же символами ключа в соответствующих столбцах будут чаще встречаться повторяющиеся символы. Татт решил применить данный метод к найденной последовательности символов ключа немецкой машины. Однако, разумно предположив, что часть может быть проще, чем целое, он использовал не сами символы ключа, а лишь первые импульсы (биты) кодов символов (каждый символ при передаче кодировался пятью последовательными импульсами, каждый из которых мог быть одного из двух типов, обозначавшихся при письме обычно крестиками и точками; таким образом получался двоичный код длиной пять битов). К тому времени Татт уже знал, что набор символов, встречавшихся в каждой 12-й позиции ключа, содержал лишь 23 буквы, в то время как в остальных позициях были представлены 25 букв (отсутствовала только J). Предположив, что длина ключа может быть кратна 23 или 25 буквам, Татт решил попробовать ширину матрицы, равную 25 x 23 = 575. В столбцах полученной матрицы не было большого числа повторений, но Татт заметил, что повторения присутствовали в диагоналях. При замене ширины матрицы на 574 появились явно заметные повторения в столбцах. Понимая, что вряд ли колесо машины содержало такое большое число позиций, Татт разложил число 574 на простые множители, получив 41, 7 и 2. Попробовав период 41, он получил прямоугольник из точек и крестиков, который был переполнен повторениями [412] . Таким образом удалось понять, что одно из колёс немецкой шифровальной машины имеет 41 позицию.
412
Copeland B. J. (2010). Colossus: The Secrets of Bletchley Park’s Code-breaking Computers. OUP Oxford // https://books.google.ru/books?id=M2sVDAAAQBAJ
В течение двух следующих месяцев Татт с коллегами установили число позиций в каждом колесе (которых всего оказалось 12) и воссоздали полную логическую структуру шифровальной машины. В начале 1942 г. Фрэнк Моррелл, сотрудник исследовательской лаборатории почтового ведомства (Post Office Research Station) в Доллис-Хилл (Dollis Hill), воплотил эту логику «в железе» в виде стойки шаговых искателей (электромеханических коммутаторов) и реле. Устройство назвали «Тунец» (Tunny), поскольку оно было аналогом называемой ими так же немецкой машины. Теперь криптоаналитикам нужно было подобрать настройки конкретного сообщения, ввести эти параметры в Tunny — и устройство выполняло расшифровку сообщения (выдавая при верных настройках исходный текст на немецком языке). Однако оказалось, что подбор правильных настроек занимает около месяца. В условиях идущей войны это означало, что взлом Tunny данным путём не принесёт пользы: к моменту расшифровки сообщений они наверняка уже будут неактуальны. Криптоаналитикам срочно потребовалась более совершенная машина.
Макс Ньюман придумал, как можно частично автоматизировать задачу поиска настроек при помощи электронных устройств. Он разработал спецификацию машины, которая затем была построена инженерами из Доллис-Хилл. Логика была реализована на базе реле, но счётчики были электронными. Машина получила название «Хит Робинсон» (Heath Robinson) в честь карикатуриста, изображавшего фантастические хитроумные машины для выполнения простых задач [413] .
413
Dalakov G. Colossus computer of Max Newman and Tommy Flowers / History of Computers: hardware, software, internet… // https://history-computer.com/ModernComputer/Electronic/Colossus.html