Вычисления в конечных полях
Раунд преобразования алгоритма RIJNDAEL R1JNDAEL выполняет серию однотипных раундов преобразо вания шифруемого блока. Шифруемый блок и его промежуточные состояния в ходе преобразования представляются в виде квадрат ной матрицы. Раунд состоит из четырех последовательно выпол няемых шагов (рис. 4.2): 1) замена байтов 5[ ] (SubBytes) - каждый байт блока данных заменяется новым значением по фиксированной матрице замены; 2) побайтовый циклический сдвиг (ShiftRows) в строках матрицы; /-я строка циклически сдвигается на ( / - 1 ) байтов влево, а 1-я строка не изменяется; 3) матричное умножение Мх[ ] (MixColumns) - байты, пред ставленные в виде многочленов над полем GF(2^), умножаются на фиксированный многочлен третьей степени i'(-v) по модулю 4- 1; 4) сложение с раундовым ключом (AddRoundKey) - выпол нение операции поразрядного исключающего или (хог) байтов с текущей чаетью ключа алгоритма. Рис. 4.2. Схема преобразования данных алгоритмом RIJNDAEL с ллнной ключа в i 28 бит: X - входной блок данных; X, и X, 1 - преобразуемый блок на входе и выходе 1-1о раунда, / = 0,10 ; Л:, - KJHO'ieBoi злеменг /-го раунда В 10-м раунде операция Мх[ ] отсутствует. Преобразование SubBytes (1-й шаг раунда шифрования/ расшифрования) - нелинейная замена байт, выполняемая для каж 122
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy