Краткое описание основных криптографических методов защиты данных

Краткое описание основных криптографических методов защиты данных

Симметричный шифр ГОСТ 2814789

Пусть L и R последовательности битов, LR означает их конкатенацию. Под обозначением будет пониматься операция сложения по модулю 2 или логическая операция XOR (исключающая ИЛИ), символом [+] операция сложения по модулю 232 двух 32разрядных чисел. Числа суммируются по следующему правилу:

A[+]B=AB, если AB < 232

A[+]B=AB232, если AB32.

Символом {+} обозначается операция сложения по модуль 2321 двух 32разрядных чисел. Правила суммирования чисел следующие:

A{+}B=AB, если AB < 2321

A{+}B=AB232, если AB2321.

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

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

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

Описание режима простой замены. Код программы T разбивается на блоки по 64 бита в каждом, которые обозначаются T(j). Очередная последовательность битов T(j) разбивается на две последовательности B(0) (левые или старшие биты) и A(0) (правые или младшие биты), каждая из которых содержит 32 бита. Затем выполняется итеративный процесс шифрования, который описывается следующими формулами:

при i=1,2,.,24; j=i1(mod 8)
		A(i)=f(A(i1)[+]X(j)(+)B(i1));
		B(i)A(i1);
при i=25,26,.,31; j=32i
		A(i)=f(A(i1)[+]X(j)(+)B(i1));
		B(i)A(i1);
при i=32
		A(32)=A(31);
		B(32)=f(A(31)[+]X(0)(+)B(31)),

где i обозначает номер итерации (i=1,2,.,32). Функция f называется функцией шифрования. Ее аргументом является сумма по модулю 232 числа A(i), полученного на предыдущем шаге итерации, в числа X(j) ключа (размерность каждого из этих чисел 32 знакам).

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

Входной вектор определяет адрес строки в таблице, число из которой является выходным вектором. Затем 4разрядные выходные векторы последовательно объединяются в 32разрядный вектор. Таблицы блока подстановки блока подстановки K содержат редко изменяемые ключевые элементы, общие для некоторой компьютерной системы.

Вторая операция циклический сдвиг влево 32разрядного вектора, полученного в результате подстановки K. 64разрядный блок зашифрованных данных Тш представляется в виде:

Тш=A(32)B(32).

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

Режим генерации имитовставки. Для получения имитовставки код программы представляется в виде 64разрядных блоков T(i), =1,2,.,m. Где m определяет объем кода программы. Первый блок кода программы T(i) подвергается преобразованию, соответствующему первым 16 циклам алгоритма шифрования в режиме простой замены, причем в качестве ключа для выработки имитовставки используется ключ, по которому шифруются данные.

Полученное после 16 циклов работы 64разрядное число суммируется по модулю 2 со вторым блоком открытых данных T(2). Результат суммирования снова подвергается преобразованию, соответствующему 16 циклам алгоритма шифрования в режиме простой замены. Полученное 64разрядной число суммируется по модулю 2 с третьим блоком данных T(3) и т. д. Последний блок T(m), при необходимости дополненный до полного 64разрядного блока нулями, суммируется по модулю 2 с результатом работы на шаге m1, после чего шифруется в режиме простой замены по первым 16 циклам алгоритма. Из полученного 64разрядного числа выбирается отрезок Ир длиной р битов. Данный отрезок и является имитовставкой Ир, полученной для кода программы T.


Ведете ли вы блог?

Да
Нет
Планирую


Результаты опроса

Новостной блок