Читать книгу «Європейська криптологія» онлайн полностью📖 — Вадима Гребенникова — MyBook.
image

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

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

Наприклад, для ключа «ШИФРОВАНИЙ» цифра 0 означає букву «Ш», цифра 1 означає «И», 2 – «Ф», 3 – «Р» тощо. Тому одержавши від кореспондента повідомлення «ПРИБУВАЮ ИФШАЙР», вони його читали як «ПРИБУВАЮ 12/06/93». Простота та зручність цієї системи шифрування дозволили їй дожити до початку минулого століття без усяких змін. Крім цих шифрів, найчастіше використовувався шифр простої заміни, що полягав у заміні кожної букви повідомлення на відповідну їй букву шифру.

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

Наприклад, повідомлення «ЗУСТРІЧАЙ У ДЕСЯТЬ» записувалося в таблицю розміром 4х4 по стовпцях (див. таблицю).


Після того, як відкритий текст був записаний по стовпцях, для утворення шифровки він зчитувався по рядках. В результаті виходив шифротекст: «ЗРЙСУ-ІУЯСЧДТТАЕЬ». Для використання цього шифру відправнику та одержувачу потрібно було домовитися про загальний ключ у вигляді розміру таблиці. Об'єднання букв у групи не входило у ключ шифру та використовувалося лише для зручності запису тексту.

Більш практичним був метод шифрування, який був названий одиночною перестановкою за ключем. Він відрізнявся від попереднього лише тим, що стовпці таблиці переставлялися за ключовим словом, фразою або набором чисел довжиною в рядок таблиці. Ключове слово (наприклад, «ШИФР») вписувалося у перший рядок таблиці, та здійснювалася перестановка стовпців відповідно до порядкових номерів букв ключа (див. таблицю).



В результаті зчитування по рядках повідомлення «ЗУСТРІЧАЙ У ДЕСЯТЬ» перетворялося у шифротекст «РСЙЗІЯУУЧТДСАЬЕТ».

Крім одиночних перестановок використовувалися ще подвійні перестановки стовпців і рядків таблиці з повідомленням згідно з попередньо визначеним порядком нумерування рядків і стовпців таблиці, що й було ключем шифру. При цьому перестановки визначалися окремо для стовпців та окремо для рядків. У таблицю вписувався текст по стовпцях, після чого здійснювалися перестановки стовпців та рядків (див. таблицю).



В результаті кінцевого зчитування по рядках повідомлення «ЗУСТРІЧАЙ У ДЕСЯТЬ» перетворялося у такий шифротекст: ЯІУУСРЗЙЬАТЕТЧСД. При розшифруванні порядок перестановок був зворотнім. Однак навіть шифри подвійної перестановки були слабким видом шифру, тому що легко читалися при будь-якому розмірі таблиці шифрування.

Новий етап розвитку криптології розпочався у другій половині XV століття з введенням у практику криптології багатоалфавітних шифрів заміни. Батьком цього шифру виявився теоретик мистецтва Леон Батіста Альберті (1404—1472), який узагальнив досвід гуманістичної науки у вивченні античної спадщини, написав трактати «Про статую», «Про живопис», «Про зодчество», десять книг про зодчество, побудував палац Ручеллаї, церкву Іль Джезу та ряд інших чудових здобутків зодчества середньовічної Італії.

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

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

Наприклад, обравши два шифралфавіти, можемо зашифрувати повідомлення, використовуючи по черзі то один, то інший. Таким чином, щоб зашифрувати слово «UKRAINE», зашифруємо першу букву за допомогою першого шифроалфавіту, так що «U» перетвориться в «Z», другу ж букву ми зашифруємо, використовуючи другий шифралфавіт, при цьому «K» стане «E». Для зашифровування третьої букви ми повернемося знову до першого шифроалфавіту ( U), а щоб зашифрувати четверту букву, ми знову звернемося до другого шифроалфавіту (→ U) і так далі:  M, N  H, E → H. В результаті отримаємо такий шифротекст: ZEUUMHH.



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

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

Шифрувальний диск складався з великого зовнішнього диска та рухомого внутрішнього диска. Окружність зовнішнього диска була розділена на 24 рівні сектори, до яких були вписано 20 букв латинського алфавіту в їхньому природному порядку та 4 цифри. При цьому з алфавіту були вилучено 6 букв, без яких можна було обійтися – H, J, K, U, Y, W. Окружність внутрішнього диска була розділена також на 24 сектори, до яких були вписані букви змішаного латинського алфавіту.

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

A B C D E F G I L M N O P Q R S T V X Z. 1…2 3. 4

L G A Z E N B O S F C H T Y. Q I. X K V P ET M R D

Так, наприклад, для індексної букви «L» одним з багатьох варіантів шифрування слова «PRESIDENT» може бути «ATQEIOZECX», а іншим – «BHYZQBAZFI» тощо.

B C D E F G I L M N O P Q R S T V X Z 1. 2..3. 4 A

L G A Z E N B O S F C H. T Y Q I X K V P ET M R D

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

Для цієї мети на зовнішньому диску малися цифри. Альберті склав код, що складався з 336 кодових груп, занумерованих від 11 до 4444. Кожному кодовому позначенню відповідала деяка закінчена фраза. Коли така фраза траплялася у відкритому повідомленні, вона замінялася відповідним кодовим позначенням, а за допомогою диска цифри зашифровувалися як звичайні знаки відкритого тексту, перетворюючись у букви.

У 1474 році був написаний перший у світі трактат, присвячений винятково криптоаналізу. Це зробив Чико Сімонетті, один із секретарів правителів Мілана – герцогів Сфорца. У ньому він виклав удосконалені шифри заміни, у тому числі шифр багатозначної заміни, у якому одній букві (голосній) відповідало декілька шифропозначень. Він розробив 13 правил розкриття шифрів простої заміни, у яких збережені роздільники слів. Рукопис, написаний на трьох шматках пергаменту, починався зі слів: «Перша необхідна умова полягає в з'ясуванні того, чи написаний документ латинською або місцевою мовою, а це можна установити в такий спосіб: з'ясуєте, чи мають слова в даному документі тільки п'ять різних закінчень, менше або більше. Якщо їх тільки п'ять або менше, ви праві, вважаючи, що документ написаний місцевою мовою…».

Сімонетті у своєму трактаті докладно описав шифри заміни, у яких для вирівнювання частоти появи букв у шифротексті голосним буквам ставився у відповідність не один знак, а декілька. Тут же вперше був наведений опис так званого «гаслового» шифру, що у різних модифікаціях буде застосовуватися й кілька століть пізніше. Правило заміни букв у ньому визначалося таким чином: під алфавітом писалася ключова фраза – гасло (наприклад, «Ukraine») без повторюваних букв, а потім букви, що у гаслі не зустрічалися, у природному порядку.

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

U K R A I N E B C D F G H. J. L M O P Q S T V W X Y Z

В результаті слово «UZHGOROD» перетворюється у шифротекст: «TZBELPLA».

У 1518 році з'явилася перша друкована праця з криптології «Поліграфія» (лат. Polygraphia). Вона була написана Йоганом Гейденбергом (1462—1516), або Тритемієм (Трисемусом), абатом бенедиктинського монастиря Святого Мартіна (м. Вюрцбург, Німеччина), якого багато істориків вважають батьком європейської криптології. «Поліграфія» являла собою збірник з 6 книг і містила стовпці латинських термінів, слів, поставлених у відповідність буквам відкритого тексту, та першу квадратну таблицю, основу багатоалфавітної заміни.

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

В результаті книга викликала гнів багатьох монархових дворів Європи, які думали, що Тритемій видав у ній занадто багато таємниць. Крім того, Римська католицька церква вважала праці Тритемія єретичними та у 1609 році внесла його книги до списку заборонених. Ця заборона тривала 250 років.

У 1541 році книга була перевидана французькою мовою, а незабаром був зроблений її переклад на німецьку мову. У цій книзі Тритемій зробив дві нові пропозиції в криптології: він запропонував шифр «Аве Марія» і шифр, побудований на основі ключа, що періодично зрушується.

Шифр «Аве Марія» ґрунтувався на принципі заміни заздалегідь обговорених слів на букви шифротексту. З таких слів складалося зовні «безневинне» повідомлення. Наприклад, замінимо букви «А», «К», «Т» на такі слова: «А» – чекаю, мій; «К» – вдома, ключ; «Т» – я, тут. У такому разі позитивна таємна відповідь на задане питання може мати декілька варіантів: «Я чекаю вдома» або «Тут мій ключ».

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

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

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



Крім того, Тритемій пропонував також використовувати одноалфавітне шифрування за допомогою квадрата Полібія та ключового слова – пароля. Обиралося яке-небудь слово, з нього прибиралися повторювані букви, а ті, що залишалися, записувалися в перші клітини квадрата. Порожні клітини заповнювалися буквами алфавіту, що залишилися, у природному порядку.

Розглянемо цю систему шифрування у варіанті для української мови, таблиця якої буде мати розмір не 5х5, а 5х6. Буква шифровки бралася з клітини, що знаходилася під клітиною букви повідомлення. Оскільки ключове слово легко було зберігати в пам'яті, то такий підхід спрощував процеси шифрування та дешифрування. Для ключа «ШИФРОВКА» таблиця буде мати такий вигляд (див. таблицю).



Для вищеописаного шифру за даною таблицею повідомлення «УХОДИМО» дає шифровку «ЯЬДЛАХД». Такі табличні шифри були названі монограмними, тому що шифрування велося по одній букві.

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

1. Якщо обидві букви біграми вихідного тексту належали до одного стовпця таблиці, то буквами шифру вважалися букви, які були під ними. Так, біграма «РІ» давала текст шифровки «ГТ». Якщо буква відкритого тексту перебувала в нижньому рядку, то для шифру бралася відповідна буква з верхнього рядка: біграма «ЛЯ» давала шифр «УО» (біграма з однієї букви або пари однакових букв теж підкорялася цьому правилу).

2. Якщо обидві букви біграми вихідного тексту належали одному рядку таблиці, то буквами шифру вважалися букви, які лежали праворуч від них. Так, біграма «АД» давала текст шифровки «БЕ». Якщо буква відкритого тексту була в правому стовпці, то для шифру бралася відповідна буква з лівого стовпця: біграма «ІМ» давала шифр «ЛЄ».

3. Якщо обидві букви біграми відкритого тексту лежали в різних рядках і стовпцях, то замість них бралися дві букви таким чином, щоб вся їх четвірка складала прямокутник. При цьому послідовність букв у шифрі була віддзеркаленням вихідної пари. Наприклад, «АУ» шифрувалося як «ДП», а «ТБ» – як «СГ».

При шифруванні фрази «ОГОЛОШЕНИЙ ЗБІР» по біграмах виходить шифрування «РДДУВИКХААСЗТГ»:

ОГ ОЛ ОШ ЕН ИЙ ЗБ ІР

РД ДУ. ВИ. КХ АА. СЗ ТГ

Шифрування біграмами різко підсилило стійкість шифрів до розкриття.

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

Наступний крок у розвитку запропонованого Тритемієм способа шифрування був зроблений італійцем Джовані Батіста Белазо. У 1553 році він опублікував брошуру «Шифр сеньйора Джовані Батіста Белазо» (італ. La cifra del. Sig. Giovan Batista Belaso), де запропонував використовувати для багатоалфавітного шифру буквений ключ, що був названий ним «паролем» та повинен був легко запам'ятовуватися. Пароль виписувався під або над рядком повідомлення. Буква пароля, що знаходилися над (під) буквою повідомлення, визначала номер рядка таблиці Тритемія, тобто алфавіт заміни, згідно з яким і здійснювалося шифрування. Буква повідомлення визначала номер стовпця таблиці, а буква шифротекста знаходилась на перетинанні рядка та стовпця таблиці.

Приблизно в той же час італійський математик і філософ Джироламо Кардано (1501—1576) запропонував використовувати як ключ сам текст повідомлення, тобто «самоключ» або «автоключ» (autokey). Наприклад, у фразі «ЗБІР СЬОГОДНІ» ключем було слово «ЗБІР»:

текст – ЗБІРСЬОГОДНІ

ключ – ЗБІР ЗБІР ЗБІР

Шифрування здійснювалось за допомогою таблиці Тритемія.