«Эни́гма» (от  — загадка) — переносная шифровальная машина, использовавшаяся для шифрования и расшифрования секретных сообщений. Первую версию роторной шифровальной машины запатентовал в 1918 году Артур Шербиус. На основе конструкции первоначальной модели «Энигмы» было создано целое семейство электромеханических роторных машин под тем же названием, применявшихся с 1920-х годов в сфере коммерческой и военной связи во многих странах мира, но наибольшее распространение получили в гитлеровской Германии во время Второй мировой войны. Именно германская военная модель чаще всего подразумевается при упоминании «Энигмы».

По приблизительным оценкам Ф. Бауэра, было выпущено около 100 000 экземпляров шифровальных машин «Энигма». Вместе с тем, другие эксперты оценивают общее количество выпущенных единиц примерно в 40 000 штук.

Впервые шифр «Энигмы» удалось дешифровать в польском «Бюро шифров» в декабре 1932 года. Трое сотрудников разведки — Мариан Реевский, Ежи Ружицкий и Генрих Зыгальский — с помощью данных французской разведки, математической теории и методов обратной разработки смогли разработать и построить специальное устройство для дешифровки закодированных сообщений, которое назвали «криптологической бомбой» (см. Криптоанализ «Энигмы»). После этого немецкие инженеры усложнили устройство «Энигмы» и в 1938 году выпустили обновлённую версию, для дешифровки которой требовалось построить более сложные механизмы.

9 мая 1941 года при захвате силами Великобритании подводной лодки U-110 в руки англичан впервые попала шифровальная машина Энигма вместе с кодами, радиограммами и другими связанными документами. С помощью полученных материалов английские криптографы начали чтение сообщений немецких подлодок, использовавших «Дельфин» (; : название одного из кодов, использовавшихся Кригсмарине для шифрования сообщений на трёхроторной «Энигме») .

В августе 1941 года англичане создали более совершенные «Turing Bombe», позволившие им оперативно расшифровывать немецкие радиограммы. Через два месяца немцы ввели новый код для подлодок, но Блетчли-парк сумел раскрыть и его.

Англичане читали вражеские шифрограммы до февраля 1942 года, когда немецкий флот начал использовать новую четырёхроторную «Энигму». Ситуацию удалось исправить после того, как 30 октября 1942 года противолодочный корабль «Petard» захватил модернизированную «Энигму» и документацию к ней с подводной лодки U-559. Это позволило расшифровывать немецкие сообщения до самого конца войны.

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

Несмотря на то, что с точки зрения современной криптографии считается, что шифр «Энигмы» был относительно слабЛеонид Черняк. Тайны проекта Ultra ., на практике только сочетание этого фактора с другими (такими, как ошибки операторов, процедурные изъяны, заведомо известный текст сообщений — например, при передаче метеосводок — и захваты экземпляров «Энигмы» и шифровальных книг) позволили взломщикам шифров разгадывать шифры «Энигмы» и читать сообщения.

Описание

Как и другие роторные машины, «Энигма» состояла из комбинации механических и электрических систем.

Механическая часть включала в себя клавиатуру, набор вращающихся дисков — роторов, — которые были расположены вдоль вала и прилегали к нему, и ступенчатого механизма, двигающего один или несколько роторов при каждом нажатии на клавишу.

Электрическая часть, в свою очередь, состояла из электрической схемы, соединяющей между собой клавиатуру, коммутационную панель, лампочки и роторы (для соединения роторов использовались скользящие контакты).

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

Механические части двигались, замыкая контакты и образуя меняющийся электрический контур (то есть, фактически, сам процесс шифрования букв реализовывался электрически). При нажатии на клавишу клавиатуры контур замыкался, ток проходил через различные цепи и в результате включал одну лампочку из набора, отображающую искомую букву кода. (Например: при шифровке сообщения, начинающегося с ANX…, оператор вначале нажимал на клавишу A — загоралась лампочка Z — то есть Z и становилась первой буквой криптограммы. Далее оператор нажимал N и продолжал шифрование таким же образом далее).

Для объяснения принципа работы машины приведена диаграмма слева. Диаграмма упрощена: на самом деле механизм состоял из двадцати шести лампочек, клавиш, разъёмов и электрических схем внутри роторов. Ток шёл от источника питания (часто это была батарея) (1) через переключатель (2) в коммутационную панель (3). Коммутационная панель позволяла перекоммутировать соединения между клавиатурой (2) и неподвижным входным колесом (4). Далее ток проходил через разъём (3), в данном примере неиспользуемый, входное колесо (4) и схему соединений трёх (в армейской модели) или четырёх (в военно-морской модели) роторов (5) и входил в рефлектор (6). Рефлектор возвращал ток обратно, через роторы и входное колесо, но уже по другому пути, далее через разъём «S», соединённый с разъёмом «D», через другой переключатель (9), и зажигалась лампочка.

Таким образом, постоянное изменение электрической цепи, через которую шёл ток вследствие вращения роторов, позволяло реализовать многоалфавитный шифр подстановки, что давало высокую, для того времени, устойчивость шифра.

Роторы

Роторы — сердце «Энигмы». Каждый ротор представлял собой диск примерно 10 см в диаметре, сделанный из эбонита или бакелита, с пружинными штыревыми контактами на правой стороне ротора, расположенными по окружности. На левой стороне находилось соответствующее количество плоских электрических контактов. Штыревые и плоские контакты соответствовали буквам в алфавите (обычно это были 26 букв от A до Z). При соприкосновении контакты соседних роторов замыкали электрическую цепь. Внутри ротора каждый штыревой контакт был соединён с одним из плоских. Порядок соединения был различным для каждого ротора.

Сам по себе ротор производил очень простой тип шифрования: элементарный шифр замены. Например, контакт, отвечающий за букву E, мог быть соединён с контактом буквы T на другой стороне ротора. Но при использовании нескольких роторов в связке (обычно трёх или четырёх) за счёт их постоянного движения получается более надёжный шифр.

Ротор в разобранном виде Три последовательно соединённых ротора кольцо с выемками маркирующая точка для контакта «A» алфавитное кольцо залужённые контакты электропроводка штыревые контакты пружинный рычаг для настройки кольца втулка пальцевое кольцо храповое колесо

Военные модели «Энигмы» выпускались с различным количеством роторов. Первая модель содержала только три. В более поздних моделях была возможность выбора из пяти (1934 г.), семи (1938 г.) или восьми (1939 г.) роторов. Роторы отмечались римскими цифрами I, …, VIII. До 1938 года германская армия использовала только три из пяти доступных роторов.

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

Ступенчатое движение роторов

Каждый ротор был прикреплён к шестерёнке с 26 зубцами (храповику), а группа собачек зацепляла зубцы шестерёнок. Собачки выдвигались вперёд одновременно с нажатием клавиши на машине. Если собачка цепляла зубец шестерёнки, то ротор поворачивался на один шаг.

В армейской модели «Энигмы» каждый ротор был прикреплён к регулируемому кольцу с выемками. Пять базовых роторов (I—V) имели по одной выемке, тогда как в военно-морской модели (VI—VIII) — по две. В определённый момент выемка попадала напротив собачки, позволяя ей зацепить храповик следующего ротора при последующем нажатии клавиши. Когда же собачка не попадала в выемку, она просто проскальзывала по поверхности кольца, не цепляя шестерёнку. В системе с одной выемкой второй ротор продвигался вперёд на одну позицию за то же время, что первый — на 26. Аналогично, третий ротор продвигался на один шаг за то же время, за которое второй делал 26 шагов. Особенностью машины было то, что второй ротор также поворачивался, если поворачивался третий. Это означает, что второй ротор мог повернуться дважды при двух последовательных нажатиях клавиш — так называемое «двухшаговое движение», — что приводило к уменьшению периода обращенияДевид Хамер. «„Энигма“: что участвует в двухшаговом движении среднего ротора» (архив первоисточника от 2011-07-19)..

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

С тремя дисками и только с одной выемкой в первом и втором диске машина имела период 26 × 25 × 26 = 16 900. Как правило, сообщения не превышали пары сотен символов, и, следовательно, не было риска повтора позиции роторов при написании одного сообщения.

При нажатии клавиши роторы поворачивались до замыкания электрической цепи.

Входное колесо Входное колесо (), или входной статор, соединяло коммутационную панель или (в случае её отсутствия) клавиатуру и ламповую панель с роторами. Несмотря на то, что фиксированное соединение проводов играло сравнительно небольшую роль с точки зрения безопасности, именно это оказалось некоторым препятствием в работе польского криптоаналитика Мариана Реевского, когда он пытался определить способ соединения проводов внутри роторов. Коммерческая модель «Энигмы» соединяла буквы в порядке их следования на клавиатуре: Q→A, W→B, E→C и так далее. Однако военная модель соединяла их в прямом алфавитном порядке: A→A, B→B, C→C и т. д. Только интуитивная догадка Реевского позволила ему изменить расчёты и решить уравнения.

Рефлектор За исключением ранних моделей «A» и «B», за последним ротором следовал рефлектор (), запатентованная деталь, отличавшая семейство «Энигмы» от других роторных машин, разработанных в то время. Рефлектор соединял контакты последнего ротора попарно, коммутируя ток через роторы в обратном направлении, но по другому маршруту. Наличие рефлектора гарантировало, что преобразование, осуществляемое «Энигмой», есть инволюция, то есть расшифрование представляет собой то же самое, что и шифрование. Однако наличие рефлектора делает невозможным шифрование какой-либо буквы через саму себя. Это было серьёзным концептуальным недостатком, впоследствии пригодившимся дешифровщикам.

В коммерческой модели «Энигма-C» рефлектор мог быть расположен в двух различных позициях, а в модели D — в 26 возможных позициях, но при этом был неподвижен в процессе шифрования. В модели, применявшейся в абвере, рефлектор двигался во время шифрования, как и остальные диски.