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 - функція шифрування. p> Функція шифрування складається з операції підстановки До застосовуваної до 32-розрядному аргументу. 64-розрядний аргумент розбивається на два 32-розрядних вектора. Блок підстановки K складається з 8 вузлів заміни К (1) ..... К (8) з пам'яттю 64 біт кожен. Вступник на блок підстановки 4-розрядний вектор розбивається на 8 послідовно йдуть 4-розрядних векторів, кожен з яких перетворюється в 4-розрядний вектор відповідним вузлом заміни, що представляє таблицю з 16 цілих чисел у діапазоні 0 ... 15. Вхідний вектор визначає адресу рядки в таблиці, число з якої є вихідним вектором. Потім 4-розрядні вектори послідовно об'єднуються в 32-розрядний вихідний. p> Решта блоки відкритих даних в режимі простої заміни зашифровуються аналогічно.
Слід враховувати, що даний режим шифрування має обмеженою криптостійкість.
Інший режим шифрування називається режимом гамування .
Відкриті дані, розбиті на 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 . p> 64-розрядна послідовність, звана сінхропосилкі, не є секретним елементом шифру, але її наявність необхідно як на передавальній стороні, так і на приймальні.
Режим гамування зі зворотним зв'язком дуже схожий на режим гамування. Як і в режимі гамування відкриті дані, розбиті на 64-розрядні блоки T (i), зашифровуються шляхом порозрядного додавання за модулем 2 з гамою шифру Г ш , яка виробляється блоками по 64 біт:
Г ш = (Г (1), Г (2), ..., Г (m)).
Рівняння шифрування даних в режимі гамування зі зворотним зв'язком виглядають наступним чином:
Ш (1) = f (S) ^ T (1) = Г...