Американська криптологія. Історія спецзв'язку - Гребенников Вадим Викторович 4 стр.


До речі, у 1881 році була запатентована перша ідея телефонного шифратора Д.Х.Роджерсом. Ідея складалася в передачі телефонного повідомлення декількома (у найпростішому випадку – двома) лініями за допомогою почергових імпульсів у деякій послідовності, яка швидко змінювалася та нагадувала телеграфне повідомлення. Пропонувалося рознести такі лінії на значну відстань одна від одної для того, щоб усунути можливість підключення відразу до всіх одночасно. Підключення ж до однієї з них дозволяло б чути лише окремі нерозбірливі сигнали.

У XIX столітті застосовувалося, в основному, так зване, попереднє шифрування повідомлень. У цьому випадку відправник зашифровував передане повідомлення (у якому шифротекст задовольняв вимогам телеграфної передачі), після чого відносив шифроване повідомлення на телеграф. У ХХ столітті таке уповільнення в передачі повідомлень часто виявлялося неприйнятним. Треба було розробити методи так званої лінійної передачі шифрованих повідомлень, при якій апарат шифрування (шифратор) знаходився би безпосередньо в апаратурі передачі послань. Таким чином, передача шифрованого повідомлення в принципі не відрізнялася би від передачі нетаємного повідомлення.

Таку ідею автоматичного шифрування телеграфних повідомлень у грудні 1917 року запропонував американець Жильбер Вернам (1890—1960), молодий інженер компанії «Американський телефон і телеграф» (англ. American telephone and telegraph, AT&T) та талановитий винахідник. Він працював у телеграфному відділенні науково-дослідного відділу компанії, де займалися розробкою «телетайпу» – букводрукуючого телеграфного апарату.

Ще влітку, через кілька місяців після того, як Сполучені Штати оголосили війну Німеччині, в компанії почалася робота над секретним проектом щодо можливості зберігання в таємниці повідомлень, переданих телетайпом. Під час досліджень виявилося, що коливання струму в лінії зв'язку могли бути записані за допомогою осцилографу та потім легко перетворені в букви переданого повідомлення. Тому було вирішено внести зміни в з'єднання дротів друкуючого механізму телетайпу. У результаті текст повідомлення шифрувався методом одноалфавітної заміни. У телеграфному відділенні розуміли, що такий захист був занадто слабким, однак нічого іншого придумати не змогли та припинили займатися цією проблемою до тих самих пір, поки Вернам не повідав їм про свою ідею.

Він запропонував використовувати особливості телетайпного коду Бодо, в якому кожний знак складався з п'яти елементів. Кожний з цих елементів символізував наявність (»+») чи відсутність (» —») електричного струму в лінії зв'язку. Таким чином, було 32 різні комбінації «+» і «—». 26 з них повинні були відповідати буквам, а ті, що залишилися, позначали «службові комбінації» (пробіл між словами, перехід з букв на цифри та розділові знаки, зворотний перехід з цифр і розділових знаків на букви, повернення каретки друкуючого пристрою, перехід на новий рядок і холостий хід).

Наприклад, буква «А» позначалася комбінацією «++–», а перехід на цифри та розділові знаки позначався комбінацією «++—++». Закодоване повідомлення набивалося на перфострічці: «+» були дірками, а «—» – їхньою відсутністю. При зчитуванні перфострічки металеві щупи проходили через дірки, замикали електричне коло та посилали імпульси струму по дротах. А там, де на перфострічці знаходився «—», папір не дозволяв цим щупам замкнути коло, і в результаті струмовий імпульс не передавався.

Вернам запропонував готувати перфострічку з випадковими знаками (так звану «гаму») заздалегідь і потім електромеханічно складати її імпульси з імпульсами знаків відкритого тексту. «Гама» – це секретний ключ, що хаотичним набором букв того ж самого алфавіту. Отримана сума являла собою шифротекст, призначений для передачі по лінії зв'язку. Вернам установив таке правило підсумовування: якщо відразу обидва імпульси були «+» чи «—», то підсумковий імпульс буде «-», а якщо ці імпульси різні, то в результаті вийде «+».

Додавання, за сучасною термінологією, здійснюється «за модулем 2» («0» означає знак «—», а 1 – «+»): 0 +0 = 0; 0 +1 = 1; 1 +0 = 1; 1 +1 = 0. Нехай, наприклад, знак «гами» має вигляд: «+—+–» (10100). Тоді буква «А» – «++–» (11000) при шифруванні переходить у двійкову комбінацію «—++–»: (01100) = (11000) х (10100). При розшифруванні ту ж операцію необхідно повторити у зворотному порядку: (01100) х (10100) = (11000) – «++–» – буква «А».

Щоб підсумовувати електроімпульси при шифруванні, Вернам сконструював спеціальний пристрій, що складався з магнітів, реле та струмознімних пластин. А оскільки процедура розшифрування була аналогічна процедурі зашифрування, цей же прилад міг бути використаний і при розшифруванні. Імпульси надходили в пристрій підсумовування з двох зчитувачів: один зчитував «гаму», а інший – відкритий текст. «Плюси» й «мінуси», що отримували на виході, можна було передавати як звичайне телетайпне повідомлення. На прийомному кінці пристрій, винайдений Вернамом, додавав імпульси, що зчитувалися з ідентичної стрічки з «гамою», і відновлював вихідні імпульси відкритого тексту.

Важливість винаходу Вернама полягала в тому, що більше не потрібно було здійснювати зашифрування й розшифрування секретних повідомлень у вигляді окремих операцій. Відкритий текст входив в апарат, що знаходився у відправника повідомлення, і такий же відкритий текст виходив з апарата, що належав одержувачу цього повідомлення. А якщо хто-небудь перехоплював це повідомлення на шляху проходження від відправника до одержувача, то в його розпорядженні виявлялася нічого не значуща послідовність «плюсів» і «мінусів». Тепер, щоб зашифрувати, передати, прийняти та розшифрувати повідомлення, було потрібно прикласти не набагато більше зусиль, ніж при відправленні повідомлення відкритим текстом.

Основна перевага винайденого Вернамом методу засекречування повідомлень полягала не в механічному шифруванні відкритого тексту з наступною печаткою результату на папері, що було здійснено ще на початку 70-х років XIX століття французами Емілем Вінеєм і Жозефом Госсеном. Вернам уперше зумів поєднати два процеси – шифрування та передачу повідомлення. Він створив те, що згодом назвали лінійним шифруванням, щоб відрізняти його від традиційного попереднього шифрування. Вернам звільнив процес шифрування від кайданів часу й помилок, виключивши з цього процесу людину. Видатний внесок, зроблений Вернамом у практику шифрування, полягає саме в тому, що він привніс у шифрувальну справу автоматизацію, що вже встигла до початку XX століття послужити людям у багатьох сферах їхньої діяльності.

Навколо ідеї, висловленої Вернамом у колі колег, моментально розгорнулася активна діяльність. Спочатку Вернама змусили викласти цю ідею в короткій записці, яка була датована 17 грудня 1917 року. Компанія «AT&T» повідомила про винахід Вернама американське військово-морське відомство, з яким вона підтримувала тісне співробітництво. 18 лютого 1918 року відбулася нарада, у якій взяли участь Вернам і інші інженери з телеграфного відділення компанії «AT&T», з одного боку, і військові моряки, з іншого.

27 березня ці ж інженери зустрілися зі своїми колегами з американської компанії «Вестерн електрик», виробничої філії «AT&T», і домовилися з ними про виготовлення перших двох лінійних шифраторів із використанням якомога більшої кількості стандартних деталей. У лабораторії «Вестерн електрик» виготовлені шифратори були приєднані до телетайпів і здійснені перші іспити процесу, що назвали «автоматичним шифруванням». Усі пристрої, що входили до його складу, працювали без збоїв. Компанія «AT&T» проінформувала про цей факт майора Джозефа Моборна (1881—1971), що займав тоді посаду начальника відділу науково-дослідних і конструкторських розробок військ зв'язку Армії США.

Невирішеним залишалося всього одне питання – звідки брати «гаму». Спочатку «гама» для пристрою Вернама являла собою склеєні петлею короткі перфострічки, на які були набиті знаки, витягнуті навмання з різних відкритих текстів. Інженери компанії «AT&T» майже відразу звернули увагу на істотні вади такого процесу «автоматичного шифрування», пов'язані з недостатньою довжиною «гами». Тому, щоб ускладнити криптоаналіз, вони зробили перфострічки з «гамою» більш довгими. Але тоді ці перфострічки стало занадто важко використовувати.

Вернам запропонував підсумовувати дві короткі, що мають різну довжину «гами» таким чином, начебто б одна «гама» шифрувала іншу. Отримана в результаті так звана вторинна «гама», яка мала значно більшу довжину, ніж дві вихідні первинні «гами», що були використані для її генерації, була застосована для зашифрування відкритого тексту. Наприклад, якщо одна закільцьована стрічка мала 1000 знаків, а інша – 999, то дане розходження в довжинах усього в один знак давало 999 000 комбінацій, перш ніж результуюча послідовність повторювалася.

Однак Моборн розумів, що навіть удосконалена система Вернама дуже вразлива для криптоаналізу. У свої 36 років майбутній начальник військ зв'язку США Моборн був неабияким криптоаналітиком. Він ґрунтовно вивчив криптоаналіз в армійській школі зв'язку та був добре обізнаний з останніми досягненнями в цій сфері. Більш того, за кілька років до описуваних подій Моборн сам брав участь в одній науково-дослідній роботі, у ході якої фахівці з армійської школи зв'язку зробили висновок про те, що єдиною стійкою «гамою» була така, що порівняна по довжині з самим повідомленням. Будь-яке повторення в «гамі» піддавали величезному ризику отримані за її допомогою криптограми та, скоріше за все, привели би до їх розкриття.

Проведений Моборном аналіз системи «автоматичного шифрування» ще більше переконав його в цьому. Він зрозумів, що не має ніякого значення, чи знаходяться повторення в межах однієї криптограми чи вони розподілені по декількох, чи виходять вони шляхом комбінування двох первинних «гам», чи в результаті простого повторення в єдиній довгій «гамі». Важливим було те, що в «гамі» повторень не повинно бути ні за яких умов. Необхідно, щоб вона була зовсім унікальна й максимально хаотична.

Усвідомивши це, Моборн об'єднав властивість хаотичності «гами», на що спирався Вернам у своїй системі «автоматичного шифрування», із властивістю унікальності «гами», виробленою криптографами армійської школи зв'язку, у системі шифрування, що нині прийнято називати «одноразовим шифроблокнотом». Одноразовий шифроблокнот містив випадкову «гаму», що використовувалася тільки одного разу. При цьому для кожного знака відкритого тексту передбачалося використання абсолютно нового знака «гами», який не піддавався прогнозуванню.

Це була стійка шифросистема. Переважна більшість систем шифрування були абсолютно стійкими лише на практиці, оскільки криптоаналітик міг знайти шляхи їхнього розкриття при наявності в нього визначеної кількості шифротексту та достатнього часу для його дослідження. Одноразовий же шифроблокнот був абсолютно стійким як у теорії, так і на практиці. Яким би довгим не був перехоплений шифротекст, скільки б багато часу не приділялося на його дослідження, криптоаналітик ніколи не зможе розкрити одноразовий шифроблокнот, використаний для одержання цього шифротексту. І ось чому.

Розкриття багатоалфавітного шифру означало об'єднання всіх букв, зашифрованих за допомогою одного шифроалфавіту, у єдину групу, яку можна вивчати на предмет виявлення її лінгвістичних особливостей. Методи такого об'єднання могли бути різними в залежності від виду «гами». Так, метод Казиського полягав у виділенні ідентично «гамованих» букв відкритого тексту при повторюваній «гамі». Зв'язна «гама» могла бути розкрита шляхом взаємного відновлення відкритого тексту та «гами». А «гама», використана для зашифрування двох чи більше повідомлень, піддавалася розкриттю шляхом одночасного відновлення відкритих текстів цих повідомлень, причому правильність прочитання одного тексту контролювалася читаністю іншого. Майже для всіх різновидів багатоалфавітних шифрів був розроблений свій метод розкриття, заснований на їхніх відмінних рисах.

Зовсім іншою була ситуація з одноразовим шифроблокнотом. У цьому випадку криптоаналітик не мав відправної крапки для своїх досліджень, оскільки в одноразовій шифросистемі «гама» не містила повторень, не використовувалася більше одного разу, не була зв'язним текстом і не мала внутрішніх структурних закономірностей. Тому всі методи дешифрування, тією чи іншою мірою засновані на цих характеристиках, не давали ніяких результатів. Криптоаналітик заходив до тупика.

Залишався лише метод тотального випробування. Адже прямий перебір усіх можливих ключів, у кінцевому рахунку, обов'язково приводив криптоаналітика до відкритого тексту. Однак успіх, досягнутий цим шляхом, був ілюзорним. Тотальне випробування дійсно дозволяло одержати вихідний відкритий текст. Але воно також давало й кожен інший можливий текст тієї ж довжини, тому сказати, який з них є правильним, було неможливо.

Разом із тим, цей досконалий шифр не знайшов широкого застосування через величезну кількість «гам», що потребуються при його використанні. Проблеми, що виникають при виготовленні, розсиланні та знищенні «гами», людині, не обізнаній в усіх тонкощах організації шифрозв'язку, можуть здатися дріб'язковими, однак у воєнний час обсяги листування стають дуже великими. Протягом доби може знадобитися зашифрувати сотні тисяч слів, а для цього потрібно виготовити мільйони знаків «гами». І оскільки «гама» для кожного повідомлення повинна бути єдиною та неповторною, то її загальний обсяг буде еквівалентний обсягу всього листування за час війни.

Таким чином, практичні проблеми не дозволили застосовувати одноразові шифроблокноти у ситуаціях, які швидко змінюються, наприклад, у ході проведення військових операцій. Цих проблем не існувало в більш стабільних умовах: у генеральних військових штабах, дипломатичних представництвах або агентурному листуванні одноразові шифроблокноти були досить практичними та знайшли застосування. Однак і тут виникали нездоланні труднощі, якщо обсяг листування був занадто великим.

Це саме й відбулося, коли Моборн, улаштувавши перший великий іспит шифросистеми Вернама, установив його машини відразу в трьох містах. Навіть, при порівняно невеликому обсязі листування (до 135 коротких повідомлень щодня) виявилося неможливим виготовити достатню кількість якісної «гами». Тому, не знайшовши іншого виходу зі скрутного становища, Моборн став комбінувати з двома відносно короткими «гамами» з метою одержання з них більш довгої «гами», як це спочатку й пропонував робити сам Вернам.

У вересні 1918 року Вернам відправився до Вашингтона та подав там заявку на патент. Перша світова війна встигла закінчитися скоріше, ніж шифросистема Вернама зуміла хоч якось виявити свої достоїнства на практиці. Проте 22 липня 1919 року на неї був виданий патент №1310719 – найважливіший в історії криптології. Експерти з вашингтонського патентного бюро визнали можливу корисність цього винаходу й у мирний час.

Хоча прилад, утворений Вернамом, безсумнівно був цінним результатом творчої інженерної думки талановитого винахідника, у комерційному плані він зазнав повного «провалу». Телеграфні компанії та комерційні фірми, що, на думку «AT&T», повинні були масово закуповувати запатентовані шифроприставки Вернама до своїх телетайпів, віддавали перевагу старомодним кодам, що істотно знижували довжину повідомлень, тим самим зменшуючи телеграфні витрати й одночасно забезпечуючи хоч якусь, навіть невелику, безпеку листування. Після закінчення Першої світової війни бюджети збройних сил усіх країн були скорочені до мінімуму. Недолік засобів і недостатність матеріальних ресурсів змусили армійських зв'язківців знову повернутися до комбінування двох відносно коротких стрічок з «гамою», а продемонстрована військовими криптоаналітиками слабка стійкість такої системи генерації «гами» призвела до того, що шифросистема Вернама на якийсь час була забута.

Назад Дальше