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

8
Рис. 1.3. Режим CBC.
Режим СВС обладает следующими свойствами:
•При смене инициализирующего вектора IV меняется весь шифртекст, даже если ключ и открытый текст остались прежними.
•Блоки зависимы. Перестановка местами блоков приведет к искажению всего сообщения.
•Ошибка при передаче в некотором блоке затрагивает при дешифрации этот и последующий блоки, однако последующие блоки будут дешифрованы правильно (если больше ошибок не было).
Режим CBC является одним из наиболее широко используемых — например, он применяется в протоколе передачи данных SSL.
1.5. Принципы построения шифров
В основу всех симметричных блоковых шифров положен принцип "перемешивания бит" — то есть, символы (биты) входной последовательности "перемешиваются" между собой и с ключом с помощью набора простейших операций: сложения, умножения по модулю некоторого числа (как правило, степени двойки), перестановки, подстановки, побитовых логических операций и сдвигов. Каждая из этих операций в отдельности не является безопасной с точки зрения обеспечения секретности, однако их комбинации могут давать более стойкие конструкции. Простота этих базовых операций и делает симметричные шифры столь выигрышными по скорости работы и компактности.
Дадим несколько определений. Шифр называется составным, если он состоит из двух или более преобразований, соединенных так, что полученная конструкция более безопасна, чем каждая из компонент.
Итеративный шифр — это шифр, состоящий из последовательного повторения (раундов) некоторой внутренней функции, называемой функцией раунда. Как правило, эта функция зависит от результатов предыдущего раунда (или открытого текста — на первом шаге), и от подключей, полученных из общего ключа. Практически все существующие сегодня шифры являются итеративными. Для их задания необходимо указать:
•процедуру шифрации;
•процедуру дешифрации;
•процедуру генерации подключей.
Внастоящий момент существуют общепринятые схемы построения итеративных шифров — это SP-сеть (подстановочно-перестановочная сеть) и сеть Файстела.
SP-сеть — это составной шифр, включающий в себя последовательность этапов, на каждом из которых сочетаются подстановки и перестановки (Рис.1.4).

9
Рис. 1.4. SP-сеть.
Среди наиболее известных шифров с такой конструкцией можно назвать AES-кандидаты Serpent и Rijndael. В настоящий момент Rijndael является AES — стандартом шифрования.
Другой общепринятой схемой, по которой построено большинство известных симметричных шифров, является сеть Файстела — итеративный шифр, состоящий из r раундов, на каждом из которых выполняется функция раунда (Рис.1.5). Подробнее сети Файстела описаны в Главе 3.
Среди наиболее известных шифров, являющихся сетью Файстела, DES, ГОСТ 28147-89, Twofish, MARS, RC6.
f (Ri , Ki +1 )
Рис. 1.5. Один раунд сети Файстела.