Математики, шпионы и хакеры. Кодирование и криптография
Шрифт:
Если мы обратимся к таблице кодов Морзе в начале главы, то увидим следующие коды для каждой из букв шифра ADFGVX:
Чтобы расшифровать сообщение, получателю необходимо знать распределение букв и цифр в базисной таблице и ключевое слово.
В 1919 г. немецкий инженер Артур Шербиус запатентовал машину для защищенной связи. Ее название, «Энигма», с тех пор стало синонимом военной тайны.
Несмотря на свою сложность,
Благодаря относительной простоте использования и сложности выдаваемых шифров, система «Энигма» была выбрана германским правительством для шифрования большей части военных донесений в годы Второй мировой войны.
Именно поэтому расшифровка кодов «Энигмы» стала абсолютным приоритетом для правительств стран, воюющих с нацистской Германией. Когда это наконец удалось, сообщения, перехваченные и расшифрованные разведками союзников, оказались решающими для завершения военного конфликта. История расшифровки кода «Энигмы» — это захватывающая эпопея с участием отделов разведки Польши и Великобритании, а также гениального математика Алана Тьюринга, человека, считающегося отцом современной вычислительной техники. В результате работы по взлому кода «Энигмы» появился первый в мире компьютер, что можно считать самым значительным событием в долгой и яркой истории военного криптоанализа.
Слева: немецкие солдаты во время Второй мировой войны записывают сообщение, зашифрованное с помощью <<Энигмы». Справа: реплика четырехроторной «Энигмы».
«Энигма» представляла собой электромагнитное устройство, внешне похожее на пишущую машинку. Уникальной ее делало то, что ее механические части меняли положение после каждого нажатия клавиш, так что даже при нажатии подряд одной и той же буквы символ каждый раз кодировался по-новому.
На практике процесс шифрования был относительно прост. Сначала оператор устанавливал различные разъемы и роторы машины в соответствии с исходным положением, заданным справочником кодов, используемых на данный момент (эти справочники регулярно менялись). Затем он печатал первую букву открытого текста, и машина автоматически генерировала код, который появлялся на светящейся панели — это была первая буква зашифрованного сообщения.
Первое переключение ротора поворачивало его в одну из 26 возможных позиций. Каждое положение переключателя соответствовало новому шифру. После этого оператор вводил вторую букву и так далее. Чтобы расшифровать сообщение, достаточно было ввести зашифрованные символы в другую машину «Энигма» с теми же исходными параметрами, что и у машины, использованной для шифрования.
* * *
ТРАНШЕЙНЫЕ КОДЫ
В бою использовать сложные шифры, такие как ADFGVX, было очень трудно. Во время гражданской войны в Испании (1936–1939), например, применялся более простой шифр подстановки:
Как мы видим, несколько букв имеют более одного зашифрованного символа. Например, буква R может быть заменена на 28 или 54. Слово GUERRA («Война») будет зашифровано как 167427285453. Эти коды, которые фактически были шифром подстановки, получили название траншейных кодов и предназначались для особых целей.
Clave Violeta («фиолетовый ключ», слева) использовался 415-м батальоном 104-й
Для обеспечения более высокого уровня секретности националисты во главе с генералом Франко применили особое оружие — 30 машин «Энигма», присланных нацистскими союзниками.
Это было первое интенсивное использование в военных целях шифровальных устройств, которые Германия начала широко применять во время Второй мировой войны. Британцы пытались взломать код во время испанского конфликта, но безуспешно.
Телеграмма от 27 октября 1936 г. начальнику сектора Гэанада (республиканцу): «Ваша телеграмма, зашифрованная вчера… не подлежит расшифровке».
Зашифрованное сообщение республиканцев, перехваченное испанскими фашистами-фалангистами на Канарских островах.
* * *
На рисунке на следующей странице представлена упрощенная схема механизма «Энигмы», где для шифрования используются роторы с алфавитом из трех букв.
В результате каждый ротор имеет только три возможных позиции, а не 26, как в реальной машине.
Как мы видим, когда ротор машины «Энигма» находится в исходном положении, каждая буква открытого сообщения заменяется на другую, за исключением буквы А. После шифрования первой буквы ротор поворачивается на одну треть оборота.
В новой позиции буквам теперь соответствуют другие — не те, что в первом шифре.
Процесс завершается третьей буквой, после чего ротор возвращается в исходное положение и последовательность шифров повторяется.
Роторы стандартной машины «Энигма» имеют 26 позиций, по одной на каждую букву алфавита. Следовательно, с одним ротором можно применять 26 различных шифров. Таким образом, начальное положение ротора является ключевым.
Для увеличения количества возможных ключей дизайн «Энигмы» предусматривал до трех роторов, механически соединенных друг с другом. Когда первый ротор делал полный оборот, следующий переключался на одно положение, и так далее до полного оборота третьего ротора, что давало в общей сложности 26 х 26 х 26 = 17576 возможных шифров.
Кроме того, дизайн Шербиуса позволял изменять порядок переключателей, еще больше увеличивая количество шифров, как мы увидим ниже.
Трехроторная машина «Энигма» с частично открытым корпусом, позволяющим видеть коммутационную панель (спереди).
Кроме трех роторов «Энигма» также имела коммутационную панель, расположенную между первым ротором и клавиатурой. Коммутационная панель позволяла перекоммутировать соединения между буквами клавиатуры до соединения с ротором и таким образом добавляла значительное количество кодов к шифру. Стандартный дизайн «Энигмы» предусматривал шесть кабелей, которые могли соединять шесть пар букв. На следующем рисунке показана работа коммутационной панели, снова в упрощенной форме для трех букв и трех кабелей.