33658

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

Доклад

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

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

Русский

2013-09-06

44 KB

11 чел.

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.


 

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

396. М.В. Исаковский на Смоленщине 297.56 KB
  Связь биографии поэта с историей народа и страны. Народность песенного творчества М.В. Исаковского. Отражение в лирике М. В. Исаковского черт русского национального характера.
397. Электрический ток в различных средах 333 KB
  Электрический ток в металлах. Носителями зарядов являются положительные ионы и электроны. Рекомбинация заряженных частиц. Самостоятельный электрический разряд. Электрический ток в полупроводниках.
398. Алгоритм микропроцессорного комплекта К580 62.5 KB
  На вход поступает двух проводная линия, по которой поступает параллельный 8-ми разрядный код. Состав кристаллов: ВМ80, ВВ51, ВИ53, ПЗУ/ОЗУ. Посчитать коэффициент преобразования входной величины в выходную.
399. Создание счетчика с произвольным коэффициентом пересчета 101 KB
  Реализовать двоичный вычитающий счётчик с пропуском начальных состояний и коэффициентом пересчёта 10 на RS-триггерах на элементах 1533 серии.
400. Проектирование микропроцессорных устройств обработки данных 341 KB
  Порядок выполнения и содержание основных этапов проектирования систем сбора и обработки данных на основе современной элементной базы — микропроцессорных комплектов БИС.
401. Управление персоналом на предприятии Панифкооп 329 KB
  Концепция управления персоналом организации в условиях рыночных отношений. Взаимоотношения с внутренними и внешними клиентами, руководителями, равными по положению, подчиненными. Обучение, переподготовка, повышение квалификации.
402. Компьютерная графика 951 KB
  Технические средства ввода графической информации. Особенности представления цвета в видеоадаптерах EGA и VGA. Элементарные аффинные преобразования в пространстве, составляющие базис операций машинной графики. Понятие текстуры и способы моделирования текстур.
404. Разработка программы реализирующей цветное движущееся изображение 97 KB
  написание программы для DOS и Windows, отображающую рисование дворников автомобиля. Предусмотрение возможности задания скорости исполнения и приостановки/возобновления выполнения по нажатию клавиши на клавиатуре или мыши (для версии под Windows).