Что такое шифр "Энигма"? История, описание
Шифр "Энигма" был полевым шифром, используемым немцами во время Второй мировой войны. Enigma — одна из самых известных в истории шифровальных машин. Первая машина Enigma была изобретена немецким инженером по имени Артур Щербиус в конце Первой мировой войны. Она использовалась коммерчески с начала 1920-х годов и также использовалась военными и правительственными службами ряда стран, в том числе Германией, до и во время Второй мировой войны для передачи закодированных сообщений. Было выпущено множество различных моделей Enigma, но немецкая военная модель и немецкий шифр "Энигма" являются наиболее известными и обсуждаемыми.
Взлом шифра Enigma во время Второй мировой войны
Некоторые историки считают, что взлом шифра "Энигма" был самой важной победой союзных держав во время Второй мировой войны. Машина Enigma позволяла использовать миллиарды способов кодирования сообщений, что делало для других стран взлом немецких кодов во время Второй мировой войны невероятно трудным. Ннекоторое время код казался неуязвимыми. Затем Алан Тьюринг и другие исследователи использовали несколько недостатков в реализации кода Enigma и получили доступ к немецким кодовым книгам, что позволило им создать машину под названием Bombe. Она помогла взломать самые сложные версии Enigma. Польша в 2007 году выпустила монету в честь 75-летия взлома шифра "Энигмы" — 2 злотых из северного золота. В центре изображен герб Польши, а по кругу идет колесо-релле Enigma.
Значение взлома шифра для союзников
Некоторые историки считают, что взлом Enigma был единственной самой важной победой союзных держав во время Второй мировой войны. Используя информацию, которую они расшифровали у немцев, союзники смогли предотвратить множество атак. Но, чтобы избежать подозрений в том, что они способ дешифрования посланий найден, союзникам пришлось разрешить некоторые нападения, несмотря на то что у них были знания, чтобы остановить их. Об этом рассказывается в фильме «Игра в имитацию», вышедшем в 2014 году.
Машина "Энигма": описание, составные части
Машина Enigma состоит из нескольких частей, включая клавиатуру, плату, роторы и внутренние электронные схемы. Некоторые из них имеют дополнительные функции. Закодированные сообщения были набором букв, которые превращались в понятное предложение при расшифровке. Машины Enigma используют форму подстановочного шифрования. Подстановочное шифрование — это простой способ кодирования сообщений, но такие коды довольно легко сломать. Но машина Enigma спроектирована так, что правый ротор продвигается на одну позицию сразу после нажатия клавиши ввода. Таким образом, шифрование букв фактически начинается в то время, как роторы находятся в позиции, предшествующей AAA. Обычно это позиция AAZ.
Как работает шифр "Энигма"
Простым примером схемы шифрования замещения является шифр Цезаря. Он заключается в изменении места каждой буквы алфавита. Например, при сдвиге на 3 места буква A займет место G. Но шифр машины "Энигма" был, несомненно, намного мощнее, чем простой шифр Цезаря. Они используют форму подстановочных шифров, но каждый раз, когда письмо сопоставлялось с другим, вся схема кодирования изменялась. Варианты шифров "Энигма" - на фото ниже.
После нажатия каждой кнопки роторы перемещаются и направляют ток по другому пути на другую открытую букву. Таким образом, для первого нажатия клавиши генерируется одна кодировка, а при нажатии второй — другая. Это значительно увеличивает количество возможных вариантов кодирования, потому что каждый раз, когда на машине Enigma нажимается клавиша, роторы поворачиваются, и код меняется.
Принцип работы машины «Энигма»
Когда нажата клавиша на клавиатуре, один или несколько роторов перемещаются, чтобы сформировать новую конфигурацию ротора, которая будет кодировать одну букву как другую. Ток протекает через машину, и загорается одна лампочка на плате ламп, которая показывает выходную букву. Пример шифра "Энигмы" выглядел так: если нажата клавиша P, а машина Enigma кодирует эту букву как A, на панели лампы загорится A. Каждый месяц операторы Enigma получали кодовые книги, в которых указывалось, какие настройки будут использовать каждый день.
Схема шифрования
Схема была аналогична старомодной телефонной коммутационной панели, которая имеет десять проводов, причем в каждом проводе два конца, которые можно подключить к разъему. Каждый штекерный провод может соединять две буквы в пару путем подключения одного конца провода к слоту одной буквы, а другого конца — к другой букве. Две буквы в паре будут меняться, поэтому если B подключен к G, G становится B, а B становится G. Это обеспечивает дополнительный уровень шифрования для военных.
Кодирование сообщения
Каждый ротор машины имеет 2626 номеров или букв. Машина Enigma может использовать три ротора за раз, но их можно менять, выбирая из пяти наборов, что приводит к тысячам возможных конфигураций. «Ключ» к шифру "Энигма" состоит из нескольких элементов: роторы и их порядок, их начальные положения и схема смещения. Если предположить, что роторы движутся слева направо, и нужно зашифровать букву A, то когда буква А зашифрована, каждый ротор находится в исходном положении — AAA. Поскольку роторы движутся слева направо, символ A сначала пройдет через третий. Каждый ротор выполняет операцию замещения. Поэтому после того, как символ А проходит через третий, он выходит как В. Теперь буква B вводится через второй ротор, где он заменяется на J, а в первом J изменяется на Z. После того как шифр "Энигма" проходит через все роторы, он переходит на отражатель и проходит еще одну простую замену.
Ключ к расшифровке сообщений
После выхода из отражателя сообщение отправляется через роторы в обратном направлении, при этом применяется обратная замена. После этого символ A превратится в U. На каждом роторе, на ободе, есть алфавит, поэтому оператор может задавать определенную последовательность. Например, оператор может повернуть первый ротор, чтобы отобразить D, повернуть второй, чтобы отобразить K, и повернуть третий слот так, чтобы отобразить P. При первоначальном наборе из трех чисел или букв, отображаемых на машине отправителя, когда он начал вводить сообщение, получатель может декодировать его, установив на свою идентичную машину Enigma начальные настройки отправителя.
Недостатки способа шифрования "Энигма"
Главным минусом шифра "Энигма" было то, что буква никогда не могла быть закодирована так, как она есть. Другими словами, A никогда не будет закодирована как A. Это был огромный недостаток в коде Enigma, потому что он дал часть информации, которую можно было использовать для дешифрования сообщений. Если бы дешифровщики могли угадать слово или фразу, которые, вероятно, появятся в сообщении, эта информация помогла бы им, чтобы разгадать код. Поскольку немцы всегда отправляли сообщение о погоде в начале и обычно включали в конце сообщения фразу со своим традиционным приветствием, были найдены фразы, которые приблизили дешифровщиков к разгадке.
Машина Алана Тьюринга и Гордона Уэлчмана
Алан Тьюринг и Гордон Уэлчман разработали машину под названием Bombe, которая использовала электрические схемы для расшифровки закодированного Enigma сообщения менее чем за 20 минут. Машина Bombe пыталась определить настройки роторов и схемы машины Enigma, используемые для отправки заданного кодированного сообщения. Стандартная машина British Bombe была по существу 36 машинами Enigma, соединенными вместе. Таким образом, она смоделировала сразу несколько машин Enigma.
Как выглядела машина Bombe
Большинство машин Enigma имели три ротора, и каждый из симуляторов Enigma в Bombe имел три барабана, по одному для каждого ротора. Барабаны "Бомбе" были закодированы цветом, чтобы соответствовать тому ротору, который они имитировали. Барабаны были устроены так, что верхний из трех моделировал левый ротор Enigma, средний имитировал средний ротор, а нижний - правый ротор. Для каждого полного вращения верхних барабанов средние барабаны были увеличены на одну позицию, то же самое происходило со средним и нижним барабаном, в результате чего общее количество позиций составляло 17 576 позиций машины Enigma с 3 роторами.
Работа дешифровщика
Для каждой конфигурации ротора, при каждом повороте барабанов машина Bombe делала предположение о настройке схемы, например, что A подключен к Z. Если предположение оказывалось ложным, машина отвергала его и больше не использовала, и не тратила время на проверку любого из этих позже. Машина Bombe сдвигала позиции ротора и выбирала новое предположение и повторяет этот процесс до тех пор, пока не появится удовлетворительное расположение настроек. Если машина "догадывалась", что А подключен к Z, то понимала, что B необходимо подключить к E, и так далее. Если тест не привел к противоречию, машина останавливалась, и декодер использовал выбранную конфигурацию как ключ к сообщению.