Класичні алгоритми шифрування даних

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

Узагалі, перехід від роботи на персональних комп'ютерах до роботи в мережі ускладнює захист інформації з наступних причин:

· велике число користувачів у мережі і їхній перемінний склад; захист на рівні імені і пароля користувача недостатній для запобігання входу в мережу сторонніх осіб;

· велика довжина мережі і наявність багатьох потенційних каналів проникнення в мережу.

· недоліки в апаратному і програмному забезпеченні; переваги організаційних засобів - можливість рішення багатьох різнорідних проблем, простота реалізації, можливість швидкого реагування на небажані дії в мережі, необмежені можливості модифікації і розвитку; недоліки — висока залежність від суб'єктивних факторів, у тому числі від загальної організації роботи в даному конкретному підрозділі;

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

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

- 82 - - 83 -
Число використовуваних програм шифрування обмежено, причому частина з них є стандартами де-факто або де-юре. Однак навіть якщо алгоритм шифрування не являє собою секрету, зробити дешифрування (або розшифровку) без знання закритого ключа надзвичайно складно. Ця властивість у сучасних програмах шифрування забезпечується в процесі багатоступінчастого перетворення вихідної відкритої інформації («plain text» в англомовній літературі) з використанням ключа (або двох ключів — по одному для шифрування і дешифрування). У кінцевому рахунку кожний з використовуваних складних методів (алгоритмів) шифрування являє собою комбінацію простих методів.

Розрізняють наступні класичні алгоритми шифрування:

· підстановка (проста - одноалфавітна, багатоалфавітна однопетльова, багатоалфавітна багатопетльова);

· перестановка (проста, ускладнена);

· гамування (змішування з короткою, довгою або необмеженою маскою).

Стійкість кожного з перерахованих методів до дешифрування без знання ключа характеризується кількісно за допомогою показника S мінімального обсягу, що представляє собою обсяг зашифрованого тексту, який може бути дешифрований за допомогою статистичного аналізу.

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

Тоді слово «cache» у зашифрованому виді представляється як «usuxk»

Існує, однак, можливість дешифрування повідомлення за допомогою відомої статистичної частоти повторюваності символів у довільному, досить довгому тексті. Наприклад, символ Е зустрічається частіше за інші — у середньому 123 рази на кожні 1000 символів або в 12,3% випадків далі за частотою використання символи Т - 9,6%, А - 8,1%, Р - 7,9%, N - 1,2%, I - 7,2%, S - 6,6%, R — 6,0%, Н - 5,1%, L — 4,0% і т.д. Приведені цифри можуть, звичайно, трохи варіюватися в залежності від джерела информації. Тому показник стійкості до дешифрування SKB даному случа не перевищує 20...30.

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

Цифровий ключ складається з неповторюваних цифр, а відповідне йому ключове слово - з неповторюваних символів. Вихідний текст (plain text) записується під ключем построчно. Зашифроване повідомлення (cipher text) виписується по стовпцях у тім порядку, як це передбачають цифри ключа (або в тім порядку, у якому розташовані окремі символи ключового слова в алфавіті).

Для розглянутого приклада зашифроване повідомлення: TRANSPOSITION IS THE ENCIPHER METHOD буде виглядати в такий спосіб: AIHHORTTPHPaEaaSNaRaTIalTOINMccNOEEDSSCEct.

Гамування (змішування з маскою) засновано на побітному додаванні по модулю 2 (відповідно до логіки ВИКЛЮЧАЮЧЕ АБО) вихідного повідомлення із заздалегідь обраною двійковою послідовністю (маскою).

Компактним представленням маски можуть служити числа в десятковій системі числення або деякий текст (у цьому випадку розглядаються внутрішні коди символів - для англійського тексту таблиця ASCІІ).

Операція підсумовування по модулі 2 (ВИКЛЮЧАЮЧЕ АБО) є оборотною, так що при додаванні з тією же маскою (ключем) зашифрованого повідомлення ми знову одержимо вихідний текст (відбудеться дешифрування).

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

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

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

· шифрування з використанням тих самих ключів (шифрів) при шифруванні і дешифруванні (симетричне шифрування або системи з відкритими ключами - private-key systems);

· шифрування з використанням відкритих ключів для шифрування і закритих - для дешифрування (несиметричне шифрування).

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

 

- 84 - - 85 -


Стандартні методи шифрування

Стандарт шифрування даних США DES (Data Encryption Standard — стандарт шифрування даних) відноситься до групи методів симетричного шифрування і прийнятий у 1976 р. Використовувані операції - перестановка, гамування і нелінійна підстановка. Число кроків — 16. Довжина ключа складає 56 біт, з яких 8 біт - це перевірочні розряди парності/непарності.

Довгий час ступінь стійкості до дешифрування цього методу вважалася достатньою, однак у 1998 р. з'явилося повідомлення про створення спеціалізованого комп'ютера (DES cracker), що дозволяє розкрити зашифрований текст максимум за 9 днів.

Аналогом DES є ДСТ28147-89, але з довжиною ключа 256 біт, так що його ступінь стійкості до дешифрування істотно вище. Важливо також і те, що в даному випадку передбачається ціла система захисту, що переборює «родовий» недолік симетричних методів шифрування - можливість підміни повідомлень. Такі удосконалення, як імітовставки, хэш-функції й електронні цифрові підписи дозволяють «авторизувати» передані повідомлення. Достоїнством симетричних методів шифрування є висока швидкість шифрування і дешифрування, недоліком — малий ступінь захисту у випадку, якщо ключ став доступний третій особі.

Досить популярні, особливо при використанні електронної пошти в мережі Internet, несиметричні методи шифрування або системи з відкритими ключами - public-key systems. Типовий представник цієї групи методів - PGP (Pretty Good Privacy - забезпечує досить високу таємність).

Кожен користувач у цьому випадку має пари ключів. Відкриті ключі призначені для шифрування і вільно розсилаються по мережі, але не дозволяють зробити дешифрування. Для цього потрібні секретні (закриті) ключі.

Принцип шифрування в даному випадку ґрунтується на використанні так званих однобічних функцій. Пряма функція х —> f (х) легко обчислюється на підставі відкритого алгоритму (ключа). Зворотне перетворення f (x) —> х без знання закритого ключа утруднене і повинне займати досить великий час, що і визначає ступінь труднощів при обчисленні однобічної функції.

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

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

На відміну від симетричних методів шифрування, проблема розсилання ключів у несиметричних методах вирішується простіше — пари ключів (відкритий і закритий) генеруються «на місці» за допомогою спеціальних програм. Для розсилання відкритих ключів використовуються спеціальні технології типу LDAP (Lightweight Directory Access Protocol - протокол полегшеного доступу до довідника). Ключі, що розсилаються, можуть бути попередньо зашифровані за допомогою одного із симетричних методів шифрування.