переставленим вхідним блоком R16L16 на першому раунді використовується ключ K16, на другому раунді – K15 і т.д. На 16-ому раунді використовується ключ K1. на останньому кроці останнього раунду будуть отримані послідовності L0 і R0, що конкатенуються (об’єднуються) в 64-бітову послідовність L0R0. Потім у цій послідовності 64 біта переставляються відповідно до матриці IP. Результат такого перетворення – вихідна послідовність бітів. (див. рис. 1.2.)
Основні режими роботи алгоритму DES. Алгоритм DES дозволяє безпосередньо перетворювати 64-бітовий вхідний відкритий текст у 64-бітовий вихідний шифрований текст, однак дані рідко обмежуються 64 розрядами. Щоб скористатися алгоритмом DES для рішення різноманітних криптографічних задач, розроблені чотири робочі режими:
електронна кодова книга ЕСВ (Electronic Code Book);
зчеплення блоків шифру СВС (Cipher Block Chaining);
зворотний зв’язок по шифртексту СРВ (Cipher Feed Back);
зворотний зв’язок по виходу OFB (Output Feed Back)[3].
Режим "Електронна кодова книга". Довгий файл розбивають на 64-бітові відрізки (блоки) по 8 байтів. Кожний з цих блоків шифрують незалежно з використанням того ж самого ключа шифрування. Найбільша перевага цього режиму – простота реалізації. Недолік – відносно слабка стійкість проти кваліфікованих криптоаналітиків. Через фіксований характер шифрування при обмеженій довжині блоку (64 біта) можливе проведення криптоаналізу „зі словником”. Блок такого розміру може повторитися в повідомленні унаслідок великої розмірності тексту. Це приводить до того, що ідентичні блоки відкритого тексту в повідомленні будуть представлені ідентичними блоками шифротексту, що дає криптоаналітику деяку інформацію про зміст повідомлення [2].
Режим "Зчеплення блоків шифру". У цьому режимі вхідний файл М розбивається на 64-бітові блоки: М=M1M2...Mn. Перший блок M1 складається по модулю 2 з 64-бітовим початковим вектором (IV), що змінюється щодня і тримається в секреті. Отримана сума потім шифрується з використанням ключа DES. Отриманий 64-бітовий шифр C1 складається по модулю 2 із другим блоком тексту, результат шифрується і отримується другий 64-бітовий шифр С2, і т.д. Процедура повторюється доти, доки не будуть оброблені всі блоки тексту. Таким чином, для всіх i = 1...n (n – число блоків) результат шифрування Ci визначається у такий спосіб: Сi=DES(Mi xor Сi-1), де С0=IV-початкове значення шифру, що дорівнює початковому вектору ініціалізації. Очевидно, що останній 64-бітовий блок шифротексту є функцією секретного ключа, початкового вектора і кожного біта відкритого тексту незалежно від його довжини. Цей блок шифротексту називають кодом аутентифікації повідомлення (КАП). Код КАП може бути легко перевірений одержувачем, що володіє секретним ключем і початковим вектором, шляхом повторення процедури, виконаної відправником. Перевага даного режиму в тому, що він не дозволяє накопичуватися помилкам при передачі. Блок М, є функцією тільки Сi-1 і Ci. Тому помилка при передачі приведе до втрати тільки двох блоків вихідного тексту [2].
Режим "Зворотний зв’язок за шифром". У цьому режимі розмір блоку може відрізнятися від 64 біт. Файл, що підлягає шифруванню, зчитується послідовними блоками довжиною k бітів k=1...64). Вхідний блок (64-бітовий) спочатку містить вектор ініціалізації, вирівняний по правому краю. Припустимо, що в результаті розбивання на блоки ми одержали n блоків довжиною k бітів кожний (залишок дописується нулями чи пробілами). Тоді для будь-якого i=1...n блок шифротексту Сi=Mi xor Pi-1, де Pi-1 позначає k старших бітів попереднього зашифрованого блоку. Ці k старших бітів , що вже використані при шифруванні, відкидаються і вхідний блок зсовується на k бітів. Для відновлення зашифрованих даних Pi-1 і Сi, відкритий текст обчислюється аналогічним чином Мi=Сi xor Pi-1 [2].
Режим "Зворотний зв’язок по виходу". Цей режим теж використовує змінний розмір блоку і регістр зсуву , що ініціюється (набуває початкового значення) так само, як у режимі СРВ, а саме – вхідний блок спочатку містить вектор ініціалізації IV, вирівняний по правому краю. При цьому, для кожного сеансу шифрування даних необхідно використовувати новий початковий стан регістра, що повинний пересилатися по каналу відкритим текстом. Покладемо М = M1 М2... Мn. Для всіх i = 1... n Сi=Мi xor Рi , де Рi – старші k бітів операції DES (Ci-1). На відміну від режиму зворотного зв’язку по шифру, відновлення регістра зсуву здійснюється шляхом відкидання старших k бітів і дописування їх праворуч відносно Р1 [13].
Хід виконання роботи
Таблиця 1 – Ключ
1234567891011121314151617181920212223242526272829303132
01001011110000110101001011000011
3334353637383940414243444546474849505152535455565758596061626364
00000100110100000101101101011101
Функція PC1 первісної підготовки ключа
5749413325179
1585042342618
1025951433527
1911360524436
63554739312315
7625446383022
1466153453729
211352820124
Таблиця 2 – Отриманий за допомогою функції РС1 регистр C0
5749413325179158504234261810259514335271911360524436
0010101011101111000000001110
Таблиця 3 – Отриманий за допомогою функції РС1 регистр D0
6355473931231576254463830221466153453729211352820124
0100111110010000110000010100
Таблиця 4 – Отриманий за допомогою зсуву вліво на 1біт регистр C1
12345678910111213141516171819202122232425262728
0101010111011110000000011100
Таблиця 5 – Отриманий за допомогою зсуву вліво на 1біт регистр D1
29303132333435363738394041424344454647484950515253545556
1001111100100001100000101000
Таблиця 6 – Отриманий за допомогою функції РС2 підключ К1
Функція РС2
1417112415
3281562110
2319124268
1672720132
415231374755
304051453348
444939563453
464250362932
123456789101112131415161718192021222324
000001001001100101010010
252627282930313233343536373839404142434445464748
110000110000010011010000
Таблиця 7 – Шифротекст
311000110 00000110 11000011 10010001 01101010 00110110 01110001 11000100
1234567891011121314151617181920212223242526272829303132
11000110000001101100001110010001
3334353637383940414243444546474849505152535455565758596061626364
01101010001101100111000111000100
Матриця початкової перестановки IP
585042342618102
605244362820124
625446383022146
645648403224168
57494133251791
595143352719113
615345372921135
635547393123157
Таблиця 8 – Старші біти шифротексту отримані за допомогою функції IP
L0
1234567891011121314151617181920212223242526272829303132
10001101011100000001000000110111
Таблиця 9 – Молодші біти шифротексту отримані за допомогою функції IP R0
1234567891011121314151617181920212223242526272829303132
11010101011010001010001101001100
Матриця розширення E
3212345
456789
8910111213
121314151617
161718192021
202122232425
242526272829
28293031321
Таблиця 10 – Розширення молодших бітів шифротексту за допомогою функції E R0
32123454567898910111213121314151617
011010101010101101010001
16171819202120212223242524252627282928293031321
010100000110101001011001
Таблиця 11 – XOR розширеного R0 та К1
№123456789101112131415161718192021222324
К1000001001001100101010010
R0011010101010101101010001
Ре011011101011001000000011
№252627282930313233343536373839404142434445464748
К1110000110000010011010000
R0010100000110101001011001
Ре100100110110111010001001
№
b1b2b3b4b5b6123456№ рядка
b1b6№
рядка№
стовпця
b2b3b4b5№
стовпцяЧисло
десятковеЧисло
двійкове,S
S1(B1)01101101111011350101
S2(B2)10101111301015151111
S3(B3)0010000000100460110
S4(B4)0000110110001181000
S5(B5)1001001020010210001
S6(B6)110110102101111101010
S7(B7)11101010211011350101
S8(B8)00100101101004101010
Таблиця 12 – Перетворення XOR розширеного R0 та К1 функцією S
№123456789101112131415161718192021222324
Ре011011101011001000000011
S0101111101101000
№252627282930313233343536373839404142434445464748
Ре100100110110111010001001
S0001101001011010
Таблиця 13 – Результат роботи функції S
1234567891011121314151617181920212223242526272829303132
01011111011010000001101001011010
Таблиця 14 – Результат роботи функції P
16720212912281711523261518311028241432273919133062211425
01111010001100111100000001010110
Функція P перестановки бітів
1672021
29122817
1152326
15183110
282414
322739
1913306
2211425
Таблиця 15 – Результат роботи функції P
№1234567891011121314151617181920212223242526272829303132
Р01111010001100111100000001010110
L10001101011100000001000000110111
Х11110111010000111101000001100000
Таблиця 16 – Результати роботи першого раунду
№1234567891011121314151617181920212223242526272829303132
R11110111010000111101000001100000
L11010101011010001010001101001100
Висновки: В результаті виконання лабораторної роботи опановано методику шифрування алгоритмами збивання. На прикладі DES виконано перший раунд шифрування.