Енігма (автомат)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Трироторна військова німецька шифрувальна машина Енігма (версія з мітками)
Конструкція роторів машини Енігма

Ені́гма (англ. Enigma) — шифрувальна машина часів Другої світової війни.

Енігма — типовий представник класу так званих дискових шифрувальних машин, оскільки основою її механізму є диски з 26-ма перепайками. Перші згадки про Енігму відносяться до 1918 року.

Використовувалася для шифрування і дешифрування секретних повідомлень. Точніше, Енігма — це ціла родина електромеханічних роторних машин, що застосовувалися з 20-х років XX століття.

Енігма використовувалася в комерційних цілях, а також у військових і державних службах в багатьох країнах світу, але найбільшого поширення набула в нацистській Німеччині під час Другої світової війни. Найчастіше згадується саме Енігма вермахту (Wehrmacht Enigma) — німецька військова модель. У грудні 1932 польські шифрувальники вперше зламали німецькі військові шифри Енігми[1]. Ця машина отримала погану славу, тому що криптоаналітики антигітлерівської коаліції могли розшифрувати велику кількість повідомлень, зашифрованих з її допомогою. Спеціально для цих цілей була створена машина з кодовою назвою «Бомба», що надала значну перевагу антигітлерівській коаліції у війні. Уся інформація, отримана криптоаналізом з її допомогою, мала кодову назву ULTRA.

Хоча з точки зору криптографії шифр Енігми був слабкий, на практиці тільки поєднання цього чинника з іншими, такими як помилки операторів, процедурні вади, припущення про текст повідомлень (наприклад при передачі метеозведень) і захоплення екземплярів Енігми і шифрувальних книг, дозволило розгадувати шифри і читати повідомлення.

Опис[ред. | ред. код]

Електрична схема Енігми, яка показує, куди йде струм, коли буква «A» шифрується буквою «D»
Шифрувальна дія Енігми показана для двох послідовно натиснутих клавіш — струм проходить через ротори, «відбивається» від рефлектора, потім знову через ротори.
Примітка: Сірими лініями показано інші можливі електричні кола всередині кожного ротора. Буква A шифрується по-різному при послідовних натисканнях однієї клавіші, спочатку в G, потім в C. Сигнал пішов іншим маршрутом завдяки повороту ротора.

Як й інші роторні машини, Енігма складалася з комбінації механічних і електричних систем. Механічна частина включала клавіатуру, набір обертових дисків (роторів), які були розташовані уздовж валу і прилягали до нього, і ступінчастого механізму, який рухав один або більше роторів при кожному натисненні клавіші. Конкретний механізм роботи міг відрізнятися, але загальний принцип був такий: при кожному натисненні клавіші крайній справа ротор зміщується на одну позицію, а за певних умов зміщуються й інші ротори. Рух роторів призводить до різних криптографічних перетворень при кожному наступному натисненні клавіші на клавіатурі.

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

Наприклад, при шифруванні повідомлення, що починається з ANX, оператор спочатку натискав кнопку A, і спалахувала лампочка Z, тобто Z ставала першою буквою криптограми. Потім оператор так само шифрував N і так далі.

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

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

Ротори[ред. | ред. код]

Лівий бік ротора Енігми, видно плоскі електричні контакти.
Правий бік ротора, видно штиреві контакти. Римська V ідентифікує електропроводку ротора.

Ротори — це серце Енігми. Кожен ротор був диском приблизно 10 см в діаметрі, зроблений з твердої гуми або бакеліту, з пружинними штиревими контактами на одній стороні ротора, розташованими по колу. На іншій стороні знаходилася відповідна кількість плоских електричних контактів. Штиреві і плоскі контакти відповідали буквам в алфавіті, зазвичай це були 26 букв від A до Z. При зіткненні контакти сусідніх роторів замикали електричне коло. Усередині ротора кожен штиревий контакт був сполучений з одним з плоских. Порядок з'єднання міг бути різним.

Сам по собі ротор виробляв дуже простий тип шифрування: елементарний шифр заміни. Наприклад, контакт, що відповідає за букву E, міг бути сполучений з контактом букви T на іншій стороні ротора. Але при використанні кількох роторів у зв'язці (зазвичай трьох або чотирьох) завдяки їх постійному руху виходить надійніше шифрування.

Військові моделі Енігми випускалися з різною кількістю роторів. Перша модель містила лише три, 15 грудня 1938 року їх стало п'ять, але тільки три з них одночасно використовувалися в машині. Ці типи роторів були позначені римськими числами від I до V, і у кожного була одна виїмка, розташована в різних місцях алфавітного кільця. У військово-морських моделях завжди було більше роторів, ніж в інших: шість, сім або вісім. Ці додаткові ротори позначалися числами VI, VII і VIII, всі з різною електропроводкою. Усі вони містили по дві виїмки біля букв «N» і «A», що забезпечувало частіші повороти роторів.

Чотирироторна військово-морська модель Енігми, M4 мала один додатковий ротор, хоча була такого ж розміру, як і трироторна, завдяки тоншому рефлектору. Існували два типи цього ротора: Бета і Гамма. В процесі шифрування він не рухався, але міг бути встановлений вручну на будь-яку з 26 різних позицій.

Ротори I — V Енігми:

        A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
I       E K M F L G D Q V Z N T O W Y H X U S P A I B R C J
II      A J D K S I R U X B L H W T M C Q G Z N P Y F V O E
III     B D F H J L C P R T X V Z N Y E I W G A K M U S Q O
IV      E S O V P Z J A Y Q U I R H X L N F T G K D C M W B
V       V Z B R G I T Y U P S D N H L X A W M J Q O F E C K

Ротори VI — VIII, Beta та Gamma

         A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
VI       J P G V O U M F Y Q B E N H Z R D K A S X L I C T W
VII      N Z J H G R C X M Y S W B O U F A I V L P E K Q D T
VIII     F K Q H T L X O C B J S P D Z R A M E W N I U Y G V
Beta     L E Y J V C N I X W P B Q M D R T A K Z G F U H O S
Gamma    F S O K A N U E R H M B T I Y C W L Q P Z X V G J D

Ступінчастий рух роторів[ред. | ред. код]

Штекери Енігми.

Кожен ротор був прикріплений до шестерні з 26 зубцями (храповика), а група собачок зачіпляла зубці шестерень. Собачки висувалися вперед одночасно з натисненням клавіші на машині. Якщо собачка чіпляла зубець шестерні, то ротор обертався на один крок. В армійській моделі Енігми кожен ротор був прикріплений до регульованого кільця з виїмками. П'ять базових роторів (I — V) мали по одній виїмці, тоді як у військово-морській моделі (VI — VIII) — по дві. У певний момент виїмка потрапляла навпроти собачки, дозволяючи їй зачепити храповик наступного ротора при наступному натисненні клавіші. Коли ж собачка не потрапляла у виїмку, вона просто прослизала по поверхні кільця, не чіпляючи шестерні. У системі з однією виїмкою другий ротор просувався вперед на одну позицію за той же час, за який перший — на 26. Аналогічно, третій ротор просувався на один крок за той самий час, за який другий робив 26 кроків. Особливістю машини було те, що другий ротор також обертався, якщо обертався третій. Це означає, що другий ротор міг обернутися двічі при двох послідовних натисненнях клавіш — так званий «двокроковий рух», що призводило до зменшення періоду.

Двокроковий рух відрізняє функціонування роторів від нормального одометра. Подвійний крок реалізовувався таким чином: перший ротор обертався, примушуючи другий також обернутися на один крок. І, якщо другий ротор просунувся в потрібну позицію, то третя собачка зачіпляла третю шестерню. На наступному кроці ця собачка штовхала шестерню і просувала її, а також просувала і другий ротор. З трьома дисками і тільки з однією виїмкою в першому і другому диску машина мала період 26x25x26 = 16 900. Як правило, повідомлення не перевищували декількох сотень символів, отже, не було ризику повтору позиції роторів при написанні одного повідомлення. У чотирироторних військово-морських моделях ніяких змін в механізм внесено не було. Собачок було тільки три, тобто четвертий ротор ніколи не рухався, але міг бути вручну встановлений на одну з 26 позицій. При натисненні клавіші, ротори оберталися до замикання електричного кола.

Див. також[ред. | ред. код]

Література[ред. | ред. код]

  • Бауэр Ф. Расшифрованные секреты. — М. : Мир, 2007. — 550 с.
  • Жельников В. Криптография от папируса до компьютера. — М. : ABF, 1996. — 336 с.
  • Корн Г., Корн Т. Справочник по математике. — М. : Наука, 1973. — 832 с.
  • Смарт Н. Криптография. — М. : Техносфера, 2005. — 528 с.
  • Шнайер Б. Прикладная криптография. — М. : Триумф, 2002. — 816 с.
  • Hamer, David H.; Sullivan, Geoff; Weierud, Frode (July 1998). Enigma Variations: an Extended Family of Machines, Cryptologia, 22(3). Online version (zipped PDF). (англ.)
  • Stripp, Alan. The Enigma Machine: Its Mechanism and Use // in Hinsley, F. H.; and Stripp, Alan (editors), Codebreakers: The Inside Story of Bletchley Park (1993), pp. 83-88. (англ.)
  • Kahn, David (1991). Seizing the Enigma: The Race to Break the German U-Boats Codes, 1939–1943. ISBN 0-395-42739-8. (англ.)
  • Kozaczuk, Wladyslaw. The origins of the Enigma/ULTRA (англ.)
  • Kruh, Louis; Deavours, Cipher (2002). The Commercial Enigma: Beginnings of Machine Cryptography, Cryptologia, 26(1), pp. 1-16. Online version (PDF) (англ.)
  • Marks, Philip; Weierud, Frode (January 2000). Recovering the Wiring of Enigma's Umkehrwalze A, Cryptologia 24(1), pp. 55-66. (англ.)
  • Smith, Michael (1998). Station X (Macmillan) ISBN 0-7522-7148-2 (англ.)
  • Ulbricht, Heinz. Die Chiffriermaschine Enigma — Trügerische Sicherheit: Ein Beitrag zur Geschichte der Nachrichtendienste, PhD Thesis, 2005. Online version. (нем.)

Примітки[ред. | ред. код]