11 листопада 1918 року, після 123 років окупації Пруссією, Австрією та Росією, Польща відновила свою незалежність. Довгоочікувана свобода тривала недовго. Як незабаром з’ясувалося, у сусідніх з Польщею країнах почався найстрашніший період в історії, і мирні відносини з ними виявилися неможливими.
На заході Польща межувала з Веймарською республікою, яка з часом перетворилася на Das Dritte Reich — нацистську Німеччину. На сході був кордон із Російською Федеративною Соціалістичною Республікою (найбільшою союзною республікою в складі майбутнього СРСР), яка мріяла про комуністичну революцію в усій Європі. Відроджена Польща з перших днів свого існування опинилася в небезпеці і, крім відбудови та об’єднання країни, перед нею постало завдання гарантування безпеки держави.
Це добре розуміла новостворена польська розвідка. Негайно було створено агентство, яке спеціалізувалося на криптографії (використанні шифрів і кодів) і криптології (вивченні шифрів і кодів, головним чином для їх «зламання»). Розвідка поставила собі за головну мету розкрити таємні плани двох сусідніх держав. Під назвою «Секція шифрів» вона передувала знаному Бюро шифрів, співробітникам якого вдалося зламати код «Еніґма».
Вибрати найкращих із найкращих
Німецька армія впровадила машинні шифри на початку 1928 року, і польська розвідка негайно почала з ними працювати. Протягом наступних чотирьох років знаменита в майбутньому Секція шифрів, яка зламала понад 100 шифрів під час польсько-радянської війни (лютий 1919 — березень 1921), регулярно зазнавала поразок. У 1932 році стало зрозуміло, що для того, аби зламувати німецькі машинні шифри, ресурсів Секції недостатньо. Було вирішено організувати курси дешифрування кодів для сотень студентів і наукових працівників, щоб відібрати талановитих дешифрувальників.
Найперспективнішим виявився Маріан Реєвський — математик, випускник Познанського університету, який рік стажувався в Геттінгені (Реєвський чудово володів німецькою). Крім Реєвського, було обрано Генрика Зиґальського та Єжи Ружицького, також випускників математичного факультету Познанського університету. Всіх трьох негайно скерували на роботу в Бюро шифрів, де вони взялися за розшифровку «Еніґми».
Що таке «Еніґма»?
«Еніґма» — це електромеханічна роторна машина, яка з’явилася на ринку на початку 1920-х років. Хоч і недешева, вона була доступна широкому колу споживачів і в першу чергу використовувалася в комерційних цілях. Наприкінці 1920-х років німецька армія вперше придбала «Еніґму», яка відразу ж стала основною шифрувальною машиною німецької армії, насамперед у флоті та авіації. Чому було вибрано саме «Еніґму»? Можливо тому, що замість популярних під час Першої світової війни мовних шифрів у ній використовувався поліалфавітний шифр заміни. Робота «Еніґми» вимагає детальних пояснень — ми намагатимемося коротко і доступно представити її властивості.
Ротори
Ротори являють собою диски з твердої гуми або бакеліту з пружинними штировими контактами, розташованими по колу з одного боку ротора, і відповідною кількістю пласких електричних контактів з іншого. Ротори встановлені один за одним так, що штирі одного з них стикаються з контактами іншого. Штирові та плоскі контакти відповідають буквам алфавіту (зазвичай 26 літер від А до Z). Функція кожного ротора була простою — базовий шифр заміни. Наприклад, контакт, що відповідав літері О першого ротора, можна було з’єднати з літерою Z другого ротора. Однак більш просунуті версії «Еніґми» використовували відразу 3-4 ротори, кожен з яких мав 26 можливих позицій. Крім того, ротори мали змінне розташування алфавітного кільця і були «гуляючими», тобто кожен з них змінював свою позицію при кожному натисканні клавіші на клавіатурі. Таким чином, за допомогою роторів кожне секретне повідомлення багато разів трансформувалося перед відправкою.
Комутатор
Код для розшифровки інформації, засекреченої за допомогою «Еніґми», змінювався щодня. По-перше, він визначався вибором роторів і їх вихідним положенням. Крім того, використовувався інший пристрій — комутатор під назвою Steckerbrett. Це дозволяло кожному оператору ускладнювати шифр, змінюючи з’єднання кабелів до того, як сигнал проходив через роторну частину — «Стекербретт» міняв місцями пари літер. «Еніґму» з комутатором «зламати» було набагато складніше, оскільки неможливо було математично пояснити принцип заміни літер (це було довільне рішення оператора, який міг вільно змінювати з’єднання кабелів).
Таким чином, щоб розшифрувати повідомлення, оператор військової версії «Еніґми» повинен був:
1. відтворити розташування роторів — вибір роторів (їх було п’ять типів) та порядок їх встановлення;
2. знати початкову позицію роторів — її вибирав сам оператор, вона була різною для кожного повідомлення/дня/періоду. Перед відправленням зашифрованого повідомлення оператор вводив ключ, що містив літери, видимі в початковому положенні роторів;
3. вгадати налаштування комутатора — з’єднання кабелів Steckerbrett.
Вважалося, що завдяки такому складному пристрою код «Еніґми» неможливо зламати, тому у французькій та британській розвідці вважали, що повідомлення нацистів можна розшифрувати, лише викравши одну з машин і помістивши в німецьку армію секретного агента, який інформуватиме союзників про щоденні зміни налаштувань «Еніґми». Цей план, однак, був недалекоглядним. Зникнення будь-якої машини «Еніґми» було б негайно помічено, а механізм був би миттєво перероблений. А життя подвійних агентів, які шпигували за нацистами, також бувало коротким...
На сцену виходить Реєвський
До кінця 1931 року французька та британська розвідки зазнавали невдач. У цьому ж році німецький аристократ Ганс Тіло-Шмідт, офіцер штабу шифрування збройних сил Німеччини, отримав завдання знищити застарілі списки кодів «Еніґми», включаючи налаштування «Еніґми» на різні дні. З якоїсь причини, ймовірно фінансової, він вирішив продати ці коди Гюставу Бертрану, агенту французької розвідки. Бертран негайно сформував спеціальну команду для аналізу отриманих даних, але інформацію вважали застарілою та марною, до того ж, її було занадто мало, щоб навіть вирішити, з чого почати.
Тоді Бертран вирішив передати документи полякам і британцям. Реєвський, який уже мав у своєму розпорядженні «цивільну» копію «Еніґми» (куплену в Німеччині), відразу зрозумів, що успіх не за горами. Він використав матеріал Бертрана, і, порівнявши доступні тексти з шифрами, зміг розрахувати формули, які дозволили поєднати кабелі роторів у версії «Еніґми», яка використовувалася німецькою армією. Це вимагало глибокого розуміння теорії перестановок.
Після того, як Реєвський встановив поєднання кабелів для кожного з п’яти типів роторів, він попросив своїх інженерів переконфігурувати машини, встановив ротори в ту саму позицію введення, що й у зашифрованому тексті, ввів закодоване повідомлення і... отримав на виході абсолютну абракадабру — хаотичний набір літер, що не нагадував інші зашифровані повідомлення.
.
Реєвський весь час перевіряв свої розрахунки. Він був упевнений, що розгадав таємницю роботи роторів і комутатора. У розрахунках не вистачало чогось — на перший погляд, дуже простого. Це могла бути лише комбінація клавіш машини з відповідними індикаторами над ними.
На комерційних машинах «Еніґми» (наприклад, на тій, яку використовував Реєвський), клавіші завжди були розташовані так само, як і на німецьких друкарських машинах: відповідно до схеми A->Q B->W C->E і так далі; для кожної літери алфавіту на клавіатурі QWERTZ була відповідна клавіша. Незважаючи на варіанти з’єднання кабелів, яких могло бути сотні тисяч, Реєвський вирішив випробувати всі можливі комбінації розкладок клавіш.
Він почав зі стандартного алфавітного порядку. A->A, B->B, C->C і ... отримав правильний текст! Реєвському вдалося зламати код. Тепер у польської розвідки була повнофункціональна копія німецької військової «Еніґми»! Чому схема виявилася такою простою? Ніхто про це так ніколи й не дізнався. Налаштування змінювалися щодня, але принаймні код було розшифровано.
Циклометр
Параметри «Еніґми»(тобто початкове положення роторів і конфігурація кабелів у комутаторі) змінювалися регулярно, зазвичай щодня. Вважалося, що за такого підходу розшифрувати загальну роботу коду практично неможливо, навіть якщо буде розгадано код певного дня. Щоб передати зашифрований зміст адресату, відправник повинен був надіслати повідомлення-ключ, що складалося з зашифрованих літер, видимих у початковому положенні ротора. Щоб уникнути помилок, ключ потрібно було вводити двічі.
Незабаром Реєвський помітив слабкі місця цього процесу. По-перше, ключі були ідентичні для всіх повідомлень протягом дня. Крім того, недбалі оператори дуже часто вибирали найпростіші ключі, такі як AAA, ZZZ або QAY. Аналіз великої кількості шифрів дозволив скоротити кількість параметрів індикатора з 1012 до 105456 і розпочати їх каталогізацію. Реєвський винайшов машину під назвою циклометр, яка робила це механічно. Він оповідав про неї так:
Процес каталогізації з циклометром був трудомістким, тривав більше року, але коли все було готово, щоденні ключі можна було отримати за п’ятнадцять хвилин.
Каталог був готовий у 1936 році і бездоганно працював до 1937 року. Майже 100% німецьких повідомлень було успішно розшифровано. Наприкінці 1937 року німці зрозуміли, що щось пішло не так, і змінили спосіб кодування, внаслідок чого метод Реєвського перестав діяти. І все ж польське Бюро шифрів не збиралося здаватися.
Аркуші Зиґальського
Після провалу методу Реєвського інший студент, відібраний у 1928 році, запропонував рятівне рішення. Генрик Зиґальський винайшов те, що пізніше було названо «аркушами Зиґальського». Вони базувалися на повторенні символів у повідомленні-ключі. Зиґальський розробив спеціальні перфоровані аркуші паперу, за допомогою яких він міг відстежувати налаштування індикатора та щоденний ключ. Реєвський був у захваті від цього методу (хоча й не автоматичного) і змусив операторів шукати правильну комбінацію аж до зранених пальців:
По мірі того, як листи накладалися і починали рухатися в певному порядку і певним чином відносно решти відповідно до ретельно встановленої програми, кількість видимих дірок поступово зменшувалася. І якщо була необхідна кількість даних, врешті залишався один отвір, який, імовірно, відповідав правильному положенню, тобто вирішенню. Залежно від положення отвору можна було розрахувати порядок розташування роторів, положення їхніх кілець і (...) увесь ключ шифру.
Налаштування потрібно було почергово перевіряти на копії «Еніґми», і якщо криптографам не щастило, це могло зайняти багато часу. Війна була неминучою, і в Бюро шифрів розуміли, що потрібен швидший і ефективніший спосіб.
Криптобомби
Реєвському знову вдалося довести свій інженерний геній: він створив машину під назвою криптобомба. Це був механічно-електричний пристрій на основі ідеї Зиґальського для відстеження повторюваних літер у повідомленнях-ключах. Назва «бомба», ймовірно, походить від звуків цокання, які видає пристрій під час роботи. Реєвський писав:
Криптобомба, винайдена восени 1938 року, дозволила автоматизувати та прискорити процес дешифрування щоденних ключів. Кожна криптобомба (шість було створено у Варшаві для Бюро шифрів до вересня 1939 року) по суті була набором із шести машин «Еніґма». Вона замінила майже 100 співробітників і скоротила час отримання кодів приблизно до двох годин.
Бомби були високоефективними: вони були швидкими та точними. Але святкувати успіх було зарано. Бюро шифрів розуміло, наскільки загрозливою була політична ситуація в Європі, і що німецькі експерти незабаром зрозуміють, що їхній код знову розсекречено.
Починається Друга світова війна
15 вересня 1938 року німецька армія знову вдосконалила конструкцію «Еніґми», додавши два додаткових роторних диска. Це ускладнило процес дешифрування коду в десять разів (було шість методів налаштування для трьох роторів, а для п’яти роторів — 60). І хоча Реєвський швидко розрахував внутрішню схему з’єднання нових дисків ротора, розгадувати щоденні ключі стало набагато складніше. Водночас зростала політична напруга.
У квітні 1939 року Німеччина в односторонньому порядку розірвала польсько-німецький договір про ненапад. Це змусило польське Бюро шифрів поділитися своїми досягненнями із союзниками: Францією та Великою Британією. Раніше командувач Війська Польського надсилав усі розшифровані повідомлення союзникам, але не розкривав методу їх розшифровки, побоюючись контррозвідки. Під час таємної зустрічі на околицях Варшави 26 липня 1939 року польські експерти повідомили військовим очільникам Франції та Великої Британії, що код «Еніґми» було зламано, і урочисто пообіцяли надати їм копії військової версії «Еніґми», а також метод розшифровки кодів і вирішення проблеми можливих модифікацій коду. 1 вересня 1939 року Німеччина напала на Польщу.
З Польщі до Англії через Францію
Усі співробітники Бюро шифрів вирішили втекти з Польщі 5 вересня, лише через чотири дні після нападу Німеччини. Їм вдалося потрапити до Франції, де вони працювали на PC Bruno — польсько-французьку розвідку, яка займалася виключно розшифровкою військових кодів. До капітуляції Франції в липні 1940 року, коли всі експерти PC Bruno були змушені тікати до Великої Британії, у цьому центрі вдавалося зламати майже кожен п’ятий код «Еніґми». Нацисти заарештували деяких співробітників центру, але, незважаючи на жахливі тортури, жоден з них не розкрив, як там розшифровували код «Еніґми».
У Великій Британії Мар’ян Реєвський і Генрик Зиґальський записалися до польської армії в еміграції та взялися за розшифровку німецьких ручних шифрів на польській станції в Боксмурі. Оскільки вони перебували в окупованій Франції та були заарештовані армією Франко по дорозі до Британії, вважалося занадто ризикованим запрошувати їх працювати в Блетчлі-Парку — штаб-квартирі зламувачів шифрів британської армії.
Епілог
Ідеї та дослідження Реєвського та співробітників Бюро шифрів стали основою для подальшої роботи зі зламу кодів «Еніґми», які постійно змінювалися. Після 1940 року команда з Блетчлі-Парку очолила подальшу роботу з декриптології. Тамтешні інженери придумали свій варіант «бомби», і до кінця війни майже 100% німецьких повідомлень було розсекречено. Дуайт Ейзенгауер сказав, що розгадка коду «Еніґми» мала вирішальне значення для перемоги армій союзників, і багато істориків вважають, що це скоротило війну на два роки і таким чином врятувало життя мільйонів людей.
Після Другої світової війни Генрик Зиґальський залишився у Великій Британії. Помер у 1978 році.
Мар’ян Реєвський повернувся до Польщі і помер у 1980 році у віці 74 років.
Обидва математики були нагороджені Великим хрестом Ордена Відродження Польщі та британськими військовими орденами.