Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие КЗИ учебное пособие.docx
Скачиваний:
130
Добавлен:
08.05.2019
Размер:
1.34 Mб
Скачать

InverseSubBytes(s);

InverseShiftRows(s);

For i:= 1 to 9 do Begin AddRoundKey(S,K[i]); InverseMixColumns(S); InverseShiftRows(S);

InverseSubBytes(s) End;

AddRoundKey(S,K[0])

Развертывание ключа.

Основной ключ алгоритма состоит из 128 битов, а нам нужно произвести 10 подключей K1, ..., K10, каждый из которых включает в себя четыре 32-битовых слова. Здесь используется константа раунда RCi, вычисляющаяся по правилу

RCi = Xi (mod X 8 + X 4 + X 3 + X + 1).

Обозначим i-ый подключ через (W4i, W4i+1, W4i+2, W4i+3,). Основной ключ алгоритма делится на четыре 32-битовых слова (k0, k1, k2, k3), после чего подключи получаются в результате выполнения прведенного ниже алгоритма. В нем через RotBytes обозначена процедура циклического сдвига слова влево на 1 байт, а через SubBytes – применение S-блока из этапа шифрования к каждому байту слова.

W[0]:=K[0]; W[1]:=K[1]; W[2]:=K[2]; W[3]:=K[3];

For i:=1 to 10 do Begin T:=RotBytes(W[4*i-1]); T:=SubBytes(T); T:=TRC[i];

W[4*i]:=W[4*i-4] T;

W[4*i+1]:=W[4*i-3] W[4*i];

W[4*i+2]:=W[4*i-2] W[4*i+1];

W[4*i+3]:=W[4*i-1] W[4*i+2]; End

3.4. Принципы построения поточных шифров

Поточные системы шифрования, в отличие от блочных не обладают таким недостатком, как возможность применения криптоанализа «со словарем», так как осуществляют позначное шифрование в алфавитах небольшой мощности. Кроме того, практика показывает, что пока лишь поточные шифры обеспечивают максимальные скорости шифрования, что важно при магистральном шифровании больших потоков информации.

3.4.1. Синхронизация поточных шифрсистем

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

По способу решения этой проблемы поточные шифрсистемы делят на синхронные и системы с самосинхронизацией.

В синхронных поточных шифрсистемах синхронизация достигается при помощи вставки в передаваемое сообщение специальных маркеров. В результате искажение не распространяется за пределы периода вставки маркеров.

Другое решение состоит в реинициализации состояний, как шифратора отправителя, так и шифратора получателя при некотором согласованном условии.

Примеры синхронных систем – регистры сдвига с обратной связью, дисковые шифраторы или шифрмашина Хагелина C-36.

Системы с самосинхронизацией чаще всего используются в режиме шифрования с обратной связью по шифртектсту (CFB), в котором текущее состояние системы зависит от некоторого числа N предыдущих знаков шифртекста. В этом случае потерянный в канале знак влияет на N последовательных состояний. После приема N правильных последовательных знаков из канала связи состояние приемного шифратора становится идентичным состоянию передающего шифратора.

3.4.2. Структура поточных шифрсистем

Поточная система шифрования состоит из двух основных блоков:

  • Управляющий блок (генератор ключевой последовательности - гаммы).

  • Шифрующий блок (реализует преобразование, накладывающее гамму на шифртекст).

Обычно управляющая гамма представляет собой псевдослучайную последовательность (ПСП), удовлетворяющую некоторой рекуррентной зависимости. В общем случае рекуррентная последовательность (на заданном множестве А) определяется формулой

x(i + m) = f(x(i), …, x(i + m - 1)), i  0,

в которой f : AmA – некоторая функция от m переменных.

Для получения рекуррентных последовательностей используются различные датчики псевдослучайных чисел, например линейные и степенные конгруэнтные генераторы.

В настоящее время большинство генераторов ПСП реализовано на основе регистров сдвига с линейными функциями обратной связи РСЛОС. Применяются также регистры сдвига с нелинейными функциями обратной связи.

Требования, предъявляемые к блокам поточной шифрсистемы, нарушение которых приводит к появлению аналитических или статистических слабостей алгоритма шифрования.

Требования к управляющему блоку:

  • период управляющей гаммы должен превышать максимально возможную длину открытых сообщений, подлежащих шифрованию;

  • статистические свойства управляющей гаммы должны приближаться к свойствам случайной равновероятной последовательности;

  • в управляющей гамме должны отсутствовать простые аналитические зависимости между близко расположенными знаками;

  • криптографический алгоритм получения знаков управляющей гаммы должен обеспечивать высокую сложность определения секретного ключа.

Требование к шифрующему блоку:

  • применение алгоритма шифрования должно носить универсальный характер и не зависеть от вида шифруемой информации.

Иногда выдвигается дополнительное требование:

  • способ построения шифрующего блока должен обеспечивать криптографическую стойкость шифра при перекрытиях управляющей гаммы, в частности при повторном использовании ключей.

Выполнение данных требований является необходимым, но не достаточным условием криптографической стойкости поточного шифра.