- •394026 Воронеж, Московский просп., 14 Введение
- •1.Обзор наиболее распространенных методов "взлома"
- •1.1. Комплексный поиск возможных методов доступа
- •1.2. Терминалы защищенной информационной системы
- •1.3. Получение пароля на основе ошибок администратора и пользователей
- •1.4. Получение пароля на основе ошибок в реализации
- •1.5. Социальная психология и иные способы получения паролей
- •2. Криптография
- •2.1. Классификация криптоалгоритмов
- •2.2. Симметричные криптоалгоритмы
- •2.2.1 Скремблеры
- •2.2.2. Блочные шифры
- •2.2.2.1. Общие сведения о блочных шифрах
- •2.2.2.2. Сеть Фейштеля
- •2.2.2.3. Блочный шифр tea
- •2.2.2.4. Aes : cтандарт блочных шифров сша
- •2.2.2.4.1. Общие сведения о конкурсе aes
- •2.2.2.4.2. Финалист aes – шифр mars
- •2.2.2.4.3. Финалист aes – шифр rc6
- •2.2.2.4.4. Финалист aes – шифр Serpent
- •2.2.2.4.5. Финалист aes – шифр TwoFish
- •2.2.2.4.6. Победитель aes – шифр Rijndael
- •2.3. Симметричные криптосистемы
- •2.3.1. Функции криптосистем
- •2.3.2. Алгоритмы создания цепочек
- •2.3.3. Методы рандомизации сообщений
- •2.3.3.1. Обзор методик рандомизации сообщений
- •2.3.3.2. Генераторы случайных и псевдослучайных последовательностей
- •2.3.4. Архивация
- •2.3.4.1. Общие принципы архивации. Классификация методов
- •2.3.4.2. Алгоритм Хаффмана
- •2.3.4.3. Алгоритм Лемпеля-Зива
- •2.3.5. Хеширование паролей
- •2.3.6. Транспортное кодирование
- •2.4. Асимметричные криптоалгоритмы
- •2.4.1. Общие сведения об асимметричных криптоалгоритмах
- •2.4.2. Алгоритм rsa
- •2.4.3. Технологии цифровых подписей
- •2.4.4. Механизм распространения открытых ключей
- •2.4.5. Обмен ключами по алгоритму Диффи-Хеллмана
- •3. Сетевая безопасность
- •3.1. Атакуемые сетевые компоненты
- •3.1.1. Сервера
- •3.1.2. Рабочие станции
- •3.1.3. Среда передачи информации
- •3.1.4. Узлы коммутации сетей
- •3.2. Уровни сетевых атак согласно модели osi
- •4. По и информационная безопасность
- •4.1. Обзор современного по
- •4.1.1. Операционные системы
- •4.1.2. Прикладные программы
- •4.2. Ошибки, приводящие к возможности атак на информацию
- •4.3. Основные положения по разработке по
- •5. Комплексная система безопасности
- •5.1. Классификация информационных объектов
- •5.1.1. Классификация по требуемой степени безотказности
- •5.1.2. Классификация по уровню конфиденциальности
- •5.1.3. Требования по работе с конфиденциальной информацией
- •5.2. Политика ролей
- •5.3. Создание политики информационной безопасности
- •5.4. Методы обеспечения безотказности
- •Заключение
- •Оглавление
2.2.2.2. Сеть Фейштеля
Сеть Фейштеля является дальнейшей модификацией описанного выше метода смешивания текущей части шифруемого блока с результатом некоторой функции, вычисленной от другой независимой части того же блока. Эта методика получила широкое распространение, поскольку обеспечивает выполнение требования о многократном использовании ключа и материала исходного блока информации.
Классическая сеть Фейштеля имеет следующую структуру:
Рис. 2.3
Независимые потоки информации, порожденные из исходного блока, называются ветвями сети. В классической схеме их две. Величины Vi именуются параметрами сети, обычно это функции от материала ключа. Функция F называется образующей. Действие, состоящее из однократного вычисления образующей функции и последующего наложения ее результата на другую ветвь с обменом их местами, называется циклом или раундом (англ. round) сети Фейштеля. Оптимальное число раундов K – от 8 до 32. Важно то, что увеличение количества раундов значительно увеличивает криптоскойстость любого блочного шифра к криптоанализу. Возможно, эта особенность и повлияла на столь активное распространение сети Фейштеля – ведь при обнаружении, скажем, какого-либо слабого места в алгоритме почти всегда достаточно увеличить количество раундов на 4-8, не переписывая сам алгоритм. Часто количество раундов не фиксируется разработчиками алгоритма, а лишь указываются разумные пределы (обязательно нижний, и не всегда – верхний) этого параметра.
Сразу же возникает вопрос, – является ли данная схема обратимой? Очевидно, да. Сеть Фейштеля обладает тем свойством, что даже если в качестве образующей функции F будет использовано необратимое преобразование, то и в этом случае вся цепочка будет восстановима. Это происходит вследствие того, что для обратного преобразования сети Фейштеля не нужно вычислять функцию F-1.
Более того, как нетрудно заметить, сеть Фейштеля симметрична. Использование операции XOR, обратимой своим же повтором, и инверсия последнего обмена ветвей делают возможным раскодирование блока той же сетью Фейштеля, но с инверсным порядком параметров Vi. Заметим, что для обратимости сети Фейштеля не имеет значение является ли число раундов четным или нечетным числом. В большинстве реализаций схемы, в которых оба вышеперечисленные условия (операция XOR и уничтожение последнего обмена) сохранены, прямое и обратное преобразования производятся одной и той же процедурой, которой в качестве параметра передается вектор величин Vi либо в исходном, либо в инверсном порядке.
С незначительными доработками сеть Фейштеля можно сделать и абсолютно симметричной, то есть выполняющей функции шифрования и дешифрования одним и тем же набором операций. Математическим языком это записывается как "Функция EnCrypt тождественно равна функции DeCrypt". Если мы рассмотрим граф состояний криптоалгоритма, на котором точками отмечены блоки входной и выходной информации, то при каком-то фиксированном ключе для классической сети Фейштеля мы будем иметь картину, изображенную на рис. 2.4,а, а во втором случае каждая пара точек получит уникальную связь, как изображено на рис. 2.4,б. Модификация сети Фейштеля, обладающая подобными свойствами приведена на рис. 2.5. Как видим, основная ее хитрость в повторном использовании данных ключа в обратном порядке во второй половине цикла. Необходимо заметить, однако, что именно из-за этой недостаточно исследованной специфики такой схемы (то есть потенциальной возможности ослабления зашифрованного текста обратными преобразованиями) ее используют в криптоалгоритмах с большой осторожностью.
Рис. 2.4
Рис. 2.5
А вот модификацию сети Фейштеля для большего числа ветвей применяют гораздо чаще. Это в первую очередь связано с тем, что при больших размерах кодируемых блоков (128 и более бит) становится неудобно работать с математическими функциями по модулю 64 и выше. Как известно, основные единицы информации, обрабатываемые процессорами на сегодняшний день – это байт и двойное машинное слово 32 бита. Поэтому все чаще и чаще в блочных криптоалгоритмах встречается сеть Фейштеля с 4-мя ветвями. Самый простой принцип ее модификации изображен на рис. 2.6,а. Для более быстрого перемешивания информации между ветвями (а это основная проблема сети Фейштеля с большим количеством ветвей) применяются две модифицированные схемы, называемые "type-2" и "type-3". Они изображены на рис. 2.6,б и 2.6,в.
Рис. 2.6
Сеть Фейштеля надежно зарекомендовала себя как криптостойкая схема произведения преобразований, и ее можно найти практически в любом современном блочном шифре. Незначительные модификации касаются обычно дополнительных начальных и конечных преобразований (англоязычный термин – whitening) над шифруемым блоком. Подобные преобразования, выполняемые обычно также "исключающим ИЛИ" или сложением, имеют целью повысить начальную рандомизацию входного текста. Таким образом, криптостойкость блочного шифра, использующего сеть Фейштеля, определяется на 95% функцией F и правилом вычисления Vi из ключа. Эти функции и являются объектом все новых и новых исследований специалистов в области криптографии.