33658

БЛОЧНОЕ КОДИРОВАНИЕ (АЛГОРИТМ DES)

Доклад

Информатика, кибернетика и программирование

БЛОЧНОЕ КОДИРОВАНИЕ АЛГОРИТМ DES Алгоритм DES представляет собой блочный шифр предназначенный для шифрования данных 64битовыми блоками. DES относится к симметричным алгоритмам т. Фундаментальным строительным блоком Des является применение к тексту единичной комбинации этих методов подстановка а за ней перестановка зависящей от ключа. DES включает 16 раундов одна и та же комбинация методов применяется к открытому тексту 16 раз DES оперирует 64битными блоками открытого текста .

Русский

2013-09-06

44 KB

16 чел.

23. БЛОЧНОЕ КОДИРОВАНИЕ (АЛГОРИТМ DES)

Алгоритм DES  представляет собой блочный шифр, предназначенный  для шифрования данных 64-битовыми блоками. С одного  конца поступает 64-битовый блок открытого текста, а с другого конца выходит 64-битовый блок шифротекста. DES относится к симметричным алгоритмам, т.е. для расшифрования и зашифрования  ипользуються одинаковые алгоритм и ключ ( за исключением небольших различий в процедуре развертки ключа).

Длина ключа равна 56 бит. (ключ обычно представляется 64-битовым числом, но каждый восьмой бит используется для конторля четности и игнорируется.

Фундаментальным  строительным блоком Des является  применение к тексту единичной комбинации этих методов (подстановка, а за ней перестановка ), зависящей от ключа. Такой  блок называется раундом. DES включает 16 раундов, одна и та же комбинация методов применяется к открытому тексту 16 раз

DES  оперирует 64-битными блоками открытого текста . После первоначальной перестановки блок разбивает на правую и левую половины длиной по 32 бита. Затем выполняет 16 раундов одинаковых действий, называемых функцией f, в которых  данные объединяються с ключом. После 16 раунда правая и левая половины объединяются, и алгоритм  завершается заключительной перестановкой(обратной первоначальной).

На каждом раунде (см. рис 3.2.) биты ключа сдвигаются, а затем из 56 битов ключа выбираются 48 битов. Правая половина данных увеличивается до 48 битов путем перестановки с расширением, ксорится с 48 битами смещенного и переставленного ключа, проходит через 8 S-блоков, образуя 32 новых бита, и переставляется снова.  Эти 4 операции выполняються функцией f. Затем результат выполнения   ксорится с левой половиной. В итоге этих действий появляется новая правая половина, а старая правая становится левой.  Эти действия повторяются 16 раз, образуя 16 раундов алгоритма DES.

Начальная перестановка (ее еще называют IP ) выполняется еще до раунда 1, при этом входной блок переставляется.

Преобразование  ключа

Первоначально 64-битовый ключ DES сокращается до 56-битового  отбрасыванием каждого восьмого бита. (см. рис. 3.4.) Эти   биты используются только для контроля  четности, позволяя проверять отсутствие ошибок.

После извлечения 56-битового ключа, для каждого из 16 раундов DES генерируется новый 48-битовый подключ. Эти подключи Ki определяются следующим образом:

  •  56-битовый ключ делится на две 28-битовые половины
  •  две половины сдвигаются налево на 1 или 2 бита, в зависимости от раунда. Этот сдвиг показан в таблице 3.1.

выбираются 48 из 56 битов. Поскольку при этом не только выбирается подмножество битов, но и изменяется их порядок, данная операция называется сжимающей перестановкой. В ее результате появляется набор из 48 битов.

Расширяющая  перестановка

Эта  операция расширяет правую половину данных Ri от 32 битов до 48 битов. Так как при этом не просто повторяются определенные биты, но и изменяется их порядок, эта опрерация называется расширяющей перестановкой. Она решает две задачи:

  •  Приведение размера правой половины в соответствии с ключом для операции XOR.
  •  Получение более длинного результата, который можно будет сжимать по ходу операции подстановки.

Хотя выходной блок больше входного, каждый входной блок генерирует уникальный выходной блок.

Подстановка с помощью S-блоков

Подстановки производится с помощью восьми блоков подстановки или S-блоков (от англ. Substitution boxes). У каждого s-блока 6-битовый вход и 4-битовый выход. 48 битов делятся на восемь. 6-битовых подблоков. Каждый отдельный подблок обрабатывается отдельным S-блоков: 1-й S-блоком 1, 2-й S-блоком  2 и т. д.

Каждый S-блок представляет собой таблицу из 4 строк и 16 столбцов. Элементами блока сложат 4-битовые числа. По шести входным битам S-блока определяются номера столбцов и строк, под которыми следует искать выходное значение. Все 8 S-блоков показаны на рис. 3.9.

Входные биты определяют элемент s-блока особым образом. Рассмотрим 6-битовый вход S-блока: b1,b2,b3,b4,b5,b6. Биты b1 и b6 объединяются, образуя 2-битовое число от 0 до 3, соответствующее строке S-блока. Средние 4 бита, с b2 по b5 объединяются, образуя 4-битовое число от 0 до 15, соответствующее столбцу блока.

Перестановка с помощью Р-блоков

32-битовый выход подстановки с помощью S-блоков перетасовывается в соответствии с Р-блоком. Эта перестановка перемещает  каждый входной бит в другую позицию, ни один бит не используется дважды, ни один бит не отбрасывается. Этот процесс называется прямой перестановкой или просто перестановкой. Наконец, результат перестановки с помощью Р-блоков ксорится с левой половиной исходного 64-битового блока. Затем левая и правая половины меняются местами, и начинается следующий раунд.

Заключительная перестановка

Заключительная перестановка обратна начальной перестановке и показана на рис. 3.10. Обратите внимание: после последнего раунда DES левая и правая половины не  меняются местами. Вместо этого объединеный блок R16L16 используется как вход заключительной перестановки.

Расшифрование DES

Алгоритм DES позволяет использовать для зашифрования или расшифрования блока одну и ту же функцию. Единственное отличие состоит в том, что ключи должны использоваться в обратном порядке. Иными словами, если в раундах зашифрования использовались ключи К1,К2,К3…К16, то ключами расшифрования будут К16,К15,К14…К1. Алгоритм, который создает ключ для каждого раунда, тоже цикличен. Ключ сдвигается направо, а число позиций сдвига равно 0,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1.


 

А также другие работы, которые могут Вас заинтересовать

66512. Логические элементы в Workbench 149.78 KB
  Нарисуем моделируемую схему в программе ElectronicsWorkbench После запуска схемы в логическом анализаторе получили следующее Составим таблицы истинности по 4 значения из логического анализатораи по ним определим название логических элементов...
66513. ДИНАМІЧНІ МАСИВИ 96.5 KB
  Визначити добуток позитивних елементів кожного стовпця матриці А її розмір вводити з клавіатури а елементи розмістити в памяті динамічно. Визначити добуток елементів парних стовпців матриці її розмір вводити з клавіатури а елементи розмістити в памяті динамічно.
66514. Разработка и отладка алгоритмов и программ обработки массивов 784.5 KB
  Дан массив целых чисел А[30]. Заменить все нулевые элементы минимальным. В упорядоченном по невозрастанию массиве чисел определить, есть ли заданное число Z, в противном случае подсчитать количество чисел, небольших Z; кроме того определить, сколько отрицательных чисел в массиве.
66515. Разработка и отладка алгоритмов и программ с применением пользовательских функций 126 KB
  Цель работы: Получить практические навыки в разработке алгоритмов и написании программ на языке С с применением пользовательских функций. Оборудование: IBM – совместимый компьютер, система программирования BC3.1, MVC++ 6.00.
66516. ВЗАИМОДЕЙСТВИЕ С ФАЙЛОВЫМИ СИСТЕМАМИ UNIX/WINDOWS 89.96 KB
  Цель работы — изучение основных файловых операций в ОС UNIX и Windows, работы механизмов перенаправления ввода/вывода, конвейера, механизма управления устройствами ввода-вывода UNIX при помощи специальных файлов устройств, а также с организацией прямого доступа к диску в ОС Windows.
66517. Регенерація картриджів принтерів 108 KB
  Для успішного самостійного заправлення картриджа лазерного принтера немає необхідності в детальному вивченні конструктивних особливостей кожного конкретного типу картриджа. Звідси випливає що якщо ви освоїте заправлення одного типу картриджа зрозумієте принцип його функціонування то картриджі...
66518. Освоение технологии структурного программирования при разработке и создании программы на языке Турбо Паскаль для циклического вычислительного процесса с известным числом повторений 225 KB
  Если число повторений известно заранее до начала повторений то в этом случае всегда используется оператор цикла с параметром for. Такой оператор предусматривает изменение управляющей переменной параметра цикла по правилу прогрессии с шагом 1 и повторное выполнение некоторого...
66520. Установка Windows Server 144.25 KB
  Цель работы: ознакомление с редакциями набором сетевых служб процессом установки и начальной настройки операционных систем семейства Windows Server. 1 Какие редакции систем входят в семейство Windows ServerWindows Server 2008 Stаndаrd Edition...