Основы современной криптографии

       

Российский стандарт шифрования ГОСТ


В Российской Федерации установлен единый стандарт криптографического преобразования текста для информационных систем. Он рекомендован к использованию для защиты любых данных, представленных в виде двоичного кода, хотя не исключаются и другие методы шифрования. Данный стандарт формировался с учетом мирового опыта и, в частности, были приняты во внимание недостатки и нереализованные возможности алгоритма DES, поэтому использование стандарта ГОСТ предпочтительнее.

Данный алгоритм также построен с использованием сети Фейстела.

Введем ассоциативную операцию конкатенации, используя для нее мультипликативную запись. Кроме того будем использовать следующие операции сложения:

A Е B

– побитовое сложение по модулю 2;

A [+] B – сложение по модулю 232;

A {+} B – сложение по модулю 232–1;.

Алгоритм криптографического преобразования предусматривает несколько режимов работы. Во всех режимах используется ключ W длиной 256 бит, представляемый в виде восьми 32-разрядных чисел X(i).

W = X(7)X(6)X(5)X(4)X(3)X(2)X(1)X(0)

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

Базовым режимом работы алгоритма является режим простой замены.

Пусть открытые блоки разбиты на блоки по 64 бит в каждом, которые обозначим как TО.

Очередная последовательность бит TО

разделяется на две последовательности B(0) и A(0) по 32 бита (левый и правый блоки). Далее выполняется итеративный процесс шифрования, описываемый следующими формулами:

для i = 1ё24

Российский стандарт шифрования ГОСТ
;

для i = 25ё31

Российский стандарт шифрования ГОСТ
;

и для i = 32

Российский стандарт шифрования ГОСТ

Здесь i обозначает номер итерации. Заметим, что подобно DES, на последнем цикле перестановка половин блока не производится.

Функция шифрования включает две операции над 32-разрядным аргументом – K(Ч) и R(Ч).

Первая операция является подстановкой. Блок подстановки K

состоит из 8 узлов замены K(1)...K(8) с памятью по 64 бита каждый. Поступающий на блок подстановки 32-разрядный вектор разбивается на 8 последовательно идущих 4-разрядных вектора, каждый из который преобразуется в 4-разрядный вектор соответствующим узлом замены, представляющим из себя таблицу из 16 целых чисел в диапазоне 0...15. Входной вектор определяет адрес строки в таблице, число из которой является выходным вектором. Затем полученные 4-разрядные векторы вновь последовательно объединяются в 32-разрядный выходной.


Вторая операция – циклический сдвиг 32-разрядного вектора, полученного в результате подстановки K на 11 шагов влево.

64-разрядный блок зашифрованных данных Тш

представляется в виде

Тш = А(32)В(32).

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

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

Второй режим шифрования называется режимом гаммирования.

Открытые данные, разбитые на 64-разрядные блоки
Российский стандарт шифрования ГОСТ
 (i=1,2,...,m), где m определяется объемом шифруемых данных), зашифровываются в режиме гаммирования путем поразрядного сложения по модулю 2 с гаммой шифра GШ, которая вырабатывается блоками по 64 бита, т.е.

Российский стандарт шифрования ГОСТ
.

Уравнение шифрования данных в режиме гаммирования может быть представлено в следующем виде:

Российский стандарт шифрования ГОСТ
.

В этом уравнении
Российский стандарт шифрования ГОСТ
 обозначает 64-разрядный блок зашифрованного текста, А – функцию шифрования в режиме простой замены (аргументами этой функции являются два 32-разрядных числа). С1 = 01010104h

и С2 = 01010101h – константы, заданные в ГОСТ 28147-89. Величины Yi и Zi определяются итерационно по мере формирования гаммы следующим образом:

(Y0, Z0) = A(S), где S – 64-разрядная двоичная последовательность;

(Yi, Zi) = (Yi–1

[+] C2, Zi–1 {+} C1), i = 1, 2, ..., m.

64-разрядная последовательность S, называемая синхропосылкой, не является секретным элементом шифра, но ее наличие необходимо как на передающей стороне, так и на приемной.

Режим гаммирования с обратной связью очень похож на режим гаммирования. Как и в последнем, разбитые на 64-разрядные блоки
Российский стандарт шифрования ГОСТ
 открытые данные зашифровываются путем поразрядного сложения по модулю 2 с гаммой шифра GШ, которая вырабатывается блоками по 64 бита:

Российский стандарт шифрования ГОСТ
.

Уравнения шифрования данных в режиме гаммирования с обратной связью выглядят следующим образом:

Российский стандарт шифрования ГОСТ
,

Российский стандарт шифрования ГОСТ
.


Содержание раздела