Трактат про шифри (книга)
«Трактат про шифри» (1466 рік) — одна з перших в Європі книг, присвячених криптоаналізу, написана Леоном-Баттіста Альберті — італійським вченим, гуманістом, письменником, одним із зачинателів нової європейської архітектури й провідним теоретиком мистецтва епохи Відродження. Своєю роботою він зробив істотний внесок в розвиток криптографії, запропонувавши ідею багатоалфавітних шифрів, і винайшов пристрій, що реалізує шифр багатоалфавітної заміни, що отримав назву «диск Альберті».
Історія створення
В XV столітті в Західній Європі першість в економічному й політичному розвитку належить італійським державам. Найбільшу роль в політичному житті грала папська курія. Для зміцнення своїх позицій, розробки таємних проектів Ватикану необхідна була допомога криптології (приховати свої плани, розкрити карти суперника). У зв'язку з цим починається не тільки активне використання методів криптографії та криптоаналізу, а й створення теоретичних основ криптології. Найбільш здібні люди з італійських міст надавали свої послуги Ватикану, що дозволяло ускладнювати й удосконалювати методи. Трактат видатного представника італійського Відродження Леона Баттіста Альберті, присвячений даній темі, можна вважати першим в історії джерелом для вивчення нових підходів до криптографії[1].
Альберті — перший представник нових ідей в цій галузі. Він широко відомий як яскравий представник італійського Ренесансу, коло його інтересів дуже велике. Він прослужив понад 30 років в папській канцелярії, де він і зацікавився криптографією. До числа його робіт відноситься трактат «Про засади шифрів». Рукопис міститься у ватиканських архівах. Було здійснено переклад цього твору англійською мовою. Разом з книгою, представленою на виставці в Мантуї, присвяченій 590-річчю від дня народження Альберті, в грудні 1994 року був випущений CD, що містить історичний вступ, текст 12 збережених рукописів твору і його переклади на різні мови. Альберті написав працю на прохання свого друга Леонардо Даті, секретаря Папи Римського. У свою роботу Альберті включив не тільки опис загальних принципів шифрування та криптоаналізу, деяких конкретних шифрів, а й винайдений ним новий метод шифрування. Він так само включив в книгу короткі міркування про стеганографію[1].
Отже, в трактаті містяться як відомості про криптографію, так і про криптологію. Сам Альберті не дуже розділяв ці поняття між собою. Однак в самому початку книги він описує дослідження не стільки важливі для шифрування, скільки для криптоаналізу. Мова йде про частотності різних голосних і приголосних латинської мови, а також про частотність біграм: положення голосних і приголосних латинської мови. Альберті зазначив, що в будь-якій латинській книзі співвідношення голосних до приголосних буде 300 до 100. Маючи мале вдоволення від опису шифрів простої заміни, Альберті дає рекомендації зі складання шифрів пропорційної заміни. У них для заміни найбільш частих голосних він рекомендує вживати не одну, а кілька відмінних одна від одної, літер або інших символів, які повинні чергуватися в шифрі[1].
Альберті також дає деякі рекомендації для ефективного використання цієї системи (спрощення орфографії, використання «пустушок» — символів, які нічого не позначають). Альберті описав ще одну систему, що представляє собою поєднання шифрів і кодів, при якій окремі склади, слова і речення відкритого тексту замінюються буквами. Він також звернувся і до більш простих систем шифрування, пов'язаних з перестановкою букв. Також Альберті згадує і методи стеганографії, тобто використання молока, цибулі та солі, які можуть служити для написання тексту, який проявляється тільки під дією води і тепла. І нарешті, Альберті наводить свій власний шифр[1].
Опис
«Диск Альберті» складався з двох дисків — зовнішнього нерухомого (на ньому були нанесені латинські літери в алфавітному порядку і цифри 1, 2, 3, 4) і рухомого внутрішнього диска, на якому букви були переставлені. Диски кріпилися на одній осі так, щоб внутрішній міг обертатися. Окружність кожного диска розділена на 24 рівні клітини. Ковзання алфавітів знаходиться під контролем ключових букв, включених в тіло криптограми. Для того, щоб розшифрувати повідомлення, написане з використанням дисків Альберті ви повинні були мати відповідний алфавіт на вашому внутрішньому диску[2].
Принцип побудови цього шифру полягає в наступному: для шифрування використовуються не один, як у простій заміні, а кілька шифроалфавітів. Процес шифрування заключався у знаходженні букви відкритого тексту на зовнішньому диску і заміні її на букву з внутрішнього диска, що стоїть під нею. Після цього внутрішній диск зміщувався на одну позицію і шифрування другої літери вироблялося вже за новим шифроалфавітом. Ключем даного шифру був порядок розташування букв на внутрішньому диску і його початкове положення щодо зовнішнього диска. Іншим винаходом Альберті стали коди, які він запропонував замінювати на впорядковані двох-, трьох- і чотирьох цифрові комбінації складів, слова і цілі речення (всього таких комбінацій 336). Після цього цифри перешифровувались багатоалфавітною заміною. Як бачимо, диск — механічний пристрій для здійснення простої заміни. Винахід такого пристрою ще не пояснює, чому Альберті визнають батьком західноєвропейської криптології. Головна заслуга Альберти — використання не одного, а декількох алфавітів, що ускладнює частотний аналіз[2].
Перемикання з одного на інший алфавіт Альберті пропонував робити через кожні 3-4 слова. Це робиться поворотом внутрішнього диска в ту або іншу сторону на певне число поділок. Сигналом такого перемикання служила велика літера. Без цієї причини великі літери в тексті не мали б бути. Спочатку Альберті використовував два алфавіти, потім більше. Таким чином, Альберті одним з перших висунув ідею «подвійного шифрування» — текст, отриманий в результаті першого шифрування, піддавався повторному шифруванню іншим шифром. Ідеї Альберті використовувалися при створенні шифромашин в першій половині XX століття, деякі з них використовувалися в різних країнах до 1980-х років. Шифр Альберті не є періодичним. В XVI столітті Джованні Баттіста делла Порта використовував систему ключових слів для реалізації шифру, який може розглядатися як заміна шифру Альберті. Одне ключове слово використовується для формування перестановки алфавіту, інші пов'язані дані використовуються, щоб визначити послідовність для декількох алфавітів. Це техніка, яка була названа «подвійний шифр» була більш точно описана як Багатоалфавітна. Техніка перестановки Порта була заснована на 2-мірній таблиці, для прикладу ось варіант таблиці Порта на основі 26-символьного алфавіту:[2]
Еквівалент зовнішнього диска: | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | ||
Кількість зсувів | 0 | A | L | B | E | R | T | I | C | P | H | D | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z |
1 | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | |
2 | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | H | J | K | M | N | O | S | U | V | W | X | |
3 | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | H | J | K | M | N | O | S | U | V | W | |
4 | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | H | J | K | M | N | O | S | U | V | |
5 | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | H | J | K | M | N | O | S | U | |
6 | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | H | J | K | M | N | O | S | |
7 | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | H | J | K | M | N | O | |
8 | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | H | J | K | M | N | |
9 | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | H | J | K | M | |
10 | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | H | J | K | |
11 | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | H | J | |
12 | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | H | |
13 | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | G | |
14 | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | F | |
15 | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | D | |
16 | D | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | H | |
17 | H | D | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | P | |
18 | P | H | D | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | C | |
19 | C | P | H | D | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | I | |
20 | I | C | P | H | D | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | T | |
21 | T | I | C | P | H | D | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | R | |
22 | R | T | I | C | P | H | D | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | E | |
23 | E | R | T | I | C | P | H | D | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | B | |
24 | B | E | R | T | I | C | P | H | D | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A | L | |
25 | L | B | E | R | T | I | C | P | H | D | F | G | H | J | K | M | N | O | S | U | V | W | X | Y | Z | A |
У цьому випадку верхній регістр букв відповідає рандомному внутрішньому алфавіту дисків, а ми використовуємо ALBERTICIPHER як ключове слово, щоб формувати алфавіт. Великі букви відповідають зовнішньому диску, а цифри на кутках представляють індекси декількох алфавітів, друге ключове слово використовується для позначення послідовності індексів, що використовуються для вибору рядків в таблиці. Для шифру типу Порта, ключ шифрування буде складатися з перестановки, наведеної в першому рядку таблиці плюс зсув, який слідує після кожної літери тексту. Кожне нове значення зсуву в методі Порта, або кожне нове «слово» у другому ключовому слові, означає новий алфавіт шифротексту.
Відкриття нового класу шифрів — шифрів багатоалфавітної заміни — могло мати найважливіше значення для вдосконалення криптографічних методів, проте твір Альберті не набув широкого поширення. Єдиним неіталійським письменником XVI століття, який згадує в своїй роботі трактат Альберті, був французький дипломат Блез де Віженер. Відомості про те, що Альберті дійсно створив такий трактат, здавалися загубленими аж до другої половини XIX століття, коли англійський дослідник Р. Браун встановив на підставі вивчення рукописів венеціанських архівів, що Альберті дійсно винайшов нову систему шифрування[2].
Приклад з використанням шифру Альберті
Як приклад цього шифру зашифруємо повідомлення «this is a test of alberti» за допомогою наведеної вище таблиці. Почнемо з написання другого ключового слова, CATWALK, неодноразово під текстом.
this is a test of alberti CATW AL K CATW AL KCATWAL
Тепер замінимо букви ключового слова з їх числовим еквівалентом, де
t--h--i--s i--s a t--e--s--t o--f a--l--b--e--r--t--i 2 0 19 22 0 11 10 2 0 19 22 0 11 10 2 0 19 22 0 11
Наступний символ, відповідний координатам, визначається характером тексту і значенням індексу, (тобто, (t, 2) = N, (h, 0) = C і т. д.)
this is a test of alberti NCKW PC M NRZX JU MHLFVSX
Повідомлення змінено до невпізнання. Також слід зазначити, що частотний аналіз не має сенсу, оскільки, без відповідних букв h, s, t й i обидва були переведені на відповідні літери С і X.
Розшифровка повідомлень
Щоб розшифрувати таємне послання, випишіть зашифровані символи і відповідні їм зсуви.
N--C--K--W P--C M N--R--Z--X J--U M--H--L--F--V--S--X c--a--t--w a--l k c--a--t--w a--l k--c--a--t--w--a--l 2 0 19 22 0 11 10 2 0 19 22 0 11 10 2 0 19 22 0 11
Тепер можна подивитися символи в таблиці вище, щоб отримати вихідне повідомлення.
this is a test of alberti
У порівнянні з попередніми шифрами того часу шифр Альберті було неможливо розшифрувати без знання методу. Це відбувалося тому, що частотний розподіл і частотний аналіз — єдиний відомий спосіб для нападу на шифри в той час — не допомагали[2].
Значення
Слід проаналізувати ще дві особливості міркувань Альберті про криптографії.
- Вважаючи своїм обов'язком згадати про стеганографію, Альберті виявляє до неї значно менший інтерес, ніж до розгляду різних криптографічних методів. Його увагу приваблює аналіз і розробка криптографічних методів, які вимагають перш за все руху людського розуму. Однак знахідки випереджали час, тому ідея шифрування була відображена в такий наочній формі, як використання дисків з мідних пластин.
- Стало можливим створення принципово нової системи шифрування. Це пов'язано з тим, що вперше в основу вдосконалення методів було покладено використання математичних знань, зокрема деяких положень комбінаторики.
Отже, внесок Альберти в розвиток криптології можна вважати суттєвим не тільки для створення передумов активного використання криптографії для забезпечення безпеки папської секретного листування, а й для формування теорії криптографії в ранній новий час.