Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОЗІ / Лекц_ї / Лекц_я 12.doc
Скачиваний:
40
Добавлен:
05.06.2015
Размер:
129.54 Кб
Скачать

10

Лекція 12. Криптоаналіз

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

Існують різні типи атак, засновані на тому, що супротивникові відома певна кількість пар: незашифроване повідомлення - зашифроване повідомлення. При аналізі зашифрованого тексту супротивник часто застосовує статистичні методи аналізу тексту. При цьому він може мати загальне подання про тип тексту, наприклад, англійський або російський текст, здійсненний файл конкретної ОС, вихідний текст на деякій конкретній мові програмування й т.д. У багатьох випадках криптоаналітик має досить багато інформації про вихідний текст. Криптоаналітик може мати можливість перехоплення одного або декількох незашифрованих повідомлень разом з їхнім зашифрованим видом. Або криптоаналітик може знати основний формат або основні характеристики повідомлення. Говорять, що криптографічна схема абсолютно безпечна, якщо зашифроване повідомлення не містить ніякої інформації про вихідне повідомлення. Говорять, що криптографічна схема розрахунково безпечна, якщо:

  1. Ціна розшифровки повідомлення більше ціни самого повідомлення.

  2. Час, необхідне для розшифровки повідомлення, більше строку життя повідомлення.

Диференціальний і лінійний криптоаналіз

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

Поняття диференціального криптоаналіза були уведено Елі Бихамом (Biham) і Ади Шамиром (Shamir) в 1990 році. Кінцеве завдання диференціального криптоаналіза - використовуючи властивості алгоритму, в основному властивості S-box, визначити підключ раунду. Конкретний спосіб диференціального криптоаналіза залежить від розглянутого алгоритму шифрування.

Якщо в основі алгоритму лежить мережа Фейштеля, то можна вважати, що блок m складається із двох половин - m0 і m1. Диференціальний криптоаналіз розглядає відмінності, які відбуваються в кожній половині при шифруванні. (Для алгоритму DES "відмінності" визначаються за допомогою операції XOR, для інших алгоритмів можливий інший спосіб). Вибирається пара незашифрованих текстів з фіксованою відмінністю. Потім аналізуються відмінності, що вийшли після шифрування одним раундом алгоритму, і визначаються ймовірності різних ключів. Якщо для багатьох пар вхідних значень, що мають те саме відмінність Х, при використанні того самого підключа однаковими (Y) виявляються й відмінності відповідних вихідних значень, то можна говорити, що Х тягне Y з певною ймовірністю. Якщо ця ймовірність близька до одиниці, то можна вважати, що підключ раунду знайдений з даною ймовірністю. Тому що раунди алгоритму незалежні, імовірності визначення підключа кожного раунду варто перемножувати. Як ми пам'ятаємо, уважається, що результат шифрування даної пари відомий. Результати диференціального криптоаналіза використовуються як при розробці конкретних S-box, так і при визначенні оптимального числа раундів.

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

Позначимо

P[1], … , P[n] - незашифрований блок повідомлення.

C[1], … , C[n] - зашифрований блок повідомлення.

K[1], … , K[m] - ключ.

A[i, j, …, k] = A[i] A[j] A[k]

Метою лінійного криптоаналіза є пошук лінійного рівняння виду:

P[ 1, 2, …, a] C[β1, β2, …, βb ] = K[γ1, …, γc]

i, βi і γi - фіксовані позиції в блоках повідомлення й ключі, які виконуються з імовірністю р 0.5. Чим більше р відхиляється від 0.5, тим більше підходящим уважається рівняння.

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

Рівняння складаються в такий спосіб. Обчислюються значення лівої частин для великої кількості пар відповідних фрагментів незашифрованого й зашифрованого блоків. Якщо результат виявляється дорівнює нулю більш ніж у половині випадків, то думають, що K[γ1, …, γс] = 0. Якщо в більшості випадків виходить 1, думають, що K[γ1, …, γс] = 1. У такий спосіб одержують систему рівнянь, рішенням якої є ключ.

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

Соседние файлы в папке Лекц_ї