Алгоритм криптопреобразования ГОСТ 28147-89 — блочный шифр с 256-битным ключом и 32 циклами (раундами) преобразования, оперирующий 64-битными блоками. ru.wikipedia.org elib.pnzgu.ru Основа алгоритма — сеть Фейстеля. ru.wikipedia.org elib.pnzgu.ru
Работа алгоритма включает несколько этапов: intuit.ru
- Шифруемый блок данных разбивается на две части, которые затем обрабатываются как отдельные 32-битовые целые числа без знака. intuit.ru
- Правая половина блока и подключ раунда складываются по модулю 232. intuit.ru
- Производится поблочная подстановка. intuit.ru 32-битовое значение, полученное на предыдущем шаге, интерпретируется как массив из восьми 4-битовых блоков кода. intuit.ru
- Значение каждого из восьми блоков заменяется на новое, которое выбирается по таблице замен. intuit.ru В качестве замены для значения блока выбирается элемент с номером строки, равным номеру заменяемого блока, и номером столбца, равным значению заменяемого блока как 4-битового целого неотрицательного числа. intuit.ru
- После выполнения подстановки все 4-битовые блоки снова объединяются в единое 32-битное слово, которое затем циклически сдвигается на 11 битов влево. intuit.ru
- С помощью побитовой операции «сумма по модулю 2» результат объединяется с левой половиной, вследствие чего получается новая правая половина. intuit.ru
- Новая левая часть берётся равной младшей части преобразуемого блока. intuit.ru Полученное значение преобразуемого блока рассматривается как результат выполнения одного раунда алгоритма шифрования. intuit.ru
Перед следующим раундом левая и правая части меняются местами. intuit.ru Такая структура позволяет использовать один и тот же алгоритм как для шифрования, так и для дешифрования блока. intuit.ru
Алгоритм ГОСТ 28147-89 имеет четыре режима работы: простой замены, гаммирования, гаммирования с обратной связью и выработки имитовставки. ru.wikipedia.org elib.pnzgu.ru