Автоматическая система контроля

Автоматизация технологических процессов

Симметричные алгоритмы шифрования

Применение описанного S-блока ко всем байтам состояния обозначено как ByteSub(State). Рисунок 2.8 иллюстрирует применение преобразования ByteSub к состоянию.

Рис 2.8 ByteSub действует на каждый байт состояния

Преобразование сдвига строк (ShiftRow).

Последние 3 строки состояния циклически сдвигаются на различное число байт. Строка 1 сдвигается на С1 байт, строка 2 - на С2 байт и строка 3 - на С3 байт.

Значения сдвигов С1, С2 и С3 зависят от длины блока Nb. Их величины приведены в таблице 2.3.

Таблица 2.3 Величина сдвига для разной длины блоков

Nb

C1

C2

C3

4

1

2

3

6

1

2

3

8

1

3

4

Операция сдвига последних 3 строк состояния на определенную величину обозначена как ShiftRow(State). Рисунок 2.9 показывает влияние преобразования на состояние.

Рис 2.9: ShiftRow действует на строки состояния.

Преобразование замешивания столбцов (MixColumn).

В этом преобразовании столбцы состояния рассматриваются как многочлены над GF(28) и умножаются по модулю x4+1 на многочлен c(x), выглядящий следующим образом:

(x)='03' x3 + '01' x2 + '01' x + '02' (2.3)

Это может быть представлено в виде матричного умножения. Пусть b(x)=c(x)a(x),

Таблица 2.4

b0

=

02

03

01

01

a0

b1

01

02

03

01

a1

b2

01

01

02

03

a2

b3

03

01

01

02

a3

Применение этой операции ко всем четырем столбцам состояния обозначено как MixColumn(State). Рисунок 2.10 демонстрирует применение MixColumn к состоянию.

Рис 2.10 MixColumn действует на столбцы состояния

Добавление циклового ключа.

В данной операции цикловой ключ добавляется к состоянию посредством простого EXOR. Цикловой ключ вырабатывается из ключа шифрования посредством алгоритма выработки ключей (key schedule). Длина циклового ключа равна длине блока Nb.

Преобразование, содержащее добавление посредством EXOR циклового ключа к состоянию, обозначено как AddRoundKey(State, RoundKey). Оно проиллюстрировано на рисунке 2.11.

Рис 2.11 При добавлении ключа цикловой ключ складывается посредством EXOR с состоянием.

Алгоритм выработки ключей (Key Schedule).

Цикловые ключи получаются из ключа шифрования посредством алгоритма выработки ключей. Он содержит два компонента: расширение ключа (Key Expansion) и выбор циклового ключа (Round Key Selection). Основополагающие принципы алгоритма выглядят следующим образом:

· Общее число бит цикловых ключей равно длине блока, умноженной на число циклов плюс 1 (например, для длины блока 128 бит и 10 циклов требуется 1408 бит циклового ключа).

· Ключ шифрования расширяется в Расширенный Ключ (Expanded Key).

· Цикловые ключи берутся из Расширенного ключа следующим образом: первый цикловой ключ содержит первые Nb слов, второй - следующие Nb слов и т.д.

Расширение ключа (Key Expansion).

Расширенный ключ представляет собой линейный массив 4-ех байтовых слов и обозначен как W Первые Nk слов содержат ключ шифрования. Все остальные слова определяются рекурсивно из слов с меньшими индексами. Алгоритм выработки ключей зависит от величины Nk: ниже приведена версия для Nk равного или меньшего 6 и версия для Nk большего 6.Для Nk<6 или Nk=6 мы имеем: Перейти на страницу: 1 2 3 4 5 6 7

Другие статьи по теме

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

Информационно-измерительная система Целью данной курсовой работы является анализ информационно-измерительной системы (ИИС), определение типа топологии и оптимального пространственного расположения объектов ИИС, при которо ...

Территориальное планирование сетей телерадиовещания с учетом ЭМС РЭС на основе геоинформационных технологий На этапе проектирования телекоммуникационных сетей с появлением электронных карт и геоинформационных систем появилась возможность проведения более точных расчетов размещения радиоэлектр ...