Черт.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-го цикла зашифрования заполнения накопителей и являются блоком зашифрованных данных, соответствующим блоку открытых данных.
2.1.4. Уравнения зашифрования в режиме простой замены имеют вид:
при = 124;
при =25 31;
при = 32,
где (0) = ((0), (0), …, (0)) - начальное заполнение перед первым циклом зашифрования;
(0) = ((0), (0), …, (0)) - начальное заполнение перед первым циклом зашифрования;
= ( , , …, ) - заполнение после -го цикла зашифрования;
= ( , , …, ) - заполнение после -го цикла зашифрования, = 132.
Знак означает поразрядное суммирование 32-разрядных векторов по модулю 2.
Знак означает суммирование 32-разрядных векторов по модулю 2. Правила суммирования по модулю 2приведены в приложении 4;
- операция циклического сдвига на одиннадцать шагов в сторону старших разрядов, т.е.
.
2.1.5. 64-разрядный блок зашифрованных данных выводится из накопителей , в следующем порядке: из 1-го, 2-го, ... , 32-го разрядов накопителя затем из 1-го, 2-го, ... , 32-го разрядов накопителя , т.е.
.
Остальные блоки открытых данных в режиме простой замены зашифровываются аналогично.
2.2. Расшифрование зашифрованных данных в режиме простой замены
2.2.1. Криптосхема, реализующая алгоритм расшифрования в режиме простой замены, имеет тот же вид (см. черт.2), что и при зашифровании. В КЗУ вводятся 256 бит того же ключа, на котором осуществлялось зашифрование. Зашифрованные данные, подлежащие расшифрованию, разбиты на блоки по 64 бита в каждом. Ввод любого блока
в накопители и производятся так, что значение (32) вводится в 1-й разряд , значение а(32) вводится во 2-й разряд и т.д., значение (32) вводится в 32-й разряд ; значение (32) вводится в 1-й разряд и т.д., значение (32) вводится в 32-й раз
ряд .
2.2.2. Расшифрование осуществляется по тому же алгоритму, что и зашифрование открытых данных, с тем изменением, что заполнения накопителей , , ... , считываются из КЗУ в циклах расшифрования в следующем порядке:
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , .
2.2.3. Уравнения расшифрования имеют вид:
при = 18;
при = 931;
при = 32.
2.2.4. Полученные после 32 циклов работы заполнения накопителей и составляют блок открытых данных.
, , …, , , , …, ), соответствующий блоку зашифрованных данных, при этом значение блока соответствует содержимому 1-го разряда , значение соответствует содержимому 2-го разряда и т.д., значение соответствует содержимому 32-го разряда ; значение соответствует содержимому 1-го разряда , значение соответствует содержимому 2-го разряда и т.д., значение соответствует содержимому 32-го разряда .
Аналогично расшифровываются остальные блоки зашифр
ованных данных.
2.3. Алгоритм зашифрования в режиме простой замены 64-битового блока обозначается через , т.е.
, , .
2.4. Режим простой замены допускается использовать для зашифрования (расшифрования) данных только в случаях, приведенных в п.1.7.
Билет
1. ГОСТ 28147-89. Режим гаммирования с обратной связью.