Криптоаналіз «Enigma» — криптоаналіз німецької шифрувальної машини «Enigma» під час Другої світової війни, здійснений силами польських та британських спецслужб. Розшифровка повідомлень внесла помітний внесок у поразку нацистської Німеччини.
Поява «Enigma» Історія електричної роторної шифрувальної машини «Enigma» починається в 1917 році з патенту, отриманого голландцем Хьюго Кочем. В наступному році патент був перекуплений Артуром Шербіусом, котрий розпочав комерційну діяльність з продажу примірників машини як приватним особам, так і німецьким армії і флотуЛеонид Черняк Тайны проекта Ultra . До середини 1920-х років продажі йшли погано, зокрема, через високі ціни.
У червні 1924 року британська криптографічна служба (Room 40) зацікавилася будовою машини. З цією метою була закуплена партія машин у німецької компанії Chiffrier-maschinen AG, яка виробляла «Enigma». Однією з умов угоди було реєстрація патенту в британському патентному бюро, завдяки чому криптографічна служба отримала доступ до опису криптографічної схеми.
Починаючи з 1925 року, коли німецькі військові почали масові закупівлі шифрувальної машини, і до кінця Другої світової війни було виготовлено близько 200 тисяч машин. З 1926 року на використання машини переходить німецький флот, з 1928 року — сухопутні війська. Вони застосовувалися також у службі безпеки та розвідки.
Польський етап Перші перехоплення повідомлень, зашифрованих за допомогою «Enigma», відносяться до 1926 року. Однак прочитати їх довгий час не могли. У січні 1929 року коробка з комерційним варіантом «Enigma» випадково потрапила на варшавську митницю. Німеччина попросила повернути коробку, після чого її вмістом зацікавилися поляки.
За дорученням польського «Бюро шифрів» машина була вивчена фахівцями фірми «AVA», в тому числі її керівником, криптоаналітиком Антонієм Пальтхом, після чого коробку відправили в німецьке посольство. Вивчення машини не дозволило дешифрувати повідомлення, до того ж німецькі військові використовували свій, посилений варіант «Enigma».
У 1928-29 роках у Польщі були організовані перші математичні курси з криптографії. Слухачами були два десятки студентів-математиків зі знанням німецької мови. Троє з слухачів — Маріан Реєвський, Генріх Зигальський і Єжи Рожицький — пішли на службу в «Бюро шифрів». Згодом саме вони отримають перші результати щодо розкриття коду «Енігми». У 1931 році співробітник шифрбюро міністерства оборони Німеччини Ганс-Тіло Шмідт, який став уже агентом «Аше», почав передавати французькій розвідці коди, котрі вийшли з ужитку, які, згідно службових обов'язків, йому було потрібно знищувати, а також передав інструкцію з використання військового варіанту «Enigma». Серед причин, що спонукали Ганса-Тіло зробити це, були і матеріальна винагорода, і образа на рідну країну, яка не оцінила його успіхи під час Першої світової війни, а також заздрість армійській кар'єрі свого брата Рудольфа Шмідта.
Першими двома документами стали «Gebrauchsanweisung für die Chiffriermaschine Enigma»Gebrauchsanweisung für die Chiffriermaschine Enigma (нім.) та «Schlüsselanleitung für die Chiffriermaschine Enigma»Schlüsselanleitung für die Chiffriermaschine Enigma (нім.). Французька та англійська розвідки, однак, не проявили інтересу до отриманих даних — можливо тому, що вважалося, що розкрити шифр «Enigma» неможливо. Полковник французької розвідки Гюстав Бертран передав матеріали польському «Бюро шифрів» і продовжував передавати їм подальшу інформацію від агента до осені 1939 року.
Завдяки отриманим документам, криптоаналітики знали, що для шифрування повідомлення оператор машини повинен був обрати з кодової книги так званий денний ключ, який складався з:
налаштувань комутаційної панелі; () порядку встановлення роторів; () положень кілець; () початкових установок роторів. ()
Однак оператор не повинен був використовувати денний ключ для шифрування повідомлень. Замість цього оператор придумував новий ключ з трьох букв () і двічі шифрував його з використанням денного ключа. Після чого налаштування роторів змінювалися у відповідності з придуманим ключем і вироблялося шифрування повідомлення.
У грудні 1932 року Реєвський отримав кодові книги з денними ключами для вересня і жовтня 1932 року. Дані матеріали дозволили відновити внутрішню електропроводку роторів і побудувати військовий варіант «Enigma» (комерційний варіант вже був, але він мав іншу електропроводку роторів). Більше ні він, ні його колеги не мали доступу до кодовою книг, хоча агент «Аше» їх успішно постачав. Ймовірно, це було викликано тим, що начальство хотіло змусити криптоаналітиків зуміти знайти денної ключ без кодових книг, щоб підготуватися до того моменту, коли агент більше не зможе їх постачати.
Зусилля Маріана зосередилися на аналізі місця протоколу обміну повідомленнями, а саме — на повторенні ключа повідомлення. З щоденних повідомлень вибиралися перші шість літер і на їх основі складалася таблиця відповідності (приклади взяті з книги Сінгха): Повідомлення 1 L O K R G M … Повідомлення 2 M V T X Z E … Повідомлення 3 J K T M P E … Повідомлення 4 D V Y P Z X … 1-ша буква 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 4-ша буква P M R X Якщо повідомлень було достатньо, то таблиця заповнювалася повністю. 1-ша буква 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 4-ша буква F Q H P L W O G B M V R X U Y C Z I T N J E A S D K Особливість повного варіанту таблиці полягала в тому, що поки денний ключ залишається без змін, вміст таблиці також не змінюється. І, з більшою мірою ймовірності, і навпаки. Можна було б скласти каталог таблиць… проте їх кількість дорівнює 26!, що робить цю роботу неможливою в осяжний час. Реєвський став намагатися виділити з таблиць деякі шаблони або знайти деякі структурні закономірності. І це йому вдалося. Він став розглядати ланцюжки літер наступного вигляду: 1-ша буква 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 A → F → W → A ↓ ↓ ↓ 4-ша буква F Q H P L W O G B M V R X U Y C Z I T N J E A S D K У прикладі повної таблиці вище таких ланцюжків виявилося 4:
A → F → W → A B → Q → Z → K → V → E → L → R → I → B C → H → G → O → Y → D → P → C J → M → X → S → T → N → U → J
Наступним відкриттям Маріана стало те, що хоча конкретні літери залежали від денного налаштування «Enigma» повністю, кількість ланцюжків і букв у них задавалася тільки налаштуваннями роторів. Так як кількість роторів була 3 (але вони могли стояти в будь-якому порядку), а початкова настройка складалася з трьох літер латинського алфавіту, то число варіантів дорівнювало . Це було значно менше ніж , що дозволило, використовуючи побудовані (або викрадені) машини «Enigma» скласти каталог, що містить всі можливі ланцюжки. Дана робота зайняла майже рік, однак результатом стала можливість читати німецьке листування.
Як зазначає Сингх, саме можливість розділити задачу на дві складових (настройки роторів і настройки комутаційної панелі) дозволили Реєвському впоратися з цим завданням, а також допомога як математиків «Бюро шифрів», так і Шмідта:
Документи Аше стали манною небесною — всі двері в той же момент відчинилися.
Після того, як налаштування роторів для денного повідомлення були відновлені, залишалося з'ясувати налаштування комутаційної панелі. З криптографічної точки зору це був простий шифр заміни додатково обмежений лише 6 парами замін букв. Текст часто навіть не потрібно піддавати частотному криптоаналізу, а лише придивитися до рядків на зразок «alliveinbelrin» ( із заміною R ↔ L) та іншим, які було легко відновити «на око».
У 1934 році Німеччина почала змінювати конфігурацію положення роторів кожен місяць замість кожного кварталу. У відповідь на це Маріан Реєвський спроектував пристрій під назвою «циклометр», що дозволяє швидко відтворити каталог циклів.
15 вересня 1938 року Німеччина змінила процедуру шифрування, зробивши неможливим використання каталогів, складених з використанням циклометра. Польські криптографи були змушені шукати інші методи для розшифровки. Такими стали використання машин bombe і перфорованих аркушів Зигальського.
15 грудня 1938 року Німеччина додала 4-й і 5-й ротори, а 1 січня 1939 року збільшила кількість з'єднань комутаційної панелі з 6 до 10. Все це значно ускладнило криптоаналіз «Enigma».
Влітку 1939 року, коли неминучість вторгнення в Польщу стала очевидна, бюро передало результати своєї роботи англійській і французькій розвідкам. Хоча польські математики так і не змогли розкрити шифр, серед результатів були і живі екземпляри машини, і електромеханічна «Bombe», що складалася з двох спарених «Enigma» та допомагала у розшифровці, а також використовувала унікальні методики криптоаналізу.
PC Bruno
Британський етап
Подальша робота по злому «Enigma» проходила в секретному центрі британської розвідки «Station X», відомого згодом як Блечлі-Парк.
Кадри Керівником проекту був призначений ветеран військової розвідки Алістер Денністон. Роботу по дешифровці очолив колега Денністона по кімнаті № 40, відомий лінгвіст і криптоаналітик Альфред Нокс («Dilly» Knox). За загальну організацію роботи відповідав професор-математик Гордон Уелчман. Денністон почав набирати штат криптоаналітиків за принципом розумових здібностей: лінгвістів, математиків, шахістів, чемпіонів за рішенням кросвордів, єгиптологів і навіть палеонтологівТраплялися й помилки: серед запрошених у проект виявився біолог капітан-лейтенант Джеффрі Танді — фахівець по криптогамам. Зокрема, одним з перших був прийнятий відомий шаховий майстер Стюарт Мілнер-Беррі (Stuart Milner-Barry). Серед математиків був і молодий професор логіки з Кембриджу — Алан ТюрінгМакс Ньюман, Том Флауерс та інші фахівці потрапили до Блетчлі-парку пізніше у зв'язку з роботою над шифром «Танні».
Метод Перехоплення радіоповідомлень противника виконували десятки приймальних станцій, що мали кодову назву «Y-station». Щодня в Блетчлі-парк надходили тисячі таких повідомлень. Блетчлі-парк мав у своєму розпорядженні точну копію «Enigma», тому розшифровка повідомлень зводилася до підбору установки дисків, для більш пізніх моделей, — штекерного комутатора.
Складність завдання ускладнювалася тим, що встановлення роторів змінювалися щодня, тому служби дешифрування працювали цілодобово у три зміниШифром «Енігми» користувалися не лише армія, авіація та флот, а й військова розвідка (Abwehr), залізниця та інші служби. Усі вони застосовували власні установки роторів.
Конструкція «Enigma» при правильному використанні забезпечувала практично повну секретністьСуттєвим недоліком конструкції була неможливість кодування будь-якої літери тією самою літерою. Ця особливість «Енігми» була використана при дешифруванні. На практиці, однак, з боку німецьких користувачів «Енігми» найчастіше допускалися недбалі дії, які давали підказки британським аналітикам (такі підказки на сленгу англійських студентів називалися cribs). Саме на використанні і систематизації таких похибок і був заснований метод дешифрування.
Підказками служили будь-які тексти, які часто повторюються, такі як привітання, цифри (кодувалися за вимовою: «один», «два» і т. д.Тюрінг зауважив, що цифра «один» () зустрічається в 90 % повідомлень. На цій основі було побудовано особливий метод дешифрування — «eins-алгоритм». Як crib використовувалося навіть привітання Heil Hitler і грубі лайки, що особливо тішило численний жіночий персонал Блетчлі-парку). Всі підказки заносилися в картотеку (Index) разом з контекстом: почерком радиста, місцем і часом передачі і т. ін.
При відсутності необхідної кількості підказок, особливо напередодні великих операцій, проводилися спеціальні заходи по їх створенню. Цей підхід отримав кодову назву «садівництво» (). Наприклад, перед виходом чергового полярного конвою проводилося демонстративне мінування певної ділянки моря. Якщо супротивник доповідав результати розмінування із зазначенням заздалегідь відомих координат, це давало шукану підказку.
Тюрінг