T

Text Machine

Мощные текстовые инструменты прямо в браузере

Машина «Энигма»

Моделируйте, шифруйте и расшифровывайте с помощью немецкой шифровальной машины «Энигма» времён Второй мировой войны. Выберите рефлектор, три ротора, их настройки колец и начальные положения, а также коммутационную панель, затем введите сообщение и наблюдайте, как шагают роторы. «Энигма» взаимна: одни и те же настройки и шифруют, и расшифровывают, поэтому отдельного режима расшифровки нет. Всё работает в вашем браузере.

«Энигма» взаимна: одна и та же настройка машины и шифрует, и расшифровывает. Чтобы прочитать сообщение, установите роторы, кольца, положения и коммутационную панель точно в те настройки, что использовались при шифровании, вставьте шифртекст — и результатом будет исходный текст. Отдельной кнопки расшифровки нет.

Настройки машины

Рефлектор

Роторы

Левый (медленный)

Средний

Правый (быстрый)

Настройки колец

Начальные положения

Коммутационная панель

Коммутационная панель меняет буквы попарно до и после роторов. Введите пары вроде AB CD EF; каждую букву можно использовать только один раз. Оставьте поле пустым, чтобы не было замен. Пробелы и другие символы игнорируются.

Текст
Результат

Введите текст выше, чтобы увидеть здесь результат «Энигмы».

Как пользоваться Машина «Энигма»

  1. 1

    Выберите рефлектор и роторы

    Выберите рефлектор, B или C, и подберите три ротора от I до V для левого, среднего и правого гнёзд. Стандартная эталонная настройка — рефлектор B с роторами I, II и III.

  2. 2

    Задайте настройки колец

    Введите три настройки колец буквами, например AAA. Настройка кольца, или Ringstellung, поворачивает схему каждого ротора относительно его буквенного кольца и меняет результат.

  3. 3

    Задайте начальные положения

    Введите три начальных положения буквами, например AAA. Это точки, в которые повёрнуты роторы перед началом набора, видимые в окнах роторов. Для расшифровки используйте те же начальные положения, что применялись при шифровании.

  4. 4

    Добавьте пары коммутационной панели

    При желании введите пары коммутационной панели, например AB CD EF. Каждая пара меняет две буквы до и после роторов, и каждую букву можно использовать только один раз. Оставьте поле пустым, чтобы не использовать коммутационную панель.

  5. 5

    Введите текст и прочитайте результат

    Введите или вставьте сообщение, и результат появится мгновенно, а окна роторов будут шагать в живом расчёте. Поскольку «Энигма» взаимна, одни и те же настройки шифруют и расшифровывают, поэтому вы можете копировать, скачивать или поделиться ссылкой, которая снова откроет инструмент с вашей точной настройкой машины и текстом.

Разбираемся в машине «Энигма»

Что такое машина «Энигма»?

Машина «Энигма» — это электромеханическое роторное шифровальное устройство, изобретённое немецким инженером Артуром Шербиусом (Arthur Scherbius) около 1918 года. Внешне она похожа на пишущую машинку в деревянном корпусе: клавиатура, панель из 26 светящихся букв над ней, набор вращающихся колёс, называемых роторами, и коммутационная панель с кабелями спереди. При нажатии буквы электрический ток проходит через коммутационную панель, через роторы и рефлектор и возвращается обратно, зажигая на панели другую букву. Эта зажжённая буква и есть шифртекст. Каждое нажатие клавиши также поворачивает роторы, поэтому одна и та же буква текста шифруется по-разному при каждом появлении, и именно это делает «Энигму» многоалфавитным шифром, а не простой заменой.

Принятая на вооружение и неуклонно совершенствуемая немецкими военными, «Энигма» стала основой секретной связи нацистской Германии на протяжении всей Второй мировой войны. Немцы считали её невзламываемой из-за ошеломляющего числа возможных настроек. Они ошибались: польские математики во главе с Марианом Реевским (Marian Rejewski) восстановили машину и её схему в начале 1930-х годов, а их работа была развита в британском Блетчли-Парке Аланом Тьюрингом (Alan Turing), Гордоном Уэлчманом (Gordon Welchman) и многими другими, чья дешифровка, как широко считается, сократила войну. Этот инструмент воссоздаёт стандартную трёхроторную Enigma I, которую использовали сухопутные войска и военно-воздушные силы Германии.

Как работает машина «Энигма»

Настройка «Энигмы» состоит из четырёх рабочих частей. Коммутационная панель, или Steckerbrett, меняет пары букв кабелями до и после блока роторов. Роторы, или Walzen, — это колёса, смонтированные так, что каждый из 26 входных контактов соединён с перепутанным выходным контактом; эта машина использует три ротора одновременно, выбранных и упорядоченных из набора в пять штук. Рефлектор, или Umkehrwalze, расположен на дальнем конце и отправляет ток обратно через роторы по фиксированному сопоставлению. Затем панель ламп показывает результат. Таким образом, сигнал совершает путь туда и обратно: коммутационная панель, правый ротор, средний ротор, левый ротор, рефлектор, левый ротор, средний ротор, правый ротор, коммутационная панель и, наконец, лампа.

Три настройки персонализируют машину для конкретного дня или сообщения. Настройка кольца, или Ringstellung, поворачивает схему каждого ротора относительно его буквенного кольца. Начальное положение, или Grundstellung, — это точка, в которую повёрнут каждый ротор перед началом набора, видимая через небольшие окошки. Пары коммутационной панели добавляют последний слой замен. Перед каждым нажатием клавиши роторы продвигаются, как одометр, поэтому схема, через которую проходит ток, никогда не повторяется два раза подряд. Живой расчёт под инструментом показывает, как три окна роторов шагают для каждой буквы вашего сообщения.

Разобранный пример

Установите машину в наиболее часто упоминаемую эталонную конфигурацию: рефлектор B, роторы I, II и III слева направо, все три настройки колец на A, все три начальных положения на A и пустая коммутационная панель. Теперь наберите пять букв A. Первое нажатие шагает правым ротором, и ток проходит свой путь туда и обратно, зажигая лампу B. При наборе оставшихся A, с шагом роторов каждый раз, загораются D, затем Z, затем G, затем O. Таким образом, текст AAAAA шифруется в BDZGO — классическая проверка, подтверждающая, что роторы смонтированы правильно.

Поскольку «Энигма» взаимна, расшифровка использует те же самые настройки. Верните все три ротора в начальные положения A, оставьте всё прочее без изменений и наберите шифртекст BDZGO. Получится AAAAA — исходное сообщение. Та же настройка восстановила текст, и поэтому у этого инструмента нет отдельного режима расшифровки: достаточно восстановить настройки, использованные при шифровании, и снова набрать шифртекст.

Рефлектор и взаимность

Именно рефлектор делает «Энигму» взаимной. Поскольку он симметрично соединяет 26 проводов в пары, путь, который ток проходит от клавиши к лампе, в точности обратим: если при данной конфигурации роторов нажатие A зажигает G, то при той же конфигурации нажатие G зажжёт A. Так как шаг роторов зависит только от настроек и положения буквы в сообщении, но никогда от самих букв, расшифровка идентична шифрованию, как только машина сброшена в то же начальное состояние. Одна процедура, одна настройка, оба направления.

Рефлектор также породил самый известный изъян «Энигмы»: буква никогда не может зашифроваться сама в себя. Поскольку ток всегда возвращается по проводу, отличному от того, по которому ушёл, A может стать любой буквой, кроме A. Это кажется безобидным, но дало взломщикам мощный инструмент. Если они предполагали, что отрывок открытого текста, «криб», находится где-то в сообщении, они могли сдвигать его вдоль шифртекста и мгновенно отбрасывать каждую позицию, где буква совпадала сама с собой, резко сужая поиск. Конструкция, призванная добавить удобства, дала союзникам опору.

Шаг роторов и двойной шаг

Роторы вращаются, как колёса одометра, но с особенностью. Правый ротор шагает при каждом нажатии клавиши. У каждого ротора есть выемка-зацеп, и когда ротор переступает эту выемку, он толкает ротор слева от себя на одну позицию вперёд. Поэтому после того, как правый ротор совершит полный оборот и достигнет своей выемки, средний ротор продвигается; после того, как средний ротор в конце концов достигнет своей выемки, продвигается левый ротор. Вот почему машина долго не повторяется: с тремя роторами полный цикл длится тысячи букв.

Существует одна хорошо известная неправильность — двойной шаг. Из-за того, как сцепляются рычаги шага, когда средний ротор находится в собственном положении зацепа, он продвигается при следующем нажатии вместе с левым ротором, а на предыдущем нажатии он уже был продвинут правым ротором, так что кажется, будто он движется дважды подряд. Любой добросовестный симулятор «Энигмы» обязан воспроизводить эту аномалию, и этот инструмент это делает; вы можете увидеть её в живом расчёте, когда средний ротор близок к своей выемке. Точно задать шаг крайне важно, потому что даже один неверный шаг исказил бы все последующие буквы.

Как был взломан код «Энигмы»

Первый прорыв пришёл из Польши. В 1932 году математик Мариан Реевский (Marian Rejewski), работая с Ежи Ружицким (Jerzy Rozycki) и Хенриком Зыгальским (Henryk Zygalski) в польском Бюро шифров, использовал теорию перестановок и украденный список настроек, чтобы восстановить внутреннюю схему военной «Энигмы» — достижение, долго считавшееся невозможным. Поляки построили электромеханические вспомогательные устройства и годами читали немецкий трафик, а затем передали всё Великобритании и Франции прямо перед войной. Этот дар стал основой, на которой строился Блетчли-Парк.

В Блетчли-Парке Алан Тьюринг (Alan Turing) и Гордон Уэлчман (Gordon Welchman) спроектировали «Бомбу» (Bombe) — машину, которая быстро перебирала огромное число настроек роторов, чтобы найти ключ дня. Их атака опиралась на изъян невозможности самошифрования, на крибы предсказуемого открытого текста, такие как сводки погоды и шаблонные фразы, и на ошибки операторов вроде повторно использованных или лениво выбранных ключей сообщений. По мере того как Германия добавляла роторы и штекеры, работа усложнялась, но дешифровка не прекращалась. Полученная разведывательная информация под кодовым названием Ultra, как широко считается, сократила Вторую мировую войну и спасла много жизней, а также помогла заложить основы современных вычислений.

Надёжен ли шифр «Энигма»?

По меркам своего времени «Энигма» была грозной: около 159 квинтиллионов возможных настроек, если учесть выбор роторов, настройки колец, начальные положения и десять кабелей коммутационной панели. Но чистое число ключей не равнозначно безопасности. Структурные изъяны, особенно то, что ни одна буква не шифруется сама в себя, предсказуемое содержание сообщений и человеческие ошибки позволяли аналитикам с нужными машинами и методами восстанавливать суточные ключи снова и снова. Против современного компьютера даже безупречно управляемая «Энигма» не даёт никакой защиты.

Сегодня шифр «Энигма» изучают и любят за то, чему он учит, и за его необыкновенную историю. Это один из лучших способов понять роторные машины, многоалфавитную замену и то, как тщательный криптоанализ побеждает шифр, и он постоянно встречается в музеях, фильмах, головоломках и соревнованиях capture the flag. Чтобы защитить настоящую информацию, всегда полагайтесь на современные, хорошо проверенные алгоритмы, такие как AES.

Часто задаваемые вопросы

Что такое машина «Энигма»?
Машина «Энигма» — это электромеханический роторный шифр, изобретённый Артуром Шербиусом около 1918 года и использовавшийся нацистской Германией на протяжении всей Второй мировой войны. Нажатие клавиши посылает ток через коммутационную панель, три вращающихся ротора и рефлектор, чтобы зажечь букву шифртекста, а роторы шагают при каждом нажатии, так что одна и та же буква каждый раз шифруется по-разному. Этот инструмент моделирует стандартную трёхроторную Enigma I.
Как работает машина «Энигма»?
Сигнал совершает путь туда и обратно: он проходит через коммутационную панель, затем правый, средний и левый роторы, отражается от рефлектора, возвращается обратно через роторы и снова проходит через коммутационную панель, чтобы зажечь лампу. Перед каждым нажатием клавиши роторы продвигаются, как одометр. Рефлектор симметрично соединяет провода в пары, что делает шифр взаимным, поэтому одна и та же настройка и шифрует, и расшифровывает.
Как расшифровать сообщение «Энигмы»?
Установите рефлектор, роторы, настройки колец, начальные положения и коммутационную панель точно в те значения, что использовались при шифровании сообщения, затем вставьте шифртекст. Поскольку «Энигма» взаимна, отдельного режима расшифровки нет: при правильных настройках выходом будет исходный текст. Если настройки неизвестны, их нужно восстановить криптоанализом.
Можете показать пример «Энигмы»?
С рефлектором B, роторами I, II и III, всеми настройками колец на A, всеми начальными положениями на A и пустой коммутационной панелью набор AAAAA даёт BDZGO. Сброс той же машины и набор BDZGO возвращает AAAAA, потому что «Энигма» взаимна. Этот результат AAAAA в BDZGO — классическая проверка того, что симулятор «Энигмы» смонтирован правильно.
Почему у «Энигмы» нет отдельной кнопки расшифровки?
«Энигма» взаимна благодаря своему рефлектору. При любой конфигурации роторов, если A зажигает G, то G зажигает A, а шаг роторов зависит только от настроек и положения буквы, но не от самих букв. Поэтому расшифровка — это та же самая операция, что и шифрование, выполненная при машине, сброшенной в то же начальное состояние. Одна настройка обрабатывает оба направления, поэтому режим расшифровки не нужен.
Что такое роторы, настройки колец и начальные положения?
Роторы — это колёса, смонтированные так, чтобы перемешивать 26 букв; эта машина использует три, выбранных из пяти, в заданном порядке. Настройка кольца, или Ringstellung, поворачивает внутреннюю схему ротора относительно его буквенного кольца. Начальное положение, или Grundstellung, — это точка, в которую повёрнут каждый ротор перед началом набора. Вместе они составляют значительную часть суточного ключа.
Что такое коммутационная панель?
Коммутационная панель, или Steckerbrett, — это панель с кабельными гнёздами, которая меняет пары букв до того, как сигнал войдёт в роторы, и снова после его возвращения. Например, соединение A с B приводит к тому, что каждая A трактуется как B, а каждая B — как A. Каждую букву можно подключить только один раз, и коммутационная панель значительно увеличила число возможных настроек «Энигмы».
Почему буква никогда не может зашифроваться сама в себя?
Поскольку рефлектор всегда возвращает ток по проводу, отличному от того, по которому он ушёл, буква никогда не может зажечь собственную лампу: A может стать чем угодно, кроме A. Это было серьёзной слабостью. Взломщики могли взять предполагаемый отрывок открытого текста, сдвигать его вдоль шифртекста и отбрасывать любое выравнивание, где буква совпадала сама с собой, что резко сокращало работу по поиску ключа.
Кто взломал код «Энигмы»?
Польские математики Мариан Реевский (Marian Rejewski), Ежи Ружицкий (Jerzy Rozycki) и Хенрик Зыгальский (Henryk Zygalski) первыми восстановили военную «Энигму» и читали её трафик в 1930-х годах, а затем передали свою работу Великобритании и Франции. В Блетчли-Парке Алан Тьюринг (Alan Turing) и Гордон Уэлчман (Gordon Welchman) построили «Бомбу» и вместе со многими коллегами регулярно взламывали «Энигму». Их разведданные под кодовым названием Ultra, как широко считается, сократили Вторую мировую войну.
Насколько надёжен был шифр «Энигма»?
Для своего времени «Энигма» была очень сильной — около 159 квинтиллионов возможных настроек. Но огромное число ключей не гарантирует безопасности. Изъян невозможности самошифрования, предсказуемое содержание сообщений, повторно используемые ключи и ошибки операторов позволяли аналитикам восстанавливать суточные настройки снова и снова. Против современных компьютеров даже безупречно управляемая «Энигма» не обеспечивает реальной защиты.
Загружается ли мой текст на сервер?
Нет. Всё кодирование и декодирование происходит полностью в вашем браузере, поэтому ваш текст и настройки машины никогда не загружаются, не записываются и не сохраняются. Даже ссылка для обмена хранит ваши данные в части URL после решётки, которую браузеры никогда не отправляют на сервер, поэтому они остаются конфиденциальными, пока вы сами не решите поделиться ими.

Похожие инструменты

Продолжайте работу с этими удобными инструментами

Шифр Цезаря

Шифр Виженера

Шифр Атбаш

Шифр Рейл-Фенс

Шифр Плейфера

Аффинный шифр