Основной шаг криптопреобразования


Основной шаг криптопреобразования по своей сути является оператором, определяющим преобразование 32-битового блока данных. Дополнительным параметром этого оператора является 16-битовый блок, в качестве которого используется какой-либо элемент ключа. Схема алгоритма основного шага приведена на рисунке (см.приложение). Ниже даны пояснения к алгоритму основного шага:
Определяем исходные данные для основного шага криптопреобразования:
N–преобразуемый 32-битовый блок данных, в ходе выполнения шага его младшая (N1) и старшая (N2) части обрабатываются как отдельные 16-битовые целые числа без знака. Таким образом, можно записать N=(N1,N2).X–16-битовый элемент ключа;
1.Сложение с ключом. Младшая половина преобразуемого блока складывается по модулю2 (исключающее ИЛИ) с используемым на шаге элементом ключа, результат передается на следующий шаг;
2.Поблочная замена. 16-битовое значение, полученное на предыдущем шаге, интерпретируется как массив из восьми 4-битовых блоков кода: S=(S0,S1,S2,S3).
3.Далее значение каждого из семи блоков заменяется на новое, которое выбирается по таблице замен следующим образом: значение блока Si заменяется на Si-тый по порядку элемент (нумерация с нуля) i-того узла замен (т.е. i-той строки таблицы замен, нумерация также с нуля). Другими словами, в качестве замены для значения блока выбирается элемент из таблицы замен с номером строки, равным номеру заменяемого блока, и номером столбца, равным значению заменяемого блока как 4-битового целого неотрицательного числа. Теперь становится понятным размер таблицы замен: число строк в ней равно числу 4-битных элементов в 16-битном блоке данных, то есть четырем, а число столбцов равно числу различных значений 4-битного блока данных, равному как известно 24, шестнадцати.
4.Побитовое сложение: значение, полученное на шаге 3, побитно складывается по модулю 2 со старшей половиной преобразуемого блока.
5.Сдвиг по цепочке: младшая часть преобразуемого блока сдвигается на место старшей, а на ее место помещается результат выполнения предыдущего шага.
6.Полученное значение преобразуемого блока возвращается как результат выполнения алгоритма основного шага криптопреобразования.

Загрузка...