Тема 4. Блокові і потокові симетричні шифри
29. Принципи побудови блокових шифрів.
Блоковим шифром називається система шифрування, що використовує на кожнім такті постійний, обраний до початку шифрування, у залежності від ключів, алгоритм.
Оскільки зашифрування повинно бути взаємно однозначн перетворенням, то блоковий шифр є шифром заміни з дуже великим алфавітом. Знаки алфавіту представляються у виді двійкових блоків даних фіксованої довжини.
Наприклад, алгоритм ГОСТ 28147-89 призначений для роботи з блоками довжиною 64 біта. В режимі простої заміни цей шифр взаємно однозначно відображає множину потужності на себе.
Для блокових шифрів оцінка стійкості пов'язана з оцінкою якості т.зв. віртуальних таблиць заміни, тобто таблиць заміни, представити які цілком на носії неможливо через великий обсяг даних.
Блоковий шифр є сукупністю віртуальних таблиць заміни. Ключ служить для вибору таблиці, що є незмінною в процесі шифрування окремого повідомлення.
Очевидно, що криптографічні властивості шифру простої заміни істотно залежать від ключів. Тому в блоковому шифрі ключі, взагалі кажучи, можуть бути нерівноцінні. Загальна проблема оцінки якості блокового шифру зводиться до задачі визначення великих областей ключів, яким відповідають підстановки, найбільш складні для розкриття відповідног шифра простої заміни.
30. Режими роботи блокових шифрів.
Існує декілька стандартних режимів роботи блокових шифрів – методик модифікації блокових шифрів так, щоб результат шифрування кожного блоку був унікальний незалежно від даних, що шифруються.
Режим електронної кодувальної книги ECB (Electronic Code Book)
Повідомлення ділиться на блоки. Кожен блок шифрується окремо, незалежно від інших блоків. Однакові блоки завжди зашифровуються однаково, що аналогічно шифруванню за допомогою звичайної кодової книги, звідси і назва – Electronic Codebook. Звичайно розмір блоку дорівнює 64 бітам, отже, в "кодовій книзі" досить багато записів – . Структура кожної "кодової книги" визначається своїм ключем. Розшифрування за тією ж схемою.
Режим зчеплення блоків шифртексту CBC (Cipher Block Chaining)
Для зчеплення використовується механізм зворотного зв'язку, оскільки результат шифрування попередніх блоків використовується для шифрування поточного блоку.
Режим шифрування із зворотним зв'язком CFB (Cipher Feedback)
Режим CFB зворотного зв'язку шифру, близький до CBC, перетворює блоковий шифр на шифропоток, що самосинхронизується. Операція дуже схожа на попередню. Як і у СВС, в режимі CFB шифрований текст залежить від усього попереднього тексту
Режим шифрування із зовнішнім зворотним зв'язком OFB (Output Feedback).
У режимі OFB механізм зворотного зв'язку не залежить від початкового тексту і зашифрованого тексту. Режим (OFB) зворотного зв'язку виводу перетворює блоковий шифр на синхронний шифропоток: це генерує ключові блоки, які є результатом додавання з блоками відкритого тексту, щоб отримати зашифрований текст.
31. Блоковий шифр DES.
Американський стандарт криптографічного закриття даних DES (Data Encryption Standard), прийнятий у 1978 році, є типовим представником сімейства блокових шифрів і одним з найбільш поширених криптографічних стандартів на шифрування даних, застосовних у США. Цей шифр допускає ефективну апаратну і програмну реалізацію, причому можливе досягнення швидкостей шифрування до декількох мегабайт за секунду.
Шифрування і розшифрування в алгоритмі DES здійснюються за однаковими схемами за винятком процедури формування ключів, використовуваних на циклах його роботи.
Алгоритм реалізує так звану схему Фейстеля, що передбачає ітераційну обробку двох частин блоку початкових даних.
При цьому на кожному циклі (раунді – в оригінальній документації) роботи алгоритму з використанням підстановок і перестановки реалізуються функції розсіювання (дифузії) і перемішування. Всього в алгоритмі виконується 16 раундів
32. Алгоритм ГОСТ 28147-89. Зашифрування в режимі простої заміни.
Алгоритм криптографічного перетворення, установлений ГОСТ 28147-89 використовується для зашифруванні даних в двох режимах, а також для вироблення т.зв. імітовставки. При зашифруванні даних ГОСТ зводиться до шифру блокового гамування з довжиною блоку в 64 біта. Гамма накладається порозрядно, за модулем два. Основна задача кожного з режимів гамування - формування 64-х бітових блоків для входу в блоковий шифр - основний режим роботи ГОСТ, що називається режимом простої заміни. Ключі необхідні для роботи ГОСТ саме в цьому режимі. Вихід з блокового шифру є власне блоком гамми.
Для шифрування кожної криптограми виробляється 64-х бітовий несекретний псевдовипадковий блок (синхропосилка). Цей блок служить параметром у ході деяких ітеративних перетворень. Синхропосилка є першим блоком шифротексту.
Використовуються два типи ключів: довгостроковий і сеансовый розміром 512 і 256 бітів відповідно. Ключ реалізує потетрадну заміну 32-розрядних підблоків у 32-х розрядні і складається з 8 вузлів: . У стандарті довгостроковий ключ називається блоком підстановки . Вузол є таблицею заміни для -ой (зліва) тетради, тобто побудований з 16 тетрад. Ключ складається з конкатенації восьми 32-х розрядних підключив , кожний з яких у відповідний момент підсумовується з деяким підблоком за модулем (операція +).
Зашифрування блоку в режимі простої заміни складається з 32 циклів. На кожному циклі відбувається перетворення 64-х бітового блоку в 64-х бітовий.
Результатом зашифрування є результат роботи (вихід) тридцять другого циклу, підданий додатковому перетворенню (перестановка підблоків, тобто половинок блоків, місцями).
Криптоеквівалентним чином процес простої заміни блоку на блок можна представити у виді послідовності тридцяти чотирьох подблоков розміром 32 біта кожний:
, || , || .
Тут || - результат роботи циклу номер . Додаткове перетворення змінює порядок підблоків у вихідному блоці циклу номер 31.
Елементи послідовності зв'язані ланцюговою залежністю виду , де - порозрядне додавання підблоків за модулем два.
Запис означає, що підблок модифікується за допомогою перетворення, яке залежить від . Точніше, , де залежить від параметрів, задіяних у циклі з номером . Кожна з функцій використовує ключ і деякий підключ сеансового ключа , де - послідовність вибору підключів: . Перетворення полягає в обчисленні підблоку , заміні кожної тетради підблоку за допомогою відповідного вузла і циклічному зсуві отриманого підблоку на 11 розрядів вліво. Таким чином, є циклічно зсунутим виходом з блоку підстановки .