Шифрование открытых данных в режиме простой замены
Открытые данные, подлежащие шифрованию, разбивают на 64‑разрядные блоки . Процедура шифрования 64-разрядного блока
в режиме простой замены включает 32 цикла
. В ключевое запоминающее устройство вводят 256 бит ключа
в виде восьми 32-разрядных подключей (чисел)
:
.
Последовательность битов блока
разбивают на две последовательности по 32 бита: и
, где
– левые или старшие биты,
– правые или младшие биты.
Работа алгоритма в режиме простой замены изображена на рис. 7.3.
Обозначения на схеме:
N1, N2 32-разрядные накопители;
32-разрядный сумматор по модулю
;
CM2 32-разрядный сумматор по модулю ;
32-разрядный регистр циклического сдвига;
– ключевое запоминающее устройство на 256 бит, состоящее из восьми 32-разрядных накопителей X0, X1,X2,…,X7;
S – блок подстановки, состоящий из восьми узлов замены (S-блоков замены) S1, S2, S3,…, S8.
![]() |
Эти последовательности вводят в накопители N1 и N2 перед началом первого цикла шифрования. В результате начальное заполнение накопителя N1
начальное заполнение накопителя N2
Первый цикл процедуры шифрования 64-разрядного блока открытых данных можно описать уравнениями
Здесь – заполнение N1 после 1-го цикла шифрования;
– заполнение
после 1-го цикла шифрования;
– функция шифрования.
Аргументом функции является сумма по модулю
числа
(начального заполнения накопителя N1) и числа
подключа, считываемого из накопителя X0 КЗУ. Каждое из этих чисел равно 32 битам.
Функция включает две операции над полученной 32-разрядной суммой (
).
Первая операция называется подстановкой (заменой) и выполняется блоком подстановки S. Блок подстановки S состоит из восьми узлов замены (S блоков замены) S1, S2, S3,…, S8 с памятью 64 бит каждый. Поступающий из на блок подстановки S 32-разрядный вектор разбивают на восемь последовательно идущих 4-разрядных векторов, каждый из которых преобразуется в четырехразрядный вектор соответствующим узлом замены. Каждый узел замены можно представить в виде таблицы-перестановки шестнадцати четырехразрядных двоичных чисел в диапазоне
. Входной вектор указывает адрес строки в таблице, а число в этой строке является выходным вектором. Затем четырехразрядные выходные векторы последовательно объединяют в 32-разрядный вектор. Узлы замены (таблицы-перестановки) представляют собой ключевые элементы, которые являются общими для сетей ТКС и редко изменяются. Эти узлы замены должны сохраняться в секрете.
Вторая операция – циклический сдвиг влево (на 11 разрядов) 32-разрядного вектора, полученного с выхода блока подстановки S. Циклический сдвиг выполняется регистром сдвига R. Затем результат работы функции шифрования суммируют поразрядно по модулю 2 в сумматоре
c 32-разрядным начальным заполнением
накопителя
. Затем полученный на выходе
результат (значение
) записывают в накопитель N1, а старое значение N1 (значение
) переписывают в накопитель N2 (значение
). Первый цикл завершен. Последующие циклы осуществляются аналогично, при этом во втором цикле из КЗУ считывают заполнение X0 – подключ
, в третьем цикле – подключ
и т. д., в восьмом цикле – подключ
. В циклах с 9-го по 16-й, а также в циклах с 17-го по 24-й подключи из КЗУ считываются в том же порядке:
. В последних восьми циклах с 25-го по 32-й порядок считывания подключей из КЗУ обратный:
. Таким образом, при шифровании в 32 циклах осуществляется следующий порядок выборки из КЗУ подключей:
В 32-м цикле результат из сумматора вводится в накопитель N2, а в накопителе N1 сохраняется прежнее заполнение. Полученные после 32-го цикла шифрования заполнения накопителей N1 и N2 являются блоком шифрованных данных
, соответствующим блоку открытых данных
.
Уравнения шифрования в режиме простой замены имеют вид
где – заполнение N1 после
-го цикла шифрования;
– заполнение N2 после
-го цикла шифрования,
.
Блок зашифрованных данных (64 разряда) выводится из накопителей N1, N2 в следующем порядке: из разрядов
накопителя N1, затем из разрядов
накопителя N2, т.е. начиная с младших разрядов:
.
Остальные блоки открытых данных зашифровываются в режиме простой замены аналогично.
Дата добавления: 2015-09-07; просмотров: 1004;