слідовністю біт. Для уникнення витоку інформації про кожному окремому блоці використовуються різні режими шифрування. Кожен вихідний незашифрований 64-бітний блок ділиться на чотири подблока по 16 біт кожен, так як всі операції алгебри, що використовуються в процесі шифрування, здійснюються над 16-бітними числами. Для шифрування і дешифрування IDEA використовує один і той же алгоритм.
В IDEA використовуються наступні математичні операції:
? поразрядное додавання по модулю 2 (операція виключає АБО );
? додавання беззнакових цілих по модулю 2 16;
? множення беззнакових цілих по модулю (2 16 +1), причому блок з 16 нулів розглядається як +2 16;
Істотним недоліком є ??те, що IDEA запатентований, так як це перешкоджає його вільному поширенню. IDEA не передбачає збільшення довжини ключа. Недоліком можна також вважати той факт, що не всі роботи з криптоаналіз були опубліковані, тобто цілком можливо, що шифр зламаний, або буде зламаний в майбутньому.
Структура алгоритму IDEA представлена ??нижче (рис. 1).
Рис. 1. Алгоритм шифрування IDEA
Для IDEA рекомендовано кілька режимів:
· режим електронної кодової книги (ECB - Electronic Code Book)
· режим зчеплення блоків (СВС - Cipher Block Chaining)
· режим зворотного зв'язку по шифртексту (CFB - Cipher Feed Back)
· режим зворотного зв'язку по виходу (OFB - Output Feed Back).
У цій роботі розглядається програмна реалізація алгоритму шифруванні IDEA (режим Cipher Feed Back).
1.2 Порівняння аналогів алгоритму IDEA
1.2.1 Алгоритм DES
DES (Data Encryption Standart) - Симетричний алгоритм шифрування, в якому один ключ використовується, як для шифрування, так і для розшифрування даних. DES має блоки по 64 біт і 16 цикловую структуру мережі Фейстеля, для шифрування використовує ключ з довжиною 56 біт.
Алгоритм використовує комбінацію нелінійних (S-блоки) і лінійних (перестановки E, IP, IP - 1) перетворень.
Так як DES оперує блоками 64-бітного розміру і використовує 56-бітний ключ, така довжина ключа відповідає 256 комбінацій, що забезпечувало донедавна достатній рівень безпеки, (8 парних бітів повного 64-бітного ключа не використовуються, біти парності є найменшими значущими бітами байтів ключа). Вхідний блок даних, що складається з 64 біт, перетвориться у вихідний блок ідентичною довжини.
Внаслідок використання 56-бітного ключа шифрування алгоритм DES може бути зламаний шляхом тотального перебору на будь-якій сучасній обчислювальній системі за цілком реальні терміни - кілька дней.сімметрічная криптосистема, визначена як 16-раундовий шифр Фейстеля (Feistel) була спочатку призначена для апаратної реалізації. Коли DES використовується для передачі інформації, то щоб зашифрувати і розшифрувати повідомлення або щоб створити і перевірити код автентичності повідомлення (MAC) відправник і одержувач повинні знати секретний ключ.
Процес шифрування алгоритму DES полягає в початковій перестановці бітів 64-бітового блоку, шістнадцяти циклах шифрування і, нарешті, зворотної перестановки бітів (рис. 2).
Рис.2. Алгоритм шифрування DES
1.2.2 Алгоритм RC6
Алгоритм RC6 - симетричний блоковий криптографічний алгоритм, похідний від алгоритму RC5.
Варіант шифру RC6, заявлений на конкурс AES, підтримує блоки довжиною 128 біт і ключі довжиною 128, 192 і 256 біт, але сам алгоритм може бути налаштований для підтримки більш широкого діапазону довжин як блоків, так і ключів (від 0 до 2040 біт).
Є фіналістом AES, і використовує практично всі існуючі технології, застосовувані в криптоалгоритмах, проте одна з примітивних операцій - операція множення, повільно виконувана на деякій обладнанні та ускладнює реалізацію шифру на ряді апаратних платформ і, що виявилося сюрпризом для авторів, на системах з архітектурою Intel IA - 64 також реалізована досить погано. В даному випадку алгоритм втрачає одне зі своїх ключових переваг - високу швидкість виконання, що стало причиною для критики і однією з перепон для обрання в якості нового стандарту.
Рис. 3. Алгоритм шифрування RС6
Структура шифрування алгоритму RC6 представлена ??на рис.3. Короткий опис алгоритму: в алгоритмі використовується 20 раундів перетворень, перед якими виконується часткове вхідний відбілювання:
o B=B + K 0 mod 2 32