Лабораторная работа №3

ИЗУЧЕНИЕ УСТРОЙСТВА И ПРИНЦИПА РАБОТЫ ШИФРОВАЛЬНОЙ МАШИНЫ ЭНИГМА (Enigma)

Цель работы: Изучение принципов шифрования/расшифрования информации, используемых в шифровальной машине Энигма. Ознакомление с общими принципами действия шифровальной машины Энигма на примере эмулятора. Предварительно необходимо установить программу эмулятор Enigma3S.

Описание работы

Энигма, устройство и принцип действия

Рис. 3.1. Внешний вид шифровальной машины Энигма

Эни́гма (Enigma) — портативная шифровальная машина, использовавшаяся для шифрования и расшифрования секретных сообщений. Более точно, Энигма — целое семейство электромеханических роторных машин, применявшихся с 20-х годов XX века.

Энигма использовалась в коммерческих целях, а также в военных и государственных службах во многих странах мира, но наибольшее распространение получила в Германии во время второй мировой войны. Именно Энигма Вермахта (Wehrmacht Enigma) — немецкая военная модель — чаще всего является предметом изучения.

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

Рис. 3.2. Электрическая схема Энигмы (замена в тексте буквы 'A' буквой 'D')

Шифрующее действие Энигмы показано для двух последовательно нажатых клавиш — ток течет через роторы, "отражается" от рефлектора, затем снова возвращается через роторы. Серыми линиями на рисунке показаны другие возможные электрические цепи внутри каждого ротора. Буква ―A‖ заменяется в шифротексте по-разному при последовательных нажатиях клавиши, сначала на ―G‖, затем на ―C‖. Сигнал идет по другому маршруту за счет поворота ротора.

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

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

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

Роторы

Рис. 3.3. Левая сторона ротора Энигмы, видны плоские электрические контакты

Рис. 3.4. Правая сторона ротора, видны штыревые контакты

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

Сам по себе ротор воспроизводит шифрование простой заменой символов. Например, контакт, отвечающий за букву ―Е‖, может быть соединен с контактом буквы ―Т‖ на другой стороне ротора. Но при использовании нескольких роторов в связке (обычно трех или четырех), за счет их постоянного движения, получается более стойкий тип многоалфавитного шифрования.

Ротор может занимать одну из 26 позиций в машине. Он может быть повернут вручную при помощи рифленого пальцевого колесика, которое выдается наружу, как показано на Рис. 3.5. Чтобы оператор всегда мог определить положение ротора, на каждом ободе находится алфавитное кольцо; одна из букв видна через окошко. В ранних моделях Энигмы алфавитное кольцо было фиксировано; в более поздних версиях ввели усложненную конструкцию с возможностью его регулировки. Каждый ротор содержит выемку (или несколько выемок), используемых для управления движением роторов.

Рис. 3.5. Ротор в разобранном виде

1. кольцо с выемками

2. маркирующая точка для контакта "A"

3. алфавитное кольцо

4. залуженные контакты

5. электропроводка

6. штыревые контакты

7. пружинный рычаг для настройки кольца

8. втулка

9. пальцевое кольцо

10. храповое колесо

Рис. 3.6. Три последовательно соединенных ротора

Военные версии Энигмы выпускались с несколькими роторами; первая модель содержала только три. В 1938 г. их стало пять, но только три из них одновременно использовались в машине. Эти типы роторов были маркированы римскими цифрами I, II, III, IV, V, и все с одной выемкой, расположенной в разных местах алфавитного кольца. В военно-морских версиях Wehrmacht Enigma содержалось большее количество роторов, чем в других: шесть, семь или восемь.

В Wehrmacht Enigma каждый ротор прикреплен к регулируемому кольцу с выемками. Пять базовых роторов (I-V) имели по одной выемке, тогда как военно-морские с дополнительными роторами (VI-VIII) — по две. В определенный момент, выемка попадает напротив собачки, позволяя ей зацепить храповик следующего ротора при последующем нажатии клавиши. Когда же собачка не попадает в выемку, она просто проскальзывает по поверхности кольца, не цепляя шестеренки. В системе с одной выемкой второй ротор продвигается вперед на одну позицию в то время, как первый продвигается на 26. Аналогично, третий ротор продвигается на один шаг в то время, как второй делает 26 шагов. Особенностью было то, что второй ротор также поворачивался, если поворачивался третий; это означает, что второй ротор мог повернуться дважды при двух последовательных нажатиях клавиш, так называемое "двухшаговое движение", что приводит к уменьшению периода при шифровании.

Рис. 3.7. Роторы Энигмы в собранном состоянии. Три подвижных ротора помещены между двумя неподвижными деталями: входное кольцо и рефлектор (помечен "B" слева)

Входное колесо

Входное колесо (Eintrittswalze по-немецки), или входной статор, соединяет коммутационную панель, или (в случае ее отсутствия) клавиатуру и ламповую панель, с роторами. Несмотря на то, что фиксированное соединение проводов имеет сравнительно небольшее значение с точки зрения безопасности, это оказалось некоторым препятствием в работе польского криптоаналитика Марьяна Реджевски, когда он пытался определить способ коммутации проводов внутри роторов. Коммерческая версия Энигмы соединяла буквы в порядке их следования на клавиатуре: QA, WB, EC и так далее. Однако, военная версия соединяла их в прямом алфавитном порядке: AA, BB, CC и т.д.

Рефлектор

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

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

Рис. 3.8. Коммутационная панель в передней части машины. Могло использоваться до 13 соединений. На фотографии две пары букв переключены (―S‖-―O‖ и ―J‖-―A‖)

Коммутационная панель, позволяющая оператору варьировать соединения проводов, впервые появилась в немецких военных версиях в 1930 г. и вскоре успешно использовалась и в военно-морских версиях. Коммутационная панель внесла огромный вклад в усложнение шифра Энигмы, даже больший, чем введение дополнительного ротора. С Энигмой без коммутационной панели — "unsteckered" Энигмой — дешифровальщик может справиться практически вручную, однако эти методы оказывались беспомощными при добавлении коммутационной панели, и взломщики были вынуждены конструировать специальные дешифровальные машины. Кабель, помещенный на коммутационную панель, соединяет буквы попарно, например, ―E‖ и ―Q‖ могут быть соединены в пару. Эффект состоит в перестановке этих букв до и после прохождения сигнала через роторы. Например, когда оператор нажимал ―E‖, сигнал направлялся в ―Q‖, и только после этого уже во входной ротор. Одновременно могло использоваться несколько таких пар (до 13).

Аксессуары

Удобной деталью, использовавшейся на M4 Энигма, был "Schreibmax", маленькое печатающие устройство, которое могло печатать все 26 букв на небольшом листе бумаги.

Процедуры использования Энигмы

Во время второй мировой войны немецкие операторы использовали шифровальную книгу только для установки роторов и настроек колец. Для каждого сообщения, они выбирали случайную стартовую позицию, допустим ―WZA‖, и случайный ключ сообщения, допустим ―SXT‖. Далее оператор устанавливал роторы в стартовую позицию ―WZA‖, и шифровал ключ сообщения ―SXT‖. Предположим, что в результате шифрования ключа получится ―UHL‖. Далее оператор ставил ключ сообщения ―SXT‖, как начальную позицию роторов, и шифровал сообщение. Затем оператор отправлял стартовую позицию ―WZA‖ и зашифрованный ключ ―UHL‖ вместе с сообщением. Получатель устанавливал стартовую позицию в соответствии с первой трехграммой ―WZA‖ и, расшифровывая вторую триграмму ―UHL‖ – распознавал исходный ключ ―SXT‖. Далее, получатель использовал этот ключ как стартовую позицию для расшифровки сообщения. Обычно срок действия ключей составлял один день.

Военная версия Энигмы использовала только 26 букв. Прочие символы заменялись редкими комбинациями букв. Пробел пропускался либо заменялся ―X‖. Символ ―X‖ также использовался для обозначения точки либо конца сообщения. Некоторые особые символы использовались в отдельных вооруженных частях, например, Wehrmacht заменяла запятую двумя символами ―ZZ‖ и вопросительный знак - ―FRAGE‖ либо ―FRAQ‖. А Kriegsmarine заменяла запятую - ―Y‖ и вопросительный знак - ―UD‖. Два, три или четыре нуля заменялись CENTA, MILLE и MYRIA соответственно.

2. Задание

1. Запустите эмулятор Энигмы Enigma3S из папки, указанной преподавателем. Ознакомьтесь с файлом справки: опция меню Help=>Help.

2. В меню программы выберите пункт Settings => Reset

3. Установите значения для колец 01 01 01 путем выбора пункта меню View=>Open Cover. В меню Settings=>Inner Settings установите следующие значения Reflector – B, Left – I, Middle – II, Right – III, Ringstellung – A-A-A (Будем считать данное положение начальным)

4. Введите на клавиатуре Энигмы сообщение ―SECRET MESSAGE‖. Какое сообщение получено на выходе?

5. Повтроите пункт 3, изменив настройки Ringstellung – A-A-A на Ringstellung – A-B-C

6. Введите на клавиатуре Энигмы сообщение ―SECRET MESSAGE‖. Какое сообщение получено на выходе? Насколько оно отличается от сообщения полученного в пункте 4?

7. Сохраните полученный в пункте 6 шифротекст при помощи опции меню File=>Save CT as

8. Создайте в корне папки с программой эмулятором файл с расширением.pln, откройте его для редактирования в блокноте и запишите в него открытый текст для шифрования.

9. В меню программы выберите опцию File=>Open Pt и выберите файл, созданный в пункте 9. Получите шифротекст из открытого текста, выбрав опцию меню Options=>Encipher Text.

10. Установите эмулятор в начальное положение. В меню программы выберите пункт Window=> Scrambler. Введите при помощи клавиатуры произвольное сообщение из 22 символов (варианты указаны в таблице 1), обращая внимание на положение колец. Введите последовательность из 22 символов еще раз. Как изменилось положение колец? Отличается ли новая зашифрованная последовательность от начальной? Почему изменилась выходная последовательность?

11. Используя окно Scrambler проследите за тем как изменяется шифротекст в зависимости от настройки положения контактных колес. Что дает возможность настройки порядка следования контактных колес?

12. В окне программы выберите опцию View=>Right

Заполните таблицу соответствия для 5 букв (варианты указаны в таблице 2) в 12 первых угловых положений правого колеса

Буквы на входе Угловые положения колеса
                       
                         
                         

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

Таблица 1.

Номера вариантов Исходный алфавит
1,5,9,13,17 QRTYU FBNAK GHERL ADLKE DS
2,6,10,14,18,22 UIERT PAEVC DSNCY OPLKD BV
3,7,11,15,19,23,27 UIFGH KLBVQ FDIIT QKJLS DB
4,8,12,16,20,24,28 LLWER TYYWV BAFDP WRTOPF JK
21,25,29,26,30 OPJHG JFDPJ GFDSK LDFHU BX

Таблица 2.

Номера вариантов Шифротекст
1,5,9,13,17 ABCDE
2,6,10,14,18,22 FGHIJK
3,7,11,15,19,23,27 LMNOP
4,8,12,16,20,24,28 QRSTU
21,25,29,26,30 VWXYZ

Таблица 3.

Номера вариантов Шифротекст
1,5,9,13,17 FQGAH WABUN NL
2,6,10,14,18,22 QIKOL RCRJS EGBSS X
3,7,11,15,19,23,27 OOKWE PRFMI M
4,8,12,16,20,24,28 KIXDI ACTHJ L
21,25,29,26,30 XLXOO EABUN NL


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: