Загадка
В ходе Первой мировой войны Германия столкнулась с нерешаемой проблемой. Связаться с флотом или с иностранными посольствами можно было только по радио, прослушивать эфир которого может кто угодно. Немцы отправляли приказы и сообщения в зашифрованном виде, но шифр их был слишком примитивен. Британская разведка расшифровывала практически 100% немецких радиограмм, что регулярно приводило как к тактическим последствиям, вроде уничтожения подлодок и кораблей, так и к стратегическим, — перехваченное немецкое сообщение послу в Вашингтоне подтолкнуло США к вступлению в войну.
Осмысливая этот опыт после поражения, и понимая, что в новой войне связь будет играть еще большую роль в рамках стратегии блицкрига, немцы захотели решить проблему прослушивания раз и навсегда. Они обратили внимание на изобретение инженера Артура Шербиуса — портативную машинку под торговой маркой «Энигма», которая позволяла в автоматическом потоковом режиме шифровать сообщения очень сложным (по тем временам) кодом.
С влиянием «Энигмы» на ход Второй мировой войны связана драматическая легенда. Машинка якобы сделала немецкие коммуникации неуязвимыми и позволяла планировать наступления или координировать действия подводных лодок в идеальной тайне. Так было, пока гениальный британский математик Алан Тьюринг не построил вычислительную машину Bombe, ставшую одним из предков современных компьютеров. Но даже гений Тьюринга был бы бессилен, если бы героические моряки Королевского флота не захватили один из образцов «Энигмы».
Ранним утром 9 мая 1941 года у берегов Гренландии большая океанская немецкая подводная лодка U-110 (тип IXB) начала атаку на британский конвой OB 318. Ее капитану Фрицу-Юлиусу Лемпу удалось прокрасться сквозь защиту кораблей эскорта и потопить торпедами два грузовых судна. Он готовил атаку на третье судно, и тут торчащий из воды перископ заметил британский корвет Aubrietia. Он захватил субмарину сонаром (гидролокатором) и вместе с другими кораблями эскорта начал забрасывать ее глубинными бомбами. От их разрывов U-110 получила тяжелые повреждения, и Лемп встал перед выбором: аварийное всплытие или погружение на дно.
Лодка всплыла, и эсминец Broadway взял курс на таран, но в последний момент изменил решение и сбросил еще несколько бомб, чтобы усилить давление на экипаж. Лемп увидел, что лодка тонет, и отдал приказ: «Конечная, все на выход». Моряки ринулись наружу, попали под огонь британских кораблей и попрыгали за борт.
Уже в воде Лемп осознал, что лодка на самом деле держится на плаву, и что на борту остались кодовые книги и полностью исправная «Энигма». Командование подводных лодок нормально относилось к идее сдачи в плен под давлением обстоятельств, но уничтожить секретное оборудование предписывало любой ценой, в том числе своей жизни. Капитан рванулся обратно к лодке, и больше его никто не видел. Матросы считали, что его застрелил в воде британский моряк, и вскоре на поврежденную субмарину отправилась абордажная команда с эсминца Bulldog под командованием младшего лейтенанта Дэвида Бальме.
Для входа в лодку, которая могла быть заминирована, необходимо было спуститься по вертикальной шахте, используя обе руки, — то есть, оставаясь полностью беззащитным. Бальме вошел в историю как герой, но по его словам, при входе в U-110 его основной эмоцией был страх. «Спускаться по этим лестницам и думать, что там могут быть немцы, готовые тебя застрелить… это было ужасно. Мы не могли поверить, что они просто так бросили подводную лодку. Это преследовало меня еще 15 или 20 лет после этого», — вспоминал он.
Но ни мин, ни засады не было, и британцы похватали на борту все, что смогли унести, включая «Энигму» и шифровальные книги. После этого U-110 затопили при буксировке на пути в Британию для сохранения секретности, а всем участникам операции поступил приказ ни при каких обстоятельствах никому не рассказывать, что произошло.
«Энигму» отправили на секретный объект Блетчли-парк, где британские криптоаналитики проанализировали ее устройство, обнаружили уязвимости и создали механизм для взлома.
Захват U-110 был крайне важен для взлома немецких кодов, однако приведенная выше драматическая история — лишь часть правды, которая сильно преувеличивает германский злой гений, победить который можно только чудом.
Как работала «Энигма»
Прежде всего необходимо снять с «Энигмы» ореол загадочности. Это не мистический черный ящик, а, в каком-то смысле, очень продвинутый арифмометр, выполняющий несложный алгоритм.
Любой человек, даже ребенок, может закодировать свои сообщения алфавитом подстановки — договориться с другом писать вместо «М» «Щ», а вместо «Д» — «У», и так далее. Такой шифр называют моноалфавитным, и его очень легко взломать, выделив самые часто используемые буквы в закодированном тексте и идентифицировав их с самыми часто встречаемыми буквами в языке — в случае русского языка это «О», «Е» и «А».
Эту уязвимость можно преодолеть с помощью полиалфавитного шифра: использовать для первой буквы в тексте один словарь подстановки, для второй — другой, для третьей — третий, и так далее. В итоге через какое-то количество символов круг замкнется, и последовательность схем подстановки начнет повторяться. Чем больше схем подстановки используется и чем больше в них нюансов, тем более защищен код. Однако на практике пользоваться сложными полиалфавитными шифрами, пригодными для серийного применения, вручную невозможно, поскольку кодировка простого сообщения будет занимать целый день, а инструкция по их использованию будет напоминать огромный талмуд.
Здесь на помощь приходила «Энигма», которая автоматизировала этот процесс. Машинка имела клавиатуру, световые индикаторы с буквами в качестве «монитора» и набор вращающихся роторов, как в кодовом замке. Роторы соединялись между собой электрическими контактами, и когда оператор нажимал на клавиатуре букву, машина заменяла ее на другую, зашифрованную, в зависимости от текущего положения роторов, и подсвечивала ее. При нажатии на клавишу также прокручивался на одну позицию крайний ротор, что меняло электрическую схему их соединения и, следовательно, алфавит подстановки. После полного оборота крайнего ротора на одну позицию проворачивался следующий, и так далее по цепочке.
У трехроторных машин было 17 576 схем подстановки, и это значит, что в рамках одного текста их последовательность никогда не повторится.
Четыре ротора увеличивали число схем до 456 976, а меняя схему соединения проводов в машине с помощью коммутационной панели, немцы довели число возможных алфавитов до сотен триллионов.
Французские криптоаналитики, получив в 1932 году материалы об устройстве «Энигмы» от своего шпиона Ганса-Тило Шмидта, решили, что взломать этот код невозможно. На всякий случай материалами поделились с союзниками-поляками и надолго забыли, — а зря.
Польская наука
В Польше анализом перехваченных сообщений с осени 1932 года занимался 27-летний математик Мариан Реевский. За несколько недель работы он обнаружил, что для первых шагов по взлому «Энигмы» не требуется ничего знать о ее внутреннем устройстве, поскольку немцы допустили жесточайшую ошибку в процедуре ее использования.
У шифровальщиков был установлен «код дня», определяющий исходное положение роторов — например, «UXN». После этого необходимо было придумать код конкретного сообщения (например, «QMY») и два раза его набрать в начале сообщения, используя код UXN, получив в результате что-то вроде «TNI QSH». Дальнейшее сообщение кодировалось после перевода роторов на код QMY.
Предполагалось, что принимающий оператор расшифрует первые шесть знаков с помощью «кода дня», после чего переключит машину на расшифровку по коду QMY. Два раза трехзначный код повторяли для надежности, но это стало катастрофической уязвимостью. Реевский понял, что первые три буквы сообщения идентичны вторым трем буквам (что TNI и QSH в исходном виде выглядели одинаково). Больше того: немецкие шифровальщики до войны часто ленились и устанавливали коды сообщений вроде «AAA» или «BBB», — с точки зрения информационной безопасности это намного хуже, чем если бы они наклеивали код дня на машинку в виде стикера.
Проанализировав большое число сообщений, получив от французов переданные Шмидтом материалы и ряд уравнений, Реевский смог аналитическим методом восстановить внутреннее устройство «Энигмы» и изготовить ее копию. За этим последовала разработка метода вычисления конкретных ключей, а потом, к середине 1930-х годов, — чтение полных сообщений.
Немцы постоянно обновляли «Энигму» и процедуры обращения с ней, и расшифровывать ее сообщения было все труднее. Тем не менее именно наработки Реевского легли в основу британских усилий по ее дешифрованию: незадолго до начала войны поляки передали британцам все, что знали, и даже копию машинки.
Заслуга Алана Тьюринга заключалась лишь в том, что он поставил расшифровку сообщений на поток, автоматизировал ее и научился быстро адаптироваться к любым ее усовершенствованиям.
Так что захват шифровального оборудования U-110 был, безусловно, важным мероприятием, но не сродни похищению кащеевой иглы. Поляки сумели сделать ее нелицензионную копию гораздо раньше.