Як працює шифрувальна машина «Енігма»

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

Це дуже захоплива історія, тому що вона показує, як математики змогли врятувати багато життів.
Ми розповімо про одну з найвідоміших шифрувальних машин в історії.
Ця машина під назвою "Енігма" використовувалася нацистською Німеччиною під час Другої Світової Війни для шифрування секретних повідомлень.
І у нас тут є одна з них.
Це не копія.
Це не репліка.
Це оригінальна "Енігма", яку використовували в роки Другої світової.
Вона виготовлена ​​у 1936 (тисяча дев'ятсот тридцять шостому) році, і це військова "Енігма".
Вона належить людині на ім'я Саймон Сінгх.
Він письменник, автор науково-популярних книг.
Саймон позичив цю машину кембридзькому Університету, де я і працюю.
Вважається, що цю "Енігму" знайшов один американський криптограф у Франції, вже після війни, і забрав її додому.
Думаю, він узяв її як сувенір: "Так, це моє". :)
Цей чоловік, який знайшов її, помер 12 років тому.
Саме тоді Саймон і купив цю машину.
Відправмо повідомлення.
І ми надішлемо слово "Numberphile".
Перетворімо його на код Енігми.
Отже, почнемо.
Я натисну клавішу N.
І, як ви бачите, засвічується літера Y [waɪ].
Тож N перетворюється на Y.
Ваш код підсвічується.
Запишемо.
Візьмімо наступну букву, U [juː].
U перетворюється на T [tiː].
Тепер натиснемо M.
Цього разу вийшла H [eɪtʃ].
B [b]... ... E стала W (double-u).
Зауважте, що літера Y з'явилася двічі.
І вона відповідає двом різним символам.
N перетворилася на Y, а потім E перетворилася на Y.
І це дивно.
Ще одне незвичайне спостереження: дві літери E в нашому слові перетворилися на дві різні літери.
Ця E стала літерою Y, а ця E перетворилася на W.
Ось чому німці вважали цей код незламним.
Більш ранні шифри, що записувалися на папері, однакові літери в початковому тексті перетворювалися на однакові літери в зашифрованому тексті.
"Енігма" працює по-іншому.
Найімовірніше, при кожному використанні ви отримуватимете різний код.
Якщо ми зможемо зламати цей код...
Під "нами" я маю на увазі Польщу, Британію та США...
Якщо ми зможемо зламати цей код, то зможемо читати секретні німецькі повідомлення.
Саме це, власне, ми й зробили.
Я покажу вам, як працює ця машина.
Відкриймо її.
Отже, вгорі у нас є три штуки, які називаються роторами.
Всередині цих роторів багато провідників.
І всі вони перехресно з'єднані.
Тепер, коли я натискаю на літеру - погляньте - ротори рухаються.
Коли цей ротор зробить повний оберт, то поверне наступний ротор на одну поділку.
Потім правий ротор продовжує рухатися.
І коли середній ротор зробить повний оберт, він змістить третій ротор на одну поділку.
Отже, є швидкий, середній і повільний ротори.
Це нагадує стрілки годинника: секундну, хвилинну і годинну стрілки.
У цьому вся суть.
Чудова машина, хоча, по суті, це всього лиш набір електричних кіл.
Ось батарейки.
Це сучасні батарейки.
Ми трохи модифікували машину.
Вони під'єднуються до лампочки, яка починає світитися.
Це найпростіше, що можна зробити: батарейка і лампочка.
Ось і все.
Хитрість полягає в тому, як саме провідники з'єднані всередині роторів.
Коли схема під'єднання батарейки змінюється, засвічується інша лампочка.
Подивімося, як це відбувається.
Я змінюю розташування контактів, і батарейка з'єднується з цією [показує] лампочкою.
Роблю це ще раз, схема змінилася, і батарейка з'єднується вже з цією лампочкою.
Все змінилося.
Повторимо натискання, і батарейка з'єднується з цією лампочкою.
Щоразу засвічується інша лампочка.
Це через те, що тут є рухомі частини.
Але по суті, це всього лиш просте електричне коло.
Тепер нам потрібно це розшифрувати.
Було б погано, якби повідомлення не можна було розшифрувати.
Перш ніж вводити код, нам потрібно знати, які налаштування мала машина.
Зверніть увагу: тут три маленькі віконця, і в них три числа.
Це ніби кодовий замок для велосипеда.
Я записав ці три числа, які були встановлені.
Цими трьома числами, коли ми почали вводити "Numberphile", були 13, 9 і 21.
Суть полягає в тому, що ми вводимо повідомлення, і отримуємо код.
Сама машина не передає повідомлень, тож вам потрібно було записати код на аркуші паперу,
а тоді віддати цей код на аркуші радисту, який вже передає його по радіо за допомогою азбуки Морзе.
Код надсилався.
А тепер уявіть іншого німецького офіцера, наприклад, на кораблі, десь в океані.
Він налаштовується на цей радіосигнал.
Він на слух сприймає код, записує його.
В цього другого офіцера теж є "Енігма".
І його "Енігма" ідентична тій машині, яку використовував перший офіцер.
Тепер мені потрібно дещо зробити.
Я повинен встановити ці ротори в правильні позиції.
Отож, у нас є код, YTHMY і так далі.
Введімо його в нашу машину, і погляньмо, що вийде.
Гаразд.
Почнемо з Y.
Y перетворюється на N.
Т перетворюється на U.
H перетворюється на M.
M в коді стає B.
Y.
I. ... F.
І, нарешті, W стає літерою E.
Кожен ротор має 26 стартових позицій.
Кожен ротор можна витягнути й замінити іншим.
У них була коробка з п'ятьма роторами, з яких можна було обирати.
Офіцер брав три ротори з п'яти доступних.
І у нас вже є тисячі різних варіантів початкового налаштування.
І кожен з них даватиме свій код.
Спробуймо порахувати ці варіанти.
Спочатку нам потрібно обрати три ротори з п'яти.
У першому місці може бути встановлений будь-який з п'яти роторів.
Отже, для другого місця нам доведеться обирати один ротор з чотирьох, що лишилися.
І для третього місця у нас лишається три ротори.
Перемножимо ці числа.
П'ять множимо на чотири й на три.
Отже, існує 60 варіантів встановлення трьох з п'яти роторів у три місця для них.
Для кожного ротора є 26 стартових позицій.
Тобто 26 варіантів для першого, 26 для другого, і стільки ж для третього.
Ми отримаємо 26³ (в кубі), тобто 17 576 (сімнадцять тисяч п'ятсот сімдесят шість).
Ба більше: у вояків наземних військ, льотчиків та моряків було дещо додаткове.
Існували комерційні машини, які могли придбати бізнесмени або банки, щоб передавати таємні повідомлення.
Але у військових був додатковий елемент: ось ця річ на передній частині.
Це називається комутаційною панеллю, яка нагадує старий телефонний комутатор.
У нас є 10 таких з'єднувачів.
І кожен з них може з'єднувати дві літери в пару.
Тут ми можемо побачити, що літера Q з'єднується з літерою E.
І ви робите 10 таких пар.
Дві букви в парі будуть взаємно замінятися.
Тобто, якщо Q з'єднана з E, то Q та E взаємно замінюватимуться.
Цей додатковий рівень шифрування був доступний лише військовим.
І це дає найбільшу кількість комбінацій.
Це обчислення буде найскладнішим, але ми зможемо його зробити.
Отже, в абетці 26 (двадцять шість) букв.
Скількома способами їх можна впорядкувати?
Потрібно 26 помножити на 25, і так далі аж до одиниці.
Це 26! (факторіал двадцяти шести).
Але нам не потрібні всі комбінації 26 (двадцяти шести) літер.
Нам потрібні лише 10 пар.
Тобто 6 літер залишаться незадіяними.
А якщо вони нам не потрібні, ми можемо поділити на 6! (факторіал шести).
Гаразд, у нас є десять пар.
І нам не важливо, в якому порядку розташувати ці пари.
Тож ми можемо поділити все на 10! (факторіал десяти).
І, врешті, ми можемо поділити результат на кількість букв в одній парі.
Адже якщо я поміняю їх місцями, це все одно буде та сама пара.
Якби в мене була пара А з В, то це та сама пара, що й В з А.
Отже, я можу поділити на 2 (два) для кожної пари.
Але пар у нас десять, тому потрібно ділити на 2 (два) десять разів.
Тобто на 2¹⁰ (два в десятому степені).
Ось [показує] скільки існує способів з'єднати 20 літер у 10 пар на передній панелі машини.
Наскільки велике це число?
150 трильйонів ... 738 мільярдів ... 274 мільйони ... 937 тисяч ... 250.
І загалом: 158 квінтильйонів 962 квадрильйони 555 трильйонів 217 мільярдів 826 мільйонів і 360 тисяч.
Це загальна кількість варіантів налаштувань "Енігми", військової "Енігми" 1939 (тисяча дев'ятсот тридцять дев'ятого) року.
- Тобто німці надсилали один одному повідомлення на кшталт "Numberphile" або ...
Так, постійно.
- Або координати підводного човна чи щось подібне?
Так
- Але як вони повідомляли один одному налаштування комутатора і стартові позиції роторів?
Це дуже важливо.
Отже, у двох людей на великій відстані повинні бути однакові налаштування, які записувалися на аркуші паперу.
Їм потрібно було мати ось такі таблиці.
І це був великий аркуш: для кожного дня місяця.
Тобто в них були щомісячні таблиці.
Щодня їм повідомлялося, як налаштувати машину на цей день.
Якби у вас не було такої таблиці, то ви не могли б дізнатися, які налаштування потрібно було використовувати в цей день.
Цікаво, що у ВМС ці таблиці з налаштуваннями писалися розчинними чорнилами.
Тож, якби ви потонули, або вас піймали, ви могли б викинути цей аркуш книгу у воду.
- Мені здається, що маючи "Енігму" і копію такої таблиці, ви зможете читати все, що вони передають.
Так, правильно.
Якщо у вас є машина і таблиця з інструкціями, то ви можете розшифрувати всі повідомлення.
Гаразд, чудово.
І у нас була машина.
А маючи машину, ми можемо розібрати її, і зрозуміти, як вона працює.
Чудово.
Але отримати ці таблиці з налаштуваннями було складно.
Вони змінювалися щомісяця.
Якщо захопити такий аркуш, (що іноді траплялось), його можна було використовувати до завершення терміну.
Але без цієї таблиці вам потрібно буде зламувати код, і робити це за допомогою математики.
- У чому секрет? Що не так було з "Енігмою"? В чому була її вразливість?
Погляньмо, в чому полягала вразливість Енігми.
Німці вважали, що її неможливо зламати.
Якщо натиснути на літеру K [keɪ] ...

[ Продовження у наступному відео ]

Автор: Цікава наука
ОСТАННІ КОМЕНТАРІ