(Для начала стоит сказать, что британцы быстро научились расшифровать "энигму", поэтому она оказалась бесполезной ¯\_(ツ)_/¯ )
«Эни́гма» (от нем. Änigma — загадка) — переносная шифровальная машина, использовавшаяся для шифрования и расшифрования секретных сообщений. Более точно, «Энигма» — целое семейство электромеханических роторных машин, применявшихся с 20-х годов XX века.
Криптограф Ральф Симпсон продемонстрировал, как работает «Энигма» (опубликовало CNET).
«Энигма» использовалась в коммерческих целях, а также военными службами во многих странах мира, но наибольшее распространение получила в нацистской Германии во время Второй мировой войны. Именно германская военная модель чаще всего является предметом дискуссий.
Впервые шифр «Энигмы» удалось дешифровать в польском Бюро шифров в декабре 1932 года. Четверо сотрудников разведки, Мариан Реевский, Ежи Ружицкий, Генрих Зыгальский и Иоганн Ревклид с помощью данных французской разведки, математической теории и методов обратной разработки смогли разработать специальное устройство для дешифровки закодированных сообщений, которое назвали криптологической бомбой. После этого немецкие инженеры усложнили устройство «Энигмы» и в 1938 году выпустили обновленную версию, для дешифровки которой требовалось построить более сложные механизмы.
Во время Второй мировой войны в Англии для расшифровки сообщений, зашифрованных с помощью «Энигмы», была создана машина с кодовым названием «Turing Bombe», оказавшая значительную помощь антигитлеровской коалиции. Вся информация, полученная криптоанализом с её помощью, имела кодовое название «Ultra». Утверждалось, что это достижение явилось решающим фактором в победе союзников.
Несмотря на то, что с точки зрения современной криптографии шифр «Энигмы» был слаб, на практике только сочетание этого фактора с другими (такими как ошибки операторов, процедурные изъяны, заведомо известный текст сообщений (например, при передаче метеосводок), захваты экземпляров «Энигмы» и шифровальных книг) позволили взломщикам шифров разгадывать шифры «Энигмы» и читать сообщения.
По приблизительным оценкам, было выпущено около 100 000 экземпляров шифровальных машин «Энигма».
Как и другие роторные машины, «Энигма» состояла из комбинации механических и электрических подсистем. Механическая часть включала в себя клавиатуру, набор вращающихся дисков — роторов, — которые были расположены вдоль вала и прилегали к нему, и ступенчатого механизма, двигающего один или несколько роторов при каждом нажатии на клавишу. Электрическая часть, в свою очередь, состояла из электрической схемы, соединяющей между собой клавиатуру, коммутационную панель, лампочки и роторы (для соединения роторов использовались скользящие контакты)[9].
Конкретный механизм работы мог быть разным, но общий принцип был таков: при каждом нажатии на клавишу самый правый ротор сдвигается на одну позицию, а при определённых условиях сдвигаются и другие роторы. Движение роторов приводит к различным криптографическим преобразованиям при каждом следующем нажатии на клавишу на клавиатуре[10].
Механические части двигались, замыкая контакты и образуя меняющийся электрический контур (то есть, фактически, сам процесс шифрования букв реализовывался электрически). При нажатии на клавишу клавиатуры контур замыкался, ток проходил через различные цепи и в результате включал одну из набора лампочек, и отображавшую искомую букву кода. (Например: при шифровке сообщения, начинающегося с ANX…, оператор вначале нажимал на клавишу A — загоралась лампочка Z — то есть Z и становилась первой буквой криптограммы. Далее оператор нажимал N и продолжал шифрование таким же образом далее)[10].
Для объяснения принципа работы машины приведена диаграмма слева. Диаграмма упрощена: на самом деле механизм состоял из 26 лампочек, клавиш, разъёмов и электрических схем внутри роторов. Ток шёл от источника питания (часто это была батарея) (1) через переключатель (2) в коммутационную панель (3). Коммутационная панель позволяла перекоммутировать соединения между клавиатурой (2) и неподвижным входным колесом (4). Далее ток проходил через разъём (3), в данном примере неиспользуемый, входное колесо (4) и схему соединений трёх (в армейской модели) или четырёх (в военно-морской модели) роторов (5) и входил в рефлектор (6). Рефлектор возвращал ток обратно, через роторы и входное колесо, но уже по другому пути, далее через разъём «S», соединённый с разъёмом «D», через другой переключатель (9), и зажигалась лампочка[10].
Таким образом, постоянное изменение электрической цепи, через которую шёл ток вследствие вращения роторов, позволяло реализовать многоалфавитный шифр подстановки[11], что давало высокую, для того времени, устойчивость шифра.
Роторы — сердце «Энигмы». Каждый ротор представлял собой диск примерно 10 см в диаметре, сделанный из эбонита или бакелита, с пружинными штыревыми контактами на правой стороне ротора, расположенными по окружности. На левой стороне находилось соответствующее количество плоских электрических контактов. Штыревые и плоские контакты соответствовали буквам в алфавите (обычно это были 26 букв от A до Z). При соприкосновении контакты соседних роторов замыкали электрическую цепь. Внутри ротора каждый штыревой контакт был соединён с одним из плоских. Порядок соединения был различным для каждого ротора[12].
Три ротора и шпиндель, к которому они крепятся.
Сам по себе ротор производил очень простой тип шифрования: элементарный шифр замены. Например, контакт, отвечающий за букву E, мог быть соединён с контактом буквы T на другой стороне ротора. Но при использовании нескольких роторов в связке (обычно трёх или четырёх) за счёт их постоянного движения получается более надёжный шифр[11].
Военные модели «Энигмы» выпускались с различным количеством роторов. Первая модель содержала только три. В более поздних моделях была возможность выбора из пяти (1934 г.), семи (1938 г.) или восьми (1939 г.) роторов. Роторы отмечались римскими цифрами I, …, VIII. До 1938 года германская армия использовала только три из пяти доступных роторов[13].
Четырёхроторная военно-морская модель «Энигмы», «Kriegsmarine M4» имела один дополнительный ротор, хотя была такого же размера, что и трёхроторная, за счёт более тонкого рефлектора. Существовало два типа этого ротора: «Бета» и «Гамма». В процессе шифрования он не двигался, но мог быть установлен вручную на любую из 26 различных позиций[13].
Математическое описание
Править
Преобразование «Энигмы» для каждой буквы может быть определено математически как результат перестановок. Рассмотрим трёхроторную армейскую модель. Положим, что «P» обозначает коммутационную панель, «U» обозначает отражатель, а «L», «M», «R» обозначают действия левых, средних и правых роторов соответственно. Тогда шифрование «E» может быть выражено как:
{\displaystyle E=PRMLUL^{-1}M^{-1}R^{-1}P^{-1}} E=PRMLUL^{-1}M^{-1}R^{-1}P^{-1}
После каждого нажатия клавиш ротор движется, изменяя трансформацию. Например, если правый ротор «R» проворачивается на i позиций, происходит трансформация {\displaystyle \rho ^{i}R\rho ^{-i}} \rho ^{i}R\rho ^{-i}, где ρ — циклическая перестановка, проходящая от «A» к «B», от «B» к «C», и так далее. Таким же образом, средний и левый ротор могут быть обозначены как j и k вращений «M» и «L». Функция шифрования в этом случае может быть отображена следующим образом:
Отредактировано Данил (2019-03-20 20:44:51)