Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Коваль_відповіді.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.29 Mб
Скачать

Опис алгоритму.

Шифр IDEA являється покращеною версією PES і був розроблений, щоб збільшити безпеку проти диференційного криптоаналізу.

Цей шифр складається з 64-бітових блоків, що повторюються, з 128-бітовим ключем і восьма проходами (rounds). Хоча цей шифр не шифр Файстела (Feistel), дешифрування виконується по тому ж принципу, що і шифрування. Так як і інші блокові алгоритми, які до цього часу існують, IDEA порівно використовує як змішування так і розпорошування. Шифр IDEA являється повторенням шифру з вісім циклів і супроводжується вихідним перетворенням. Структура шифру була розроблена для легкого втілення як програмно, так і апаратно, и безпека IDEA грунтується на використанні трьох не сумісних типів арифметичних операцій над 16-бітовим словами. Швидкість програмного IDEA порівнювана зі швидкістю DES.

Повний перший цикл і вихідне перетворення зображені на схемі (рис.4).

1.2.1.Процес шифрування.

В шифрувальному процесі показаному на рис.4, використовуються три інших групові операції пар 16-ти бітових підблоків, а саме

  • побітове виключаюче-АБО двох 16-ти бітових підблоків, позначається як ;

  • додавання цілих по модулю 216, де 16-ти бітовий підблок пердставлений як звичайне ціле при основі 2; результуюча операція представлена як [+];

  • множення цілих по модулю 216+1, де 16-ти бітовий підблок пердставлений як звичайне ціле при основі 2, крім того всі нульові підблоки розглядаються як 216; результуюча операція представлена як ;

Розподіл ключів.

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

.

128-бітний ключ користувача потім циклічно зсувається вліво на 25 позицій, після якого результуючий 128-бітний блок знову поділяється на вісім підблоків, які взяті як наступні вісім підблоків ключа. Отриманий 128-бітний блок знову циклічно зсувається на 25 позицій вліво, щоб утворити наступні вісім підблоків ключа, і ця процедура повторюється поки всі 52 підблоки ключа не будуть згенеровані

Переваги У програмній реалізації на Intel486SX в порівнянні з DES IDEA в два рази швидше, що є істотним підвищенням швидкості, довжина ключа у IDEA має розмір 128 біт, проти 56 біт у DES, що є гарним поліпшенням проти повного перебору ключів. Імовірність використання слабких ключів дуже мала і становить. ІДЕЯ швидше алгоритму ГОСТ 28147-89 (в програмній реалізації на Intel486SX). Використання IDEA в паралельних режимах шифрування на процесорах Pentium III і Pentium MMX дозволяє отримувати високі швидкості. У порівнянні з фіналістами AES, 4-смуговий ІДЕЯ лише злегка повільніше, ніж RC6 і Rijndael на Pentium II, але швидше, ніж Twofish і MARS. На Pentium III 4-смуговий IDEA навіть швидше RC6 і Rijndael. Перевагою також є хороша вивченість і стійкість до загальновідомих засобів криптоанализа. Недоліки ІДЕЯ значно повільніше, майже в два рази, ніж Blowfish (в програмній реалізації на Intel486SX). Істотним недоліком є ​​те, що запатентований IDEA, так як це перешкоджає його вільному поширенню. ІДЕЯ не передбачає збільшення довжини ключа. Недоліком можна також вважати той факт, що не всі роботи з криптоаналіз були опубліковані, тобто цілком можливо, що шифр зламаний, або буде зламаний в майбутньому.

26) Операції, що застосовуються в IDEA. MA-структура.

В IDEA використовуються наступні математичні операції:

  • порозрядне додавання по модулю 2 (операція "виключає АБО"); операція позначається як (+);

  • складання беззнакових цілих по модулю 216; операція позначається як [+];

  • множення беззнакових цілих по модулю (216 +1), причому блок з 16 нулів розглядається як 216; операція позначається як (·).

Всі операції виконуються над 16-бітовими субблоками.

Ці три операції несумісні в тому сенсі, що:

  • ніяка пара з цих трьох операцій не задовольняє асоціативному закону,

  • наприклад a[+] (b (+) c) # (a [+] b) (+) c;

  • ніяка пара з цих трьох операцій не задовольняє дистрибутивному закону,

наприклад a [+] (b (·) c) # (a [+] b) (·) (a [+] с).

Комбінування цих трьох операцій забезпечує комплексне перетворення вхідних даних, істотно ускладнюючи крипто-аналіз IDEA в порівнянні з DES, який базується виключно на операції "виключає АБО".

Одним з основних елементів алгоритму, які забезпечують дифузію, є структура, яка називається МА (множення / додавання):

Структура МА (множення / додавання):

На вхід структури MA подаються два 16-бітових значення та два 16-бітових підключа, на виході створюються два 16-бітових значення. Так кожен біт виходу цієї структури залежить від кожного біта входів незашифрованого блоку і від кожного біта подключей. Ця структура повторюється в алгоритмі вісім разів, забезпечуючи високоефективну дифузію. Раунд починається з перетворення, яке комбінує чотири вхідних подблока з чотирма підключили, використовуючи операції додавання і множення. Чотири вихідних блоку цього перетворення комбінуються, використовуючи операцію XOR для ф ормування двох 16-бітових блоків, які є входами МА структури. Крім того, МА структура має на вході ще два підключа і створює два 16-бітових виходу.

I-ий раунд IDEA

У висновку раунду чотири вихідних подблока перші перетворення комбінуються з двома вихідними подблока МА структури, використовуючи XOR для створення чотирьох вихідних подблоков даної ітерації. Дуже важливо, що два виходи, які частково створюються другим і третім входами (Х2 і Х3), міняються місцями для створення другого і третього виходів (W12 і W13). Це збільшує перемішування бітів і робить алгоритм більш стійким для диференціального криптоаналізу.

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