- •1 Основні види й джерела атак на інформацію
- •1.1 Сучасна ситуація в області інформаційної безпеки
- •1.2 Категорії інформаційної безпеки
- •1.3 Абстрактні моделі захисту інформації
- •1.4 Огляд найпоширеніших методів "злому"
- •2 Криптографія
- •2.1 Основні відомості про криптографію
- •2.2 Предмет криптографії
- •2.3 Математичні основи криптографії
- •2.4 Нові напрями
- •2.5 Класифікація криптоалгоритмів
- •3 Симетричні криптоалгоритми
- •3.1 Скремблери
- •3.2 Блокові шифри Загальні відомості про блокові шифри
- •3.3 Мережа Фейштеля
- •3.4 Блоковий шифр tea
- •4 Симетричні криптосистеми
- •4.1 Функції криптосистем
- •4.2 Алгоритми створення ланцюжків
- •4.3 Методи рандомізації повідомлень
- •4.5 Хешування паролів
- •4.6 Транспортне кодування
- •4.7 Загальна схема симетричної криптосистеми
- •5 Асиметричні криптоалгоритми
- •5.1 Загальні відомості про асиметричні криптоалгоритми
- •5.2 Алгоритм rsa
- •5.3 Технології цифрових підписів
- •5.4 Механізм поширення відкритих ключів
- •5.5 Обмін ключами за алгоритмом Діффі-Хеллмана
- •Перелік рекомендованих джерел
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 байт) в зашифрований вигляд залежно від заданого двійкового ключа. Криптоалгоритми, позасумнівом, є "серцем" криптографічних систем, але, як ми зараз побачимо, їх безпосереднє використання без яких-небудь модифікацій для шифрування великих об'ємів даних насправді не дуже прийнятне.
Всі недоліки безпосереднього використання криптоалгоритмів усуваються в криптосистемах. Криптосистема – це завершена комплексна модель, що здатна здійснювати двосторонні криптоперетворення над даними довільного об'єму і підтверджувати час відправки повідомлення, володіє механізмом перетворення паролів і ключів і системою транспортного кодування. Таким чином, криптосистема виконує три основні функції:
посилення захищеності даних;
полегшення роботи з криптоалгоритмом з боку людини;
забезпечення сумісності потоку даних з іншим програмним забезпеченням.
Конкретна програмна реалізація криптосистеми називається криптопакетом.
