Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
diplom_pz.doc
Скачиваний:
16
Добавлен:
02.09.2019
Размер:
1.89 Mб
Скачать

5.3 Алгоритм шифрування 3des

DES означает Data Encryption Standard - стандарт шифрування даних. DES – це 64-бітовий блочний шифр з 64-бітовим ключем. Останній біт кожного байта в ключі є бітом парності, так що ефективна довжина ключа складає тільки 56 біт. Це занадто мало, атака грубою силою на спеціалізованій машині займе менше доби. Потрійний DES (Triple DES) чи 3DES – це DES, що виконується тричі з різними ключами. Таким чином потрійний DES – це 64-бітовий блочний шифр з 168-бітови ключем. Оригінальний DES досліджувався багато років, тому експерти вважають 3DES дуже надійним. Недоліком є те, що він значно повільніше всіх інших алгоритмів: DES сам по собі доволі повільний через застосування бітових перестановок, що ефективно розробляються на спеціальних мікросхемах, але набагато гірше на універсальних комп’ютерах, а з 3DES потрібно виконати три операції, щоб отримати захищеність двох. Єдина причина, чому варто застосовувати потрійний DES – це те, що він дуже добре захищений.

3DES – найцікавіший блочний шифр PGP. Багаторазове зашифровування робить шифр сильнішим, але не обходиться і без проблем. Крім того, DES не є таким хорошим як інші шифри. Є атаки на 16-раундне шифрування DES, що робить 3DES найсумнівнішим шифром PGP.

Вже досить давно інформація шифрується не одинарним, а потрійним DES. Де Ek й Dk позначають відповідно зашифрування й розшифрування ключем k. Цей режим шифрування іноді називається DES-EDE. Інший варіант - DES-EEE, що складається із трьох послідовних шифрувань. Існують три можливих варіанти, певні в ANSI X9.52 для DES-EDE:

  1. три ключі k1, k2 й k3 незалежні;

  2. k1 і k2 незалежні, але k1 = k3;

  3. k1 = k2 = k3.

Подібно всім блоковим шифрам, TripleDES може використовуватися різними способами. ANSI X9.52 описує сім таких способів, з яких широко використовуються чотири.

Використання подвійного й потрійного шифрування не завжди забезпечує додаткову безпеку, як цього можна було очікувати. Наприклад, розглянемо атаку “зустріч посередині” на подвійне шифрування. Є симетричний блоковий шифр із розміром ключа n; нехай Ek (P) позначає шифрування повідомлення P ключем k. При шифруванні двома різними ключами повний розмір ключа становить 2n.

Атака полягає в наступному. Потрібно, щоб атакуючий знав хоча б одну пару, незашифрований текст і відповідний йому зашифрований текст: (Р, З). У цьому випадку, по-перше, шифрується Р для всіх можливих 256 значень K1. Цей результат запам'ятовується в таблиці, і потім таблиця впорядковується за значенням Х. Наступний крок складається в дешифруванні З, із застосуванням всіх можливих 256 значень K2. Для кожного виконаного дешифрування шукається рівне йому значення в першій таблиці. Якщо відповідне значення знайдене, то вважається, що ці ключі можуть бути правильними, і вони перевіряються для наступної відомої пари незашифрованого тексту,

зашифрованого тексту.

Якщо відомо тільки одну пару значень незашифрованого тексту, зашифрованого тексту, то може бути отримана досить велика кількість невірних значень ключів. Але якщо супротивник має можливість перехопити хоча б дві пари значень (незашифрований текст - зашифрований текст), то складність злому подвійного DES фактично стає рівною складності злому звичайного DES, тобто 256.

Очевидна протидія атаці "зустріч посередині" складається у використанні третьої стадії шифрування із трьома різними ключами. Це піднімає вартість лобової атаки до 2168, що на сьогоднішній день уважається вище практичних можливостей. Але при цьому довжина ключа дорівнює 56 * 3 = 168 біт.

Як альтернатива пропонується метод потрійного шифрування, що використовує тільки два ключі. У цьому випадку виконується послідовність за шифрування-розшифрування-зашифруваня (EDE)(4).

C = EK1 [DK2 [EK1 [P]]] (4)

Не має великого значення, що використовується на другій стадії: шифрування або дешифрування. У випадку використання дешифрування існує тільки та перевага, що можна потрійний DES звести до звичайного одиночного DES, використовуючи K1 = K2.

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

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

Рис. 10 Шифрування потрійним DES

Те що на другій стадії використовується операція дешифрування, не є істотною з погляду шифрування, але це дає можливість користувачам "потрійного" DES розшифрувати дані, зашифровані іншими користувачами з використанням більш старої, звичайної версії DES ( рис. 11) (5):

C = EK1[DK1[EK1[P]]] = EK1[P] (5).

Рис. 11 Дешифрування потрійним DES

"Потрійний" DES із трьома ключами використовує три 56-бітових ключі. Сумарна ефективна довжина ключа становить 168 біт. Шифрування відбувається за наступною схемою (рис.11) (6):

C = EK3[DK2[EK1[P]]] (6).

Зворотна сумісність із DES буде забезпечена, якщо покласти K3=K2 або K1=K2.

"Потрійний" DES із трьома ключами реалізований у багатьох додатках, орієнтованих на роботу з Internet, у тому числі в PGP й S/MIME (7).

C = EK1 [DK1 [EK1 [P]]] = EK1 [P] (7)

Потрійний DES є досить популярною альтернативою DES і використовується при керуванні ключами в стандартах ANSI X9.17 й ISO 8732 й в PEM (Privacy Enhanced Mail).

Відомих криптографічних атак на потрійний DES не існує. Ціна підбора ключа в потрійному DES дорівнює 2112.

Однак, припустимо, що можна одержати Ek (P) для всіх ключів k а також даний відкритий текст P; потім припустимо, що нам дають зашифрований текст C такий що C = Ek2 (Ek1 (P)) для деяких секретних ключів k1 й k2. Для кожного ключа l є тільки один ключ k такий що Dl (C) = Ek (P). Існує 2**n можливих ключів, що створюють пари (P; C), і ці ключі можна знайти приблизно за O(2**n) кроків. Маючи можливість зберігати тільки 2**p < 2**n ключів, можна змінювати цей алгоритм і знайти всі можливі ключі за O(2**(2n-p)) кроків.

У цей час основним недоліком DES вважається маленька довжина ключа, тому вже давно почали розроблятися різні альтернативи цьому алгоритму шифрування. Один з підходів полягає в тому, щоб розробити новий алгоритм, і успішний тому приклад - IDEA. Інший підхід припускає повторне застосування шифрування за допомогою DES з використанням декількох ключів. Найпростіший спосіб збільшити довжину ключа складається в повторному застосуванні DES із двома різними ключами. Використовуючи незашифроване повідомлення P і два ключі K1 й K2, зашифроване повідомлення можна одержати таким

способом (8):

C = Ek2 [Ek1 [P]] (8)

Для дешифрування потрібно, щоб два ключі застосовувалися у

зворотному порядку (9): P = Dk1 [Dk2 [C]] (9).

У цьому випадку довжина ключа дорівнює 56 * 2 = 112 біт.

Існують такі типи потрійного шифрування DES:

  • DES-EEE3: Шифрується три рази з 3 різними ключами;

  • DES-EDE3: 3DES операції шифровка-розшифровка-шифровка з трьома різними ключами;

  • DES-EEE2 й DES-EDE2: Як і попередні, за винятком того, що перша й третя операції використовують однаковий ключ.

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

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

На практиці використовуються трохи офіційно певні режими шифрування DES; кожний із цих режимів має різні властивості. Режим ECB (електронна кодова книга) послідовно шифрує кожен 64-бітний блок відкритого тексту тим самим 56-бітним ключем DES. У режимі CBC (формування ланцюжка блоку шифру) кожен 64-бітний блок відкритого тексту перед шифруванням DES ключем логічно підсумується (XOR) з попереднім блоком зашифрованого тексту. Таким чином, шифрування кожного наступного блоку залежить від попередніх блоків і тому той самий 64-бітний блок відкритого тексту може бути представлений різними блокам зашифрованого тексту залежно від його розміщення у вихідному повідомленні. CBC дозволяє захиститися від деяких атак, але не від повного пошуку або диференціального криптоаналіза. Режим CFB (шифрування зі зворотним зв'язком) дозволяє використати DES блоками довжиною менш 64 біт. Режим OFB власне кажучи дозволяє використати DES як потоковий шифр. З перерахованих режимів DES найбільше широко на практиці використається режим CBC, що є частиною декількох стандартів. Для підвищення захисту можна використати режим CBC з потрійним шифруванням. [12]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]