Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Безпека.docx
Скачиваний:
163
Добавлен:
31.08.2019
Размер:
6.2 Mб
Скачать

3.3. Шифрування з ключем

Алгоритми шифрування з ключем поділяють на дві великі групи — алгоритми си­метричного шифрування і алгоритми асиметричного шифрування [28-31].

Симетричне шифрування (рос. — симметричное шифрование, англ. — sym­metric coding) — це метод, за якого ключі шифрування і розшифрування або однакові, або легко виводяться один з одного, забезпечуючи таким чином спіль­ний ключ, який є таємним.

Асиметричне шифрування (рос. — асимметричное шифрование, англ. — asym­metric coding) — набір методів криптографічного шифрування, в яких викори­стовують два ключі — таємний (приватний) і відкритий; жоден із ключів не може бути обчислений з іншого за прийнятний час [32-36]. Таке шифрування ще нази­вають шифруванням з відкритим ключем (рос. — шифрование с открытым ключом, англ. — public key coding).

Наразі з-поміж криптографічних методів домінують симетричне й асиметрич­не шифрування. До 70-х років минулого століття застосовували лише крипто­графію з симетричними криптоалгоритмами. Криптографія з асиметричними криптоалгоритмами значно молодша. Початок її розвитку пов'язують із працею американських учених В. Діффі та М. Хеллмана, оприлюднену в 1976 році [32].

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

3.3.1. Симетричне шифрування

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

Основне призначення симетричних криптоалгоритмів — шифрування вели­ких масивів даних із великою швидкістю. Разом із тим, через потребу мати захи-

Рис. 3.1. Структурна схема шифрування на таємному ключі

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

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

Потокове шифрування

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

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

За використання потокового шифрування окремі символи згенерованої шиф­рувальної послідовності зазвичай позначаються грецькою літерою

γ (гамма). То­му потокові шифри ще називають шифрами гаммування.

Слід зазначити, що швидкодія потокових шифрів значно перевищує швидко

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

Блокове шифрування

Блокове шифрування (рос. — блочное шифрование, англ. — block coding) — спосіб шифрування даних, коли кожний блок, що передається, може шифруватися ок­ремо. Блоковий шифр — процедура відображення множини вхідних блоків ви­хідного тексту на множину блоків зашифрованого тексту. Блоки вихідних даних можуть налічувати від одного до кількох сотень бітів. У сучасних системах бло­кового шифрування використовують блоки з 64, 128, 192 або 256 біт. Алгоритми блокового шифрування — це комбінація оборотних криптоперетворень, які вико­нуються багаторазово.

Найбільшого поширення серед блокових шифрів набули шифри, які базують­ся на багаторазових циклічних повтореннях. Шифр такого типу називають мере­жею. Відомим шифром цього типу є мережа Фейстела (рос. — сеть Фейстела, англ. — feistel network), або мережа Фейстела 1-го типу — ітеративний блоковий шифр, побудований за принципом Фейстела [28, 29]. Саме цей шифр було засто­совано під час розроблення стандарту шифрування DES (Data Encryption Stan­dard) у США та ГОСТ 28147-89 у колишньому СРСР.

Стандарт шифрування (рос. — стандарт шифрования, англ. — encryption stan­dard) — це повний опис алгоритму шифрування (та правил його використання), призначеного для програмної або апаратної реалізації, обов'язкового для використання організаціями, які зазначені в цьому стандарті. На сьогодні всі розвинені країни світу мають свої стандарти шифрування.