Статус документа
Статус документа

ГОСТ 28147-89 Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования

2. РЕЖИМ ПРОСТОЙ ЗАМЕНЫ

2.1. Зашифрование открытых данных в режиме простой замены

2.1.1. Криптосхема, реализующая алгоритм зашифрования в режиме простой замены, должна иметь вид, указанный на черт.2.


Черт.2



Открытые данные, подлежащие зашифрованию, разбивают на блоки по 64 бита в каждом. Ввод любого блока = ((0), (0). …, (0), (0), (0), (0) …, (0)) двоичной информации в накопители и производится так, что значение (0) вводится в 1-й разряд , значение (0) вводится во 2-й разряд и т.д., значение (0) вводится в 32-й разряд ; значение (0) вводится в 1-й разряд , значение (0) вводится во 2-й разряд и т.д., значение (0) вводится в 32-й разряд . В результате получают состояние ( (0), (0), …, (0), (0)) накопителя и состояние ( (0), (0),

..., (0)) накопителя .

2.1.2. В КЗУ вводятся 256 бит ключа. Содержимое восьми 32-разрядных накопителей , ... , имеет вид:

2.1.3. Алгоритм зашифрования 64-разрядного блока открытых данных в режиме простой замены состоит из 32 циклов.

В первом цикле начальное заполнение накопителя суммируется по модулю 2 в сумматоре с заполнением накопителя , при этом заполнение накопителя сохраняется.

Результат суммирования преобразуется в блоке подстановки и полученный вектор поступает на вход регистра , где циклически сдвигается на одиннадцать шагов в сторону старших разрядов. Результат сдвига суммируется поразрядно по модулю 2 в сумматоре с 32-разрядным заполнением накопителя . Полученный в результат записывается в , при этом старое заполнение переписывается в . Первый цикл заканчивается.

Последующие циклы осуществляются аналогично, при этом во 2-м цикле из КЗУ считывается заполнение в 3-м цикле из КЗУ считывается заполнение и т.д., в 8-м цикле из КЗУ считывается заполнение . В циклах с 9-го по 16-й, а также в циклах с 17-го по 24-й заполнения из КЗУ считываются в том же порядке:

, , , , , , , .


В последних восьми циклах с 25-го по 32-й порядок считывания заполнений КЗУ обратный:

, , , , , , , .


Таким образом, при зашифровании в 32 циклах осуществляется следующий порядок выбора заполнений накопителей:

, , , , , , , ,    , , , , , , , ,    

, , , , , , , ,      , , , , , , , .


В 32 цикле результат из сумматора вводится в накопитель , а в накопителе сохраняется старое заполнение.

Полученные после 32-го цикла зашифрования заполнения накопителей и являются блоком зашифрованных данных, соответствующим блоку открытых данных.