Обобщенная схема алгоритма DES


Алгоритм DES использует комбинацию подстановок и перестановок. DES осуществляет шифрование 64‑битовых бло­ков данных с помощью 64‑битого ключа, в котором значащими являются 56 бит (остальные 8 бит ‑ проверочные биты для кон­троля на четность). Расшифрование в DES является операцией, обратной шифрованию, и выполняется путем повторения опера­ций шифрования в обратной последовательности. Обобщенная схема процесса

Шифрование в алгоритме DES (рис. 5.1) заключается в начальной переста­новке бит 64‑битого блока, шестнадцати циклах шифрования и, наконец, в конечной перестановке бит.

Следует отметить, что все приводимые таблицы яв­ляются стандартными и должны включаться в реализацию алго­ритма DES в неизменном виде. Все перестановки и коды в таблицах подобраны разработ­чиками таким образом, чтобы максимально затруднить процесс взлома шифра.

Пусть из файла исходного текста считан очередной 64‑битовый блок . Этот блок преобразуется с помо­щью матрицы начальной перестановки IP (табл. 5.1).

Таблица 5.1
Начальная перестановка IP
               
               
               
               
               
               
               
               

Биты входного блока (64 бита) переставляются в соот­ветствии с матрицей : бит 58 входного блока становится битом 1, бит 50 ‑ битом 2 и т.д. Эту перестановку можно описать выра­жением . Полученная последовательность бит разделяется на две последовательности: ‑ левые, или старшие, биты, ‑ правые, или младшие, биты ‑ каждая из которых содер­жит 32 бита.

Затем выполняется итеративный процесс шифрования, состоящий из 16 шагов (циклов). Пусть ‑ результат ‑й итерации: , где (первые 32 бита); (последние 32 бита). Тогда результат ‑й итерации описывается следующими формулами:

Функция называется функцией шифрования. Ее аргумен­тами являются последовательность , получаемая на предыду­щем шаге итерации, и 48‑битовыйключ , который является ре­зультатом преобразования 64‑битого ключа шифра . (Подроб­нее функция шифрования и алгоритм получения ключа описаны ниже.)

На последнем шаге итерации получают последовательно­сти и (без перестановки местами), которые конкатенируются в 64‑битую последовательность .

По окончании шифрования осуществляется восстановле­ние позиций бит с помощью матрицы обратной перестановки (табл. 5.2).

Таблица 5.2
Обратная перестановка
               
               
               
               
               
               
               
               

Процесс разшифрования данных является инверсным по отношению к процессу шифрования. Все действия должны быть выполнены в обратном порядке. Это означает, что расшифровы­ваемые данные сначала переставляются в соответствии с матри­цей , а затем над последовательностью бит выпол­няются те же действия, что и в процессе шифрования, но в обрат­ном порядке.

Итеративный процесс расшифрования может быть описан следующими формулами:

Таким образом, для процесса расшифрования с перестав­ленным входным блоком на первой итерации используется ключ , на второй итерации ‑ и т.д. На 16‑й итерации ис­пользуется ключ . На последнем шаге итерации будут получены последовательности и , которые конкатенируются в 64‑битую последовательность . Затем в этой последователь­ности 64 бита переставляются в соответствии с матрицей . Результат такого преобразования ‑ исходная последовательность бит (расшифрованное 64‑битовое значение).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: