Warning: Attempt to read property "name" on bool in /usr/home/um/ypn.ru/www/wp-content/themes/magazine-basic/functions.php on line 904
Симметричные алгоритмы шифрования | Your Private Network


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

Данные, подлежащие зашифрованию, разбивают на 64-разрядные блоки. Эти блоки разбиваются на два субблока N1 и N2 по 32 бит (рис. 6.3).

6.3

Субблок N1, обрабатывается определенным образом, после чего его значение складывается со значением субблока N2 (сложение выполняется по модулю 2, т. е. применяется логическая операция XOR — «исключающее или»), а затем субблоки меняются местами. Данное преобразование выполняется определенное число раз («раундов») — 16 или 32, в зависимости от режима работы алгоритма.

В каждом раунде выполняются две операции.

Первая операция — наложение ключа. Содержимое субблока Nx складывается по модулю 232 с 32-битовой частью ключа Кх. Полный ключ шифрования представляется в виде конкатенации 32-битовых подключей: К0, К1, К2, … В процессе шифрования используется один из этих подключей — в зависимости от номера раунда и режима работы алгоритма.

Вторая операция — табличная замена. После наложения ключа субблок Nx разбивается на 8 частей по 4 бит, значение каждой из которых заменяется в соответствии с таблицей замены для данной части субблока. Затем выполняется побитовый циклический сдвиг субблока влево на 11 бит.

Табличные замены. Блок подстановки ^-box (Substitution box) часто используются в современных алгоритмах шифрования, поэтому стоит пояснить, как организуется подобная операция.

Блок подстановки ^-box состоит из восьми узлов замены (S-блоков замены) с памятью 64 бит каждый. Поступающий на блок подстановки S 32-битовый вектор разбивают на 8 последовательно идущих 4-битовых векторов, каждый из которых преобразуется в 4-битовый вектор соответствующим узлом замены. Каждый узел замены можно представить в виде таблицы-перестановки 16 4-битовых двоичных чисел в диапазоне 0000… 1111. Входной вектор указывает адрес строки в таблице, а число в этой строке является выходным вектором. Затем 4-битовые выходные векторы последовательно объединяют в 32-битовый вектор. Узлы замены (таблицы-перестановки) представляют собой ключевые элементы, которые являются общими для сети ЭВМ и редко изменяются. Эти узлы замены должны сохраняться в секрете.

Алгоритм, определяемый ГОСТ 28147—89, предусматривает четыре режима работы: простой замены, гаммирования, гаммиро-вания с обратной связью и генерации имитоприставок. В них используется одно и то же описанное выше шифрующее преобразование, но, поскольку назначение режимов различно, осуществляется это преобразование в каждом из них по-разному.

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

К0, К1, К2, К3, К4, K5, К6, К7, К8, К9 и т. д. — в раундах с 1-го по 24-й;

К7, К6, К5, К4, К3, К2, K1, К0 — в раундах с 25-го по 32-й.

Расшифровывание в данном режиме проводится точно так же, но с несколько другой последовательностью применения подключей:

К0, К1, К2, К3, К4, K5, К6, К7 — в раундах с 1-го по 8-й;

К7, К6, К5, К4, К3, К2, K1, К0, К7, K6 и т. д. — в раундах с 9-го по 32-й.

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


Страницы: 1 2 3 4 5 6 7

Эта статья была опубликована Вторник, 11 августа, 2009 at 21:05 в рубрике Криптографические алгоритмы. Вы можете следить за ответами через RSS 2.0 feed.

Один ответ to “Симметричные алгоритмы шифрования”

  1. Егор

    А где можно найти программу,которая реализовует этот алгоритм?

    #3817