Шифр “Енігма” був польовим шифром, використовуваним німцями під час Другої світової війни. Enigma — одна з найвідоміших в історії шифрувальних машин. Перша машина Enigma була винайдена німецьким інженером на ім’я Артур Щербиус наприкінці Першої світової війни. Вона використовувалася комерційно з початку 1920-х років і також використовувалася військовими та урядовими службами ряду країн, в тому числі Німеччиною, до і під час Другої світової війни для передачі закодованих повідомлень. Було випущено безліч різних моделей Enigma, але німецька військова модель і німецький шифр “Енігма” є найбільш відомими і обговорюваними.
Злом шифру Enigma під час Другої світової війни
Деякі історики вважають, що злом шифру “Енігма” був найважливішою перемогою союзних держав під час Другої світової війни. Машина Enigma дозволяла використовувати мільярди способів кодування повідомлень, що робило для інших країн злом німецьких кодів під час Другої світової війни неймовірно важким. Ннекоторое код час здавався невразливими. Потім Алан Тюрінг та інші дослідники використовували декілька недоліків у реалізації коду Enigma і отримали доступ до німецьких кодовою книг, що дозволило їм створити машину під назвою Bombe. Вона допомогла зламати найскладніші версії Enigma. Польща в 2007 році випустила монету на честь 75-річчя злому шифру “Енігми” — 2 злотих з північного золота. У центрі зображено герб Польщі, а по колу йде колесо-реле Enigma.
Значення злому шифру для союзників
Деякі історики вважають, що злом Enigma був єдиною найважливішою перемогою союзних держав під час Другої світової війни. Використовуючи інформацію, яку вони розшифрували у німців, союзники змогли запобігти безліч атак. Але, щоб уникнути підозр у тому, що вони спосіб дешифрування послань знайдений, союзникам довелося вирішити деякі нападу, незважаючи на те що у них були знання, щоб зупинити їх. Про це розповідається у фільмі «Гра на імітацію», що вийшов в 2014 році.
Машина “Енігма”: опис, складові частини
Машина Enigma складається з декількох частин, включаючи клавіатуру, плату, ротори та внутрішні електронні схеми. Деякі з них мають додаткові функції. Закодовані повідомлення були набором літер, які перетворювалися на зрозумілу пропозицію при розшифровці. Машини Enigma використовують форму символ узагальнення шифрування. Подстановочное шифрування — це простий спосіб кодування повідомлень, але такі коди досить легко зламати. Але машина Enigma спроектована так, що правий ротор просувається на одну позицію відразу після натискання клавіші вводу. Таким чином, шифрування букв фактично починається в той час, як ротори знаходяться в позиції, що передує AAA. Зазвичай це позиція AAZ.
Як працює шифр “Енігма”
Простим прикладом схеми шифрування заміщення є шифр Цезаря. Він полягає в зміні місця кожної букви алфавіту. Наприклад, при зсуві на 3 місця літера A займе місце G. Але шифр машини “Енігма” був, безсумнівно, набагато потужніший, ніж простий шифр Цезаря. Вони використовують форму символів шифрів, але кожен раз, коли лист зіставлялося з іншим, вся схема кодування змінювалася. Варіанти шифрів “Енігма” – на фото нижче.
Після натискання кожної кнопки ротори переміщуються і направляють струм по іншому шляху на іншу відкриту букву. Таким чином, для першого натискання клавіші генерується одна кодування, а при натисканні другої — інша. Це значно збільшує кількість можливих варіантів кодування, тому що кожен раз, коли на машині Enigma натискається клавіша, ротори обертаються, і код змінюється.
Принцип роботи машини «Енігма»
Коли натиснута клавіша на клавіатурі, один або кілька роторів переміщуються, щоб сформувати нову конфігурацію ротора, яка буде кодувати одну букву як іншу. Струм протікає через машину, і загоряється одна лампочка на платі ламп, яка показує вихідну букву. Приклад шифру “Енігми” виглядав так: якщо натиснута клавіша P, а машина Enigma кодує цю літеру A, на панелі лампи загориться A. Кожен місяць оператори Enigma отримували кодові книги, в яких вказувалося, які налаштування будуть використовувати кожен день.
Схема шифрування
Схема була аналогічна старомодною телефонної комутаційної панелі, яка має десять проводів, причому в кожному проводі два кінця, які можна підключити до гнізда. Кожен піновий провід може з’єднувати дві букви в пару шляхом підключення одного кінця проводу до слоту однієї літери, а іншого кінця — до іншої букви. Дві літери в парі будуть змінюватися, тому якщо B підключений до G, G стає B, а B стає G. Це забезпечує додатковий рівень шифрування для військових.
Кодування повідомлення
Кожен ротор машини має 2626 номерів або букв. Машина Enigma може використовувати три ротора за раз, але їх можна міняти, вибираючи з п’яти наборів, що призводить до тисячам можливих конфігурацій. Ключ до шифру “Енігма” складається з декількох елементів: ротори та їх порядок, їх початкові положення і схема зсуву. Якщо припустити, що ротори рухаються зліва направо, і потрібно зашифрувати літеру A, то коли літера А зашифрована, кожен ротор знаходиться у вихідному положенні — AAA. Оскільки ротори рухаються зліва направо, символ A спочатку пройде через третій. Кожен ротор виконує операцію заміщення. Тому після того, як символ А проходить через третій, він виходить Ст. як Тепер літера B вводиться через другий ротор, де він замінюється на J, а в першому J змінюється на Z. Після того як шифр “Енігма” проходить через всі ротори, він переходить на відбивач і проходить ще одну просту заміну.
Ключ до розшифровки повідомлень
Після виходу з відбивача повідомлення відправляється через ротори в зворотному напрямку, при цьому застосовується зворотна заміна. Після цього символ A перетвориться у U. На кожному роторі, на ободі, є алфавіт, тому оператор може задавати певну послідовність. Наприклад, оператор може повернути перший ротор, щоб відобразити D, повернути другій, щоб відобразити K, і повернути третій слот так, щоб відобразити P. При початковому наборі з трьох чисел або букв, що з’являються на машині відправника, коли він почав вводити повідомлення, отримувач може розшифрувати його, встановивши на свою ідентичну машину Enigma початкові налаштування відправника.
Недоліки способу шифрування “Енігма”
Головним мінусом шифру “Енігма” було те, що буква ніколи не могла бути закодована так, як вона є. Іншими словами, A ніколи не буде закодована як A. Це був величезний недолік у коді Enigma, тому що він дав частина інформації, яку можна було використовувати для дешифрування повідомлень. Якби дешифрувальники могли вгадати слово або фразу, які, ймовірно, з’являться в повідомленні, ця інформація допомогла б їм, щоб розгадати код. Оскільки німці завжди відправляли повідомлення про погоду на початку і зазвичай включали в кінці повідомлення фразу зі своїм традиційним привітанням, були знайдені фрази, які наблизили дешіфровщіков до розгадки.
Машина Алана Тюрінга і Гордона Уэлчмана
Алан Тьюринг і Гордон Уэлчман розробили машину під назвою Bombe, яка використовувала електричні схеми для розшифровки закодованого Enigma повідомлення не менш ніж за 20 хвилин. Машина Bombe намагалася визначити параметри роторів і схеми машини Enigma, використовувані для відправки заданого кодованого повідомлення. Стандартна машина British Bombe була по суті 36 машинами Enigma, з’єднаними разом. Таким чином, вона змоделювала відразу кілька машин Enigma.
Як виглядала машина Bombe
Більшість машин Enigma мали три ротора, і кожен з симуляторів Enigma Bombe мав три барабана, по одному для кожного ротора. Барабани “Бомби” були закодовані кольором, щоб відповідати тому ротору, який вони імітували. Барабани були влаштовані так, що верхній з трьох моделював лівий ротор Enigma, середній імітував середній ротор, а нижній – правий ротор. Для кожного повного обертання верхніх барабанів середні барабани були збільшені на одну позицію, те ж саме відбувалося з середнім і нижнім барабаном, в результаті чого загальна кількість позицій становило 17 576 позицій машини Enigma з 3 роторами.
Робота дешифровщика
Для кожної конфігурації ротора, при кожному повороті барабанів машина Bombe робила припущення про настроювання схеми, наприклад, що A підключений до Z. Якщо припущення виявлялося помилковим, машина відкидала його і більше не використовувала, і не витрачала час на перевірку будь-якого з цих пізніше. Машина Bombe сдвигала позиції ротора і вибирала нове припущення і повторює цей процес до тих пір, поки не з’явиться задовільний розташування налаштувань. Якщо машина “здогадувалася”, що підключений до Z, то розуміла, що B необхідно підключити до E, і так далі. Якщо тест не привів до протиріччя, машина зупинялася, і декодер використовував обрану конфігурацію як ключ до повідомлення.