Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Алгоритм шифрования DES

Замечание 1

Алгоритм шифрования DES — это блочный алгоритм, в котором при выполнении шифрования исходное сообщение должно переводиться в двоичный код, а далее разбиваться на блоки, и каждый блок должен отдельно зашифровываться (расшифровываться).

Введение

В 1977-ом году Национальное бюро Стандартов Соединенных Штатов выпустило стандарт шифрования данных Data Encryptίon Standard (DES), который предназначался для применения в государственных и правительственных учреждениях, для того чтобы защитить от несанкционированного доступа важную, но несекретную информацию. Алгоритм, который был положен в основу стандарта, получил достаточно быстрое распространение, и уже в 1980-м году получил одобрение ANSI.

С этого момента DES превратился в стандарт не только по названию (Data Encryptίon Standard), но и по факту использования. Появилось специальное программное обеспечение, а также и специализированные микро ЭВМ, которые были предназначены для шифровки и расшифровки информации в сетях передачи данных, а также и на магнитных носителях.

На сегодняшний день DES может считаться самым распространенным алгоритмом, который используется в системах защиты коммерческой информации. Кроме того использование алгоритма DES в подобных системах стало уже просто признаком хорошего тона. В качестве примера можно привести программу DISKREET из пакета Norton Utίlities, которая предназначена для формирования шифрованных разделов на диске и которая применяет именно алгоритм DES.

Алгоритм шифрования DES

К числу основных достоинств алгоритма DES необходимо отнести следующие моменты:

  1. Использование лишь одного ключа, который имеет размер в 56 бит.
  2. Если шифрование сообщения было выполнено при помощи одного пакета, то для его расшифровки получатель может пользоваться любым другим пакетом.
  3. Наличие относительной простоты алгоритма способно обеспечить высокую скорость информационной обработки.
  4. Алгоритм обладает достаточно высокой стойкостью.
«Алгоритм шифрования DES» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

DES способен осуществлять шифрование 64-битовых информационных блоков при помощи 56-битового ключа. Расшифровка в DES выступает как операция, обратная шифрованию, то есть, она может быть выполнена путем повторения операций шифрования в обратной очередности. Необходимо подчеркнуть, что, несмотря на кажущуюся очевидность, такой порядок действий применяется далеко не всегда.

Процесс шифрования состоит в изначальной перестановке битов 64-битового блока, шестнадцати циклах шифрования и, в заключении, обратной перестановки битов, как показано на рисунке ниже.

Процесс шифрования. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Процесс шифрования. Автор24 — интернет-биржа студенческих работ

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

Структура алгоритма DES. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Структура алгоритма DES. Автор24 — интернет-биржа студенческих работ

Предположим, что из файла выполнено считывание очередного восьми байтового блока T, который должен быть преобразован при помощи матрицы начальной перестановки IP следующим образом:

  1. Бит 58-го блока T станет битом один.
  2. Бит 50-го блока T станет битом два и так далее.
  3. В итоговом результате получаем T(0) = IP(T).

Сформированную последовательность битов T(0) необходимо разделить на две последовательности по 32 бита каждая, а именно, L(0) представляет левые или старшие биты, а R(0) представляет правые или младшие биты. Далее осуществляется шифрование, которое состоит из шестнадцати итераций. Результат ί-ой итерации может быть описан при помощи следующих формул:

L(ί) = R(ί-1)

R(ί) = L(ί-1) xor f(R(ί-1), K(ί)).

Здесь xor является операцией «ИСКЛЮЧАЮЩЕЕ ИЛИ».

Функция f представляет собой функцию шифрования. Ее аргументами является 32-х битовая последовательность R(ί-1), которая получена на (ί-1)-ой итерации, и 48-битовый ключ K(ί), являющийся результатом трансформации 64-битового ключа K. На шестнадцатой итерации получаются последовательности R(16) и L(16) (без перестановки), которые должны конкатенировать в 64-битовую последовательность R(16)L(16).

Далее позиции битов данной последовательности следует переставить в соответствии с матрицей IP-1, которая может иметь, к примеру, следующие значения:

40 08 47 15 57 25 63 31

38 06 46 16 53 22 61 32

37 05 44 13 56 26 60 34

32 03 41 14 59 22 68 27

35 03 43 18 51 23 67 21

31 04 49 17 52 16 58 26

33 01 41 11 59 17 57 25

34 02 42 08 48 18 58 29

Матрицы IP-1 и IP должны соотноситься следующим образом:

  1. Значение первого компонента матрицы IP-1 равняется 40.
  2. Значение сорокового компонента матрицы IP должно равняться единице.
  3. Значение второго компонента матрицы IP-1 равняется восьми.
  4. Значение восьмого компонента матрицы IP должно равняться двум и так далее.

Процедура расшифровки информации выступает как инверсная по отношению к процедуре шифровки, то есть, весь набор действий должен быть выполнен в обратной очередности. Это значит, что расшифровываемая информация вначале должна быть переставлена согласно матрице IP-1, а далее над очередностью бит R(16)L(16) должны быть выполнены те же операции, что и при шифровании, но в обратном порядке.

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

R(ί-1) = L(ί), ί = 1, 2, ..., 16;

L(ί-1) = R(ί) xor f(L(ί), K(ί)), ί = 1, 2, ..., 16 .

На шестнадцатой итерации должны быть получены последовательности L(0) и R(0), которые должны конкатенировать в 64-битовую последовательность L(0)R(0). Далее позиции битов этой последовательности следует переставить согласно матрице IP. Результатом данной перестановки должна стать исходная 64-битовая последовательность.

Функция шифрования f(R(ί-1),K(ί)) схематически может быть представлена следующим образом:

Функция шифрования. Автор24 — интернет-биржа студенческих работ

Рисунок 3. Функция шифрования. Автор24 — интернет-биржа студенческих работ

Для того чтобы вычислить значения функции f, должны использоваться следующие функции-матрицы:

  1. Функция Е, которая выполняет расширение 32-битной последовательности до 48-битной.
  2. S1, S2, ... , S8 является преобразованием шести битового блока в четырех битовый.
  3. Функция Р, которая выполняет перестановку бит в 32-битовой последовательности.
Дата написания статьи: 08.12.2022
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot