Вразливість коду шифрувальної машини «Енігма»

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

У першому відео про "Енігму" ми лишили вас в тривожному очікуванні.
Я збирався показати вам вразливість машини "Енігма".
Це відео мало бути лише коротким підсумком минулого.
Але коли ми побачили реакцію на перше відео, то вирішили ще раз зняти машину, щоб показати вам, у чому полягала ця вразливість, і як був зламаний код "Енігми".
Якщо ви хочете переглянути перше відео, в якому показано, як працює "Енігма", переходьте за посиланням в описі.
А зараз розберімо цю вразливість.
Ось наша шифрувальна машина.
Отже.
Якщо я натисну букву К [keɪ] - ось, готово - на цей раз засвічується буква Q.
Якщо я продовжу натискати букву К, щоразу засвічуватиметься якась інша буква.
Тож подвійна буква в повідомленні не буде подвійною буквою в коді.
І це справді дуже хороший код.
Але "K" ніколи не перетворюється на "K" в коді.
Ось у чому полягала вразливість: буква ніколи не стає сама собою.
Отже, A [eɪ] - це не A [eɪ], B - це не B, Z - це не Z тощо.
У цьому й ключ.
Отже, щоб зламати код "Енігми", вам потрібно уявити повідомлення, і спробувати вгадати слово чи фразу, які можуть міститися в цьому повідомленні.
Щоранку, о 6 годині, німці надсилали метеозведення у стандартній формі.
Однаково щодня, за винятком поточної погоди.
Це завжди був стандартний формат.
Тож ми можемо підібрати слово, яке буде в цьому метеозведенні.
Можна взяти слово "метеозведення" або "Wetterbericht" ["ветабаріхт"] німецькою.
Перепрошую, якщо зачитав неправильно.
[Говорить німецькою].
Гаразд.
Я напишу "Wetterbericht" на аркуші паперу.
- Бреді: Це "метеозведення".
Так, німецькою мовою.
Тут в нас є код "Енігми".
І я збираюся зіставити свою здогадку з цим кодом.
Спробуймо знайти, де ця фраза узгоджується з кодом.
Мені відомо, що жодна буква не може стати сама собою.
Отже, це не може бути тут, тому що у мене буква "Т" [tiː] стає "Т". Тож, таке розташування нам не підходить.
Спробуймо так.
Знову не відповідає коду.
У мене знову "T" збігається "T".
Тепер... так.
Не збігається, не збігається.
Ніби не має збігів однакових літер.
Можливо, це воно.
Спробуймо далі...
Тут "R" збігаються, тому таке розташування нам не підходить.
Можливо, саме цей фрагмент і є "Метеозведення".
Тепер ми можемо почати зламувати код "Енігми", використовуючи різні фрази.
Уявіть, що відправив би німецький офіцер під час Другої світової.
Повідомлення, наприклад, може закінчуватися словами "Хайль Гітлер".
Якщо це так, у нас не повинно бути жодних збігів з "Хайль Гітлер": H, E, I, L...
Британському криптографу Алану Тюрінгу потрібно було винайти спосіб використати цю вразливість, щоб зламувати повідомлення "Енігми".
Тож він побудував величезну машину під назвою "Bombe" ("Бомб").
Цю машину розробили Алан Тюрінг та інший криптограф Гордон Велчман.
Вона була великою і постійно гучно гуркотіла.
Але "Бомб" могла допомогти вам зламати код менш ніж за 20 хвилин.
Вам потрібно буде зламувати код щоранку, оскільки щоранку налаштування для "Енігми" змінювалися.
Всі машини "Енігма" змінювали налаштування опівночі.
Ось чому машина, яка могла швидко зламати цей код, була настільки важливою.
Також в "Бомб" була відтворена робота комутатора "Енігми".
Нагадаю, що на передній частині "Енігми" є комутаційна панель, яка з'єднує літери в пари.
Вам потрібно утворити 10 пар букв.
Коли я натискаю на букву, сигнал спочатку проходить через комутатор.
Потім він проходить через перший ротор, через другий, і через третій ротор.
Потім сигнал знову проходить через всю машину у зворотному порядку.
Тобто він проходить через третій ротор, другий ротор, перший ротор.
І нарешті, він ще раз проходить через комутатор, і лиш тоді засвічує одну з цих лампочок.
Я спробую намалювати схему, і зроблю це максимально просто.
Отже, спочатку сигнал проходить через комутатор.
Потім він проходить через усі ротори.
Зобразимо їх однією великою чарівною скринькою R, від слова "ротор".
І він знову йде через комутаційну панель.
Якщо подивитися на наше слово "метеозведення": "Т" перетворюється на "Е".
Якщо натиснути "T", сигнал пройде через комутатор, через всі ротори, знову через комутатор, і ми отримаємо "E".
Ми використаємо це, щоб розібратися з комутатором.
Я зроблю одне припущення.
Воно полягає в тому, що буква "T" з'єднана з "A" на панелі комутатора.
Спробуємо ним скористатися.
Скажімо, це означає, що "T" проходить через панель, і на виході маємо "А".
Тепер "A" проходить через ротори.
Нам відомо, як під'єднані ротори.
Ми просто це знаємо.
Обираємо позицію і з’ясовуємо, що відбувається з "А".
Це не важко зробити.
Я не знаю, давайте щось вигадаємо.
Скажімо, на виході з роторів у нас "P".
Але якщо я це зроблю, то зможу зробити висновок, що "P" проходить через комутатор і перетворюється на "E".
А це своєю чергою означає, що я можу підсумувати, що "P" під'єднана до "E" на панелі.
І це чудово, оскільки ми відтворили одне з налаштувань комутатора.
Якщо ця схема працює, то "P" необхідно під'єднати до "E".
Я проробив це кілька разів, застосовуючи той самий метод з буквою, і виявив іще кілька налаштувань комутатора.
Першим виявленим налаштуванням було "P-E".
Щойно ми знайшли "K-Q".
Також з'ясувалося, що X і B з'єднані між собою.
І, нарешті, що T і G з'єднані на комутаційній панелі.
Але остання пара - це проблема.
Я виявив, що T і G повинні бути з'єднані.
Але раніше я припустив що Т і а [акцент] повинні бути з'єднані.
Обидва варіанти не можуть існувати одночасно.
Маємо суперечність.
Не можуть пари "T-" і "T-G" існувати одночасно.
Це означає, що моє припущення щодо пари "T-A" було помилковим.
Відкинемо його, адже воно хибне.
Зробимо інше припущення.
Але яке?
Може, "T-B"?
Я можу перевірити "T-C", "T-D".
І так - всі 26 варіантів: T-A, T-B, T-D,.. T-Z.
І якщо всі 26 варіантів помилкові, то це означає, що обрана позиція ротора неправильна.
І все, що вам потрібно, - це "клац": ви переводите ротор в наступну позицію і повторюєте усю послідовність дій.
На це потрібно багато часу.
Тож Алан Тюрінг придумав два способи зробити це трохи швидше.
Перший - досить розумна ідея.
Суть ідеї Тюрінга - в наступному: якщо ви знайшли одну помилку, наприклад, "T-A" і "T-G", це означає, що всі ці інші проміжні результати також хибні, і їх не потрібно перевіряти знову.
Усі вони є плодами отруйного дерева, їх можна просто відкинути.
І нам не доведеться їх перевіряти ще раз.
Тож, це дійсно пришвидшує процес.
Інший спосіб заощадити час - зробити ці дії майже миттєво за допомогою електричних кіл.
І це те, що робила машина "Bombe".
Вона за допомогою електричного струму втілювала моє припущення, "T-A".
Електричний струм протікає через машину.
Він тече через "T-G", що означає "неправильно".
Але всі проміжні результати також будуть отримані, тож можна їх позначити як неправильні, і зробити це миттєво за допомогою електричних схем.
А потім вона зробить "клац", і перевірить наступний.
І "Бомб" могла пройти усі позиції роторів приблизно за 20 хвилин
Важливо пам’ятати, що машина "Bombe" була побудована у зворотному порядку.
Це процес виключення хибних варіантів.
В підсумку лишається те, що не було неправильним.
І далі ви перевіряєте це вручну.
Машина "Bombe" була названа так на честь польського апарата для розшифрування коду "Криптологічна бомба".
"Бомба" була інакшою машиною, і працювала за зовсім іншим принципом.
Розміри "Бомби" дозволяли поставити її на столі.
Вона експлуатувала ненадійну процедуру подвоєння ключа.
Поляки могли використовувати "Бомбу", щоб зламувати код "Енігми" для наземних військ та ВПС, але не військово-морських сил.
Алан Тюрінг повинен був винайти спосіб зламати код "Енігми" усіх видів німецьких військ.
І цей спосіб повинен був бути дієздатним, навіть якби німці вирішили змінити процедуру генерації ключів.
Те, що у ВМС робили інакше, - то це те, що позиції роторів надсилалися на початку кожного повідомлення, але в зовсім іншому коді.
Тож це був зовсім інший код, аби просто надіслати позиції роторів.
І вам потрібно було спочатку розшифрувати цей код, щоб з’ясувати позиції роторів, перш ніж почати зламувати закодоване повідомлення ВМС.
- Чи могли виробники "Енігми" щось зробити, щоб уникнути цієї проблеми?
- Чи можна було зробити або додати щось просте в цю машину, щоб її код не можна було зламати?
Ну, бути мудрим по шкоді - це, звісно, добре.
Їм потрібно було зробити так, щоб літера могла ставати сама собою.
Британці побачили "Енігму": "О, це чудова ідея. Зробимо й собі".
І вони вкрали цю ідею.
Ми вивчили "Енігму", і вирішили зробити свою.
Ми назвали цю машину "Typex" [Тайпекс], і позбавили її вразливості "Енігми".
Тож буква іноді могла ставати сама собою.
Це зробило "Тайпекс" безпечнішою машиною.
Я чув, що німці намагалися зламати код "Тайпекса".
Але вони дійшли висновку, що наш код стійкіший, ніж код "Енігми".
Принаймні, це те, що я чув.
Про це дуже важко дізнатися напевне через високий рівень секретності.

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