
- •Теоретичні відомості
- •1.1. Історія виникнення та розвитку des.
- •1.2.Опис алгоритму.
- •1.3.Компоненти алгоритму des.
- •1.4.Робота алгоритму.
- •1.5.Ключі в des.
- •2.Елементи теорії інформації.
- •3.Різнецевий криптоаналіз.
- •4.Робота з оболонкою.
- •5.Методика аналізу впливу бітів ключа.
- •Хід роботи
- •Лабораторна робота №2 Дослідження впливу ключів на криптостійкість des Мета роботи
- •Хід роботи
- •Лабораторна робота №3 Дослідження впливу s-блоків на криптостійкість des Мета роботи
- •Хід роботи
- •Література
- •79008, М. Львів, пл. Митна, 1
1.5.Ключі в des.
Як уже було сказано, в класичному DES використовується 56-бітний ключ, на основі якого генеруються робочі ключі довжиною 48 біт кожний для кожного циклу алгоритму. Таким чином, на основі одного ключа отримують за допомогою використання його бітів 16 інших ключів ненабагато меншої довжини, що дає в результаті високу ступінь зв”язку між робочими ключами і ставить до форми головного ключа таку вимогу, згідно до якої отримані робочі ключі були б максимально різні між собою.
Нагадаємо в кількох словах механізм формування робочих ключів:
1.Головний ключ ділиться на дві половини довжиною по 28 біт кожна.
2.Половини незалежно одна від одної перед кожним циклом зсуваються на один чи на два біти вліво, причому сумарний зсув 16-ти циклів становить 28.
За допомогою таблиці компресії головного ключа на кожному циклі з бітів головного ключа формуються робочі ключі.
Результатом застосування такого методу формування ключів може стати такий випадок, при якому з одного головного ключа для кожного циклу будуть формуватись одинакові робочі ключі, що в свою чергу призведе до падіння криптостійкості системи. Для прикладу, якщо одна чи обидві половини головного ключа складаються лише з одиничок чи ноликів, то всі робочі ключі будуть одинаковими.
Такі головні ключі називають слабкими ключами. Існує 4 слабкі ключі в чистому вигляді:
64-бітний вигляд слабкого ключа |
Фактичний слабкий ключ |
||||
0101 |
0101 |
0101 |
0101 |
0000000 |
0000000 |
FEFE |
FEFE |
FEFE |
FEFE |
FFFFFFF |
FFFFFFF |
1F1F |
1F1F |
1F1F |
1F1F |
0000000 |
FFFFFFF |
E0E0 |
E0E0 |
E0E0 |
E0E0 |
FFFFFFF |
0000000 |
Таблиця 9. Слабкі ключі.
Крім того, існують пари ключів, які при шифруванні одного і того ж фрагменту тексту явного утворюють одинакові шифрограми. Результатом цього є можливість відшифрування одним з пари ключів шифрограми, створеної іншим ключем. Це пояснюється способом генерації робочих ключів: замість генерування 16-ти різних ключів генеряться два однакові по вісім раз.
Такі ключі називаються напів-слабкими. Ці ключі перераховані в таблиці 10.
01FE |
01FE |
01FE |
01FE |
1FE0 |
1FE0 |
0EF1 |
0EF1 |
001E0 |
001E0 |
01F1 |
01F1 |
1FFE |
1FFE |
0EFE |
0EFE |
011F |
011F |
010E |
010E |
E0FE |
E0FE |
F1FE |
F1FE |
FE01 |
FE01 |
FE01 |
FE01 |
E01F |
E01F |
F10E |
F10E |
E001 |
E001 |
F101 |
F101 |
FE1F |
FE1F |
FE0E |
FE0E |
1F01 |
1F01 |
0E01 |
0E01 |
FEE0 |
FEE0 |
FEF1 |
FEF1 |
Таблиця 10. Напів-слабкі ключі.
Також існує тип ключів, які генерять лише 4 різні робочі ключі по 4 рази. Використанння таких ключів також призводить до зменшення криптостійкості системи і такі ключі називають частково слабкими.
Всі інші ключі - а це 256 - (4+24+48=76) можна вважати біль-менш безпечними, оскільки вони при першому наближенні не виявляють якогось послаблення криптостійкості.
Щодо ключів, що є слабкими, то конкретне рішення по їх викоританню чи невикористанню залежить від розробника криптосистеми. З одної сторони, ймовірність появи саме слабкого ключа є практично нульовою, а з іншої не складним є перед використанням перевіряти ключі на їх належність до множини слабких, напівслабких чи частково слабких ключів.
Крім того, певну небезпеку з точки зору криптостійкості системи становить властивість комплементарності ключів. Комплементарні ключі - це ключі, протилежні за формою один одному - кожній одиничці одного ключа відповідає нолик в другому і навпаки.
Небезпека є в тому, що комплементарні ключі шифрують комплементарні тексти явні до комплементарних шифрограм. В результаті, при застосуванні атаки за допомогою тексту явного достатньо реалізувати лише половину переборів ключів від максимального числа 256. Біхам і Шамір показали, що при застосуванні такого методу потрібно як мінімум 233 різних текстів явних. Слід сказати, що ефект від властивості комплементарності дуже легко зменшити, застосувавши перетворення вихідного тексту явного в послідовність більш-менш рівноймовірних символів, і тоді час, потрачений на аналіз комплементарних текстів в порівнянні з часом, затраченим на пробу ключа, зведе до нуля ефект комплементарності.
Щодо вибраної довжини ключа, слід сказати, що Lucifer, з якого виріс DES мав 128-бітний ключ, який в DES зменшили до 56-ти біт.
З початку впровадження DES точиться дискусія щодо криптостійкості, яка забезпечується таким ключем. І що цікаво, з плином часу оцінки експертів щодо необхідних затрат ресурсів часу і грошей для злому алгоритму, що має саме таку довжину ключа збільшуються.
В результаті цього до даного часу не доказано математично, за скільки ж часу можна все-таки ефективно перебрати 256 ключів.
Крім того, після впровадження в 1990 році Біхамом і Шаміром різнецевої атаки, питання про довжину ключа втратило актуальність через те, що для цього методу атаки на криптографічні системи довжина ключа не грає принципової ролі.
В зв”язку з цим єдиним критерієм можна назвати той, що довжина ключа повинна забезпечувати таку кількість комбінацій, яку не можна було б перебрати швидше того часу, за який можна реалізувати різнецеву криптоатаку.
1.6.S-блоки в DES.
S-блоки є ключовим моментом алгоритму - за їх допомогою нелінійні операції шифрування даних, що дає можливість досягнути максимального перемішування тексту, ключа і вмісту S-блоків.
Треба сказати, що поза багатьма спробами проаналізувати S-блоки на ефективність і надійність чи на можливість розміщення в них якоїсь западні, на даний час не існує методики синтезу і аналізу якості отриманих S-блоків.
Але існують кілька критеріїв, згідно до яких проектуються S-блоки.
1. Жоден S-блок не є лінійною функцією від розміщення його елементів. Тобто, не можна показати лінійну залежність між вхідними і вихідними бітами.
2. Зміна одного біту на вході S-блоку повинна призводити до зміни хоча б 2-ох бітів на виході. Тобто, S-блоки проектуються таким чином, щоб забезпечити максимальний ступінь розпорошення.
3. S-блоки формуються таким чином, щоб мінімізувати різницю в кількості між ноликами і одиничками.
Ці критерії, що запропоновані на початку впровадження DES актуальні і сьогодні і використовуються при створенні криптосистем з використанням DES.