ки ви можете використовувати будь-який інший;
· відносна простота алгоритму забезпечує високу швидкість обробки інформації;
· достатньо висока стійкість алгорітма.осуществляет шифрування 64-бітових блоків даних за допомогою 56-бітового ключа. Розшифрування в DES є операцією зворотного шифруванню і виконується шляхом повторення операцій шифрування в зворотній послідовності (незважаючи на гадану очевидність, так робиться далеко не завжди. Пізніше ми розглянемо шифри, в яких шифрування і розшифрування здійснюються за різними алгоритмами). Процес шифрування полягає в початковій перестановці бітів 64-бітового блоку, шістнадцяти циклах шифрування і, нарешті, зворотної перестановки бітів (малюнок 4).
Нехай з файлу лічений черговий 8-байтовий блок T, який перетворюється за допомогою матриці початковій перестановки IP (таблиця 1) наступним чином: біт 58 блоку T стає бітом 1, біт 50 - бітом 2 і т. д., що дасть у результаті: T (0)=IP (T). Отримана послідовність бітів T (0) поділяється на дві послідовності по 32 біта кожна: L (0) - ліві чи старші біти, R (0) - праві або молодші біти.
Малюнок 4 - Узагальнена схема шифрування в алгоритмі DES
Малюнок 5 - Структура алгоритму шифрування DES
Таблиця 1.1 - Матриця початковій перестановки IP
Потім виконується шифрування, що складається з 16 ітерацій. Результат i-й ітерації описується такими формулами:
L (i)=R (i - 1) (i)=L (i - 1) xor f (R (i - 1), K (i))
де xor - операція виключає Або.
Функція f називається функцією шифрування. Її аргументи - це 32-бітова послідовність R (i - 1), отримана на (i - 1)-ой ітерації, і 48-бітову ключ K (i), який є результатом перетворення 64-бітового ключа K. Детально функція шифрування і алгоритм отримання ключів К (i) описані нижче. На 16-й ітерації отримують послідовності R (16) і L (16) (без перестановки), які конкатенуються в 64-бітову послідовність R (16) L (16). Потім позиції бітів цієї послідовності переставляють відповідно до матриці IP - 1.
Таблиця 1.2 - Матриця зворотного перестановки IP - 1
Матриці IP - 1 і IP співвідносяться наступним чином: значення 1-го елемента матриці IP - 1 дорівнює 40, а значення 40-го елемента матриці IP одно 1, значення 2-го елемента матриці IP - 1 одно 8, а значення 8-го елемента матриці IP одно 2 і т.д. Процес розшифрування даних є інверсним по відношенню до процесу шифрування. Всі дії повинні бути виконані в зворотному порядку. Це означає, що розшифровуються дані спочатку переставляються відповідно до матриці IP - 1, а потім над послідовністю біт R (16) L (16) виконуються ті ж дії, що і в процесі шифрування, але в зворотному порядку. Ітеративний процес розшифрування може бути описаний такими формулами:
R (i - 1)=L (i), i=1, 2, ..., 16;
L (i - 1)=R (i) xor f (L (i), K (i)), i=1, 2, ..., 16.
На 16-й ітерації отримують послідовності L (0) і R (0), які конкатенуються в 64-бітову послідовність L (0) R (0). Потім позиції бітів цієї послідовності переставляють відповідно до матриці IP. Результат такої перестановки - вихідна 64-бітова послідовність. ...