Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_лекцій_Захист_інформації.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

3.4 Блоковий шифр tea

Розглянемо один з найпростіших у реалізації, але визнано стійких криптоалгоритмів - TEA (Tiny Encryption Algorithm).

Параметри алгоритму: Розмір блоку – 64 біта. Довжина ключа – 128 біт. В алгоритмі використана мережа Фейштеля із двома гілками в 32 біта кожна. Утворююча функція F оборотна. Мережа Фейштеля несиметрична через використання функції арифметичного додавання.

Схема роботи алгоритму наведена на рис. 3.5.

Відмітною рисою криптоалгоритму TEA є його розмір. Простота операцій, відсутність табличних підстановок й оптимізація під 32-розрядну архітектуру процесорів дозволяє реалізувати його мовою ASSEMBLER у гранично малому об'ємі коду. Недоліком алгоритму є деяка повільність, викликана необхідністю повторювати цикл Фейштеля 32 рази (це необхідно для ретельного "перемішування даних" через відсутність табличних підстановок).

Мінімальна кількість циклів, які можуть змінити одиничний біт даних - шість, але для надійного шифрування краще зробити 32 цикли (дія, що складається з однократного обчислення утворюючої функції F і наступного накладення її результату на іншу гілку з обміном їх місцями, називається циклом чи раундом (англ. round)). Схема роботи алгоритму приведена на рисунку 3.5. В даному алгоритмі ключ складається з 128 біт, що робить спробу розшифрувати дані за допомогою техніки неможливою. Дані для кодування розбиваються на дві частини Y та Z. В деяких алгоритмах ключі KEY0 та KEY1 змінювалися за допомогою додавання. Але в цьому випадку використовується змінна сума sum (її початкове значення рівне 0х00000000 в шістнадцятковій системі числення), яка утворюється арифметичним додаванням деякої константи delta в кожному циклі, що спрощує версію та робить її більш ефективною. Значення цієї константи delta= (в шістнадцятковій системі числення значення delta=0x9е3779b9). Різні частини delta використовуються в кожному циклі таким чином, що жоден біт даної частини не змінюється багаторазово.

Рисунок 3.5 - Шифр TEA

Розглянемо утворюючу функцію F, яка формується наступним чином: спочатку утворюються два доданки для операції XOR k (рис 3.5). Перший доданок формується так: значення даних X зсувається на 4 біти вліво і арифметично додається до KEY0. Другий доданок: значення даних X зсувається на 5 бітів вправо і арифметично додається до KEY1. Результат операції XOR k є першим доданком для операції XOR m (рис 3.5). А другий доданок для операції XOR m утворюється так: значення даних X арифметично додається до значення sum. Утворення функції F на цьому закінчується.

Далі значення функції F арифметично додається до значення даних Z і отримані результати X i Z попарно міняються місцями. Далі починається наступний раунд, в якому кодується значення другої половини даних (X).

4 Симетричні криптосистеми

4.1 Функції криптосистем

Всі дослідження, які ми проводили на попередніх лекціях, стосувалися лише криптоалгоритмів, тобто методів перетворення невеликого блоку даних (від 4 до 32 байт) в зашифрований вигляд залежно від заданого двійкового ключа. Криптоалгоритми, позасумнівом, є "серцем" криптографічних систем, але, як ми зараз побачимо, їх безпосереднє використання без яких-небудь модифікацій для шифрування великих об'ємів даних насправді не дуже прийнятне.

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

  1. посилення захищеності даних;

  2. полегшення роботи з криптоалгоритмом з боку людини;

  3. забезпечення сумісності потоку даних з іншим програмним забезпеченням.

Конкретна програмна реалізація криптосистеми називається криптопакетом.