Шифрование данных по ГОСТ 28147-89 работает следующим образом: 1
- Шифруемый блок данных разбивается на две одинаковые части: правую (R) и левую (L). 1
- Правая часть складывается с подключом раунда и посредством некоторого алгоритма шифрует левую часть. 1
- Перед следующим раундом левая и правая части меняются местами. 1 Такая структура позволяет использовать один и тот же алгоритм как для шифрования, так и для дешифрования блока. 1
В алгоритме шифрования используются следующие операции: 1
- сложение слов по модулю 232; 1
- циклический сдвиг слова влево на указанное число бит; 1
- побитовое сложение по модулю 2; 1
- замена по таблице. 1
ГОСТ 28147-89 имеет четыре режима работы: 2
- Режим простой замены принимает на вход данные, размер которых кратен 64-м битам. 2 Результатом шифрования является входной текст, преобразованный блоками по 64 бита. 2
- Режим гаммирования принимает на вход данные любого размера, а также дополнительный 64-битовый параметр — синхропосылку. 2 В ходе работы синхропосылка преобразуется в цикле «32-З», результат делится на две части. 2
- Режим выработки имитовставки принимает на вход данные, размер которых составляет не меньше двух полных 64-разрядных блоков, а возвращает 64-разрядный блок данных, называемый имитовставкой. 2
В любом из этих режимов данные обрабатываются блоками по 64 бита, на которые разбивается массив, подвергаемый криптографическому преобразованию. 4