- •Министерство образования и науки российской федерации федеральное агентство по образованию
- •Захарова ю.Ф. Дискретная математика и ее приложения
- •Введение
- •Глава 1. Введение в теорию множеств.
- •1.1. Основные определения.
- •1.2. Задание множеств
- •1.3. Операции над множествами
- •1.4. Разбиения и покрытия
- •1.5. Представление множеств в эвм.
- •1.5.1. Включение множеств.
- •1.5.2. Объединение множеств.
- •1.5.3. Пересечение множеств.
- •Глава 2. Булева алгебра.
- •2.1. Основные элементарные функции.
- •2.2. Основные элементарные тождества.
- •2.3. Формы представления булевых функций.
- •2.4. Минимизация булевых функций.
- •2.4.1. Метод Куайна.
- •2.4.2. Метод Карно.
- •Глава 3. Исчисление высказываний и исчисление предикатов.
- •3.1. Исчисление высказываний.
- •3.2. Исчисление предикатов.
- •Глава 4. Теория сжатия текстовой информации.
- •4.1. Метод Хаффмена
- •4.1.1. Общие положения
- •4.1.2. Краткое описание метода Хаффмена.
- •4.1.3. Пример использования метода Хаффмена.
- •4.2. Метод Зива Лемпеля (lz-метод)
- •4.2.1. Основные определения
- •4.2.2. Краткое описание lz-метода
- •4.2.3. Пример lz-метода
- •4.3. Метод Зива-Лемпеля-Велча (lzw-метод)
- •4.3.1. Общие положения
- •4.3.2. Краткое описание lzw-метода
- •4.3.3. Пример lzw-метода.
- •4.4. Метод Барроуза-Уиллера.
- •4.4.1. Общие положения.
- •4.4.2. 1 Этап. Преобразование Барроуза-Уилера.
- •4.4.3. 2 Этап. Mtf–метод.
- •4.4.4. 3 Этап. Статистический кодер.
- •4.4.5. Модификации различных этапов.
- •4.4.6. Сравнение алгоритмов сжатия на базе bwt с другими методами.
- •Глава 5. Теория сжатия графической информации. Введение.
- •5.2. Волновой метод (wavelet-метод)
- •5.2.1. Описание метода
- •5.2.2. Пример волнового метода
- •5.3. Дискретное косинус-преобразование (дкп-метод).
- •5.3.1. Описание метода.
- •5.3.2. Пример дкп-метода.
- •5.4. Классический алгоритм jpg.
- •5.5. Фрактальный алгоритм.
- •Глава 6. Введение в криптографию. Введение.
- •6.1. Методы перестановки
- •6.1.1. Матрицы
- •6.1.2. Маршруты Гамильтона
- •6.1.3. Электрический монтаж
- •6.1.4. Особенности перестановки
- •6.2. Методы подстановки
- •6.2.1. Вектор замен
- •6.2.2. Таблицы Вижинера
- •6.3. Метод замены. Использование алгебры матриц.
- •6.4. Аддитивные методы
- •6.5. Стеганология
- •6.6. Ключ. Основные понятия, связанные с ключом и алгоритмом.
- •6.6.1. Основные понятия.
- •6.6.2. Ключ.
- •6.6.3. Случайные и псевдослучайные числа.
- •6.6.4. Действия по шифрованию информации.
- •6.7. Блочные и поточные шифры.
- •6.8. Алгоритмы des, Triple des и их заменяющие.
- •6.8.2. Алгоритм Triple des
- •6.8.3. Коммерческие алгоритмы, заменившие des
- •6.9. Системы с открытым ключом.
- •6.10. Электронная подпись.
- •6.11. Взлом защищенных файлов.
- •6.11.1. Атака на ключ
- •6.11.2. Атака на алгоритм.
- •6.11.3. Скомпрометированный пароль.
- •6.11.4. Подделка открытых ключей.
- •6.11.5. Не до конца удаленные файлы.
- •6.11.6. Вирусы и закладки.
- •6.11.7. Виртуальная память.
- •6.11.8. Нарушение режима физической безопасности. Радиоатака. Фальшивые даты подписи.
- •6.11.10. Утечка информации в многопользовательской среде.
- •Содержание
- •Глава 6. Введение в криптографию. 1
6.8. Алгоритмы des, Triple des и их заменяющие.
6.8.1. Digital Encryption Standard
Компьютер может быть запрограммирован на выполнение любого алгоритма шифрования. Однако в 70-х годах было установлено, что старые алгоритмы не слишком надежны. Они имеют слабые места, их трудно реализовать.
Появление компьютеров сделало возможным отказаться от старых приемов криптографии и создать новую парадигму. Исследователи из IBM под руководством криптографа Хорста Фейстеля разработали новый алгоритм под названием Lucifer специально для компьютеров. Они также прибегли к помощи Управления национальной безопасности (NSA — National Security Agency), которое обеспечивает защиту секретных данных Правительства США, что в свою очередь предполагает использование криптографии. Результатом работы совместной команды стало появление DES.
DES — это блочный шифр, использующий 56-битный ключ — ни больше, ни меньше — для построения таблицы ключей. Используя таблицу ключей, DES выполняет битовые операции под открытым текстом. Чтобы расшифровать шифротекст, все действия следует выполнить в обратном порядке.
После своего появления DES стал свободно доступным и подвергся всестороннему изучению. В 80-х годах криптографы пришли к выводу, что он не имеет слабых мест. Это означало, что самым быстрым способом взлома сообщения, зашифрованного с помощью DES, является атака методом прямого перебора. Поскольку 56-битному ключу соответствует число в диапазоне от 0 до примерно 72 квадрильонов, даже самым быстрым компьютерам того времени требовалось несколько лет, чтобы взломать одно сообщение.
Однако к 90-м годам криптографы осознали, что DES не может продолжать оставаться стандартным алгоритмом. Быстродействие компьютеров возросло и стало достаточным, чтобы успешна осуществить атаку на 56-битный ключ методом прямого перебора за разумное время. Кроме того, исследователи обнаружили потенциально слабые места, что привело их к заключению, что взлом алгоритма возможен. Атака методом прямого перебора по-прежнему давала скорейший результат, но потенциальные слабости вызывали беспокойство.
Как уже упоминалось, в 1999 г. на конференции, организованной RSA компания Electronic Frontier Foundation взломала ключ DES менее чем за 24 часа. Встала необходимость замены алгоритма.
6.8.2. Алгоритм Triple des
Одной из замен DES, получившей широкое распространение, стал алгоритм Triple (тройной) DES, Название говорит само за себя: Triple DES выполняет алгоритм DES три раза. Вот как это происходит. Вы пропускаете ваш блок данных через DE3 с использованием ключа, а затем зашифровываете этот результат с помощью другого ключа DES. Затем вы делаете это в третий раз (см. рис. 29).
Рис. 29. Triple DES. Троекратное применение алгоритма DES
При этом используются три ключа, каждый из которых состоит из 56 битов. Это, по сути, соответствует использованию 168-битного ключа. Можно подумать, что если для взлома одного ключа требуется 24 часа, то взлом трех ключей должен занять 72 часа. Однако это не так. Для взлома одного ключа потребуется 24 часа, если вы будете знать, что взломали его. Но при использовании Triple DES вы не узнаете, что нашли первый ключ, пока не примените два оставшихся ключа.
Представим это следующим образом. Допустим, есть три ключа, назовем их А, В и С, а каждое возможное значение ключа находится в диапазоне от 0 до 72 квадрильонов. Предположим также, что корректной комбинацией ключей является А=1, В=33717 и С=1419222. Атакующий может испробовать значение 0 для ключа А, значение 0 для ключа В и значение 0 для ключа С. Это не дает верного ответа, поэтому он испробует комбинацию А=1, В=О и С=0. Как показано на рис. 30, первый ключ правильный. Но значение, которое атакующий получил в результате применения комбинации из трех ключей, не является верным значением. Правильный открытый текст появится только в том случае, если все три ключа верны. Но как атакующий узнает, что первый ключ правильный?
Рис. 30. Чтобы взломать Triple DES, нужно знать все три ключа
Для Triple DES, однако, имеются две проблемы. Во-первых, криптоана-литики обнаружили способ, позволяющий сделать атаку прямого перебора более эффективной. Первоначально считалось, что эт<1 атака эквивалентна атаке на 168-битный ключ, однако есть возможность сделать такую атаку эквивалентной атаке на 108-битный ключ. 108-битный ключ по-прежнему обеспечивает защиту (см. таблицу пункта 3.11.1, где даны оценки для наихудшего случая при атаке на 108-битный ключ), но это слабое место вызывает беспокойство. Что, если дальнейшие исследования криптоаналитиков выявят дополнительные слабые места? Не будут ли еще больше скомпрометированы защитные свойства Triple DES?
Второй проблемой является скорость. Алгоритму DES требуется достаточно длительное время для того, чтобы зашифровать или расшифровать данные, a Triple DES для этого требуется в три раза больше времени. Для некоторых приложений необходимо с высокой скоростью передавать мегабайты важной информации. Triple DES настолько снижает производительность, что некоторые приложения просто не могут работать.
По этим двум причинам потребовался новый алгоритм.
