Основний крок криптоперетворення по своїй суті є оператором, що визначає перетворення 64-бітового блоку даних. Додатковим параметром цього оператора є 32-бітовий блок, у якості якого використовується який-небудь елемент ключа. Схема алгоритму основного кроку приведена на малюнку 1. Нижче дані пояснення до алгоритму основного кроку:
Крок 0. Визначає вихідні дані для основного кроку криптоперетворення:
· N– перетворений 64-бітовий блок даних, у ході виконання кроку його молодша (N1) і старша (N2) частини обробляються як окремі 32-бітові цілі числа без знака. Таким чином, можна записати N=(N1,N2).
· X– 32-бітовий елемент ключа;
Рис. 6.1. Основний крок криптографічного перетворення алгоритму ГОСТ 28147-89. |
Крок 1. Додавання до ключа по модулю 232. Молодша половина перетвореного блоку додається по модулю 232 до використуємого на кроці елемента ключа, результат передається на наступний крок;
Крок 2. Поблочна заміна. 32-бітове значення, отримане на попередньому кроці, інтерпретується як масив з восьми 4-бітових блоків коду: S=(S0,S1,S2,S3,S4,S5,S6,S7). Далі значення кожного з восьми блоків заміняється на нове, котре вибирається по таблиці замін у такий спосіб: значення блоку Si заміняється на Si-тий один по одному елемент (нумерація з нуля) i-того вузла замін (тобто i-того рядка таблиці замін, нумерація також з нуля). Іншими словами, як заміна для значення блоку вибирається елемент із таблиці замін з номером рядка, рівним номеру змінюємого блоку, і номером стовпця, рівним значенню змінюємого блоку як 4-бітового цілого додатного числа. Тепер стає зрозумілим розмір таблиці замін: число рядків у ній дорівнює числу 4-бітних елементів у 32-бітному блоці даних, тобто восьми, а число стовпців дорівнює числу різних значень 4-бітного блоку даних, рівному як відомо 24, шістнадцяти;[17]
Крок 3. Циклічне зрушення на 11 біт вліво. Результат попереднього кроку зрушується циклічно на 11 біт вбік старших розрядів і передається на наступний крок. На схемі алгоритму символом Q11 позначена функція циклічного зрушення свого аргументу на 11 біт вбік старших розрядів;
Крок 4. Побітове додавання: значення, отримане на кроці 3, побітно складається по модулю 2 зі старшою половиною перетвореного блоку.
Крок 5. Зміна блоків: молодша частина перетвореного блоку зрушується на місце старшої, а на її місце розміщується результат виконання попереднього кроку.
Крок 6. Отримане значення перетвореного блоку повертається як результат виконання алгоритму основного кроку криптоперетворення[18].
Таблиця замін.
Через те, що алгоритм ГОСТ є блоковим шифром він має у своєму складі так звану таблицю замін. Однак на відміну від DES в ГОСТі інформація про таблицю замін вважається секретною, посилюючи таким чином криптостійкість усього алгоритму. Деякі фірми, що займаються програмуванням криптографічних систем, генерують таблицю замін випадковим чином. В навчальних цілях при виконанні лабораторних робіт рекомендується використовувати детерміновану таблицю замін (додаток № 3)
Базові цикли криптографічних перетворень.
Базові циклі побудовані з основних кроків криптографічного перетворення, розглянутого в попередньому розділі. У процесі виконання основного кроку використовується тільки один елемент ключа, однак ключ ГОСТ містить вісім таких елементів. Отже, щоб ключ був використаний повністю, кожний з базових циклів повинний багаторазово виконувати основний крок з різними його елементами. Разом з цим здається цілком природним, що в кожному базовому циклі всі елементи ключа повинні бути використані однакову кількість раз, з точки зору стійкості шифру це число повинне бути більше одиниці.
Базові цикли полягають у багаторазовому виконанні основного кроку з використанням різних елементів ключа і відрізняються один від одного тільки числом повторень кроку і порядком використання ключових елементів. Нижче приведений цей порядок для різних циклів[1].
1. Цикл зашифрування:
K0,K1,K2,K3,K4,K5,K6,K7,K0,K1,K2,K3,K4,K5,K6,K7,K0,K1,K2,K3,K4,K5,K6,K7,K7,K6,K5,K4,K3,K2,K1,K0.
2. Цикл розшифрування:
K0,K1,K2,K3,K4,K5,K6,K7,K7,K6,K5,K4,K3,K2,K1,K0,K7,K6,K5,K4,K3,K2,K1,K0,K7,K6,K5,K4,K3,K2,K1,K0.
Порядок виконання лабораторної роботи.
1. Вивчити схему шифрування алгоритмом ГОСТ.
2. В додатку №1 вибрати ключ та відкритий текст (подані у бінарному вигляді) відповідно до номеру студента в журналі.
3. Зашифрувати поданий текст алгоритмом ГОСТ вручну.
4. Скласти звіт про виконання роботи, у якому вказати початкові дані, послідовність дій шифрування та кінцевий результат і відповіді на запитання.
Контрольні питання
1. Накреслити і пояснити структуру ГОСТ.
2. Пояснити кожен крок шифрування.
3. Поясніть цикл зашифрування.
4. Поясніть цикл розшифрування.
5. Таблиця замін: її особливості, та відмінність від таблиці замін DES.
2.7. Лабораторна робота № 7. Алгоритм шифрування даних IDEA.
Тема роботи: Алгоритм шифрування даних IDEA.
Ціль роботи: Відпрацювати навики шифрування алгоритмами IDEA. Одержання досвіду програмної реалізації алгоритму IDEA.
Загальні відомості
Алгоритм IDEA (International Data Encryption Algorithm) є блоковим шифром. Він оперує 64-бітовими блоками відкритого тексту. Безсумнівним достоїнством алгоритму IDEA є те, що його ключ має довжину 128 біт. Той самий алгоритм використовується і для шифрування, і для розшифрування.
Перша версія алгоритму IDEA була запропонована у 1990 р., її автори – Х.Лай і Дж.Мессі. Первісна назва алгоритму PES (Proposed Encryption Standard). Поліпшений варіант цього алгоритму, розроблений у 1991 р., одержав назву IPES (Improved Proposed Encryption Standard). У 1992 р. IPES змінив своє ім'я на IDEA. Як і більшість інших блокових шифрів, алгоритм IDEA використовує при шифруванні процеси змішування і розсіювання, причому всі процеси легко реалізуються апаратними і програмними засобами.
Теоретичні відомості
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.