Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

SubBytes(S);



ShiftRows(S);

AddRoundKey(S,K[10])

Блок открытого текста, предназначенный для шифрования, записывается в виде матрицы состояний S. Полученный в результате алгоритма шифротекст представляется той же матрицей. В последнем раунде операция MixColumns не осуществляется.

Процедура расшифрования в псевдокоде:

AddRoundKey(S,K[10]);

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 подключей K 1,..., K 10, каждый из которых включает в себя четыре 32-битовых слова. Здесь используется константа раунда RCi, вычисляющаяся по правилу

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

Обозначим i -ый подключ через (W 4 i , W 4 i+ 1, W 4 i+ 2, W 4 i+ 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:=TÙRC[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





Дата публикования: 2014-11-02; Прочитано: 453 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...