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

34
Глава 4. AES-кандидаты
В 1996 году НИСТ объявил конкурс на новый стандарт шифрования данных AES. Конкурс проходил в три этапа, в нем участвовали алгоритмы, разработанные авторами по всему миру. В результате двух туров были отобраны пять финалистов, и в 2001 году победителем третьего тура стал Rijndael. Однако, в итоговом заявлении НИСТ было отмечено, что ни для одного из пяти финалистов не было выявлено никаких слабостей, таким образом, на сегодняшний день эти алгоритмы можно считать наилучшими из последних разработок симметричных шифров.
4.1. Алгоритм MARS
Авторы: Каролин Бервик (Carolynn Burwick), Дон Копперсмит (Don Coppersmith), Эдвард д'Авин-
ьон (Edward D’Avignon), Розарио Дженнаро (Rosario Gennaro), Шаи Халеви (Shai Halevi), Шараньи Джатла (Charanjit Jutla), Стивен М. Матиас-мл. (Stephen M. Matyas Jr.), Люк О'Коннор (Luke O’Connor), Мохаммад Пейравиан (Mohammad Peyravian), Дэвид Сэффорд (David Safford), Невенко Цуник (Nevenko Zunic) (компания IBM).
MARS — итеративный блоковый алгоритм с длиной информационного блока 128 бит и длиной ключа от 128 до 400 бит. Алгоритм построен практически по классической схеме сетей Файстела с 32 циклами. Принципиальной, по мнению разработчиков, модификацией является различие восьми первых и восьми последних циклов сети от шестнадцати средних циклов. На Рис. 4.1 представлена общая схема алгоритма MARS.
Рис. 4.1. Общая схема алгоритма MARS.
Обозначения, принятые в последующем описании алгоритма: D[ ] — массив из четырех 32-битных слов; K[ ] — расширенный массив ключей, содержащий 40 322-битных слов; S[ ] — S-box, содержащая 512 32-битных слов, приэтом первые 256 обозначим как S0 , а последующие 256 как S1 .