- •Безпека даних
- •Вступ. Основні поняття безпеки. Конфіденційність, цілісність та доступність даних. Класифікація загроз. Сервіси та механізми захисту.
- •Основні поняття і визначення криптографічного захисту даних.
- •Порушення, механізми і служби захисту.
- •Традиційне шифрування. Модель традиційного шифрування. Криптографія і криптоаналіз. Класична техніка шифрування: підстановки і перестановки.
- •Потокові і блокові шифри. Дифузія і конфузія. Шифр Файстеля. Диференційний та лінійний крипто аналіз. Принципи побудови блокових шифрів
- •Стандарт шифрування даних (des). Критерії, що лежать в основі конструкції des. Алгоритми "Подвійний" та "Потрійний" des.
- •Режими роботи блочних шифрів. Проблема та схеми розподілу ключів симетричного шифрування.
- •1. Режим електронної шифрувальної книги
- •2. Режим зчеплення шифрованих блоків
- •3. Режим шифрованого зворотного зв'язку
- •Генерування випадкових чисел. Використання та джерела випадкових чисел. Генератори псевдовипадкових чисел.
- •Криптографія з відкритим ключем. Принципи побудови криптосистем з відкритим ключем.
- •Алгоритм rsa
- •Порівняння основних характеристик симетричних та асиметричних алгориммів
- •Управління ключами і схема Діффі–Хеллмана.
- •1. Публічне оголошення
- •2. Публічно доступний каталог
- •3. Авторитетне джерело відкритих ключів
- •4. Сертифікати відкритих ключів
- •1. Простий розподіл секретних ключів
- •2. Розподіл секретних ключів із забезпеченням конфіденційності і аутентифікації
- •3. Гібридна схема
- •Аутентифікація повідомлень і функції хешування. Вимоги та функції аутентифікації.
- •1.1. Шифрування повідомлення
- •1.1.1. Традиційне шифрування
- •Коди автентичності повідомлень та функції хешування.
- •1. Коди автентичності повідомлень
- •1.1. Необхідні властивості кодів автентичності повідомлень
- •1.2. Коди автентичності повідомлень на основі des
- •2. Функції хешування
- •2.1. Вимоги, що пред'являються до функції хешування
- •2.2. Прості функції хешування
- •2.3. Атаки, в основі яких лежить парадокс задачі про дні народження
- •3. Захист функцій хешування і кодів автентичності повідомлень
- •3.1. Атаки з перебором всіх варіантів
- •3.2. Функції хешування
- •Алгоритми хешування. Алгоритм hmac.
- •1.1. Цілі розробки нмас
- •1.2. Алгоритм нмас
- •1.3. Захищеність нмас
- •Цифрові підписи та протоколи аутентифікації. Вимоги до цифрового підпису. Стандарт цифрового підпису dss.
- •1. Цифрові підписи
- •1.1. Вимоги
- •1.2. Безпосередній цифровий підпис
- •1.3. Арбітражний цифровий підпис
- •Протоколи аутентифікації. Взаємна та одностороння аутентифікація. (прочитати уважно номери малюнків і т.Д.)
- •2. Підходи на основі традиційного шифрування
- •3. Підходи на основі шифрування з відкритим ключем
- •4. Одностороння аутентифікація
- •5. Підхід на основі традиційного шифрування
- •6. Підходи на основі шифрування з відкритим ключем
- •Програмна реалізація криптографічних алгоритмів. Використання криптографічних функцій Microsoft CryptoApi в прикладному пз. Поняття про безпечний цикл розробки пз (sdl).
- •1. Будова і можливості Crypto api
- •2. Криптопровайдери
- •3. Контейнери ключів
- •4. Алгоритми
- •5. Сертифікати
- •6. Базові функції
- •6.1. Шифрування
- •6.2. Експорт сесійних ключів
- •6.3. Імпорт сесійних ключів
- •6.4. Розшифрування
- •6.5. Хешування
- •6.6. Цифровий підпис
- •6.7. Перевірка цифрового підпису
- •Методи і засоби створення захищеного програмного забезпечення.
- •3. Класифікація вразливостей захисту
- •4. Огляд існуючих аналізаторів
- •Відношення Історія експонатів
- •Список літератури
Порівняння основних характеристик симетричних та асиметричних алгориммів
Дослідження характеристик криптостійкості алгоритму симетричного шифрування DES.
Для проведення експериментальних досліджень було створено програмну реалізацію алгоритму шифрування DES в режимі ECB (електронної записної книжки) [наша про DES], яка б дала можливість накопичувати результати шифрування та змінювати параметри шифрування. Зокрема в програмі передбачено автоматичну генерацію пар вхідних блоків для дослідження дифузії, пар ключів шифрування для дослідження конфузії та статистичну обробку результатів. Крім того, для вивчення особливостей шифрування алгоритму DES створений програмний продукт, який дозволяв проводити автоматизований пошук пар "відкритий текст – шифрований текст", в яких один чи більше байтів відкритого тексту співпадають з такими у шифрованому тексті; для можливості аналізу пар, такий пошук можна проводити в напівавтоматичному режимі, коли оператор може фіксувати один чи більше байтів вхідного блоку чи ключа, та проводити повну вибірку байтів шляхом циклічних зсувів.
Для дослідження дифузії було сформовано 640 пар вхідних блоків, які відрізнялися на 1 біт, а для дослідження конфузії – 560 пар ключів, які відрізнялися на 1 біт. Дифузія визначалась як кількість (у %) різних бітів для пари шифрованих текстів, якщо відповідна пара відкритих текстів відрізнялась на 1 біт, а ключ шифрування був однаковим. Конфузія визначалась як кількість (у %) різних бітів для пари шифрованих текстів, якщо відповідна пара ключів відрізнялась на 1 біт, а відкритий текст був однаковим. Експеримент проводився 10 разів для кожного біта блоку відкритого тексту та ключа шифрування, а результат усереднювався.
Для статистичного дослідження особливостей шифрування алгоритму DES було проведено ряд експериментів які полягали в наступному:
Фіксувався ключ шифрування (випадковий), для 10000 випадкових вхідних блоків проводився пошук шифрованих блоків в яких 1 чи більше байтів співпадають з відповідними байтами вхідного блоку. Кожен експеримент повторювався по 3 рази для 10 різних ключів шифрування.
Фіксувався вхідний блок (випадковий), для 10000 випадкових ключів шифрування проводився пошук шифрованих блоків в яких 1 чи більше байтів співпадають з відповідними байтами вхідного блоку. Кожен експеримент повторювався по 3 рази для 10 різних вхідних блоків.
З метою пошуку пар "відритий текст – шифрований текст" в яких співпадіння спостерігається для 2 і більше байтів було проведено експеримент для 1000000 випадкових ключів шифрування та випадкових вхідних блоків.
Для кожного вхідного блоку та ключа шифрування, для яких співпадіння становило 3 байти було проведено по 100000 експериментів з фіксуванням як ключа шифрування, так і вхідного блоку з метою пошуку інших пар "відритий текст – шифрований текст" в яких співпадіння спостерігається для 3 байтів.
Результати тестування.
Усереднене для 10 експериментів для кожного біта блоку значення дифузії алгоритму DES наведено на рис. 9.1. Максимальне значення дифузії становить 53 %, мінімальне – 45 %. Крім того були розраховані основні статистичні показники для ряду значень дифузії, які наведено в табл. 9.1. Основними характеристиками в нашому випадку є структурні характеристики вибірки: мода і медіана. Вони практично визначають структуру вибіркових даних і визначаються через ці дані. Ці показники мають статус основних або головних при асиметричному розподілі даних, причому, у випадку асиметрії розподілу мода або медіана беруть на себе роль середнього значення, відстань між ними може характеризувати ступінь асиметрії, крім того, медіана вважається найбільш стійкою характеристикою вибірки, а тому може бути основою для критерію оптимального розподілу даних в інтервалах. Як бачимо, в нашому випадку значення медіани і моди практично співпадає з середнім значенням показника дифузії, що підтверджує хорошу статистичну однорідність даних.
Рис. 9.1. Усереднене значення дифузії для алгоритму DES (точки – експериментальні значення, лінія – згладжування за 5-ма точками).
Таблиця 9.1. Статистичні характеристики розподілу значення дифузії та конфузії алгоритму DES від номеру біта блоку
Параметр |
Дифузія |
Конфузія |
Найбільше значення |
53 |
54 |
Найменше значення |
45 |
46 |
Розмах |
8 |
8 |
Медіана |
50 |
50 |
Середнє арифметичне значення |
49,7 |
49,8 |
Значення моди |
49 |
48 |
Дисперсія* |
2,3 |
3,5 |
Стандартне відхилення* |
1,5 |
1,9 |
* – Дисперсія
і стандартне відхилення
визначались як:
,
.
На рис. 9.2 наведено типові значення дифузії алгоритму DES, отримані при виконанні серії з 10 експериментів для окремих бітів блоку тексту. На цьому рисунку представлено значення дифузії для біту з максимальним (рис. 9.2 б), мінімальним (рис. 9.2 г) та типовими (рис. 9.2 а, в) значеннями дифузії. Як видно з рис. 9.2, розподіл значень дифузії в межах проведених експериментів є достатньо однорідним, що підтверджує високу надійність алгоритму шифрування DES.
На рис. 9.3 наведено усереднене по 10 експериментам для кожного біта ключа шифрування значення конфузії алгоритму DES. Максимальне значення дифузії становить 54 %, мінімальне – 46 %. Основні статистичні показники залежності конфузії він номера біта ключа наведено в табл. 1. Як видно з цієї таблиці однорідність розподілу значень конфузії є доволі високою з дисперсією 3,5, що підтверджується також значеннями моди та медіани, які складають 48 і 50 відповідно, при середньому значенні показника конфузії 49,8 %.
|
|
(а) |
(б) |
|
|
(в) |
(г) |
Рис. 9.2. Розкид значень дифузії для алгоритму DES в межах серії експериментів для одного біта блоку (а – біт № 1, б – біт № 28, в – біт № 42, г – біт № 58).
Рис.
9.3. Усереднене значення конфузії для
алгоритму DES (точки – експериментальні
значення, лінія – згладжування за 5-ма
точками).
Типові значення розкиду конфузії алгоритму DES в серії з 10 експериментів для окремих бітів ключа шифрування показані на рис. 9.4 а, б. Як видно з рис. 9.4, розподіл значень конфузії в межах проведених експериментів показує хорошу статистичну однорідність, що також підтверджує високу надійність алгоритму шифрування DES.
|
|
(а) |
(б) |
Рис. 9.4. Розкид значень конфузії для алгоритму DES в межах серії експериментів для одного біта ключа (а – біт № 8, б – біт № 41).
Наступним етапом експериментів було статистичного дослідження особливостей шифрування алгоритму DES. Під час проведення пошуку шифрованих блоків в яких 1 чи більше байтів співпадали з відповідними байтами вхідного блоку проводився як підрахунок загальної кількості пар "відкритий текст – шифрований текст", так і підрахунок пар залежно від номеру байту, що співпав. Результати експерименту з 1000000 блоків та ключів шифрування наведено на рис. 9.5, тут зображено кількість пар "відкритий текст – шифрований текст" в яких були однакові байти, залежно від номеру цього байту. Розрахована з цих результатів середня імовірність появи i-го байту шифрованого тексту, що не відрізняється від i-го байту відкритого тексту становить 0,39 % для кожного байту. При збільшенні кількості вхідних блоків/ключів шифрування в одному експерименті спостерігається покращення рівномірності розподілу однакових байтів в залежності від номеру байту в блоці.
Під час експерименту з 1000000 випадкових вхідних блоків та ключів шифрування було виявлено 3 пари "відкритий текст – шифрований текст" для яких співпадіння становило 3 байти, і ще 2 пари було виявлено під час проведення попередніх 20 експериментів зі 100000 пар блоків/ключів. Виявлені пари в шістнадцятковому вигляді наведені в табл. 9.2.
Таблиця 9.2. Пари "відкритий текст – шифрований текст" з 3 однаковими байтами
№ |
Вхідний блок |
Шифрований блок |
Ключ шифрування |
1. |
A2 A8 8D A5 C3 5C FC 94 |
82 A8 6C 97 B5 68 FC 94 |
39 7C 56 DB FE 01 71 |
2. |
2C C7 2A 3D 5D A3 28 47 |
2C 8A AF 3D C3 6C 68 47 |
C5 97 2D A9 DB F7 8C |
3. |
25 D8 55 37 76 59 B7 DE |
25 5B 78 59 95 59 99 DE |
79 71 91 B7 07 EB B0 |
4. |
10 EA C4 FF 0B C8 1D 28 |
10 EF 56 52 F5 60 1D 28 |
34 C0 A4 9A FB 41 D4 |
5. |
10 89 58 6B C3 D2 4A 0A |
10 B3 58 B6 3B C1 EA 0A |
AD 84 CE 9C 82 B4 21 |
Рис.
9.5. Кількість пар "відкритий текст –
шифрований текст" з однаковими байтами
в залежності від номеру байту для
експерименту з 1000000 блоків.
Метою останнього з серії експериментів, в якому для кожного вхідного блоку та ключа шифрування, для яких співпадіння становило 3 байти було проведено по 100000 експериментів з фіксуванням як ключа шифрування, так і вхідного блоку, було встановити кореляцію між імовірністю появи трьох однакових байтів в парі з ключем шифрування чи блоком відкритого тексту. В ході цього експерименту встановлено, що при імовірності появи трьох однакових байтів приблизно 2–3 на мільйон блоків, при використанні в якості вхідних даних фіксованого вхідного блоку, що мав 3 однакових байти при певному ключі, і проведенні експерименту на 100000 ключів для усіх 5 експериментів виявлявся принаймні ще один ключ шифрування для якого у шифрованому тексті було 3 однакових байти з відкритим текстом. Так, наприклад, для вхідного блоку № 1 (табл. 9.2) було знайдено ключ шифрування 0x9F DD 96 94 EF FE EC, при якому шифрований блок (0x89 A8 01 6F C3 5C C2 ED) має спільні байти № 2, 5 та 6 з вхідним блоком. При фіксуванні ключа шифрування такого результату отримати не вдалось. Таким чином можна зробити висновок, що поява трьох однакових байтів в парі "відкритий текст – шифрований текст" залежить від блоку відритого тексту, а не від ключа шифрування, що може бути пов'язано з деякою лінійною залежністю S-матриць алгоритму DES, і може бути використано при атаці на алгоритм DES за схемою "з вибраним відкритим текстом".
Як видно з вищенаведеного, середнє значення дифузії і конфузії алгоритму DES становить 49,7 % та 49,8 % відповідно, а дисперсія значень залежно від номера біта блоку (чи ключа) становить 2,3 % і 3,5 %. Однорідність розподілу значень цих характеристик підтверджується також значеннями моди та медіани, які майже не відрізняються від середнього арифметичного значення. Дифузійні характеристики алгоритму DES практично відповідають сильному лавинному критерію, і мають статистично однорідний розподіл.
При дослідженні особливостей шифрування алгоритму DES показано, що середня імовірність появи i-го байту шифрованого тексту, що співпадає з i-им байтом відкритого тексту становить 0,39 % для кожного байту. При цьому імовірність появи 3 співпадаючих байтів в одному блоці становить приблизно 0,0003 %. При збільшенні кількості вхідних блоків/ключів шифрування в одному експерименті спостерігається покращення рівномірності розподілу однакових байтів в залежності від номеру байту в блоці.
Поява трьох однакових байтів в парі "відкритий текст – шифрований текст" залежить від блоку відритого тексту, а не від ключа шифрування, що може бути пов'язано з певною функціональною залежністю S-матриць алгоритму DES, і може бути використано при атаці на алгоритм DES за схемою "з вибраним відкритим текстом".
Дослідження основних характеристик алгоритму симетричного шифрування RC5
RC5 – це алгоритм симетричного шифрування, розроблений Роном Райвестом в середині 90-х років [9]. Перевагами алгоритму RC5 над іншими сучасними алгоритмами симетричного блокового шифрування є:
Придатність для апаратної та програмної реалізації. В RC5 використовуються тільки елементарні обчислювальні операції, які зазвичай застосовуються в мікропроцесорах.
Швидкість виконання. RC5 є простим алгоритмом, що працює з даними розміром в машинне слово. Усі основні операції передбачають також роботу з даними довжиною в слово.
Адаптованість до процесорів з різною довжиною слова. Довжина слова в бітах є параметром RC5 – при зміні довжини слова змінюється сам алгоритм.
Змінна кількість раундів. Кількість раундів є другим параметром RC5. Цей параметр дозволяє вибрати оптимальне співвідношення необхідної швидкості роботи і вимог до ступеня захисту.
Змінна довжина ключа. Довжина ключа є третім параметром RC5. Як і в попередньому випадку, цей параметр дозволяє знайти прийнятний компроміс між швидкістю роботи та необхідним рівнем безпеки.
Простота. Структура RC5 дуже проста не тільки для реалізації, але й для оцінки її криптоаналітичної стійкості.
Низькі вимоги до пам'яті. Низькі вимоги до пам'яті роблять RC5 придатним для використання в смарт-картах та інших подібних пристроях з обмеженим об'ємом пам'яті.
Високий ступінь захисту. RC5 покликаний забезпечити високий ступінь захисту за умови вибору відповідних значень параметрів.
Залежність циклічних зсувів від даних. В RC5 використовуються циклічні зсуви, величина яких залежить від даних, що повинно підвищувати криптоаналітичну стійкість алгоритму.
Алгоритм RC5 вбудований в багатьох основних продуктах компанії RSA Data Security Inc., включаючи BSAFE, JSAFE та S/MAIL. RC5 фактично являє собою родину алгоритмів шифрування, що визначається трьома наступними параметрами (табл. 9.3).
Таблиця 9.3. Параметри алгоритму RC5
Параметр |
Визначення |
Допустимі значення |
w |
Розмір слова в бітах. Довжина блока складає 2 слова |
16, 32, 64 |
r |
Кількість раундів |
0, 1 … 255 |
b |
Кількість 8-бітових байтів (октетів) в таємному ключі К |
0, 1 … 255 |
Таким чином, RC5 шифрує блоки відкритого тексту довжиною 32, 64 чи 128 бітів в блоки шифрованого тексту тієї самої довжини. Довжина ключа може змінюватись від 0 до 2040 бітів. Конкретна версія RC5 позначається RC5-w/r/b. Наприклад, RC5-32/12/16 використовує 32-бітові слова (64-бітові блоки відкритого і шифрованого тексту), 12 раундів шифрування і ключ довжиною 16 байтів (128 бітів). Райвест пропонує використовувати RC5-32/12/16 в якості "стандартної" версії RC5.
В алгоритмі RC5 виконуються три елементарні операції (а також обернені до них):
Додавання. Додавання слів виконується по модулю 2w. Оберненою операцією є відніманням по модулю 2w.
Побітове виключне АБО.
Циклічний зсув вліво. В алгоритмі використовується циклічний зсув слова x вліво на y бітів, оберненою операцією є циклічний зсув слова x вправо на y бітів.
Двома найбільш важливими особливостями RC5 є простота алгоритму та використання керованих даними циклічних зсувів. Циклічні зсуви – єдина нелінійна складова даного алгоритму. Райвест стверджує [9], що, у зв'язку з тим, що величина зсуву визначається даними, що обробляються алгоритмом, лінійний та диференційний криптоаналіз алгоритму буде серйозно утруднений.
З метою забезпечення можливості ефективного використання RC5 в неоднорідному середовищі, специфікація RFC 2040 [10] визначає чотири різних режими роботи цього алгоритму.
Блоковий шифр RC5. Алгоритм прямого шифрування, при якому береться блок даних заданого розміру (2w бітів) і з нього за допомогою залежного від ключа перетворення генерується блок шифрованого тексту такого самого розміру. Цей режим часто називають режимом ECB (режим електронної шифрувальної книги).
RC5-CBC. Режим зв'язаних шифрованих блоків для RC5. В режимі СВС обробляються повідомлення, довжина яких кратна розміру блока RC5 (тобто кратна 2w бітам). Режим СВС забезпечує вищий ступінь захисту, ніж ЕСВ, оскільки генерує різні блоки шифрованого тексту для однакових повторних блоків відкритого тексту.
RC5-CBC-Pad. Модифікація режиму СВС, призначена для роботи з відкритим текстом будь-якої довжини. Довжина шифрованого тексту в цьому режимі перевищує довжину відкритого тексту не більш ніж на довжину одного блоку RC5.
RC5-CTS. Режим запозичення шифрованого тексту (ciphertext stealing), теж є модифікацією СВС. В цьому режимі допускається обробка відкритого тексту будь-якої довжини і генерується шифрований текст тієї самої довжини.
Таким чином алгоритм шифрування RC5 має ряд переваг, які дозволяють його використання на процесорах з різною архітектурою та різною довжиною машинного слова, дозволяють ефективно використовувати апаратні та програмні реалізації алгоритму, роблять його програмну реалізацію ефективною з точки зору використання обчислювальних потужностей процесора і пам'яті. На відміну від аналогічних алгоритмів (російського стандарту ГОСТ 28147-89 чи стандарту США Rijndael) низькі вимоги до апаратних ресурсів та змінні параметри алгоритму дозволяють легко адаптувати алгоритм RC5 до змін у вимогах безпеки програмного комплексу, що робить цей алгоритм (у версії RC5-32/12/16, яка забезпечує розумний компроміс між швидкодією і ступенем захисту) оптимальним для використання в якості засобу забезпечення конфіденційності розроблюваної системи розподілення обчислень для задач теплового проектування електронних пристроїв нового покоління.
Для визначення основних параметрів, що впливають на криптостійкість та ефективність програмної реалізації обраного алгоритму шифрування було проведено ряд експериментів:
Для випадкового блоку відкритого тексту створювався парний, в якому i-й біт був інвертований; пара блоків шифрувалась з однаковим випадковим ключем; дифузія визначалась як кількість (у %) різних бітів для отриманої пари блоків шифрованого тексту. Експеримент проводився 10 разів для кожного i (i=0…63), а результати усереднювались.
Для випадкового ключа шифрування створювався парний, в якому i-й біт був інвертований; однаковий випадковий блок відкритого тексту шифрувався з використанням створеної пари ключів; конфузія визначалась як кількість (у %) різних бітів для отриманої пари блоків шифрованого тексту. Експеримент проводився 10 разів для кожного i (i=0…127), а результати усереднювались.
Було створено множину тестових файлів випадкового вмісту розміром від 10 МБ до 1 ГБ, які шифрувались з використанням однакового ключа шифрування, при цьому програмно вимірювався час шифрування кожного файлу. Експерименти проводились 10 разів для кожного розміру файлу, а результати усереднювались. Швидкодія програмної реалізації алгоритму визначалась як коефіцієнт нахилу прямої, що описує залежність розміру відкритого тексту від часу шифрування. Експерименти проводились на комп'ютері з процесором AMD Athlon X2 5000+ (2,7 ГГц) та обсягом оперативної пам'яті 2048 МБ.
Результати тестування.
Усереднене для 10 експериментів для кожного біта блоку значення дифузії алгоритму RC5-32/12/16 наведено на рис. 9.5. Максимальне значення дифузії становить 55,31 %, мінімальне – 43,91 % зі середнім значенням 49,88 %. Таким чином, можна зробити висновок, що алгоритм RC5-32/12/16 задовольняє сильному лавинному критерію і має хороші характеристики надійності. Крім того були розраховані основні статистичні характеристики розподілу значення дифузії та конфузії за номером біта блоку, які наведено в табл. 9.4. Основними характеристиками в нашому випадку є структурні характеристики вибірки: мода і медіана. Вони практично визначають структуру вибіркових даних і визначаються через ці дані. Ці показники мають статус основних або головних при асиметричному розподілі даних, причому, у випадку асиметрії розподілу мода або медіана беруть на себе роль середнього значення, відстань між ними може характеризувати ступінь асиметрії, крім того, медіана вважається найбільш стійкою характеристикою вибірки, а тому може бути основою для критерію оптимального розподілу даних в інтервалах. Як бачимо, в нашому випадку значення медіани і моди практично співпадає з середнім значенням показника дифузії, що підтверджує хорошу статистичну однорідність даних.
Рис.
9.5. Усереднене значення дифузії для
алгоритму RC5-32/12/16 (точки – експериментальні
значення, лінія – згладжування за 5-ма
точками).
Дещо гірші характеристики, особливо суттєво більше значення дисперсії (4,02 порівняно з 2,3), ніж для алгоритму DES [4] найбільш імовірно пояснюється тим, що в алгоритмі RC5 в якості нелійного елементу використовуються залежні від даних циклічні зсуви, а не фіксовані S-матриці, як в алгоритмі DES, тому, залежно від даних, можливий більший розкид параметрів дифузії. Однак мінімальне значення дифузії 43,91 % є незначно гіршим ніж для алгоритму DES (45 %), що виправдовує такий підхід і не знижує криптостійкість алгоритму з точки зору дифузійних характеристик разом з підвищенням криптостійкості стосовно інших методів криптоаналізу [9, 11].
Таблиця 9.4. Статистичні характеристики розподілу значень дифузії та конфузії
Параметр |
Дифузія |
Конфузія |
Найбільше значення |
55,31 |
55,47 |
Найменше значення |
43,91 |
45,94 |
Розмах |
11,40 |
9,53 |
Медіана |
49,92 |
49,84 |
Середнє арифметичне значення |
49,88 |
50,34 |
Значення моди |
49,06 |
47,97 |
Дисперсія* |
4,02 |
4,92 |
Стандартне відхилення* |
2,00 |
2,22 |
* – Дисперсія
і стандартне відхилення
визначались як:
,
.
На рис. 9.6 наведено усереднене по 10 експериментам для кожного біта ключа шифрування значення конфузії алгоритму RC5-32/12/16. Максимальне значення конфузії становить 55,47 %, мінімальне – 45,94 %. Основні статистичні показники залежності конфузії він номера біта ключа наведено в табл. 9.4. Як видно з цієї таблиці статистичні характеристики розподілу значень конфузії залежно від номера біта ключа є дещо нижчими ніж характеристики розподілу дифузії, однак однорідність розподілу значень конфузії залишається доволі високою з дисперсією 4,92, що підтверджується також значеннями моди та медіани, які складають 47,97 і 49,84 відповідно, при середньому значенні показника конфузії 50,34 %. У порівнянні з алгоритмом DES [4] максимальне і середнє значення конфузії є дещо вищими (54,0 % і 49,8 % для алгоритму DES відповідно) при майже однаковому мінімальному значенні (46,0 % для DES), однак розподіл значень дифузії алгоритму DES від номеру біта ключа є більш однорідним з дисперсією 3,5 проти 4,92 для досліджуваного алгоритму RC5.
Рис.
9.6. Усереднене значення конфузії для
алгоритму RC5-32/12/16 (точки – експериментальні
значення, лінія – згладжування за 5-ма
точками).
Для визначення швидкодії програмної реалізації у вихідному коді тестової програми використовувались функції, що на основі довжини такту процесора (кванту часу на такт), вираховували кількість тактів між двома точками програми. Таким чином було визначено швидкодію програмної реалізації алгоритму шифрування без урахування зчитування даних в оперативну пам'ять і запис на диск. Методом найменших квадратів було апроксимовано залежність часу шифрування від розміру файлу лінійною функцією і показано, що експериментальні дані з високою точністю апроксимуються лінійною залежністю (коефіцієнт кореляції не менший ніж 0,99903).
Швидкодія програмної реалізації алгоритму визначалась як коефіцієнт нахилу прямої, що описує залежність розміру відкритого тексту від часу шифрування. Розрахована таким чином швидкість шифрування даної реалізації алгоритму RC5-32/12/16 становить 212,77±0,01 Мбайт/с, що майже на порядок перевищує отриману нами швидкість програмної реалізації алгоритму DES (11,08 Мбайт/с на процесорі Intel Celeron D 351) [12] і підтверджує високу швидкість роботи алгоритму, описану в літературі [9].
Таким чином, незважаючи на дещо нижчі характеристики дифузії і конфузії алгоритму RC5-32/12/16 порівняно з DES, він залишається достатньо стійким за цими параметрами і значно переважає алгоритм DES за рядом інших параметрів і властивостей, зокрема швидкість його програмної реалізації є майже на порядок більшою і менш вимогливою до ресурсів центрального процесора і пам'яті, що відіграє особливу роль в системах, основним навантаженням яких є вирішення ресурсоємних задач теплового проектування. Отже алгоритм RC5-32/12/16 залишається оптимальним вибором для реалізації модуля забезпечення конфіденційності інформації системи розподілення обчислень для задач теплового проектування.
Отже, встановлено, що середнє значення дифузії і конфузії алгоритму RC5-32/12/16 становить 49,88 % та 50,34 % відповідно, а дисперсія значень залежно від номера біта блоку (чи ключа) становить 4,02 % і 4,92 %. Однорідність розподілу значень цих характеристик підтверджується також значеннями моди та медіани, які майже не відрізняються від середнього арифметичного значення. Дифузійні характеристики алгоритму RC5-32/12/16 практично відповідають сильному лавинному критерію, і мають достатній статистично однорідний розподіл.
Швидкість шифрування алгоритму RC5-32/12/16 на процесорі AMD Athlon X2 5000+ становить 212,77±0,01 Мбайт/с, що майже на порядок перевищує швидкість програмної реалізації алгоритму DES і підтверджує високу швидкість роботи алгоритму, описану в літературі. Показано, що швидкодія програмної реалізації алгоритму є лінійною в усьому дослідженому діапазоні розмірів вхідних файлів. Показано доцільність використання алгоритму RC5-32/12/16 для задач шифрування даних за умов обмежених ресурсів центрального процесора і оперативної пам'яті.
Порівняння швидкодії програмної реалізації алгоритмів симетричного (DES) та асиметричного (RSA) шифрування.
Швидкодія алгоритмів. Стверджується, що найшвидшою апаратною реалізацією DES є мікросхема, розроблена в Digital Equipment Corporation [6]. Вона підтримує режими ЕСВ і СВС та заснована на вентильній матриці GaAs, що складається з 50000 транзисторів. Дані можуть шифруватись та дешифруватись зі швидкістю 1 Гбіт/с, обробляючи 16,8 мільйонів блоків за секунду. Параметри швидкодії сучасних комерційних мікросхем DES знаходяться в межах від 0,64 Мбайт/с до 200 Мбайт/с [2].
В [2, 7] приведені результати та оцінки швидкості програмної реалізації DES для різних мікропроцесорів Intel і Motorola; так для процесора Intel 80486 66 МГц швидкість шифрування складає 336 кбайт/с, а для процесорів DEC Alpha 4000/610 та HP 9000/887 – 1,17 Мбайт/с і 1,50 Мбайт/с відповідно.
Апаратно RSA приблизно в 1000 разів повільніший за DES. Швидкодіючі апаратні 512-бітові модулі забезпечують швидкість шифрування на рівні 64 кбіт/с [8]. Готуються ІС, здатні виконувати такі операції зі швидкістю 1 Мбайт/с. Існують також мікросхеми, які виконують 1024-бітове шифрування RSA.
Програмно DES приблизно у 100 разів швидший за RSA. Ці числа можуть незначно змінитись при зміні технології, однак RSA ніколи не досягне швидкості симетричних алгоритмів [2]. Швидкість програмного шифрування RSA складає 1,56–2,0 кбайт/с залежно від розміру блоку повідомлення при 8-бітовому відкритому ключі (при використанні процесора SPARC II) [9].
Шифрування RSA виконується
набагато швидше, якщо правильно вибрати
значення
.
Трьома найбільш частими варіантами є
3, 17 та 65537 (216+1). (Двійкове представлення
65537 містить тільки дві одиниці, тому для
піднесення до степеня треба виконати
тільки 17 множень.) Стандарт Х.509 радить
65537 [10], РЕМ рекомендує 3 [11], a
PKCS#1 – 3 або 65537 [4]. Не існує
жодних проблем безпеки, пов’язаних з
використанням в якості
будь-якого з цих трьох значень (за умови
доповнення повідомлення випадковими
числами), навіть якщо одне й те саме
значення
використовується цілою групою користувачів
[2].
Операції із закритим ключем можна
пришвидшити за допомогою китайської
теореми про остачі [1], якщо зберегти
значення
і
,
а також додаткові значення:
,
і
[2, 12]. Ці додаткові числа можна легко
обчислити за закритим і відкритим
ключами.
Програмна реалізація алгоритмів. З метою забезпечення гнучкості та апаратної незалежності програмної реалізації та можливості коректного порівняння результатів тестування швидкодії програмної реалізації алгоритмів, нами було використано стандартні криптопровайдери, які реалізують зазначені алгоритми та входять до складу Microsoft CryptoAPI, а сама програмна реалізація здійснена мовою C# на платформі Microsoft .NET.
Для реалізації алгоритмів DES та RSA були використані функції CryptoAPI [14]. Реалізація всіх алгоритмів (шифрування, цифрового підпису і т.п.) повністю винесена із складу самого CryptoAPI і реалізується в окремих незалежних динамічних бібліотеках – "криптопровайдерах" (Cryptographic Service Provider – CSP).Детальніше ця тема буде розглянута в розділі 14
Результати тестування. За допомогою програми генерації тестових файлів було створено множину файлів випадкового вмісту розміром від 4 кбайт до 128 Мбайт. Експерименти проводилися тричі з метою мінімізації випадкової складової похибки вимірювання. Вимірювання часу операцій шифрування / розшифрування визначалось з точністю ±5 мс, а після отримання всіх трьох значень для кожного з тестових файлів час операцій усереднювався. Дослідження даного алгоритму проводились на комп‘ютері з процесором Intel Celeron D з тактовою частотою 3.2 ГГц, та обсягом оперативної пам’яті 2 Гбайт. Результати тестових експериментів наведено в табл. 9.5.
Таблиця 9.5. Усереднені значення тестових результатів
Розмір файлу, кбайт |
Час операції шифрування, мс. |
|
RSA |
DES |
|
4 |
15 |
46 |
8 |
31 |
93 |
16 |
46 |
109 |
32 |
109 |
117 |
64 |
218 |
125 |
128 |
421 |
125 |
256 |
828 |
140 |
512 |
1687 |
156 |
1024 |
3390 |
203 |
2048 |
6734 |
296 |
4096 |
13390 |
481 |
8192 |
26859 |
828 |
16384 |
56828 |
1593 |
32768 |
107156 |
3140 |
65536 |
214953 |
6046 |
131072 |
427312 |
11546 |
Методом найменших квадратів було апроксимовано залежність часу шифрування від розміру файлу лінійною функцією. Ці залежності наведено на рис. 9.7 (точками позначено результати тестування, а суцільними лініями – розраховані функції). В усіх випадках дані з високою точністю апроксимуються лінійною залежністю (коефіцієнт кореляції не менший ніж 0,99903), а коефіцієнт k, що характеризує зростання часу шифрування зі зростанням розміру файлу становить для алгоритму DES 0,0889±0,0006, а для алгоритму RSA – 3,299±0,009. Незважаючи на те, що швидкість роботи алгоритму RSA сильно зростає зі збільшенням розміру вхідного тексту, з рис. 1 та табл. 1 видно, що при розмірі вхідних даних до 256 кбайт алгоритм поступається DES за швидкістю менше ніж у 6 разів, а час шифрування є меншим ніж 1 с.
Рис. 9.7. Залежності часу шифрування від розміру вхідних даних алгоритмів DES та RSA.
Швидкодія програмної реалізації алгоритму визначалась як коефіцієнт нахилу прямої, що описує залежність розміру відкритого тексту від часу шифрування. Розрахована таким чином швидкість шифрування даної реалізації алгоритму RSA становить 306,4±0,6 кбайт/с, а алгоритму DES – 11350±60 кбайт/с. Слід зазначити, що отримана швидкодія програмної реалізації алгоритму RSA значно перевищує кращі показники апаратної реалізації кінця 90-х, а швидкодія DES є на рівні деяких апаратних реалізацій алгоритму. Крім того, з цих результатів видно, що швидкодія програмної реалізації алгоритму RSA в 37 разів меншою порівняно з алгоритмом DES.
Швидкість шифрування алгоритму RSA становить 306,4±0,6 кбайт/с, що значно перевищує кращі показники апаратної реалізації кінця 90-х. Показано, що швидкодія програмної реалізації алгоритму є лінійною в усьому дослідженому діапазоні розмірів вхідних файлів, а коефіцієнт зростання часу шифрування зі зростанням розміру файлу складає 3,299. Показано доцільність використання алгоритму RSA для задач шифрування даних обсягом до 256 кбайт (в цьому діапазоні різниця з алгоритмом DES є меншою ніж у 6 разів, а абсолютне значення часу шифрування є меншим 1 с). Швидкість шифрування алгоритму DES становить 11350±60 кбайт/с, що є на рівні деяких апаратних реалізацій алгоритму, а швидкість роботи реалізації алгоритму залишається лінійною в діапазоні розмірів вхідного тексту до 128 Мбайт. Показано, що порівняно з алгоритмом DES швидкість шифрування програмної реалізації RSA є в 37 разів меншою, що є на порядок кращим від літературних даних.
Також показано, що засоби CryptoAPI в поєднанні з платформою Microsoft .NET є ефективним, гнучким та архітектурно незалежним інструментом для створення ефективних та безпечних модулів криптографічного захисту інформації в середовищі Windows. Завдяки цифровим підписам криптопровайдерів, використанню CIL-коду та наявності Garbage Colector цей інструмент дозволяє реалізувати вимоги до захищеності криптографічних модулів ПЗ та забезпечити їх достатню швидкодію.
При розробці компонентів захисту інформації, отримані результати дозволяють стверджувати наступне: при шифруванні потоку даних на прикладному рівні слід застосовувати симетричні алгоритмі шифрування у поєднанні з алгоритмами обімну ключів або асиметричного шифрування для передачі ключів; при шифруванні сегментів транспортного рівня можна використовувати тільки асиметричні алгоритми шифрування забезпечуючи при цьому конфіденційність, аутентифікацію та цифровий підпис – втрати у швидкості шифрування будуть незначними, а час шифрування буде меншим ≈ 0,3 с (для симетричного алгоритму DES – 0,15 с).
