Bombe
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Bombe-wh.700px.jpg/320px-Bombe-wh.700px.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/TuringBombeBletchleyPark.jpg/318px-TuringBombeBletchleyPark.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Bombe-rebuild.jpg/317px-Bombe-rebuild.jpg)
Turing Bombe — електронно-механічна машина для розшифровки коду «Енігми».
Перший пристрій для розшифровки кода Енігми, — «криптологічна бомба», — був створений польськими математиками напередодні Другої світової війни. На основі цієї розробки та при безпосередній підтримці її творців в Англії був сконструйований більш «просунутий» агрегат[1].
Головною метою «Бомби» було знаходження щоденних налаштувань машини «Енігма» на різних німецьких військових з'єднаннях: зокрема, позиції роторів. Позиції роторів визначають ключ зашифрованого повідомлення.
Теоретичну частину роботи виконав Алан Тюрінг. Його роботи з криптографічного аналізу алгоритму, реалізованого в шифрувальній машині «Енігма», ґрунтувалися на більш ранньому криптоаналізі попередніх версій цієї машини, які були виконані в 1938 році польським криптоаналітиком Маріаном Реєвским. Принцип роботи розробленого Тюрингом дешифратора складався в переборі можливих варіантів ключа шифру і спроб розшифрування тексту, якщо була відома структура дешифрованого повідомлення або частина відкритого тексту.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/49/Bletchley_Park_Bombe4.jpg/317px-Bletchley_Park_Bombe4.jpg)
Перша Bombe була запущена 18 березня 1940 року. Машина Тьюрінга Bombe складалася з 108 обертових електромагнітних барабанів і ряду інших допоміжних блоків. Вона була 10 футів (3,0 м) довжиною, 7 футів (2,1 м) заввишки, 2 фути (0,61 м) шириною і важила 2,5 тонни. Серійно випускалася до вересня 1944 року, коли хід війни зробив непотрібним збільшення їх кількості. Для кожного можливого значення ключа, визначеного положеннями роторів, машина виконувала звірку з відомим відкритим текстом[2].
Всього в «Блетчлі-Парк» було встановлено 210 машин типу Bombe, що дозволило щодня розшифровувати до 3 тисяч повідомлень. Це внесло значний внесок у воєнні зусилля Британії, особливо в боротьбу з підводними човнами в Атлантиці. У числі отриманої інформації були і відомості про підготовку вторгнення в СРСР. Незважаючи на ризик розкриття джерела, відомості були передані радянському уряду. Однак Сталін не надав цій інформації належного значення[3].
«Енігма» застосовувалася німцями лише для переговорів по радіо на оперативно-тактичному рівні. Для кодування переговорів вищого керівництва застосовувався інший код — «Лоренц»[4]. Цей код був набагато складнішим і для його розшифровки знадобилися інші методи і засоби.
Після війни Черчілль, з міркувань секретності, наказав знищити всі матеріальні сліди програми Ultra, в тому числі і машини Bombe.
Британські любителі історії через 60 років відновили одну машину Тюрінга Bombe; незважаючи на наявність докладних креслень і пояснень (повний комплект збирався 2 роки), вони витратили на це 10 років.
Машина «Енігма»
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/EnigmaMachineLabeled.jpg/316px-EnigmaMachineLabeled.jpg)
Енігма (від ін-грец. αἴνιγμα — загадка) — портативна шифрувальна машина, яка використовувалася для шифрування і дешифрування секретних повідомлень. Більш точно, Енігма — ціле сімейство електромеханічних роторних машин, які застосовувалися з 20-х років XX століття.
«Енігма» працювала шляхом постійної зміни електричного ланцюга за рахунок обертання внутрішніх роторів, через які йшов струм. При кожному натисканні букви на клавіатурі машина видавала букву шифру, а ротори ставали в нову позицію. Таким чином працював поліалфавітный шифр підстановки. Простою версією поліалфавітного шифру є шифр Віженера. Це досить криптографічно стійкий шифр для свого часу — не знаючи ключового слова, його було дуже важко зламати.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Enigma_rotor_set.png/314px-Enigma_rotor_set.png)
Використовуючи належним чином цю машину, можна отримати дуже високий ступінь безпеки. Шифратор «Енігми» складається з 3-5 роторів з 26 електричними контактами. При натисканні кнопки на клавіатурі, електричний струм протікав через записуючий барабан на правому кінці скремблера, потім через набір роторів відображає в барабан, який повертав сигнал назад через ротори і записуючий барабан.
Як і інші роторні машини, Енігма складалася з комбінації механічних та електричних підсистем. Механічна частина включала в себе клавіатуру, набір обертових дисків роторів, — які були розташовані вздовж валу і прилягали до нього, та ступеневої механізму, рухаючого один або кілька роторів при кожному натисканні на клавішу.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Enigma_wiring_kleur.svg/333px-Enigma_wiring_kleur.svg.png)
Для пояснення принципу роботи машини наведена діаграма вище. Діаграма спрощена: насправді механізм складався з 26 лампочок, клавіш, роз'ємів і електричних схем всередині роторів. Струм йшов від джерела живлення (часто це була батарея) (1) через перемикач (2) в комутаційну панель (3). Комутаційна панель дозволяла перекомутувати з'єднання між клавіатурою (2) і нерухомим вхідним колесом (4). Далі струм проходив через роз'єм (3), в даному прикладі невикористаний, вхідна колесо (4) і схему з'єднань трьох (в армійській моделі) або чотирьох (у військово-морський моделі) роторів (5) і входив у рефлектор (6). Рефлектор повертав струм назад, через ротори і вхідна колесо, але вже по іншому шляху, далі через роз'єм «S», з'єднаний з роз'ємом «D», через інший перемикач (9), і запалювалася лампочка.
Таким чином, постійна зміна електричного ланцюга, через яку йшов струм, внаслідок обертання роторів дозволяло реалізувати поліалфавітний шифр підстановки, що давало високу для того часу, стійкість шифру.
Принцип роботи «криптологічної бомби»
Розшифрувати повідомлення німецької машини «Енігма» можливо лише в тому випадку, якщо відомий ключ, тобто положення роторів.
«Бомба» повторює дії декількох з'єднаних разом машин «Енігма». Стандартна «Енігма» має три ротора, кожен з яких може бути встановлений в будь-яку з 26 позицій. Машина «Бомба» є еквівалентом 26 машин «Енігма», кожна з яких складається з трьох барабанів. «Бомба» може одночасно працювати над трьома ключами секретних повідомлень.
На відміну від роторів «Енігми», машина «Бомба» має барабани з вхідними і вихідними контактами. Таким чином, вони можуть бути з'єднані послідовно. Кожен барабан мав 104 дротяні щітки, які торкалися пластин, на які вони були завантажені. Щітки і відповідний набір контактів на пластині були організовані в чотирьох концентричних колах з 26. Зовнішня пара кіл була еквівалентна струму, що проходить через «Енігму» в одному напрямку, в той час як внутрішня пара була еквівалентом струму, що проходить у протилежному напрямку.
Розшифровка коду «Енігми»
Під час Другої світової війни Тьюринг працював в Блетчлі-парку — британському криптографічному центрі, де очолював одну з п'яти груп, Hut 8, котрі займалися в рамках проекту «Ультра» розшифровкою закодованих німецькою шифрувальної машиною «Енігма» повідомлень. Внесок Тюрінга у роботи з криптографічного аналізу алгоритму, реалізованого в «Енігмі», ґрунтувався на більш ранньому криптоаналізі попередніх версій шифрувальної машини, виконаних в 1938 році польським криптоаналитиком Маріаном Реєвським.
На початку 1940 року він розробив дешифрувальну машину «Бомба», яка дозволяла читати повідомлення люфтваффе. Принцип роботи «Бомби» складався в переборі можливих варіантів ключа шифру і спроб розшифрування тексту, якщо була відома частина відкритого тексту або структура повідомлення, яке розшифровується. Перебір ключів виконувався за рахунок обертання механічних барабанів, що супроводжувався звуком, схожим на цокання годинника, через що «Бомба» і отримала свою назву. Для кожного можливого значення ключа, визначеного положеннями роторів (кількість ключів дорівнювало приблизно 1019 для сухопутної «Енігми» і 1022 для шифрувальних машин, використовуваних у підводних човнах), «Бомба» виконувала звірку з відомим відкритим текстом, котра проводилась електрично. Перша в Блетчлі «Бомба» Тюрінга була запущена 18 березня 1940 року. Дизайн «Бомб» Тюрінга також був заснований на дизайні однойменної машини Реєвського.
Через півроку вдалося зламати і більш стійкий шифр Крігсмаріне. Пізніше, до 1943 року, Тюрінг вніс вагомий внесок у створення більш досконалої дешифровальной електронно-обчислювальної машини «Колос», що використовується в тих же цілях.
Польські колеги намагалися пробити пролом в кодуванні, використовуючи помилки німецьких шифрувальників — які, втім, досить швидко виправлялися, — і пробуючи повний перебір всіх можливих комбінацій, що вимагало просто нереальних витрат сил і часу. Алан Тюрінг запропонував більш ефективний спосіб: перебір послідовностей символів на основі підібраного відкритого тексту. Простіше кажучи, досить було щодня дізнаватися або вгадувати один невеликий уривок з повідомлення — що було не так вже й складно, оскільки, незважаючи на всі таємниці та коди, німецькі військові спілкувалися між собою досить стереотипними фразами, — і механічним перебором двадцяти шести символів латинського алфавіту визначити точне місце цього уривка в повному зашифрованому тексті. Останню процедуру Тюрінг придумав здійснювати, виходячи з принципу виключення: відомою особливістю «Енігми» було те, що при шифровці вона замінювала кожну букву будь-якою іншою, але тільки не такою ж самою буквою.
Наприклад, прогноз погоди завжди починався зі слів:
WETTERVORHERSAGEBISKAYA
Припустимо, що шифротекст виглядає таким чином:
...QFZWRWIVTYRESXBFOGKUHQBAISEZ...
Для того, щоб дізнатися відповідність букв, необхідно зіставити ці тексти таким чином, щоб буква не шифрувалась сама в себе.
Q | F | Z | W | R | W | I | V | T | Y | R | E | S | X | B | F | O | G | K | U | H | Q | B | A | I | S | E | Z |
W | E | T | T | E | R | V | O | R | H | E | R | S | A | G | E | B | I | S | K | A | Y | A |
На цьому прикладі видно, що буква S шифрується сама в себе.
Q | F | Z | W | R | W | I | V | T | Y | R | E | S | X | B | F | O | G | K | U | H | Q | B | A | I | S | E | Z |
W | E | T | T | E | R | V | O | R | H | E | R | S | A | G | E | B | I | S | K | A | Y | A |
Таким чином, якщо тексти правильно зіставлені, ми знаємо що R розшифровується як W на першій позиції і так далі.
R | W | I | V | T | Y | R | E | S | X | B | F | O | G | K | U | H | Q | B | A | I | S | E |
W | E | T | T | E | R | V | O | R | H | E | R | S | A | G | E | B | I | S | K | A | Y | A |
![](http://upload.wikimedia.org/wikipedia/commons/8/87/Fig_1-6_menu.gif)
Взаємозв'язок шифрованих букв може бути відображений на діаграмі.
Електрична схема машини «Бомба»
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Rotating_upper_bombe_drum.jpg/252px-Rotating_upper_bombe_drum.jpg)
Під час роботи машини «Бомба» барабани, що знаходяться на верхньому ряду, обертаються зі швидкістю 120 обертів в хвилину. Після того, як вони здійснять повний оберт, середній ряд барабанів повертається на наступну позицію. Таким чином, методом перебору всі три ряди барабанів послідовно змінюють свій стан. Це продовжується до тих пір, поки машина не видасть сигнал Стоп або барабани повернуться у своє початкове положення.
Сигнал Стоп виробляється у тому випадку, коли положення роторів приймає таке ж положення, як при шифруванні. Питання полягає в тому, за яких умов відбувається збіг положень?
Тестовий регістр підключений до одного з кабелів, що відповідає букві, яка найбільш часто з'являється у меню. Кожній букві відповідає один провід, який характеризується двома станами. І в той же час, тестовий регістр здатний визначати кількість проводів, по яких тече струм.
Під час запуску машини «Енігма» напруга подається на довільний провід. Наприклад, провід А ставиться у відповідність кабелю E, тобто припускаємо, що букви A зіставляється буква E, і навпаки. Через кожен дріт, підключений до проводу А в кабелі E і проводу Е в кабелі A, піде струм. Але припустимо, що інший провід Н перейшов в активний режим. Більш того, це означає, що буква H зіставляється букві E, і навпаки. Але E не може бути зіставлена одночасно двох буквах алфавіту. Таким чином, початкова гіпотеза хибна.
Виникає інше питання: чи нам потрібно перевіряти провід B в кабелі E для того, щоб перевірити зв'язок букв B і E? Не потрібно. Повний перебір займав би досить багато часу. Варто відзначити, що ключ змінювався кожен день. Машина «Бомба» могла дізнатися ключ за пару годин роботи. У нашому прикладі, ми можемо помітити, що струм пройде через шифратор, підключений до A, E, H кабелі до проводів, підключені до інших кабелів.
Розглянемо два випадки. Припустимо, що, прогнавши весь шифротекст, положення роторів правильне і гіпотези вірні. Даний випадок наведено на малюнку нижче. У такому разі виробляється сигнал Стоп.
![](http://upload.wikimedia.org/wikipedia/commons/7/74/Fig_4-2_1livewire.gif)
Примітки
- ↑ Назва пристрою Bombe іноді помилково перекладається на українську як «бомба». Тим часом, бомба по-англійськи— bomb. Назва Bombe за однією з версій отримано від назви десерту з морозива Bombe glacée, у вигляді шару або циліндра. («One theory was that bomba was named after the ice cream, bombe glacee, which was being eaten when the machine was invented.» // Enigma: The Battle for the Code, By Hugh Sebag-Montefiore, 2002, ISBN 9780471437215)
- ↑ Кількість варіантів дорівнювала приблизно 1019 для сухопутної «Енігми» і 1022 для морської
- ↑ Rutherford journal: «Colossus: Breaking the German ‘Tunny’ Code at Bletchley Park»
- ↑ Lorenz був німецькою назвою коду, англійці називали його «Танні»(англ. tunny — тунець