
125 Кібербезпека / 4 Курс / 4.2_Управління інформаційною безпекою / Лiтература / Гончарова Основи захисту iнф. в - мер
...pdf(C) блоки даних також мають фіксовану розрядність, рівну між собою, але необов’язково рівну довжині ключа.
Блокові шифри є основою, на якій реалізовані практично всі криптосистеми. Методика створення ланцюжків із зашифрованих блоковими алгоритмами байтів дозволяє шифрувати ними пакети інформації необмеженої довжини. Така властивість блокових шифрів, як швидкість роботи, використовується асиметричними криптоалгоритмами, повільними за своєю природою. Відсутність статистичної кореляції між бітами вихідного потоку блокового шифру використовується для обчислення контрольних сум пакетів даних і в хешуванні паролів.
Криптоалгоритм іменується ідеально стійким, якщо прочитати зашифрований блок даних можна, перебравши всі можливі ключі, доти, поки повідомлення не виявиться осмисленим. Тому що за теорією ймовірності шуканий ключ буде знайдений з імовірністю 1/2 після перебору половини всіх ключів, то на злом ідеально стійкого криптоалгоритму з ключем довжини N буде потрібно в середньому 2N-1 перевірок. Таким чином, у загальному випадку стійкість блокового шифру залежить тільки від довжини ключа і зростає експоненційно з її зростанням. Навіть припустивши, що перебір ключів здійснюється на спеціально створеній багатопроцесорній системі, у якій завдяки діагональному паралелізму на перевірку 1 ключа іде тільки 1 такт, то на злом 128-бітного ключа сучасній техніці буде потрібно не менше 1021 років.
Крім цієї умови до ідеально стійких криптоалгоритмів застосовується ще одна дуже важлива вимога, якій вони повинні обов’язково відповідати. При відомих початковому і зашифрованому значеннях блоку ключ, яким зроблене це перетворення, можна визначити також тільки повним перебором. Ситуації, в яких сторонньому спостерігачу відома частина вихідного тексту, зустрічаються повсюдно. Це можуть бути стандартні написи в електронних бланках, фіксовані заголовки форматів файлів, що досить часто зустрічаються в тексті, довгі слова чи послідовності байт. У світлі цієї проблеми описана вище вимога не є нічим надмірним і також строго виконується стійкими криптоалгоритмами, як і перше.
Таким чином, на функцію стійкого блокового шифру C=E(P,K) накладаються такі умови:
–функція E повинна бути оберненою;
–не повинно існувати інших методів прочитання повідомлення P за відомим блоком C, крім як повним перебором K;
–не повинно існувати інших методів визначення, яким K було зроблене перетворення P у шифротекст С, крім як повним перебором ключів.
Розглянемо методи, за допомогою яких розроблювачі блокових криптоалгоритмів домагаються одночасного виконання цих трьох умов з дуже великою часткою вірогідності.
181

Усі дії, вироблені над даними блоковим криптоалгоритмом, засновані на тому факті, що перетворений блок може бути представлений у вигляді цілого не негативного числа з діапазону, що відповідає його розрядності. Так, наприклад, 32-бітний блок даних можна інтерпретувати як число з діапазону 0..4'294'967'295. Крім того, блок, розрядність якого звичайно є «степенем двійки», можна трактувати як кілька незалежних не негативних чисел з меншого діапазону (розглянутий вище 32-бітний блок можна також представити у вигляді двох незалежних чисел з діапазону 0..65535 чи у вигляді чотирьох незалежних чисел з діапазону 0..255).
Над цими числами в блокових криптоалгоритмах і здійснюються за визначеною схемою (табл. 4.1) наступні дії (ліворуч дані умовні позначки цих операцій на багатьох графічних схемах алгоритмів):
За параметр V для кожного з цих перетворень може використовуватися:
–фіксоване число (наприклад, Р'=Р+125);
–число, одержуване з ключа (наприклад, Р'=Р+F(K));
–число, одержуване з незалежної частини блоку (наприклад,
Р2'=Р2+F(Р1)).
Останній варіант використовується в схемі, названої за іменем її творця − мережею Фейстеля (нім. Feistel).
Послідовність виконуваних над блоком операцій, комбінації перерахованих вище варіантів V і самі функції F складають «ноу-хау» кожного конкретного блокового криптоалгоритму.
Характерною ознакою блокових алгоритмів є багаторазове і непряме використання матеріалу ключа. Це диктується в першу чергу вимогою неможливості зворотного декодування у відношенні ключа при відомих вихідному і зашифрованому текстах. Для рішення цієї задачі в приведених вище перетвореннях найчастіше використовується не саме значення ключа чи його частини, а деяка, іноді необоротна функція від матеріалу ключа. Більш того, у подібних перетвореннях той самий блок чи елемент ключа використовується багаторазово. Це дозволяє при виконанні умови оборотності функції щодо величини P зробити функцію необоротної щодо ключа K.
Таблиця 4.1
Біективні математичні функції
+Додавання P'=P+V
|
|
|
|
|
|
|
|
|
|
Складання за |
P'=P XOR |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
модулем 2 |
|
|
|
|
|
+ |
|
|
|
V |
|||
|
|
|
|
|
(виключаюче АБО) |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Множення за |
P'=(P*V) |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
модулем 2N |
mod (2N) |
182

Бітові зсуви
|
|
|
|
|
|
|
|
Арифметичний |
|
P'=P SHL |
|
|
|
|
|
|
|||||
|
|
|
<< |
|||||||
|
|
|
|
|
|
|
|
зсув ліворуч |
|
V |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Арифметичний |
|
P'=P SHR |
|
|
|
|
|
|
|
|
|||
|
|
|
>> |
|
|
|||||
|
|
|
|
|
|
|
|
зсув праворуч |
|
V |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Циклічний зсув |
|
P'=P ROL |
|
|
|
|
|
|
|
|
|||
|
|
|
>>> |
|
|
|||||
|
|
|
|
|
ліворуч |
|
V |
|||
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Циклічний зсув |
|
P'=P ROR |
|
|
|
|
|
|
|
|
|||
|
|
|
<<< |
|
|
|||||
|
|
|
|
|
праворуч |
|
V |
|||
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Табличні підстановки |
|
|
S
S-box (англ. P'=Table[P,V
substitute) ]
Оскільки операція шифрування чи розшифрування окремого блоку в процесі кодування пакета інформації виконується багаторазово (іноді до сотень тисяч разів), а значення ключа і, отже, функцій Vi(K) залишається незмінним, то іноді стає доцільно заздалегідь однократно обчислити дані значення і зберігати їх в оперативній пам’яті разом із ключем. Оскільки ці значення залежать тільки від ключа, то вони в криптографії називаються матеріалом ключа. Необхідно відзначити, що дана операція ніяким чином не змінює ні довжину ключа, ні криптостійкість алгоритму в цілому. Тут відбувається лише оптимізація швидкості обчислень шляхом хешування проміжних результатів. Описані дії зустрічаються практично в багатьох блокових криптоалгоритмах і називаються розширенням ключа.
Варіантом практичного застосування блокових алгоритмів є використання їх для забезпечення імітозахисту переданої каналами зв’язку інформації.
Імітозахистом повідомлення називається процес введення додаткового блока (імітовставки) у кінець розбитого на блоки інформаційного повідомлення. Для впровадження імітовставки застосовуються алгоритми блокового шифрування в режимі гамування із самовідновленням або шифрування зі зчепленням блоків.
Специфіка організації різних типів захищених каналів зв’язку зумовила появу алгоритмів блокового шифрування (рис. 4.17).
183

Рис. 4.17. Класифікація блокових алгоритмів
Усе розмаїття симетричних криптосистем ґрунтується на описаних далі базових методах:
–метод багатоалфавітного підставлення;
–метод простої заміни, або режим електронної кодової книги
(Electronic Codebook Mode – ЕСВ);
–метод гамування, або режим за модулем, що дорівнює потужності алфавіту;
–метод гамування із самовідновленням, або гамування зі зворотним
зв’язком (Cipher-Feedback mode – CFB);
– метод гамування зі зворотним зв’язком на виході (Output-Feedback
mode – OFB);
метод шифрування зі зчепленням блоків (Cipher Block Chaining mode
– CBC).
Метод багатоалфавітного підставлення – це найпростіший вид перетворень, що полягає в заміні символів вихідного тексту на інші (того самого алфавіту) за більш-менш складним правилом. У разі багатоалфавітних підставлень кожний символ вихідного тексту за певним законом перетворюється в символ шифрованого тексту. При цьому закон перетворення змінюється від символу до символу.
Для забезпечення високої крипостійкості системи потрібне використання ключів великого розміру. До цього класу належать криптосистеми з одноразовим ключем, що мають абсолютну теоретичну стійкість.
Метод переставлення – метод криптографічного перетворення, що полягає в переставленні символів вихідного тексту за деяким правилом. Шифри переставлень не використовуються в чистому вигляді, оскільки їхня криптостійкість недостатня.
Метод гамування – це перетворення вихідного тексту, при якому його символи додаються (за модулем, що дорівнює потужності алфавіту) до символів псевдовипадкової послідовності, згенерованої за деяким правилом.
Гамування не можна цілком виділити в окремий клас криптографічних перетворень, оскільки зазначена псевдовипадкова послідовність може генеруватися, наприклад, за допомогою блокового
184
шифру. У разі коли послідовність випадкова (наприклад, знята з фізичного датчика) і кожний її фрагмент використовується тільки один раз, дістаємо криптосистему з одноразовим ключем.
Метод простої заміни. У цьому режимі блоки відкритого тексту шифруються незалежно від інших блоків на одному ключі. Цей режим названо режимом електронної кодової книги, оскільки теоретично існує можливість створити книгу, в якій кожному блоку відкритого тексту відповідатиме блок зашифрованого тексту.
Проте в разі коли довжина блока дорівнює 64 бітам, то книга містить 264 записів, і кожна книга відповідатиме одному ключеві.
Зашифрування може бути описано залежністю: Ci = F (Pi ) для
де Ci і Pi – блоки відповідно зашифрованого та відкритого тексту, a F –
криптографічне перетворення, реалізоване алгоритмом блокового шифрування.
Ідентичні блоки відкритого тексту на тому самому ключі будуть зашифровані однаково. З погляду криптоаналізу цей режим є найбільш «слабким» (оскільки існує велика кількість криптографічних атак).
Метод ускладненого гамування. У цьому режимі алгоритм блокового шифрування використовується для ускладнення попередньої гами, виробленої одноканальною лінією затримки. Помилка під час передачі всього повідомлення призводить до спотворення при розшифруванні тільки одного блока. Таким чином, у разі використання цієї методики стає неможливим поширення помилки за рахунок розсинхронізації вузлів обчислення попередньої гами на передавальному і приймальному боках.
Для запобігання цьому небажаному явищу на практиці застосовуються пристрої синхронізації роботи шифраторів, якщо шифратор реалізується апаратно. Початковий стан вузла створення вихідної гами задається ініціалізуючим вектором (синхропосилка), що передається відкритими каналами зв’язку в зашифрованому або відкритому вигляді. Гама, отримана вузлом генерації попередньої гами, обробляється згідно з алгоритмом блокового шифрування, після чого результуюча гама підсумовується за модулем із блоком відкритого тексту.
Зашифрування можна подати у такому вигляді:
Ci = Pi F (Yi ), i = 1,..., N,
де Yj – створена гама; Yt – синхропосилка.
Метод гамування із самовідновленням. Цей режим характеризується тим, що шифратор у цьому разі має властивість самосинхронізації.
Початкове заповнення нагромаджувача, що на практиці звичайно реалізується у вигляді регістра зсуву, є синхропосилкою Yt , яка
передається по відкритому каналу передачі даних. Математичне подання шифрування має такий вигляд:
C1 = P1 F (Y ), Ci = Pi F (Yi−1 ).
185

Відповідно розшифрування має вигляд:
P1 = C1 F (Y ),
Pi = Ci F (Ci−1 ).
Симетричні алгоритми. Як відомо, симетричні алгоритми шифрування (криптографія із секретними ключами) засновані на тому, що відправник і одержувач інформації використовують той самий ключ, який повинен зберігатися в таємниці і передаватися секретним каналом (способом, що виключає його перехоплення).
Обмін інформацією здійснюється в 3 етапи:
1)відправник передає одержувачеві ключ (використовується секретний канал).
2)відправник, використовуючи ключ, зашифровує повідомлення, що посилає одержувачеві.
3)одержувач приймає повідомлення і розшифровує його.
На рис. 4.18,а проілюстровано використання симетричного шифрування.
Потокові симетричні методи шифрування реалізуються на основі генератора псевдовипадкових чисел (ПВЧ)), а блокові на перестановках (Р
– блоки), підстановках (S – блоки) і зсувах.
Першими відомими симетричними алгоритмами шифрування даних є:
–Lucipher – алгоритм фірми IBM, США;
–DES (Data Encryption Standart) – стандарт шифрування даних) −
симетричний 64-бітовий блоковий алгоритм шифрування фейстелевського типу (розроблений у 1977 р., США), який використовується для захисту комерційної інформації;
–B-Crypt – алгоритм компанії Telecom, Великобританія;
–IDEA – швейцарський міжнародний алгоритм;
–ГОСТ – радянський стандарт шифрування даних.
Повідомлення |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Повідомлення |
||||||||||
(відправник) |
|
|
Шифрування |
|
Шифротекст |
|
|
Розшифрування |
|
|
(одержувач) |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ключ |
|
|
|
|
|
|
|
|
Секретний канал |
|
|
|
|
|
|
|
|
|
Ключ |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Генератор ключів |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Повідомлення |
|
|
|
|
|
|
|
|
а |
|
|
|
|
|
|
|
|
Повідомлення |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
(відправник) |
|
|
Шифрування |
|
Шифротекст |
|
|
Розшифрування |
|
|
(одержувач) |
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ключ K2 |
|
|
|
|
|
|
Відкритий канал |
|
|
|
|
|
Ключ K1 |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Відкритий |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ключ (K2) |
|
|
|
|
|
Секретний |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ключ (K1) |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Генератор ключів |
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
б
Рис. 4.18. Шифрування: а – симетричне; б – асиметричне.
186
Алгоритми симетричного шифрування використовують ключі не дуже великої довжини і можуть швидко шифрувати великі обсяги даних. Основним недоліком симетричного шифрування є те, що секретний ключ повинен бути відомий і відправникові, і одержувачеві. З одного боку це ставить нову проблему розсилання ключів, а з іншого, одержувач на підставі наявності шифрованого і розшифрованого повідомлення не може довести, що одержав це повідомлення від конкретного відправника, оскільки таке ж повідомлення він міг згенерувати і сам.
Асиметричні алгоритми шифрування.
Криптосистема з відкритим ключем визначається трьома етапами реалізації алгоритмів: генерація ключів, шифрування та розшифрування.
Як відомо, в асиметричних алгоритмах шифрування для зашифровування інформації використовують один ключ (відкритий), а для розшифровування – інший (секретний). Ці ключі різні і не можуть бути отримані один з іншого. Алгоритм генерації ключів відкритий, будь-який користувач може подати йому на вхід випадковий рядок r належної довжини й одержати пару ключів (k1, k2 ). Один із ключів (наприклад, k1 )
публікується (відкритий ключ), а другий – зберігається в таємниці (секретний ключ).
Схема обміну інформацією така:
1)одержувач обчислює відкритий і секретний ключі, секретний ключ зберігає в таємниці, відкритий же робить доступним (повідомляє, публікує).
2)відправник, використовуючи відкритий ключ одержувача, шифрує і пересилає йому повідомлення.
3)одержувач приймає повідомлення і розшифровує його, використовуючи свій секретний ключ.
Алгоритми шифрування EK1 та розшифрування DK2 такі, що для будь-
якого відкритого тексту
m DK2 (EK1 (m)) = m.
Розглянемо тепер гіпотетичну атаку зловмисника на цю систему. Супротивникові відомий відкритий ключ K1 , але невідомий відповідний
секретний ключ K2 . Супротивник перехопив криптограму d і намагається знайти повідомлення m , де d = EK1 (m) . Оскільки алгоритм шифрування
відкритий, супротивник може просто послідовно перебрати всі можливі повідомлення довжини n , обчислити для кожного такого повідомлення mi криптограму di = EK1 (mi ) та зрівняти di із d . Те повідомлення, для якого
di = d, і буде відкритим текстом.
Якщо система має такі технічні можливості, то відкритий текст буде знайдено досить швидко. А в гіршому випадку перебір буде виконано за час порядку 2n (n), де T (n) – час, необхідний для шифрування повідомлення
довжини n . Якщо повідомлення мають довжину порядку 1000 біт, то такий
187
перебір нездійсненний на практиці на жодному з найпотужніших комп’ютерів.
Ми розглянули лише один із можливих способів атаки на криптосистему та найпростіший алгоритм пошуку відкритого тексту, названий алгоритмом повного перебору. Використовується також інша назва: метод грубої сили. Інший найпростіший алгоритм пошуку відкритого тексту – вгадування. Цей очевидний алгоритм вимагає невеликих обчислень, але спрацьовує з дуже малою ймовірністю (при великих довжинах текстів). Насправді супротивник може намагатися атакувати криптосистему різними способами, використовуючи різні, більш витончені алгоритми пошуку відкритого тексту.
Крім того, зловмисник може спробувати відновити секретний ключ, використовуючи знання (у загальному випадку несекретні) про математичну залежність між відкритим і секретним ключами. Природно вважати криптосистему стійкою, якщо будь-який такий алгоритм потребує практично нездійсненного обсягу обчислень або спрацьовує з дуже малою ймовірністю. (При цьому супротивник може використати не тільки детерміновані, але й імовірнісні алгоритми). Це і є теоретично складний підхід до визначення стійкості.
Використання асиметричного методу шифрування проілюстроване на рис. 4.18,б.
Першими найбільш відомими асиметричними алгоритмами є:
–RSA – його стійкість залежить від складності факторизації великих цілих чисел;
–ECC (криптосистема на основі еліптичних кривих) – є конкурентом стосовно інших асиметричних алгоритмів шифрування, тому що при еквівалентній стійкості використовує ключі меншої довжини і має велику продуктивність;
–ElGamal – криптостійкість заснована на обчислювальній складності задачі логарифмування цілих чисел у кінцевих полях.
Істотним недоліком асиметричних методів є низька швидкодія (на 3-4 порядки повільніше одноключових), тому їх сполучають із симетричними. Для розсилання ключів повідомлення шифрують секретним ключем, який потім шифрують відкритим асиметричним ключем одержувача і після цього зашифрований текст і ключ відправляють йому мережею.
На рис. 4.19,а. відображене ефективне шифрування, реалізоване шляхом сполучення симетричного й асиметричного методів, а розшифрування ефективно зашифрованого повідомлення ілюструє рис.4.19,б.
Алгоритм DES. Найбільш відомим представником перших симетричних алгоритмів став DES (Data Enscryption Standard), розроблений фірмою IBM. DES став стандартом шифрування для урядових закладів США із 70-х років і фактично є блоковим шифром, що використовує підстановки, перестановки, зсуви і додавання за модулем 2. Довжина блоку шифрування в початковому варіанті DES була 64 біта, а ключ мав розмір
188

56 біт. З підвищенням обчислювальної потужності комп’ютерної техніки, а також з появою спеціалізованих мікросхем для злому DES-шифрограм, довжина ключа була збільшена до 256 біт.
Повідомлення |
|
|
Зашифроване |
Сообщение |
|
|
Зашифрованное |
|
|
|
повідомлення |
Симметричнаяетричнешифруванняшифровка |
сообщение |
||
|
|||
|
|
|
Зашифрований |
|
|
|
Зашифрованный |
|
|
|
ключ |
Ключлю |
ААсиметричнеметричнаяшифруванняшифровка |
ключ |
|
|
|||
Генераторключівчей |
ОВідкткрыртыитийключполучателяодерж вача |
||
|
|
а |
|
Зашифрованифрованеое |
|
|
ПовідомленСообщениея |
сообщение |
|
|
|
повідомлення |
|
Симметричнетричнаяшифруванняшифровка |
|
|
|
||
Зашифрований |
|
|
|
Зашифрованный |
|
|
|
ключ |
|
|
|
ключ |
АсимметричнаяАсиметричне шрасшифруванняифровка |
Ключ |
|
|
|||
|
Закритий |
одержувача |
|
|
Секретныйключч получателя |
|
б
Рис. 4.19. Криптографічне перетворення:
а – шифрування повідомлення; б – розшифрування повідомлення.
Підстановки і перестановки, використовувані в алгоритмі, фіксовані і не залежать від ключа шифрування. Розширений ключ, що задає вибір відповідного підключа в кожному з 16 циклів шифрування, визначається наступним алгоритмом (рис. 4.20):
–секретний 56-бітний ключ (Х) ділиться на два 28 бітові напівблоки
Аі В;
–напівблоки А та В циклічно зсуваються на Кі біт ліворуч щодо попереднього свого положення (і – номер циклу, Ki – набір заздалегідь визначених чисел);
–48-бітний підключ KEYi виходить на кожній ітерації в результаті зчеплення за визначеним правилом частин підблоків Ai і Bi.
189

L |
0 |
|
R0 |
|
X 1 |
|
|
|
|
||
|
|
|
|
|
|
|
|
f (R0 , X ) |
|
|
|
|
|
|
|
|
|
L1 = R0 |
R1 |
= L0 |
f (R0 |
, X ) |
|
|
|
|
|
|
X 2 |
|
|
f (R1 , X ) |
|
|
|
|
|
|
|
|
|
L15 = R14 |
R15 |
= L14 |
f (R14, X) |
||
|
|
|
|
|
X16 |
|
|
f (R15 , X ) |
|
|
|
|
|
|
|
|
|
L16 = R15 |
R16 = L15 f (R15 , X ) |
||||
|
|
||||
|
R16 |
L16 |
|
|
|
Рис. 4.20. Структурна схема алгоритму DES
Основні етапи алгоритму шифрування DES полягають у наступному: До 64-бітного блоку початкового тексту застосовується фіксована перестановка IP. На кожному ітеративному кроці виконується операція
шифрування, при якій:
–64-бітний блок тексту P, що шифрується, розбивається на ліву (L) і праву (R) 32-х бітові половини P1 і P2;
–права половина P розбивається на 8 бітових тетрад, кожна з яких за циклічним законом доповнюється крайніми бітами із сусідніх тетрад до 6- бітного слова;
–отриманий 48-бітний блок (8 слів по 6 біт кожне) складається за модулем 2 з 48 бітами підключа. Отриманий результат розбивається на 8 блоків по 6 біт;
–кожний з отриманих на попередньому кроці блоків надходить на вхід функції фіксованого S-блоку, що виконує нелінійну заміну наборів 6- бітних блоків тетрадами;
–отримані 32 біта піддаються фіксованій перестановці, результатом якої є одержання блоку Fi(P2);
–компоненти правого 32-бітного зашифрованого напівблоку Fi(P2) підсумовуються за модулем 2 з компонентами лівого напівблоку Pi і міняються місцями.
До блоку тексту, отриманому після 16 циклів, застосовується зворотна фіксована перестановка, у результаті чого виходить підсумковий 64-бітний шифротекст.
При розшифровці кодованого DES-блоку порядок операції буде зворотний.
190