- •Введение
- •Глава 1. Основные понятия и определения
- •1.1. Основные понятия
- •1.2. Типы атак
- •1.3. Параметры симметричных шифров
- •1.4. Режимы шифрования
- •1.4.1 Режим кодовой книги (ECB)
- •1.4.2 Режим с зацеплением блоков (CBC)
- •1.5. Принципы построения шифров
- •Глава 2. Исторические шифры
- •2.1. Шифры перестановки
- •Пример (шифр Древней Спарты)
- •2.2. Шифры замены (подстановки)
- •2.2.1 Шифры простой замены
- •Пример (шифр Юлия Цезаря)
- •Пример (аффинное преобразование)
- •2.2.2 Многосимвольный подстановочный шифр
- •Пример (шифр Playfair, изобретенный в 1854 году)
- •2.2.3 Шифры гомоморфной замены
- •Глава 3. Сети Файстела и другие шифры
- •3.1. Сети Файстела (Feistel)
- •3.2. Шифр Люцифер
- •3.3. Алгоритм DES
- •3.3.1 Слабые и полу-слабые ключи в DES
- •3.3.2 Использование метода разностного криптоанализа для DES
- •3.4. Алгоритм шифрования FEAL
- •Основные различия между DES и ГОСТ
- •3.6. Алгоритм IDEA
- •3.7. Алгоритм Blowfish
- •Подключи
- •Шифрование и дешифрация
- •Генерирование множеств подключей
- •3.8. Алгоритм RC5
- •Глава 4. AES-кандидаты
- •4.1. Алгоритм MARS
- •Первый этап: прямое перемешивание
- •"Криптографическое ядро"
- •Обратное перемешивание
- •Процедура генерации ключей
- •Построение S-box
- •4.2. Алгоритм RC6
- •Генерация ключей
- •4.3. Алгоритм Serpent
- •Создание S-box
- •Линейное преобразование
- •Генерация ключей
- •4.4. Алгоритм Rijndael
- •1. Побайтовая подстановка
- •2. Сдвиг по строке
- •3. Побайтовая перестановка внутри столбцов
- •4. Сложение с ключом, используемым на данном этапе
- •Процедура получения ключей для каждого этапа алгоритма шифрования
- •Алгоритм расширения ключа
- •4.5. Алгоритм Twofish
- •Функция
- •Преобразование
- •Генерация ключей
- •Функция
- •Функция генерации ключей
- •Примечание
- •Литература
- •Приложение 1. S-box шифра MARS.
- •Начальная перестановка НП:
- •Конечная перестановка КП:
- •S-box, используемые при шифрации:
- •S-box, используемые при дешифрации:
14
3.3. Алгоритм DES
Алгоритм DES (Data Encryption Standard, Стандарт Шифрования Данных) разработан фирмой IBM как усовершенствованный алгоритм на базе Люцифера, и представляет собой сеть Файстела с длиной блока исходного текста бит, длиной ключа бит и числом циклов, равным 16. Как федеральный стандарт, этот алгоритм был принят в США в 1976 году. Далее при описании данного алгоритма используются следующие обозначения. Если L и R — последовательности бит, то через LR будем обозначать конкатенацию (склеивание) последовательностей L и R , то есть последовательность бит, размерность которой равна сумме размерностей L и R . В этой последовательности биты последовательности R следуют за битами последовательности L . Символом "+" будет обозначаться операция побитового сложения по модулю 2.
Процесс шифрации данных поясняется Рис. 3.1.
K1
f (R0 , K1 )
K2
f (R1, K2 )
Рис.3.1. Преобразование блока исходной информации алгоритмом DES.
Сначала 64 бита исходной информации переставляются в соответствии с Табл. 3.1. Таким образом, 58-й бит блока исходной информации становится 1-м битом, 50-й бит — 2-м битом и так далее.
Полученная последовательность бит разделяется на два блока: L(0) (левый, или старшие биты), и R(0) (правый, или младшие биты), каждый из которых содержит 32 бита. Затем выполняется итеративный процесс шифрования, который записывается следующими формулами:
L(i) = R(i −1), i =1,2,…,16 ;
R(i) = L(i −1) + f (R(i −1), K(i)), i =1,2,…,16 .
15
58 |
50 |
42 |
34 |
26 |
18 |
10 |
2 |
|
|
|
|
|
|
|
|
60 |
52 |
44 |
36 |
28 |
20 |
12 |
4 |
|
|
|
|
|
|
|
|
62 |
54 |
46 |
38 |
30 |
22 |
14 |
6 |
|
|
|
|
|
|
|
|
64 |
56 |
48 |
40 |
32 |
24 |
16 |
8 |
|
|
|
|
|
|
|
|
57 |
49 |
41 |
33 |
25 |
17 |
9 |
1 |
|
|
|
|
|
|
|
|
59 |
51 |
43 |
35 |
27 |
19 |
11 |
3 |
|
|
|
|
|
|
|
|
61 |
53 |
45 |
37 |
29 |
21 |
13 |
5 |
|
|
|
|
|
|
|
|
63 |
55 |
47 |
39 |
31 |
23 |
15 |
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Табл. 3.1. Начальная перестановка
Функция f называется функцией шифрования. Ее аргументами являются блок R(i −1) , полученный на предыдущем шаге итерации, и 48-битный ключ K(i) , который является результатом функции преобразования 56-битного ключа шифра.
На последнем шаге итерации будут получены последовательности L(16) и R(16) , которые конкатенируются в 64-битную последовательность L(16)R(16) . 64 бита полученной последовательно-
сти переставляются в соответствии с Табл. 3.2. Данная перестановка является обратной по отношению к начальной.
Полученная последовательность из 64 бит и будет являться шифрограммой исходного блока из
64 бит.
40 |
8 |
48 |
16 |
56 |
|
24 |
64 |
32 |
|
|
|
|
|
|
|
|
|
39 |
7 |
47 |
15 |
55 |
23 |
63 |
31 |
|
|
|
|
|
|
|
|
|
|
38 |
6 |
46 |
14 |
54 |
22 |
62 |
30 |
|
|
|
|
|
|
|
|
|
|
37 |
5 |
45 |
13 |
53 |
21 |
61 |
29 |
|
|
|
|
|
|
|
|
|
|
36 |
4 |
44 |
12 |
52 |
20 |
60 |
28 |
|
|
|
|
|
|
|
|
|
|
35 |
3 |
43 |
11 |
51 |
19 |
59 |
27 |
|
|
|
|
|
|
|
|
|
|
34 |
2 |
42 |
10 |
50 |
18 |
58 |
26 |
|
|
|
|
|
|
|
|
|
|
33 |
1 |
41 |
9 |
49 |
17 |
57 |
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Табл. 3.2. Конечная перестановка
Процесс дешифрации данных является инверсным по отношению к процессу шифрации. Все действия должны быть выполнены в обратном порядке. Это означает, что дешифруемые данные сначала переставляются в соответствии с Табл. 3.1, а затем над последовательностью бит L(16)R(16)
выполняются те же действия, что и в процессе шифрации, но в обратном порядке. Процесс дешифрации может быть описан следующими формулами:
R(i −1) = L(i), i =1,2,…,16 ;
L(i −1) = R(i) + f (L(i), K(i)), i =1,2,…,16 .
На последнем шаге будут получены последовательности L(0) и R(0) , которые конкатенируются в 64-битный блок L(0)R(0) . В полученном блоке 64 бита переставляются в соответствии с
Табл. 3.2. Результат такого преобразования — исходная последовательность бит (дешифрованная 64-битная последовательность).
Функция шифрования f (R, K ) схематически показана на Рис. 3.2.
16
Рис.3.2. Функция криптографического преобразования f (R, K ) .
Для вычисления функции f используются расширяющая перестановка E (расширение 32 бит до 48), функции S1 , S2 , S3 , S4 , ..., S8 (преобразование 6-битного числа в 4-битное) и функция P
(перестановка бит в 32-битной последовательности). Аргументами функции шифрования являются R(32) и K(48) . Результат функции E — 48-битное число, которое складывается по модулю 2 с
числом K . Таким образом, получается 48-битная последовательность, которая рассматривается как конкатенация 8 строк длиной по 6 бит, то есть:
B(1)B(2)B(3)B(4)B(5)B(6)B(7)B(8) .
Эта последовательность поступает на входы восьми S-box (Рис. 3.3).
Рис.3.3. Преобразование 48-битной последовательности в 32-битную.
Результат функции Si (B(i)) — 4-битная последовательность, которую будем обозначать T (i) . В результате такой конкатенации всех 8 полученных последовательностей T (i) имеем 32-битный блок:
T = T (1)T (2)T (3)T (4)T (5)T (6)T (7)T (8) .
17
Наконец, для получения результата функции шифрования необходимо переставить биты блока T . Для этого применяется функция перестановки P(T ) .
Расширяющая перестановка E , выполняющая расширение 32 бит до 48, определяется Табл. 3.3. В соответствии с этой таблицей первые три бита E — это биты 32, 1, 2, а последние — 31, 32, 1.
32 |
1 |
2 |
|
3 |
4 |
5 |
|
|
|
|
|
|
|
4 |
5 |
6 |
7 |
8 |
9 |
|
|
|
|
|
|
|
|
8 |
9 |
10 |
11 |
12 |
13 |
|
|
|
|
|
|
|
|
12 |
13 |
14 |
15 |
16 |
17 |
|
|
|
|
|
|
|
|
16 |
17 |
18 |
19 |
20 |
21 |
|
|
|
|
|
|
|
|
20 |
21 |
22 |
23 |
24 |
25 |
|
|
|
|
|
|
|
|
24 |
25 |
26 |
27 |
28 |
29 |
|
|
|
|
|
|
|
|
28 |
29 |
30 |
31 |
32 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Табл. 3.3. Расширяющая перестановка E .
В соответствии с Табл. 3.4 каждая из функций Si (B) преобразует 6-битный вход в 4-битный выход по следующему алгоритму:
•первый и последний биты входной последовательности B определяют номер строки K
•второй, третий, четвертый и пятый биты последовательности B задают номер колонки L
•результат преобразования выбирается из строки K и колонки L .
Например, предположим, что входными для пятой S-box (S5-box) (это биты с 25 по 30 из последовательности с выхода сумматора по модулю два) являются 101100. Первый и последний бит образуют 10, что соответствует третьей строке в таблице S5-box. Средние четыре бита образуют 0110, что соответствует седьмому столбцу в таблице S5-box. Число, находящееся в третьей строке и седьмом столбце таблицы S5-box — 7. Таким образом, блок 101100 преобразуется в 0111.
Преобразование с помощью S-box является принципиальной особенностью алгоритма DES, в отличие от всех остальных преобразований, используемых в алгоритме, данное — нелинейное, и именно оно является определяющим для качества алгоритма. Долгое время различными исследователями предпринимались многочисленные попытки раскрыть "тайну" создания S-box. И лишь после появления публикаций о дифференциальном криптоанализе IBM раскрыла критерии проектирования S-box и перестановочной матрицы P [Cop92, Cop94].
Критериями проектирования S-box являлись:
•У каждой S-box 6 входных бит и 4 выходных бита. (Это самый большой размер, который мог быть реализован в одной микросхеме по технологии 1974 года).
•Ни один выходной бит S-box не должен быть слишком близок к линейной функции входных бит.
•Если зафиксировать крайние левый и правый входные биты S-box, изменяя 4 средних бита, то каждый возможный 4-битный результат получается только один раз.
•Если два блока на входе S-box отличаются только в одном бите, результаты должны отличаться по крайней мере в двух битах.
•Если два блока на входе S-box отличаются только в двух центральных битах, результаты должны отличаться по крайней мере в двух битах.
•Если два блока на входе S-box отличаются в двух первых битах, а их последние два бита совпадают, результаты не должны быть одинаковыми.
•Рассмотрим пары 6-битных блоков на входе, отличающиеся друг от друга во всех 6 битах. Всего таких различных пар — 32. S-box должны быть построены так, чтобы не более, чем 8 из 32 пар таких блоков на входе могли бы приводить на выходе к одинаковому различию.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S1-box |
14 |
4 |
13 |
1 |
2 |
15 |
11 |
8 |
3 |
10 |
6 |
12 |
5 |
9 |
0 |
|
7 |
|
|
|
|
0 |
15 |
7 |
4 |
14 |
2 |
13 |
1 |
10 |
6 |
12 |
11 |
9 |
5 |
3 |
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
1 |
14 |
8 |
13 |
6 |
2 |
11 |
15 |
12 |
9 |
7 |
3 |
10 |
5 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
12 |
8 |
2 |
4 |
9 |
1 |
7 |
5 |
11 |
3 |
14 |
10 |
0 |
6 |
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
S2-box |
15 |
1 |
8 |
14 |
6 |
11 |
3 |
4 |
9 |
7 |
2 |
13 |
12 |
0 |
5 |
|
10 |
||
|
|
3 |
13 |
4 |
7 |
15 |
2 |
8 |
14 |
12 |
0 |
1 |
10 |
6 |
9 |
11 |
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
14 |
7 |
11 |
10 |
4 |
13 |
1 |
5 |
8 |
12 |
6 |
9 |
3 |
2 |
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
8 |
10 |
1 |
3 |
15 |
4 |
2 |
11 |
6 |
7 |
12 |
0 |
5 |
14 |
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S3-box |
10 |
0 |
9 |
14 |
6 |
3 |
15 |
5 |
1 |
13 |
12 |
7 |
11 |
4 |
2 |
|
8 |
|
|
|
|
13 |
7 |
0 |
9 |
3 |
4 |
6 |
10 |
2 |
8 |
5 |
14 |
12 |
11 |
15 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
6 |
4 |
9 |
8 |
15 |
3 |
0 |
11 |
1 |
2 |
12 |
5 |
10 |
14 |
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
10 |
13 |
0 |
6 |
9 |
8 |
7 |
4 |
15 |
14 |
3 |
11 |
5 |
2 |
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
S4-box |
7 |
13 |
14 |
3 |
0 |
6 |
9 |
10 |
1 |
2 |
8 |
5 |
11 |
12 |
4 |
|
15 |
||
|
|
13 |
8 |
11 |
5 |
6 |
15 |
0 |
3 |
4 |
7 |
2 |
12 |
1 |
10 |
14 |
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
6 |
9 |
0 |
12 |
11 |
7 |
13 |
15 |
1 |
3 |
14 |
5 |
2 |
8 |
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
15 |
0 |
6 |
10 |
1 |
13 |
8 |
9 |
4 |
5 |
11 |
12 |
7 |
2 |
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S5-box |
2 |
12 |
4 |
1 |
7 |
10 |
11 |
6 |
8 |
5 |
3 |
15 |
13 |
0 |
14 |
|
9 |
|
|
|
|
14 |
11 |
2 |
12 |
4 |
7 |
13 |
1 |
5 |
0 |
15 |
10 |
3 |
9 |
8 |
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
2 |
1 |
11 |
10 |
13 |
7 |
8 |
15 |
9 |
12 |
5 |
6 |
3 |
0 |
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
8 |
12 |
7 |
1 |
14 |
2 |
13 |
6 |
15 |
0 |
9 |
10 |
4 |
5 |
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
S6-box |
12 |
1 |
10 |
15 |
9 |
2 |
6 |
8 |
0 |
13 |
3 |
4 |
14 |
7 |
5 |
|
11 |
||
|
|
10 |
15 |
4 |
2 |
7 |
12 |
9 |
5 |
6 |
1 |
13 |
14 |
0 |
11 |
3 |
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
14 |
15 |
5 |
2 |
8 |
12 |
3 |
7 |
0 |
4 |
10 |
1 |
13 |
11 |
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
3 |
2 |
12 |
9 |
5 |
15 |
10 |
11 |
14 |
1 |
7 |
6 |
0 |
8 |
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S7-box |
4 |
11 |
2 |
14 |
15 |
0 |
8 |
13 |
3 |
12 |
9 |
7 |
5 |
10 |
6 |
|
1 |
|
|
|
|
13 |
0 |
11 |
7 |
4 |
9 |
1 |
10 |
14 |
3 |
5 |
12 |
2 |
15 |
8 |
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
4 |
11 |
13 |
12 |
3 |
7 |
14 |
10 |
15 |
6 |
8 |
0 |
5 |
9 |
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
11 |
13 |
8 |
1 |
4 |
10 |
7 |
9 |
5 |
0 |
15 |
14 |
2 |
3 |
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S8-box |
13 |
2 |
8 |
4 |
6 |
15 |
11 |
1 |
10 |
9 |
3 |
14 |
5 |
0 |
12 |
|
7 |
|
|
|
|
1 |
15 |
13 |
8 |
10 |
3 |
7 |
4 |
12 |
5 |
6 |
11 |
0 |
14 |
9 |
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
11 |
4 |
1 |
9 |
12 |
14 |
2 |
0 |
6 |
10 |
13 |
15 |
3 |
5 |
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
1 |
14 |
7 |
4 |
10 |
8 |
13 |
15 |
12 |
9 |
0 |
3 |
5 |
6 |
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Табл. 3.4. Преобразования подстановки S-box алгоритма DES.
Критериями проектирования перестановки P являлись:
•4 выходных бита каждой S-box на i-м цикле распределены так, чтобы два из них влияли бы на средние биты S-box на (i +1) -м цикле, а другие два бита влияли бы на последние биты.
•4 выходных бита каждой S-box должны влиять на шесть различных S-box, никакие два бита не влияют на одну и ту же S-box.
•Если на i -м цикле выходной бит одной S-box влияет на средние биты другой S-box, то выходной бит этой другой S-box на (i +1) -м цикле не может влиять на средние биты первой
S-box.
19
Функция перестановки бит P(T ) , также используемая для определения функции шифрования,
задается значениями, приведенными в Табл. 3.5. В последовательности T 32 бита переставляются так, чтобы 16-й бит стал первым, 7-й бит — вторым и т.д.
16 |
7 |
|
20 |
21 |
|
|
|
|
|
29 |
12 |
28 |
17 |
|
|
|
|
|
|
1 |
15 |
23 |
26 |
|
|
|
|
|
|
5 |
18 |
31 |
10 |
|
|
|
|
|
|
2 |
8 |
24 |
14 |
|
|
|
|
|
|
32 |
27 |
3 |
9 |
|
|
|
|
|
|
19 |
13 |
30 |
6 |
|
|
|
|
|
|
22 |
11 |
4 |
25 |
|
|
|
|
|
|
|
|
|
|
|
Табл. 3.5. Функция перестановки бит P(T ) .
Алгоритм получения ключей K(i), i =1,2,…,16 размерностью 48 бит.
Ключи K(i) определяются по 56-битному ключу шифра после добавления к нему 8 бит проверки
на четность, то есть к каждым семи битам исходного 56-битного ключа добавляется один бит проверки на четность. Таким образом, в результате получается ключ длиной 64 бита. Процесс получения ключей K(i) изображен на Рис. 3.2. Вначале над ключом выполняется функция B , которая
сводится к выбору определенных бит и их перестановке в соответствии с Табл. 3.6.
57 |
49 |
41 |
33 |
25 |
17 |
9 |
|
|
|
|
|
|
|
1 |
58 |
50 |
42 |
34 |
26 |
18 |
|
|
|
|
|
|
|
10 |
2 |
59 |
51 |
43 |
35 |
27 |
|
|
|
|
|
|
|
19 |
11 |
3 |
60 |
52 |
44 |
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
55 |
47 |
39 |
31 |
23 |
15 |
|
|
|
|
|
|
|
7 |
62 |
54 |
46 |
38 |
30 |
22 |
|
|
|
|
|
|
|
14 |
6 |
61 |
53 |
45 |
37 |
29 |
|
|
|
|
|
|
|
21 |
13 |
5 |
28 |
20 |
12 |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Табл. 3.6. Функция B над элементами ключа.
Причем, первые четыре строки определяют, как выбираются биты последовательности C(0) (первым битом C(0) будет 57-й бит ключа шифра, затем 49-й бит и т.д., а последними битами — биты
44 и 36 ключа), а последующие четыре строки приведенной таблицы определяют, каким образом выбираются биты последовательности D(0) .
Для генерации последовательностей C(0) и D(0) не используются биты 8, 16, 24, 32, 40, 48, 56,
64 ключа шифра. Эти биты не влияют на шифрацию и используются, как было сказано выше, для контроля четности. После определения C(0) и D(0) рекурсивно определяются C(i) и D(i) ,
i =1,2,…,16 . Для этого применяются операции сдвига влево на один или два бита в зависимости от номера шага. Этот факт отражен в Табл. 3.7.
Номер шага |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Количество сдвигов влево |
1 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Табл. 3.7. Число сдвигов, используемое на различных циклах при генерации подблоков ключа.
