Главное


Симметричные алгоритмы шифрования

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

Достоинства:

· скорость (по данным Applied Cryptography - на 3 порядка выше)

· простота реализации (за счёт более простых операций)

· меньшая требуемая длина ключа для сопоставимой стойкости

· изученность (за счёт большего возраста)

Недостатки:

· сложность управления ключами в большой сети. Означает квадратичное возрастание числа пар ключей, которые надо генерировать, передавать, хранить и уничтожать в сети. Для сети в 10 абонентов требуется 45 ключей, для 100 уже 4950, для 1000 - 499500 и т. д.

· сложность обмена ключами. Для применения необходимо решить проблему надёжной передачи ключей каждому абоненту, так как нужен секретный канал для передачи каждого ключа обеим сторонам.

Data Encryption Standard (DES)

DES (англ. Data Encryption Standard) также известен как алгоритм шифрования данных DEA (англ. Data Encryption Algorith). Разработан фирмой IBM и утвержден правительством США в 1977 году как официальный стандарт (FIPS-46-3). DES имеет блоки по 64 бит и 16-цикловую структуру сети Фейстеля, для шифрования использует ключ в 56 бит. ( На самом деле функция требует ввода 64-битового ключа, но в качестве ключа шифрования используется только 56 бит, остальные 8 бит могут быть битами чётности или содержать любые другие данные). Алгоритм использует комбинирование нелинейного (S-box) и линейного преобразований. Для DES рекомендовано несколько режимов шифрования, например Electronic Code Book (ECB) и Cipher Block Chaining (CBC)

Общая схема шифрования DES представлена на рисунке 2.1

Рис. 2.1 Схема шифрования DES

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

В основе алгоритма лежит цепь Фейстеля, чья цикловая (раундовая) функция f обрабатывает 32-разрядные слова (половину блока) и использует в качестве параметра 48-разрядный подключ (J). Сначала 32 входные разряда с помощью расширяющей перестановки преобразуются в 48 (некоторые разряды повторяются). Схема этого расширения показана ниже (номера соответствуют номерам бит входного 32-битового блока).

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

Значение на выходе ключевого сумматора получается в результате побитового сложения (исключающее ИЛИ, xor) сформированного 48-разрядного блока и текущего подключа. Результирующий 48-разрядный блок преобразуется в 32-разрядный с помощью S-блоков. Затем выполняется ещё одна битовая перестановка согласно схеме, показанной ниже (числа представляют собой порядковые номера бит).

Рис. 2.3 Битовая перестановка

Шифрование начинается с перестановки бит (IP - Initial Permutation) в 64-разрядном блоке исходных данных. 58-ой бит становится первым, 50-ый вторым и т. д. Схема перестановки битов показана ниже.

Рис. 2.4 Схема перестановки

Полученный блок делится на две 32-разрядные части L0 и R0. Далее 16 раз повторяются следующие 4 процедуры:

1 Преобразование ключа с учетом номера итерации i (перестановки разрядов с удалением 8 бит, в результате получается 48-разрядный ключ)

2 Пусть A = Li, а J - преобразованный ключ. С помощью функции генерируется 32-разрядное выходное значение цикловой (раундовой) функции.

Выполняется операция , результат обозначается Ri + 1

Выполняется операция присвоения Li + 1 = Ri

После выполнения 16 циклов преобразования производится ещё одна битовая перестановка, инверсная начальной. Она предполагает следующее размещение 64 бит зашифрованных данных (первым битом становится 40-ой, вторым 8-ой и т. д.)

Рис. 2.5 Битовая перестановка, инверсная начальной

блоки представляют собой таблицы, содержащие 4 строки и 16 столбцов. Первый S-блок S1 представлен ниже.

Рис. 2.6 Первый S-блок

Входной 48-разрядный блок делится на 8 групп по 6 разрядов. Первый и последний разряд в группе используются в качестве адреса строки, а средние 4 разряда - в качестве адреса столбца. В результате, каждые 6 бит преобразуются в 4 бита, а весь 48-разрядный код в 32-разрядный (для этого нужно 8 S-блоков). Существуют аппаратные реализации стандарта DES, обеспечивающие высокую производительность.

Перейти на страницу: 1 2 3 4 5 6

Другие статьи по теме

Кодек сигнала моноадресной системы
Для представления видеопотока в цифровом виде пришлось решить немало проблем. Большие сложности составила проблема совместимости с существующими аналоговыми форматами (PAL, SECAM, NTSC). ...

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

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

www.techspirit.ru © 2020