Если бы устройство оставалось в таком же положении, то его действие сводилось бы к усложненному воспроизведению шифра подстановки. Но гениальность конструкции «Энигмы» состоит в том, что всякий раз, когда шар проходит через цилиндр, первый барабан поворачивается на 1/26 оборота. Поэтому, когда опускается следующий шар, первый барабан пошлет его совершенно по другому пути. Например, в первый раз буква а могла быть закодирована как С, но после того, как первый барабан повернулся на одну позицию, шар, брошенный в отверстие а, выйдет внизу в другом месте. Вот так и действовала машина «Энигма»: после кодирования первой буквы первый вращающийся диск поворачивался на одну позицию.
Вращение дисков в каком-то смысле соответствует одометру: после того как первый диск поворачивается на все 26 позиций и возвращается в начальное положение, он поворачивает второй диск на 1/26 оборота. Итак, имеется 26 × 26 × 26 различных способов шифровать буквы. Кроме того, оператор «Энигмы» мог менять порядок расположения дисков, что сводится к умножению количества возможных шифров подстановки на 6 (или 3! различных способов расположения трех дисков).
У каждого оператора была шифровальная книга, которая предписывала ему, в какое положение в начале того или иного дня нужно приводить три диска для кодирования сообщений. Получатель сообщения декодировал его, используя те же настройки из шифровальной книги. По мере усовершенствования «Энигмы» были введены дополнительные усложнения, что в конечном счете привело более чем к 158 миллионам миллионов миллионов различных способов установки машины.
В 1931 г. специалисты французской разведки сумели получить инструкцию по использованию шифровальной машины и пришли в ужас. Казалось, не существует никакой возможности понять из перехватываемого сообщения, в какое положение устанавливались диски для кодирования в тот день. А это было совершенно необходимо для дешифровки сообщения. Но у Франции было соглашение с Польшей по обмену разведывательной информацией, и угроза немецкого вторжения оказала стимулирующее воздействие на умственную деятельность поляков.
Польские математики поняли, что каждая из установок дисков характеризовалась своими особенностями в закодированных сообщениях, и этими закономерностями можно было воспользоваться для декодирования сообщений. Если, к примеру, оператор печатал а, то в зависимости от установки дисков эта буква кодировалась, скажем, как D. Затем первый диск поворачивался на одну позицию. Если оператор еще раз нажимал а и она кодировалась как Z, то в каком-то смысле связь D с Z определяется установкой дисков.
Мы могли бы исследовать это с помощью нашего приспособления. Устанавливая барабаны в требуемое положение и опуская по очереди в каждое из отверстий два шара, мы могли бы составить полный набор взаимосвязей, который мог бы выглядеть следующим образом (см. таблицу 4.03).
Таблица 4.03
Каждая буква появляется в каждой строке один, и только один, раз, потому что каждая строка соответствует одному шифру подстановки.
Как поляки использовали эти взаимосвязи? В любой день все немецкие операторы «Энигмы» должны были использовать одну и ту же установку дисков, которая была записана в их шифровальной книге. Затем они выбирали свое собственное расположение дисков и посылали данные о нем, используя исходную установку дисков из шифровальной книги. Для надежности им было рекомендовано передавать сведения о выбранной установке дважды, что было, в противоположность надежности, фатальной ошибкой. Это давало полякам ключ к тому, какая установка дисков использовалась в машине «Энигма» в тот день.
Группа математиков, находившаяся в особняке Блетчли-парк, который расположен на полпути между Оксфордом и Кембриджем, изучала закономерности, подмеченные математиками в Польше, и нашла способ автоматизировать поиск настроек. При этом использовалась электронно-механическая машина под названием «Бомба». Говорят, что эти математики сократили Вторую мировую войну на два года и спасли бессчетное количество жизней. А построенные ими машины положили начало компьютерам, на которые мы полагаемся в наши дни.
Для онлайн-моделирования работы машины «Энигма» воспользуйтесь ссылкой http://bit.ly/BletchleyPark. С веб-сайта «Тайн 4исел» вы можете загрузить PDF-файл с инструкциями, как сделать собственную машину «Энигма».
Передача сообщения на расстояние
Независимо от того, закодировано ваше послание или нет, вам необходимо найти способ передать его из одного места в другое. Во многих культурах, от китайцев до американских индейцев, использовались дымовые сигналы как средство сообщения на большие расстояния. Говорят, что с помощью костров, разводившихся в башнях Великой Китайской стены, можно было передать послание на 500 км за несколько часов.
Визуальные коды, основанные на флагах, восходят к 1684 г., когда Роберт Гук, один из самых знаменитых ученых ХVII в., представил эту идею Лондонскому Королевскому обществу. Изобретение телескопа сделало возможным передавать оптические сигналы на большие расстояния, но Гука подстегнуло то, что привело к многим техническим достижениям, – война. В предшествовавшем году Вена чуть не была захвачена турецкой армией, в то время как вся Европа не знала об этой опасности. Внезапно стало крайне необходимым придумать способ быстрой передачи сообщений на большие расстояния.
Гук предложил возвести в Европе сеть башен. Если какая-то из них передавала сообщение, то все башни, находившиеся в поле видимости, повторяли его – это было двумерной версией того, как послания отправлялись вдоль Великой Китайской стены. Метод передачи сообщений не был особенно изощренным – большие специальные знаки поднимались наверх посредством веревок. Данное предложение Гука не было осуществлено, и до практического воплощения схожей идеи прошло сто лет.
В 1791 г. братья Клод и Игнас Шаппы построили систему башен, чтобы предоставить французскому революционному правительству быструю связь (хотя одна из башен была атакована толпой, решившей, что ею пользовались роялисты для заговора). Идея была основана на системе знаков, которой пользовались братья в детстве для передачи сообщений между общежитиями в школе со строгими порядками, где они обучались. Клод и Игнас экспериментировали с множеством различных способов визуальной передачи сообщений. В конце они остановились на деревянных планках, фиксировавшихся под разными углами, которые мог легко различить человеческий глаз.
Рис. 4.03. Код братьев Шапп передавался с помощью шарнирно скрепленных деревянных планок
Братья разработали код для подвижной системы шарнирно скрепленных деревянных планок, чтобы обозначать различные буквы или некоторые слова. Основная поперечина могла быть установлена под четырьмя различными углами, в то время как у каждой из двух меньших планок было семь различных положений, что в общей сложности предоставляло возможность передавать 7 × 7 × 4 = 196 различных символов. Хотя часть кода использовалась для передачи публичных сообщений, 92 символа, объединенные в пары, представляли секретный код, что давало 92 × 92 = 8464 различных слова и фразы.