СИМЕТРИЧНІ АЛГОРИТМИ ШИФРУВАННЯ

Розглянемо класичну модель (К. Шеннона) симетричною криптосистеми (рис. 12.3), в якій три учасники вирішують наступні завдання:

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

Найбільш популярним симетричним алгоритмом є відкритий стандарт на шифрування даних (Data Encryption Standard - DES), розроблений фірмою IBM. Для пояснення суті цього алгоритму скористаємося рис. 12.4.

Перед шифруванням вихідні дані (блок тексту) перетворять в число шляхом будь-якої відкритої процедури. Наприклад, шляхом злиття ASCII-кодів послідовних символів тексту може бути отримано двійковечисло. Розмір блоку даних повинен становити 64 біта. блок ділиться

симетричне шифрування

Мал. 12.3. симетричне шифрування

Ілюстрація алгоритму DES

Мал. 12.4. Ілюстрація алгоритму DES

навпіл на ліву L і праву R частини і надходить на вхід шифрувальної функції для попередньої обробки. Вона полягає в тому, що на місце лівої частини результуючого блоку L поміщається права частина R вихідного блоку, а права частина обчислюється як логічна сума по модулю 2 (операція додавання по модулю 2) лівої і правої частин вихідного блоку (див. Рис. 12.4) . Для основного обробітку використовується ключ даного алгоритму у вигляді двійковій послідовності довжиною 64 біта, з яких вибираються 56 біт випадковим чином, а 8 використовуються для контролю ключа. За допомогою цієї випадкової двійковій послідовності за певною схемою виконуються побітно заміни і перестановки.

Алгоритм DES широко використовується в різних технологіях і продуктах безпеки інформаційних систем. Для підвищення криптостійкості алгоритму DES застосовують триразове шифрування з використанням двох різних ключів. Можна вважати, що довжина ключа збільшується з 56 до 112 біт. Такий алгоритм з підвищеною криптостійкості називається потрійним DES. Він вимагає в три рази більше часу, ніж звичайний DES.

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

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

Несиметричні алгоритми шифрування. Особливості алгоритмів розглянемо на прикладі моделі з трьома учасниками (рис. 12.5).

асиметричне шифрування

Мал. 12.5. асиметричне шифрування

Одержувач має два ключа:

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

Відправник, використовуючи відкритий ключ Е одержувача, шифрує повідомлення X і передає його одержувачу по відкритому каналу зв'язку.

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

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

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

Криптоалгоритм RSA. Система шифрування з відкритими ключами RSA розроблена вченими Rivest, Shamir, Adleman і названа за початковими літерами їхніх прізвищ. Послідовність операцій цього алгоритму:

  • • вибираються два дуже великих простих числа р і q
  • • обчислюються твори n = p × q u m = (pl) × × (q-1);
  • • вибирається випадкове ціле число Е, що не має спільних співмножників з т;
  • • знаходиться D, таке, що DE = 1 по модулю т;
  • • вихідний текст X розбивається на блоки таким чином, щоб 0 < Х <п;
  • • для шифрування повідомлення необхідно обчислити C = XE по модулю і;
  • • для дешифрування обчислюється X = CD по модулю п.

Таким чином, щоб зашифрувати повідомлення, необхідно знати пару чисел (Е, п ), що представляє собою відкритий ключ, а щоб його розшифрувати, необхідно знати пару чисел (D, і), що представляє собою закритий ключ.

Висока криптостойкость алгоритму RSA обумовлена величезними обчислювальними витратами. Дійсно, для визначення закритого ключа D за відомими значеннями відкритого ключа (Е, n), необхідно спочатку знайти числа р і q шляхом розкладання на прості множники дуже великого числа п, на що потрібно багато часу. Наприклад, для розкладання 200-значного числа знадобиться 4 мільярди років роботи комп'ютера з швидкодією мільйон операцій в секунду [20].

Приклад . Покажемо використання алгоритму RSA для шифрування слова БІТ.

  • 1. Вибираємо p = 3 u q = 11. Визначаємо п = 3 × 11 = 33.
  • 2. Знаходимо (р-1) × (d = 3, яке є взаємно простим з числом 20.
  • 3. Виберемо число е = 7, для якого задовольняється співвідношення × 3) mod 20 = 1.
  • 4. Уявімо слово БІТ як послідовність цілих чисел в діапазоні 1-32, позначивши букву Б числом 2, букву І - числом 10, а букву T - числом 20. Тоді послідовність для слова БІТ має вигляд {2 10 20}.
  • 5. Зашифруємо повідомлення, використовуючи ключ {7, 33}.
  • 6. Cl = (27) mod 33 = 128 mod 33 = 29,

С2 = (107) mod 33 = 10 000 000 mod 33 = 10,

С3 = (207) mod 33 = 1 280 000 000 mod 33 = 26.

Таким чином, зашифроване слово має вигляд {29 10 26}. Вирішимо зворотний завдання: розшифруємо повідомлення {2910 26}, отримане в результаті шифрування за відомим ключу, на основі секретного ключа {3,33}:

Ml = (293) mod 33 = 24 389 mod 33 = 2 (Б),

М2 = (103) mod 33 = 1000 mod 33 = 10 (І),

М3 = (263) mod 33 = 17 576 mod 33 = 20 (Т).

Таким чином, в результаті дешифрування отримано вихідне слово БІТ.

Порівняння DES і RSA. Деякі характеристики для порівняння алгоритмів DES і RSA наведені в табл. 12.1.

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

Таблиця 12.1

характеристика

DES

RSA

швидкість шифрування

висока

низька

Використовувана функція шифрування

Перестановка і підстановка

Зведення в ступінь

Довжина ключа, біт

56

більше 500

Найменш витратний криптоаналіз (його складність визначає стійкість алгоритму)

Перебір по всьому ключовому простору

Розкладання числа на прості множі-

Час генерації ключа

мілісекунди

хвилини

Тип ключа

симетричний

несиметричний

 
< Попер   ЗМІСТ   Наст >