Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Беззатеев и др. Блоковые шифры.pdf
Скачиваний:
222
Добавлен:
02.04.2015
Размер:
1.75 Mб
Скачать

44

{k0 , k1, k2 , k3} = S3{w0 , w1, w2 , w3} {k4 , k5 , k6 , k7 } = S2{w4 , w5 , w6 , w7 }

{k8 , k9 , k10 , k11} = S1{w8 , w9 , w10 , w11}

{k12 , k13 , k14 , k15} = S0{w12 , w13 , w14 , w15}

{k16 , k17 , k18 , k19 } = S7{w16 , w17 , w18 , w19 }

...

{k124 , k125 , k126 , k127 } = S4{w124 , w125 , w126 , w127 }

{k128 , k129 , k130 , k131} = S3{w128 , w129 , w130 , w131}

Из полученных таким образом k j и формируются 128-битные ключи Ki для каждого цикла алгоритма:

Ki = IP({k4i , k4i+1, k4i+2 , k4i+3}) , для i = 0,, 31.

Таблицы перестановок для алгоритма Serpent приведены в Приложении 2.

4.4. Алгоритм Rijndael

Авторы: Джон Даймен (Joan Daemen), Винсент Риймен (Vincent Rijmen).

Rijndael — итеративный блоковый алгоритм с переменной длиной информационного блока и переменной длиной ключа. Длина информационного блока и длина ключа не зависят друг от друга и могут принимать значения 128, 192 или 256 бит.

При разработке алгоритма основное внимание уделялось решению следующих задач:

1.Устойчивость ко всем известным методам криптоанализа.

2.Скорость и независимость от платформы, на которой он будет реализован.

3.Простота и прозрачность алгоритма.

Преобразования, осуществляемые на каждом этапе в процессе выполнения алгоритма Rijndael, не являются структурой сетей Файстела, и представляют собой совокупность трех различных однотипных, обратимых преобразований: подстановки, перестановки и суммирования. Выбор преобразований во многом определяется так называемой стратегией широкого следа (Wide Trail Strategy) [Da95], обеспечивающей защиту от линейного и разностного криптоанализа.

Состоянием в Rijndael называется промежуточный результат процесса шифрования. Состояние можно представить как прямоугольный массив, элементами которого являются байты. В этом мас-

сиве имеется четыре строки, а число столбцов обозначается как Nb и равно длине информацион-

ного блока, деленной на 32 (Рис. 4.8). Ключ, используемый для шифрации, можно представить аналогичным образом в виде прямоугольного массива, имеющего четыре строки, число столбцов,

в котором обозначается как Nk и равно длине ключа, деленной на 32 (Рис. 2.21). В некоторых

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

a0,0

a0,1

a0,2

a0,3

a0,4

a0,5

 

 

 

 

 

 

a1,0

a1,1

a1,2

a1,3

a1,4

a1,5

 

 

 

 

 

 

a2,0

a2,1

a2,2

a2,3

a2,4

a2,5

 

 

 

 

 

 

a3,0

a3,1

a3,2

a3,3

a3,4

a3,5

 

 

 

 

 

 

k0,0

k0,1

k0,2

k0,3

 

 

 

 

k1,0

k1,1

k1,2

k1,3

 

 

 

 

k2,0

k2,1

k2,2

k2,3

 

 

 

 

k3,0

k3,1

k3,2

k3,3

 

 

 

 

Рис. 4.8. Пример состояния (при Nb = 6 ) и ключа шифрования (при Nk = 4 ).