Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция7.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
151 Кб
Скачать

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

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

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

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

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

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

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

Симетричне шифрування ще називають шифруванням на таємному ключі, тобто на ключі, який обидві сторони обміну таємно від інших використовують для шиф­рування та розшифрування повідомлень. На рис. 8.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) - це повний опис алгоритму шифрування (та правил його використання), призначеного для програмної або апаратної реалізації, обов'язкового для викори­стання організаціями, які зазначені в цьому стандарті. На сьогодні всі розвинені країни світу мають свої стандарти шифрування.

Стандарт шифрування DES - колишній федеральний стандарт шифрування США, введений у дію 23 листопада 1976 року; офіційний опис стандарту було опу­бліковано 15 січня 1977 року [37]. У 1981 році Американським національним ін­ститутом стандартів (American National Standards Institute, ANSI) DES було прий­нято як стандарт захисту інформації у комерційній галузі. Пізніше під назвою DEA (Data Encryption Algorithm) він отримав статус міжнародного стандарту шифру­вання інформації ISO 8731-1-87 [38]. Довжина блоку шифру DES становить 64 бі­ти, довжина ключа - також 64 біти (з них 8 біт призначено для контролю парнос­ті), для шифрування виконується 16 циклів. Для шифрування та розшифрування використовують один і той самий алгоритм.

Стандарт шифрування інформації ГОСТ 28147-89 [39], введений у дію в ко­лишньому СРСР 1 липня 1990 року, також базується на шифрі фейстелівського типу. Довжина блоку цього шифру - 64 біти, довжина ключа становить 256 біт, виконується 32 цикли. Для шифрування та розшифрування використовують один і той самий алгоритм.

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

Щоб позбавити стандарт DES виявлених у ньому свого часу слабких місць, Національним інститутом стандартів і технологій (National Institute of Standards and Technology, NIST) за дорученням уряду, США було запроваджено відкритий конкурс криптоалгоритмів - кандидатів на стандарт блокового шифрування - під назвою AES (Advanced Encryption Standard). За умовами конкурсу, який від­бувався протягом 1997-2000 років, це мав бути симетричний блоковий шифр зі змінною довжиною ключа. Ще одною обов'язковою умовою конкурсу була під­тримка алгоритмом шифрування ключів довжиною 128, 192 та 256 біт за довжи­ни блоку вихідного тексту в 128, 192 та 256 біт. На останньому етапі конкурсу пе­ремогу здобули алгоритми з назвами MARS, RS6, Rijndael, Serpent і TwoFish, остаточним переможцем було визнано алгоритм Rijndael [40].