Криптоаналіз блочного шифру тотальним перебором ключів

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

Для виконання роботи перейдіть до каталогу, вказаного викладачем, який містить робочі програми, та запустіть програму “перебір. exe ” На екрані монітора з'явиться головне вікно програми (Мал. 1).

шифру

Мал. 1 Основне вікно програми

1. Введіть керуючий ключ з 7 біт для генерації 5 раундових ключів по 16 біт. Генерація відбувається так: Сім біт керуючого ключа використовуються як початкове заповнення для семиразрядного лінійного рекурентного регістру (ЛРР). Цей формує псевдовипадкову послідовність довжиною 2 7 -1 = 127 біт. Перші 80 біт цієї послідовності використовуються як 5-ти раундових ключів навчального шифру. Такий метод завдання ключа було обрано з двох причин. Перша продемонструвати необхідність виключення криптографічно слабких раундових ключів (наприклад 0000... або 00110011... або 010101... і т.п.). Друга - скоротити кількість варіантів для перебору. Так при переборі всіх варіантів раундових ключів (80 біт) потрібно 2 80 ≈ 1,2 10 24 розшифровок повідомлення. При вибраному способі завдання ключів, шляхом отримання їх з ключа керуючого довжиною 7 біт, кількість варіантів для перебору скорочується до 2 7 = 128, що є цілком перебірною величиною.

Для введення ключа, що управляє, слід клікнути мишею кнопку «задати ключ» (якщо ключ був заданий, кнопка буде називатися «змінити ключ»). У діалоговому вікні (Мал. 2) слід ввести ключ із семи біт (нуль або один) довільним чином.

шифру

Мал. 2 Діалогове вікно завдання ключа.

2. Зробіть шифрування випадково обраної двійкової послідовності довжиною 16 біт з використаннямобраного п.1 ключа. Слідкуйте за результатами шифрування в кожному з 4-х раундів шифру SPN .

Для цього у вікні введення ключа натисніть кнопку «Дослідити раунди шифру». Відкриється діалогове вікно дослідження роботи шифру (Рис. 3), що містить схему навчального шифру, поля для введення двійкової послідовності 16 біт відкритого повідомлення, що підлягає шифруванню, та виведення 16 біт криптограми. На схемі у місцях, де застосовуються раундові ключі, показані послідовності біт, що відповідають цим ключам. Введіть довільну послідовність двійкової довжиною 16 біт у відповідне поле (Переміщатися між полями можна клавішами Tab і Shift + Tab ). Потім слід клікнути мишкою кнопку «зашифрувати», яка знаходиться ліворуч від схеми шифру.

блочного

Мал. 3 Діалогове вікно дослідження роботи шифру.

У нижній частині схеми з'являться 16 біт криптограми, що відповідає введеному відкритому повідомленню, а правіше за схему з'явиться 11 послідовностей по 16 біт, що відповідають проміжним результатам шифрування (Рис. 4).

тотальним

Мал. 4 Діалогове вікно дослідження роботи шифру. Виведення проміжних результатів шифрування.

Перевірте правильність виконання шифрування для 1-го раунду шифру (біти ключа сумуються з бітами повідомлення, що шифрується, по модулю 2; таблиця нелінійних перетворень s - box -ов наведена в додатку; порядок перестановок відображений на схемі).

3. Зробіть дешифрування криптограми, отриманої на виході шифру в п. 2 з використанням ключа, вибраного в п. 1. Для цього натисніть кнопку «розшифрувати», розташовану нижче криптограми. Переконайтеся, що отримана послідовність збігається з тією, яка була обрана як «відкритий текст» для шифрування у п. 2.

Розшифруйте криптограмупри емуляції помилок у каналі передачі. Для цього інвертуйте перший біт криптограми та розшифруйте її. Підрахуйте кількість позицій, у яких розшифроване повідомлення відрізняється від вихідного (вибраного у п. 2). Потім відновіть вихідне значення першого біта криптограми та інвертуйте другий. Виконайте розшифровку та підрахунок помилок, так само як і для першого біта криптограми.

Виконайте ці дії по черзі інвертуючи всі 16 біт криптограми. Результати внесіть до таблиці звіту. Підрахуйте середню кількість помилок за формулою:

4. Проведіть шифрування смислового тексту, на ключі, вибраному в п. 1. Для цього поверніться в основне вікно програми, натиснувши кнопку «вийти» у вікні дослідження роботи шифру (Мал. 3) та у вікні введення ключа (Мал. 2). Основне вікно призначене для роботи шифру зі смисловим текстом або великими обсягами даних (більше одного блоку) і містить два текстові поля - ліве та праве. Для відображення «відкритого» смислового тексту, що підлягає шифруванню, служить ліве поле (до нього можливе введення символів з клавіатури), для відображення зашифрованого повідомлення, що підлягає дешифруванню, служить праве поле (введення символів з клавіатури в це поле неможливе).

Після появи у лівому полі «відкритого» тексту клацніть мишкою кнопку «зашифрувати =>» (Мал. 1). У правому полі з'явиться шифртекст - набір символів коду ASCII , які відповідають значенням байтів зашифрованого повідомлення. Передбачена можливість зберегти зашифроване повідомлення файл даних за допомогою кнопки «зберегти у файл», розташованої під правим полем (Рис. 1). Щоб пізніше відкрити цей файл для розшифровки, слід скористатися кнопкою «відкрити файл», розташованою під правим полем (Мал. 1).

5. Зробіть дешифрування криптограми, отриманої в п.5 на ключі, згенерованому в пункті 1, і на довільному, відмінному від вірного, ключі. Для цього необхідно записати або запам'ятати ключ шифрування пункту 1.

Очистіть ліве поле від «відкритого» тексту, натиснувши кнопку «очистити» під лівим полем. Створіть новий ключ шифрування. Для цього клацніть кнопку «змінити ключ» і в вікні введення ключа, що з'явилося, довільним чином задайте новий керуючий ключ з 7-ми біт. Поверніться до основного вікна програми та натисніть кнопку «

Переконавшись у тому, що дешифрування на невірному ключі не дає результатів, знову натисніть кнопку «змінити ключ» і відновіть значення ключа, на якому проводилося шифрування. Знову розшифруйте криптограму, що міститься у правому полі, але тепер на дійсному ключі. Переконайтеся, що розшифроване повідомлення співпадає з вихідним.

6. Проведіть криптоаналіз криптограми, отриманої п. 4, методом тотального перебору ключів. При цьому правильний ключ визначається за статистикою символів дешифрованого повідомлення, яка має бути близька до статистики смислового повідомлення. Для цього натисніть кнопку «підібрати ключ» (Мал. 1). На екрані монітора з'явиться вікно завдання параметрів криптоаналізу (Мал. 5).

блочного

Мал. 5 Вікно завдання параметрів криптоаналізу.

У вікні слід задати допустимі інтервали відхилення частот появи символів у смисловому тексті. Якщо прийняти середнє значення частоти появи літери в змістовому тексті за P [%] а відхилення за dP , то допустимий інтервал аналізованих частот у відсотках визначається як

У програмі реалізовано аналіз частот за 6 буквами тексту, трьома українськими: «О», «А», «І», та трьома латинськими: «E», «T», «O» та символом «пробіл». Середні значення частот появи букв в українській таанглійською мовами наведено у таблицях 1 та 2.

Середні частоти появи букв українського алфавіту в українській мові.