
- •Введение
- •Глава 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, используемые при дешифрации:

20
Ключ K(i) , определяемый на каждом шаге итерации, есть результат выбора определенных бит из
56-битовой последовательности |
|
C(i)D(i) и |
|
их перестановки. Другими словами, |
||||||||
K(i) = K (C(i)D(i)) , где функция |
K называется |
сжимающей |
перестановкой и определяется |
|||||||||
Табл. 3.8. |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
17 |
|
11 |
|
|
24 |
|
1 |
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
28 |
|
15 |
|
|
6 |
|
21 |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
|
19 |
|
12 |
|
|
4 |
|
26 |
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
7 |
|
27 |
|
|
20 |
|
13 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
52 |
|
31 |
|
|
37 |
|
47 |
55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
|
40 |
|
51 |
|
|
45 |
|
33 |
48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
|
49 |
|
39 |
|
|
56 |
|
34 |
53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
42 |
|
50 |
|
|
36 |
|
29 |
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Табл. 3.8. Сжимающая перестановка K .
Так как для получения ключей на каждом цикле используется определенная модификация (Табл. 3.7) исходного ключа, то имеются определенные "слабые" ключи. В Табл. 3.9 такие ключи приведены в шестнадцатерично-десятичной записи.
3.3.1 Слабые и полу-слабые ключи в DES
Если ключи K(i), i =1,2,…,16 оказываются попарно одинаковыми, то есть K(1) = K(16) , K (2) = K (15) и так далее, тогда процедуры шифрации и дешифрации оказываются идентичными.
Ключи, обладающие таким свойством, называются слабыми, или палиндромными, ключами. Формально определение слабого ключа можно представить следующим образом:
E(E(x, K ), K ) = x ,
где x — исходный информационный блок в 64 бита, K — 56-битный ключ, E( , ) — функция шифрации.
Кроме слабых ключей, для DES существует понятие полу-слабых ключей — это пара 56-битных ключей (K1, K2 ) такая, что
E(E(x, K2 ), K1) = x .
Для алгоритма DES имеется четыре слабых ключа и шесть пар полу-слабых ключей.
0101 |
0101 |
0101 |
0101 |
FEFE |
FEFE |
FEFE |
FEFE |
1F1F |
1F1F |
0E0E |
0E0E |
E0E0 |
E0E0 |
F1F1 |
F1F1 |
Табл. 3.9. Слабые ключи.
01FE 01FE 01FE 01FE ; FE01 FE01 FE01 FE01 1FE0 1FE0 0EF1 0EF1 ; E01F E01F F10E F10E 01E0 01E0 01F1 01F1 ; E001 E001 F101 F101 1FFE 1FFE 0EFE 0EFE ; FE1F FE1F FE0E FE0E 011F 011F 010E 010E ; 1F01 1F01 0E01 0E01 E0FE E0FE F1FE F1FE ; FEE0 FEE0 FEF1 FEF1
Табл. 3.10. Пары полу-слабых ключей.