You are on page 1of 24

Захист баз даних

Лекція 1
Тема: СЕРЕДОВИЩЕ БАЗИ ДАНИХ

Навчальні питання

1. Середовище бази даних ................................................................................................ 1


1.1. Архітектура бази даних ........................................................................................... 1
1.2. Моделі даних ............................................................................................................. 3
1.3. Програмні і мовні засоби баз даних ...................................................................... 6
1.4. Архітектура інформаційної системи .................................................................... 8
2. Традиційні криптографічні системи ......................................................................... 9
2.1. Криптографія і її основні поняття ........................................................................ 9
2.2. Принцип Керкхоффса............................................................................................ 11
2.3. Етапи розвитку криптографічних систем ......................................................... 12
3. КЛАСИЧНІ ШИФРИ ЗАМІНИ ............................................................................... 16
3.1. Загальна характеристика шифрів заміни ......................................................... 16
3.2. Моноалфавітна звичайна заміна Цезаря (шифр Цезаря) .............................. 17
3.3. Шифр Цезаря з ключовим словом ...................................................................... 18
3.4. Шифр Гронсфельда................................................................................................ 19
3.5. Гомофонічна заміна ............................................................................................... 20
3.6. Шифруюча таблиця Трисемуса........................................................................... 20
3.7. Біграмний шифр Плейфера.................................................................................. 21
3.8. Біграмний двотабличний шифр ............................................................................ 22
3.9. Координатні заміни .................................................................................................. 23

1. Середовище бази даних


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

1
Захист баз даних

Незалежність застосувань від даних забезпечується засобами СУБД. Цей


підхід базується на тому, що користувачі застосовуючи БД, не знають внутрішнє
представлення даних. На рис. 1.1 наведено трирівнева модель архітектури СУБД,
що була запропонована Комітетом планування стандартів і норм SPARC
(Standarts Planning and Requirements Committee) Американського національного
інституту стандартів ANSI (American National Standarts Institute). Опис структури
даних на будь-якому рівні називається схемою. Існує три різних типи схем БД,
які визначаються згідно з рівнями абстракції архітектури СУБД. На самому
верхньому рівні є декілька зовнішніх схем, які відповідають різним 18
представленням даних. Цей рівень визначає точку зору на БД окремих
застосувань. Кожне застосування бачить і обробляє тільки ті дані, які необхідні
цьому застосуванню.

Рисунок 1.1 – Трирівнева архітектура СУБД

На концептуальному рівні опис БД називається концептуальною схемою.


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

2
Захист баз даних

забезпечити незалежність від даних. Це означає, що зміни на нижніх рівнях не


впливають на верхні рівні. Розрізняють логічну і фізичну незалежність при
роботі з даними. Логічна незалежність від даних означає захищеність зовнішніх
схем від змін, що вносяться в концептуальну схему. Зміни концептуальної схеми
БД не викликають необхідності в корегуванні існуючих зовнішніх схем для
користувачів, і відповідно не викликають змін в застосуваннях, що працюють з
цими схемами.
Фізична незалежність від даних означає захищеність концептуальної і
зовнішніх схем від змін, що вносяться у внутрішню схему. До змін внутрішньої
схеми належать використання різних файлових систем або структур даних,
різних пристроїв зберігання, модифікація пошукових структур тощо. Крім трьох
названих рівнів абстрагування в БД існує ще один рівень, що передує їм. Цей
рівень відображає інформацію про предметну область, а модель цього рівня
називається інфологічною моделлю предметної області.
Таким чином головними рівнями абстрагування в БД є рівні: −
інфологічний; − зовнішній; − концептуальний; − внутрішній. Перехід від одного
рівня абстрагування до наступного і складає в загальному вигляді процес
проектування БД.

1.2. Моделі даних

Модель даних – це деяка абстракція, в якій знаходять своє відображення


найбільш важливі аспекти функціонування визначеної предметної області, а
другорядні – ігноруються. Модель даних являє собою деяку цільову модель
предметної області. У моделі даних розрізняють три головні складові: −
структурна частина, яка визначає правила породження допустимих для даної
СУБД видів структур даних; − управляюча частина, яка визначає можливі
операції над такими структурами ; − класи обмежень цілісності даних, які
можуть бути реалізовані засобами цієї системи. Моделювання даних – це процес
створення логічного представлення структури бази даних. На рис. 1.2 показана
класифікація моделей даних.
Кожному рівню представлення інформації відповідає певна модель.
Інфологічна модель – відображає інформацію про предметну область у вигляді
незалежному від СУБД, що використовується. Ця модель відображає
інформаційнологічний рівень абстрагування, який пов'язаний з описом об'єктів
предметної області, їх властивостей і взаємозв'язків.
Часто ці моделі ототожнюють з концептуальними моделями предметної
області і називають концептуальними інфологічними моделями (внутрішня і
зовнішня концептуальні інфологічні моделі). Даталогічна модель – модель

3
Захист баз даних

логічного рівня, яка відображає логічні зв'язки між елементами даних


безвідносно до їх змісту і середовища збереження. Часто ці моделі ототожнюють
з логічними моделями.

Рисунок 1.2 – Класифікація моделей даних

Фізична модель – описує те, як дані зберігаються в комп'ютері,


представляючи інформацію про структуру записів, їх впорядкованість і про
існуючі шляхи доступу до даних.
Модель "сутність-зв'язок" (ER-модель) – описує модель предметної області і
складається з множини сутностей, множини звязків між сутностями, а також з
атрибутів сутностей і зв'язків. В модель входить обмеження цілісності даних, що
пов'язано з двома множинами сутностей і називається залежністю по існуванню.
ER-моделі дозволяють графічно представляти моделі предметних областей. Вони
є складовою частиною багатьох CASE-продуктів.
Семантична об'єктна модель – описує модель предметної області і являє
собою модель даних. Ця модель складається з семантичних об'єктів, що містять
сукупність атрибутів. Атрибути групуються у класи. Модель даних володіє більш
розвиненими засобами відображення семантики у порівнянні з теоретико-
множинними і теоретико-графовими моделями.

4
Захист баз даних

Теоретико-графова модель – модель даних, в якій дозволені структури даних


можуть бути представлені у вигляді графа загального або спеціального виду,
наприклад дерева. Необхідну групу операцій на мові маніпулювання даними, що
засновані на цій моделі, представляють навігаційні операції. Операції над даними
мають позаописовий характер.
Теоретико-множинна модель – модель даних, в якій використовується
математичний апарат реляційної алгебри, реляційного обчислення, а операції над
даними маніпулюють таблицями.
Фактографічні моделі – містять відомості, які представлені у вигляді
спеціальним чином організованих сукупностей формалізованих записів даних.
Документальні моделі – передбачають, що в якості одиничного елемента
інформації виступає неподільний на менші складові частини документ, а
інформація про документ, як правило, не структурується, або структурується в
обмеженому вигляді. В цих моделях в основному розглядаються тексти на
природній мові, формати документів є вільними.
Ієрархічна модель – модель даних в основі якої використовується ієрархічна,
деревоподібна структура даних. Вершинами цієї структури є записи, які
складаються з простих елементів даних різних типів. Батьківському запису
відповідає довільне число екземплярів підлеглих записів кожного типу.
Мережна модель – модель даних, в якій дозволені структури даних можуть
бути представлені у вигляді графа загального вигляду. Вершинами такого графа
можуть бути дані різних типів – від атомарних елементів даних до записів
складної структури. На відміну від ієрархічної моделі наступник в цій моделі
може мати довільне число батьків.
Реляційна модель – модель даних, яка заснована на математичному понятті
відношення і представленні відношень у формі таблиць.
Постреляційна модель – розширена реляційна модель, яка знімає обмеження
неподільності даних, що зберігаються в записах таблиць. Ця модель допускає
багатозначні поля – поля, значення яких складається з підзначень. Набір значень
багатозначних полів вважається самостійною таблицею, яка вбудована в основну
таблицю. Часто ці моделі ототожнюють з об'єктно-реляційними моделями.
Об'єктно-орієнтована модель – модель даних, яка базується на понятті
об'єкта, тобто сутності, що володіє станом і поведінкою. Стан об'єкта
визначається його атрибутами, а поведінка визначається сукупністю операцій,
що визначені для 23 цього об'єкта. Також передбачається можливість підтримки
зв'язків між типами об'єктів.
Багатомірна модель – модель даних, яка оперує багатомірним
представленням даних (у вигляді гіперкубу) і орієнтована на підтримку аналіза
даних. Передбачається конструювання різноманітних агрегацій даних у межах

5
Захист баз даних

гіперкубу, побудова різних його проекцій – підмножин гіперкубу, деталізація і


обертання даних, а також цілий ряд інших операцій.
Дескрипторна модель – описує кожен документ за допомогою дескриптора.
Дескриптор має жорстку структуру і являє собою набори деяких лексичних
одиниць (слов, словосполучень, термінів), які потрібні для роботи з
документами. Дескриптори між собою не зв'язані.
Тезаурусна модель – описує кожен документ за допомогою дескрипторів, а
також змістовних відношень між лексичними одиницями (ціле-частина, род-вид,
клас-підклас і т.ін.). Ці моделі дозволяють підвищити ефективність
дескрипторних моделей за рахунок більш ефективного відображення предметної
області.
Гіпертекстова модель – модель, що заснована на розмітці документа за
допомогою спеціальних навігаційних конструкцій, які відповідають змістовим
зв'язкам між різними документами, або окремими фрагментами одного
документа. Такі конструкції утворюють деяку семантичну мережу в базі
документів.

1.3. Програмні і мовні засоби баз даних

Основу програмних засобів банка даних складає СУБД. В СУБД можна


виділити ядро СУБД, яке підтримує сукупність 24 базових механізмів роботи з
БД, а також інші компоненти, які забезпечують засоби тестування, налагодження
системи, утіліти, які забезпечують виконання таких додаткових функцій, як
відновлення БД, збір статистики і т.ін. Важливою компонентою СУБД є
транслятори і компілятори для мов, що використовуються. Для роботи з БД
розробляються застосування.
Застосування – програма, яка призначена для рішення деякої сукупності
задач в даній предметній області, або яка являє собою типовий інструментарій,
що застосовується в різних предметних областях. Застосування може
використовувати різні джерела даних (фактографічні, документальні, WEB і
т.ін.), мати різну архітектуру (дволанкову, триланкову, розподілену).
Застосування бази даних – застосування, яке використовує ресурси деякої
системи баз даних. Для доступа до БД використовується інтерфейс прикладного
програмування СУБД, в середовищі якої він підтримується. Застосування можуть
бути написані на стандартній алгоритмічній мові програмування (Pascal, C, Basic
тощо) з вбудованими операторами на мові SQL.
Мова даних – мова, яка призначена для визначення даних, маніпулювання
даними, а також інших функцій в термінах понять і рамках можливостей, які
передбачені в моделі даних, що підтримується розглядуваною СУБД.

6
Захист баз даних

Мова запитів – мова доступу до БД, яка орієнтована на користувача. Мова


запитів належить до декларативних мов, описує властивості і взаємозв'язки
сутностей, але не описує алгоритм рішення задачі. Як правило мова запитів
використовується в інтерактивному режимі, а також може вбудовуватися в
програмний код застосувань.
Мова маніпулювання даними (Data Manipulation Language – DML) – мова,
яка реалізує операційні можливості моделі 25 даних, що використовується. Ця
мова визначає операції, які допустимі над даними, що знаходяться в БД. Мова
визначення даних (Data Definition Language – DDL) – мова, яка служить для
опису структури БД, обмежень цілісності, а також, можливо, для специфікації
процедур, що зберігаються, тригерів, обмежень управління доступом і т.ін.
Функціональні можливості мов визначення і маніпулювання можуть
інтегруватися в єдину мову даних.
Мова програмування баз даних – мова, яка забезпечує концептуально єдине
інтегроване середовище, яке засновано на єдиній моделі даних, для
програмування застосувань і управління даними в БД. Такі мови об'єднують
функції традиційних мов програмування із засобами опису і маніпулювання
даними в БД.
Мова програмування базова – традиційна мова програмування, для якої дана
СУБД забезпечує інтерфейс прикладного програмування (API). Прикладна
програма, яка написана на цій мові, має доступ до деяких функціональних
можливостей СУБД і може виконувати з її допомогою доступ до БД. Мови, які
належать до мов четвертого покоління (FourthGeneration Language – 4GL), мають
такі функціональні можливості:
− генератори екранних форм для створення шаблонів вводу і відображення
даних;
− генератори звітів на основі інформації, що зберігається в БД;
− генератори застосувань для створення програм обробки даних;
− генератори запитів;
− генератори для представлення даних у вигляді різного роду діаграм.
Для формування запиту за допомогою різних СУБД найчастіше
використовуються дві основні мови опису запитів:
− SQL (Structured Query Language) – структурована мова запитів;
− QBE (Query By Example) – мова запитів за зразком.
Головна різниця між цима мовами полягає в тому, що мова QBE передбачає
ручне або візуальне формування запиту, а мова SQL – програмування запиту.
Мова SQL є найбільш поширеною мовою для роботи з БД. На даний час існують
такі міжнародні стандарти на мову SQL: SQL1, SQL2, SQL3. Мова SQL не
володіє функціями повноцінної мови розробки і орієнтована на доступ до БД.

7
Захист баз даних

Використання мови SQL може бути самостійним і вона може включатися в склад
засобів розробки програм. В цьому випадку її називають вбудованим SQL.
Розрізняють два головних методи використання вбудованого SQL:
статичний і динамічний. Статичне використання передбачає застосування в
програмі функцій викликів мови SQL, які включаються в програмний модуль і
виконуються після компіляції програми. Динамічне використання передбачає
динамічну побудову викликів функцій мови SQL та інтерпретацію цих викликів
у ході виконання програми. Динамічний метод застосовується тоді, коли вид SQL
запиту заздалегідь невідомий і будується у діалозі з користувачем. Будь-яке SQL-
застосування реляційної БД складається з трьох частин: інтерфейса користувача,
набору таблиць в БД і SQL-машини.

1.4. Архітектура інформаційної системи

Ефективність функціонування інформаційної системи багато в чому


залежить від її архітектури. Функціональні 27 частини інформаційної системи
можуть розміщуватися на одному або на декількох комп'ютерах. У разі, якщо
інформаційна система розміщується на одному комп'ютері, можливі такі варіанти
використання програмних засобів: застосування і СУБД, застосування і ядро
СУБД, незалежне застосування. У першому випадку взаємодія користувача і
СУБД виконується або напряму через користувацький інтерфейс СУБД, або за
допомогою застосування (рис. 1.3).

Рисунок 1.3 – Використання застосування і СУБД

У другому випадку взаємодія користувача і СУБД виконується за


допомогою застосування (рис. 1.4). Такий підхід дозволяє підвищити швидкість
роботи застосування, зменшити об'єм необхідної пам'яті.

Рисунок 1.4 – Використання застосування і ядра СУБД

Створення незалежних застосувань дозволяє звертатися до БД без СУБД


(рис. 1.5). Такий підхід дозволяє ще більше підвищити швидкість роботи
застосування, зменшити об'єм необхідної пам'яті. Недоліки такого підходу

8
Захист баз даних

пов'язані з трудомісткістю доробки застосувань, відсутністю стандартних засобів


СУБД по обслуговуванню БД.

Рисунок 1.5 – Використання незалежного застосування

При інтеграції комп'ютерів в мережі виникає можливість розподілу


застосувань, що працюють з єдиною БД, а також самої БД по мережі. Найбільш
поширеною є схема, при якій кожен користувач маю свою персональну БД (КБД)
і звертається до серверної БД (СБД) за інформацією, що спільно
використовується багатьма користувачами (рис. 1.6).

Рисунок 1.6 – Використання сервера БД

Під сервером розуміється комп'ютер або програма, які керують певними


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

2. Традиційні криптографічні системи


2.1. Криптографія і її основні поняття
В перекладі з грецької мови слово криптографія означає тайнопис.
Основне призначення криптографії – утаємничити необхідну інформацію.
Криптографія надає засоби для захисту інформації і тому є складовою діяльності з
забезпечення безпеки інформації.
Існують різні засоби втаємничення інформації:
• Приховування каналу передачі повідомлення.
• Маскування змісту повідомлення з використанням стеганографічних методів.
• Ускладнення можливості перехоплення самого повідомлення противником.

9
Захист баз даних

• Інші.
На відміну від перерахованих методів криптографія не «приховує»
повідомлення, а перетворює їх у формы, недоступну для розуміння противником.
Таке перетворення забезпечується використанням криптографічних систем.
Криптографічна система (криптосистема) – система секретного зв’язку, в якій
зміст інформації, що передається, утаємничується за допомогою криптографічних
перетворень; при цьому сам факт передачі інформації не приховується.
Криптографічні перетворення визначаються певним параметром, який
називається ключ. Зазвичай ключ є буквеною або числовою послідовністю. Кожне
криптографічне перетворення однозначно визначається ключем і описується певним
криптографічним алгоритмом.
Криптографічними перетвореннями є:
Шифрування– процес перетворення вихідного тексту (P) в зашифрований текст
(C) за допомогою шифруючої функції (E) з секретним ключем шифрування (Ke) у
відповідності з обраним алгоритмом шифрування: C=EKe(P).
Розшифрування – обернений шифруванню процес перетворення
зашифрованого тексту (C) в вихідний текст (P) за допомогою функції
розшифрування (D) з секретним ключем розшифрування (Kd) у відповідності з
обраним алгоритмом шифрування: P=DKd(C).
Сімейство обернених перетворень защифрування і розшифрування називають
шифром. Алгоритми шифрування і розшифрування можуть відрізнятись, відповідно
можуть розрізнятись і ключі шифрування і розшифрування. В загальному випадку
криптосистема має наступну структуру (Рис.2.1):

Рис.2.1. Структура криптосистеми

Робота криптосистеми може бути описана наступним чином:


1. З джерела ключів вибирається ключі (шифрування Ke і розшифрування Kd) і
відправляються по надійним каналам передаючій і приймаючій стороні.

10
Захист баз даних

2. До вихідного (або відкритого) повідомлення p, що призначене для передачі,


застосовується алгоритм шифрування EKe, внаслідок чого отримується
зашифроване повідомлення C=EKe(p).
3. Зашифроване повідомлення пересилається по каналу для обміну
повідомленнями, який не вважається надійним (тобто зашифроване повідомлення
може бути перехоплене порушником), приймаючій стороні.
4. На приймаючій стороні до зашифрованого повідомлення C застосовується
обернене перетворення для отримання вихідного повідомлення p=DKd(C). В
класичній криптографії для шифрування і розшифрування використовувався один і
той самий ключ: Ke=Kd=K. Такі криптосистеми отримали назву криптосистем з
секретним ключом (secret key cryptosystems); сьогодні їх також називають
симетричним криптосистемами (symmetric cryptosystems).
Зауважимо, що алгоритми шифрування і розшифрування Е і D відкриті, і
секретність вихідного тексту p в даному шифротекста C залежить від таємності
ключа К.
Для сучасної криптографії революційним стало усвідомлення того факту, що
ключі шифрування і розшифрування можуть не співпадати. Такі криптосистеми
отримали назву асиметричних криптосистем (asymmetric cryptosystems). Оскільки
зашифроване повідомлення передається через канал, доступний противнику,
можливе його перехоплення і «прочитання» особою, яка не має ключа. В цьому
випадку говорять про дешифрування повідомлення.
Таким чином, терміши «розшифрування» і «дешифрування» слід розрізняти:
при розшифровуванні ключ вважається відомим, тоді як при дешифруванні ключ
невідомий. Розшифрування здійснюється так само просто, як і шифрування.
Дешифрування є значно складнішою задачею.
Рівень складності цієї задачі і визначає здатність протистояти спробам
противника заволодіти інформацією, яка захищається. В зв’язку з цим говорять про
криптографічну стійкість шифру, розрізняючи більш і менш стійкі. Наука, що
вивчає методи дешифрування, називається криптоаналізом.
Галузь знань, що об’єднує криптографію і крипто аналіз, називають
криптологією.

2.2. Принцип Керкхоффса

Основне правило криптографії - використовувати відкриті й опубліковані


алгоритми та протоколи.
Вперше цей головний принцип був сформульований у 1883 році Агустом
Керкхгоффсом (A.Kerckhoffs): в криптографічній системі єдиним секретом має
залишатися ключ, сам же алгоритм не повинен бути засекречений. Сучасні

11
Захист баз даних

криптологи повністю прийняли цей принцип, називаючи все, що йому не відповідає,


"безпекою через неясність". Будь-яка система, що тримає в цілях безпеки свої
алгоритми в секреті, просто ігнорується співтовариством і обзивається "ханаанським
бальзамом".
Висновок з принципу Кірхгофа полягає в тому, що чим менше секретів містить
система, тим вище її безпека. Якщо втрата будь-якого із секретів призводить до
руйнування системи, то система з меншим числом секретів безумовно буде
надійнішою. Чим більше секретів містить система, тим вона більш крихка. Менше
секретів - вище міцність.
Обґрунтування принципу Кірхгофа полягає у такому: якщо для забезпечення
безпеки системи криптоалгоритм повинен залишатися в таємниці, то система буде
більш крихкою просто тому, що в ній виявиться більше секретів, які для
забезпечення її безпеки потрібно зберігати.

2.3. Етапи розвитку криптографічних систем


В ході розвитку криптосистем виділяють такі етапи (Таблиця 2.1).
Таблиця 2.1 – Етапи розвитку криптосистем

Перші системи шифрування з’явились одночасно з письменністю у V-IV тт. до


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

12
Захист баз даних

призначений для передачі. Після запису стрічка знімалась з жезлу і передавалась


адресату, який мав таку саму Сциталу. Цікаво, що був відомий і метод дешифрації
такого шифру, винайдення якого приписується Арістотелю. Пропонувалось
заточити на конус довгий брус і, обернувши його стрічкою, починати зсувати її по
конусу від малого діаметру до найбільшого. Там, де діаметр конусу співпадав з
діаметром Сцитали, букви текту утворювали слова. Далі залишалось тільки
виготовити циліндр потрібного діаметру.
Іншим шифрувальним засобом часів Спарти була табличка Енея. На невеличкій
горизонтальній табличці розташовувався алфавіт, а по її боковим сторонам
розташовувались виїмки для намотування нитки. При шифруванні нитка
закріплювалась з однієї із сторін таблички і намотувалась на неї. На нитці робились
відмітки (наприклад, вузлики) в місцях, що знаходились напроти букв даного
тексту. Після шифрування нитка змотувалась і доставлялась адресату. Цей шифр
був досить надійним: історії не відомі факти його дешифрування. Подібні шифрові
пристосування з невеличкими змінами проіснували до епохи розквіту Риму. Для
управління імперією шифрований зв’язок в системі органів влади був життєво
необхідним.
Особливу роль відіграв шифр, запропонований Юлієм Цезарем: кожна буква
повідомлення замінялась буквою алфавіту, зсунутою на три позиції (замість A – D,
B – E, … , Z –A). З часів Цезаря до XIV-XV століть криптографія розвивалась, але
практика шифрування зберігалась у глибокій таємниці. Так, в часи хрестових
походів шифрувальники Папи Римського після року роботи підлягали фізичному
знищенню. Тому про цей період майже нічого невідомо.
В епоху Відродження почали розвиватись наукові методи криптографії і крипто
аналізу. Зокрема для дешифрування шифрів став використовуватись метод
частотного аналізу зустрічає мості букв, для шифрування почали використовуватись
шифри багатозначної заміни (омофони), отримали поширення багатоалфавітні
шифри (шифр Тритемія, шифр Віженера), в якості засобу шифрування почала
використовуватись поворотна решітка. Поворотна решітка представляла собою лист
з твердого матеріалу з прорізями. Накладаючи таку решітку на лист паперу, можна
записувати у вирізи таємне повідомлення. Після цього, знявши решітку, треба було
заповнити вільні місця, що залишились, маскуючим текстом.
Подібним стеганографічним методом маскування повідомлень користувались
багато історичних осіб, зокрема, кардинал Рішіл’є у Франції. Він використовував в
якості решітки прямокутник розміру 7х10 (Рис.2.2) з 23 прорізами в позиціях (1,8),
(2,9), (3,6), (4,5), (4,6), (5,1), (5,6), (5,7), (5,9), (6,2), (6,10), (7,9), (7,10). Для довгих
повідомлень прямокутник застосовувався кілька разів.

13
Захист баз даних

Рис.2.2. Решітка Рішіл’є

В історії криптографії XVII-XVIII ст. називають ерою «чорних кабінетів». В


цей період в багатьох державах Європи з’явились дешифрувальні підрозділи, які і
називались «чорними кабінетами». Перший з них був створений у Франції за
ініціативою кардинала Рішіл’є. Характерним для цього періоду є широке
розповсюдження шифрів, які називались номенклаторами. Номерклатори
поєднували в собі просту заміну і код. В якості прикладу номенклатура наведемо
«малий шифр», що використовувався в наполеонівській армії (Таблиця 2.2).

Таблиця 2.2. «Малий шифр», що використовувався в наполеонівській армії

Приклад застосування цього шифру наведений в Таблиці 2.3.

14
Захист баз даних

Таблиця 2.3. Приклад шифрування «малим шифром» слова NAPOLEON

В простих нуменклаторах код складався з кількох десятків слів або фраз з


двобуквеними кодовими позначеннями. З часом списки слів в номерклаторах
збільшились до двох-трьох тисяч. В цілому XVII-XVIII ст. не дали для криптографії
нових ідей. Ера «чорних кабінетів» закінчилась в 40-их роках XIX ст.
Нові ідеї з’явились в середині XIX ст. Цей період пов’язаний з виникненням
стійкого способу ускладнення числових кодів – гаміювання. Він полягав у
перешифровуванні закодованого повідомлення за допомогою деякого ключового
числа, яке називалось гамою. Шифрування за допомогою гами полягало у
сумуванні всіх кодованих груп повідомлення з одним і тим самим ключовим
числом.
Приклад 1. Результат накладення гами 6413 на кодований текст (одиниці
перенесення, що з’являються при додаванні між кодовими групами, опускаються):

Приклад 2. Результат оберненої операції «зняття гами»

Перша світова війна стала поворотним пунктом в розвитку криптографії в


зв’язку зі зростанням обсягів шифропереписки. Криптографія стала широким полем
діяльності. Проте нових наукових ідей в цей час не з’явилося. Майже половина XX
ст. була пов’язана з використанням колісних шифраторів. Їх різні конструкції були
запатентовані майже одночасно в різних країнах (Голандії, Німеччині, Швеції).
Найбільш відомою шифромашиною цих часів була «Енігма», яка у довоєнний
період і під час другої світової війни використовувалась в германській армії.

15
Захист баз даних

Принцип її роботи такий. На екрані оператору показувалася буква, якою


шифрувалася відповідна літера на клавіатурі. Те, якою буде зашифрована літера,
залежало від початкової конфігурації коліс. Суть в тому, що існувало понад сто
трильйонів можливих комбінацій коліс, і з часом набору тексту колеса зсувалися
самі, так що шифр змінювався протягом усього повідомлення. Все Енігми були
ідентичними, так що при однаковому початковому положенні коліс на двох різних
машинах і текст виходив однаковий. У німецького командування були Енігми і
список положень коліс на кожен день, так що вони могли з легкістю
розшифровувати повідомлення один одного, але вороги не повідомляючи положень
послання прочитати не могли. У другій половині XX ст. в зв’язку з розвитком
елементної бази обчислювальної техніки з’явились електронні шифратори. Сьогодні
для шифрування даних найбільш широко застосовують три види шифраторів:
апаратні, програмно-апаратні та програмні. Їх основна відмінність полягає не тільки
в способі реалізації шифрування і ступеня надійності захисту даних, але і в ціні.
Найдешевші пристрої шифрування - програмні, потім йдуть програмно-
апаратні засоби і, нарешті, найдорожчі - апаратні. В 70-их роках народилась «нова
криптографія» - криптографія з відкритим ключем. Криптографія почала широко
використовуватись не тільки у військовій, дипломатичній, державній сферах, а
також в комерційній, банківській та інших сферах.

3. КЛАСИЧНІ ШИФРИ ЗАМІНИ

3. 1. Загальна характеристика шифрів заміни


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

16
Захист баз даних

стовпчику. Якщо літера знаходилась у нижньому рядку таблиці, то для криптограми


брали саму верхню літеру з того ж стовпчика.
Таким чином, основним для будь-якого шифру заміни є поняття алфавіту,
який являє собою фіксовану послідовність всіх використовуваних знаків. При цьому
фіксується як порядок слідування знаків, так і їх загальна кількість. Знаки алфавіту
нумеруються по порядку, починаючи з нуля, тобто 0 ≤ j < m. Таким чином, m являє
собою загальну кількість знаків в алфавіті і називається його обсягом. Знаки
відкритого тексту теж доцільно нумерувати, починаючи з нуля, тобто 0 ≤ i < n. Тут n
являє собою загальну кількість знаків у повідомленні.

3.2. Моноалфавітна звичайна заміна Цезаря (шифр Цезаря)


Як повідомляє історик Гай Светоній, римський імператор Гай Юлій Цезар
користувався у своєму військовому та особистому листуванні шифром, суть якого
полягала у заміні кожної літери повідомлення на одну із інших літер 26- значного
латинського алфавіту.
Щоб зрозуміти зашифроване повідомлення Цезаря, треба було кожну літеру в
ньому замінити третьою, що йде після неї в алфавіті. При досягненні кінця алфавіту
виконувався циклічний перехід до його початку. Такий метод шифрування можна
відобразити шифрувальною таблицею, в якій указано замінюючи знаки для кожного
знаку криптограми.
Використання таблиці очевидне: при шифруванні для кожного знаку
відкритого тексту шукаємо відповідний знак криптограми, при дешифруванні –
навпаки.

Отже, шифр Цезаря пов’язаний із використанням первинного алфавіту (для


відкритого тексту) і вторинного алфавіту (для криптограми), циклічно зміщеного
відносно первинного на три знаки вперед.
Зокрема, Цезар використовував свій шифр у листуванні з Цицероном (близько
50 р. до н.е.). А його відоме послання VENI VIDI VICI – «Пришёл, увидел, победил»
своєму другові Амінтію у зашифрованому вигляді мало такий вигляд: SBKF SFAF
SFZF.
Загальний випадок шифру Цезаря для первинного алфавіту деякого обсягу m
(0 ≤ j < m) полягає в тому, що вторинний алфавіт циклічно зміщується відносно
первинного на K знаків вперед (0 ≤ K < m). Значення K є ключем цього шифру.

17
Захист баз даних

Наприклад, для алфавіту “АБВГДЕЖЗИК” обсягом m=10 шифрувальна таблиця для


K=6 має наступний вигляд:
Код 0 1 2 3 4 5 6 7 8 9
Знак А Б В Г Д Е Ж З И К
відкритого
тексту
Знак Е Ж З И К А Б В Г Д
криптограми

Таким чином, відкритому тексту “ЖАБА” відповідає криптограма “БЕЖЕ” і


навпаки.
Недоліки моноалфавітної звичайної заміни Цезаря:
 вона не маскує частот появи різних знаків відкритого тексту і тому її легко
зламати на підставі аналізу частот появи знаків у криптограмі;
 у вторинному алфавіті зберігається той же самий алфавітний порядок
знаків, що і в первинному;
 мала кількість можливих ключів (рівна обсягу алфавіту).

3.3. Шифр Цезаря з ключовим словом


Шифр Цезаря з ключовим словом теж є моноалфавітним. Він має ту
особливість, що порядок знаків у вторинному алфавіті у порівнянні з первинним є
дещо іншим завдяки використанню ключового слова. Крім того, практично
необмеженою стає кількість ключів. Для шифрування як ключ вибирається деяке
число 0 ≤ K < m, а також ключове слово.
Всі знаки ключового слова мають бути різні. Ключове слово записують під
знаками алфавіту, починаючи зі знаку, числовий код якого співпадає з числом K.
Знаки алфавіту, що залишились, записують за ключовим словом в алфавітному
порядку. Припустимо, що для алфавіту “АБВГДЕЖЗИК” обсягом m=10 ключем
вибрано число K = 3 і ключове слово БЕДА. Отримуємо шифрувальну таблицю:

В цій таблиці первинний алфавіт (для відкритого тексту) вказано в другому


рядку, вторинний (для криптограми) – в третьому та четвертому. У відповідності з
цією таблицею відкритий текст ЖАЖДА шифрується як АЗАЕЗ. Вимога про

18
Захист баз даних

відмінність всіх знаків ключового слова не є обов’язковою. В цьому випадку просто


записують ключове слово без повторення однакових знаків.
Наприклад, ключове слово ЖАЖДА записують як ЖАД. В шифрі Цезаря з
ключовим словом недолік моноалфавітної звичайної заміни Цезаря, пов’язаний з
відсутністю маскування частот появи різних знаків відкритого тексту, зберігається.

3.4. Шифр Гронсфельда

Шифр Гронсфельда являє собою модифікацію моноалфавітної звичайної заміни


Цезаря більш складним ключем, який являє собою послідовність чисел. Кожне з
чисел ключа має бути меншим обсягу алфавіту m. Цей ключ записують під
відкритим текстом. Якщо ключ коротший відкритого тексту, то його повторюють
циклічно. Кріптограму отримують як і в шифрі Цезаря, але здійснюють відлік такої
кількості літер, яка указана відповідним числом ключа. Таким чином, шифр
Гронсфельда є багатоалфавітним, оскільки використовує декілька вторинних
алфавітів (по кількості різних чисел у складі ключа). Наприклад, для алфавіту
“АБВГДЕЖЗИК” обсягом m=10 шифрувальна таблиця для чисел ключа в межах від
K=1 до K=6 має наступний вигляд:

Для прикладу зашифруємо відкритий текст “ЗАДВИЖКА”, використовуючи


ключ (5, 1, 3). Розмістимо ключ під відкритим текстом:

Щоб зашифрувати першу літеру відкритого тексту З, треба використати перше


число ключа 5. Це означає, що відповідний знак криптограми треба взяти із того
рядка шифрувальної таблиці, для якого K=5.
Отримуємо першу літеру криптограми В. Щоб зашифрувати другу літеру
відкритого тексту А, треба використати друге число ключа 1. Це означає, що
відповідний знак криптограми треба взяти із того рядка шифрувальної таблиці, для
якого K=1. Отримуємо другу літеру криптограми К. Остаточно отримуємо
криптограму ВКБЗЗГДК.

19
Захист баз даних

3.5. Гомофонічна заміна

Гомофонічна заміна одному знакові відкритого тексту ставить у відповідність


декілька різних символів криптограми. Цей метод застосовується для спотворення
статистичних властивостей криптограм. Наприклад, для алфавіту “АБВГДЕЖЗИК”
обсягом m=10 шифрувальна таблиця для кожного знаку алфавіту може містити
набори по три різні символи у вигляді довільних двозначних чисел, вибраних
випадковим способом:

Для прикладу зашифруємо відкритий текст “ЖАДАЖА”. Для шифрування


першої літери відкритого тексту Ж застосовуємо відповідний перший символ
криптограми 47. Аналогічно для літер відкритого тексту А і Д, які теж
зустрічаються перший раз, використовуються відповідні перші символи
криптограми 17 і 37. Четверта і п’ята літери криптограми А і Ж зустрічаються
вдруге, тому для них відповідними символами криптограми будуть 31 і 67. 34
Остання шоста літера криптограми А зустрічається втретє, тому вона буде
шифруватись символом 48. Остаточно криптограма має вигляд 471737316748.
Бачимо, що при використанні шифру гомофонічної заміни кожний знак відкритого
тексту замінюється відповідними символами криптограми по черзі. Після того, як
весь набір символів для даного знаку вичерпався, здійснюється його повторне
використання з початку.

3.6. Шифруюча таблиця Трисемуса

Багато хто з істориків вважають Іоганна Трисемуса, аббата з Німеччини, одним


із засновників сучасної криптології. У 1508 році Трисемус написав свій твір
“Поліграфія” – перший друкований твір з криптології. В ньому він вперше описав
свій шифр, відомий під назвою шифруюча таблиця Трисемуса. В цьому шифрі
використовується прямокутна таблиця певного розміру (по можливості,
якнайближча до квадратної) для запису знаків алфавіту і ключове слово, записане
без повторення однакових знаків. Для заповнення шифрувальної таблиці
використовується підхід, запозичений із шифру Цезаря з ключовим словом.
Спочатку в таблицю по рядкам вписується ключове слово. Далі таблиця
доповнюється рештою знаків в алфавітному порядку.

20
Захист баз даних

Наприклад, для алфавіту “АБВГДЕЖЗИКЛМ” обсягом m =12 шифрувальна


таблиця може мати розмір 3х4. Виберемо ключове слово ЖАД. За таких умов
шифрувальна таблиця має такий вигляд:

Спосіб шифрування запозичений із полібіанського квадрата. При шифруванні


чергову літеру відкритого тексту знаходили у шифрувальній таблиці, а у
криптограму записували літеру, розташовану рядком нижче в тому ж стовпчику.
Якщо літера знаходилась у нижньому рядку таблиці, то для криптограми брали саму
верхню літеру з того ж стовпчика.
Наприклад, ГЛАЗ шифрується як КДГМ.

3.7. Біграмний шифр Плейфера

Даний шифр називається біграмним тому, що шифруються одночасно не один,


а два сусідні знаки відкритого тексту. Шифрувальна таблиця Плейфера являє собою
прямокутну матрицю (по можливості, якнайближчу до квадратної). Її розміри мають
бути достатніми для розміщення всіх знаків алфавіту відкритого тексту. Матриця
заповнюється знаками алфавіту випадковим способом. Наприклад, для алфавіту
“АБВГДЕЖЗИКЛМ” обсягом m=12 шифрувальна таблиця може мати наступний
вигляд:

Процес шифрування складається з таких кроків.


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

21
Захист баз даних

2. Якщо обидва знаки даної біграми відкритого тексту знаходяться в різних


рядках та стовпчиках матриці, то вони вважаються протилежними кінцями діагоналі
відповідного прямокутника. Результуючу біграму криптограми знаходять на кінцях
другої діагоналі цього ж прямокутника. Знак, який знаходиться на лівому кінці
першої діагоналі, замінюється знаком який знаходиться на лівому кінці другої
діагоналі. Знак, який знаходиться на правому кінці першої діагоналі, замінюється
знаком, який знаходиться на правому кінці другої діагоналі. Наприклад, даним
біграмам відкритого тексту АЛ, МА, ДИ і КЕ відповідають результуючі
криптограми КД, БК, ЛЖ і ГЛ.
3. Якщо знаки даної біграми знаходяться в одному й тому ж рядку, то кожний із
знаків замінюється тим, що стоїть справа від нього (за останнім 36 знаком у рядку
йде перший). Наприклад, даним біграмам ЖБ і ЛИ відповідають результуючі
біграми АЖ і МК.
4. Якщо знаки даної біграми знаходяться в одному й тому ж стовпчику, то
кожний із знаків замінюється тим, що стоїть нижче його (за останнім нижнім знаком
йде самий верхній). Наприклад, даним біграмам ЖВ, ЛД і МЗ відповідають
результуючі біграми ВИ, ДЕ і БМ. Наприклад, відкритий текст БАЗА
перетворюється на криптограму ЖДБГ.

3.8. Біграмний двотабличний шифр


Цей шифр винайдений у 1854 році англійцем Чарльзом Уитстоном. Такий
метод використовує дві прямокутні таблиці однакового розміру (по можливості,
якнайближчі до квадрату), в кожній з яких випадковим способом розміщено один і
той же алфавіт. Відкритий текст розбивають на пари знаків – біграми.
Перший знак біграми відкритого тексту фіксується у першій таблиці, другий
знак біграми – у другій. Між зафіксованими знаками вибудовується уявний
прямокутник. Одна діагональ цього прямокутника з’єднує знаки біграми відкритого
тексту, друга діагональ дає результуючу біграму до криптограми.
Перший знак результуючої біграми теж прочитується із першої таблиці, другий
знак біграми – із другої таблиці. Якщо знаки відкритого тексту потрапили в один і
той же рядок, то і біграма криптограми береться з того ж рядка. Перший знак
біграми криптограми береться із першої таблиці у стовпчику, номер якого такий же,
як і номер стовпчика другого знаку біграми відкритого тексту.
Другий знак біграми криптограми береться із другої таблиці у стовпчику, номер
якого такий же, як і номер стовпчика першого знаку біграми відкритого тексту. При
використанні алфавіту, який складається із десяти цифр, крапки та пропуску,
шифрувальна таблиця може бути такою:

22
Захист баз даних

У відповідності з цією таблицею біграму «78» буде зашифровано як «42»,


біграму «42» – як «78», біграму «59» – як «81» і т.д. А для повідомлення
«2.718_3.14» одержимо криптограму «6252330465».
Перевагою біграмного двотабличного шифру у порівнянні з біграмним шифром
Плейфейра є можливість використання біграм з однаковими знаками.

3.9. Координатні заміни

В координатних замінах знаки алфавіту використовуються для позначень


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

Для такої шифрувальної таблиці повідомлення «1020110221» перетворюється


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

23
Захист баз даних

Тоді, наприклад, слово ДАВАЙ перетвориться на «2010011002».

Література:

1. Ю.А.Тарнавський. ТЕХНОЛОГІЇ ЗАХИСТУ ІНФОРМАЦІЇ. Київ: КПІ ім.


Ігоря Сікорського, 2018 –161 с.
2. Гайна Г.А. Основи проектування баз даних: Навчальний посібник. − К.:
КНУБА, 2005. – 204 с.
3. Адаменко М.В. Основы классической криптологии: секреты шифров и кодов.
– М.: ДМК Пресс, 2012. – 256 с.
4. Бабаш А. В. Криптография. – М.: СОЛОН-Пресс, 2007. – 511 с.
5. Баричев С. Г., Гончаров В. В., Серов Р. Е. Основы современной
криптографии: Учебное пособие. М.: Горячая Линия - Телеком, 2002. – 175 с.
6. Ростовцев А.Г., Маховенко Е.Б. Теоретическая криптография. М.:
Издательство: АНО НПО "Профессионал", 2005. – 480 с.
7. Гайдамакин Н.А. Автоматизированные информационные системы, базы и
банки данных. Вводный курс.−М.: Гелиос АРВ, 2002. − 368 с.
8. Гайна Г.А. Організація баз даних і знань. Мови баз даних: Конспект
лекцій.−К.:КНУБА, 2002. − 64 с.
9. Гайна Г.А., Попович Н.Л. Організація баз даних і знань. Організація
реляційних баз даних: Конспект лекцій.−К.:КНУБА, 2000. − 76 с.
10. Гарсиа-Молина Г., Ульман Д., Уидом Д. Системы баз данных.−М.:
Издательский дом "Вильямс", 2003. − 1088 с.

24

You might also like