Лабораторная работа: Методы и средства защиты компьютерной информации

{

KeyExpansion (CipherKey, ExpandedKey);

AddRoundKey (State, ExpandedKey);

for (i = 1; i < Nr; i++)

Round (State, ExpandedKey + Nb*i);

FinalRound (State, ExpandedKey + Nb*Nr);

}

Раундовый ключ можно заготовить и вне функции Rijndael, a вместо ключа пользователя CipherKey использовать развертку ключей ExpandedKey. Преимущества такого варианта очевидны, когда для зашифрования текста длиной более одного блока нужно несколько раз вызывать функцию Rijndael с одним и тем же ключом пользователя.

Rijndael (byteState, byteExpandedKey)

{

AddRoundKey (State, ExpandedKey);

for (i = 1; i < Nr; i++) Round (State, ExpandedKey + Nb*i);

FinalRound (State, ExpandedKey + Nb*Nr);

}

Для 32-разрядных процессоров раундовое преобразование лучше вычислять заранее и хранить результаты в виде таблиц. Заменяя операции перестановки и умножения на матрицу обращением к таблице, мы значительно сокращаем время работы как при зашифровании, так и (как будет видно позже) при расшифровании. С помощью таблиц вида

каждая из которых содержит по 256 четырехбайтовых слов (здесь w = 0,...,255; S (w) - S -блок подстановки), преобразование блока j = 0,..., Lb - 1, можно быстро выполнить как

,

где (см. ShiftRow) и - j-йстолбец раундового ключа.

На последнем раунде преобразование MixColumn не выполняется, поэтому результат получается как

Конечно, можно воспользоваться таблицей из 256 четырехбайтовых слов, тогда

где r (a,b,c,d) = (d,a,b, с) - циклический сдвиг вправо на один байт.д.ля приложений с ограниченной памятью этот вариант чрезвычайно удобен, немного увеличится лишь время вычислений, необходимое для выполнения трех сдвигов.

2.7 РАСШИФРОВАНИЕ

При расшифровании алгоритмом Rijndael процесс зашифрования выполняется в обратном порядке с обратными преобразованиями. Вотэтиобратныефункции:

InvFinalRound (word State, word RoundKey)

{

AddRoundKey (State, RoundKey);

InvShiftRow (State);

К-во Просмотров: 325
Бесплатно скачать Лабораторная работа: Методы и средства защиты компьютерной информации