Реферат: Современные криптографические методы
B(32) = f (A(31) [+]X(0)) ^ B(31).
Для дешифрования используется тот же ключ, но процесс дешифрования является инверсным по отношению к исходному.
· Для i=32
A(31) = A(32)
B(31) = f (A(32) [+]X(0)) ^ B(32).
· Для i=31, 30, ..., 25, j=32-i;
A(i-1) = B(i)
B(i-1) = f (B(i) [+]X(j)) ^ A(i)
· Для i=24, 23, ..., 1, j=(i-1) (mod 8);
A(i-1) = B(i)
B(i-1) = f (B(i) [+]X(j)) ^ A(i)
Полученные A(0), B(0) – расшифрованный текст.
Здесь i обозначает номер итерации. Функция f – функция шифрования.
Функция шифрования состоит из операции подстановки К применяемой к 32-разрядному аргументу. 64-разрядный аргумент разбивается на два 32-разрядных вектора. Блок подстановки K состоит из 8 узлов замены К(1).....К(8) с памятью 64 бит каждый. Поступающий на блок подстановки 4-разрядный вектор разбивается на 8 последовательно идущих 4-разрядных векторов, каждый из которых преобразуется в 4-разрядный вектор соответствующим узлом замены, представляющим таблицу из 16 целых чисел в диапазоне 0...15. Входной вектор определяет адрес строки в таблице, число из которой является выходным вектором. Затем 4-разрядные векторы последовательно объединяются в 32-разрядный выходной.
Остальные блоки открытых данных в режиме простой замены зашифровываются аналогично.
Следует учитывать, что данный режим шифрования обладает ограниченной криптостойкостью.
Другой режим шифрования называется режимом гаммирования .
Открытые данные, разбитые на 64-разрядные блоки T(i) (i=1,2,...,m) (m определяется объемом шифруемых данных), зашифровываются в режиме гаммирования путем поразрядного сложения по модулю 2 с гаммой шифра Гш , которая вырабатывается блоками по 64 бит, т.е.
Гш = (Г(1),Г(2),....,Г(m)).
Уравнение шифрования данных в режиме гаммирования может быть представлено в следующем виде:
Ш(i) =(f (Y(i) , f (Z(i)) ^ T(i)=Г(i) ^ T(i)
В этом уравнении Ш(i) обозначает 64-разрядный блок зашифрованного текста, f - функцию шифрования в режиме простой замены (аргументами этой функции являются два 32-разрядных числа). C1 и C2 - константы, заданные в ГОСТ 28147-89. Величины Y (i) и Z(i) определяются итерационно по мере формирования гаммы следующим образом:
(Z(0), Y(0)) = f (S), где S - 64-разрядная двоичная последовательность
Y(i) =Y(i-1) [+] C1, Z(i) = Z(i-1) {+} C2, i=1, 2, ..., m .
64-разрядная последовательность, называемая синхропосылкой, не является секретным элементом шифра, но ее наличие необходимо как на передающей стороне, так и на приемной.
Режим гаммирования с обратной связью очень похож на режим гаммирования. Как и в режиме гаммирования открытые данные, разбитые на 64-разрядные блоки T(i), зашифровываются путем поразрядного сложения по модулю 2 с гаммой шифра Гш , которая вырабатывается блоками по 64 бит:
Гш =(Г(1), Г(2), ..., Г(m)).
Уравнение шифрования данных в режиме гаммирования с обратной связью выглядят следующим образом:
Ш(1) = f (S) ^ T(1) = Г(1) ^ T(1),